Recherche de site Web

4 conseils utiles sur les commandes mkdir, tar et kill sous Linux


Nous continuons à accomplir une tâche de manière conventionnelle jusqu’à ce que nous sachions qu’elle peut être accomplie de bien meilleure manière autrement. Dans la continuité de notre série de trucs et astuces Linux, je suis ici avec les quatre conseils ci-dessous qui vous aideront de nombreuses façons. On y va!

1. Vous êtes censé créer une arborescence de répertoires longue/complexe similaire à celle indiquée ci-dessous. Quelle est la manière la plus efficace d’y parvenir ?

Arborescence de répertoires à réaliser comme suggéré ci-dessous.

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

Le scénario ci-dessus peut simplement être réalisé en exécutant la commande 1-liner ci-dessous.

mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}

Pour vérifier, vous pouvez utiliser la commande tree. S'il n'est pas installé, vous pouvez apt ou yum le package « tree ».

tree tecmint

Nous pouvons créer une arborescence de répertoires de toute complexité en utilisant la méthode ci-dessus. Notez qu'il ne s'agit rien d'autre qu'une commande normale mais qu'elle utilise {} pour créer une hiérarchie de répertoires. Cela peut s'avérer très utile s'il est utilisé depuis l'intérieur d'un script shell lorsque cela est nécessaire et en général.

2. Créez un fichier (par exemple test) sur votre bureau (/home/$USER/Desktop) et remplissez-le avec le contenu ci-dessous.
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z

Que ferait un utilisateur normal dans ce scénario ?

a. Il créera d'abord le fichier, de préférence en utilisant la commande tactile, comme :

touch /home/$USER/Desktop/test

b. Il utilisera un éditeur de texte pour ouvrir le fichier, qui peut être nano, vim ou tout autre éditeur.

nano /home/$USER/Desktop/test

c. Il placera ensuite le texte ci-dessus dans ce fichier, enregistrera et quittera.

Ainsi, quel que soit le temps qu'il met, il lui faut au moins 3 étapes pour exécuter le scénario ci-dessus.

Que fera un Linuxien intelligent et expérimenté ? Il va simplement taper le texte ci-dessous en une seule fois sur le terminal et tout est fait. Il n’est pas nécessaire qu’il fasse chaque action séparément.

cat << EOF > /home/$USER/Desktop/test
ABC
DEF
GHI
JKL
MNO
PQR
STU
VWX
Y
Z
EOF

Vous pouvez utiliser la commande 'cat' pour vérifier si le fichier et son contenu ont été créés avec succès ou non.

cat /home/avi/Desktop/test

3. Nous traitons très souvent des archives (notamment les boules TAR) sous Linux. Dans de nombreux cas, nous devons utiliser cette boule TAR à un emplacement autre que le dossier Téléchargements. Que faisons-nous dans ce scénario ?

Nous faisons normalement deux choses dans ce scénario.

a. Copiez/Déplacez la boule de goudron et extrayez-la à destination, comme :

cp firefox-37.0.2.tar.bz2 /opt/
or
mv firefox-37.0.2.tar.bz2 /opt/

b. cd dans le répertoire /opt/.

cd /opt/

c. Extrayez le Tarball.

tar -jxvf firefox-37.0.2.tar.bz2 

Nous pouvons faire cela dans l'autre sens.

Nous allons extraire l'archive Tarball là où elle se trouve et copier/déplacer l'archive extraite vers la destination requise comme :

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

Dans les deux cas, le travail nécessite deux ou plusieurs étapes. Le professionnel peut réaliser cette tâche en une seule étape comme suit :

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

L'option -C permet à tar d'extraire l'archive dans le dossier spécifié (ici /opt/).

Non, il ne s'agit pas d'une option (-C) mais d'habitudes. Prenez l'habitude d'utiliser l'option -C avec tar. Cela vous facilitera la vie. À partir de maintenant, ne déplacez pas l'archive et ne copiez/déplacez pas le fichier extrait, laissez simplement la boule TAR dans le dossier Téléchargements et extrayez-la où vous le souhaitez.

4. Comment tuer un processus de manière traditionnelle ?

De la manière la plus générale, nous répertorions d'abord tous les processus à l'aide de la commande ps -A et le pipeline avec grep pour trouver un processus/service (disons apache2 ), simplement comme :

ps -A | grep -i apache2
Exemple de sortie
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

La sortie ci-dessus montre tous les processus apache2 en cours d'exécution avec leurs PID, vous pouvez ensuite utiliser ces PID pour tuer Apache2 à l'aide de la commande suivante.

kill 1006 2702 2703 2704 2705 2706 2707

puis vérifiez si un processus/service portant le nom « apache2 » est en cours d'exécution ou non, comme :

ps -A | grep -i apache2

Cependant, nous pouvons le faire dans un format plus compréhensible en utilisant des utilitaires comme pgrep et pkill. Vous pouvez trouver des informations pertinentes sur un processus simplement en utilisant pgrep. Supposons que vous deviez trouver les informations de processus pour Apache2, vous pouvez simplement faire :

pgrep apache2
Exemple de sortie
15396
15400
15401
15402
15403
15404
15405

Vous pouvez également lister le nom du processus par rapport à pid en l'exécutant.

pgrep -l apache2
Exemple de sortie
15396 apache2
15400 apache2
15401 apache2
15402 apache2
15403 apache2
15404 apache2
15405 apache2

Tuer un processus en utilisant pkill est très simple. Vous tapez simplement le nom de la ressource à tuer et vous avez terminé. J'ai écrit un article sur pkill que vous aimeriez peut-être consulter ici : https://linux-console.net/how-to-kill-a-process-in-linux/.

Pour tuer un processus (par exemple apache2) à l'aide de pkill, tout ce que vous avez à faire est :

pkill apache2

Vous pouvez vérifier si apache2 a été tué ou non en exécutant la commande ci-dessous.

pgrep -l apache2

Il renvoie l'invite et n'imprime rien, ce qui signifie qu'aucun processus n'est en cours d'exécution sous le nom de apache2.

C'est tout pour l'instant, de ma part. Tous les points évoqués ci-dessus ne suffisent pas mais seront sûrement utiles. Nous voulons non seulement produire des tutoriels pour vous faire apprendre quelque chose de nouveau à chaque fois, mais nous voulons également montrer « Comment être plus productif dans le même cadre ». Faites-nous part de vos précieux commentaires dans les commentaires ci-dessous. Restez connecté. Continuez à commenter.