Guia Essencial de Comandos e Scripts Shell no Linux

Classificado em Computação

Escrito em em português com um tamanho de 7,84 KB

Introdução ao Shell

O Shell é um interpretador de comandos. Cada comando digitado é lido, verificado, interpretado e enviado ao sistema operacional para ser de fato executado.

Funcionando como uma ponte, o Shell é a ligação entre o usuário e o Kernel. O Kernel é quem acessa os equipamentos (hardware) da máquina, como disco rígido, placa de vídeo e modem. Por exemplo, para o usuário ler um arquivo qualquer, toda esta hierarquia é seguida:

USUÁRIO --> SHELL --> KERNEL --> DISCO RÍGIDO

Execução de Comandos

Para que um comando seja executado, ele deve estar disponível no PATH do sistema.

Scripts Shell

Um script é um arquivo que armazena vários comandos e pode ser executado sempre que necessário.

Shebang

Para que o sistema saiba qual interpretador deve ser usado ao executar um script, é comum adicionar a linha #!/bin/bash (conhecida como shebang) no início do arquivo.

Tornando um Script Executável

Para tornar um script executável, utilize o comando chmod +x nome_do_script.

chmod +x sistema

Comandos Essenciais do Shell

Comando echo

O comando echo é utilizado para exibir mensagens na tela. Para usá-lo, basta colocar o texto entre aspas. Se nenhum texto for fornecido, uma linha em branco será exibida.

Variáveis e Operadores

  • O conteúdo de uma variável é acessado prefixando seu nome com um cifrão ($).
  • O comando test é útil para realizar diversos tipos de verificações em textos e arquivos.
  • O operador lógico && (AND) executa o segundo comando apenas se o primeiro for bem-sucedido. O operador inverso é o || (OR), que executa o segundo comando se o primeiro falhar.

Armazenando Saída de Comandos em Variáveis

Para armazenar a saída de um comando em uma variável, utilize a sintaxe $(comando). Veja um exemplo:

prompt$ HOJE=$(date)
prompt$ echo "Hoje é: $HOJE"
Hoje é: Sáb Abr 24 18:40:00 BRT 2004

Apagando Variáveis

O comando unset é utilizado para apagar uma variável.

Variáveis de Ambiente Padrão

Para visualizar as variáveis de ambiente que o Shell define por padrão, utilize o comando env.

Argumentos de Comandos

Diferente de outras linguagens de programação, o Shell não utiliza parênteses para separar um comando de seus argumentos.

Comando cat

O comando cat exibe o conteúdo de um arquivo. Por exemplo, cat -n sistema mostra o script 'sistema' com as linhas numeradas. A opção -n instrui o comando a numerar as linhas, e 'sistema' é o nome do arquivo.

Tabela de Comandos Úteis

ComandoFunçãoOpções Úteis
catMostra arquivo-n, -s
cutExtrai campo-d, -f, -c
dateMostra data-d, +'...'
findEncontra arquivos-name, -iname, -type f, -exec
grepEncontra texto-i, -v, -r, -qs, -w, -x
headMostra Início-n, -c
printfMostra textonenhuma
revInverte textonenhuma
sedEdita texto-n, s/isso/aquilo/, d
seqConta Números-s, -f
sortOrdena texto-n, -f, -r, -k, -t, -o
tailMostra Final-n, -c, -f
trTransforma texto-d, -s, A-Z a-z
uniqRemove duplicatas-i, -d, -u
wcConta Letras-c, -w, -l, -L

Obtendo Ajuda sobre Comandos

Para obter mais informações sobre um comando específico, utilize man comando ou comando --help.

Operadores de Redirecionamento e Pipe

Pipe (|)

O operador pipe (|) permite canalizar a saída de um comando diretamente para a entrada de outro, criando uma cadeia de comandos. Exemplo:

prompt$ cat /etc/passwd | grep root | cut -c1-10
root:x:0:0
operator:x

Redirecionamento de Saída (>)

É possível redirecionar a saída de um comando para um arquivo em vez de exibi-la na tela, utilizando o operador de redirecionamento (>). Para salvar a saída do comando anterior no arquivo 'saida', por exemplo:

prompt$ cat /etc/passwd | grep root | cut -c1-10 > saida
prompt$ cat saida
root:x:0:0
operator:x

Comando test: Verificações Condicionais

O comando test é fundamental para realizar verificações em scripts Shell.

Testes em VariáveisDescriçãoTestes em ArquivosDescrição
-ltNúmero é menor que (LessThan)-dÉ um diretório
-gtNúmero é maior que (GreaterThan)-fÉ um arquivo normal
-leNúmero é menor ou igual (LessEqual)-rO arquivo tem permissão de leitura
-geNúmero é maior ou igual (GreaterEqual)-sO tamanho do arquivo é maior que zero
-wO arquivo tem permissão de escrita
-neNúmero é diferente (NotEqual)-ntO arquivo é mais recente (NewerThan)
=String é igual-otO arquivo é mais antigo (OlderThan)
!=String é diferente-efO arquivo é o mesmo (EqualFile)
-nString é não nula-aE lógico (AND)
-zString é nula-oOU lógico (OR)

Expressões Aritméticas

A construção utilizada para indicar uma expressão aritmética no Shell é $((...)).

Estruturas de Controle: Condicionais e Laços

O Shell também possui estruturas para condicionais e laços (loops). As mais utilizadas são if, for e while.

Estrutura if

if COMANDO
then
    comandos
else
    comandos
fi

Estrutura for

for VAR in LISTA
do
    comandos
done

Estrutura while

while COMANDO
do
    comandos
done

Entradas relacionadas: