{{{P’tite histoire du shell}}}
Le Shell est un interpréteur de commande.
Il a été créé en 1969, par Dennis Ritchie et Ken Thompson lors du dévellopement d’unix afin de permettre à l’utilisateur d’interagir avec le système.
Ils écrivent un système de gestion de fichier, quelques petits programmes (tel cp ou rm) et un interpreteur de commande : le {{shell}}.
——-
{{{Les différents shells}}}
Plusieurs shells existent ont vu le jour et se sont dévellopés.
Le plus répandu étant le fameux bash.
{{sh :}} Le shell des année70. L’origine
{{Bash :}} C’est le shell utilisé par défaut sous Linux la plupart du temps: Bourne Against Shell.
Il fut créé par la FSF (Free Software Fondation) afin d’avoir un shel libre et gratuis.
Ce shell permet l’édition des lignes de commande et conserve un historique.
{{csh :}} Le C shell. Ne permet pas l’édition de la ligne de commande
{{ksh :}} Le Korn shell. Il est plus connu sur les systèmes UNIX.
{{tcsh :}} C’est une version améliorée du C shell. Il possède et conserve également un historique des commandes
{{zsh :}} Le plus récent de shell
—–
{{{Liste des commandes incluse dans le bash :}}}
alias, bg, bind, break, builtin, case, cd, command, continue, declare, dirs, disown, echo, enable, eval, exec, exit, export, fc, fg, for, getopts, hash, help, history, if, jobs, kill, let, local,logout, popd, pushd, pwd, read, readonly, return, set, shift, shopt, source, suspend, test, times, trap, type, typeset, ulimit, umask, unalias, unset, until, wait, while.
——–
{{{Modification commune à tous les utilisateurs}}}
Le fichier /etc/profile permet de configurer le comportement du shell et est commun à tous les utilisateurs.
Ce fichier structuré se compose de :
– Des variables du shell telles que HOME, PATH, …
– Le type de terminal et la variable TERM qui lui est attribuée.
– Une partie relatif au prompt du Shell.
– Et la définition des couleurs de la commande ls.
Chaque shell peut être personnalisé par chaque utilisateur en utilisant le fichier .bash_profile situé dans son répertoire HOME.
Mais l’administrateur de la machine veut peut-être personalisé un prompt à tout ses utilistaeurs en y mettant des couleurs, le nom de la machine, le nom de l’utilisateur, etc.
La variable PS1 permettant de réalisé cette opération ce trouve dans le fichier /etc/profile :
if [ « $PS1 » ]; then
if [ « $BASH » ]; then
PS1=’\u@\h:\w\$ ‘
else
if [ « `id -u` » -eq 0 ]; then
PS1=’# ‘
else
PS1=’$ ‘
fi
fi
fi
Vous devez vous reconnecter afin de prendre en compte les modifictations.
Voici la définition des différentes variables possible :
– \h pour ajouter le nom de la machine
– \u pour ajouter le nom de l’utilisateur
– \r pour un retour à la ligne
– \w pour ajouter le chemin complet du répertoire courant
– \W pour ajouter le répertoire courant
– \d pour ajouter la date (format anglais)
– \t pour ajouter l’heure (HH:MM:SS)
Le changement de couleurs est également possible.
Nous utilisons encore la variable PS1 pour réaliser cette fonction :
PS1=’\[\033[num_couleurm]prompt_voulu\033[0m]’
Voici la liste des numéros de couleurs :
– Noir 0;30
– Rouge 0;31
– Vert 0;32
– Brun 0;33
– Bleu 0;34
– Violet 0;35
– Cyan 0;36
– Gris Clair 0;37
– Gris 1;30
– Rose 1;31
– Vert Clair 1;32
– Brun Clair 1;33
– Bleu Clair 1;34
– Violet Clair 1;35
– Cyan Clair 1;36
– Blanc 1;37
– Et pour réinitialisé : [0m]
L’exemple suivant indique la date suivie du nom de l’utilisateur en violet clair :
PS1=’\d \[\033[1;32m]\u\033[0m]’
———–
{{{Modification pour l’utilisateur (y compris root)}}}
Étant donnée que le fichier de configuration personnel du shell a priorité sur le /etc/profile (du moins pour la prise en charge de la colorisation), il faut modifier le fichier ~/.bashrc
Ici vous pourrez ajouter des alias de commande :
# Alias du rm (remove=supprimer)
# afin qu’il demande une confirmation avant la suppresion
alias rm=’rm -i’
La coloration syntaxique du shell :
export LS_OPTIONS=’–color=auto’
eval `dircolors`
alias ls=’ls $LS_OPTIONS’
alias ll=’ls $LS_OPTIONS -l’
alias l=’ls $LS_OPTIONS -lA’
Article lu 896 fois
Laisser un commentaire
Vous devez être connecté pour publier un commentaire.