Je parle des raccourcis clavier que vous utilisez dans la ligne de commande / terminal.
Exemple: Ctrl+ cqui tue le processus, Ctrl+ dcette déconnexion, Ctrl+ zqui envoie le processus en arrière-plan ... etc.
Je l' ai testé quelques - uns et a constaté qu'ils ne sont ni terminal (c. -à- gnome-terminal
, xterm
, konsole
) spécifique ni coquille (c. -à- bash
, zsh
) spécifique, ils ont même travail à l' tty
art.
Donc, je veux savoir:
- Qui fournit ces raccourcis?
- Comment les lister et les modifier / définir?
bind -p
d'énumérer, commehelp bind
pour les autresRéponses:
Le pilote de terminal du noyau (
termios
) interprète les clés spéciales qui peuvent être saisies pour envoyer un signal à un processus, envoyer la fin d'un fichier, effacer des caractères, etc. Il s'agit d'une fonctionnalité de base du noyau Unix et très similaire sur la plupart des implémentations Unix et Linux.La
stty
commande affiche ou définit lestermios
caractères spéciaux, ainsi que d'autres paramètres pour le pilote de ligne de terminal.Appelez
stty -a
pour voir les valeurs actuelles des caractères spéciaux et autres "paramètres de ligne de terminal". Dans les exemples suivants, vous pouvez voir queintr
c'est Ctrl+ C,eof
est Ctrl+ D,susp
est Ctrl+ Z. (J'ai supprimé d'autres sorties pour n'afficher que les paramètres des caractères spéciaux):stty -a
caractères spéciaux sur GNU / Linux:stty -a
caractères spéciaux sur FreeBSD:Pour changer la valeur d'un caractère spécial, par exemple, pour changer le caractère d'interruption de Ctrl+ Cà Ctrl+ Einvoquer
stty
comme ceci (^E
est littéralement deux caractères, le circonflexe (^
) suivi de la lettreE
):Pour plus d'informations, consultez les pages de manuel de
stty
ettermios
. Sur GNU / Linux, vous pouvez également consulter latty_ioctl
page de manuel.Remarques:
La
intr
clé ( Ctrl+ Cpar défaut) ne tue pas réellement le processus, mais oblige le noyau à envoyer un signal d'interruption (SIGINT
) à tous les processus du groupe de processus. Les processus peuvent s'arranger pour intercepter ou ignorer le signal, mais la plupart des processus se termineront, ce qui est le comportement par défaut.La raison pour laquelle Ctrl+ dvous déconnecte est que le pilote de ligne de terminal envoie EOF (fin de fichier) sur l'entrée standard du shell. Le shell se ferme lorsqu'il reçoit la fin du fichier sur son entrée standard.
la source
-a
option POSIX a été ajoutée àstty
.stty intr '^E'
cela fonctionne (ensembles) mais temporairement et uniquement pour le terminal / tty actuel. Comment puis-je le changer globalement et définitivement?stty
dans votre $ HOME / .profile ou $ HOME / .bashrc ou un autre fichier d'initialisation de démarrage du shell.tty
tty
? Peut-être que cela pourrait être une nouvelle question?Depuis http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
Raccourcis d'édition de commandes
Raccourcis de rappel de commande
Raccourcis de contrôle des commandes
Commandes Bash Bang (!)
Bash a également quelques fonctionnalités pratiques qui utilisent le! (bang) pour vous permettre de faire des trucs géniaux avec les commandes bash .
la source
^U
, quistty -a
montre défini pour SIGKILL sur Linux, à partir de bash? De préférence sans indéfinir le contenu de la ligne de lecture (peut-être via une troisième touche mod / méta). Je suppose qu'il n'est masqué que par la liaison readline ctrl + u?