J'utilise beaucoup de raccourcis lorsque j'interagis avec ligne de commande bash pour rendre le travail plus facile et plus rapide.
Comme:
et beaucoup d’autres, que je veux connaître et qui seront certainement utiles à apprendre.
Je veux savoir d'où puis-je obtenir la liste de ces raccourcis dans Ubuntu? Existe-t-il un manuel répertoriant ces raccourcis?
NOTE:
Je veux obtenir la liste des raccourcis et leurs actions en un seul endroit. Il sera vraiment utile d’apprendre beaucoup d’entre eux en peu de temps. Alors, y a-t-il moyen d'obtenir la liste comme celle-ci? Bien que merci pour la réponse donnée ici ..
Les valeurs par défaut sont dans man bash
, avec des détails sur le fonctionnement de chaque commande. Voir la réponse de BroSlow si vous avez modifié vos raccourcis clavier.
Commands for Moving
beginning-of-line (C-a)
Move to the start of the current line.
end-of-line (C-e)
Move to the end of the line.
forward-char (C-f)
Move forward a character.
backward-char (C-b)
Move back a character.
forward-Word (M-f)
Move forward to the end of the next Word. Words are composed of alphanumeric characters (letters and digits).
backward-Word (M-b)
Move back to the start of the current or previous Word. Words are composed of alphanumeric characters (letters and digits).
Shell-forward-Word
Move forward to the end of the next Word. Words are delimited by non-quoted Shell metacharacters.
Shell-backward-Word
Move back to the start of the current or previous Word. Words are delimited by non-quoted Shell metacharacters.
clear-screen (C-l)
Clear the screen leaving the current line at the top of the screen. With an argument, refresh the current line without clearing the screen.
...
reverse-search-history (C-r)
Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search.
...
unix-line-discard (C-u)
Kill backward from point to the beginning of the line. The killed text is saved on the kill-ring.
...
yank (C-y)
Yank the top of the kill ring into the buffer at point.
Ces commandes sont toutes dans une section contiguë du manuel, vous pouvez donc les parcourir à partir de Commands for Moving
. Sinon, vous pouvez enregistrer toute cette section dans un fichier texte avec
man bash | awk '/^ Commands for Moving$/{print_this=1} /^ Programmable Completion$/{print_this=0} print_this==1{sub(/^ /,""); print}' > bash_commands.txt
(NB: ceci imprime toute la section, y compris les commandes sans raccourci clavier par défaut.)
Explication du code awk
Commands for Moving
, définissez la variable print_this
sur 1.Programmable Completion
, qui correspond à la section suivante, définissez la variable sur 0.Vous pouvez répertorier tous les raccourcis dans votre shell bash actuel en appelant le programme intégré bash bind
avec l'option -P
.
par exemple.
bind -P | grep clear
clear-screen can be found on "\C-l".
Pour les changer, vous pouvez faire quelque chose comme
bind '\C-p:clear-screen'
Et mettez-le dans un fichier init pour le rendre permanent (notez que vous ne pouvez avoir qu'une combinaison de touches liée à une chose à la fois, de sorte qu'elle perdra toute liaison qu'elle avait précédemment).
La commande suivante donne une sortie en colonne Nice montrant l’utilisation et les raccourcis.
bind -P | grep "can be found" | sort | awk '{printf "%-40s", $1} {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}'
Cela donne une sortie qui ressemble à
abort "\C-g", "\C-x\C-g", "\e\C-g".
accept-line "\C-j", "\C-m".
backward-char "\C-b", "\eOD", "\e[D".
backward-delete-char "\C-h", "\C-?".
backward-kill-line "\C-x\C-?".
backward-kill-Word "\e\C-h", "\e\C-?".
backward-Word "\e\e[D", "\e[1;5D", "\e[5D", "\eb".
beginning-of-history "\e<".
beginning-of-line "\C-a", "\eOH", "\e[1~", "\e[H".
call-last-kbd-macro "\C-xe".
capitalize-Word "\ec".
character-search-backward "\e\C-]".
character-search "\C-]".
clear-screen "\C-l".
complete "\C-i", "\e\e".
...
Récupérez cette sortie dans un fichier texte à l'aide de la commande suivante
bind -P|grep "can be found"|sort | awk '{printf "%-40s", $1} {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}' > ~/shortcuts
Le fichier est créé dans votre répertoire $ HOME.
obtient tous les raccourcis.
bind -P
supprime tous les raccourcis non attribués
grep "can be found"
trie la sortie
sort
imprime la première colonne (c'est-à-dire une fonction) et justifie le texte
awk '{printf "%-40s", $1}
Cela fait partie de la commande précédente. Il imprime les colonnes 6+ (c'est-à-dire des raccourcis).
{for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}'
Place la sortie dans un fichier texte Nice dans le répertoire principal nommé raccourcis
> shortcuts
Vous pouvez avoir une idée du fonctionnement de la commande en exécutant les commandes suivantes.
bind -P
bind -P | grep "can be found"
bind -P | grep "can be found" | sort
Tant que le manuel bash n'est pas modifié de manière à rendre cette commande impropre (ce qui n'est pas très probable), la commande suivante affichera tous les raccourcis par défaut pour bash
.
man bash | grep -A294 'Commands for Moving'
Cela donne une sortie qui ressemble à:
Commands for Moving
beginning-of-line (C-a)
Move to the start of the current line.
end-of-line (C-e)
Move to the end of the line.
forward-char (C-f)
Move forward a character.
backward-char (C-b)
Move back a character.
forward-Word (M-f)
Move forward to the end of the next Word. Words are composed of alphanumeric characters (letters and digits).
backward-Word (M-b)
Move back to the start of the current or previous Word. Words are composed of alphanumeric characters (letters and
digits).
Shell-forward-Word
Move forward to the end of the next Word. Words are delimited by non-quoted Shell metacharacters.
Shell-backward-Word
Move back to the start of the current or previous Word. Words are delimited by non-quoted Shell metacharacters.
clear-screen (C-l)
Clear the screen leaving the current line at the top of the screen. With an argument, refresh the current line
without clearing the screen.
redraw-current-line
Refresh the current line.
Commands for Manipulating the History
accept-line (Newline, Return)
Accept the line regardless of where the cursor is. If this line is non-empty, add it to the history list according
to the state of the HISTCONTROL variable. If the line is a modified history line, then restore the history line to
its original state.
previous-history (C-p)
Fetch the previous command from the history list, moving back in the list.
next-history (C-n)
...
Si le manuel bash est modifié, cette commande peut facilement être modifiée pour répondre aux besoins.
D'accord, j'ai un moyen d'obtenir la liste des raccourcis en filtrant le manuel bash . Il donnera également à la description ce que fait exactement chaque raccourci. Merci à Sparhawk qui m'a éclairé pour trouver la solution. Ce dont j'avais besoin, c'était d'apprendre à utiliser les expressions régulières bien que je n'y sois pas encore très doué :)
Voici donc la commande en une ligne:
man bash | grep "(.-.*)$" -A1
Voici une petite extraction de la sortie:
beginning-of-line (C-a)
Move to the start of the current line.
end-of-line (C-e)
Move to the end of the line.
forward-char (C-f)
Move forward a character.
backward-char (C-b)
Move back a character.
forward-Word (M-f)
Move forward to the end of the next Word. Words are composed of alphanumeric characters (letters and digits).
backward-Word (M-b)
Move back to the start of the current or previous Word. Words are composed of alphanumeric characters (letters and digits).
clear-screen (C-l)
Clear the screen leaving the current line at the top of the screen. With an argument, refresh the current line without clearing the
previous-history (C-p)
Fetch the previous command from the history list, moving back in the list.
next-history (C-n)
Fetch the next command from the history list, moving forward in the list.
beginning-of-history (M-<)
Move to the first line in the history.
end-of-history (M->)
Move to the end of the input history, i.e., the line currently being entered.
reverse-search-history (C-r)
Search backward starting at the current line and moving `up' through the history as necessary. This is an incremental search.
forward-search-history (C-s)
Search forward starting at the current line and moving `down' through the history as necessary. This is an incremental search.
Maintenant, sauvegardez les raccourcis dans un fichier:
man bash | grep "(.-.*)$" -A1 > bash_shortcuts
C'est tout ce dont j'avais besoin. Je voulais juste connaître les touches de raccourci attribuées à bash et je n’ai reconfiguré aucune touche comme BroSlow m’a demandé.
Encore une fois merci à tous pour leurs contributions.
Remarque :
Si quelqu'un veut améliorer cela, il est le bienvenu. J'ai seulement mentionné la manière de lister les raccourcis attribués par certaines touches. Donc si quelqu'un sait comment lister les actions qui n'ont pas été affectées à la description de cette manière , c'est très apprécié :)