GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Undistract-me :Erhalten Sie eine Benachrichtigung, wenn lang andauernde Terminalbefehle abgeschlossen sind

Vor einiger Zeit haben wir veröffentlicht, wie man eine Benachrichtigung erhält, wenn eine Terminal-Aktivität abgeschlossen ist . Heute habe ich ein ähnliches Dienstprogramm namens "undistract-me" entdeckt das Sie benachrichtigt, wenn lange laufende Terminalbefehle abgeschlossen sind. Stellen Sie sich dieses Szenario vor. Sie führen einen Befehl aus, dessen Ausführung eine Weile dauert. In der Zwischenzeit checkst du dein Facebook und engagierst dich so dafür. Nach einer Weile haben Sie sich daran erinnert, dass Sie vor ein paar Minuten einen Befehl ausgeführt haben. Sie gehen zurück zum Terminal und stellen fest, dass der Befehl bereits beendet ist. Aber Sie haben keine Ahnung, wann der Befehl abgeschlossen ist . Waren Sie schon einmal in dieser Situation? Ich wette, die meisten von Ihnen waren schon oft in dieser Situation. Hier ist "undistract-me" kommt zu Hilfe. Sie müssen das Terminal nicht ständig überprüfen, um zu sehen, ob ein Befehl abgeschlossen ist oder nicht. Das Undistract-me-Dienstprogramm benachrichtigt Sie, wenn ein lang andauernder Befehl abgeschlossen ist. Es funktioniert auf Arch Linux, Debian, Ubuntu und anderen Ubuntu-Derivaten.

Undistract-me installieren

Undistract-me ist in den Standard-Repositorys von Debian und seinen Varianten wie Ubuntu verfügbar. Alles, was Sie tun müssen, ist, den folgenden Befehl auszuführen, um es zu installieren.

$ sudo apt-get install undistract-me

Das Arch Linux Benutzer können es von AUR aus installieren Verwenden Sie beliebige Hilfsprogramme, zum Beispiel YaY .

$ yay -S undistract-me-git

Führen Sie dann den folgenden Befehl aus, um „undistract-me“ zu Ihrer Bash hinzuzufügen.

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

Alternativ können Sie diesen Befehl ausführen, um es zu Ihrer Bash hinzuzufügen:

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

Wenn Sie sich in Zsh befinden Shell, führen Sie diesen Befehl aus:

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

Aktualisieren Sie abschließend die Änderungen:

Für Bash:

$ source ~/.bashrc

Für Zsh:

$ source ~/.zshrc

Konfiguriere Undistract-me

Standardmäßig berücksichtigt Undistract-me jeden Befehl, der länger als 10 Sekunden dauert als lang andauernder Befehl abzuschließen. Sie können dieses Zeitintervall ändern, indem Sie /usr/share/undistract-me/long-running.bash bearbeiten Datei.

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

Finden Sie "LONG_RUNNING_COMMAND_TIMEOUT" Variable und ändern Sie den Standardwert (10 Sekunden) auf etwas anderes Ihrer Wahl.

Speichern und schließen Sie die Datei. Vergessen Sie nicht, die Änderungen zu aktualisieren:

$ source ~/.bashrc

Außerdem können Sie Benachrichtigungen für bestimmte Befehle deaktivieren. Suchen Sie dazu die "LONG_RUNNING_IGNORE_LIST" Variable und fügen Sie die Befehle durch Leerzeichen getrennt ein.

Standardmäßig wird die Benachrichtigung nur angezeigt, wenn das aktive Fenster nicht das Fenster ist, in dem der Befehl ausgeführt wird. Das heißt, Sie werden nur benachrichtigt, wenn der Befehl im Terminalfenster im Hintergrund ausgeführt wird. Wenn der Befehl im aktiven Fenster Terminal ausgeführt wird, werden Sie nicht benachrichtigt. Wenn Sie möchten, dass „undistract-me“ Benachrichtigungen entweder im Terminalfenster oder im Hintergrund sendet, können Sie IGNORE_WINDOW_CHECK festlegen zu 1 um die Fensterprüfung zu überspringen.

Die andere coole Funktion von Undistract-me ist, dass Sie Audio-Benachrichtigungen zusammen mit visuellen Benachrichtigungen einstellen können, wenn ein Befehl ausgeführt wird. Standardmäßig wird nur eine visuelle Benachrichtigung gesendet. Sie können dieses Verhalten ändern, indem Sie die Variable UDM_PLAY_SOUND setzen in eine Ganzzahl ungleich Null in der Befehlszeile. Ihr Ubuntu-System sollte jedoch über pulsaudio-utils verfügen und sound-theme-freedesktop Dienstprogramme installiert, um diese Funktionalität zu aktivieren.

Bitte denken Sie daran, dass Sie den folgenden Befehl ausführen müssen, um die vorgenommenen Änderungen zu aktualisieren.

Für Bash:

$ source ~/.bashrc

Für Zsh:

$ source ~/.zshrc

Es ist Zeit zu überprüfen, ob das wirklich funktioniert.

Benachrichtigung erhalten, wenn lang andauernde Terminalbefehle abgeschlossen sind

Führen Sie nun einen beliebigen Befehl aus, der länger als 10 Sekunden oder die Zeitdauer dauert, die Sie im Undistract-me-Skript definiert haben.

Ich habe den folgenden Befehl auf meinem Arch Linux-Desktop ausgeführt.

$ sudo pacman -Syu

Die Ausführung dieses Befehls dauerte 32 Sekunden. Nach Abschluss des obigen Befehls erhielt ich die folgende Benachrichtigung.

Bitte denken Sie daran, dass das Undistract-me-Skript Sie nur dann benachrichtigt, wenn der angegebene Befehl länger als 10 Sekunden dauerte. Wenn der Befehl in weniger als 10 Sekunden ausgeführt wird, werden Sie nicht benachrichtigt. Natürlich können Sie diese Zeitintervalleinstellungen ändern, wie ich es oben im Abschnitt Konfiguration beschrieben habe.

Ich finde dieses Tool sehr nützlich. Es hat mir geholfen, wieder ins Geschäft zurückzukehren, nachdem ich in einigen anderen Aufgaben völlig verloren war. Ich hoffe, dass dieses Tool auch für Sie hilfreich sein wird.


Linux
  1. 8 gruselige Befehle, die das Terminal heimsuchen

  2. Installation von Paketen vorschlagen, wenn ein nicht verfügbarer Befehl ausgeführt wird

  3. Ausführen von Linux-Befehlen im Hintergrund und Vordergrund

  4. Macht das Ausführen von Befehlen sie langsamer?

  5. ip-Befehl im Mac OS X-Terminal

Kmdr – Zeigt die Erklärung der CLI-Befehle im Terminal an

Erhalten Sie eine Benachrichtigung, wenn eine Terminalaufgabe erledigt ist

So führen Sie mehrere Linux-Befehle gleichzeitig im Linux-Terminal aus

Setzen Sie einen Timer auf Ihre laufenden Befehle mit dem Timeout-Befehl in Linux

5 Methoden, um schnelle Hilfe zu Linux-Befehlen zu erhalten

Beispiele für Bildschirmbefehle:Holen Sie sich die Kontrolle über das Linux / Unix-Terminal