OBSD4* : wiki

KSH : Korn shell

ksh est le shell par défaut sous OpenBSD. Il ressemble beaucoup à bash par bien des aspects et vous devirez vous y retrouver si vous venez de GNU/Linux.

Activer l’historique dans le shell ksh

Ajoutez ceci dans le fichier ~/.kshrc :

 . /etc/ksh.kshrc
HISTFILE=~/.hist
HISTSIZE=3000

Si vous ne voulez pas garder de doublons si une même commande est lancée plusieurs fois de suite :

HISTCONTROL=ignoredumps

Un .kshrc minimal

export PS1="\u@\h:\w\$ "
export LC_CTYPE=fr_FR.UTF-8
export LC_MESSAGES=fr
export TOP='-s 1'
export PAGER=less
export ENV='~/.kshrc'

PS1

  • PS1 user :
    PS1="\e[0;36m\u@\h: \e[0;32m\w \e[0;36m\$ \e[m"
  • PS1 root :
    PS1="\e[0;31m\u@\h | \e[0;32m\w | \e[0;31m\# \e[m"

Petite astuce : si vous mettez '\#', à chaque commande utilisée, le prompt affichera un compteur …

Avoir le prompt en couleur en fonction du code de sortie de la commande

Il peut être intéressant d'avoir un prompt couleur, d'une part pour se repérer dans son terminal, d'autre part, ça devient intéressant visuellement si ce dernier change de couleur en fonction du code de retour de la commande qui vient d'être lancée. Pour cela, voici un bout de config à ajouter à votre $HOME/.kshrc :

escape=$(print '\033')
ctrla=$(print '\001')
PS1=$(print '\001\015')
PS1=$PS1$ctrla$escape'[$(($? ? 31 : 32))m'$ctrla
PS1=$PS1'[\u@\h \w]'
PS1=$PS1$ctrla$escape'[0m'$ctrla' '