bash est un shell plus performant que sh, le shell par défaut dans freeBSD. Il propose notamment la complémentation des path via la touche tab.
Voici comment l'installer pour un user afin d'exécuter des scripts éventuellement écrit en bash
portinstall bash
Le choix est donné entre l'installationde bash ou bash2. Personnellement j'ai opté pour le deuxième.
Pour changer de shell on peut utiliser l'outil chsh, il suffit alors de remplacer le path de sh par celui de bash sur la ligne Shell :
#Changing user information for mazenovi.
Shell: /usr/local/bin/bash
Full Name: Vincent Mazenod
Office Location:
Office Phone:
Home Phone:
Other information:
Le Mot de passe vous est demandé après enregistrement du fichier et un message vous annonce que les nouveaux paramètres ont été enregistrés.
Au prochain login, le shell sera bash (la version de bash s'affichera en préfixe à chaque ligne de commande.
Personnaliser son bash
Au moment du login sont exécutés dans l'ordre les fichiers
/etc/login.conf
~/.bash_profile
~/.bashrc
éditer/etc/login.conf
Il n'y a rien à changer. Juste une proposition qui me paraît cohérente quand on utilise les ports, c'est d'inversé l'ordre de recherche de binaire. Autrement dit de passer de
:path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin ~/bin:\
à
:path=/sbin /bin /usr/games /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /usr/X11R6/bin ~/bin:\
On s'assure ainsi d'utiliser les commandes installées via les ports plutot que celles du système
et au dire du handbook
Note: The system does not normally read the configuration in /etc/login.conf directly, but reads the database file /etc/login.conf.db which provides faster lookups. To generate /etc/login.conf.db from /etc/login.conf, execute the following command:
[root]# cap_mkdb /etc/login.conf
créer .bash_profile dans le home directory
# .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
export BASH_ENV=$HOME/.bashrc
export LC_ALL=fr_FR.UTF-8
export LANG=fr_FR
export PAGER=less
export EDITOR=vi
export LSCOLORS='cxfxgxBxbxedabagacad'
alias h='fc -l'
alias j=jobs
alias m=$PAGER
alias ll='ls -laFo'
alias ls='ls -la -G'
alias g='egrep -i'
créer .bashrc dans le home directory
# .bashrc
if [ "$PS1" ]; then
if [ "x`tput kbs`" != "x" ]; then # We can't do this with "dumb" terminal
stty erase `tput kbs`
fi
PS1="[\u@\h \W]\\$ "
if [ "x$SHLVL" != "x1" ]; then # We're not a login shell
for i in /etc/profile.d/*.sh; do
if [ -x $i ]; then
. $i
fi
done
fi
fi



