Os 100 Principais Comandos Linux (Que Você Precisa Conhecer)

by Matt Stamp
Os 100 Principais Comandos Linux (Que Você Precisa Conhecer) thumbnail

Linux é a espinha dorsal da internet. Ele alimenta quase 97% dos principais servidores web do mundo. E 55,9% dos desenvolvedores profissionais dependem do Linux para suas necessidades de desenvolvimento.

No entanto, o Linux possui apenas 2.68% de participação no mercado de desktops. Por que essa lacuna?

O foco principal do Linux nunca foi sua interface de usuário. Em vez disso, foi projetado para dar a você controle total sobre seu sistema operacional por meio da linha de comando.

Isso pode tornar o Linux intimidador para iniciantes — E os milhares de comandos disponíveis só tornam isso mais difícil.

Neste artigo, abordamos os 100 comandos Linux mais úteis. Aprender apenas alguns desses comandos pode ajudá-lo a aumentar sua produtividade como usuário Linux. Vamos mergulhar direto!

Glossário DreamHost

Linux

Linux refere-se a uma coleção de Sistemas Operacionais (OS) de código aberto. Não existe um único SO Linux. Em vez disso, os usuários podem escolher entre um amplo grupo de distros Linux, que oferecem diferentes experiências.

Leia Mais

O que são Comandos Linux?

Os comandos Linux permitem que você controle seu sistema a partir da interface de linha de comando (CLI) em vez de usar seu mouse ou trackpad. São instruções em texto inseridas no terminal para dizer ao seu sistema exatamente o que fazer.

Os comandos que você insere no terminal Linux são sensíveis a maiúsculas e minúsculas e seguem uma sintaxe como “comando -opções argumentos.” Você pode combiná-los para tarefas complexas usando pipelines e redirecionamento.

Algumas coisas importantes para saber sobre comandos Linux:

  • Eles são sensíveis a maiúsculas e minúsculas; por exemplo, “ls” e “LS” significam coisas diferentes.
  • Eles seguem uma sintaxe específica como “command -options arguments.”
  • Eles podem ser combinados para operações complexas usando pipelines e redirecionamento.
  • Eles oferecem controle detalhado sobre seu sistema, o que é difícil de alcançar com interfaces gráficas.
  • Eles permitem automatizar tarefas por meio de scripts de shell e processamento em lote.
  • Eles podem ser usados para acessar recursos do sistema como o sistema de arquivos, rede, memória e CPU.
  • Eles formam a base da interação com servidores e sistemas operacionais Linux.

Se você é um programador que está apenas aprendendo a programar, pode começar a praticar seus comandos Linux sem sair do Windows usando o Subsistema Windows para Linux. Isso permite que você execute Linux dentro do Windows sem precisar de dual boot e aproveite o melhor dos dois sistemas operacionais.

Top 100 Comandos Linux Mais Úteis

Agora que você tem um entendimento básico do que são comandos Linux, vamos mergulhar nos 100 comandos Linux mais comumente usados.

Organizamos por categoria para cobrir áreas como gerenciamento de arquivos, monitoramento de sistemas, operações de rede, administração de usuários e mais.

Comandos de Gerenciamento de Arquivos no Linux

O gerenciamento de arquivos é uma tarefa comum na linha de comando do Linux. Aqui estão os comandos essenciais para arquivos:

1. ls – Listar Conteúdo do Diretório

O comando ls é um dos comandos Linux mais frequentemente usados. Ele lista o conteúdo de um diretório, mostrando todos os arquivos e subdiretórios contidos dentro.

Sem opções ou argumentos, ls exibirá o conteúdo do diretório de trabalho atual. Você pode passar um nome de caminho para listar arquivos e pastas nesse local em vez disso.

Sintaxe:

ls [opções] [diretório]

Algumas das opções mais úteis de ls incluem:

  • -l – Exibe os resultados em formato longo, mostrando detalhes extras como permissões, propriedade, tamanho e data de modificação para cada arquivo e diretório.
  • -a – Mostra arquivos e diretórios ocultos que começam com . além dos itens não ocultos.
  • -R – Lista recursivamente todos os conteúdos do subdiretório, descendo indefinidamente para as pastas filhas.
  • -S – Ordena os resultados pelo tamanho do arquivo, do maior para o menor.
  • -t – Ordena por marca temporal, os mais novos primeiro.

Exemplo:

ls -l /home/user/documents

Isso listaria o conteúdo da pasta “documents” em formato longo.

Exemplo de saída:

total 824
-rwxrwx--- 1 usuário usuário    8389 Jul 12 08:53 report.pdf
-rw-r--r-- 1 usuário usuário   10231 Jun 30 16:32 presentation.pptx
drwxr-xr-x 2 usuário usuário    4096 May 11 09:21 images
-rw-rw-r-- 1 usuário usuário     453 Apr 18 13:32 todo.txt

Esta saída mostra uma lista detalhada com permissões, tamanho, proprietário e marca temporal para cada arquivo e diretório. O formato de listagem longa fornecido pela opção -l oferece informações úteis sobre os arquivos de forma rápida.

O comando ls oferece um controle flexível sobre a listagem de conteúdos de diretórios. É um dos comandos que você vai se encontrar usando constantemente ao trabalhar em Linux.

2. cd – Mudar Diretório

O comando cd é utilizado para navegar entre diretórios. Ele permite que você mova o diretório de trabalho atual para uma nova localização no sistema de arquivos.

Quando você executa o comando cd sozinho, ele o retornará ao diretório inicial. Você também pode passar um caminho específico para alterar. Por exemplo:

  • cd /usr/local – Altera para o diretório /usr/local.
  • cd .. – Sobe um nível para o diretório pai.
  • cd ~/pictures – Altera para a pasta de imagens no seu diretório pessoal.

Sintaxe:

cd [directory]

Exemplo:

cd /home/user/documents

Isso mudaria o diretório de trabalho para a pasta “documents” em /home/user. Usar cd é essencial para poder acessar e trabalhar com arquivos em diferentes locais de maneira conveniente.

3. mkdir – Criar Um Novo Diretório

O comando mkdir permite que você crie uma nova pasta. Basta passar o nome do diretório a ser criado.

Sintaxe:

mkdir [options] <diretório>

Isso criará um diretório chamado “newproject” no diretório de trabalho atual.

Algumas opções úteis de mkdir:

  • -p – Cria diretórios pais recursivamente conforme necessário.
  • -v – Saída detalhada mostrando os diretórios criados.

Exemplo:

mkdir -v ~/project/code

Isso criaria o subdiretório “code” em “project” na pasta inicial do usuário, com um output detalhado mostrando o diretório sendo criado.

Receba conteúdo diretamente na sua caixa de entrada

Inscreva-se agora para receber todas as últimas atualizações, diretamente na sua caixa de entrada.

4. rmdir – Remover Diretório

Para eliminar um diretório vazio, utilize o comando rmdir. Note que rmdir pode apenas remover diretórios vazios – precisaremos do comando rm para deletar os que não estão vazios.

Sintaxe:

rmdir [options] <directory>

Algumas opções para rmdir incluem:

  • -v – Saída detalhada ao deletar diretórios.
  • -p – Remove diretórios pais recursivamente conforme necessário.

Exemplo:

rmdir -v ~/project/code

Isso excluiria o subdiretório “code” em “project” enquanto mostra saída detalhada.

5. touch – Criar um Novo Arquivo Vazio

O comando touch é utilizado para criar um novo arquivo vazio instantaneamente. Isso é útil quando você precisa de um arquivo vazio para preencher com dados posteriormente.

A sintaxe básica de touch é:

touch [opções] nome do arquivo

Algumas opções úteis para touch incluem:

  • -c – Não crie o arquivo se ele já existir. Isso evita sobrescrever acidentalmente arquivos existentes.
  • -m – Em vez de criar um novo arquivo, atualize a marca temporal em um arquivo existente. Isso pode ser usado para alterar o tempo modificado.

Por exemplo:

touch /home/user/newfile.txt

O comando acima cria um novo arquivo vazio chamado “newfile.txt” no diretório /home/user do usuário. Se newfile.txt já existir, ele atualizará os tempos de acesso e modificação do arquivo.

6. cp – Copiar Arquivos e Diretórios

O comando cp copia arquivos ou diretórios de um local para outro. Ele requer a especificação de um caminho de origem e um destino.

A sintaxe básica de cp é:

cp [opções] origem destino

Algumas opções úteis de cp:

  • -r – Copia diretórios de forma recursiva, descendo aos subdiretórios para copiar também seus conteúdos. Necessário ao copiar diretórios.
  • -i – Pergunta antes de sobrescrever quaisquer arquivos existentes no destino. Evita a sobreposição acidental de dados.
  • -v – Exibe saída detalhada mostrando os detalhes de cada arquivo à medida que é copiado. Útil para confirmar exatamente o que foi copiado.

Por exemplo:

cp -r /home/user/documents /backups/

Isso copiaria recursivamente o diretório /home/user/documents e todo o seu conteúdo para o diretório /backups/. A opção -r é necessária para copiar diretórios.

O comando cp é uma das utilidades de gestão de arquivos mais usadas para copiar arquivos e diretórios no Linux. Você se encontrará usando este comando com bastante frequência.

7. mv – Mover ou Renomear Arquivos e Diretórios

O comando mv é usado para mover arquivos ou diretórios para um local diferente ou renomeá-los. Diferente da cópia, os arquivos do caminho de origem são excluídos após terem sido movidos para o destino.

Você também pode usar o comando mv para renomear arquivos, pois basta alterar os caminhos de origem e destino para o nome antigo e novo.

A sintaxe de mv é:

mv [opções] origem destino

Opções úteis do mv:

  • -i – Pergunte antes de sobrescrever quaisquer arquivos existentes no local de destino. Isso previne a sobrescrita acidental de dados.
  • -v – Produza uma saída detalhada mostrando cada arquivo ou diretório à medida que é movido. Isso é útil para confirmar exatamente o que foi movido.

Por exemplo:

mv ~/folder1 /tmp/folder1

O exemplo acima moverá a pasta1 do diretório home (~) para o diretório /tmp/. Vamos ver outro exemplo de uso do comando mv para renomear arquivos.

mv folder1 folder2

Aqui, “folder1” é renomeado para “folder2.

8. rm – Remover Arquivos e Diretórios

O comando rm exclui arquivos e diretórios. Use cautela, pois os arquivos e diretórios excluídos não podem ser recuperados.

A sintaxe é:

rm [opções] nome

Opções úteis do rm:

  • -r – Exclui diretórios de forma recursiva, incluindo todo o conteúdo dentro deles. Isso é necessário ao excluir diretórios.
  • -f – Força a exclusão e suprime todos os avisos de confirmação. Este é um comando perigoso, já que os arquivos não podem ser recuperados depois de excluídos!
  • -i – Solicita confirmação antes de excluir cada arquivo ou diretório, o que oferece segurança contra remoções acidentais.

Por exemplo:

rm -rf temp

Isso exclui recursivamente o diretório “temp” e todo o seu conteúdo sem solicitação (-f sobrescreve as confirmações).

Nota: O comando rm apaga permanentemente arquivos e pastas, portanto use-o com extrema cautela. Se usado com privilégios de sudo, você também poderia deletar completamente o diretório root, e o Linux não funcionaria mais após reiniciar o computador. 

9. find – Pesquisar por Arquivos em uma Hierarquia de Diretórios

O comando find busca recursivamente diretórios por arquivos que correspondem aos critérios dados.

A sintaxe básica de find é:

find [caminho] [critério]

Algumas opções úteis de critérios para encontrar incluem:

  • -type f – Pesquise apenas arquivos normais, omitindo diretórios.
  • -mtime +30 – Pesquise arquivos modificados há mais de 30 dias.
  • -user jane – Pesquise arquivos pertencentes ao usuário “jane.”

Por exemplo:

find . -type f -mtime +30

Isso encontrará todos os arquivos regulares com mais de 30 dias sob o diretório atual (indicado pelo ponto).

O comando find permite a busca de arquivos baseada em todo tipo de condições avançadas como nome, tamanho, permissões, marcas temporais, propriedade e mais.

10. du – Estimar Uso do Espaço de Arquivo

O comando du mede o uso de espaço de arquivo para um diretório dado. Quando usado sem opções, ele exibe o uso de disco para o diretório de trabalho atual.

A sintaxe para du é:

du [opções] [caminho]

Opções úteis de du:

  • -h – Exibe tamanhos de arquivos em formato legível por humanos, como K para Kilobytes, em vez de uma contagem de bytes. Muito mais fácil de interpretar.
  • -s – Mostra apenas o tamanho total de um diretório, em vez de listar cada subdiretório e arquivo. Bom para resumo.
  • -a – Mostra os tamanhos individuais dos arquivos além dos totais. Ajuda a identificar arquivos grandes.

Por exemplo:

du -sh pictures

Isso imprimirá um total de tamanho legível para o diretório “pictures”.

O comando du é útil para analisar o uso do disco para uma árvore de diretórios e identificar arquivos que consomem espaço excessivo.

Comandos de Pesquisa e Filtro no Linux

Agora, vamos explorar comandos que permitem pesquisar, filtrar e manipular texto diretamente da linha de comando do Linux.

11. grep – Pesquisar Texto Usando Padrões

O comando grep é usado para procurar padrões de texto dentro de arquivos ou saídas. Ele imprime quaisquer linhas que correspondam à expressão regular fornecida. grep é extremamente poderoso para buscar, filtrar e combinar padrões no Linux.

Aqui está a sintaxe básica:

grep [opções] padrão [arquivos]

Por exemplo:

grep -i "error" /var/log/syslog

Esta pesquisa no arquivo syslog pela palavra “error”, ignorando a sensibilidade de maiúsculas e minúsculas.

Algumas opções úteis de grep:

  • -i – Ignorar distinções de maiúsculas e minúsculas nos padrões
  • -R – Pesquisar subdiretórios recursivamente
  • -c – Imprimir apenas a contagem de linhas que combinam
  • -v – Inverter correspondência, imprimir linhas não correspondentes

grep permite que você procure arquivos e saídas para palavras-chave ou padrões rapidamente. É inestimável para analisar registros, buscar em códigos-fonte, combinar regexes e extrair dados.

12. awk – Linguagem de Análise e Processamento de Padrões

O comando awk permite um processamento de texto mais avançado baseado em padrões e ações especificados. Ele opera em uma base linha por linha, dividindo cada linha em campos.

a sintaxe awk é:

awk 'padrão { ação }' arquivo-de-entrada

Por exemplo:

awk '/error/ {print $1}' /var/log/syslog

Isso imprime o primeiro campo de qualquer linha que contenha “erro.” awk também pode usar variáveis internas como NR (número de registros) e NF (número de campos).

As capacidades avançadas do awk incluem:

  • Cálculos matemáticos em campos
  • Declarações condicionais
  • Funções integradas para manipular strings, números e datas
  • Controle de formatação de saída

Isso torna o awk adequado para extração de dados, relatórios e transformação de saída de texto. awk é extremamente poderoso, pois é uma linguagem de programação independente que oferece muito controle como um comando Linux.

13. sed – Editor de Fluxo para Filtragem e Transformação de Texto

O comando sed permite o filtro e a transformação de texto. Ele pode realizar operações como busca/substituição, exclusão, transposição e mais. No entanto, ao contrário de awk, o sed foi projetado para editar linhas em uma base por linha conforme as instruções.

Aqui está a sintaxe básica:

sed opções 'comandos' arquivo-de-entrada

Por exemplo:

sed 's/foo/bar/' file.txt

Isso substitui “foo” por “bar” em file.txt.

Alguns comandos sed úteis:

  • s – Pesquisar e substituir texto
  • /pattern/d – Excluir linhas que correspondem a um padrão
  • 10,20d – Excluir linhas 10-20
  • 1,3!d – Excluir todas exceto as linhas 1-3

sed é ideal para tarefas como busca/substituição em massa, exclusão seletiva de linhas e outras operações de edição de fluxo de texto.

14. sort – Ordenar Linhas de Arquivos de Texto

Quando você está trabalhando com muito texto ou dados ou até mesmo grandes saídas de outros comandos, ordená-los é uma ótima maneira de tornar as coisas gerenciáveis. O comando sort irá ordenar as linhas de um arquivo de texto alfabeticamente ou numericamente.

Sintaxe básica de ordenação:

sort [opções] [arquivo]

Opções de ordenação úteis:

  • -n – Ordenar numericamente em vez de alfabeticamente
  • -r – Inverter a ordem de classificação
  • -k – Ordenar com base em um campo ou coluna específica

Por exemplo:

sort -n grades.txt

Isso ordena numericamente os conteúdos de grades.txt. sort é útil para ordenar os conteúdos de arquivos para uma saída mais legível ou análise.

15. uniq – Relate ou Omita Linhas Repetidas

O comando uniq filtra linhas duplicadas adjacentes da entrada. Isso é frequentemente utilizado em conjunto com sort.

Sintaxe básica:

uniq [opções] [entrada]

Opções:

  • -c – Prefixar linhas únicas com a contagem de ocorrências.
  • -d – Mostrar apenas linhas duplicadas, não as únicas.

Por exemplo:

sort data.txt | uniq

Isso removerá quaisquer linhas duplicadas em data.txt após a ordenação. uniq oferece controle sobre a filtragem de texto repetido.

16. diff – Comparar Arquivos Linha por Linha

O comando diff compara dois arquivos linha por linha e imprime as diferenças. É comumente usado para mostrar as alterações entre versões de arquivos.

Sintaxe:

diff [opções] arquivo1 arquivo2

Opções:

  • -b – Ignorar alterações no espaço em branco.
  • -B – Mostrar diferenças em linha, destacando as mudanças.
  • -u – Mostrar diferenças com três linhas de contexto.

Por exemplo:

diff original.txt updated.txt

Isso exibirá as linhas que diferem entre original.txt e updated.txt. diff é inestimável para comparar revisões de arquivos de texto e código-fonte.

17. wc – Imprimir Contagem de Linhas, Palavras e Bytes

O comando wc (contagem de palavras) exibe contagens de linhas, palavras e bytes em um arquivo.

Sintaxe:

wc [opções] [arquivo]

Opções:

  • -l – Imprimir apenas a contagem de linhas.
  • -w – Imprimir apenas a contagem de palavras.
  • -c – Imprimir apenas a contagem de bytes.

Por exemplo:

wc report.txt

Este comando imprimirá o número de linhas, palavras e bytes em report.txt.

Comandos de Redirecionamento no Linux

Os comandos de redirecionamento são usados para controlar fontes de entrada e saída no Linux, permitindo que você envie e adicione fluxos de saída a arquivos, receba entrada de arquivos, conecte múltiplos comandos e divida a saída para múltiplos destinos.

18. > – Redirecionar Saída Padrão

O operador > redirection redireciona o fluxo de saída padrão do comando para um arquivo em vez de imprimir no terminal. Qualquer conteúdo existente do arquivo será sobrescrito.

Por exemplo:

ls -l /home > homelist.txt

Isso executará ls -l para listar os conteúdos do diretório /home.

Então, em vez de imprimir essa saída no terminal, o símbolo > captura essa saída padrão e escreve em homelist.txt, sobrescrevendo quaisquer conteúdos de arquivo existentes.

Redirecionar a saída padrão é útil para salvar os resultados dos comandos em arquivos para armazenamento, depuração ou encadeamento de comandos.

19. >> – Anexar Saída Padrão

O operador >> anexa a saída padrão de um comando a um arquivo sem sobrescrever o conteúdo existente.

Por exemplo:

tail /var/log/syslog >> logfile.txt

Isso acrescentará as últimas 10 linhas do arquivo de log syslog ao final do arquivo logfile.txt. Diferente de >, >> adiciona a saída sem apagar o conteúdo atual do logfile.txt.

Acrescentar é útil para coletar a saída de comandos em um único local sem perder dados existentes.

20. < – Redirecionar Entrada Padrão

O operador de redirecionamento < fornece o conteúdo de um arquivo como entrada padrão para um comando, em vez de receber a entrada do teclado.

Por exemplo:

wc -l < myfile.txt

Isso envia o conteúdo de myfile.txt como entrada para o comando wc, que contará as linhas nesse arquivo em vez de esperar pela entrada do teclado.

Redirecionar a entrada é útil para o processamento em lote de arquivos e automação de fluxos de trabalho.

21. | – Encaminhar Saída para Outro Comando

O operador de pipe | envia a saída de um comando como entrada para outro comando, encadeando-os.

Por exemplo:

ls -l | less

Isso direciona a saída do comando ls -l para o comando less, que permite rolar pela lista de arquivos.

O encadeamento é comumente usado para conectar comandos onde a saída de um alimenta a entrada de outro. Isso permite construir operações complexas a partir de programas menores e de propósito único.

22. tee – Ler da Entrada Padrão e Escrever na Saída Padrão e Arquivos

O comando tee divide a entrada padrão em dois fluxos.

Ele escreve a entrada na saída padrão (mostra a saída do comando principal) enquanto também salva uma cópia em um arquivo.

Por exemplo:

cat file.txt | tee copy.txt

Isso exibe o conteúdo do arquivo file.txt no terminal enquanto simultaneamente o escreve no copy.txt.

tee é diferente de redirecionar, onde você não vê a saída até que abra o arquivo para o qual redirecionou a saída.

Comandos de Arquivo

Os comandos de arquivamento permitem agrupar vários arquivos e diretórios em arquivos de arquivo comprimidos para facilitar a portabilidade e o armazenamento. Os formatos de arquivo comuns no Linux incluem .tar, .gz, e .zip.

23. tar – Armazene e Extraia Arquivos de um Arquivo

O comando tar ajuda você a trabalhar com arquivos de arquivo de fita (.tar). Ele ajuda a agrupar vários arquivos e diretórios em um único arquivo .tar comprimido.

Sintaxe:

tar [options] filename

Opções úteis de tar:

  • -c – Crie um novo arquivo de arquivo .tar.
  • -x – Extraia arquivos de um arquivo .tar.
  • -f – Especifique o nome do arquivo de arquivo em vez de stdin/stdout.
  • -v – Saída detalhada mostrando os arquivos arquivados.
  • -z – Comprimir ou descomprimir o arquivo com gzip.

Por exemplo:

tar -cvzf images.tar.gz /home/user/images

Isso cria um arquivo tar comprimido com gzip chamado images.tar.gz contendo a pasta /home/user/images.

24. gzip – Comprimir ou Expandir Arquivos

O comando gzip comprime arquivos usando a codificação LZ77 para reduzir o tamanho para armazenamento ou transmissão. Com gzip, você trabalha com arquivos .gz.

Sintaxe:

gzip [opções] nome_do_arquivo

Opções úteis de gzip:

  • -c – Escreva a saída no stdout em vez de no arquivo.
  • -d – Descomprima o arquivo em vez de comprimir.
  • -r – Compacte diretórios recursivamente.

Por exemplo:

gzip -cr documentos/

O comando acima comprime recursivamente a pasta de documentos e gera saída para stdout.

25. gunzip – Descomprimir Arquivos

O comando gunzip é usado para descomprimir arquivos .gz.

Sintaxe:

gunzip filename.gz

Exemplo:

gunzip documents.tar.gz

O comando acima extrairá o conteúdo original descompactado de documents.tar.gz.

26. zip – Empacotar e Comprimir Arquivos

O comando zip cria arquivos arquivados .zip contendo conteúdos de arquivos comprimidos.

Sintaxe:

zip [opções] archive.zip nomes_de_arquivos

Opções úteis de zip:

  • -r – Compactar um diretório de forma recursiva.
  • -e – Criptografar o conteúdo com uma senha.

Exemplo:

zip -re images.zip pictures

Isso criptografa e comprime a pasta de imagens em images.zip.

27. unzip – Extrair Arquivos de Arquivos ZIP

Similar ao gunzip, o comando unzip extrai e descomprime arquivos de arquivos .zip.

Sintaxe:

unzip archive.zip

Exemplo:

unzip images.zip

O comando do exemplo acima extrai todos os arquivos de images.zip no diretório atual.

Comandos de Transferência de Arquivos

Os comandos de transferência de arquivos permitem mover arquivos entre sistemas através de uma rede. Isso é útil para copiar arquivos para servidores remotos ou baixar conteúdo da internet.

28. scp – Cópia Segura de Arquivos Entre Hosts

O comando scp (cópia segura) copia arquivos entre hosts por meio de uma conexão SSH. Todas as transferências de dados são criptografadas para segurança.

A sintaxe scp copia arquivos de um caminho de origem para um destino definido como user@host:

scp source user@host:destination

Por exemplo:

scp image.jpg user@server:/uploads/

Isso copia de forma segura o image.jpg para a pasta /uploads no servidor como usuário.

scp funciona como o comando cp, mas para transferência de arquivos remotos. Ele utiliza SSH (Secure Shell) para a transferência de dados, fornecendo criptografia para garantir que nenhum dado sensível, como senhas, seja exposto na rede. A autenticação geralmente é feita usando chaves SSH, embora senhas também possam ser usadas. Arquivos podem ser copiados tanto de quanto para hosts remotos.

29. rsync – Sincronizar Arquivos Entre Hosts

A ferramenta rsync sincroniza arquivos entre dois locais enquanto minimiza a transferência de dados usando codificação delta. Isso torna mais rápido sincronizar grandes árvores de diretórios.

A sintaxe rsync sincroniza a fonte com o destino:

rsync [opções] origem destino

Por exemplo:

rsync -ahv ~/documents user@server:/backups/

O comando do exemplo acima sincroniza recursivamente a pasta de documentos para server:/backups/, mostrando uma saída verbosa e legível por humanos.

Opções úteis de rsync:

  • -a – O modo de arquivo sincroniza de forma recursiva e preserva permissões, horários, etc.
  • -h – Saída legível por humanos.
  • -v – Saída detalhada.

rsync é ideal para sincronizar arquivos e pastas com sistemas remotos e manter as coisas decentralmente seguras e respaldadas.

30. sftp – Programa Seguro de Transferência de Arquivos

O programa sftp fornece transferências de arquivos interativas sobre SSH, semelhante ao FTP regular, mas criptografado. Ele pode transferir arquivos para/de sistemas remotos.

sftp conecta-se a um host e aceita comandos como:

sftp user@host

get remotefile localfile

put localfile remotefile

Isso recupera remotefile do servidor e copia localfile para o host remoto.

sftp possui um shell interativo para navegar em sistemas de arquivos remotos, transferir arquivos e diretórios, e gerenciar permissões e propriedades.

31. wget – Recuperar Arquivos da Web

A ferramenta wget baixa arquivos através de conexões HTTP, HTTPS e FTP. É útil para recuperar recursos da web diretamente do terminal.

Por exemplo:

wget https://example.com/file.iso

Isso baixa a imagem do arquivo.iso do servidor remoto.

Opções úteis do wget:

  • -c – Retomar download interrompido.
  • -r – Download recursivo.
  • -O – Salvar com nome de arquivo específico.

wget é ideal para scripts de downloads automáticos e espelhamento de sites.

32. curl – Transferência de Dados De ou Para um Servidor

O comando curl transfere dados para ou de um servidor de rede usando protocolos suportados. Isso inclui REST, HTTP, FTP e mais.

Por exemplo:

curl -L https://example.com

O comando acima recupera dados da URL HTTPS e os exibe.

Opções úteis do curl:

  • -o – Escreva a saída em um arquivo.
  • -I – Mostrar apenas os cabeçalhos de resposta.
  • -L – Seguir redirecionamentos.

curl é projetado para transferir dados através de redes de forma programática.

Comandos de Permissões de Arquivos

Os comandos de permissões de arquivo permitem que você modifique os direitos de acesso para os usuários. Isso inclui definir permissões de leitura/escrita/execução, alterar a propriedade e os modos de arquivo padrão.

33. chmod – Alterar Modos de Arquivo ou Permissões de Acesso

O comando chmod é utilizado para alterar as permissões de acesso ou modos de arquivos e diretórios. Os modos de permissão representam quem pode ler, escrever ou executar o arquivo.

Por exemplo:

chmod 755 file.txt

Existem três conjuntos de permissões—proprietário, grupo e público. As permissões são definidas usando modos numéricos de 0 a 7:

  • 7 – ler, escrever e executar.
  • 6 – ler e escrever.
  • 4 – somente leitura.
  • 0 – sem permissão.

Isso define as permissões do proprietário para 7 (rwx), do grupo para 5 (r-x) e do público para 5 (r-x). Você também pode referenciar usuários e grupos simbolicamente:

chmod g+w file.txt

A sintaxe g+w adiciona permissão de escrita em grupo ao arquivo.

Definir as permissões adequadas de arquivos e diretórios é crucial para a segurança do Linux e controle de acesso. chmod oferece um controle flexível para configurar as permissões exatamente como necessário.

34. chown – Alterar Proprietário e Grupo do Arquivo

O comando chown altera a propriedade de um arquivo ou diretório. A propriedade tem dois componentes—o usuário que é o proprietário e o grupo ao qual pertence.

Por exemplo:

chown john:developers file.txt

O comando de exemplo acima definirá o usuário proprietário como “john” e o grupo proprietário como “developers”.

Somente a conta de superusuário Root pode usar chown para alterar os proprietários de arquivos. É usado para corrigir problemas de permissão, modificando o proprietário e o grupo conforme necessário.

35. umask – Definir Permissões Padrão de Arquivo

O comando umask controla as permissões padrão dadas aos arquivos recém-criados. Ele recebe uma máscara octal como entrada, que subtrai de 666 para arquivos e 777 para diretórios.

Por exemplo:

umask 007

Os novos arquivos terão permissões padrão 750 em vez de 666, e novos diretórios terão 700 em vez de 777.

Configurar um umask permite que você defina permissões de arquivo padrão em vez de depender das configurações padrão do sistema. O comando umask é útil para restringir permissões em novos arquivos sem depender de alguém que entre manualmente para adicionar restrições.

Comandos de Gerenciamento de Processos

Estes comandos permitem visualizar, monitorar e controlar processos em execução no seu sistema Linux. Isso é útil para identificar o uso de recursos e interromper programas que não estão funcionando corretamente.

36. ps – Relatar um Instantâneo dos Processos Atuais

O comando ps exibe um instantâneo dos processos atualmente em execução, incluindo seu PID, TTY, stat, hora de início, etc.

Por exemplo:

ps aux

Isso mostra todos os processos em execução como todos os usuários com detalhes adicionais como uso de CPU e memória.

Algumas opções úteis de ps:

  • aux – Exibir processos para todos os usuários
  • --forest – Mostrar árvore de processos pai/filho

ps oferece visibilidade sobre o que está sendo executado atualmente no seu sistema.

37. top – Exibir Processos Linux

O comando top exibe informações de processos do Linux em tempo real, incluindo PID, usuário, % de CPU, uso de memória, tempo de atividade e mais. Ao contrário de ps, ele atualiza a exibição dinamicamente para refletir o uso atual.

Por exemplo:

top -u mysql

O comando acima monitora processos apenas para o usuário “mysql”. Torna-se bastante útil para identificar programas que consomem muitos recursos.

38. htop – Visualizador Interativo de Processos

O comando htop é um visualizador de processos interativo que substitui o comando top. Ele mostra os processos do sistema junto com gráficos de uso de CPU/memória/swap, permite a ordenação por colunas, encerramento de programas e mais.

Basta digitar htop na linha de comando para visualizar seus processos.

htop possui elementos de UI aprimorados com cores, rolagem e suporte a mouse para facilitar a navegação em comparação com top. Excelente para investigar processos.

gráfico de barras mostrando que os desenvolvedores preferem Linux (76,9%) em comparação com Docker (73,6%) e Kubernetes (71,1%)

39. kill – Envie um Sinal para um Processo

O comando kill envia um sinal para um processo para terminar ou encerrá-lo. Os sinais permitem um desligamento gracioso se o processo os manipular.

Por exemplo:

kill -15 12345

O comando acima envia o sinal SIGTERM (15) para parar o processo com PID 12345 de forma graciosa.

40. pkill – Enviar um Sinal para um Processo Baseado em Nome

O comando pkill encerra processos pelo nome ao invés de PID. Isso pode facilitar as coisas ao invés de encontrar o PID primeiro.

Por exemplo:

pkill -9 firefox

Isso encerra forçosamente todos os processos do Firefox com SIGKILL (9). pkill direciona processos pelo nome, usuário e outros critérios em vez do PID.

41. nohup – Execute um Comando Imune a Interrupções

O comando nohup executa processos imunes a interrupções, de modo que eles continuam rodando se você sair ou se desconectar.

Por exemplo:

nohup python script.py &

O comando de exemplo acima irá iniciar o script.py desanexado em segundo plano e imune a interrupções. nohup é geralmente usado para iniciar daemons e serviços persistentes em segundo plano.

Comandos de Monitoramento de Desempenho

Esses comandos fornecem estatísticas valiosas de desempenho do sistema para ajudar a analisar a utilização de recursos, identificar gargalos e otimizar a eficiência.

42. vmstat – Relatório de Estatísticas de Memória Virtual

O comando vmstat exibe relatórios detalhados sobre memória, swap, I/O e atividade da CPU. Isso inclui métricas como memória utilizada/livre, swap para dentro/para fora, blocos de disco lidos/escritos e tempo de CPU gasto em processos/ocioso.

Por exemplo:

vmstat 5

Outras opções úteis de vmstat:

  • -a – Mostrar memória ativa e inativa
  • -s – Exibir contadores de eventos e estatísticas de memória
  • -S – Saída em KB em vez de blocos
  • 5 – Saída atualizada a cada 5 segundos.

O exemplo acima exibe dados de memória e CPU a cada 5 segundos até ser interrompido, o que é útil para monitorar o desempenho do sistema em tempo real.

43. iostat – Relatório de Estatísticas de CPU e I/O

O comando iostat monitora e exibe a utilização da CPU e as métricas de E/S de disco. Isso inclui carga da CPU, IOPS, taxa de leitura/escrita e mais.

Por exemplo:

iostat -d -p sda 5

Algumas opções de iostat:

  • -c – Exibir informações de utilização da CPU
  • -t – Imprimir marca temporal para cada relatório
  • -x – Mostrar estatísticas estendidas como tempos de serviço e contagens de espera
  • -d – Mostrar estatísticas detalhadas por disco/partição em vez de totais agregados
  • -p – Exibir estatísticas para dispositivos de disco específicos

Isso mostra estatísticas detalhadas de I/O por dispositivo para sda a cada 5 segundos.

iostat ajuda a analisar o desempenho do subsistema de disco e identificar gargalos de hardware.

44. free – Exibir Quantidade de Memória Livre e Usada

O comando free exibe os valores totais, usados e livres das memórias física e swap no sistema. Isso oferece uma visão geral da memória disponível.

Por exemplo:

free -h

Algumas opções para o comando free:

  • -b – Exibir saída em bytes
  • -k – Mostrar saída em KB ao invés de bytes padrão
  • -m – Mostrar saída em MB ao invés de bytes
  • -h – Imprimir estatísticas em formato legível por humanos como GB, MB ao invés de bytes.

Isso exibe estatísticas de memória em um formato legível (GB, MB, etc). É útil quando você deseja uma visão geral rápida da capacidade de memória.

45. df – Relatório de Uso do Espaço em Disco do Sistema de Arquivos

O comando df exibe o uso de espaço em disco para sistemas de arquivos. Ele mostra o nome do sistema de arquivos, espaço total/usado/disponível e capacidade.

Por exemplo:

df -h

O comando acima exibirá a utilização do disco em um formato legível por humanos. Você também pode executá-lo sem argumentos para obter os mesmos dados em tamanhos de blocos.

46. sar – Coletar e Relatar Atividade do Sistema

A ferramenta sar coleta e registra informações de atividade do sistema sobre CPU, memória, I/O, rede e mais ao longo do tempo. Esses dados podem ser analisados para identificar problemas de desempenho.

Por exemplo:

sar -u 5 60

Esta amostra o uso da CPU a cada 5 segundos por uma duração de 60 amostras.

sar fornece dados detalhados de desempenho do sistema histórico que não estão disponíveis em ferramentas em tempo real.

Comandos de Gerenciamento de Usuário

Ao usar sistemas multiusuário, você pode precisar de comandos que ajudem a gerenciar usuários e grupos para controle de acesso e permissões. Vamos abordar esses comandos aqui.

47. useradd – Criar Um Novo Usuário

O comando useradd cria uma nova conta de usuário e diretório pessoal. Ele define o UID do novo usuário, grupo, shell e outros padrões.

Por exemplo:

useradd -m john

Opções úteis de useradd:

  • -m – Criar o diretório inicial do usuário.
  • -g – Especificar o grupo principal ao invés do padrão.
  • -s – Definir o Shell de login do usuário.

O comando acima criará um novo usuário, “john,” com um UID gerado e uma pasta pessoal criada em /home/john.

48. usermod – Modificar uma Conta de Usuário

O comando usermod modifica as configurações de uma conta de usuário existente. Isso pode alterar o nome de usuário, dir home, shell, grupo, data de expiração, etc.

Por exemplo:

usermod -aG developers john

Com este comando, você adiciona um usuário john a um grupo adicional—“developers.” O -a acrescenta à lista existente de grupos aos quais o usuário é adicionado.

49. userdel – Excluir Uma Conta de Usuário

O comando userdel deleta uma conta de usuário, diretório pessoal e spool de correio.

Por exemplo:

userdel -rf john

Opções úteis de userdel:

  • -r – Remover o diretório home do usuário e a caixa de correio.
  • -f – Forçar a exclusão mesmo que o usuário ainda esteja logado.

Isso força a remoção do usuário “john,” excluindo os arquivos associados.

Especificar opções como -r e -f com userdel garante que a conta de usuário seja completamente deletada mesmo se o usuário estiver logado ou tiver processos ativos.

50. groupadd – Adicionar um Grupo

O comando groupadd cria um novo grupo de usuários. Grupos representam equipes ou funções para fins de permissões.

Por exemplo:

groupadd -r sysadmin

Opções úteis de groupadd:

  • -r – Criar um grupo de sistema usado para funções essenciais do sistema.
  • -g – Especificar o GID do novo grupo em vez de usar o próximo disponível.

O comando acima cria um novo grupo “sysadmin” com privilégios de sistema. Ao criar novos grupos, o -r ou -g ajudam a configurá-los corretamente.

51. passwd – Atualizar Tokens de Autenticação do Usuário

O comando passwd define ou atualiza a senha/tokens de autenticação de um usuário. Isso permite alterar sua senha de login.

Por exemplo:

passwd john

Isso solicita ao usuário “john” que insira uma nova senha interativamente. Se você perdeu a senha de uma conta, talvez queira fazer login no Linux com privilégios de sudo ou su e alterar a senha usando o mesmo método.

Comandos de Networking

Estes comandos são usados para monitorar conexões, solucionar problemas de rede, roteamento, consultas DNS e configuração de interface.

52. ping – Enviar ICMP ECHO_REQUEST para Hosts de Rede

O comando ping verifica a conectividade com um host remoto enviando pacotes de solicitação de eco ICMP e ouvindo as respostas de eco.

Por exemplo:

ping google.com
PING google.com (142.251.42.78): 56 data bytes
64 bytes from 142.251.42.78: icmp_seq=0 ttl=112 time=8.590 ms
64 bytes from 142.251.42.78: icmp_seq=1 ttl=112 time=12.486 ms
64 bytes from 142.251.42.78: icmp_seq=2 ttl=112 time=12.085 ms
64 bytes from 142.251.42.78: icmp_seq=3 ttl=112 time=10.866 ms
--- google.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 8.590/11.007/12.486/1.518 ms

Opções úteis de ping:

  • -c [count] – Limita pacotes enviados.
  • -i [interval] – Espera intervalo de segundos entre pings.

Com o comando acima, você faz ping em google.com e exibe estatísticas de ida e volta indicando conectividade e latência. Geralmente, ping é usado para verificar se um sistema ao qual você está tentando se conectar está ativo e conectado à rede.

53. ifconfig – Configurar Interfaces de Rede

O comando ifconfig exibe e configura as configurações da interface de rede, incluindo endereço IP, máscara de rede, broadcast, MTU e endereço MAC do hardware.

Por exemplo:

ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe1e:ef1d  prefixlen 64  scopeid 0x20<link>
ether 08:00:27:1e:ef:1d  txqueuelen 1000  (Ethernet)
RX packets 23955654  bytes 16426961213 (15.3 GiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 12432322  bytes 8710937057 (8.1 GiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Executar ifconfig sem outros argumentos fornecerá uma lista de todas as interfaces de rede disponíveis para uso, juntamente com IP e informações adicionais de rede. ifconfig também pode ser usado para configurar endereços, ativar/desativar interfaces e alterar opções.

54. netstat – Estatísticas de Rede

O comando netstat mostra as conexões de rede, tabelas de rotas, estatísticas de interface, conexões de mascaramento e associações multicast.

Por exemplo:

netstat -pt tcp

Este comando exibirá todas as conexões TCP ativas e os processos que as utilizam.

55. ss – Estatísticas de Socket

O comando ss descarrega informações estatísticas de soquete semelhantes ao netstat. Ele pode mostrar soquetes TCP e UDP abertos, tamanhos de buffer de envio/recebimento e mais.

Por exemplo:

ss -t -a

Isso imprime todos os sockets TCP abertos. Mais eficiente que netstat.

56. Traceroute – Traçar Rota Até o Host

O comando traceroute exibe a rota que os pacotes tomam até um host de rede, mostrando cada salto ao longo do caminho e os tempos de trânsito. Útil para depuração de rede.

Por exemplo:

traceroute google.com

Isso traça o caminho para alcançar google.com e exibe cada salto de rede.

57. dig - Consulta DNS

O comando dig realiza consultas DNS e retorna informações sobre registros DNS para um domínio.

Por exemplo:

dig google.com
; <<>> DiG 9.10.6 <<>> google.com
;; opções globais: +cmd
;; Resposta recebida:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60290
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; SEÇÃO OPT PSEUDO:
; EDNS: versão: 0, flags:; udp: 1280
;; SEÇÃO DE PERGUNTA:
;google.com. IN A
;; SEÇÃO DE RESPOSTA:
google.com. 220 IN A 142.251.42.78
;; Tempo de consulta: 6 ms
;; SERVIDOR: 2405:201:2:e17b::c0a8:1d01#53(2405:201:2:e17b::c0a8:1d01)
;; QUANDO: Qua Nov 15 01:36:16 IST 2023
;; TAMANHO DA MSG recebida: 55

Esta consulta serve para procurar registros relacionados a google.com em servidores DNS e exibir detalhes.

58. nslookup – Consulta Interativa aos Servidores de Nomes da Internet

O comando nslookup consulta servidores DNS de forma interativa para realizar pesquisas de resolução de nomes ou exibir registros DNS.

Ele entra em um Shell interativo, permitindo que você procure manualmente nomes de host, reverta endereços IP, encontre tipos de registros DNS e mais.

Por exemplo, alguns usos comuns do nslookup. Digite nslookup na sua linha de comando:

nslookup

Em seguida, configuraremos o servidor DNS 8.8.8.8 do Google para consultas.

> server 8.8.8.8

Agora, vamos consultar o registro A de stackoverflow.com para encontrar seu endereço IP.

> set type=A
> stackoverflow.com
Servidor: 8.8.8.8
Endereço: 8.8.8.8#53
Resposta não autoritativa:
Nome: stackoverflow.com
Endereço: 104.18.32.7
Nome: stackoverflow.com
Endereço: 172.64.155.249

Agora, vamos encontrar os registros MX para github.com para ver seus servidores de e-mail.

> set type=MX
> github.com
Servidor: 8.8.8.8
Endereço: 8.8.8.8#53
Resposta não autoritativa:
github.com trocador de correios = 1 aspmx.l.google.com.
github.com trocador de correios = 5 alt1.aspmx.l.google.com.
github.com trocador de correios = 5 alt2.aspmx.l.google.com.
github.com trocador de correios = 10 alt3.aspmx.l.google.com.
github.com trocador de correios = 10 alt4.aspmx.l.google.com.

As consultas interativas tornam o nslookup muito útil para explorar DNS e solucionar problemas de resolução de nomes.

59. iptables – Filtragem de Pacotes IPv4 e NAT

O comando iptables permite configurar regras de firewall do netfilter do Linux para filtrar e processar pacotes de rede. Ele estabelece políticas e regras para como o sistema lidará com diferentes tipos de conexões e tráfego de entrada e saída.

Por exemplo:

iptables -A INPUT -s 192.168.1.10 -j DROP

O comando acima bloqueará todas as entradas do IP 192.168.1.10.

iptables oferece controle poderoso sobre o firewall do kernel Linux para lidar com roteamento, NAT, filtragem de pacotes e outros controles de tráfego. É uma ferramenta essencial para a segurança de servidores Linux.

60. ip – Gerenciar Dispositivos de Rede e Roteamento

O comando ip permite gerenciar e monitorar diversas atividades relacionadas a dispositivos de rede, como atribuir endereços IP, configurar sub-redes, exibir detalhes de conexão e configurar opções de roteamento.

Por exemplo:

ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:8a:5c:04 brd ff:ff:ff:ff:ff:ff

O comando acima mostra todas as interfaces de rede, o status delas e outras informações.

Este comando visa substituir o ifconfig por uma gestão de rede Linux mais moderna. ip pode controlar dispositivos de rede, tabelas de roteamento e outras configurações da pilha de rede.

Comandos de Gerenciamento de Pacotes

Os gerenciadores de pacotes permitem a instalação, atualização e remoção fáceis de software em distribuições Linux. Gerenciadores de pacotes populares incluem APT, YUM, DNF, Pacman e Zypper.

61. apt – Gerenciador de Pacotes Debian/Ubuntu

O comando apt gerencia pacotes em sistemas Debian/Ubuntu usando o repositório APT. Ele permite instalar, atualizar e remover pacotes.

Por exemplo:

apt update

Este comando busca as versões mais recentes de pacotes e metadados dos repositórios.

apt install nginx

Você pode instalar o pacote nginx a partir dos repositórios APT configurados usando o comando acima.

apt upgrade

E este comando atualiza pacotes e dependências para versões mais recentes.

APT facilita a instalação de software ao buscar pacotes de repositórios.

62. pacman – Gerenciador de Pacotes do Arch Linux

pacman gerencia pacotes no Arch Linux a partir do Repositório de Usuários Arch. Ele pode instalar, atualizar e remover pacotes.

Por exemplo:

pacman -S nmap

Isso instala o pacote nmap dos repositórios configurados.

pacman -Syu

Isso sincroniza com os repositórios e atualiza todos os pacotes.

pacman mantém o Arch Linux atualizado e permite o gerenciamento fácil de pacotes.

63. dnf – Gerenciador de Pacotes Fedora

dnf instala, atualiza e remove pacotes em distribuições Linux Fedora usando pacotes RPM. Ele substitui o Yum como o gerenciador de pacotes da próxima geração.

Por exemplo:

dnf install util-linux

Isso instala o pacote util-linux.

dnf upgrade

Isso atualiza todos os pacotes instalados para as versões mais recentes.

dnf torna a gestão de pacotes do Fedora rápida e eficiente.

64. yum – Gerenciador de Pacotes Red Hat

yum gerencia pacotes nas distribuições Linux RHEL e CentOS usando pacotes RPM. Ele busca em repositórios Yum para instalar e atualizar.

Por exemplo:

yum update

Isso atualiza todos os pacotes instalados para as versões mais recentes.

yum install httpd

O comando acima instala o pacote Apache httpd. yum tem sido o principal gerenciador de pacotes para manter as distribuições Red Hat atualizadas.

65. zypper – Gerenciador de Pacotes OpenSUSE

zypper gerencia pacotes no Linux SUSE/openSUSE. Ele pode adicionar repositórios, procurar, instalar e atualizar pacotes.

Por exemplo:

zypper refresh

O comando de atualização para zypper atualiza os metadados do repositório dos repositórios adicionados.

zypper install python

Isso instala o pacote Python a partir de repositórios configurados. zypper torna a experiência de gerenciamento de pacotes sem esforço em sistemas SUSE/openSUSE.

66. flatpak – Gerenciador de Pacotes de Aplicativos Flatpak

O comando flatpak ajuda você a gerenciar aplicações e ambientes de execução Flatpak. flatpak permite a distribuição de aplicações desktop em sandbox em todo o Linux.

Por exemplo:

flatpak install flathub org.libreoffice.LibreOffice

Por exemplo, o comando acima instalará o LibreOffice a partir do repositório Flathub.

flatpak run org.libreoffice.LibreOffice

E este lança a aplicação LibreOffice Flatpak em sandbox. flatpak fornece um repositório centralizado de aplicativos Linux cross-distro, então você não está mais limitado aos pacotes disponíveis com a biblioteca de pacotes de uma distro específica.

67. appimage – Gerenciador de Pacotes de Aplicativos AppImage

AppImage são pacotes de aplicações autossuficientes que funcionam na maioria das distribuições Linux. O comando appimage executa AppImages existentes.

Por exemplo:

chmod +x myapp.AppImage
./myapp.AppImage

Isso permite executar diretamente o arquivo binário AppImage.

AppImages permitem a implantação de aplicativos sem instalação em todo o sistema. Pense neles como pequenos contêineres que incluem todos os arquivos para permitir que o aplicativo funcione sem muitas dependências externas.

68. snap – Gerenciador de Pacotes de Aplicações Snappy

O comando snap gerencia snaps—pacotes de software containerizados. Snaps atualizam automaticamente e funcionam em distribuições Linux semelhantes ao Flatpak.

Por exemplo:

snap install vlc

Este comando simples instala o snap do VLC media player.

snap run vlc

Uma vez instalado, você pode usar snap para executar pacotes que são instalados via snap usando o comando acima. Snaps isolam aplicativos do sistema base para portabilidade e permitem instalações mais limpas.

Comandos de Informação do Sistema

Estes comandos permitem que você visualize detalhes sobre o hardware do seu sistema Linux, kernel, distribuições, hostname, tempo de atividade e mais.

69. uname – Imprimir Informações do Sistema

O comando uname imprime informações detalhadas sobre o kernel do sistema Linux, arquitetura de hardware, hostname e sistema operacional. Isso inclui números de versão e informações da máquina.

Por exemplo:

uname -a
Linux hostname 5.4.0-48-generic x86_64 GNU/Linux

uname é útil para consultar esses detalhes do sistema principal. Algumas opções incluem:

  • -a – Imprimir todas as informações do sistema disponíveis
  • -r – Imprimir apenas o número de lançamento do kernel

O comando acima exibiu informações estendidas do sistema, incluindo nome/versão do kernel, arquitetura de hardware, hostname e sistema operacional.

uname -r

Isso imprimirá apenas o número da versão do kernel. O comando uname mostra detalhes sobre os componentes principais do seu sistema Linux.

70. hostname – Mostrar ou Definir o Nome do Host do Sistema

O comando hostname imprime ou define o identificador de nome de host para seu sistema Linux na rede. Sem argumentos, ele exibe o nome de host atual. Passando um nome, ele atualizará o nome de host.

Por exemplo:

hostname
linuxserver

Isso imprime linuxserver — o nome do servidor configurado.

hostname UbuntuServer

hostnames identificam sistemas em uma rede. hostname obtém ou configura o nome identificador do seu sistema na rede. O segundo comando ajuda você a alterar o nome de host local para UbuntuServer.

71. uptime – Há quanto tempo o sistema está em funcionamento

O comando uptime mostra há quanto tempo o sistema Linux está funcionando desde a última reinicialização. Ele exibe o tempo de atividade e a hora atual.

Execute o seguinte comando para obter os dados de tempo de atividade do seu sistema:

uptime
23:51:26 up 2 days, 4:12, 1 user, load average: 0.00, 0.01, 0.05

Isso mostra o tempo de atividade do sistema, indicando há quanto tempo o sistema está ligado desde a última inicialização.

72. whoami – Imprimir ID do Usuário Ativo

O comando whoami imprime o nome de usuário efetivo do usuário atual logado no sistema. Ele exibe o nível de privilégio com o qual você está operando.

Digite o comando no seu terminal para obter o ID:

whoami
john

Isso mostra o nome de usuário efetivo com que o usuário atual está logado e operando, sendo útil em scripts ou diagnósticos para identificar como quais contas de usuário as ações estão sendo realizadas.

73. id – Imprima os IDs de Usuário e Grupo Reais e Efetivos

O comando id exibe informações detalhadas sobre o usuário e o grupo, incluindo IDs e nomes efetivos do usuário atual. Isso inclui:

  • ID real do usuário e nome.
  • ID efetivo do usuário e nome.
  • ID real do grupo e nome.
  • ID efetivo do grupo e nome.

Para usar o comando id, simplesmente digite: 

id
uid=1000(john) gid=1000(john) groups=1000(john),10(wheel),998(developers)

O comando id exibe os IDs de usuário e grupo reais e efetivos do usuário atual. id mostra detalhes do usuário e do grupo úteis para determinar permissões de acesso a arquivos.

74. lscpu – Exibir Informações da Arquitetura da CPU

O comando lscpu mostra informações detalhadas sobre a arquitetura da CPU, incluindo:

  • Número de núcleos da CPU
  • Número de soquetes
  • Nome do modelo
  • Tamanhos de Cache
  • Frequência da CPU
  • Tamanhos de endereço

Para usar o comando lscpu, simplesmente digite: 

lscpu
Arquitetura: x86_64
Modos de operação da CPU: 32-bit, 64-bit
Ordem de Bytes: Little Endian
CPU(s): 16
Lista de CPU(s) on-line: 0-15

lscpu detalha a arquitetura da CPU como o número de núcleos, soquetes, nome do modelo, caches e mais.

75. lsblk – Listar Dispositivos de Bloco

O comando lsblk lista informações sobre todos os dispositivos de bloco disponíveis, incluindo discos locais, partições e volumes lógicos. A saída inclui nomes de dispositivos, rótulos, tamanhos e pontos de montagem.

lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda       8:0    0   1.8T  0 disk
|-sda1    8:1    0   512M  0 part  /boot
|-sda2    8:2    0    16M  0 part
`-sda5    8:5    0   1.8T  0 part
`-lvm1 254:0    0   1.8T  0 lvm   /

lsblk lista todos os dispositivos de bloco, incluindo discos, partições e volumes lógicos. Fornece uma visão geral dos dispositivos de armazenamento.

76. lsmod – Exibir o Status dos Módulos no Kernel Linux

O comando lsmod exibe os módulos de kernel atualmente carregados, como drivers de dispositivos. Isso inclui Networking, Armazenamento e outros módulos relacionados ao hardware que estão sendo usados pelo kernel Linux para interagir com dispositivos internos e externos.

lsmod
Módulo                  Tamanho  Usado por
ipv6                  406206  27
evdev                   17700  0
crct10dif_pclmul       16384  1
crc32_pclmul           16384  0
ghash_clmulni_intel    16384  0
aesni_intel           399871  0
aes_x86_64             20274  1 aesni_intel

Como você pode ver, ele lista os módulos de kernel carregados atualmente, como os drivers de dispositivo. Neste caso, mostra o uso de módulos de Networking, entrada, criptografia e encriptação.

77. dmesg – Imprimir ou Controlar o Buffer Circular do Kernel

O comando dmesg descarrega mensagens do buffer circular do kernel. Isso inclui eventos essenciais do sistema registrados pelo kernel durante a inicialização e operação.

dmesg | grep -i error
[   12.345678] Erro ao receber a resposta da leitura em lote: -110
[   23.456789] tplink_mdio 0000:03:00.0: Carregamento direto do firmware para tplink-mdio/leap_p8_v1_0.bin falhou com erro -2
[   40.567890] iwlwifi 0000:09:00.0: Carregamento direto do firmware para iwlwifi-ty-a0-gf-a0-59.ucode falhou com erro -2

Usar o comando “grep” para “error” mostra problemas ao carregar firmware específico. Isso imprime mensagens de log do kernel em buffer, incluindo eventos do sistema como inicialização, erros, avisos etc.

Comandos de Administração do Sistema

Os comandos de administração do sistema ajudam você a executar programas como outros usuários, desligar ou reiniciar o sistema e gerenciar sistemas init e serviços.

78. sudo – Execute um Comando como Outro Usuário

O comando sudo permite que você execute comandos como outro usuário, tipicamente o superusuário. Após inserir a ordem sudo, será solicitado seu password para autenticação.

Isso fornece acesso elevado para tarefas como instalar pacotes, editar arquivos do sistema, administrar serviços, etc.

Por exemplo:

sudo adduser bob
[sudo] senha para john:

O usuário ‘bob’ foi adicionado ao sistema.

Isso usa sudo para criar um novo usuário, ‘bob’. Usuários regulares geralmente não podem adicionar usuários sem sudo.

79. su – Mudar ID de Usuário ou Tornar-se Superusuário

O comando su permite que você troque para outra conta de usuário, incluindo o superusuário. Você deve fornecer a senha do usuário alvo para autenticar. Isso dá acesso direto para executar comandos no ambiente de outro usuário.

Por exemplo:

su bob
Senha:
bob@linux:~$

Após inserir a senha de bob, este comando altera o usuário atual para o usuário ‘bob’. O prompt do Shell refletirá o novo usuário.

80. shutdown – Desligar ou Reiniciar Linux

O comando shutdown agenda um desligamento do sistema, parada ou reinicialização após um temporizador especificado ou imediatamente. É necessário para reiniciar ou desligar sistemas Linux multiusuário de forma segura.

Por exemplo:

shutdown -r now
Broadcast message from root@linux Fri 2023-01-20 18:12:37 CST:
O sistema será reiniciado agora!

Isso reinicia o sistema imediatamente com um aviso aos usuários.

81. reboot – Reiniciar ou Reinicializar Sistema

O comando reboot reinicia o sistema operacional Linux, desconectando todos os usuários e reiniciando o sistema de forma segura. Ele sincroniza os discos e desliga o sistema de maneira limpa antes de reiniciar.

Por exemplo:

reboot
Reiniciando o sistema.

Isso reinicia imediatamente o sistema operacional. reboot é uma alternativa simples para shutdown -r.

82. systemctl – Controle o Gerenciador de Sistema e Serviços systemd

O comando systemctl permite que você gerencie serviços systemd como iniciar, parar, reiniciar ou recarregar eles. Systemd é o novo sistema de inicialização usado na maioria das distribuições Linux modernas, substituindo o SysV init.

Por exemplo:

systemctl start apache2
==== AUTENTICAÇÃO PARA org.freedesktop.systemd1.manage-units ===
É necessária autenticação para iniciar o 'apache2.service'.
Autenticando como: Nome de Usuário
Senha:
==== AUTENTICAÇÃO COMPLETA ===

Isso inicia o serviço apache2 após a autenticação.

83. serviço – Executar um Script de Inicialização System V

O comando service executa scripts de inicialização System V para controlar serviços. Isso permite iniciar, parar, reiniciar e recarregar serviços gerenciados sob o SysV init tradicional.

Por exemplo:

service iptables start
[ ok ] Iniciando iptables (via systemctl): iptables.service.

O comando acima inicia o serviço de firewall iptables usando seu script de inicialização SysV.

Outros Comandos Linux para Experimentar

  1. mount – Montar ou “anexar” unidades ao sistema.
  2. umount – Desmontar ou “remover” unidades do sistema.
  3. xargs – Constrói e executa comandos fornecidos através da entrada padrão.
  4. alias – Criar atalhos para comandos longos ou complexos.
  5. jobs – Listar programas que estão executando tarefas em segundo plano.
  6. bg – Retomar um processo em segundo plano que foi parado ou pausado.
  7. killall – Terminar processos pelo nome do programa em vez de pelo PID.
  8. history – Exibir comandos utilizados anteriormente na sessão atual do terminal.
  9. man – Acessar manuais de ajuda para comandos diretamente no terminal.
  10. screen – Gerenciar múltiplas sessões de terminal a partir de uma única janela.
  11. ssh – Estabelecer conexões seguras e criptografadas com servidores remotos.
  12. tcpdump – Capturar tráfego de rede com base em critérios específicos.
  13. watch – Repetir um comando em intervalos e destacar diferenças na saída.
  14. tmux – Multiplexador de terminal para sessões persistentes e divisão.
  15. nc – Abrir conexões TCP ou UDP para testes e transferência de dados.
  16. nmap – Descoberta de hosts, varredura de portas e identificação de sistemas operacionais.
  17. strace – Depurar processos rastreando sinais e chamadas do sistema operacional.

7 Dicas Essenciais para Usar Comandos Linux

  1. Conheça seu Shell: Bash, zsh, fish? Diferentes shells têm características únicas. Escolha aquele que melhor atenda às suas necessidades.
  2. Domine as utilidades principais: ls, cat, grep, sed, awk, etc formam a base de um kit de ferramentas Linux.
  3. Adira às pipelines: Evite o uso excessivo de arquivos temporários. Encadeie programas de maneira inteligente.
  4. Verifique antes de sobrescrever: Sempre verifique antes de sobrescrever arquivos com > e >>.
  5. Acompanhe seus fluxos de trabalho: Documente comandos complexos e fluxos de trabalho para reutilizar ou compartilhar mais tarde.
  6. Crie suas próprias ferramentas: Escreva scripts de shell simples e aliases para tarefas frequentes.
  7. Comece sem sudo: Use uma conta de usuário padrão inicialmente para entender as permissões.

E lembre-se de continuar testando novos comandos em máquinas virtuais ou servidores VPS para que eles se tornem naturais para você antes de começar a usá-los em servidores de produção.

Glossário DreamHost

Hospedagem VPS

Um Servidor Privado Virtual (VPS) é uma plataforma virtual que armazena dados. Muitos provedores de web oferecem planos de hospedagem VPS, que oferecem aos proprietários de sites um espaço dedicado e privado em um servidor compartilhado.

Leia Mais

Melhor Hospedagem Linux com DreamHost

Depois de dominar os comandos essenciais do Linux, você também precisa de um provedor de hospedagem e servidor que ofereça controle total para aproveitar a potência e flexibilidade do Linux.

É aí que a DreamHost se destaca.

A infraestrutura Linux otimizada da DreamHost é perfeita para executar seus aplicativos, sites e serviços:

  • Hospedagem web rápida em servidores Linux modernos.
  • Acesso Shell SSH para controle via linha de comando.
  • Versões de PHP personalizáveis, incluindo PHP 8.0.
  • Servidores web Apache ou NGINX.
  • Bancos de dados gerenciados MySQL, PostgreSQL, Redis.
  • Instalação com 1 clique de aplicativos como WordPress e Drupal.
  • Armazenamento acelerado por SSD NVMe para velocidade.
  • Renovação automática de SSL grátis do Let’s Encrypt.

Os especialistas da DreamHost podem ajudá-lo a obter o máximo da plataforma Linux. Nossos servidores são meticulosamente configurados para segurança, desempenho e confiabilidade.

Lance seu próximo projeto em uma plataforma de hospedagem Linux de confiança. Comece com uma hospedagem robusta e escalável em DreamHost.com.

Receba conteúdo diretamente na sua caixa de entrada

Inscreva-se agora para receber todas as últimas atualizações, diretamente na sua caixa de entrada.