Manchmal passiert es mir, dass ich aus Versehen CTRL+ drücke und meine Anwendung im Hintergrund verschwindet. Ich weiß, ich kann sie mit zurückholen , also ist das keine große Sache. Aber ich überlege trotzdem, ob ich das ausschalten soll. Ich kann mich in meinem ganzen Leben nicht an einen einzigen Fall erinnern, in dem ich es gebraucht habe, es sieht für mich einfach wie ein Relikt aus der Vergangenheit aus.Zfg
job control
Ist es in Ordnung, dies vollständig zu deaktivieren job control
? Oder übersehe ich etwas und diese Funktion könnte nützlich sein? Wie deaktiviere ich sie in meinem.bashrc
AKTUALISIEREN:
Ich habe es set +m
wie von @Falsenames vorgeschlagen versucht. Das funktioniert jedoch nur, wenn ich es in das Terminal eingebe. Das Hinzufügen set +m
zu my .bashrc
hat keine Wirkung.
Antwort1
Sie können Folgendes in Ihre Befehlszeile einfügen, um die Verwendung des Überwachungsmodus zu beenden.
Satz +m
Wenn Sie die Strg-Z-Funktionalität später wirklich benötigen, können Sie einfach „set -m“ eingeben, um die Überwachung für diese Sitzung zu aktivieren.
AusMann bash. Beachten Sie, dass dies für „-m“ gilt. Mit „+m“ wird diese Einstellung deaktiviert.
set [+abefhkmnptuvxBCEHPT] [+o option] [arg ...]
....
-m
Monitor mode. Job control is enabled. This option is on by default for interactive
shells on systems that support it (see JOB CONTROL above). Background processes
run in a separate process group and a line containing their exit status is printed
upon their completion.
Als letzten Versuch können Sie eine Version von Bash manuell kompilieren, die nicht das Flag „--enable-job-control“ enthält. Hier ist eine kurzeInstallationsanleitungvon GNU. Wenn Sie sich für diesen Weg entscheiden, ersetzen Sie NICHT /bin/bash, falls Hintergrundprozesse über Bash laufen und die Jobsteuerung nicht erforderlich ist. Erstellen Sie stattdessen eine /bin/bash.alt oder eine andere Datei. Ihre Standard-Shell kann durch Ausführen von usermod oder Bearbeiten von /etc/passwd als Root auf diese alternative Shell geändert werden.
Antwort2
stty susp undef
deaktiviert das über die Tastatur ausgelöste Suspend-Signal für die meisten Programme. Befehle wie vim und emacs, die spezielle Bindungen für haben, Ctrl-Zmüssen jedoch einzeln neu konfiguriert werden. In emacs können Sie ausführen (global-unset-key "\C-z")
.
Sie können diesen stty-Befehl zu Ihrem ~/.bash_profile
oder ~/.profile
„Abmelden“ hinzufügen und erneut anmelden.
Antwort3
Oder übersehe ich etwas und diese Funktion könnte nützlich sein?
Um diesen Teil der Frage zu beantworten: Cz / fg
Combo ist für meinen Vim-Workflow unerlässlich. Ich bevorzuge beispielsweise Cz > git commit
> fg
gegenüber der Verwendung von Git-Wrappern innerhalb von Vim.
Cz hilft dabei, die Shell als IDE zu behandeln, und entspricht den "eine Sache machen"-Prinzip. (Dies anstelle von „Editor als IDE“).
Antwort4
Fügen Sie trap "" SIGTSTP
Ihr Skript hinzu. Es wird das Signal abfangen und ignorieren.
#!/bin/bash
trap "" SIGTSTP
watch date