Noções básicas de linha de comando
Para usuários novos no Linux, a linha de comando pode parecer desconhecida ou até intimidante. Mas, na realidade, a linha de comando é a ferramenta mais poderosa e flexível em um sistema Linux. Dominar as operações básicas da linha de comando não apenas torna o gerenciamento do sistema mais eficiente, mas também ajuda você a entender como o Linux funciona nos bastidores.
Este artigo o levará do zero à compreensão dos conceitos de terminais e shells, dominando os comandos mais comumente usados e aprendendo conhecimentos básicos como caminhos de arquivos, canais e permissões.
O que são Terminal e Shell
Terminais
Um terminal é um aplicativo que fornece uma janela onde você pode interagir com o computador digitando comandos de texto. No ambiente de desktop Ubuntu, o terminal é a janela com fundo preto (ou escuro) que você vê.
O aplicativo de terminal padrão no Ubuntu 26.04 é Ptyxis. Ele substitui o Terminal GNOME tradicional e oferece melhor integração de contêineres. Você ainda pode instalar o Terminal GNOME clássico, se necessário.
Se você quiser experimentar um terminal acelerado por GPU mais moderno, Ghostty está disponível como um pacote de visualização no repositório do universo 26.04:
sudo apt install ghosttyGhostty não é o terminal padrão. Em dispositivos sem suporte ao OpenGL 4.3, pode ser necessário um substituto de renderização de software.
Concha
Um shell é o programa por trás do terminal que realmente processa comandos. Quando você digita comandos no terminal, o shell os analisa e executa. O shell padrão do Ubuntu é Bash (Bourne Again Shell).
Conchas comuns incluem:
| Concha | Descrição |
|---|---|
| Bash | Shell padrão do Ubuntu, rico em recursos e boa compatibilidade |
| Zsh | Um shell mais moderno com melhor preenchimento automático e temas |
| Peixe | Um shell fácil de usar com destaque de sintaxe pronto para uso |
| Traço | Um shell leve usado pelo Ubuntu para scripts de sistema |
Você pode verificar seu shell atual com o seguinte comando:
echo $SHELLManeiras de abrir o terminal
No Ubuntu 26.04, existem várias maneiras de abrir o terminal:
Método 1: atalho de teclado
A maneira mais rápida é pressionar Ctrl + Alt + T, que abre diretamente uma janela de terminal.
Método 2: no menu do aplicativo
- Clique no botão Atividades no canto superior esquerdo (ou pressione a tecla Super)
- Digite “Terminal” na barra de pesquisa
- Clique no ícone do terminal para abri-lo
Método 3: no gerenciador de arquivos
No gerenciador de arquivos GNOME (Nautilus), você pode clicar com o botão direito em uma área vazia e selecionar “Abrir no Terminal”. O terminal navegará automaticamente para o diretório atual.
Método 4: Terminal Virtual TTY
Pressione Ctrl + Alt + F3 (F3 a F6) para alternar para um terminal virtual somente texto. Pressione Ctrl + Alt + F2 para voltar à interface gráfica. Isto é especialmente útil quando a interface gráfica apresenta problemas.
Comandos Básicos
pwd - Imprimir diretório de trabalho
pwd (Imprimir diretório de trabalho) mostra o caminho do seu diretório atual:
pwd
# Example output: /home/usernamels - Lista o conteúdo do diretório
ls (Lista) é um dos comandos mais comumente usados para visualizar arquivos e pastas em um diretório:
# List current directory contents
ls
# Show detailed information (permissions, size, modification time, etc.)
ls -l
# Show hidden files (files starting with .)
ls -a
# Combined usage: detailed info + hidden files + human-readable file sizes
ls -lah
# List contents of a specific directory
ls /etc
# Sort by modification time (newest first)
ls -ltcd - Alterar diretório
cd (Alterar diretório) é usado para alternar entre diretórios:
# Enter a specific directory
cd /var/log
# Go up one level
cd ..
# Return to the home directory
cd ~
# Or simply type
cd
# Return to the previous directory
cd -
# Enter a multi-level directory
cd /usr/share/docmkdir - Criar diretórios
# Create a single directory
mkdir myproject
# Create nested directories (-p auto-creates parent directories)
mkdir -p projects/web/frontend
# Create multiple directories at once
mkdir dir1 dir2 dir3cp - Copiar arquivos e diretórios
# Copy a file
cp file.txt backup.txt
# Copy a file to a specific directory
cp file.txt /home/username/Documents/
# Copy an entire directory (requires -r for recursive copy)
cp -r myproject myproject-backup
# Copy while preserving file attributes (permissions, timestamps, etc.)
cp -a source/ destination/mv - Mover ou Renomear
# Rename a file
mv oldname.txt newname.txt
# Move a file to another directory
mv file.txt /home/username/Documents/
# Move and rename
mv file.txt /home/username/Documents/newname.txt
# Move an entire directory
mv myproject /opt/rm - Remover arquivos e diretórios
# Remove a file
rm file.txt
# Remove a directory and its contents (recursive deletion)
rm -r myproject
# Force removal (no confirmation prompt)
rm -f file.txt
# Confirm before each deletion
rm -i *.txtOs arquivos excluídos com rm não vão para a lixeira - eles são excluídos permanentemente imediatamente! Em particular, um comando como rm -rf / destruirá todo o seu sistema. Antes de usar rm, certifique-se sempre de excluir os arquivos corretos. Os iniciantes devem primeiro usar ls para verificar quais arquivos correspondem e, em seguida, excluí-los somente após a confirmação.
cat - Ver conteúdo do arquivo
# View the complete contents of a file
cat file.txt
# Display line numbers
cat -n file.txt
# Concatenate multiple files
cat file1.txt file2.txt
# Create a new file (Ctrl+D to finish input)
cat > newfile.txtmenos - Visualização Paginada
Quando o conteúdo do arquivo é muito longo, less é mais adequado que cat:
less /var/log/syslogOperações comuns em less:
- Espaço: Próxima página
- b: página anterior
- g: Ir para o início do arquivo
- G: Ir para o final do arquivo
- /palavra-chave: Pesquisa
- n: próximo resultado da pesquisa
- q: Sair
head e tail - Ver início e fim dos arquivos
# View the first 10 lines (default)
head file.txt
# View the first 20 lines
head -n 20 file.txt
# View the last 10 lines
tail file.txt
# View the last 50 lines
tail -n 50 file.txt
# Follow file changes in real time (commonly used for viewing logs)
tail -f /var/log/syslogCaminhos de arquivo
Compreender os caminhos dos arquivos é fundamental para usar a linha de comando. O sistema de arquivos Linux começa em / (o diretório raiz) e todos os arquivos e diretórios são organizados nesta estrutura em árvore.
Caminhos Absolutos vs Relativos
Caminhos absolutos começam no diretório raiz / e fornecem a localização completa de um arquivo:
# Absolute path examples
/home/username/Documents/file.txt
/etc/nginx/nginx.conf
/var/log/syslogCaminhos relativos são calculados a partir do diretório atual:
# Assuming you are in /home/username
# The following two are equivalent:
cat /home/username/Documents/file.txt # Absolute path
cat Documents/file.txt # Relative pathSímbolos de Caminhos Especiais
| Símbolo | Significado | Exemplo |
|---|---|---|
/ | Diretório raiz | cd / |
~ | Diretório inicial do usuário atual | cd ~ é o mesmo que cd /home/username |
. | Diretório atual | ./script.sh executa um script no diretório atual |
.. | Diretório pai | cd ../.. sobe dois níveis |
- | Diretório anterior (somente para cd) | cd - |
# Practical examples
# Return to the home directory from anywhere
cd ~
# View the contents of the parent directory
ls ..
# Run a script in the current directory
./my-script.sh
# Copy a file from two levels up to the current directory
cp ../../config.txt .Pipes e Redirecionamento
Pipes e redirecionamento são recursos extremamente poderosos da linha de comando. Eles permitem combinar vários comandos simples para realizar tarefas complexas.
Tubos (|)
Um pipe passa a saída de um comando como entrada para outro comando:
# View all processes and search for lines containing "nginx"
ps aux | grep nginx
# List directory contents and display them page by page
ls -la /etc | less
# Count the number of files in the current directory
ls | wc -l
# View disk usage, sorted by size
du -sh * | sort -h
# Multi-level pipe: find errors in logs, deduplicate, and sort
cat /var/log/syslog | grep "error" | sort | uniq -c | sort -rnRedirecionamento de saída (> e >>)
# Write command output to a file (overwrites existing content)
echo "Hello, Ubuntu!" > hello.txt
# Append command output to the end of a file
echo "Another line" >> hello.txt
# Save a command listing to a file
ls -la > filelist.txt
# Redirect error output to a file
command 2> errors.log
# Redirect both standard output and error output
command > output.log 2>&1
# Or the shorter version
command &> output.logRedirecionamento de entrada <
# Read input from a file
wc -l < file.txt
# Common usage: import an SQL file into a database
mysql -u root -p database_name < backup.sqlNoções básicas de permissão
Linux é um sistema multiusuário e o gerenciamento de permissões garante a segurança do sistema.
sudo - Executar como administrador
sudo (Super User Do) permite que usuários regulares executem comandos com privilégios de administrador (root):
# Install software
sudo apt install vim
# Edit a system configuration file
sudo nano /etc/hosts
# Open a shell as root (use with caution)
sudo -i
# Check sudo privileges
sudo -lQuando você usa sudo pela primeira vez, ele solicitará sua própria senha de usuário (não a senha root). A senha será lembrada por um período de tempo.
chmod - Modificar permissões de arquivo
As permissões de arquivo do Linux são divididas em três grupos: proprietário (u), grupo (g) e outros (o). Cada grupo tem permissões de leitura (r=4), gravação (w=2) e execução (x=1).
# View file permissions
ls -l file.txt
# Example output: -rw-r--r-- 1 user group 1024 Jan 1 12:00 file.txt
# Add execute permission to a file
chmod +x script.sh
# Set exact permissions (owner: rwx, group: rx, others: rx)
chmod 755 script.sh
# Common permission combinations
chmod 644 file.txt # Owner read/write, others read-only
chmod 600 secret.key # Owner read/write only
chmod 777 shared.txt # Full permissions for everyone (not recommended)
# Recursively modify directory permissions
chmod -R 755 /var/www/htmlAtalhos de teclado comuns
Dominar os atalhos do teclado pode melhorar significativamente a eficiência da linha de comando:
| Atalho | Função |
|---|---|
| Guia | Comandos de preenchimento automático, nomes de arquivos, nomes de diretórios |
| Guia Guia | Mostrar todas as opções de conclusão possíveis |
| Ctrl+C | Interromper o comando atualmente em execução |
| Ctrl+D | Saia do shell atual (equivalente a digitar exit) |
| Ctrl+R | Pesquisa reversa através do histórico de comandos |
| Ctrl+L | Limpe a tela (equivalente ao comando clear) |
| Ctrl+A | Mova o cursor para o início da linha |
| Ctrl+E | Mova o cursor para o final da linha |
| Ctrl+W | Exclua a palavra antes do cursor |
| Ctrl + U | Excluir do cursor até o início da linha |
| Ctrl + K | Excluir do cursor até o final da linha |
| Setas para cima/para baixo | Navegar pelo histórico de comandos |
| !! | Execute novamente o último comando |
| !$ | Faça referência ao último argumento do comando anterior |
# Tab completion example
cd /etc/ng[Tab] # Auto-completes to cd /etc/nginx/
# Typical usage of !!: forgot to add sudo
apt install vim
# Permission error, then:
sudo !!
# Equivalent to sudo apt install vim
# Ctrl+R search history
# Press Ctrl+R, type "docker", and the most recent command containing "docker" will appearObtendo ajuda
No Linux, há muitas maneiras de obter ajuda:
homem - Páginas de manual
man (Manual) é a documentação de comando mais confiável:
# View the manual for the ls command
man ls
# Search manuals (by keyword)
man -k "copy file"
# View a specific section of the manual
man 5 crontab # View the crontab file format (section 5)O sinalizador —help
A maioria dos comandos suporta o sinalizador --help, que exibe um resumo de uso conciso:
ls --help
cp --help
systemctl --helptldr - Manual Simplificado
tldr (muito longo; não li) fornece exemplos de comandos práticos e concisos, perfeitos para iniciantes:
# Install tldr
sudo apt install tldr
# Update the database
tldr --update
# View command usage
tldr tar
tldr rsync
tldr systemctlOutros recursos de ajuda
# View a brief description of a command
whatis ls
# Find the path of a command
which python3
whereis nginx
# Check the command type (built-in, external, alias, etc.)
type cd
type lsFolha de dicas de comandos essenciais para iniciantes
Aqui estão os 20 comandos mais comumente usados para iniciantes. Marque isso para referência! Você não precisa memorizá-los todos de uma vez – basta procurá-los quando necessário, e eles se tornarão uma segunda natureza com o tempo.
| Comando | Finalidade | Exemplo comum |
|---|---|---|
pwd | Mostrar diretório atual | pwd |
ls | Listar o conteúdo do diretório | ls -lah |
cd | Alterar diretório | cd /var/log |
mkdir | Criar diretórios | mkdir -p a/b/c |
cp | Copiar arquivos/diretórios | cp -r src/ dst/ |
mv | Mover/renomear | mv old.txt new.txt |
rm | Remover arquivos/diretórios | rm -r dirname |
cat | Ver o conteúdo do arquivo | cat file.txt |
less | Ver arquivos página por página | less /var/log/syslog |
head/tail | Ver início/fim dos arquivos | tail -f log.txt |
grep | Texto de pesquisa | grep "error" log.txt |
find | Localizar arquivos | find / -name "*.conf" |
sudo | Execute com privilégios de administrador | sudo apt update |
apt | Gerenciador de pacotes | sudo apt install vim |
chmod | Modificar permissões | chmod +x script.sh |
nano/vim | Editores de texto | nano file.txt |
df | Verifique o uso do disco | df -h |
top/htop | Ver processos | htop |
systemctl | Gerenciar serviços do sistema | systemctl status nginx |
history | Ver histórico de comandos | history | grep ssh |
Dicas avançadas
Aliases de comando
Você pode criar aliases curtos para comandos usados com frequência:
# Temporary alias (only valid for the current session)
alias ll='ls -lah'
alias gs='git status'
# Permanent alias (written to ~/.bashrc)
echo "alias ll='ls -lah'" >> ~/.bashrc
echo "alias update='sudo apt update && sudo apt upgrade -y'" >> ~/.bashrc
# Apply aliases immediately
source ~/.bashrcHistórico de comandos
# View command history
history
# Search command history
history | grep "apt install"
# Execute command #42 from history
!42
# Clear history
history -cCuringas
# * matches any characters
ls *.txt # All .txt files
cp *.jpg photos/ # Copy all .jpg files
# ? matches a single character
ls file?.txt # Matches file1.txt, fileA.txt, etc.
# [] matches a specified range
ls file[1-3].txt # Matches file1.txt, file2.txt, file3.txtDepois de aprender esses princípios básicos, você já poderá lidar com a maioria das operações diárias na linha de comando do Ubuntu. Você pode continuar aprendendo tópicos mais avançados, como shell script, administração de sistema, configuração de rede e muito mais. Lembre-se de que a prática leva à perfeição – a experiência prática é a melhor maneira de dominar a linha de comando.