Commande Linux jobs

Linux 命令大全Référence des commandes Linux

jobsest une commande intégrée dans les systèmes Linux/Unix utilisée pour afficher et gérer les tâches d'arrière-plan dans la session shell actuelle. Elle permet aux utilisateurs de :

  • Afficher l'état de toutes les tâches d'arrière-plan
  • Contrôler la permutation des tâches entre l'avant-plan et l'arrière-plan
  • Gérer l'exécution de plusieurs tâches concurrentes

Lorsque vous exécutez des commandes de longue durée dans le terminal,jobsla commande peut vous aider à gérer efficacement ces processus en arrière-plan.


Syntaxe de base

jobs [选项] [作业标识符]

Options courantes

Option Description
-l Afficher le PID (ID de processus) de la tâche
-p Afficher uniquement l'ID du groupe de processus de la tâche
-n Afficher uniquement les tâches dont le statut a changé depuis la dernière notification
-r Afficher uniquement les tâches en cours d'exécution
-s Afficher uniquement les tâches arrêtées

Fonctionnalités principales détaillées

1. Afficher les tâches en arrière-plan

L'utilisation la plus simple consiste à saisir directement lejobscommande :

Exemples

$ jobs
[1]  - en cours    sleep 100 &
[2]  + arrêté    vim file.txt

Explication de la sortie :

  • [1]: Numéro de tâche (ID de tâche)
  • -/+:-indique la tâche précédente,+indique la tâche en cours
  • running/stopped: État de la tâche
  • La dernière partie est la commande qui a démarré la tâche

2. Afficher les informations détaillées sur le processus

Utilisez la-loption pour afficher l'ID de processus de la tâche :

Exemples

$ jobs -l
[1]  - 12345 en cours    sleep 100 &
[2]  + 12356 arrêté    vim file.txt

3. Filtrer les tâches par état spécifique

Exemples

# Afficher uniquement les tâches en cours
$ jobs -r

# Afficher uniquement les tâches arrêtées
$ jobs -s

Scénarios d'application pratiques

Scénario 1 : Exécuter de longues tâches en arrière-plan

Exemples

# Lancer une tâche qui prend du temps et la mettre en arrière-plan
$ long_running_command &

# Voir les tâches en arrière-plan
$ jobs
[1]  + en cours d'exécution long_running_command &

Scénario 2 : Suspension et reprise des tâches

Exemples

# Lancer vim
$ vim file.txt

# Appuyer sur Ctrl+Z pour suspendre vim
^Z
[1]  + arrêté    vim file.txt

# Voir les tâches arrêtées
$ jobs -s
[1]  + arrêté    vim file.txt

# Remettre vim au premier plan
$ fg %1

Scénario 3 : Gestion de plusieurs tâches en arrière-plan

Exemples

# Lancer trois tâches en arrière-plan
$ sleep 100 &
$ sleep 200 &
$ sleep 300 &

# Afficher toutes les tâches
$ jobs -l
[1]   12345 en cours    sleep 100 &
[2]  -12356 en cours    sleep 200 &
[3]  +12367 en cours    sleep 300 &

# Remettre la tâche 2 au premier plan
$ fg %2

# Terminer la tâche 3
$ kill %3

Combinaisons de commandes de contrôle des tâches

jobsGénéralement utilisé avec d'autres commandes de contrôle des tâches :

Commande Description Exemple
& Mettre une commande en arrière-plan command &
Ctrl+Z Suspendre la tâche de premier plan actuelle Combinaison de touches
fg Remettre une tâche au premier plan fg %1
bg Continuer à exécuter une tâche arrêtée en arrière-plan bg %2
kill Terminer une tâche spécifiée kill %3

Questions fréquentes

Q1 : Pourquoi les tâches en arrière-plan se terminent-elles après la fermeture du terminal ?

R : Par défaut, les tâches en arrière-plan sont associées à la session du terminal. En utilisantnohupoudisownpeut garder les tâches en cours d'exécution après la fermeture du terminal :

Exemples

$ nohup long_running_command &

Q2 : Comment faire référence à une tâche spécifique ?

R : Utilisez%plus le numéro de tâche :

  • %1: Tâche 1
  • %2: Tâche 2
  • %+ou%%: Tâche actuelle
  • %-: Tâche précédente

Q3 : Quelle est la différence entre les commandes jobs et ps ?

A:

  • jobsAffiche uniquement les tâches dans la session shell actuelle
  • psAffiche tous les processus système, y compris les processus des autres utilisateurs et terminaux

Recommandations de bonnes pratiques

  1. Rediriger la sortie pour les tâches en arrière-plan: Éviter que la sortie n'interfère avec le terminal actuel

    $ command > output.log 2>&1 &
  2. Utiliser des noms descriptifs: Facilite l'identification des différentes tâches

    $ (sleep 300; echo "Done") & 
  3. Vérifier régulièrement l'état des tâches: Empêche l'accumulation d'un grand nombre de tâches inachevées

    $ watch -n 60 jobs
  4. Utiliser nohup pour les tâches importantes: Garantit qu'elles continuent de s'exécuter après la déconnexion du terminal

    $ nohup important_command &

Organigramme récapitulatif

Linux 命令大全Référence des commandes Linux

Autres extensions