A partir de hoje entro no Tópico 2 - Encontrando seu caminho em um sistema Linux. É aqui que o uso real do terminal começa.
Material de referência - manual oficial do LPI:
👉 https://learning.lpi.org/pt/learning-materials/010-160/
Objetivo do exame:
👉 Linux Essentials v1.6 - Objetivo 2.1: O básico sobre a linha de comando
O que é a Linha de Comando?
A linha de comando - também chamada de terminal, shell ou CLI (Command Line Interface) - é a forma mais direta e poderosa de interagir com um sistema Linux.
Enquanto a interface gráfica exige cliques e janelas, a linha de comando permite executar tarefas complexas com apenas algumas palavras. É por isso que administradores de sistemas, desenvolvedores e profissionais de TI dominam o terminal.
💡 No Linux, tudo o que você faz na interface gráfica pode ser feito no terminal. O contrário nem sempre é verdade.
O Shell
O shell é o programa que interpreta os comandos que você digita e os envia ao kernel para execução.
Tipos de shell mais comuns
| Shell | Descrição |
|---|---|
| Bash | Bourne Again Shell - padrão na maioria das distros Linux |
| sh | Bourne Shell - o original, mais básico |
| zsh | Z Shell - popular, com mais recursos que o Bash |
| fish | Friendly Interactive Shell - foco em usabilidade |
| dash | Shell leve, usado em scripts do sistema |
💡 Para a certificação Linux Essentials, o foco é no Bash - o shell padrão da maioria das distribuições.
Como saber qual shell está em uso?
$ echo $SHELL
/bin/bash
$ echo $0
bash
O Prompt de Comando
Quando você abre o terminal, o prompt aparece aguardando sua entrada. Ele tem um formato padrão:
usuario@hostname:diretorio_atual$
| Parte | Significado |
|---|---|
usuario |
Nome do usuário logado |
@hostname |
Nome da máquina |
:diretorio_atual |
Diretório onde você está |
$ |
Usuário comum |
# |
Usuário root (superusuário) |
Exemplos:
carlos@ubuntu:~$ # usuário comum no diretório home
carlos@ubuntu:/etc$ # usuário comum em /etc
root@ubuntu:~# # usuário root
⚠️ O símbolo
#no prompt indica que você está como root. Tenha muito cuidado - comandos executados como root podem afetar todo o sistema sem confirmação.
Anatomia de um Comando
Todo comando Linux segue uma estrutura básica:
comando [opções] [argumentos]
| Parte | Descrição | Exemplo |
|---|---|---|
| comando | O programa a executar | ls |
| opções | Modificam o comportamento | -l, -a, --help |
| argumentos | O alvo do comando | /home/usuario |
Exemplos práticos:
$ ls # só o comando
$ ls -l # comando + opção curta
$ ls --all # comando + opção longa
$ ls -la /home # comando + opções + argumento
$ cp arquivo.txt /tmp/ # comando + argumento + argumento
Opções curtas vs. longas
# Estas duas linhas fazem a mesma coisa:
$ ls -a
$ ls --all
# Opções curtas podem ser combinadas:
$ ls -l -a -h
$ ls -lah # equivalente e mais conciso
Atalhos Essenciais do Terminal
Dominar esses atalhos economiza muito tempo no dia a dia:
Navegação e edição
| Atalho | Função |
|---|---|
Ctrl + A |
Vai para o início da linha |
Ctrl + E |
Vai para o final da linha |
Ctrl + U |
Apaga da posição atual até o início |
Ctrl + K |
Apaga da posição atual até o final |
Ctrl + W |
Apaga a palavra anterior |
Ctrl + L |
Limpa a tela (equivalente a clear) |
Tab |
Autocompletar comando, arquivo ou diretório |
Tab Tab |
Lista todas as possibilidades de autocompletar |
Histórico de comandos
| Atalho | Função |
|---|---|
↑ / ↓ |
Navega pelo histórico de comandos |
Ctrl + R |
Busca reversa no histórico |
!! |
Repete o último comando |
!ls |
Repete o último comando que começava com "ls" |
# Exemplos de uso do histórico
$ history # exibe os últimos comandos
$ history 10 # exibe os últimos 10 comandos
$ !42 # executa o comando número 42 do histórico
$ !! # repete o último comando
$ sudo !! # repete o último comando com sudo
Variáveis de Ambiente
As variáveis de ambiente são valores que o sistema usa para configurar o comportamento do shell e dos programas.
Visualizando variáveis
$ env # lista todas as variáveis de ambiente
$ printenv # equivalente ao env
$ echo $HOME # exibe o valor de uma variável específica
$ echo $PATH # exibe os diretórios de busca de comandos
$ echo $USER # exibe o nome do usuário atual
$ echo $SHELL # exibe o shell em uso
Variáveis de ambiente mais importantes
| Variável | Descrição | Exemplo de valor |
|---|---|---|
$HOME |
Diretório home do usuário | /home/carlos |
$PATH |
Diretórios onde o shell busca comandos | /usr/bin:/bin:/usr/local/bin |
$USER |
Nome do usuário logado | carlos |
$SHELL |
Shell em uso | /bin/bash |
$PWD |
Diretório atual | /home/carlos/projetos |
$LANG |
Idioma e localização do sistema | pt_BR.UTF-8 |
$EDITOR |
Editor de texto padrão | nano ou vim |
$HOSTNAME |
Nome da máquina | ubuntu |
Criando e exportando variáveis
# Criar variável local (só existe no shell atual)
$ MINHA_VAR="linux essentials"
$ echo $MINHA_VAR
linux essentials
# Exportar variável para subprocessos
$ export PROJETO="certificacao"
$ echo $PROJETO
certificacao
# Variável temporária para um único comando
$ LANG=en_US.UTF-8 date
📂 O PATH - Como o Shell Encontra Comandos
Quando você digita ls, como o shell sabe onde está o programa ls?
Ele percorre os diretórios listados na variável $PATH, na ordem, até encontrar o executável.
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# Descobrir onde um comando está localizado
$ which ls
/usr/bin/ls
$ which python3
/usr/bin/python3
$ whereis bash
bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz
Adicionando um diretório ao PATH
# Adicionar temporariamente (só para a sessão atual)
$ export PATH=$PATH:/home/carlos/scripts
# Adicionar permanentemente (adicionar ao ~/.bashrc)
$ echo 'export PATH=$PATH:/home/carlos/scripts' >> ~/.bashrc
$ source ~/.bashrc
📝 Tipos de Comandos
Nem todo "comando" é um programa externo. No Bash existem diferentes tipos:
# Verificar o tipo de um comando
$ type ls
ls is /usr/bin/ls # comando externo (binário)
$ type cd
cd is a shell builtin # comando interno do shell
$ type ll
ll is aliased to 'ls -alF' # alias (atalho)
$ type if
if is a shell keyword # palavra-chave do shell
| Tipo | Descrição | Exemplos |
|---|---|---|
| Builtin | Comando interno do shell | cd, echo, read, type |
| Externo | Programa em disco | ls, grep, find |
| Alias | Atalho para outro comando | ll, la |
| Função | Função definida no shell | Funções do .bashrc |
🔍 Obtendo Ajuda
Nenhum profissional Linux sabe todos os comandos de cabeça. Saber buscar ajuda é uma habilidade essencial - e a LPI cobra isso.
# Manual completo do comando
$ man ls
$ man grep
$ man man # o manual do manual!
# Ajuda rápida (nem todos os comandos têm)
$ ls --help
$ grep --help
# Buscar por palavra-chave nos manuais
$ apropos "copy file"
$ man -k "network"
# Informações mais detalhadas (quando disponível)
$ info ls
# Onde está o binário e a página de manual
$ whereis ls
Navegando no man
| Tecla | Ação |
|---|---|
Espaço |
Próxima página |
b |
Página anterior |
/texto |
Buscar "texto" |
n |
Próxima ocorrência da busca |
q |
Sair |
🧪 Prática do Dia - Explorando o Shell
Tudo que foi estudado, praticado no terminal:
# 1. Identificando o ambiente
$ echo $SHELL # qual shell estou usando?
$ echo $USER # qual usuário sou?
$ echo $HOME # qual meu diretório home?
$ hostname # qual o nome da máquina?
# 2. Explorando o PATH
$ echo $PATH
$ which ls
$ which python3
$ type cd
# 3. Trabalhando com variáveis
$ NOME="Linux Essentials"
$ echo $NOME
$ export CURSO=$NOME
$ echo $CURSO
# 4. Usando o histórico
$ history 15
$ Ctrl+R # busca reversa: digitar parte do comando
# 5. Atalhos na prática
$ ls -la /etc # depois: Ctrl+A (início), Ctrl+E (fim)
$ echo "testando" # Ctrl+U apaga a linha
$ clear # ou Ctrl+L
# 6. Buscando ajuda
$ man echo
$ ls --help
$ apropos "list files"
✅ O que aprendi hoje
- O que é o shell e os tipos mais comuns (Bash, zsh, sh)
- Como interpretar o prompt de comando (
$vs#) - Anatomia de um comando:
comando [opções] [argumentos] - Diferença entre opções curtas (
-l) e longas (--all) - Atalhos essenciais do terminal (Ctrl+A, Ctrl+E, Ctrl+R, Tab)
- Histórico de comandos (
history,!!,!n, Ctrl+R) - Variáveis de ambiente:
$HOME,$PATH,$USER,$SHELL - Como o PATH funciona e como o shell localiza comandos
- Tipos de comandos: builtin, externo, alias, função
- Como obter ajuda:
man,--help,apropos,whereis
📅 Próximo passo - Dia 06
Amanhã avanço para o próximo objetivo do Tópico 2:
- 2.2 - Usando a linha de comando para obter ajuda (
man,info,apropos) - 2.3 - Usando diretórios e listando arquivos
Acompanhe o desafio completo aqui no blog.
Material de referência: LPI Learning Materials 010-160
Objetivo do exame: Linux Essentials v1.6 - Objetivo 2.1
