« Raccourcis shell bash » : différence entre les versions

De Justine's wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(2 versions intermédiaires par la même utilisatrice non affichées)
Ligne 1 : Ligne 1 :
Cette page contient des raccourcis et des astuces pour le Shell Linux.  
* Une source intéressante [https://github.com/onceupon/Bash-Oneliner ici]
 
[[Category:linux]]
Cette page contient des raccourcis et des astuces pour le Shell Linux.  
 
= Des variables d'environnement =
<nowiki>
$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
</nowiki>
 
= Reprises de commandes =
 
== Reprendre la dernière commande en y ajoutant sudo ==
== Reprendre la dernière commande en y ajoutant sudo ==
<pre>sudo !!</pre>
sudo !!
 
== Reprendre la dernière commande ==
 
!foo reprend la dernière commande commencant par "foo"
<nowiki>
!cat
# or
!c
# run cat filename again
</nowiki>
 
== 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 ==
== Copier/coller du texte ==
Ligne 12 : Ligne 69 :


Couper le mot à gauche du curseur : Ctrl + w
Couper le mot à gauche du curseur : Ctrl + w
== 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.


== Éditer la commande actuelle dans un éditeur de texte ==
== Éditer la commande actuelle dans un éditeur de texte ==
Ligne 34 : Ligne 87 :


C'est assez utile à la fin d'une commande.
C'est assez utile à la fin d'une commande.
== Resetter le terminal? ==
On peut taper la commande "reset" pour ramener le terminal à zéro si il rencontre un problème.


== Effectuer une recherche dans les commandes déjà passées ==
== Effectuer une recherche dans les commandes déjà passées ==
Ligne 58 : Ligne 107 :
  oui
  oui


== Refaire la dernière commande en la modifiant ==
= Grep =
Sur bash, le fait de taper !! va reprendre la dernière commande envoyée, telle quelle.
<nowiki>
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)
</nowiki>
 
= 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.
 


Cela peut permettre par exemple de rajouter un sudo oublié :
== Resetter le terminal? ==
<source>
~ > systemctl restart apache2
~ > sudo !!
sudo systemctl restart apache2
</Source>


On peut également utiliser cela en faisant une substitution.
On peut taper la commande "reset" pour ramener le terminal à zéro si il rencontre un problème.
<source>
~> systemctl restart apache2
~> !!:s/apache2/sshd
systemctl restart sshd
</source>
Ici, la syntaxe s/truc/bidule rappelle bien évidemment sed.

Dernière version du 25 juillet 2024 à 22:38

  • 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.