Close de duas mãos masculinas digitando no teclado de um notebook
Pexels/greta-hoffman

A linha de comando é uma ferramenta fundamental para qualquer usuário do sistema operacional Linux. Ao contrário das interfaces gráficas, que podem ser limitadas em termos de controle e personalização, a linha de comando oferece um nível de flexibilidade e poder que pode melhorar significativamente a eficiência na administração do sistema, especialmente em ambientes de servidor. Compreender e dominar os comandos básicos é essencial para quem deseja explorar todo o potencial do Linux.

Neste texto, iremos explorar trinta comandos fundamentais que todo usuário de Linux deve conhecer. Desde tarefas simples, como navegar pelos diretórios do sistema e criar arquivos, até operações mais avançadas, como gerenciar processos e configurar permissões de arquivo, cada comando será acompanhado de exemplos práticos para facilitar o entendimento e a aplicação no mundo real. Ao final deste guia, você estará equipado com um conhecimento sólido para usar o terminal no Linux, pronto para aproveitar ao máximo o seu sistema operacional.

1. ls

O comando ls é utilizado para listar o conteúdo de um diretório. Ele permite visualizar arquivos e pastas, e oferece várias opções para personalizar a saída.

Exemplo:

ls

Este comando exibe todos os arquivos e diretórios no diretório atual.

ls -l

A opção -l fornece uma lista detalhada, incluindo permissões, número de links, proprietário, grupo, tamanho e data de modificação de cada arquivo.

ls -a

Com a opção -a, o comando também lista arquivos ocultos (aqueles cujo nome começa com um ponto. Exemplo: .config).

2. cd

O cd (change directory) é usado para navegar entre diretórios.

Exemplo:

cd /home

Este comando leva você ao diretório home.

cd ..

Utilizando cd .., você sobe um nível na estrutura de diretórios, retornando ao diretório pai.

cd /home/usuario/Documentos

Aqui, você navega diretamente para o diretório “Documentos” do usuário “usuario”.

Dica: Digitar apenas cd e teclar Enter dentro de qualquer pasta leva direto para o diretório do usuário que está logado no terminal, como “/home/usuario”.

3. pwd

O comando pwd (print working directory) exibe o caminho completo do diretório atual, ajudando você a se orientar dentro da estrutura de diretórios.

Exemplo:

pwd

Este comando retorna algo como /home/usuario/Downloads/Filmes, indicando que você está em “Filmes”, dentro do diretório “Downloads” do seu usuário.

4. mkdir

Para criar um novo diretório, utilize mkdir.

Exemplo:

mkdir projeto

Este comando cria um diretório chamado “projeto” no diretório atual.

mkdir -p /home/usuario/projetos/novo_projeto

Com a opção -p, você pode criar diretórios e seus subdiretórios de uma vez só, mesmo que eles ainda não existam. Basta digitar o caminho incluindo até o último subdiretório. No exemplo acima, foi criado um diretório chamado “projetos” e um subdiretório “novo_projeto” dentro dele.

5. rm

O comando rm é usado para remover arquivos. Para remover um diretório e todo o seu conteúdo, utilize rm -r.

Exemplo:

rm arquivo.txt

Este comando remove o arquivo “arquivo.txt”.

rm -r diretorio

A opção -r (recursiva) permite remover um diretório e todos os seus arquivos e subdiretórios.

6. cp

Com cp, você pode copiar arquivos e diretórios.

Exemplo:

cp arquivo.txt /home/usuario/

Este comando copia “arquivo.txt” para o diretório “/home/usuario/”. Note que é necessário a presença de uma barra ao final do caminho para sinalizar que “usuário”, na ação, é um diretório e não um arquivo e que “arquivo.txt” deve ser copiado dentro dele.

cp -r /home/usuario/projeto /home/usuario/projeto_backup

A opção -r permite copiar recursivamente um diretório e seu conteúdo. Neste caso, o diretório “projeto” e todo seu conteúdo são copiados para “projeto_backup”. Nesse caso, não é necessário a barra ao final dos caminhos dos diretórios “projeto” e “projeto_backup”, já que ambos os caminhos são diretórios.

7. mv

O mv serve para mover ou renomear arquivos e diretórios.

Exemplo:

mv arquivo.txt novo_nome.txt

Este comando renomeia “arquivo.txt” para “novo_nome.txt”.

mv /home/usuario/arquivo.txt /home/usuario/Documentos/

Aqui, o arquivo “arquivo.txt” é movido para o diretório “Documentos”.

8. touch

O comando touch é usado para criar arquivos vazios ou atualizar a data de modificação de um arquivo existente.

Exemplo:

touch novo_arquivo.txt

Este comando apenas cria um arquivo vazio chamado “novo_arquivo.txt” dentro do diretório que está sendo acessado.

Se “novo_arquivo.txt” já existir dentro daquele diretório, o comando atualiza a data de modificação do arquivo.

9. chmod

Para alterar as permissões de um arquivo ou diretório, utilize chmod.

Exemplo:

chmod 755 script.sh

Este comando concede permissões de leitura, escrita e execução ao proprietário, e permissões de leitura e execução aos demais usuários para o arquivo “script.sh”.

chmod +x script.sh

Com +x, você adiciona permissão de execução ao arquivo “script.sh”.

Você pode entender melhor como funcionam as permissões de permissões de leitura, escrita e execução no Linux com este tutorial que escrevi.

Veja também: Guia básico de permissões de leitura, escrita e execução de arquivos no Linux

10. chown

O chown (change owner) altera o proprietário de um arquivo ou diretório.

Exemplo:

chown usuario:grupo arquivo.txt

Este comando define “usuario” como proprietário e “grupo” como o grupo do arquivo “arquivo.txt”.

chown -R usuario:grupo /home/usuario/projeto

A opção -R permite alterar recursivamente o proprietário e o grupo de um diretório e todo o seu conteúdo. Neste caso, o diretório “projeto” e todos os seus arquivos e subdiretórios terão o proprietário e grupo alterados para “usuario” e “grupo”, respectivamente.

11. echo

O comando echo é usado para exibir uma linha de texto na tela ou redirecionar essa linha para um arquivo.

Exemplo:

echo "Olá, Mundo!"

Este comando imprime “Olá, Mundo!” no terminal.

echo "Linha de texto" >> arquivo.txt

Aqui, “Linha de texto” é adicionada ao final do arquivo “arquivo.txt”.

12. cat

O cat (concatenate) é usado para exibir o conteúdo de um arquivo ou concatenar vários arquivos.

Exemplo:

cat arquivo.txt

Este comando exibe o conteúdo de “arquivo.txt” no terminal.

cat arquivo1.txt arquivo2.txt > arquivo3.txt

Aqui, os conteúdos de “arquivo1.txt” e “arquivo2.txt” são concatenados e redirecionados para “arquivo3.txt”.

13. grep

O comando grep é usado para procurar por padrões específicos dentro de arquivos.

Exemplo:

grep "palavra" arquivo.txt

Este comando procura por “palavra” dentro de “arquivo.txt” e exibe as linhas que contêm a palavra.

grep -r "palavra" /home/usuario/projetos

Com a opção -r, o grep procura recursivamente em todos os arquivos dentro de “/home/usuario/projetos”.

14. find

O comando find é usado para buscar arquivos e diretórios com base em critérios específicos.

Exemplo:

find /home/usuario -name "arquivo.txt"

Este comando busca por “arquivo.txt” dentro do diretório “/home/usuario”.

find /home -type f -size +1M

Aqui, find procura por arquivos (-type f) maiores que 1 MB (-size +1M) dentro do diretório “/home/usuario”.

15. tar

O tar é usado para criar, extrair e manipular arquivos .tar (arquivos de arquivamento, como o .zip no Windows).

Exemplo:

tar -cvf arquivo.tar diretorio/

Este comando cria um arquivo .tar chamado “arquivo.tar” a partir do conteúdo do diretório “diretorio”.

tar -xvf arquivo.tar

Aqui, o conteúdo de “arquivo.tar” é e extraído no diretório que está sendo acessado no terminal.

Você também pode criar aquivos compactados com a biblioteca XZ e seu algoritmo de compressão apenas adicionando .xz ao final do nome do aquivo, como em tar -cvf arquivo.tar.xz e descompactar como tar -xvf arquivo.tar.xz.

16. wget

O wget é uma ferramenta para baixar arquivos da web via linha de comando.

Exemplo:

wget http://example.com/arquivo.zip

Este comando baixa o arquivo “arquivo.zip” do site “example.com”.

wget -r http://example.com/

Com a opção -r, o wget baixa todo o conteúdo do site “example.com” recursivamente.

17. ps

O comando ps exibe informações sobre os processos em execução no sistema.

Exemplo:

ps aux

Este comando mostra uma lista detalhada de todos os processos em execução, incluindo informações como o usuário, PID, uso de CPU e memória.

ps -ef

Outra forma de listar todos os processos, mas com um formato de saída diferente.

18. kill

O kill é usado para encerrar processos com base no seu PID (Process ID).

Exemplo:

kill 1234

Este comando envia um sinal de término ao processo com o PID 1234.

kill -9 1234

O sinal -9 força a finalização imediata do processo com o PID 1234.

Além do kill, existe o comando killall, que encerra todos os processos com um determinado nome. Ele é útil quando você precisa parar vários processos ao mesmo tempo sem saber seus PIDs.

Exemplo:

killall nome_do_processo

Este comando envia um sinal de término para todos os processos com o nome especificado.

killall -9 nano

Assim como o kill -9, o killall -9 força a finalização imediata de todos os processos do editor de textos nano que estejam rodando.

19. df

O comando df exibe informações sobre o uso de espaço em disco das partições do sistema.

Exemplo:

df -h

A opção -h mostra a saída em um formato legível para humanos, exibindo tamanhos em KB, MB ou GB.

20. du

O du (disk usage) mostra o uso de espaço em disco por arquivos e diretórios.

Exemplo:

du -sh /home/usuario

Este comando exibe o tamanho total do diretório “/home/usuario” em um formato legível.

du -a /home/usuario

Aqui, o du exibe o uso de espaço em disco para todos os arquivos e subdiretórios dentro de “/home/usuario”.

21. head

O comando head é utilizado para exibir as primeiras linhas de um arquivo.

Exemplo:

head arquivo.txt

Este comando exibe as primeiras 10 linhas de “arquivo.txt”.

head -n 5 arquivo.txt

Com a opção -n, você pode especificar o número de linhas a serem exibidas. Neste caso, serão exibidas as primeiras 5 linhas.

22. tail

O tail é utilizado para exibir as últimas linhas de um arquivo. É especialmente útil para monitorar logs.

Exemplo:

tail arquivo.txt

Este comando exibe as últimas 10 linhas de “arquivo.txt”.

tail -f /var/log/pacman.log

A opção -f permite seguir o arquivo log do gerenciador de pacotes do Arch Linux em tempo real, mostrando novas linhas à medida que são adicionadas. Para encerrar o monitoramento, basta digitar Ctrl + C.

23. nano

O nano é um editor de texto simples e fácil de usar diretamente no terminal.

Exemplo:

nano arquivo.txt

Este comando abre “arquivo.txt” no editor nano, permitindo que você edite o arquivo.

Ao editar um arquivo no nano, é importante conhecer os atalhos para salvar e fechar o editor. Para salvar o arquivo, pressione Ctrl + O (escrever, do inglês write out) e, em seguida, pressione Enter para confirmar. Para sair do editor, utilize o atalho Ctrl + X (sair, do inglês exit). Se houverem modificações não salvas, o nano perguntará se deseja salvar as alterações antes de sair.

24. top

O comando top exibe uma visão dinâmica em tempo real dos processos em execução no sistema.

Exemplo:

top

Este comando exibe uma lista interativa dos processos, incluindo informações sobre uso de CPU, memória e mais.

25. htop

O htop é uma versão aprimorada do top, oferecendo uma interface mais amigável e opções adicionais.

Exemplo:

htop

Este comando abre o htop, que permite visualizar e gerenciar processos de forma interativa.

26. ip

O ip (substituto do ifconfig, ainda encontrado em algumas distribuições) é utilizado para configurar interfaces de rede e visualizar informações detalhadas sobre as interfaces de rede do sistema.

Exemplo:

ip link show

Este comando exibe informações sobre todas as interfaces de rede ativas no sistema.

ip link set eth0 up

Este comando ativa a interface de rede “eth0”.

27. ping

O ping é usado para testar a conectividade de rede entre o seu computador e outro dispositivo.

Exemplo:

ping belenos.me

Este comando envia pacotes ICMP para “belenos.me” e exibe o tempo de resposta.

28. ss

O comando ss (substituto do netstat) exibe informações sobre conexões de rede, tabelas de roteamento e outras estatísticas de rede.

Exemplo:

ss -a

A opção -tuln exibe todas as portas TCP e UDP abertas, com detalhes sobre as conexões.

ss -a | grep 50000

O comando acima filtra a listagem apenas para a porta TCP 50000.

29. ssh

O ssh (Secure Shell) permite acessar e gerenciar remotamente outro computador através de uma conexão segura.

Exemplo:

ssh usuario@192.168.1.10

Este comando inicia uma sessão SSH com o usuário “usuario” no endereço IP “192.168.1.10”.

Em exemplos mais práticos, você pode usar o ssh, por exemplo, para gerenciar aquivos para um diretório no GitHub de sua propriedade com o comando ssh -T git@github.com.

30. scp

O scp (secure copy) é utilizado para copiar arquivos entre computadores de forma segura, utilizando o protocolo SSH.

Exemplo:

scp arquivo.txt usuario@192.168.1.10:/home/usuario/

Este comando copia “arquivo.txt” do seu computador para o diretório “/home/usuario/” no computador remoto com o endereço IP “192.168.1.10”.

Continue sempre aprendendo mais

Estudar e dominar os comandos da linha de comando no Linux é um investimento valioso para qualquer usuário que deseja explorar todo o seu potencial. Os comandos discutidos neste texto são apenas uma introdução ao vasto conjunto de ferramentas disponíveis via linha de comando no Linux. Com prática e experiência, você descobrirá cada vez mais funcionalidades que podem tornar suas tarefas diárias mais eficientes e produtivas.

No entanto, é fundamental lembrar que o uso inadequado ou descuidado de comandos pode resultar em alterações indesejadas no sistema, perda de dados ou até mesmo comprometer a segurança do ambiente. Por isso, é importante estudar cuidadosamente cada comando, entender suas opções e implicações, e, sempre que possível, testar comandos em um ambiente seguro antes de aplicá-los em sistemas críticos.

Com um conhecimento sólido e uma abordagem cautelosa, você estará preparado para aproveitar ao máximo as capacidades do Linux, tornando-se um usuário mais competente e confiante. Continue explorando, aprendendo e aperfeiçoando suas habilidades na linha de comando, e você verá como o Linux pode ser uma ferramenta poderosa e versátil no seu dia a dia.