LPIC 1 - 103.1 TRABALHAR NA LINHA DE COMANDO

Neste tópico iremos aprender a interagir com o shell na linha de comando. Aprenderemos a modificar o ambiente shell, exportar variáveis, chamar comandos dentro e fora do caminho definido e usar e editar o histórico de comandos.



Peso 4

O que difere o GNU/Linux de outros sistemas operacionais é o uso do sistema através da linha de comando para gerenciarmos o sistema. No começo parece difícil mas te digo que depois que você se acostuma, verá que é muito simples e prático editar arquivos de configurações, chamar programas, gerenciar processos etc.

Para isso, precisamos conhecer o nosso ambiente de linha de comando. Vejamos agora configuração de alias, variáveis, comandos sequenciais, referências, manuais.

Shell Bash

O shell é o ambiente que faz a intermediação do usuário com recursos do computador. Entenda que o shell, a linha de comando, é um ambiente de programação em tempo real para executar tarefas.
Na maioria das distribuições, o shell padrão é o bash - Bourne Again Shell.

Alias

Agrega comandos recorrentes que contém muitos argumentos. Por exemplo. Digamos que você utiliza muito o comando rm  - para deletar arquivos/diretórios - e no caso, mais precisamente, não quer digitar rm -r para deletar diretórios e nem quer confirmar toda vez que for realizar algo do tipo, você pode criar um alias para que toda vez que chamar o comando rm, ele já vir incluso com a opção -rf, dessa forma: alias rm='rm -rf' . Ou se quiser obrigar a confirmação ao utilizar o comando rm, pode-se criar o alias rm='rm -i'

Contudo, digitar no terminal o comando alias + o atalho e seus argumentos, fará com que no termino da seção atual, a alteração não fique salva. Para que essas alterações fiquem permanentes, podemos editar o arquivo .bashrc e configura-las.

Os alias podem conter qualquer nome mas não podem ter caracteres especiais e nem espaços.

Alguns modelos de alias



Variáveis

São semelhantes as variáveis de linguagens de programação. Para criar uma variável, informa-se o nome, sem espaços, e seu valor, da seguinte forma:

suco_de_laranja=LARANJA

Para verificar se foi criado corretamente, digitamos o comando echo + $nome_da_variável, assim:

echo $suco_de_laranja - o resultado será LARANJA.

Existem dois tipos de variáveis: as locais e as exportadas.
Locais - são aquelas que são acessíveis apenas na seção atual do shell
Exportadas - estão acessíveis na seção atual do shell e demais seções iniciadas a partir da atual.

Comandos uteis para trabalharmos com as variáveis

alias - cria um nome alternativo para um comando.
exec - substitui a seção atual do shell. Exemplo: exec telinit 1 - muda para o nível de execução para 1 e encerra a seção do shell
env - mostra todas as varáveis e seus conteúdos.
export - define uma variável para a seção atual e para todas as seções iniciadas a partir da atual.
echo - replica um texto digitado ou exibe o valor da variável informada - echo $PATH
pwd - mostra o diretório atual
set - define o valor de uma variável. Se usar sem argumentos, mostra todas as variáveis que já foram definidas.
unset - remove uma variável.

Variáveis pré-definidas

Existem variáveis pré-definidas, sejam internas do Bash ou em arquivos de configuração. Algumas delas:

DISPLAY - determina em qual display do X o programa deve exibir as janelas
HISTFILE - caminho para o histórico de comandos
HOME - diretório pessoal do usuário
LOGNAME - nome que o usuário usou para logar no sistema
PATH - lista de diretórios onde os programas serão procurados caso o programa tenha sido chamado sem o seu caminho completo ou relativo
PWD - diretório atual
SHELL - shell utilizado

Adicionar um caminho de um programa ao PATH - PATH=$PATH:/diretório
Exemplo: PATH=$PATH:/home/games/Call_of_Duty

Comandos sequenciais

Pode-se utilizar dois ou mais comandos para executar tarefas e ainda podemos utilizar um comando apenas se o anterior deu erro ou se teve sucesso. Para isso, utilizamos os seguintes caracteres entre comandos:
; || &&

; (ponto e vírgula) - utilizamos quando queremos que os comandos sejam executados independentes do resultado anterior. Exemplo:
apt-get update ; apt-get upgrade

|| (pipe) - executa o próximo comando apenas se o anterior deu erro. Exemplo:
cp || date - o comando cp (copiar), dará erro, pois foi executado de forma incompleta. Como ele deu erro, ele executará o comando date, mostrando a data e a hora do sistema.

&& - usamos quando o comando anterior não apresentou erro. Exemplo:
apt-get update && apt-get upgrade - o comando apt-get update será executado e se não der nenhum erro, ele executará o comando seguinte, apt-get upgrade.

Manuais

No GNU/Linux todos os comandos vem acompanhados de manuais, que mostra detalhes das funções do programa e suas variações.

O formato dos manuais tem a seguinte estrutura:

Nome - Assunto da página seguido por uma breve descrição
Sinopse - Sintaxe do comando
Descrição - uma descrição detalhada
Opção - revisão de todas as opções e suas funções
Arquivos - arquivos relacionados aos assuntos
Veja também - outras páginas de manuais relacionadas ao tópico

Os manuais são organizados por seções, que vão de 1 a 8:
1 - programas disponíveis ao usuário;
2 - rotinas de sistema Unix e C;
3 - Rotinas de bibliotecas de linguagens;
4 - Arquivos especiais;
5 - Convenções de formatos de arquivos;
6 - Jogos;
7 - Diversos;
8 - Procedimentos administrativos.

Para vermos termos de referências dos manuais, usamos o comando whatis. Ele irá mostrar as seções presentes dos manuais sobre o termo pesquisado

whatis man
man (1)              - an interface to the on-line reference manuals
man (1p)             - display system documentation
man (7)              - macros to format man pages

Agora, para acessarmos a seção diretamente do manual, digitamos:

man 7 man

Diretórios e arquivos - man

Os manuais ficam localizados em /usr/share/man e /usr/man/ mas outros locais podem ser acrescentados editando a variável $MANPATH. O arquivo de configuração é /usr/man/lib.conf ou /etc/man.conf.

O comando UNAME

Serve para mostrar informações sobre o sistema operacional, a versão do kernel, arquitetura do sistema e várias outras informações.

Sintaxe - uname -[opções]
-a - mostra todas as informações
-o - exibe o sistema instalado
-m - mostra a arquitetura de hardware da máquina (32 bits, 64 bits, etc)
-n - exibe o nome da máquina
-r - mostra a versão do kernel
-s - nome do kernel da máquina

Comando HISTORY

Mostra os últimos comandos digitados no terminal. Podemos navegar nos últimos comandos com a tecla da seta para cima do teclado ou digitarmos o comando history.
Ele irá exibir uma listagem dos últimos comando com uma numeração ao lado.

Algumas opções interessantes do history:

history -c - limpa o histórico
!p - executa o último comando digitado que começou com a letra p
!135 - executa o comando de número 135
!! - executa o último comando

Por padrão, o history armazena os últimos 1000 comandos digitados. A lista desses comando ficam no arquivo ~./bash_history. Para alterar esse valor, editamos o arquivo ~./bashrc. Para vermos o valor da variável:

echo $HISTSIZE


Comentários