Topo

quarta-feira, 10 de outubro de 2012

Introdução à linha de comandos: parte I

A linha de comandos, também conhecida como interpretador de comandos ou consola, foi uma das primeiras formas de um utilizador poder dar instruções a um computador, antes do aparecimento de qualquer interface gráfica. Hoje em dia, a linha de comandos, que consiste numa interface de texto entre o ser humano e a máquina, continua a ser a mais direta forma de comunicação entre ambos. A interface gráfica não é mais do que um intermediário intuitivo1 e atraente1 entre o utilizador e a linha de comandos2.

Muitas tarefas podem ser executadas na linha de comandos, tais como criar, copiar, apagar, mover e editar ficheiros, alterar a configuração do sistema, criar e remover utilizadores, alterar passwords dos utilizadores, editar imagens, editar vídeos, criar menus para DVDs, gravar CDs e DVDs, ver páginas web, ver e alterar configurações de rede, testar o acesso a servidores remotos, procurar ficheiros e sequências de caracteres dentro de ficheiros no nosso disco, e até programar (pois a própria linha de comando tem uma linguagem de programação, até no Windows!). Certamente que nem todas estas tarefas são muito adequadas para a linha de comandos (editar um vídeo!?), mas garanto que em certas e determinadas situações a linha de comandos pode ser muito prática e produtiva. Nesta primeira série de posts sobre a linha de comandos vou apenas falar de coisas básicas, nomeadamente a gestão de ficheiros, a hierarquia de pastas no Linux, bem como outros comandos simples e úteis. Um bom entendimento destas questões é essencial para um bom programador.

Vamos começar então pelo sistema de ficheiros, bem como a sua listagem. Vamos abrir o gestor de ficheiros, que automaticamente nos vai situar na pasta "Home". Nesta pasta vamos ver as típicas sub-pastas contendo o ambiente de trabalho (desktop), os vídeos, imagens, etc. Agora abrimos um terminal, de modo a acederemos à linha de comandos. Por defeito, o terminal também é inicialmente aberto na tua pasta "Home". No terminal escreve:

$ ls

No linux Mint vais ver algo parecido com a imagem seguinte (noutras distribuições deverás ver algo muito semelhante):


Podemos verificar que o comando ls fornece a mesma informação que o gestor de ficheiros gráfico, embora numa forma puramente textual. Quando executado sem mais parâmetros, o comando ls (diminutivo de list) lista os conteúdos da pasta atual (neste caso, a pasta "Home"). No entanto podemos adicionar vários parâmetros para modificar a informação retornada pelo ls. Por exemplo, para mostrar o conteúdo em forma de lista, com informação adicional sobre cada ficheiro, podemos fazer:

$ ls -l

Para mostrar o conteúdo da sub-pasta "Videos" (assumindo que estamos na pasta "Home"), podemos fazer:

$ ls Videos

Numa instalação recente de Linux o mais certo é a pasta "Videos" estar vazia. Podemos ainda juntar os dois parâmetros anteriores para listar o conteúdo da sub-pasta "Videos" em forma de lista:

$ ls -l Videos

É muito fácil obter ajuda para os comandos existentes. Para isso basta usar o comando man (manual de referência), que coloca no ecrã o manual do comando que quisermos. Para obter ajuda para o comando ls, fazemos:

$ man ls

Podemos inclusive obter ajuda para o próprio comando man! Para isso basta fazer:

$ man man

A informação devolvida pelo comando man pode por vezes parecer confusa, mas uma leitura mais aprofundada dá sempre resultado. Nomeadamente, ao executarmos o comando anterior, obtemos a explicação de como interpretar a sinopse (resumo) de qualquer comando. Basicamente, indica o seguinte:

  • texto negrito »» escrever exactamente como indicado.
  • texto sublinhado »» substituir com argumento apropriado.
  • [-abc] »» quaisquer argumentos dentro de [ ] são opcionais. 
  • -a|-b »» opções delimitadas por | não podem ser usadas em simultâneo. 
  • argument ...  »» argumento pode ser usado várias vezes. 
  • [expression] ... »» toda a expressão dentro de [ ] pode ser usada várias vezes.

No manual do ls podemos verificar que a sinopse deste comando é:

ls [OPTION]... [FILE]...

Ou seja, podemos concluir que:
  • ls deve ser escrito exactamente como indicado, pois está a negrito.
  • Todos os argumentos do ls são opcionais (estão dentro de [ ]).
  • Todos os argumentos do ls podem ser usados várias vezes, devido às reticencias...
  • Os argumentos indicados devem ser substituídos pelo argumento certo, pois estão em texto sublinhado (no exemplo mais atrás substituímos OPTION por -l e FILE por Videos).

Vamos experimentar ver o manual dos comandos que executamos no post anterior:

$ man sudo
$ man apt-get
$ man gedit
$ man mkdir
$ man gcc


Talvez seja mais fácil perceber algumas das coisas que fizemos. É de notar que o comando cd não tem manual, visto que é demasiado simples, pois basta fazer cd pastaDeDestino. Sugiro ainda a leitura ou observação rápida do manual dos seguintes comandos comuns e/ou essenciais:

  • rmdir - Remover pasta
  • rm - Remover ficheiro(s)
  • mv - Mover ou renomear ficheiros ou pastas
  • cat - Ver o conteúdo de um ficheiro
  • zip/unzip - Comprimir/descomprimir um ficheiro .zip
  • pwd - Ver o caminho completo da pasta atual
  • ps - Ver processos/programas em execução
  • kill - Terminar um processo em execução
  • passwd - Alterar a password de utilizador

No próximo post falarei mais em pormenor sobre a gestão de ficheiros, nomeadamente os comandos para esse efeito, a hierarquia de pastas e o sistema de permissões. Em princípio serão um total de três ou quatro posts sobre a linha de comando, antes de voltarmos ao nosso primeiro programa em C.

Até breve!

1Discutível e depende do caso.

2As interfaces gráficas usam a linha de comandos de uma forma escondida do utilizador, seja no Windows, MacOS X ou Linux. Por exemplo, no Linux Mint, podemos ver que comando é na realidade executado ao clicarmos em qualquer aplicação na interface gráfica: Menu => Preferências (ou Preferences) => Menu Principal (ou Main Menu). A aplicação que acabámos de abrir serve para organizar o nosso menu (raramente o precisamos de fazer, mas em todo o caso temos essa opção). Se clicarmos onde diz "Internet", e clicarmos duas vezes em cima de "Firefox Web Browser", aparece-nos uma nova janelinha com vários campos, um dos quais diz "Comando" (ou "Command"). Podemos ver que o comando a executar é firefox %u, em que o %u é substituído por um endereço web (URL) na altura da execução (ver imagem em baixo). Para verificares isto, abre um terminal e escreve firefox www.publico.pt. Senão quiseres que o terminal pendure à espera que o Firefox termine a execução, podes escrever firefox www.publico.pt &, tal como indiquei no post anterior. Notar que a forma de organizar o menu principal pode variar de distribuição para distribuição.


Sem comentários:

Enviar um comentário