BASH (Bourne - Again Shell) - De usuário para usuário

A idéia do presente artigo serve apenas como uma introdução ao shell, BASH, o terminal de linha de comandos do Linux, talvez algo antes mesmo do básico, servindo mesmo para afastar o medo que muitos usuários novos, e alguns nem tão novos assim, tem da linha-de-comando, como eu mesmo tive no início. Considere este um bate-papo de usuário para usuário. Este é meu primeiro artigo no VOL, boa leitura.

[ Hits: 43.218 ]

Por: Marcos Fiszer em 08/02/2008 | Blog: http://linuxercolossos.blogspot.com/


Shell, man pages e etc



Precisamos estar atentos para um detalhe importante no mundo Linux quando digitamos os comandos no terminal, porque existe diferenças entre maiúsculas e minúsculas, sendo isto tecnicamente chamado de case sensitive, ou seja, cd é diferente de CD, mv difere de MV, ls difere de LS, diretório difere de DIRETÓRIO e assim por diante, portanto muito cuidado quando digitar comandos.

Para sair do shell ou encerrar a sessão, use os comandos:

$ exit (este encerra apenas o shell em uso)

$ logout (encerra a sessão do usuário)

Os especialistas recomendam utilizar preferencialmente o exit porque pode acontecer que o usuário tenha invocado um shell a partir do outro.

Quando estamos no modo texto ou linha de comando no Linux temos uma diversidade enorme de comandos a nossa disposição para usar. Após digitarmos um comando qualquer sempre teclamos enter e a informação é examinada pelo interpretador de comandos (shell, terminal virtual, console ) e logo em seguida repassados para o Linux (kernel) que então executa a ação desejada ou retorna uma mensagem de erro. A sintaxe comumente usada pelos comandos é esta:

comando [opções] [argumentos]

Outra coisa legal de saber é como usar a ajuda do sistema estando no shell, ou seja, a ajuda nativa do sistema. Vamos lá.

No terminal é só digitar:

$ help

A saída do comando é esta (aqui está em português porque eu instalei os arquivos de tradução, mas normalmente estará em inglês mesmo):

$ help
GNU bash, version 3.2.25(1)-release (i486-pc-linux-gnu)
Esses comandos do shell são definidos internamente. Digite `help' para ver essa lista.
Digite `help nome' para saber mais sobre a função `nome'.
Use `info bash' para saber mais sobre shell em geral.
Use `man -k' ou `info' para saber mais sobre comandos que não estão nessa lista.

Um asterisco (*) próximo ao nome significa que o comando está desabilitado.
...

Depois deste texto acima vem uma lista de comandos internos do shell.

Segundo nosso guru de shell Julio Cézar Neves, em seu livro "Programação shell linux" na página 06, na 5ª edição explica o seguinte:

"O comando help é utilizado para mostrar informações gerais dos built-ins do shell ( chama-se built-ins os comandos que são incorporados ao shell, isto é, não são instruções autônomas como o who, por exemplo. São comandos cujos códigos se encontram incorporados ao código do shell). Este comando é muito útil para novos usuários."

Outra explicação muito boa nos é oferecida pelo Guia Focalinux, deste jeito, no item 31.4 HELP:

"Ajuda rápida, útil para saber que opções podem ser usadas com os comandos internos do interpretador de comandos. O comando help somente mostra a ajuda para comandos internos..."

Outra fonte de ajuda são as famosas man pages, páginas de manual, acessível também pelo shell. É a documentação padrão do Linux, ali está a ajuda para todos os comandos padrão do sistema, se você realmente quer fuçar o Linux e saber como as coisas funcionam, leia as man pages!

Os utilitários e aplicativos podem incluir instruções nas man pages, mas isso tem de ser feito por eles mesmos na sua instalação, espera-se que o desenvolvedor do aplicativo ou utilitário tenha programado isto. Tente ver a lista de documentação disponível dos aplicativos instalados no seu Linux, você vai ficar assustado com a quantidade de informação. As man pages são divididas em oito seções, como descrito abaixo.
  1. Comandos do usuários (User Commands): Comandos para serem executados a partir do shell.
  2. Chamadas do sistema (System Calls): Funções executadas pelo kernel.
  3. Bibliotecas de funções (Library Subroutines): A maioria das funções da biblioteca libc
  4. Formatos de arquivos especiais (File Formats): Drivers e hardware
  5. Arquivos de configuração (Miscellaneous): Formatos de arquivos e convenções
  6. Jogos e demonstrações (Games): Jogos do X11
  7. Pacotes de macros e convenções (Devices): Sistemas de arquivos, protocolos de rede, códigos ASCII e outros.
  8. Comandos de administração do sistema (System Administration): Comandos que geralmente só o root pode executar.

Para fazer uma consulta nas man pages basta usar uma sintaxe muito simples e eficiente:

man [seção] [tópico]
ou
man + comando

Exemplo:

$ man 1 ls
$ man mkdir

Sendo,
  • [seção] Indica uma das selões do manual
  • [tópico] Qual tópico pesquisar. Deve ser o nome do comando, chamada do sistema, biblioteca, etc.

Ou simplesmente:

man -k + palavra chave

(não se esqueça que sua palavra chave tem de estar em inglês)
Faz uma pesquisa com base na palavra chave que foi digitada listando comandos que possuam esta descrição. Exemplo:

$ man -k copy
bcopy (3) - copy byte sequence
btcopyannounce (1) - copy torrent announce information to other torrents
copysign (3) - copy sign of a number
copysignf (3) - copy sign of a number
copysignl (3) - copy sign of a number
cp (1) - copy files and directories
.....

Uma diferença básica se faz necessária ao utilizar o termo man, porque existe o comando man e o utilitário man, o comando apresenta as páginas de manual, entretanto man é também o utilitário de documentação padrão.

Depois de encontrar o tópico selecionado o programa aceita comandos diretamente. Alguns são:
  • -h Mostra a ajuda
  • q Sai do man
  • [N]e Avança uma linha ou N linhas
  • [N]y Volta uma linha ou N linhas
  • f Avança uma tela
  • b Volta uma tela
  • /texto Pesquisa um texto no texto apresentado pelo man
  • Mostra a próxima linha
  • Mostra a próxima página

Um comando muito útil que se pode utilizar no shell para obter informações é também o apropos:

Sintaxe:

apropos comando

Pesquisa um banco de dados que tem a descrição do comando desejado.Útil quando se deseja executar alguma tarefa e não se sabe o nome do comando.

Para descobrir por exemplo qual o compilador está instalado bastaria digitar:

$ apropos compiler
c++ (1) - GNU project C and C++ compiler
c89 (1) - ANSI (1989) C compiler
c89-gcc (1) - ANSI (1989) C compiler
c99 (1) - ANSI (1999) C compiler
c99-gcc (1) - ANSI (1999) C compiler
cc (1) - GNU project C and C++ compiler
ccmakedep (1x) - create dependencies in makefiles using a C compiler
g++ (1) - GNU project C and C++ compiler
g++-4.1 (1) - GNU project C and C++ compiler
gcc (1) - GNU project C and C++ compiler
gcc-4.1 (1) - GNU project C and C++ compiler
i486-linux-gnu-g++ (1) - GNU project C and C++ compiler
i486-linux-gnu-g++-4.1 (1) - GNU project C and C++ compiler
i486-linux-gnu-gcc (1) - GNU project C and C++ compiler
i486-linux-gnu-gcc-4.1 (1) - GNU project C and C++ compiler
.......

Depois de obter a informação bastaria:

$ man gcc

Como nem tudo são flores, caso apareça a seguinte mensagem:

$ apropos compiler
apropos : file /usr/local/main/whatis not found
Create the whatis database using the catman -w comand

Isto significa que o tal banco de dados ainda não foi criado e a mensagem está te dizendo para fazer isso e te fornece inclusive qual o comando para criar o banco de dados que o apropos vai utilizar. Então para construir o banco de dados basta digitar:

$ catman -w

Depois de criado o banco de dados o comando apropos ou man -k estará disponível.

Outro comando disponível para ajuda é o whatis. A diferença dele para o apropos é que o whatis obtém uma breve descrição do comando:

Sintaxe: whatis comando

$ whatis apropos
apropos (1) - search the manual page names and descriptions

$ whatis chmod
chmod (1) - change file access permissions
chmod (2) - change permissions of a file

Com apropos:

$ apropos chmod
chmod (1) - change file access permissions
chmod (2) - change permissions of a file
fchmod (2) - change permissions of a file
fchmodat (2) - change permissions of a file relative to a directory file descriptor

Muitas outras coisas poderiam ser colocadas aqui, mas penso que para o objetivo deste artigo, que é apenas mostrar que o shell pode ser relativamente fácil de se usar desde que se saiba como e se acostume, já é o suficiente. Entretanto vou listar ainda algumas teclas de atalho.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Shell puro
   3. Shell, a interface simples e poderosa
   4. Shell, man pages e etc
   5. Teclas de atalho
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Pilha de Diretórios (comandos pushd, popd e dirs)

Sabayon CoreCDX FluxBox 5.3, excelente!

Desktops 3D

Desmistificando o GNU/Linux

Referência de aplicativos para quem está começando no mundo GNU/Linux

  
Comentários
[1] Comentário enviado por tenchi em 08/02/2008 - 10:32h

Achei muito bom o texto. Nota 10.

[2] Comentário enviado por mcnd2 em 09/02/2008 - 16:43h

Está de parabéns por dar uma breve explicação para os usuários, principlamente os iniciantes.
Eu particularmente tenho contato com o linux desde 2004, mas só agora no final do ano de 2007 retirei definitivamente o windows do HD e deixei só linux mas ainda dependo do windows (emulado com o virtualbox) para a impressora e o cardão sd de minha camera. Agora que estou me familiarizando com o shell, que tem não por querere sim para um melhor aprendizado.

Mais uma vez está de parabéns.

[3] Comentário enviado por benjarocks em 10/02/2008 - 12:14h

Muito bom Mdfiszer!

Artigo explicativo e simples.

Parabéns pelo ótimo início! \o


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts