Alguns comandos básicos do Linux que usei durante minha jornada no Linux – Parte 3
Como uso o Linux todos os dias tenho que lidar com coisas novas e assim aprendo novos comandos. Tenho certeza de que se você deu uma olhada nas duas partes anteriores, você sabe o propósito de canalizar a saída de um comando como entrada para outro.
Verifique os links a seguir para ler nossas partes anteriores.
- Alguns comandos básicos do Linux que usei durante minha jornada no Linux – Parte 1
- Alguns comandos básicos do Linux que usei durante minha jornada no Linux – Parte 2
Há momentos em que você precisa encontrar um processo em execução em sua máquina.
Você gosta de saber como fazer? Ok, abra um novo terminal.
Encontre um processo em execução
Você já sabe listar processos em sua máquina Linux. Caso você não saiba nada sobre isso basta executar o seguinte comando em seu console e ver o que vai acontecer.
ps aux
Mas o comando acima não é útil quando você procura um processo específico e não a lista inteira. Portanto, o comando grep é útil neste caso. Você pode enviar a saída do comando ps aux para o comando grep e procurar um processo como mostrado no exemplo a seguir.
ps aux | grep ipython
O shell ipython ainda não está em execução na minha máquina, então o comando acima fornece apenas a seguinte saída no meu console.
oltjano 8698 0.0 0.0 13600 944 pts/4 S+ 13:49 0:00 grep --color=auto ipython
E se eu executar o ipython e fizer um ps aux | grep ipython novamente, recebo uma saída diferente que me diz que o ipython está em execução no momento.
Executando o ipython com o seguinte comando.
ipython
Em seguida, execute ps aux | grep ipython.
ps aux | grep ipython
A seguinte saída é exibida em meu console ao executar o comando acima.
oltjano 8709 6.0 0.4 149684 18592 pts/0 Sl+ 13:53 0:00 /usr/bin/python /usr/local/bin/ipython
oltjano 8712 0.0 0.0 13600 944 pts/4 S+ 13:54 0:00 grep --color=auto ipython
Como você pode ver na saída acima, estou executando o ipython localizado em /usr/local/bin com o ID do processo 8709. Há também um truque simples que quero compartilhar com vocês. Para parar de escolher o próprio grep, use a seguinte sintaxe.
ps aux | grep '[i]python'
[i] é o truque usado no comando acima. Executar o comando acima quando o ipython está realmente em execução fornece apenas a seguinte saída, que é diferente daquela produzida por ps aux | grep ipython.
oltjano 8709 6.0 0.4 149684 18592 pts/0 Sl+ 13:53 0:00 /usr/bin/python /usr/local/bin/ipython
Como vocês podem ver na saída acima, não escolhemos mais o grep em si. Menos produção, menos coisas para assistir, melhores resultados!
Agora você gostaria de saber como faço para matar um processo em execução pelo seu id?
Mate um processo em execução por pid
Você pode facilmente encerrar um processo em execução se souber seu pid usando o comando kill, como mostrado no exemplo a seguir. Nada difícil aqui, mas é útil saber como fazer.
kill 8709
Depois de executar o comando acima você não verá mais o processo em execução que no meu caso é ipython. Ele será encerrado. O comando kill 8709 é bom, mas gostaria de mostrar a vocês um comando mais útil. Na verdade, alguns comandos são agrupados usando tubulação.
O comando a seguir extrai o ID do processo e o elimina automaticamente para você.
kill $(ps aux | grep '[i]python' | awk '{print $2}')
A seguir está uma explicação das partes que ocorrem no comando acima.
Primeiro, o comando ps é executado. Ele lista todos os processos em execução. A saída do comando ps é canalizada com o | para o comando grep. Como já sabemos, o comando grep filtra a saída com base na string de pesquisa. Neste caso estou procurando por ipython.
A saída do grep é então passada como entrada para o comando awk que fornece o segundo campo de cada linha. O segundo arquivado neste caso é o pid.
oltjano 8709 6.0 0.4 149684 18592 pts/0 Sl+ 13:53 0:00 /usr/bin/python /usr/local/bin/ipython
Na saída acima podemos ver que o primeiro campo é oltjano e o segundo campo é 8709 que é o pid do processo em execução. Em seguida, usamos o comando kill para encerrar o processo ou os processos se houver mais de um pid.
Legal! Não tivemos que digitar manualmente o pid do processo para eliminá-lo.
É hora de alguns outros comandos. Agora você sabe como capturar um processo em execução específico atual e como eliminá-lo usando o ID do processo, o pid.
O comando tar
O comando tar é usado para armazenar e extrair arquivos de um arquivo em fita ou disco. Você provavelmente já viu alguns arquivos terminando em .tar, você precisa usar o utilitário tar para obter seu conteúdo.
Por exemplo, o comando a seguir pode ser usado para extrair o conteúdo do arquivo example.tar de forma detalhada.
tar xvf example.tar
Deixe-me explicar as opções usadas no comando acima para vocês. A opção v usada aqui significa saída detalhada, o que é muito útil se você quiser saber o que está acontecendo enquanto extrai os arquivos do arquivo. A opção f significa arquivo e a opção x significa extrair, o que em outras palavras significa obter os arquivos do arquivo.
Você também pode visualizar os arquivos de um arquivo existente sem extraí-lo.
tar tvf example.tar
Que tal criar um novo arquivo tar. Para criar um novo arquivo tar, você precisa usar opções diferentes daquelas que você usou quando fez uma extração.
Primeiro você precisa de um diretório com arquivos. Este é o diretório que você usará para criar um arquivo tar.
tar cvf example.tar example/
A opção c significa criar um arquivo. A opção v é para saída detalhada e a opção f é para arquivo. Fácil, não é? Apenas lembre-se que quando você quiser criar um novo arquivo você deve usar a opção c.
Reduza o tamanho dos arquivos com gzip
O utilitário gzip é muito útil quando você deseja reduzir o tamanho dos arquivos, especialmente se planeja compartilhá-los na rede.
A seguir está uma breve descrição da ferramenta gzip retirada da página de manual.
Gzip reduz o tamanho dos arquivos nomeados usando a codificação Lempel-Ziv (LZ77). Sempre que possível, cada arquivo é substituído por um com extensão .gz, mantendo os mesmos modos de propriedade, acesso e tempos de modificação. (A extensão padrão é -gz para VMS, z para MSDOS, OS/2 FAT, Windows NT FAT e Atari.) Se nenhum arquivo for especificado ou se o nome do arquivo for “-“, a entrada padrão será compactada na saída padrão. O Gzip tentará apenas compactar arquivos normais. Em particular, irá ignorar links simbólicos.
Agora vamos parar de aprender teoria e mostrar a vocês como usar o utilitário gzip. O comando a seguir pode ser usado para criar um arquivo .gz compactado.
gzip test.txt
Você pode descompactar facilmente o arquivo usando o mesmo utilitário, gzip. Para descompactar um arquivo *.gz use a seguinte sintaxe.
gzip -d test.txt.gz
Como você pode ver, temos a opção -d presente no comando acima ao descompactar um arquivo *.gz. Esta opção significa descompactar ou descompactar.
Chega por hoje, desligue seu computador
Gosto de fazer tudo na linha de comando sempre que possível. Por que não desligar o sistema pelo console? Qual é o comando? Vocês querem fazer a mesma coisa ou talvez usar este comando em um futuro próximo?
Caso queira desligar imediatamente, execute o seguinte comando.
shutdown -h now
Quer desligar depois de algum tempo? Em seguida, use a seguinte sintaxe.
shutdown -h + 13
O comando acima fará com que o sistema desligue após 13 minutos.
Conclusão
Exploramos muitos comandos úteis até agora. Há muitos mais esperando por vocês, mas até então pratiquem o que aprenderam até agora.