GNU/Linux >> Tutoriels Linux >  >> Linux

Undistract-me :recevez une notification lorsque les commandes de terminal de longue durée sont terminées

Il y a quelque temps, nous avons publié comment recevoir une notification lorsqu'une activité de terminal est terminée . Aujourd'hui, j'ai découvert un utilitaire similaire appelé "undistract-me" qui vous avertit lorsque les commandes de terminal à exécution longue sont terminées. Imaginez ce scénario. Vous exécutez une commande qui prend un certain temps pour se terminer. En attendant, vous consultez votre facebook et vous vous impliquez tellement. Au bout d'un moment, vous vous êtes souvenu que vous aviez exécuté une commande il y a quelques minutes. Vous revenez au Terminal et remarquez que la commande est déjà terminée. Mais vous n'avez aucune idée quand la commande est terminée . Avez-vous déjà été dans cette situation? Je parie que la plupart d'entre vous ont été dans cette situation plusieurs fois. C'est là que "ne me distrait pas" vient en aide. Vous n'avez pas besoin de vérifier constamment le terminal pour voir si une commande est terminée ou non. L'utilitaire Undistract-me vous avertira lorsqu'une commande de longue durée est terminée. Il fonctionnera sur Arch Linux, Debian, Ubuntu et d'autres dérivés d'Ubuntu.

Installer Undistract-me

Undistract-me est disponible dans les dépôts par défaut de Debian et de ses variantes comme Ubuntu. Tout ce que vous avez à faire est d'exécuter la commande suivante pour l'installer.

$ sudo apt-get install undistract-me

L'Arch Linux les utilisateurs peuvent l'installer depuis AUR en utilisant n'importe quel programme d'aide, par exemple YaY .

$ yay -S undistract-me-git

Ensuite, exécutez la commande suivante pour ajouter "undistract-me" à votre Bash.

$ echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc

Vous pouvez également exécuter cette commande pour l'ajouter à votre Bash :

$ echo "source /usr/share/undistract-me/long-running.bash\nnotify_when_long_running_commands_finish_install" >> .bashrc

Si vous êtes en Zsh shell, exécutez cette commande :

$ echo "source /usr/share/undistract-me/long-running.bash\nnotify_when_long_running_commands_finish_install" >> .zshrc

Enfin, mettez à jour les modifications :

Pour Bash :

$ source ~/.bashrc

Pour Zsh :

$ source ~/.zshrc

Configurer Ne pas me distraire

Par défaut, Undistract-me prendra en compte toute commande qui prend plus de 10 secondes pour terminer en tant que commande de longue durée. Vous pouvez modifier cet intervalle de temps en modifiant /usr/share/undistract-me/long-running.bash fichier.

$ sudo nano /usr/share/undistract-me/long-running.bash

Trouvez "LONG_RUNNING_COMMAND_TIMEOUT" variable et remplacez la valeur par défaut (10 secondes) par autre chose de votre choix.

Enregistrez et fermez le fichier. N'oubliez pas de mettre à jour les modifications :

$ source ~/.bashrc

En outre, vous pouvez désactiver les notifications pour des commandes particulières. Pour ce faire, recherchez la "LONG_RUNNING_IGNORE_LIST" variable et ajoutez les commandes séparées par des espaces.

Par défaut, la notification ne s'affichera que si la fenêtre active n'est pas la fenêtre dans laquelle la commande s'exécute. Cela signifie qu'elle ne vous avertira que si la commande s'exécute dans la fenêtre de terminal en arrière-plan. Si la commande est en cours d'exécution dans la fenêtre active Terminal, vous ne serez pas averti. Si vous souhaitez qu'undistract-me envoie des notifications, que la fenêtre du terminal soit visible ou en arrière-plan, vous pouvez définir IGNORE_WINDOW_CHECK à 1 pour ignorer la vérification de la fenêtre.

L'autre fonctionnalité intéressante de Undistract-me est que vous pouvez définir une notification audio ainsi qu'une notification visuelle lorsqu'une commande est effectuée. Par défaut, il n'enverra qu'une notification visuelle. Vous pouvez modifier ce comportement en définissant la variable UDM_PLAY_SOUND en un entier non nul sur la ligne de commande. Cependant, votre système Ubuntu devrait avoir pulseaudio-utils et sound-theme-freedesktop utilitaires installés pour activer cette fonctionnalité.

N'oubliez pas que vous devez exécuter la commande suivante pour mettre à jour les modifications apportées.

Pour Bash :

$ source ~/.bashrc

Pour Zsh :

$ source ~/.zshrc

Il est temps de vérifier si cela fonctionne vraiment.

Obtenir une notification lorsque les commandes de terminal à exécution longue sont terminées

Maintenant, exécutez n'importe quelle commande qui prend plus de 10 secondes ou la durée que vous avez définie dans le script Undistract-me.

J'ai exécuté la commande suivante sur mon bureau Arch Linux.

$ sudo pacman -Syu

Cette commande a pris 32 secondes pour se terminer. Après l'exécution de la commande ci-dessus, j'ai reçu la notification suivante.

N'oubliez pas que le script Undistract-me vous avertit uniquement si la commande donnée a pris plus de 10 secondes pour se terminer. Si la commande est terminée en moins de 10 secondes, vous ne serez pas notifié. Bien sûr, vous pouvez modifier ces paramètres d'intervalle de temps comme je l'ai décrit dans la section Configuration ci-dessus.

Je trouve cet outil très utile. Cela m'a aidé à reprendre le travail après m'être complètement perdu dans d'autres tâches. J'espère que cet outil vous sera également utile.


Linux
  1. 8 commandes effrayantes qui hantent le terminal

  2. Suggérer l'installation de packages lors de l'exécution d'une commande non disponible

  3. L'exécution de commandes verbales les ralentit-elle ?

  4. Commande ip dans le terminal Mac OS X

  5. Comment obtenir le temps d'exécution total d'un disque dur

Kmdr - Afficher l'explication des commandes CLI dans le terminal

Recevoir une notification lorsqu'une tâche de terminal est terminée

Comment exécuter plusieurs commandes Linux à la fois dans le terminal Linux

Mettez une minuterie sur vos commandes en cours d'exécution avec la commande Timeout sous Linux

5 méthodes pour obtenir une aide rapide sur les commandes Linux

Exemples de commandes d'écran :prendre le contrôle du terminal Linux/Unix