Description
ksh est le shell par défaut sous OpenBSD - exactement pdksh : Public Domain Korn Shell, qui est l’équivalent du ksh88.
Configuration
- Le fichier de configuration principal :
/etc/ksh.kshrc
- Votre fichier de configuration personnel :
~/.kshrc
Les autres fichiers de configuration liés à l’usage de ksh sont (cf : le manpage ksh) :
- le fichier profil de la session utilisateur :
~/.profile
- celui relatif au système :
/etc/profile
- la base de données shell :
/etc/shells
- et, enfin, le fichier de profil shell privilégié :
/etc/suid_profile
- ATTENTION, aux conséquences relatives aux modifications de ce fichier sensible.
Préférez modifier votre fichier de configuration personnel, en ajoutant les déclarations principales, tel que :
. /etc/ksh.kshrc
Ajout du fichier .profile
Sourcez votre fichier personnel ~/.profile
dans lequel vous déclarez
toutes vos variables d’environnement, vos alias, de manière généraliste.
Préférez l’usage de la variable HOME
plutôt que du
tilde ~
, tel que :
. $HOME/.profile
Activer l’historique
Ajoutez ceci :
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
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"
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 :
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' '
Exemples
Un .kshrc minimal
. /etc/ksh.kshrc
. $HOME/.profile
HISTCONTROL=ignoredumps
HISTFILE=~/.hist
HISTSIZE=3000
# Préférez paramétrer les variables PS1, LC_* dans .profile
export PS1="\u@\h:\w\$ "
export LC_CTYPE=fr_FR.UTF-8
export LC_MESSAGES=fr
export TOP='-s 1'
export PAGER=less
Informations Systèmes
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
Informations de fichiers
Dates de fichier
⇒ date de création : $ stat -f "%c" nom-fichier
⇒ date de modification : $ stat -f "%m" nom-fichier
⇒ date du dernier accès : $ stat -f "%c" nom-fichier
Taille d’un fichier
Obtenir la taille d’un fichier :
$ stat -f "%z" nom-fichier
Type d’un fichier
Obtenir le type du fichier :
$ stat -f "%T" nom-fichier
Utilisateur et groupe d’un fichier
⇒ Obtenir l’utilisateur ayant les droits sur le fichier :
$ stat -f "%u" nom-fichier
⇒ et le groupe :
$ stat -f "%g" nom-fichier
Historique
J’ai écrit historiquement cette documentation de manière collaborative sur le wiki de la communauté “OpenBSD Pour Tous”.