GNU/Linux

Publié le 2 février, 2017 | par Loulou De Gueyo

1

Contrôler vos tâches dans le terminal Linux

Linux est un système d’exploitation multitâche. C’est à dire qu’il peut exécuter plusieurs tâches à la fois. A vrai dire un ordinateur avec un seul processeur ne peut qu’exécuter une seule tâche à la fois. En fait c’est le noyau Linux qui gère les tâches (précisément les processus). Il alloue le processeur tour à tour à chaque tâche pour leur exécution. On a donc l’impression que toutes les tâches s’exécutent simultanément.

Il existent plusieurs commandes qui permettent de manipuler les tâches. Voyons en quelques unes:

jobs: Lister les tâches que vous avez lancé.
&: Ajouté à la fin d’une commande, il permet d’exécuter une tâche en arrière plan (background) en vous donnant la main pour saisir une nouvelle commande.
CTRL+Z: Met en pause (arrête) une tâche qui est en premier plan (foreground).
suspend: Met en pause un shell.
fg: Reprend une tâche en l’envoyant en premier plan.
bg: Permet à une tâche en pause de s’exécuter en arrière plan.

Exemples d’utilisation:

Dans l’exemple ci-dessous je lance un lecteur cvlc  (vlc en ligne de commande). Ensuite puisque je n’ai pas la main pour taper un autre commande, je suspends la tâche avec CTRL+Z (^Z) et je tape une autre commande gedit pour ouvrir un fichier; le fichier vlc-log.txt. Le & a la fin de la commande me permet de passer la tâche en arrière plan afin d’avoir la main.

loulou@server:~$ cvlc Angelique.mp3 
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
[0000000000c58548] dummy interface: using the dummy interface module...
^Z
loulou@server:~$ gedit vlc-log.txt &
[2] 5508

Le chiffre 2 est le numéro de la tâche et le chiffre 5508 est le PID (Process ID), l’identifiant ou le numéro du processus associé à la tâche sur le système.

Lorsque nous listons les tâches avec la commande jobs nous avons le résultat suivant:

loulou@server:~$ jobs
[1]+  Arrêté                cvlc Angelique.mp3
[2]-  En cours d'exécution   gedit vlc-log.txt &

Le + veut tout simplement dire que la tâche 1 est la tâche par défaut qui sera affectée par la commande fg ou  la commande bg. En fait si j’utilise la commande fg sans argument à ce instant, c’est la tâche 1 qui viendra en premier plan. Nous pouvons aussi  remarquer que la tâche 1 est en pause alors que la tâche 2 est en cours d’exécution.

Il est aussi possible de choisir la tâche que l’on veut envoyer au premier plan ou en arrière plan en tapant respectivement la commande fg %numéro_tache ou la commande bg %numéro_tache.

loulou@imhotep:~$ jobs
[1]+  Arrêté                cvlc Angelique.mp3
[2]-  En cours d'exécution   gedit vlc-log.txt &
loulou@imhotep:~$ fg %2
gedit vlc-log.txt

En tapant fg %2 je viens d’envoyer la tâche 2 en premier plan. Je n’ai donc plus la main pour taper une autre commande. Un CTRL+Z me redonne la main mais arrête la tache 2.

loulou@server:~$ fg %2
gedit vlc-log.txt
^Z
[2]+  Arrêté                gedit vlc-log.txt

Lorsque je tape jobs à nouveau on constate que les deux tâches sont suspendues.

loulou@server:~$ jobs
[1]-  Arrêté                cvlc Angelique.mp3
[2]+  Arrêté                gedit vlc-log.txt

Un bg %2 relance la tâche 2 en arrière plan. Puis jobs affiche à nouveau les statuts de nos tâches. Remarquez que la tâche 1 est toujours suspendue alors que la tâche 2 s’est remise en exécution.

loulou@server:~$ bg %2
[2]+ gedit vlc-log.txt &
loulou@imhotep:~$ jobs
[1]+  Arrêté                cvlc Angelique.mp3
[2]-  En cours d'exécution   gedit vlc-log.txt &

Parlons maintenant de la commande suspend. Nous avons dit qu’elle permettait de suspendre un shell. Supposons que je suis d’abord connecté en tant que utilisateur normal et ensuite je me connecte en tant que administrateur. J’ai la possibilité de basculer entre le shell administrateur et mon shell.

loulou@server:~$ su
Mot de passe : 
root@server:/home/loulou# 

Je suis connecté en tant que administrateur. Si je tape la commande suspend, alors je mets en pause le shell administrateur et je reviens tout simplement en tant qu’un utilisateur normal.

root@server:/home/loulou# suspend 

[3]+  Arrêté                su
loulou@server:~$ 

Si je fais maintenant un fg %3 je reviens de nouveau comme le super-utilisateur.

loulou@server:~$ fg %3
su
root@server:/home/loulou# 




Un commentaire de Contrôler vos tâches dans le terminal Linux

  1. Papac Dev a écrit:

    Super tuto mec merci pour le rafrêchissement. Surtout la commande `suspend` très utile.

    Merci.

Laisser un commentaire

Vers le haut ↑