OBSD4* : wiki

KSH : Korn shell

ksh est le shell par défaut sous OpenBSD - exactement pdksh : Public Domain Korn Shell == ksh88 . Il ressemble beaucoup à Bash par bien des aspects et vous devriez 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'

Gestion des alias

Merci de lire notre page “Trucs et Astuces” relatives…

Gestion de dates

⇒ Obtenir une date au format timestamp :

$ date +%s

⇒ Transformer un timestamp en date :

$ date -r $timestamp +"%x %X"

⇒ Obtenir la date de maintenant :

$ date +"%x %X"

⇒ Obtenir la date du jour :

$ date +'%Y-%m-%d_%H-%M-%S'

⇒ Obtenir la date d'hier :

date -r $(($(date -j $(date +%Y%m%d1200) +%s) - 86400)) +%F

Gestion d'informations de fichiers

Dates de fichier

⇒ date de création :

$ stat -f "%c" file

⇒ date de modification :

$ stat -f "%m" file

⇒ date du dernier accès :

$ stat -f "%c" file

Vous obtiendrez des dates au format timestamp. Pour les transformer en date, humainement compréhensible, voire ci-dessus

Taille d'un fichier

Obtenir la taille d'un fichier :

$ stat -f "%z" file

Type d'un fichier

Obtenir le type du fichier :

$ stat -f "%T" file

Utilisateur et groupe d'un fichier

⇒ Obtenir l'utilisateur ayant les droits sur le fichier :

$ stat -f "%u" fichier

⇒ et le groupe :

$ stat -f "%g" fichier

PS1 : un prompt en couleur

⇒ 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…

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' '