Neste artigo, vamos explorar o shell, executar comandos básicos, visualizar o histórico de comandos utilizados anteriormente e aprender a exportar variáveis de ambiente.
bash
Interpretador de comandos padrão usado para interagir com o sistema e executar scripts.echo
Exibe mensagens ou valores de variáveis no terminal.env
Exibe as variáveis de ambiente disponíveis no sistema.export
Define variáveis de ambiente que podem ser acessadas por subprocessos.pwd
Mostra o diretório de trabalho atual.set
Exibe ou configura variáveis e opções do shell.unset
Remove variáveis do ambiente ou do shell.type
Indica como o shell interpreta um comando (builtin, função, alias, etc.).which
Mostra o caminho completo do executável de um comando.man
Acessa os manuais de ajuda dos comandos do sistema.uname
Fornece informações sobre o sistema operacional e o kernel.history
Exibe o histórico de comandos executados na sessão atual.- .
bash_history
Arquivo que armazena o histórico de comandos usados em sessões anteriores. - Quoting Forma de controlar como o shell interpreta strings, variáveis e comandos dentro de aspas.
Shell
Shell é um programa que permite ao usuário interagir com o sistema operacional digitando comandos. Ele interpreta o que você escreve e envia para o sistema executar.
Bash (Bourne Again SHell) é o shell mais comum no Linux. É poderoso, fácil de usar e vem por padrão na maioria das distribuições Linux.
Além do bash, outros shells populares no Linux são:
- sh (Bourne Shell): o shell mais antigo, simples e estável.
- zsh (Z Shell): muito customizável, com recursos avançados e populares entre desenvolvedores.
- fish (Friendly Interactive Shell): moderno, com sugestões automáticas e colorido.
- csh (C Shell): com sintaxe parecida com a linguagem C.
- tcsh: uma versão melhorada do csh, com mais funcionalidades.
Exemplos práticos de comandos no Shell, usando bash
pwd exibe a pasta acessada atualmente
elder@debian1:~$ pwd /home/elder
uname mostra certas informações sobre o sistema. Por exemplo, para ver o número exato da versão de sua distribuição ou a versão do kernel do Linux atualmente carregada.
elder@debian1:~$ uname -a Linux debian1 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux
Acima é exibido que 6.1.0-28 é a versão atual do kernel, que usamos debian como distro e uma CPU de 64 bits (x86_64).
man são documentos altamente estruturados cujo conteúdo dividido intuitivamente em cabeçalhos padronizados.
Para ver a documentação do comando uname:
elder@debian1:~$ man uname
apropos se não souber o nome do comando exato para usar com o comando “man” poderá usar apropos seguido de uma palavra relativa ao que o comando faz.
elder@debian1:~$ apropos copy debconf-copydb (1) - copia uma base de dados de debconf bcopy (3) - copy byte sequence copy_file_range (2) - Copy a range of data from one file to another copysign (3) - copy sign of a number copysignf (3) - copy sign of a number copysignl (3) - copy sign of a number cp (1) - copy files and directories cpgr (8) - copy with locking the given file to the password or group file cpio (1) - copy files to and from archives
Acima, é exibido uma lista de comandos relacionados com copy ou copiar.
veja outro exemplo,
elder@debian1:~$ apropos kernel arp (7) - módulo de kernel para ARP em Linux bootparam (7) - introdução aos parâmetros de inicialização do kernel do Linux kmem (4) - memória do sistema, memória do kernel e portas do sistema mem (4) - memória do sistema, memória do kernel e portas do sistema port (4) - memória do sistema, memória do kernel e portas do sistema slabtop (1) - exibe informações de cache de slabs do kernel em tempo real sysctl (8) - configura parâmetros do kernel em tempo de execução
type é uma alternativa ao man e ao apropos, pois exibe uma definição bem resumida sobre os comandos.
elder@debian1:~$ type pwd pwd é um comando interno do shell
elder@debian1:~$ type cp cp é /usr/bin/cp
elder@debian1:~$ type kill which whereis kill é um comando interno do shell which é /usr/bin/which whereis é /usr/bin/whereis
Em geral, pwd fala em qual diretório o comando reside.
preste atenção em “type uname”
elder@debian1:~$ type uname uname está na tabela hash (/usr/bin/uname
Acima vemos que ele é hashed ou “está na tabela hash“. A razão para isso é que uname foi usado recentemente e, para aumentar a eficiência do sistema, o comando foi adicionado a uma tabela de hash para ficar mais acessível na próxima vez que for executado. Se reiniciarmos o sistema ele volta a ser exibido como um binário regular.
Se quiser limpar a tabela hash sem precisar reiniciar o sistema Linux, execute:
elder@debian1:~$ hash -d uname
which é mais simples que o comando type. Ele localiza um comando. which retorna somente a localização absoluta de um comando.
elder@debian1:~$ which uname /usr/bin/uname
help pode ser usado exibir informações sobre comandos internos do shell (“builtin”).
history lista os comandos executados anteriormente. execute history para exibir os comandos mais recentes em ordem de execução.
elder@debian1:~$ history ..... 44 type uname 45 which --help | head 46 which --help 47 man which 48 which uname 49 which which 50 bash_history 51 history
.bash_history
Exibe ou reutiliza comandos executados anteriormente. É um arquivo localizado no diretório do usuário que armazena o histórico dos comandos digitados por ele no terminal Bash. Ele permite consultar comandos usados anteriormente mesmo após encerrar a sessão.
O . no início do nome do arquivo .bash_history
significa que ele é oculto e pode ser visto somente se executarmos ls -a
elder@debian1:~$ ls -a /home/elder . .. .bash_history .bash_logout .bashrc .lesshst .profil
veja o conteúdo de .bash_history com cat
elder@debian1:~$ cat ~/.bash_history su - ssh 192.168.100.11 ip -br a ssh 192.168.100.11 cat /etc/drbd.d/global_common.conf lsblk
“~/” é a mesma coisa que “/home/elder”
Ao usar as setas para cima e para baixo você navegará nos comandos executados anteriormente.
Clique aqui para mais artigos sobre LPI.
Vamos deixar para falar sobre variáveis no próximo artigo.