Linux Essencial/Lição Interpretador de comandos e interface gráfica

  • Objetivo(s): Apresentar os ambientes de Linha de Comando embutidos nas Interfaces Gráficas.
  • Direitos autorais e licença: Veja notas de direitos autorais e licença no final da lição.

Console gráfico

editar

Os consoles gráficos são muito mais do que simples janelas de fundo preto onde o usuário insere linhas de comando para dizer ao computador o que deve ser feito. Os ambientes de texto são ferramentas poderosas que permitem o envio de inúmeras instruções ao computador de forma precisa e rápida. Muitas tarefas em ambientes GNU/Linux só podem ser feitas através pelos terminais de texto. Com terminais de texto, por exemplo, é possível controlar máquinas à distância pela internet, usando conexões fracas como uma linha discada, uma vez que todos os dados transferidos são apenas texto.

Programas gráficos como Konsole (padrão do KDE), Gnome-terminal (padrão do Gnome) e xterm (pai de muitos outros terminais gráficos, como, por exemplo: eterm, wterm, aterm, etc) permitem a criação e o uso de terminais texto dentro do ambiente gráfico, poupando o usuário de ter que utilizar os atalhos Ctrl+Alt+Fx (sendo x o valor do console que se deseja trabalhar) para mudar de tela sempre que precisar executar um programa na linha de comando.

Atalhos no teclado

editar

Para facilitar o uso do interpretador de comandos pelos usuários existem teclas e combinação de teclas que realizam determinadas ações. Por exemplo, ao invés de reescrever um comando que acabou de ser utilizado podemos apenas usar as setas para cima e para baixo. Ao pressionar a seta para cima o último comando digitado irá aparecer na tela, e cada vez que a seta for pressionada, aparecerá o comando anterior.

Outra dica importante é a utilização da tecla tab para complementar as informações que estão sendo digitadas. Se o comando estiver sendo digitado corretamente, quando o tab for pressionado, o interpretador de comandos tentará completar a palavra da melhor forma possível, e se isso não ocorrer, poderemos pressionar o tab duas vezes seguidas, isso fará com que o interpretador mostre todas as possibilidades que completarão a palavra a partir do que foi digitado. Por exemplo:

Desejo digitar no console "dhclient". Digitamos "d" no terminal e pressionamos tab.

Terminal linux com usuário root (sudo), caractere "d"

Nada aconteceu. Logo, pressionamos tab duas vezes e veremos que será mostrada uma pequena lista de possibilidades úteis para quando não lembrarmos exatamente como se escreve um comando ou mesmo quando o nome de uma pasta for grande.

Terminal linux com usuário root (sudo), caractere "d" com tab

Digitamos então "dhcl" e pressionamos tab. O console completará o que queremos digitar.

Terminal linux com usuário root (sudo), caractere "dhclient"

Além do tab e das setas para cima e para baixo temos também outros atalhos como o ctrl+d que fecha a janela do terminal ou da aba que estamos utilizando. A combinação de teclas ctrl+l limpa a tela do terminal, como veremos nos próximos tópicos com o comando clear.

O comando clear (também acessível através da combinação de teclas Ctrl+L) serve para limpar a tela, em modo texto.

Com a utilização da combinação de teclas Ctrl+L, o usuário pode permanecer com os comandos já digitados sem a necessidade de apagar a linha de comando, como acontece com o clear.

Histórico de comandos

editar

Para cada comando digitado, um histórico de sua utilização é armazenado. Esses comandos podem ser reutilizados pelo usuário, bastando para isso utilizar setas para cima e para baixo, como foi dito anteriormente.

history

editar

Comandos digitados no interpretador de comandos são armazenados para uso posterior. O comando history é um dos métodos disponíveis para esse fim.

Sintaxe:

history [opções] [arquivo] [argumento] [linha]

opções:

n - número de linhas a serem apresentadas contando o último comando

-c - limpa todo o histórico

-d linha - deleta a linha indicada

-r arquivo - não registra a entrada do comando, utilizando o history existente.

$history

Um determinado comando poderá ser executado novamente, bastando para isso digitar “!comando” (ponto de exclamação e o comando desejado), assim a última linha que esse comando foi realizado será executada novamente.

Exemplo:

$!cd

Nesse exemplo o sistema irá fazer uma busca nos comando executados pelo último “cd” do usuário, e ao encontrar o comando desejado o sistema irá executá-lo. Também é possível a re-execução de um comando com base no seu número no histórico. No exemplo que segue, o comando 2 é equivalente a ls:

$ history
1  cd /proc/sys
2  ls
3  history
$ !2
abi  debug  dev  fs  kernel  net  proc  vm

.bash_history

editar

O .bash_history é o arquivo que serve de armazenamento do histórico de comandos do usuário. Por se tratarem de dados de um usuário em específico, eles ficam localizados no diretório pessoal do usuário em questão. Por ser um arquivo que contém informações manipuladas apenas de maneira indireta, ele possui um nome que o mantém oculto (nome iniciado por “.”).

Esse arquivo oculto existe dentro de cada pasta pessoal do usuário no sistema, e tem a responsabilidade de armazenar todas as informações geradas por aquele usuário no interpretador de comandos.

As informações aqui encontradas são meramente representação dos arquivos de log, sobre os registros de todos os usuários, servindo para uma busca mais rápida. O apagamento desse arquivo não implica na limpeza das informações feitas sobre o usuário.

Os arquivos de logs são os responsáveis pelo armazenamento de todas as informações geradas dentro do sistema, tanto como entrada de dados pelo interpretador quanto por informações geradas pela rede, e-mail, ou outros serviços.

Exercícios de Revisão

editar

1. É possível o uso do interpretador de comandos em um ambiente gráfico?

2. Onde ficam gravados os comandos digitados pelo usuário no console?

3. Qual a utilidade do comando clear?

4. Como é utilizada a tecla tab para facilitar o uso da interface de texto?