Utiliser la console Linux pour travailler en multitâche
Jouer sur les commandes
Lancer une commande en arrière plan
$ it_takes_time.sh &
[1] 3145
Lancer une tache et la mettre en arrière plan
$ it_takes_time.sh
^Z (<-- C'est un CTRL + Z)
[1]+ Stoppé ./it_takes_time.sh
Le process étant stoppé, on le place en arrière plan
$ bg %1
On récupère la tâche 1 (PID 3145)
$ fg %1
Il est possible d'avoir tâches mises en arguments à fg ou bg (ex bg %1 %2)
Gestion de plusieurs tâches avec jobs
On lance plusieurs tâches
$ ./it_takes_time1.sh &
[1] 5881
$ ./it_takes_time2.sh &
[2] 5883
$ ./it_takes_time3.sh &
[3] 5886
$ ./it_takes_time4.sh &
[4] 5888
On affiche les tâches en cours
$ jobs
[1] En cours d'exécution ./it_takes_time1.sh &
[2] En cours d'exécution ./it_takes_time2.sh &
[3]- En cours d'exécution ./it_takes_time3.sh &
[4]+ En cours d'exécution ./it_takes_time4.sh &
Le signe plus (+) indique qu'il sagit de la dernière tâche lancée. Le signe moins (-) indique qu'il sagit de l'avant dernière tâche lancée.
On rappelle l'avant dernière tâche lancée
$ fg -
ou encore
$ fg %3
ou encore en omettant l'argument, ce qui induit qu'on utilise la dernière tâche manipulée
$ fg
On la stoppe avec CTRL + Z, puis on liste les travaux en cours
$ jobs
[1] En cours d'exécution ./it_takes_time1.sh &
[2] En cours d'exécution ./it_takes_time2.sh &
[3]+ Stoppé ./it_takes_time3.sh
[4]- En cours d'exécution ./it_takes_time4.sh &
Manipuler les tâches avec kill
On affiche les PID des tâches avec jobs
$ jobs -l
[1] 5881 En cours d'exécution ./it_takes_time1.sh &
[2] 5883 En cours d'exécution ./it_takes_time2.sh &
[3]- 5886 En cours d'exécution ./it_takes_time3.sh &
[4]+ 5888 En cours d'exécution ./it_takes_time4.sh &
Puis on envoit les signaux STOP ou CONT aux processes
$ kill -STOP 5881
$ jobs -l
[1]+ 5881 Signal d'arrêt ./it_takes_time1.sh &
[2] 5883 En cours d'exécution ./it_takes_time2.sh &
[3] 5886 En cours d'exécution ./it_takes_time3.sh &
[4]- 5888 En cours d'exécution ./it_takes_time4.sh &
$ kill -CONT 5881
$ jobs -l
[1] 5881 En cours d'exécution ./it_takes_time1.sh &
[2] 5883 En cours d'exécution ./it_takes_time2.sh &
[3]- 5886 En cours d'exécution ./it_takes_time3.sh &
[4]+ 5888 En cours d'exécution ./it_takes_time4.sh &
On peut aussi utilise le numéro de tâche au lieu d'utiliser le PID.
Supprimer une tâche de la listes des tâches gérable
Pour ne plus pouvoir gérer la tâche %3
$ disown %3
$ jobs -l
[1] 5881 En cours d'exécution ./it_takes_time1.sh &
[2]- 5883 En cours d'exécution ./it_takes_time2.sh &
[4]+ 5888 En cours d'exécution ./it_takes_time4.sh &
Multiplexer les terminaux avec tmux
clé | effet —–+—————————– C-b c| Créer une nouvelle fenêtre C-b &| Fermer la fenêtre courante C-b w| Lister les fenêtres C-b ,| Renommer la fenêtre C-b n| Fenêtre suivante (next) C-b p| Fenêtre precédente (previous) C-b ‘number’| Aller à la fenêtre ‘number’ C-b l| Aller à la dernière fenêtre
clé | effet —–+—————————– C-b “| Diviser verticalement le panneau C-b %| Diviser horizontalement le panneau C-b space| Changer la disposition C-b o| Changer de panneaux (other pane) C-b flèche| Se déplacer dans les panneaux C-b !| Promouvoir un panneau en fenêtre C-b x| Fermer le panneau C-b ;| Retourner au panneau récemment utilisé C-b t| Affiche une horloge (appuis sur un touche pour revenir à l'affichage précédent)