Raccourcis shell bash

De Justine's wiki
Aller à la navigation Aller à la recherche
  • 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.