« Shell bash » : différence entre les versions

De Wiki doc

arguments : Ajout du "~+" + ajout de la source correspondante.
arguments : Ajout du raccourci d'expansion d'alias bash + sa source.
Ligne 66 : Ligne 66 :
* <source lang="bash" inline>^foo^bar</source> : (à entrer seul, sans commande ni argument) permet de remplacer ''foo'' par ''bar'' dans la commande précédente. Un <source lang="bash" inline>ls /etc</source> suivi d'un <source lang="bash" inline>^/etc^/</source> donnera un <source lang="bash" inline>ls /</source>
* <source lang="bash" inline>^foo^bar</source> : (à entrer seul, sans commande ni argument) permet de remplacer ''foo'' par ''bar'' dans la commande précédente. Un <source lang="bash" inline>ls /etc</source> suivi d'un <source lang="bash" inline>^/etc^/</source> donnera un <source lang="bash" inline>ls /</source>
* <source lang="bash" inline>~+</source> : donne le répertoire courant (est identique à <source lang="bash" inline>$(pwd)</source>)
* <source lang="bash" inline>~+</source> : donne le répertoire courant (est identique à <source lang="bash" inline>$(pwd)</source>)
* <source lang="bash" inline><ctrl></source>+<source lang="bash" inline>alt</source>+<source lang="bash" inline>e</source> : déroule la véritable signification d'un alias. Par exemple, si je tape <source lang="bash" inline>ls</source> suivi de ce raccourci clavier, j'obtiens <source lang="bash" inline>ls --color</source> qui est définit comme alias dans mon <source lang="bash" inline>.bashrc</source>


==Sources de la section==
==Sources de la section==
* http://linuxfr.org/users/postroutine/journaux/bash-et-les-raccourcis-claviers
* http://linuxfr.org/users/postroutine/journaux/bash-et-les-raccourcis-claviers
* https://askubuntu.com/questions/70750/how-to-get-bash-to-stop-escaping-during-tab-completion
* https://askubuntu.com/questions/70750/how-to-get-bash-to-stop-escaping-during-tab-completion
* https://bugzilla.redhat.com/show_bug.cgi?id=679696

Version du 11 novembre 2019 à 00:15

Le shell bash est l'interpréteur de commande par défaut de la plupart des distributions Linux. Il peut être personnalisé en modifiant son apparence ou en lui activant des paramètres.

Configuration

bashrc

Le <source lang="bash" inline>.bashrc</source> est un fichier qui contient des commandes à exécuter au moment de la connexion d'un utilisateur. Il en existe 2 types :

  • Un générique pour tout les utilisateurs : <source lang="bash" inline>/etc/bash.bashrc</source>
  • Un local pour chaque utilisateurs en particulier : <source lang="bash" inline>~/.bashrc</source>

Pour que les modifications prennent effet, il faut recharger le fichier après modification soit en relançant le shell, soit en exécutant le fichier comme s'il s’agissait d'une commande <source lang="bash" inline>. .bashrc</source> ou bien en utilisant la commande <source lang="bash" inline>source ~/.bashrc</source>.

Auto complétion

Le paquet <source lang="bash" inline>bash-completion</source> offre la possibilité de compléter les commandes bash à l'aide de la tabulation. Il faut entrer les quelques lignes suivantes dans l'un des fichiers de configuration de bash pour que cela prenne effet. <source lang="bash"> if ! shopt -oq posix; then

 if [ -f /usr/share/bash-completion/bash_completion ]; then
   . /usr/share/bash-completion/bash_completion
 elif [ -f /etc/bash_completion ]; then
   . /etc/bash_completion
 fi

fi </source>

Personnalisation du prompt

inputrc

Insensibilité à la casse

Rendre insensible l'auto complétion du shell bash à la casse (très utile quand on tape vite au clavier et que le système écrit /Etc au lieu de /etc et dit "Aucun fichier ou dossier de ce type").

vim ~/.inputrc

Ajouter cette ligne : <source lang="bash"> set completion-ignore-case On </source>

Source de la section

http://askubuntu.com/questions/87061/can-i-make-tab-auto-completion-case-insensitive-in-the-terminal

Redirections

Rediriger plusieurs lignes

Pour ce faire nous utiliserons un EOF (End Of File). Il faut précéder et succéder une chaîne de caractère quelconque par des traits de soulignement afin de marquer le début et la fin de notre bloque de texte (à la manière du motd Cisco).

Dans un fichier

<source lang="bash"> ycharbi@XPS13:/tmp$ cat >> foo.txt << _bar_ > Écrire et > terminer par le > même symbole > _bar_ ycharbi@XPS13:/tmp$ cat foo.txt Écrire et terminer par le même symbole </source>

Dans le shell

<source lang="bash"> ycharbi@XPS13:/tmp$ cat << _foo_ > Écrire et > terminer par le > même symbole > _foo_ Écrire et terminer par le même symbole </source>

Source de la section

arguments

Voici une liste d'astuces pour récupérer des arguments tapés en bash:

  • <source lang="bash" inline><Échap></source>+<source lang="bash" inline>_</source> : colle le dernier argument passé à la dernière commande tapée
  • <source lang="bash" inline>!$</source> : remplace, au moment d'envoyer la commande, le dernier argument passé à la dernière commande tapée
  • <source lang="bash" inline>!:n</source> : remplace, au moment d'envoyer la commande, l'nième argument passé à la dernière commande tapée
  • <source lang="bash" inline>^foo^bar</source> : (à entrer seul, sans commande ni argument) permet de remplacer foo par bar dans la commande précédente. Un <source lang="bash" inline>ls /etc</source> suivi d'un <source lang="bash" inline>^/etc^/</source> donnera un <source lang="bash" inline>ls /</source>
  • <source lang="bash" inline>~+</source> : donne le répertoire courant (est identique à <source lang="bash" inline>$(pwd)</source>)
  • <source lang="bash" inline><ctrl></source>+<source lang="bash" inline>alt</source>+<source lang="bash" inline>e</source> : déroule la véritable signification d'un alias. Par exemple, si je tape <source lang="bash" inline>ls</source> suivi de ce raccourci clavier, j'obtiens <source lang="bash" inline>ls --color</source> qui est définit comme alias dans mon <source lang="bash" inline>.bashrc</source>

Sources de la section