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
Comando | Função | Opções Úteis | |
---|---|---|---|
cat | Mostra arquivo | -n , -s | |
cut | Extrai campo | -d , -f , -c | |
date | Mostra data | -d , +'...' | |
find | Encontra arquivos | -name , -iname , -type f , -exec | |
grep | Encontra texto | -i , -v , -r , -qs , -w , -x | |
head | Mostra Início | -n , -c | |
printf | Mostra texto | nenhuma | |
rev | Inverte texto | nenhuma | |
sed | Edita texto | -n , s/isso/aquilo/ , d | |
seq | Conta Números | -s , -f | |
sort | Ordena texto | -n , -f , -r , -k , -t , -o | |
tail | Mostra Final | -n , -c , -f | |
tr | Transforma texto | -d , -s , A-Z a-z | |
uniq | Remove duplicatas | -i , -d , -u | |
wc | Conta 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áveis | Descrição | Testes em Arquivos | Descrição |
---|---|---|---|
-lt | Número é menor que (LessThan) | -d | É um diretório |
-gt | Número é maior que (GreaterThan) | -f | É um arquivo normal |
-le | Número é menor ou igual (LessEqual) | -r | O arquivo tem permissão de leitura |
-ge | Número é maior ou igual (GreaterEqual) | -s | O tamanho do arquivo é maior que zero |
-w | O arquivo tem permissão de escrita | ||
-ne | Número é diferente (NotEqual) | -nt | O arquivo é mais recente (NewerThan) |
= | String é igual | -ot | O arquivo é mais antigo (OlderThan) |
!= | String é diferente | -ef | O arquivo é o mesmo (EqualFile) |
-n | String é não nula | -a | E lógico (AND) |
-z | String é nula | -o | OU 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