Continuamos a realizar uma tarefa de forma convencional até descobrirmos que ela pode ser feita de uma maneira muito melhor. Em continuação à nossa Série de Dicas e Truques do Linux, estou aqui com as quatro dicas abaixo que vão ajudar você de muitas maneiras. Aqui vamos nós!

1. Você precisa criar uma árvore de diretórios longa/complexa semelhante à fornecida abaixo. Qual é a maneira mais eficaz de alcançar isso?
Estrutura da árvore de diretórios a ser alcançada conforme sugerido abaixo.
$ cd /home/$USER/Desktop $ mkdir tecmint $ mkdir tecmint/etc $ mkdir tecmint/lib $ mkdir tecmint/usr $ mkdir tecmint/bin $ mkdir tecmint/tmp $ mkdir tecmint/opt $ mkdir tecmint/var $ mkdir tecmint/etc/x1 $ mkdir tecmint/usr/x2 $ mkdir tecmint/usr/x3 $ mkdir tecmint/tmp/Y1 $ mkdir tecmint/tmp/Y2 $ mkdir tecmint/tmp/Y3 $ mkdir tecmint/tmp/Y3/z
O cenário acima pode ser alcançado simplesmente executando o comando de uma linha abaixo.
$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}
Para verificar, você pode usar o comando tree. Se não estiver instalado, você pode apt ou yum o pacote ‘tree‘.
$ tree tecmint

Podemos criar a estrutura da árvore de diretórios de qualquer complexidade usando o método acima. Observe que não é nada além de um comando normal, mas está usando {}
para criar a hierarquia de diretórios. Isso pode ser muito útil se usado de dentro de um script de shell quando necessário e em geral.
2. Crie um arquivo (digamos teste) na sua Área de Trabalho (/home/$USER/Desktop) e preencha com o conteúdo abaixo.
ABC DEF GHI JKL MNO PQR STU VWX Y Z
O que um usuário normal faria nesse cenário?
a. He will create the file first, preferably using touch command, as:
$ touch /home/$USER/Desktop/test
b. He will use a text editor to open the file, which may be nano, vim, or any other editor.
$ nano /home/$USER/Desktop/test
c. He will then place the above text into this file, save and exit.
Independentemente do tempo que ele/ela levaria, ele precisaria de pelo menos 3 etapas para executar o cenário acima.
O que um usuário Linux experiente e inteligente fará? Ele apenas digitará o texto abaixo de uma vez no terminal e tudo estará feito. Ele não precisa fazer cada ação separadamente.
cat << EOF > /home/$USER/Desktop/test ABC DEF GHI JKL MNO PQR STU VWX Y Z EOF
Você pode usar o comando ‘cat‘ para verificar se o arquivo e seu conteúdo foram criados com sucesso ou não.
$ cat /home/avi/Desktop/test
3. Lidamos com arquivos compactados (especialmente TAR balls) com muita frequência no Linux. Em muitos casos, precisamos usar essa TAR ball em algum local que não seja a pasta de Downloads. O que fazemos nesse cenário?
Normalmente fazemos duas coisas nesse cenário.
a. Copy/Move the tar ball and extract it at destination, as:
$ cp firefox-37.0.2.tar.bz2 /opt/ or $ mv firefox-37.0.2.tar.bz2 /opt/
b. cd to /opt/ directory.
$ cd /opt/
c. Extract the Tarball.
# tar -jxvf firefox-37.0.2.tar.bz2
Podemos fazer isso de outra maneira.
Vamos extrair a Tarball onde ela está e Copiar/Mover o arquivo extraído para o destino necessário como:
$ tar -jxvf firefox-37.0.2.tar.bz2 $ cp -R firefox/ /opt/ or $ mv firefox/ /opt/
Em ambos os casos, o trabalho é realizado em duas etapas para ser concluído. O profissional pode concluir essa tarefa em uma etapa como:
$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/
A opção -C faz com que o tar extraia o arquivo na pasta especificada (aqui /opt/).
Não se trata de uma opção (-C), mas sim de hábitos. Faça o hábito de usar a opção -C com o tar. Isso facilitará sua vida. A partir de agora, não mova o arquivo ou copie/mova o arquivo extraído, apenas deixe a TAR-ball na pasta Downloads e extraia-a onde quiser.
4. Como matamos um processo de maneira tradicional?
De maneira geral, listamos todos os processos usando o comando ps -A
e o encaminhamos com o grep para encontrar um processo/serviço (digamos apache2), simplesmente como:
$ ps -A | grep -i apache2
Saída de exemplo
1006 ? 00:00:00 apache2 2702 ? 00:00:00 apache2 2703 ? 00:00:00 apache2 2704 ? 00:00:00 apache2 2705 ? 00:00:00 apache2 2706 ? 00:00:00 apache2 2707 ? 00:00:00 apache2
A saída acima mostra todos os processos apache2 em execução no momento com seus PID’s, você pode então usar esses PID’s para encerrar o apache2 com a ajuda do seguinte comando.
# kill 1006 2702 2703 2704 2705 2706 2707
e depois verificar se há algum processo/serviço com o nome ‘apache2‘ em execução ou não, como:
$ ps -A | grep -i apache2
No entanto, podemos fazê-lo de uma forma mais compreensível usando utilitários como pgrep e pkill. Você pode encontrar informações relevantes sobre um processo apenas usando pgrep. Digamos que você precise encontrar as informações do processo apache2, você pode simplesmente fazer:
$ pgrep apache2
Resultado de Exemplo
15396 15400 15401 15402 15403 15404 15405
Você também pode listar o nome do processo em relação ao pid executando.
$ pgrep -l apache2
Resultado de Exemplo
15396 apache2 15400 apache2 15401 apache2 15402 apache2 15403 apache2 15404 apache2 15405 apache2
Para encerrar um processo usando pkill é muito simples. Basta digitar o nome do recurso a ser encerrado e pronto. Eu escrevi um post sobre pkill que você pode gostar de consultar aqui: https://www.tecmint.com/how-to-kill-a-process-in-linux/.
Para encerrar um processo (digamos apache2) usando pkill, tudo que você precisa fazer é:
# pkill apache2
Você pode verificar se o apache2 foi encerrado ou não executando o comando abaixo.
$ pgrep -l apache2
Se ele retornar o prompt e não imprimir nada, significa que não há nenhum processo em execução com o nome de apache2.
Isso é tudo por enquanto, da minha parte. Todos os pontos discutidos acima não são suficientes, mas certamente ajudarão. Não queremos apenas produzir tutoriais para fazer você aprender algo novo toda vez, mas também queremos mostrar ‘Como ser mais produtivo no mesmo contexto‘. Deixe-nos saber seus comentários valiosos abaixo. Mantenha-se conectado. Continue comentando.
Source:
https://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/