SHELL BASH – Guia de utilização – Nível debutante

última modificação em 23 de Julho de 2009 às 15:20 por ninha25
Publicado por ninha25

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 mofidicar 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 kioskea , a me relatar eventuais erros e suas sugestões através do fórum Messagens privadas.
Obrigada


O objetivo deste tutorial é o de permitir à um debutante da linha de comando de se sair bem.
Longe de ser completo, este pequeno tutorial permitirá a você conhecer o Shell como software e não como uma linguagem de programation.

Eu vou tentar ser o mais breve ao nível de cada capítulo (explicações concisas e claras), porém este tutorial risca de ser longo, é 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 ao capítulo que lhe interessa em função de suas necessidades.

II. O que é o shell ?


Para ter uma razão exata eu recomendo visitar este site SHELL

O shell é um programa que se encontra no repertório/bin.

Distingue-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 Shell do shell bash que é o shell por padrão para as GNU-LINUX.

O shell permite executar comandos, explorar a arborecência do sistema, de criar, de editar e de suprimir arquivos, etc.

III.Como acessar a linha de comando


Para acessar à linha de comando, é possível utilizar um terminal (xterm, kterm, gterm) ou então konsole.

kterm - é um terminal emulador multilí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 assim aberta, digitar o nome do terminal e validar. A janela lançar uma aplicação pode ser Alt+F2
  • Utilizar os consoles virtuais ( tem 6).

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 de concectar-se à 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

Uma vez em uma 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 uma console virtual


No campo login:, digitar a identificação (login) do utilisador, 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 inquietude.

  • 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 utilizador conectado
  • máquina- representa o nome da máquina
  • ~ é um atalho que significa o repertório pessoal /home/utilisador
  • $ significa que você está conectado enquanto utilizador

Se no lugar do $ o signo/carater # aparece, então você está conectado como superutilizador.
(Root).em espanhol
Tenha presente que os sistemas Gnu/Linux utilizam por convenção # para root e $ para um utilizador 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 vritual


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 utilizador está conectado em seu ambiente. Isto significa que Shell coloca à disposição variáveis de ambiente, quer dier um recipiente memória no qual os dados são armazanedaos.
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 respeiitar a regra.

IX.Variáveis de ambiente a conhecer


HOME, USER, GROUPS, UID, PWD, SHELL, PATH, HOSTNAME
  • HOME contém o repertório do utilizador
  • USER contém o login do utilizador
  • PWD contém o repertório corrente
  • SHELL contém o nome do shell de conexão
  • PATH contém a lista dos repertórios onde se encontram as chamadas que o utilizador 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 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 execusã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 comprendê-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 repertó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 encontram-se os comandos ?


Os comandos que você pode executar a partir de seu terminal encontram-se em certos repertórios de seu sistema.

A variável PATH (em português : « caminho ») contém uma lista de repertórios que contém os comandos acessíveis. Para ter acesso à todos os comandos é necessário geralmente ser 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 difrenç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 utilizador 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-.png|500px|]]
Na realidade o comando iptables existe no sistema no/sbin. O repertório /sbin não encontrando-se no PATH do utilizador yogi, é bem normal que which não dê um resultado.

Em resumo whereis é mais garantido.

XIV. A documentação (As páginas « man »)


Acçã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.a chamada 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 rúbricas 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 utilizador Linux        COMMAND(1)

NAME
     comando -  resumo da ação do comando

SYNOPSYS
    <sintáxe 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_priama(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 aperecem 
- 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 standar 
cd      - ChangeDirectory, muda o repertó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  octet por octet  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 utilizadores 
gunzip  - decompressã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 repertórios  
man     - afixa  as páginas do manual  
mkdir   - MaKeDIRectory – cria um repertório 
mkfs    - MaKeFileSystem – criação de sistemas de arquivos 
more    - afixagem do ecrã 
mount   - monta um sistema de arquivos 
mv      - desloca, renomeia um arquivo 
ps      - afixa os precessos com execução em andamento 
pwd     - Print name of current/working directory – afixa o caminho completo do repertó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 utilizador  
uname   - Afixa as informações sobre o sistema. 
useradd - integra um utilizador 
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 utilizador)


De seu shel você tem a possibilidade de substituir a identidade de um outro utilizador existente no seu sistema, inclusive o utilizador "root".

Para tanto você tem à disposição o comando su ou su -

Olhe utilizar o ciomando su para mais detalhes




XX. A raiz


Nos sistemas da família Unix, a raiz representa o top da arborecência dos repertórios.
Ela é representada pelo signo/carater / (slash) e significa "root" (raiz em português)

Todos os repertórios de seu sistema são ligados à uma raiz de maneira direta ou indireta.

XXI. Os repertórios "." e ".."

  • . Indique o repertório corrente
  • .. indique o repertório parente





XXII. Onde estou ? (posição na arborecência)


Uma coisa muito importante a saber quando se está conectado no shell, é onde é que estamos na arborecência.
O comando pwd (PrintWorkingDirectory) afixa sua localização na arborecência.


XXIII. O caminho absoluto


O caminho representa a arborecência completa de arquivos, partindo da raiz.

Exemplo :


O arquivo b.txt ncontra-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 arborecência a utilização do caminho absoluto é o mais seguro para acessar a arquivo dasejado.

XXIV. O caminho relativo


O caminho relativo para acessar um arquivo é a arborecência dada à sua localização no shell.
Utiliza-se as notações . e/ou ..

. nos permite descer na arborecência do repertório corrente
Nos permite num primeiro momento subir em arborecência.. nos permite num primero momento subir em arborecência com o objetivo de atingir outros repertórios.

Exemplo : o repertó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 repertó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 repertório ascii encontra-se em /home/yogi então escrevendo .. eu vou utilizar o repertó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 arborecência


Para se deslocar na arborecência utilizar o comando cd

cd /caminho/para/repertó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, tranquilize-se. 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 utilzando 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ácter…
  • 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.
Tranquilize-se, é 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 aquivo


- 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)
- escrevawq (para WriteQuit)
- 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 utiizados regularmente. Isto evita de redigitá-los.
A utilização exessiva 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 alais

O comando aliasafixa os alias existentes

XXX. Os redicionamentos 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 utiizando 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á substituido 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-.png|500px|]]
-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 simultâneamente, comando1 exucutando-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 simultâneamente

-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 sequenciamento :



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 metacaráteres, chamados igualmente caráteres 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 comprendido 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 repertório pessoal 
cd - : voltar ao repertó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 a esquerda do cursor 
Ctrl+w : apagar a palavra a esquerda do cursor  
Ctrl+k : apagar a palavra a direita do cursor 
Ctrl+y : colar a digitação precedente 
Ctrl+d : apaga o atual caráter, se a linha está 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 – gestionário 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 caráteres

Exemplo : Ls no lugar de ls



XXXV. Erro: Nenhum arquivo ou repertó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 droits d'accès

XXXVII. Conselhos de redação


O shell é bastante exigente na redação dos comandos.

Os caráteres que tem um sentido especial para o shell devem ser dissipados para obter o caráter literal.
Caráteres que tem um sentido especial para o shell :
  • o espaço
  • o ponto e vírgula ;
  • o slash /
  • o ante-slash \
  • o caráter | (pipe)
  • o esperluate &
  • o ponto .
  • as apóstrofes simples ( ' ) e duplas ( " )


De maneira geral, deve-se observar atentivamente os caráteres não alfabetonuméricos.

1. sensibilidade ao engano de digitação dos caráteres

Se o comando chama-se lsesteja seguro que é exatamente igual senão Ls não funcionará
Igualmente para o nome de arquivos e/ou repertó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 - sintáxe 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_supprimir 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_supprimir.
Devo dizer que você acabou de apagar todos os dados de seu sistema.
Que "home/yogi/a_supprimmir" 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 vezês, diversas escolhas se afixarão no ecrã. Normalmente são os repertó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 protegê- (colocar um ante-slash na frente)

Criar um arquivo que se chama "aa bb"



Note-se que o resultado obtido não está conforme com aquilo que se desejava.
Vamos ver somente um arquivo aa bb e não o arquivoaa 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 ante-slash você pode utilizar as apóstrofes simples touch 'aa bb'

O que se pode aprender com isto?
Cada vez que você utilizar caráteres não alfabetonuméricos, tais como $, espaço, \, etc. como caráter literal, se faz necessário os ante-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


Artigo original publicado por Lam20j
Melhores respostas por « SHELL BASH – Guia de utilização – Nível debutante » em :
Hierarquização e sumário automático no Word VerHierarquização e sumário automático no Word Hierarquização e sumário automático A utilização da hirarquização no word permite gerar automaticamente um sumário. Além do mais, permite simplificar as modificações de estilo e de paginação aplicada...
Transformar um arquivo Word (.doc) em PDF VerTransformar em arquivo PDF um arquivo Microsoft Word (.doc) Nada mais simples ! Abra seu arquivo *.doc com o OpenOffice.org Se for o caso, regule a paginação através do menu Formato / Página... A partir daí, você terá duas soluções para...
Download JKDefrag GUI VerMyDefrag é um magnífico desfragmentador , ágil , gratuito e muito eficaz . JKDefrag GUI , é uma interface de usuário ( que também inclui o programa MyDefrag) e que facilita sua utilização . JKDefrag GUI serve em bandeja de prata todas as...
Download NTFS Formated Drive Recovery VerNTFS Formated Drive Recovery localiza e restaura arquivos exluidos de uma unidade com formato NTFS, que é o mais habitual entre os computadores com sistema operativo Windows. Em primeiro lugar, o programa realiza uma análise do sistema de arquivos e...
TCP/IP VerO que significa TCP/IP? O TCP/IP é uma sequência de protocolos. A sigla TCP/IP significa “Transmission Control Protocol/Internet Protocol” e pronuncia-se “T-C-P-I-P”. Provém dos nomes dos dois protocolos essenciais da sequência de...
DNS (Sistema de nomes de domínio) VerO que é o DNS? Cada computador directamente ligado à Internet possui pelo menos um endereço IP próprio. Contudo, os utilizadores não querem trabalhar com endereços numéricos do tipo 194.153.205.26 mas com um nome de domínio ou endereços...