Para desgosto daqueles que gostariam de difamar o sistema operacional Linux, ele é, na verdade, bem fácil de usar. Graças aos modernos ambientes de desktop com interface gráfica e aplicativos, qualquer um pode entrar na briga e saber o que está fazendo.
- 1. dmesg
- 2. tail
- 3. ps
- 4. kill
- 5. systemctl
- Perguntas frequentes
- Qual é a diferença entre cd e pwd?
- Como faço para listar todos os arquivos em um diretório?
- Como crio um novo diretório?
- Qual é a diferença entre a opção -d em mkdir e criar um diretório pai separadamente?
- Como navego até um arquivo ou diretório específico a partir de outro diretório?
- Qual é o propósito de usar ../ na navegação?
- Como posso criar um novo arquivo ou editar um existente?
- Qual é o propósito de usar a opção -e com touch?
- Como faço para excluir um arquivo ou diretório?
- Qual é a finalidade de usar pipes (|) com comandos?
- Como usar operadores de redirecionamento (> e >>)?
Nas raras ocasiões em que surgem problemas, você pode querer conhecer alguns comandos para ajudá-lo. O problema é que existem tantos comandos disponíveis no Linux, o que torna difícil saber quais comandos são as melhores opções.
Claro, você pode aprender qualquer um dos comandos que exibem informações do sistema (como top, free, iostat, htop, vmstat e iftop), mas essas ferramentas só o levarão até certo ponto. O mais valioso é pular para o comando que pode realmente ajudar se algo der errado. Feita essa introdução, vamos aos comandos.
1. dmesg
Quando comecei a usar Linux, o dmesg era meu melhor amigo. Basicamente, o dmesg é usado para examinar todas as mensagens criadas após a fase de bootloader do kernel. Em outras palavras, você pode encontrar uma pista para qualquer problema que possa solucionar aqui.
Ao contrário do antigo dmesg , agora você precisa executar o comando com privilégios sudo, então:
sudo dmesg
Isso imprimirá uma quantidade considerável de resultados que você poderá navegar, dificultando um pouco a busca pelo que procura, e grande parte do que você ler provavelmente parecerá um monte de bobagens. A boa notícia é que os erros são impressos em vermelho, então você pode rolar rapidamente para encontrar qualquer coisa que possa estar errada.
Existe uma maneira de tornar isso ainda mais fácil. Digamos que você esteja enfrentando um erro e queira ver se ele é registrado via dmesg conforme ocorre. Para isso, execute o comando:
dmesg -w
Isso exibirá a saída do dmesg conforme ela acontece, então quando ocorrer um erro, você o verá escrito na janela do terminal e poderá solucionar o problema a partir daí.

2. tail
Falando em acompanhar a saída, o comando tail permite acompanhar a saída gravada em qualquer arquivo de log. Digamos que você esteja com problemas com seu compartilhamento Samba e queira ver o que está acontecendo em tempo real. A primeira coisa que você precisa fazer é descobrir qual arquivo de log ler. Nesse caso, você pode executar o comando:
ls /var/log/samba
Nessa pasta, você encontrará vários arquivos de log (para o servidor Samba e todas as máquinas conectadas ao compartilhamento). Digamos que eu queira visualizar o conteúdo do log do daemon do Samba. Para isso, eu executaria o comando:
tail -f /var/log/samba/log.smbd
À medida que os erros ocorrem, eles serão impressos no terminal. Como você pode ver, tenho um parâmetro desconhecido no meu arquivo smb.conf, chamado share modes . Posso abrir esse arquivo, remover o parâmetro, reiniciar o Samba e o erro desaparece.

Lembre-se, para sair do comando tail, você precisa usar a combinação de teclado Ctrl+c.
3. ps
Para mim, o ps é uma porta de entrada para outros comandos. O comando ps exibe um instantâneo de qualquer processo atual. Você pode usar o ps para listar todos os processos em execução ou alimentá-lo com o grep para listar apenas processos específicos.
Mas para que serve?
Digamos que você tenha um aplicativo que travou e não fecha. Você clica naquele pequeno X no canto superior direito (ou esquerdo) da janela, mas ele simplesmente não desaparece. A primeira coisa que você precisa fazer é encontrar o PID desse processo para poder resolver o problema. É aí que o ps entra em cena. Mas o ps por si só não é muito útil. Por quê? Se você simplesmente executar o ps , ele listará apenas os processos associados ao terminal que você está usando. Em vez disso, você precisa usar algumas opções específicas, que são:
ps aux
- a – todos os processos
- u – processos de propriedade do usuário que executa ps
- x – imprime aplicativos que não foram iniciados no terminal

Este comando imprime muitas informações, todas em colunas. Você verá várias colunas, mas as que você deve prestar atenção são PID e COMMAND. Com as informações dessas duas colunas, você pode localizar o ID do processo que está causando problemas. Depois de encontrar o processo, você pode eliminá-lo.
Se a saída do comando ps aux for muito alta, você pode canalizar essa saída para o grep e listar apenas determinados processos. Digamos que o LibreOffice esteja causando problemas. Você pode listar apenas os processos associados ao LibreOffice assim:
ps aux | grep LibreOffice
4. kill
O comando kill é muito poderoso. Quando você tem um aplicativo persistente que travou e não fecha (ou não travou, mas está consumindo muita memória), o comando kill forçará o fechamento desse aplicativo.
Mas para usar o comando kill , você precisa primeiro ter o PID do aplicativo em questão (que você localiza com o comando ps aux ). Digamos que o PID de um aplicativo do LibreOffice com problemas seja 604187. Para encerrar esse processo, o comando seria:
kill 604187
O aplicativo deverá fechar e você estará pronto para prosseguir.
5. systemctl
O comando systemctl não serve apenas para iniciar e parar aplicativos; ele também pode ajudar a solucionar problemas. Digamos que o Samba não esteja funcionando como esperado. Execute o comando:
systemctl status smbd
O comando acima listará se o serviço está em execução, seu PID, o número de tarefas associadas, a quantidade de memória e CPU que está usando e os CGroups aos quais pertence. Melhor ainda, se houver algum problema com o processo, o systemctl fornecerá as informações necessárias para solucionar o problema posteriormente (geralmente com a ajuda do journalctl ).
Pronto. Estes cinco comandos servirão como um ótimo ponto de partida para a sua solução de problemas no Linux. Sim, existem várias outras ferramentas disponíveis, mas para quem está começando a usar o Linux, talvez seja interessante conhecer estes comandos primeiro.
Perguntas frequentes
Qual é a diferença entre cd e pwd?
cd significa “alterar diretório” e permite que você navegue pelos diretórios. pwd significa “imprimir diretório de trabalho” e exibe o diretório de trabalho atual.
Como faço para listar todos os arquivos em um diretório?
Use o comando ls .
Como crio um novo diretório?
Use o comando mkdir .
Qual é a diferença entre a opção -d em mkdir e criar um diretório pai separadamente?
A opção -d cria apenas o diretório de nível superior, enquanto a criação de um diretório pai separadamente garante que todos os subdiretórios necessários também sejam criados. Se você usar a opção -p , serão criados os diretórios pais, bem como o subdiretório.
Como navego até um arquivo ou diretório específico a partir de outro diretório?
Use o comando cd [nome_do_diretório] .
Qual é o propósito de usar ../ na navegação?
../ refere-se a subir um nível na hierarquia de diretórios, enquanto ./ (ponto/ponto) refere-se a permanecer no mesmo diretório.
Como posso criar um novo arquivo ou editar um existente?
Use o comando touch [nome do arquivo] .
Qual é o propósito de usar a opção -e com touch?
A opção -e permite que você especifique um editor para abrir no lugar da criação de um arquivo de texto em branco.
Como faço para excluir um arquivo ou diretório?
Use o comando rm [nome do arquivo] para excluir um arquivo e rm -rf [diretório] para remover o diretório de nível superior e qualquer diretório filho ou arquivo dentro dele.
Qual é a finalidade de usar pipes (|) com comandos?
Os pipes permitem que você passe a saída de um comando como entrada para outro comando, possibilitando pipelines complexos de processamento de dados.
Como usar operadores de redirecionamento (> e >>)?
Use > para redirecionar a saída padrão e >> para anexar uma nova saída. Além disso, use << para ler o conteúdo de um arquivo em uma variável ou pipe.

