4 Dicas Úteis sobre os Comandos mkdir, tar e kill no Linux

Continuamos a realizar uma tarefa convencionalmente até descobrirmos que pode ser feita de uma maneira muito melhor de outra forma. Na sequência de nossa Série de Dicas e Truques do Linux, estou aqui com quatro dicas abaixo que vão ajudá-lo de muitas maneiras. Vamos lá!

4 Linux Useful Tips and Hacks
1. Você é obrigado a criar uma árvore de diretórios longa/complexa similar a abaixo. Qual é a melhor maneira de alcançar isso?

Estrutura de árvore de diretórios para alcançar 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 a linha de comando abaixo de uma linha.

$ 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 instalado, você pode apt ou yum o pacote ‘tree‘.

$ tree tecmint
Check Directory Structure

Nós podemos criar estruturas de árvore de diretórios de qualquer complexidade usando a maneira acima. Note que é nada mais que um comando normal, mas usando {} para criar a hierarquia de diretórios. Isto pode provar muito útil se usado de dentro de um script de shell quando necessário e, em geral.

2. Crie um arquivo (diga teste) em sua área de trabalho (/home/$USER/Desktop) e preencha-o com o conteúdo abaixo.
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z

O que um usuário comum faria neste 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.

Então, independentemente do tempo gasto por ele, ele precisa de pelo menos 3 passos para executar o cenário acima.

O que um Linuxista experiente e esperto faria? Ele apenas digitaria o texto abaixo de uma só vez no terminal e tudo pronto. 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. Nós lidamos com arquivos de compactação (especialmente bolhas TAR) muitas vezes no Linux. Em muitos casos, temos que usar essa bolha TAR em algum local diferente da pasta Downloads. O que nós fazemos nesta situação?

Normalmente, fazemos duas coisas nesta situação.

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 forma inversa.

Vamos extrair a bolha TAR onde ela estiver e Copiar/Mover o arquivo extraído para a localização necessária, como:

$ tar -jxvf firefox-37.0.2.tar.bz2 
$ cp -R firefox/  /opt/
or
$ mv firefox/ /opt/

Neste caso, o trabalho é feito em dois ou mais passos. O profissional pode concluir esta tarefa em um passo, como:

$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/

A opção -C faz o tar extrair o arquivo na pasta especificada (aqui /opt/).

Não se trata de uma opção (-C) mas sim de hábitos. Tome a certeza de usar a opção -C com o tar. Isso simplificará sua vida. Agora não mova o arquivo ou copie/mude o arquivo extraído, apenas deixe a bolha TAR na pasta Downloads e extraia-a onde quiser.

4. Como matamos um processo de forma tradicional?

Na maneira mais generalizada, nós primeiro listamos todos os processos usando o comando ps -A e o pipeline com 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 atualmente em execução com seus PID’s, você pode então usar esses PID’s para matar o apache2 com a ajuda do seguinte comando.

# kill 1006 2702 2703 2704 2705 2706 2707

e depois verifique se algum processo/serviço com o nome ‘apache2‘ está rodando ou não, como:

$ ps -A | grep -i apache2

No entanto, podemos fazer isso em um formato mais compreensível usando ferramentas como pgrep e pkill. Você pode encontrar informações relevantes sobre um processo apenas usando pgrep. Digamos que você precisa encontrar as informações de processo para apache2, você pode simplesmente fazer:

$ pgrep apache2
Saída de exemplo
15396
15400
15401
15402
15403
15404
15405

Você também pode listar o nome do processo contra pid executando.

$ pgrep -l apache2
Saída de exemplo
15396 apache2
15400 apache2
15401 apache2
15402 apache2
15403 apache2
15404 apache2
15405 apache2

Para matar um processo usando pkill é muito simples. Você apenas digita o nome do recurso para matar e está feito. Eu escrevi um post sobre pkill que você pode se referir aqui: https://www.tecmint.com/how-to-kill-a-process-in-linux/.

Para matar um processo (digamos apache2) usando pkill, tudo o que você precisa fazer é:

# pkill apache2

Você pode verificar se apache2 foi matado ou não executando o comando abaixo.

$ pgrep -l apache2

Ele retorna o prompt e imprime nada, o que significa que não há nenhum processo rodando com o nome de apache2.

Essa é tudo por agora, de mim. Todos os pontos discutidos acima não são o suficiente, mas certamente ajudarão. Nós não significamos apenas produzir tutoriais para você aprender algo novo sempre, mas também queremos mostrar ‘Como ser mais produtivo no mesmo quadro‘. Forneça-nos com sua feedback valioso nos comentários abaixo. Mantenha-se conectado. Continue comentando.

Source:
https://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/