Memo KSH
par
popularité : 3%
AIDE-MEMOIRE BOURNE ET KORN SHELL
NB: Le Korn-shell constitue un sur-ensemble du Bourne-shell.
Les aspects valides uniquement en environnement ksh sont, soit signalés en gras dans certaines rubriques, soit évoqués explicitement.
sh ksh sh [-c ligne_cde] [-iprs ] [arg...]
ksh [-c ligne_cde] [-iprs ] [arg...]
Fichiers d'initialisation
/etc/profile puis $HOME/.profile
puis fichier $ENV pour le ksh (traditionnellement .kshrc)
Options
-c |
Lancement d'une ligne de commande |
-s |
Lecture des commandes sur l'entrée standard (défaut) |
-r |
Choix de la forme restreinte du shell |
-i |
Choix du mode interactif (défaut) |
-p |
Non utilisation du bit set_uid |
Les options de la commande interne "set" peuvent également être précisées
Caractères spéciaux
< |
Redirection de l'entrée standard |
|
> et >> |
Redirection de la sortie standard |
|
2> et 2>> |
Redirection de l'erreur standard |
|
<< chaîne |
Entrée standard entre deux apparitions de la chaîne |
|
<<-chaîne Idem |
(tabulations autorisées en début de ligne) |
|
<&n |
Redirection de l'entrée standard vers le fichier de descripteur n |
|
>&n |
Redirection de la sortie standard vers le fichier de descripteur n |
|
>&- |
Fermeture de la sortie standard |
|
<&- |
Fermeture de l'entrée standard |
|
>&p |
Redirection de la sortie standard vers l'entrée du coprocessus |
|
<&p |
Redirection de la sortie du coprocessus vers l'entrée standard |
|
; |
Enchaînement de commandes |
|
| |
Mécanisme du "pipe" |
|
& |
Commande en arrière plan |
|
(...) |
Groupement de commandes dans un shell fils |
|
{...} |
Groupement de commandes dans le shell courant |
|
&& |
Enchaînement conditionnel de commandes (ET logique) |
|
|| |
Enchaînement conditionnel de commandes (OU logique) |
|
* |
Chaîne quelconque (éventuellement vide) dans le nom d'un fichier |
|
? |
Un caractère quelconque dans le nom d'un fichier |
|
[...] |
Un caractère défini dans l'ensemble |
|
[!...] |
Un caractère non défini dans l'ensemble |
|
?(liste_motif) |
Une apparition ou non d'un des motifs |
|
*(liste_motif) |
Un nombre quelconque d'apparitions d'un des motifs (évent. 0) |
|
+(liste_motif) |
Au moins une apparition d'un des motifs |
|
@(liste_motif) |
L'apparition exacte d'un des motifs |
|
!(liste_motif) |
Une apparition non définie par les motifs |
|
\ |
Banalisation d'un caractère spécial |
|
'...' |
Banalisation de tous les caractères spéciaux (sauf ') |
|
"..." |
Banalisation de tous les caractères spéciaux
(sauf $ \ |
Substitution de commande |
# |
Début de commentaire |
|
$(cde) |
Substitution de commande |
Affectations et substitutions de variables
var=valeur |
Affectation de variable |
$var ou ${var} |
Substitution de variable |
${var:-valeur} |
"var" si non nulle, sinon "valeur" |
${var:=valeur} |
Idem ":-" avec éventuelle affectation de "var" |
${var:?msg} |
"var" si non nulle sinon affichage d'un message |
${var:+valeur} |
"valeur" si "var" non nulle sinon "chaîne vide" |
${#var} |
Taille de la variable |
${#tab[*]} |
Nombre d'éléments du tableau |
${var#motif} |
Suppression du motif en début de variable |
${var%motif} |
Suppression du motif en fin de variable |
Valeurs de paramètres
$n |
nième paramètre ( 0 < n < 10 ) |
${n} |
nième paramètre ( n > 9 ) |
$0 |
Nom de la procédure |
$* |
Liste complète des paramètres |
$@ |
Liste complète des paramètres |
$# |
Nombre de paramètres |
$? |
Code retour de la dernière commande invoquée |
$$ |
PID du shell interpréteur |
$! |
PID du dernier processus invoqué en arrière plan |
$- |
Valeur courante des options du shell |
Variables système sh
CDPATH |
Chemin de recherche pour la commande cd |
HOME |
Répertoire de connexion |
IFS |
Séparateur interne de champs (espace, tabulation et line-feed par défaut) |
|
Nom du fichier boîte aux lettres |
MAILCHECK |
Période de scrutation de la boîte aux lettres |
MAILPATH |
Chemin de recherche des fichiers boîte aux lettres |
PATH |
Chemin de recherche pour les commandes |
PS1 |
Prompt principal ($ par défaut) |
PS2 |
Prompt secondaire (> par défaut) |
SHACCT |
Fichier de comptabilité des procédures SHELL |
SHELL |
Nom du shell |
TERM |
Type de terminal |
Variables système ksh supplémentaires
COLUMNS |
Nombre de colonnes pour l'instruction "select" |
EDITOR |
Chemin d'accès à l'éditeur intégré |
ENV |
Fichier d'environnement utilisateur |
ERRNO |
Numéro d'erreur système |
FCEDIT |
Chemin d'accès à l'éditeur de la commande "fc" |
HISTFILE |
Chemin d'accès au fichier historique |
HISTSIZE |
Nombre de commandes accessibles par l'historique |
LINENO |
Numéro de ligne courante |
LINES |
Nombre de lignes pour l'instruction "select" |
OLDPWD |
Précédent répertoire de travail |
PPID |
PID du processus père |
PS3 |
Prompt de la commande "select" |
PS4 |
En-tête de ligne de commande en mode trace |
PWD |
Répertoire courant |
RANDOM |
Nombre aléatoire |
REPLY |
Réponse utilisateur dans une commande "select" |
SECONDS |
Temps ecoulé depuis l'appel de ksh (secondes) |
TMOUT |
Délai d'inactivité avant déconnexion (0 -> infini) |
Instructions de contrôle
for var [ in liste_val ] |
case var in |
|
if liste |
if liste |
|
while liste_cde |
until liste_cde |
select var [ in liste_val ] |
fonct () function fonct |
Expressions conditionnelles pour [[
expr ]]
(commande test intégrée du ksh)
-a fic |
Fichier existant |
|
-b fic |
Fichier spécial bloc |
-c fic |
Fichier spécial caractère |
|
-d rep |
Répertoire |
-f fic |
Fichier ordinaire |
|
-g fic |
Bit set_gid positionné |
-k fic |
Sticky bit positionné |
|
-n chaîne |
Chaîne non nulle |
-o option |
Option positionnée |
|
-p fic |
Tube nommé |
-r fic |
Fichier accessible en lecture |
|
-s fic |
Fichier de taille non nulle |
-u fic |
Bit set_uid positionné |
|
-w fic |
Fichier accessible en écriture |
-x fic |
Fichier accessible en exécution |
|
-z chaîne |
Chaîne vide |
-L fic |
Lien symbolique |
|
-O fic |
Fichier appartenant à l'utilisateur |
-G fic |
Fichier appartenant au groupe de l'utilisateur |
|
-S fic |
Fichier "socket" |
fic1 -nt fic2 |
Fic1 plus récent que fic2 |
|
fic1 -ot fic2 |
Fic1 plus ancien que fic2 |
fic1 -ef fic2 |
Fic1 et fic2 sont deux liens |
|
str1 = str2 |
Egalité de chaînes |
str1 != str2 |
Deux chaînes différentes |
|
str1 < str2 |
Comparaisons suivant le code ASCII |
exp1 -eq exp2 |
exp1 est égal à exp2 |
|
str1 > str2 |
Comparaisons suivant le code ASCII |
( Autres opérateurs : -ne , -lt , -gt , -le , -ge ) |
|
Commandes internes
: |
Commande vide. Retourne la valeur 0 |
|
continue [n] |
Saut de la fin du corps de boucle (n niveaux) |
. |
fichier Exécution de la procédure par le shell courant |
|
eval [arg...] |
Evaluation de commandes |
break [n] |
Sortie de (n) boucle(s) |
|
exec commande |
Exécution d'une commande en remplacement du shell courant |
exit [n] |
Fin avec code retour |
|
export [var...] |
Mise dans l'environnement |
read var... |
Lecture d'une ligne sur l'entrée standard |
|
getopts [optstr] [nom] optstr |
Analyse des options données à une procédure Options autorisées |
readonly var... |
Variables non modifiables |
|
return [n] |
Sortie d'une fonction avec code retour |
set [options] [arg...] |
Sans option -> Affichage de toutes les variables Options -> Paramétrage de l'interpréteur (set -x -> mode trace) Arguments -> Repositionnement de l'ensemble des paramètres |
|
set -o [option...]
set -A tab valeur... |
Paramétrages
spécifiques ksh
Affectation de tableau |
shift [n] |
Décalage des paramètres de n positions (défaut 1) |
|
trap [arg] [sig] |
Traitement des signaux |
times |
Temps d'exécution cumulés |
|
ulimit [options] [val] |
Choix de limitations de ressources |
type commande |
Type de commande |
|
unset var... |
Suppression de variables |
wait [n] |
Attente de processus en arrière plan |
|
# |
tout ce qui suit le # est un commentaire |
Commandes internes du ksh
alias [-tx] [nom[=valeur]]... |
Sans arguments, Liste des alias définis |
-t -x nom = valeur |
Liste des alias suivis Liste des alias exportés Définition d'un alias |
fc [-e edit] [-nlr] [n1 [n2]] |
Gestion de l'historique |
-l -e -n -r |
Liste des dernières commandes n1 à n2 (défaut 16 dernières) Appel d'un éditeur autre que $FCEDIT Liste des commandes sans les numéros Ordre inverse |
bg [job] |
Reprise d'un travail en arrière plan |
|
history |
Alias intégré pour "fc -l" |
fg [job] |
Reprise d'un travail en premier plan |
|
let exp |
Evaluation d'une expression arithmétique |
r |
Alias intégré pour "fc -e -" -> Relancer des commandes |
|||
jobs [-lnp] [job...] |
Informations sur les travaux en cours |
|
(( exp )) |
idem "let" -> permet les espaces |
print [options] [arg...] |
Affichage sur la sortie standard (nouvelle version de echo) |
-n -p -s -u [n] |
Pas de saut de ligne final Redirection vers le co-processus Redirection vers le fichier historique ($HOME/.sh_history) Redirection vers le fichier de descripteur n |
Caractères conventionnels \a \b \c \f \n \r \t \v \\ \0x |
Signal sonore Backspace Suppression du saut de ligne final "form-feed" Saut de ligne Retour chariot Tabulation Tabulation verticale Caractère Backslash Code ASCII en octal |
read [options] [nom?prompt] [nom...] |
demande la saisie pour alimenter une variable |
-n -p -s -u [n] nom?prompt nom... |
Pas de saut de ligne final Lecture depuis le co-processus Sauvegarde dans le fichier historique ($HOME/.sh_history) Lecture depuis le fichier de descripteur n Choix d'un message avant lecture Variables concernées (REPLY par défaut) |
typeset [±options[n]] [nom[=valeur]]... |
positionner un type à un variable |
Options -L -R -i -l -r -u -x |
Justification à gauche (n est la longueur du champ) Justification à droite (n est la longueur du champ) Définition d'une variable de type entier (Idem alias intégré "integer") Conversion MAJUSCULES en minuscules Variable non modifiable Conversion minuscules en MAJUSCULES Mise dans l'environnement automatique |
unalias nom... |
Suppression d'alias |
|
unset [-f] nom... |
Suppression de variable ou de fonction [-f] |
whence [-pv] nom... |
Type de commande |
-p -v |
Recherche du chemin Rapport plus détaillé |
Commentaires Forum fermé