Raccourcis shell bash
- Une source intéressante ici
Cette page contient des raccourcis et des astuces pour le Shell Linux.
Des variables d'environnement
$0 :name of shell or shell script. $1, $2, $3, ... :positional parameters. $# :number of positional parameters. $? :most recent foreground pipeline exit status. $- :current options set for the shell. $$ :pid of the current shell (not subshell). $! :is the PID of the most recent background command. $_ :last argument of the previously executed command, or the path of the bash script. $DESKTOP_SESSION current display manager $EDITOR preferred text editor. $LANG current language. $PATH list of directories to search for executable files (i.e. ready-to-run programs) $PWD current directory $SHELL current shell $USER current username $HOSTNAME current hostname
Reprises de commandes
Reprendre la dernière commande en y ajoutant sudo
sudo !!
Reprendre la dernière commande
!foo reprend la dernière commande commencant par "foo"
!cat # or !c # run cat filename again
Refaire la dernière commande en la modifiant
Sur bash, le fait de taper !! va reprendre la dernière commande envoyée, telle quelle.
Cela peut permettre par exemple de rajouter un sudo oublié : <source> ~ > systemctl restart apache2 ~ > sudo !! sudo systemctl restart apache2 </Source>
On peut également utiliser cela en faisant une substitution. <source> ~> systemctl restart apache2 ~> !!:s/apache2/sshd systemctl restart sshd </source> Ici, la syntaxe s/truc/bidule rappelle bien évidemment sed.
Gestion de l'édition
Copier/coller du texte
Couper du curseur jusqu'à la fin de la ligne: Ctrl + k
Couper du début jusqu'au curseur : Ctrl + u
Recoller ce texte coupé : Ctrl + y
Couper le mot à gauche du curseur : Ctrl + w
Éditer la commande actuelle dans un éditeur de texte
Si je commence à taper une commande assez longue et que je veux l'éditer dans mon éditeur par défaut, il me suffit d'utiliser :
Ctrl + x + e
C'est assez utile pour faire du bash, par exemple. Une fois que la commande est éditée, il n'y a plus qu'à faire enregistrer - quitter pour que la commande s'exécute dans le shell.
Coller l'argument de la commande précédente
Je peux coller simplement l'argument de la commande précédente à l'aide du raccourci :
Alt + .
(Qui sur un clavier azerty se fait du coup avec Alt + Maj + La touche ;)
C'est assez utile à la fin d'une commande.
Effectuer une recherche dans les commandes déjà passées
Ctrl + r permet de faire des recherches dans les commandes déjà passées pour les réutiliser.
Se déplacer au début / à la fin de la commande
Pour aller au début de la commande : Ctrl + a
Pour aller à la fin : Ctrl + e
Coller les arguments de la dernière commande utilisée
Alt + .
Sur un clavier azerty, il faut du coup faire Alt+shift+. (sinon ça fait Alt+;). On récupère les arguments de la dernière commande: si je fait
echo oui
puis le raccourci, j'obtient
oui
Grep
grep = grep -G # Basic Regular Expression (BRE) fgrep = grep -F # fixed text, ignoring meta-characters egrep = grep -E # Extended Regular Expression (ERE) rgrep = grep -r # recursive grep -P # Perl Compatible Regular Expressions (PCRE)
Autres
Le mode follow de less
On peut remplacer tail par less pour avoir le même principe (l'affichage du fichier en temps réel), mais avec la possibilité de pouvoir remonter dans le fichier, faire des recherches à l'intérieur... Grâce au mode follow de less, accessible via shift + f. L'inconvénient est qu'il n'affiche pas les numéros de lignes.
Resetter le terminal?
On peut taper la commande "reset" pour ramener le terminal à zéro si il rencontre un problème.