SHELL BASH - Guia de utilização - Nível debutante
Introdução
Convite aos membros Kioskea
Eu convido os
membros contribuintes Kioskea, a fazer correções necessárias bem como modificar ou integrar coisas úteis por um debutante em linha de comando (evitando coisa complicadas este não é o objetivo).
Eu convido também os
membros não contribuintes do kioskea , a me relatar eventuais erros e suas sugestões através do fórum Mensagens privadas.
Obrigada
O objetivo deste tutorial é o de permitir a um debutante da linha de comando de ter sucesso nesta tarefa.
Longe de ser completo, este pequeno tutorial permitirá a você conhecer o Shell como software e não como uma linguagem de programação.
Eu vou tentar ser o mais breve possível nos níveis de cada capítulo (explicações concisas e claras), porém este tutorial risca de ser longo. E por isso a idéia de vários capítulos.
Não é necessário percorrer o tutorial do início ao fim. Você pode acessar diretamente o capítulo que lhe interessar em função de sua necessidade.
II. O que é a shell ?
Para ter uma explicação exata eu recomendo visitar este site
SHELL
Shell é um programa que se encontra no diretório/bin.
Distinguem-se diversos Shells <códigos>
- le /bin/sh
shell Bourne
- le /bin/bash
Bourne Again SHell
- le /bin/csh
C shell
- le /bin/ksh
Korn shell
- le /bin/tcsh
C shell atualizado em espanhol
- le /bin/zsh/
Z shell em espanhol
</code>
A continuidade deste tutorial trata unicamente do
shell bash que é a Shell padrão para as distribuições
GNU-LINUX.
Shell permite executar comandos, explorar a arborescência do sistema, criar, editar e suprimir arquivos, etc.
III. Como acessar a linha de comando
Para acessar a linha de comando, é possível utilizar um
http://pt.wikipedia.org/wiki/Terminal_(inform%C3%A1tica) (
xterm, kterm, gterm) ou então
Console.
kterm - é um terminal emulador multi-línguas baseado no xterm.
As principais diferenças entre
kterm e
xterm são:
- A possibilidade de tratar o texto multilínguas codificado em ISO2022 em inglês, * mostrar o texto colorido (Verr man kterm).
Para fazê-lo, duas possibilidades são oferecidas:
- utilizar o menu da área de trabalho (Gnome, Kde, etc.). Trata-se do método aconselhado.
- utilizar o menu lançar uma aplicação. Na janela aberta, digitar o nome do terminal e validar. A janela lançar uma aplicação pode ser Alt+F2
- Utilizar os consoles virtuais (tem seis).
IV. Os consoles virtuais
O console virtual (
tty1 à
tty6) é um ecrã negro onde uma chamada de comando aparece da forma
login :
A partir a interface gráfica, é possível conectar-se a um console virtual utilizando a combinação das teclas
Ctrl+Alt+FN, onde
N é um número de
1 à
6
Exemplo: Acessar o console a partir da interface gráfica
CTRL+ALT+F3
Estando em um console virtual, a navegação entre as diferentes consoles virtuais se faz com a combinação das teclas
Alt+FN, onde
N é um número de
1 à
6
V. Conexão a um console virtual
No campo
login:, digitar a identificação (login) do usuário, depois validar pressionando
Enter, o campo
Password: se afixará. Digitar a senha do utilisador e validar.
- A senha não está afixada no ecrã por razões de segurança. O fato de não ver no ecrã aquilo que você digita, não é motivo de inquietação.
- Se a senha é válida, um campo de comando deve afixar-se, indicando que a conexão se completou
Exemplo :
VI. Na chamada do comando do shell após conexão
A chamada do comando (ou prompt) do shell tem a seguinte forma :
nome@máquina ~ $
- nom - representa o identificador do usuário conectado
- máquina- representa o nome da máquina
- ~ é um atalho que significa o diretório pessoal /home/usuário
- $ significa que você está conectado enquanto usuário
Se no lugar do
$ o signo/caráter
# aparece, então você está conectado como super usuário.
(
Root).em espanhol
Tenha presente que os sistemas Gnu/Linux utilizam por convenção
# para root e
$ para um usuário outro que o
root.em espanhol
Este comportamento pode mudar trocando a variável do ambiente PS1, mas
isto é desaconselhado!
VII. Retornar ao modo gráfico a partir do console virtual
Para retornar ao modo gráfico a partir do console virtual, utilizar a combinação das teclas
ALT+F7
VIII. O ambiente Shell
Após conexão, o usuário está conectado em seu ambiente. Isto significa que Shell coloca à disposição variáveis de ambiente, quer dizer um recipiente memória no qual os dados são armazenados.
Para afixar o conteúdo de uma variável de ambiente, o comando
echo $NOM_VARIABLE pode ser utilizado. (
eco $NOME_VARIÁVEL)
O nome das variáveis de ambiente é por convenção em maiúsculas, é preciso respeitar a regra.
IX.Variáveis de ambiente a conhecer
HOME, USER, GROUPS, UID, PWD, SHELL, PATH, HOSTNAME
- HOME contém o diretório do usuário
- USER contém o login do usuário
- PWD contém o diretório corrente
- SHELL contém o nome do shell de conexão
- PATH contém a lista dos diretórios onde se encontram as chamadas que o usuario pode executar
- HOSTNAME contém o nome da máquina
- HISTSIZE contém o tamanho máximo dos comandos executáveis contidos no arquivo do histórico
- PS1 contém os parâmetros de afixagem da chamada do comando (o prompt)
Exemplo de afixagem :
O comando
set permite afixar as variáveis e seu conteúdo.
X. Arquivos de configuração
No momento da conexão, em um console virtual ou na abertura de um terminal em modo gráfico, shell utiliza informações que encontram-se em certos (.bashrc, .bash_profile, etc)
O comportamento do shell pode ser modificado editando estes arquivos.*
O arquivo
.bashrc é por exemplo utilizado no capítulo sobre
os clones.
Naquilo que concerne a configuração de seu shell, você deve esperar um pouco, não será para logo. Você vai aprender a fazê-lo com o tempo, então seja paciente.
XI. Por que utilizar a linha de comando?
Muitas soluções são dadas em linha de comando, não é por que
GNU/Linux não tem uma interface gráfica mas somente certas tarefas, que a utilização da linha de comando não se mostre bem mais prática e mais potente que o famoso mouse.
XII. Noções do comando
Um comando é um arquivo executável. A execução de um comando pode ser diferente dependendo do caso.
Os comandos utilizados são dados a título de exemplo ; então não obstine-se em compreendê-los, se você encontrar problemas com alguns deles. Os comandos de base serão detalhados ulteriormente.
Exemplo: o comando ls
O comando
ls afixa o conteúdo de um diretório.
man ls para mais detalhes.
- sem argumento e sem opção
- sem argumento com uma ou diversas opções
- com argumento
- com argumento e com um ou diversas opções
XIII. Onde se encontram os comandos?
Os comandos, que você pode executar a partir de seu terminal, encontram-se em certos diretórios de seu sistema.
A variável
PATH (em português : « caminho ») contém uma lista de diretórios que contém os comandos acessíveis. Para ter acesso à todos os comandos é necessário geralmente ser
Usuário root.
Para encontrar o lugar de um comando utiliza-se "whereis" (em português "onde está"):
Ou então "which" (em português « o qual, a qual, o quê, quem, aquilo que qual ») :
A diferença entre whereis et which
- whereis - busca de arquivos executáveis, as fontes e as páginas do manual de um comando.
- which - busca em uma variável PATH os arquivos executáveis
Exemplo: busca da existência do comando com which
1. O usuário yogi pequisa se o comando
iptables existe no sistema, o resultado para ele é
NON
2. Verifica-se como
root
[/faq/images/4801-ka6QDn5Y56sG2E8N.png [Image: /faq/images/4801-ka6QDn5Y56sG2E8N-s-.pngpx|]]
Na realidade o comando
iptables existe no sistema no
/sbin. O diretório
/sbin não se ncontrando no
PATH do usuário yogi, é bem normal que
which não dê um resultado.
Em resumo
whereis é mais garantido.
XIV. A documentação (As páginas « man »)
Ação em linha de comando
man comando
man N comando
N - O número da página man (você o verá no alto a esquerda)
Como regra geral na parte
SEE ALSO de uma página « man », você encontrará a lista dos comandos que é aconselhado consultar tendo relação direta com o comando sobre o qual você está lendo o manual.
Exemplos:
1.execução do comando
man crontab
2.o convite do comando ( o prompt) vai desaparecer e a página man será afixada
Olhe a parte SEE ALSO e você verá as páginas que são aconselhadas para consultar. Isto quer dizer que pode-se digitar:
man 5 crontab
man 8 cron
3. a tecla « q » para sair da página man e voltar à chamada do comando (prompt)
Para obter a descrição resumida de um comando, utiliza-se a opção "-f"
man -f comando
whatis comando
Para conhecer as rubricas que existem na apresentação da palavra chave, a "-k" :
man -k comando
XV. A estrutura de uma página de man
COMMAND(1) Manual do usuário Linux COMMAND(1)
NAME
comando - resumo da ação do comando
SYNOPSYS
<sintaxe completa do comando>
DESCRIPTION
Explicações relativas a execução do comando
OPTIONS
Lista das opções e o quê elas fazem
FILES
Os arquivos utilizados pelo comando
SEE ALSO
Comando_prima(1), comamco-irmão(5), etc.
BUGS
Os bugs existentes no comando
AUTHOR
O nome do autor
XVI. Algumas regras para compreender SYNOPSYS e/ou OPTIONS
- Todo texto isokado, sem [] (colchete []), {} (chave{}), <> (setas"), digita-se tal e qual aparecem
- O texto entre colchetes [] é facultativo
- O texto entre chaves {} contém escolhas a fazer. As escolhas são separadas por | (pipe) ou por uma vírgula ,
comando -{a|b}quer dizer comando -a ou comando -b mas não comando -ab
-O texto entre setas <> deve ser substituído pelo texto apropriado
-os parênteses (...), utilizados por parâmetros como os nomes de arquivos
- Os colchetes [] e as setas <> podem ser combinados
[<nome arquivo>] - facultativo mas se você utilizá-los deverá escrever o nome do arquivo
- Os colchetes [] e as chaves poderão ser combinados
[--opção={a|b|c}]
XVII. Comandos de base
cat - Lê (concatène) um ou diversos arquivos, afixagem na saída standard
cd - ChangeDdirectory, muda o diretório
chmod - CHangeMODe -muda o modo de acesso (permissões de acesso) de um ou diversos arquivos
chown - CHangeOWNer - muda o proprietário de um ou de diversos arquivos
cp - copia arquivos
crontab - planificação de tarefas
cut - Retira partes precisas do texto em cada linha do arquivo
date -Afixa a data de acordo com o formato solicitado
dd - DevicetoDevice - Recopia octeto por octeto tudo ou parte de um periférico (habitualmente de armazenagem) em um outro periférico.
df - afixagem da quantidade do espaço livre em todos os sistemas de arquivos
du - DiksUsage - a utilização do disco
echo - Afixa o texto na saída standard (no ecrã)
exit - Para a execução do shell
find - procura de arquivos
fsck - FileSystemChecK - verificação da integralidade do sistema de arquivos
grep - busca em um ou diversos arquivos as linhas que correspondem à um motivo.
groupadd- Integrar um grupo de usuários
gunzip - descompressão de arquivos
gzip - compressão de arquivos
head - afixa as primeiras linhas (por padrão 10) de um arquivo
help - afixa uma ajuda para comandos internos de bash
kill - envia um sinal à um processo
less - programa a afixagem do ecrã
ln - criação de links
ls - lista do conteúdo dos diretórios
man - afixa as páginas do manual
mkdir - MaKeDIRdirectory - cria umdiretório
mkfs - MaKeFileSystem - criação de sistemas de arquivos
more - afixagem do ecrã
mount - monta um sistema de arquivos
mv - desloca, nomeia novamente um arquivo
ps - afixa os precessos com execução em andamento
pwd - Print name of current/wworking dDirectory - afixa o caminho completo do diretório corrente
rm - supressão de arquivos
rmdir -Remove empty directories - supressão de um dossier vazio
tail - afixa as 10 últimas linhas de um arquivo
tar - criação de arquivos
su - Ssustitute User identity ou Switch U - substitui a identidade de um usuário
uname - Afixa as informações sobre o sistema.
useradd - integra um usuário
whereis - localiza um comando
XVIII. Execução de um comando
Existe diversas maneiras de executar um comando.
- utilzando simplesmente seu nome
- utilizando o caminho absoluto
- utilizando o caminho relativo
- utilizando clones (prática para os comandos empregados seguidamente e que são longos)
Um comando pode ser executado no plano de fundo utilizando o signo « & » e depois o nome do comando.
A execução de um comando em plano de fundo permite retornar ao shell depois da execução.
Exemplo: lançamento do Firefox após uma linha de comando
XIX. Trocar de identidade (mudar de usuário)
De seu shell você tem a possibilidade de substituir a identidade de um outro usuario existente no seu sistema, inclusive o usuário "
root".
Para tanto você tem à disposição o comando
su ou
su -
Olhe
utilizar o comando su para mais detalhes
XX. A raiz
Nos sistemas da família
Unix, a raiz representa o top da arborescência dos diretórios.
Ela é representada pelo signo/caráter
/ (
slash) e significa "
root" (
raiz em português)
Todos os diretórios de seu sistema são ligados à uma raiz de maneira direta ou indireta.
XXI. Os diretório "." e ".."
- . Indique o diretório corrente
- .. indique o diretório parente
XXII. Onde estou ? (posição na arborescência)
Uma coisa muito importante a saber quando se está conectado no shell, é onde é que estamos na arborescência.
O comando
pwd (
Print
Working
Ddirectory) afixa sua localização na arborescência.
XXIII. O caminho absoluto
O caminho representa a arborescência completa de arquivos, partindo da raiz.
Exemplo :
O arquivo
b.txt encontra-se no
/home/user/doc/text
Você se encontra no
/home/user/ascii
O caminho absoluto para
b.txt é
/home/user/doc/text/b.txt
Qualquer que seja a localização na arborescência a utilização do caminho absoluto é o mais seguro para acessar o arquivo desejado.
XXIV. O caminho relativo
O caminho relativo para acessar um arquivo é a arborescência dada à sua localização no shell.
Utiliza-se as notações
. e/ou
..
. nos permite descer na arborescência do diretório corrente
Nos permite num primeiro momento subir em arborescência
.. nos permite num primeiro momento subir em arborescência com o objetivo de atingir outros diretórios.
Exemplo : o diretório corrente.
O arquivo
b.txt encontra-se no
/home/user/doc/text
Você encontra-se em
/home/user
O caminho relativo para
b.txt est
./doc/text/b.txt
Exemplo : o diretório parente ..
O arquivo
b.txt encontra-se em
/home/user/doc/text
Você encontra-se em
/home/user/ascii
O caminho relativo para
b.txt est
../doc/text/b.txt
O diretório
ascii encontra-se em
/home/yogi então escrevendo
.. eu vou utilizar o diretório parente
/home/yogi como ponto de partida depois, em seguida, eu vou em
doc/text (note que eu não disse
/doc/text - que teria o
doc da raiz
/ )
XXV.Como se deslocar na arborescência
Para se deslocar na arborescência utilizar o comando
cd
cd /caminho/para/diretório
Com
pwd você pode verificar sua nova localização na raiz
XXVI. Histórico
Os comandos executados estão registrados no histórico.
A variável
HISTSIZE contém o número máximo dos comandos a registrar.
Você pode acessar o histórico com o comando
history
history [n] | less
- n - a opção "n" permite afixar os "n" últimos comandos (facultativo)
- less - o comando « less » permite navegar no histórico
- As flechas alto e baixo lhe permitem navegar no histórico.
- !n - permite executar o comando correspondente ao número "n" na lista sem ter de redigitá-la
XXVII. A finalização automática dos comandos
Digitar um comando em um terminal nem sempre é coisa fácil.
Apesar disto, tranqüilize. O shell permite a finalização automática (digita-se por exemplo 1 ou 2 letras e o software completa todo o comando) dos comandos.
Exemplo: comando tal utilizando o caminho absoluto
- Isto supõe que eu deva digitar
/usr/bin/tail
A finalização automática nos permite fazer economias com respeito a escrita do comando e ao mesmo tempo a segurança da sintaxe.
A finalização automática se obtém utilizando a tecla
TAB
Para tanto vamos começar com o 1° caráter...
- Eu digito J /u e pressiono sobre TAB
- O shell vai completar e vai escrever /usr/
- Neste momento eu integro um b então eu estou com/usr/b
- Eu pressiono novamente sobre TAB e eu terei /usr/bin/
- Neste momento eu integro ta,então eu terei /usr/bin/ta
- Eu pressiono 2 vezes sobre TAB
- O shell no meu sistema encontra 4 correspondentes
- tac tack tail tasksel
- Eu vou continuar e eu vou integrar um i
- assim terei /usr/bin/tai
- Eu pressiono novamente TAB
- e eu obtenho /usr/bin/tail
ls /u + TAB + b + TAB + ta + TAB + TAB + i + TAB
É bem verdade que na explicação tem-se a impressão que é longo.
Tranqüilize, é bastante rápido, mesmo se você digitar com somente um dedo:-)
XXVIII. Edição de arquivos (vi,vim)
O editor
vi
Muito útil, sobretudo quando se tem um problema com o modo gráfico.
Etapa I - CONSELHO
Backup do arquivo original, utiliza-se o comando "cp (copie) acompanhamento do arquivo fonte propriamente dito seguido do arquivo alvo (aqui inexistente)
Etapa II - Abertura do arquivo
Etapa III - Edição do arquivo
- pressione a tecla
ipara passar ao modo inserção
No canto esquerdo você verá
--INSERÇÃO--
-utilize as flechas (direita, esquerda, alto, baixo) ou Pg Suiv. e Pg Prec. Para navegar pelo arquivo
- A inserção dos sinais faz-se acima do cursor com o deslocamento à direita do cursor
-A tecla supressão permite suprimir o sinal encontrando-se acima do cursor
Etapa IV - Fim da edição do arquivo
Pressione a tecla
Escap assim que você terminou a edição
--INSERÇÃO-- vai desaparecer
Etapa V -Gravação das modificações e sair de "vi"
- pressione a tecla
: (você deverá vê-los aparecer no canto esquerdo abaixo a esquerda)
- escreva
wq (para
Write
Quit)
- pressione em "
Enter"
Voltar ao terminal
Eis aqui referente à edição com "vi" ou "vim"
XXIX. O alias
A utilização de alias é muito prático para os comandos longos que são utilizados regularmente. Isto evita de redigitá-los.
A utilização excessiva de alias pode provocar o esquecimento dos comandos e de suas opções.
Compete à você gerenciar a utilização dos alias.
Os alias nós os escreveremos no arquivo
.bashrc da seguinte maneira:
(veja o capítulo
XXVIII Edição de arquivos (vi, vim))
alias nome='comando'
Assim que o arquivo
/home/user/.bashrc estiver editado, digite
fonte /home/user/.bashrc
Para integrar imediatamente os alias
O comando
aliasafixa os alias existentes
XXX. Os redirecionamentos e os pipelines
Primeiro inicia-se com uma pequena explicação referente aos descriptadores das « entradas - saídas":
- tudo aquilo que se escreve no shell chama-se STDIN (STandarDINput)
- tudo aquilo que você vê no ecrã pode ser :
- STDOUT (STandarDOUTput)
- STDERR (STandarDERRor)
Estes descriptadores são numerados como abaixo descritos :
0: entrada standard (STDIN) <---------------- teclado
Processo 1: saída standard (STDOUT) ---------------> ecrã
2: saída erros (STDERR) ----------------> ecrã
Os redirecionamentos
O que é redirecionar?
É a possibilidade de dirigir o resultado de um comando utilizando outras destinações do que aquelas dos descriptadores standards.
Para realizar um redirecionamento utiliza-se:
comando > arquivo - redirecionamento em modo de escrita para o arquivo
O arquivo será criado se ele não existir
Seu conteúdo será substituído pelo novo arquivo se o arquivo já existe
comando >> arquivo - redirecionamento em modo adicionar para o arquivo
O arquivo será criado se ele não existir
O resultados será adicionado no final do arquivo
comando< fichier - o comando lê a partir do arquivo
Exemplos de redirecionamentos:
- enviar o conteúdo do arquivo 1 no arquivo 2
Se o arquivo 2 existe seu conteúdo de origem será suprimido, o arquivo 2 será criado se ele não existir
-enviar o conteúdo do arquivo 1 para o arquivo 2 - modo adicionar
Se o arquivo 2 existe, o conteúdo do arquivo 1 será adicionado no final do arquivo 2, se o arquivo 2 não existir, ele será criado
[/faq/images/4801-MqSkG3izTP2mexRk.png [Image: /faq/images/4801-MqSkG3izTP2mexRk-s-.pngpx|]]
-busque na raiz o arquivo chamado arquivo .txt, os erros ao invés de serem enviados para
STDERR (
o ecrã) serão enviados para /dev/null (
espécie de lixeira sem fim)
- procure na raiz o arquivo chamado.txt, os erros ao invés de serem enviados para
STDERR (
o ecrã) serão enviados ao arquivo erros.txt
Os pipelines
comando1 | comando2 - o resultado do comando1 é utilizado pelo comando2
comando1 & comando2 -os comandos são executados simultaneamente, comando1 executando-se no plano de fundo
comando1 && comando2 -se o comando1 se completar o comando2 é executado
comando1 || comando2 - o comando2 executa-se somente se o comando1 é abortado
comando1; comando2 - os comandos são executados na ordem
Exemplos de pipeline
- O tubo | (pipe)
Num primeiro momento eu executo
perl -ne 'print unless /^\s*$/' guideshell com o objetivo de afixar, no ecrã, as linhas vazias eliminadas.
Ao invés de afixar no ecrã eu utilizo | para passar o resultado ao comando
wcque vai contar o número de linhas deste arquivo
- O paralelismo &
Os comandos se executam simultaneamente
-A dependência &&
Você notará que no 1° caso os dois comandos executam-se.
Mas no 2° caso eu faço voluntariamente um erro de sintaxe para 1° comando.
O shell nem vê o 2° comando e ele pára nos dizendo que
ech não é um comando conhecido.
- A alternativa ||
No 1° caso você observará que somente o 1° comando executou-se.
No 2° caso o shell afixa um erro para o 1° comando mas ele executa de qualquer forma o 2°.
- O seqüenciamento:
eco a executa-se
Eu espero 1 segundo
eco b executa-se
Eu espero 2 segundos
eco c executa-se
XXXI. Os metacaráteres do shell
Para facilitar a apreensão dos comandos o shell disponibiliza meta caracteres, chamados igualmente caracteres genéricos ou coringas.
* - corresponde a qualquer caráter e número de caráter
? - corresponde a um só caráter
[...] - corresponde a um caráter entre colchetes
Com os colchetes pode-se também utilizar intervalos.
[0-9] - Todo o caráter compreendido entre 0 e 9
[a-zA-Z] - toda a letra comprendida no intervalo (minúscula e maiúscula)
XXXII. Truques e Dicas
cd : voltar ao diretório pessoal
cd - : voltar ao diretório precedente (unicamente se você executou um cd)
Ctrl+l : apagar o ecrã
Ctrl+c : interrupção de um comando
Ctrl+z : suspender( pausa) um comando
CTRL+t : correção de digitação invertendo duas letras
Ctrl+a : ir ao início da linha
Ctrl+e : ir ao final da linha
Ctrl+s : interrupção da saída do terminal (mascarar a digitação)
Ctrl+q : anular a interrupção da saída (mascarar a digitação)
Ctrl+u : apagar tudo à esquerda do cursor
Ctrl+w : apagar a palavra à esquerda do cursor
Ctrl+k : apagar a palavra à direita do cursor
Ctrl+y : colar a digitação precedente
Ctrl+d : apaga o atual caráter, se a linha estiver vazia desconexão
Alt+b : se desloca para frente, palavra por palavra na linha de comando.
Alt+f : se desloca para trás palavra por palavra na linha de comando.
Alt+d : apaga a palavra seguinte
Alt+t : troca a palavra corrente com a palavra precedente
Alt+c : coloca em maiúsculo a corrente letra , o resto todo da palavra em minúsculo, depois se desloca à palavra seguinte
Alt+l : coloca em maiúscula a partir da corrente letra até o final da palavra, depois desloca-se à palavra seguinte
Alt+u : coloca em minúscula a partir da corrente letra até o final da palavra depois se desloca à palavra seguinte
Alt+Backspace : apaga a palavra precedente (equivalente Ctrl+w)
XXXIII. Midnight Commander (clone mc)
Midnight Commander - gerenciador em linha de comando em inglês e
uma captura de ecrã
Este utilitário permite navegar, criar, editar, suprimir, etc.
Com
mc você pode modificar os direitos, mudar de proprietário, fazer buscas, conectar-se à um servidor ftp, etc...
mc pode ser utilizado como explorador
XXXIV. Error: command not found
Leia este tutorial (Chapitre IV.3)
variáveis de ambiente PATH
Um outra origem deste erro : você não respeitou a forma dos caracteres
Exemplo : Ls no lugar de ls
XXXV. Erro: Nenhum arquivo ou diretório deste tipo
Erro afixado pelo shell quando você tenta executar um comando num arquivo que não existe no caminho precisado.
Soluções
-Encontre o arquivo com o comando
find para saber se ele existe no disco afim, se é o caso, de conhecer seu verdadeiro caminho.
XXXVI. Erro: Permissão recusada
É um problema de direitos de acesso.
Leia este tutorial
Direito de acesso
XXXVII. Conselhos de redação
O shell é bastante exigente na redação dos comandos.
Os caracteres que tem um sentido especial para o shell devem ser dissipados para obter o caráter literal.
Caracteres que tem um sentido especial para o shell :
- o espaço
- o ponto e vírgula ;
- o slash /
- o anti-slash \
- o caráter | (pipe)
- o esperluate &
- o ponto .
- as apóstrofes simples ( ' ) e duplas ( " )
De maneira geral, deve-se observar atentivamente os caracteres não alfabeto numéricos.
1.
sensibilidade ao engano de digitação dos caracteres
Se o comando chama-se
lsesteja seguro que é exatamente igual senão
Ls não funcionará
Igualmente para o nome de arquivos e/ou diretórios.
2.
o espaço
Pegue o exemplo de um arquivo que se chama: nome arquivo.txt
Se você digitar
ls -l meu arquivo.txt para ver os atributos deste arquivo, cuidado pois você não obterá o resultado desejado.
Por que?
Por causa daquilo que o shell vai ler : Afixar os atributos dos arquivos « nome » e « arquivo.txt »
Para obrigar shell à afixar aquilo que se deseja, utiliza-se aquilo que ele nos disponibiliza.
ls -l mome\ arquivo.txt - sintaxe ok (o ante-slash permite ler o espaço como um caráter e não como um separador de argumentos de comando)
ls - 'meu arquivo.txt' - sintaxe ok (as apóstrofes simples tratam cada caráter de forma literal)
QUESTÃO : Como é possível ler uma apóstrofe simples de maneira literal entre 2 apóstrofes simples?
O espaço tem também como papel separar os argumentos em linha de comando.
Um simples espaço utilizado em um lugar errado pode ser fatal para todo o sistema.
Exemplo : supressão da raiz por causa de um simples espaço
Cenário :
O
root quer suprimir uma certa pasta. Para tanto ele vai utilizar o comando
rmcom as opções
f (força) e
R (recursivo).
A pasta à suprimir chama-se
a_suprimir e encontra-se em
/home/yogi/a_suprimir
a.
comando correto
b.
comando incorreto (erro de digitação) => sistema suprimido
Explicação :
Você observará que no 2° caso, por engano eu digitei um espaço entre / e home.
O que acontece?
O shell vai pensar que o comando rm deve ser suprimido, antes a raiz / e depois home/yogi/a_suprimir.
Devo dizer que você acabou de apagar todos os dados de seu sistema.
Que "home/yogi/a_suprimmir" não existe, pouco importa, seu sistema não existe mais.
ASSIM ATENÇÃO ÀQUILO QUE VOCÊ DIGITAR NO SHELL!!!
Uma solução para evitar tudo isto é de
UTILIZAR A COMPLETUDE dos comandos.
Se você digita / e em seguida a tecla TAB 2 vezes, diversas escolhas se afixarão no ecrã. Normalmente são os diretórios da raiz: boot,bin...home...,var.
Você terá somente que acrescentar um h para home e de novo TAB 2 vezes e assim por adiante
TOME O TEMPO DE LER ESTAS ADVERTÊNCIAS PARA NÃO ARREPENDER-SE DEPOIS!!!
Um outro exemplo com o espaço
Para reconhecer o espaço com sendo um caráter e não como um separador de parâmetros é preciso proteger- (colocar um anti-slash na frente)
Criar um arquivo que se chama "aa bb"
Note que o resultado obtido não está conforme com aquilo que se desejava.
Vamos ver somente um arquivo
aa bb e não o arquivo
aa e o arquivo
bb
Por que obtivemos isto ?
Pois o shell, quando digitamos
touch aa bb
,
Entendeu que era necessário criar um arquivo aa e um arquivo bb.
Corrigindo isto :
Agora você vai dizer : Mas não foi criado aa bb mas
aa\ bb !!!
Na realidade você criou
aa bb
O caráter
\ permite o espaço como um caráter literal.
Aliás, o comando
ls -l mostrará claramente a existência do arquivo
aa bb
No lugar do anteislash você pode utilizar as apóstrofes simples
touch 'aa bb'
O que se pode aprender com isto?
Cada vez que você utilizar caracteres não alfabeto numéricos, tais como
$,i -slashr ou então coloque-os entre apóstrofes simples.
3.
Os comandos longos que utilizam mais de uma linha
Se o comando torna-se muito longo você pode passar para a linha seguinte utilizando o caráter
\
XXXVIII. Executar um script
executar um script shell
Trdaução feita por Ana Spadari
A ver igualmente
Comunidade de assistência e de conselho.
Artigo original publicado por
lami20j. Tradução feita por
ninha25.