Ceci est une ancienne révision du document !



BASH : Bourne Again Shell

BASH est un shell. C'est le shell de base utilisé dans le terminal, il est bien évidemment libre, sous licence GPL. La plupart des scripts que vous verrez sur la documentation comporte un Shebang #!/bin/bash, votre système utilisera donc BASH pour interpréter les commandes.

BASH n'est pas totalement compatible avec ZSH, le shell le plus orienté pour l'interactivité avec l'utilisateur.

Tutoriel par lien externe

Séparateur de mot

L'IFS est le ou les caractères qui servent de séparateur. Voici un bout de code pour comprendre par l'exemple.

phrase="plusieurs mots...
sur une ligne ?"

function afficher_phrase(){
        for chaine in `echo "$phrase"`; do
                echo $chaine
        done
}

afficher_phrase
IFS='
'
echo "Séparateur interne à bash changé"
afficher_phrase

Plus d'explication en anglais.

Une meilleure gestion de l'historique

Par défaut, toutes les commandes tapées dans un terminal sont enregistrées dans votre historique et vous pouvez les retrouver en appuyant sur les touches fléchées « haut » et « bas ». La façon dont vous parcourez l'historique peut être améliorée de façon à ce que si vous tapez un début de commande avant votre recherche, vous puissiez accéder uniquement aux entrées commençant par ce que vous venez de taper. Vous me suivez ?

ouvrez le fichier ~/.inputrc et ajoutez-y :

"\e[A": history-search-backward
"\e[B": history-search-forward

ouvrez le fichier ~/.bashrc et ajoutez-y :

shopt -s histappend
PROMPT_COMMAND='history -a'
Apparemment, pas de fichier .inputrc dans le dossier personnel sous 12.04, faut-il le créer ?

Oui, et cela fonctionne très biegabriel-Lenovo-G700n. Idem sous 14.04.

~/.bashrc

Ce fichier permet la configuration lors du lancement du programme bash.

petit plus vous pouvez enlever le nom d'hôte de la machine grâce à ce dernier : dans votre éditeur de texte préférer chercher "PS1" pour Prompt Shell 1. Avec gedit vous pouvez faire Ctrl + R pour rechercher dans le fichier. remplacer la première occurrence ou toute occurrences par par exemple cela:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '

ici j'ai uniquement enlever \h pour le nom d'hôte et rajouter \n avant le dollard pour avoir le curseur sur une autre ligne. Il y a beaucoup plus de personnalisation possible mais ne nous étalons pas.

~/.bash_aliases

Lui il est sympa, vous pouvez mettre des variables dedans qui seront chargé à chaque terminal sympa quand vous voulez par exemple raccourcir un nom de domaine

petit tips, vous pouvez mettre de la couleur dans les pages du man plutôt que d'avoir du blanc. ce site vous dit comment faire. faites vous plaisir avec les choix de couleurs.

~/.bash_history

Hyper utile quand vous utilisez vos flèches pour rechercher une commande. vous pouvez voir le fichier avec la commande

history

Pour rechercher bien plus rapidement utilisez (Ctrl+R) dans le terminal puis entrez la chaîne cherchée. Utilisez plusieurs fois (Ctrl + r) et non pas les flèches pour remonter les commandes qui match.

~/.profile

Comme indiqué dans le fichier il n'est lu que si ~/.bash_profile ou ~/.bash_login n'existe pas. il permet de prendre en compte de nouveau chemin pour la variable d'environnement PATH.

Par exemple si vous créez un programme, il vous suffira de le mettre dans un nouveau dossier nommé "bin" :

mkdir ~/bin

et d'y mettre vos programmes

—-

Contributeur(s) : Id2ndR

  • bash.1616179756.txt.gz
  • Dernière modification: Le 19/03/2021, 19:49
  • par Amiralgaby