Introduction au système d'exploitation Unix -- mise à jour du 10 octobre 1998

[ Table ]

Chapitre 5. Interpréteur de commandes « shell »


5.1 Ligne de commande « command line »
5.1.1 Corriger les fautes de frappe
5.1.2 Caractères spéciaux
5.2 Variables d'environnement
5.3 Variables locales
5.4 « alias »
5.5 Fichiers de configuration
5.6 Fichiers scripts
5.7 Sortie standard (« standard output ») et entrée standard (« standard input »)
5.7.1 Redirection de la sortie standard et de l'entrée standard
5.8 Tubes (« pipes »)

5. Interpréteur de commandes « shell"

Ce chapitre présente un programme très important pour l'utilisation de Unix, l'interpréteur de commandes. Ce programme possède une grande fonctionnalité qui est abordée tout au long du chapitre.

L'interface entre l'usager et le système d'exploitation se fait habituellement à l'aide de l'interpréteur de commandes « shell ». L'interpréteur de commandes s'occupe, entre autres, de faire les demandes de service (appels système) au système d'exploitation pour l'usager. Pour Unix, c'est un programme comme les autres dont le code exécutable est situé dans un fichier. Le nom de ce fichier est aussi (habituellement) le nom de l'interpréteur de commandes.

Plusieurs « shell » existent aujourd'hui et les plus connus sont sh (« Bourne shell ») et sa version améliorée bash (« Bourne again shell »), csh (« C shell »), tcsh (« Tenex C shell »), ainsi que ksh (« korn shell »). Ce manuel donnera l'équivalence (lorsqu'il y aura une différence) des particularités pour bash, tcsh et ksh dans les notions couvertes.

Le « shell » de l'usager qui est lancé par défaut (« login shell ») est celui qui est écrit dans le dernier champ du fichier /etc/passwd. C'est lui que l'on retrouve lorsqu'on ouvre une session de travail. Puisque c'est un prgramme comme les autres, l'usager peut exécuter un autre shell en donnant le nom de celui-ci sur la ligne de commande.

5.1 Ligne de commande « command line »

La ligne de commande est ce qui est envoyé à l'interpréteur de commandes en réponse à la touche ENTER. Cette ligne est composée du nom de la commande qui peut être le nom d'un fichier exécutable ou une commande du « shell » (« shell built-in command »), et d'arguments, s'il y a lieu. La syntaxe est la suivante:

command [argument1] [argument2] [argument3]...[argumentN] ENTER

Les crochets indiquent que les arguments sont optionnels.[1]

Ici donc, les crochets représentent des éléments facultatifs (des programmes exécutables ou des commandes pourraient exiger certains arguments). La commande et ses arguments sont séparés entre eux par une ou plusieurs espaces ou tabulations.

Par exemple, la ligne de commande « ls -l pfe/ » (sans les guillemets) contient une commande et deux arguments. Un argument qui commence par le caractère « - » est appelé une option (par convention). Une option est souvent utile pour contôler le comportement ou l'action d'un programme.

Un invite de commande « prompt » signale à l'usager que le « shell » est prêt à recevoir la prochaine commande. L'invite de commande est modifiable de plusieurs façons, ce qui permet à l'usager de le rendre conforme à ses goûts personnels. Dans l'exemple du chapitre « Comptes et accès », l'invite de commande était:

psycho[5:16pm]: ~ >

Dans ce « prompt », il y a le nom de l'ordinateur, l'heure entre crochets, le caractère « : », le répertoire de travail courant (le symbole « ~ » représente le répertoire privé de l'usager) et enfin le caractère « > » qui sert de séparateur visuel (c'est également le cas pour les crochets et le caractère « : »). La ligne de commande débute à la fin du « prompt » (après le « > » dans notre cas) et se termine avec le caractère de retour de chariot c.-à-d. ENTER.

5.1.1 Corriger les fautes de frappe

Selon la configuration du terminal utilisé, les touches servant à corriger la ligne de commande peuvent varier. L'usager peut voir ou changer cette configuration avec la commande « stty » (voir plus loin la section « Commandes de bases »). Voici la liste des touches d'édition de la ligne de commande souvent utilisées par défaut.

CTRL-h ou DELETE ou BACKSPACE : effacer le dernier caractère.
CTRL-w : effacer le dernier mot (série de caractères sans espaces).
CRTL-u : effacer le ligne au complet.
CTRL-f : avancer le curseur sur la ligne de commande.
CTRL-b : reculer le curseur sur la ligne de commande.

5.1.2 Caractères spéciaux

Les caractères suivants ont une signification particulière pour l'interpréteur de commandes. Pour cela, ils ne devraient pas être utilisés dans le nom d'un fichier, par exemple, à moins que l'utilisateur ne soit pleinement conscient de ce qu'il fait. Ces caractères servent à générer des noms de fichiers ou de répertoires qui sont présents dans le répertoire de travail ou dans celui désigné. L'interpréteur est responsable de la substitution de ces caractères avant d'envoyer la ligne de commande au système d'exploitation. Ces caractères permettent à l'usager de référencer rapidement un groupe de fichiers sans avoir à les entrer, un après l'autre, au clavier. Ils permettent aussi de référencer des fichiers sans avoir à se souvenir de l'épellation exacte.

Pour les caractères spéciaux qui sont introduis par la suite, veillez considérer les fichiers suivants qui se trouvent dans un répertoire quelconque:

memo
memo2.frank
monmemo
memo1
memo.heidi
tonmemo
memo.pat
memoBRAX
sonmemo
memoa
miamemo
mem
memos
.mem
.m

Le caractère « ? »
L'interpréteur de commande remplace ce symbole par exactement un caractère sauf le caractère « . » (point) s'il est situé au début du nom (fichier invisible).

Dans le répertoire ci-haut la chaîne de caractères « memo? » serait remplacée uniquement par:

memo1 memoa memos

La chaîne de caractères « memo?RAX » serait remplacée uniquement par:

memoBRAX

La chaîne de caractères « memo?frank » serait remplacée uniquement par:

memo.frank

La chaîne de caractères « ?m » ne serait remplacée par aucun nom de fichier.

La chaîne de caractères (ne pas faire, danger) « .? » serait remplacée par:

.m mais aussi par .. qui pointe vers le répertoire précédent. Donc cette chaîne n'est pas conseillée parce qu'elle pourrait avoir des conséquences graves surtout si vous êtes propriétaire du répertoire précédent. L'auteur donne plus loin une manière de référencer les fichiers invisibles sans problèmes.

Le caractère « * »
L'interpréteur de commande remplace ce symbole par aucun, un ou plusieurs caractères. Comme dans le cas de « ? », il ne le remplace pas le caractère « . » (point) s'il est situé au début d'un nom de fichier (fichier invisible). Dans notre exemple, le caractère « * » serait remplacée par tous les fichiers du répertoire sauf les fichiers « .m » et « .memo ».

La chaîne de caractères « memo* » serait remplacée par tous les fichiers dont le nom commencent exactement par "memo", y compris le fichier « memo ».

La chaîne de caractères « memo??* » serait remplacée uniquement par:

memo.pat memo2.frank memoBRAX memo.heidi

Cette chaîne ne référence pas les fichiers qui ont moins de deux caractères après la chaîne « memo ».
La chaîne de caractères « mia* » serait remplacée uniquement par:

miamemo

Les caractères « [ ] »
Ce symbole est plus restrictif que « ? » car il demande à l'interpréteur de le remplacer par exactement un seul des caractères spécifiés entres les crochets.

La chaîne de caractères « memo[12.]* » serait remplacée uniquement par:

memo1 memo2.frank memo.pat memo.heidi

La chaîne de caractères « memo[1-9]* » ([1-9] signifit de 1 jusqu'à 9 inclusivement) serait remplacée uniquement par:

memo1 memo2.frank

La chaîne de caractères « memo[a-zA-Z]* » serait remplacée uniquement par:

memoa memos memoBRAX

La chaîne de caractères « [a-z]onmemo » serait remplacée uniquement par:

monmemo tonmemo sonmemo

La chaîne de caractères « .[a-z]* » (ATTENTION, ne pas inclure « . » dans l'ensemble) serait remplacée uniquement par:

.m .memo

À ce point, le lecteur est prêt à comprendre la manière de référencer tous les fichiers d'un répertoire sauf « . » et « .. ». Pour cela, il faut utiliser l'une ou l'autre des combinaisons de deux chaînes de caractères suivantes:

.[!.]*
.[^.]*
(bash et ksh)
(bash et tcsh)

L'usager doit utiliser la bonne chaîne de caractères selon l'interpréteur qu'il utilise sinon des comportements non-désirés pourraient se produire. La première chaîne élimine « . » et « .. » mais ne référence pas des fichiers comme « ..fichier ». La deuxième chaîne référence tous les fichiers dont le nom ne commence pas un « . » (point). L'usager qui n'a pas le choix et qui a des fichiers qui commencent par deux points consécutifs, peut remplacer la première chaîne de caractères par « .??* » à condition de ne pas avoir de fichiers comme « .f » ou « .1 ».

Le caractère « \ »
Ce caractère indique à l'interpréteur de commande ne pas interpréter le prochain caractère comme un caractère spécial. Ceci est pratique quand on doit envoyer un des caractères spéciaux à un programme. Évidemment, avant d'envoyer la ligne de commande au système d'exploitation, le « shell » éliminera ce caractère. Par exemple,

la chaîne
\*
\[
\|
\<
\?memo\*
sera interprétée comme
*
[
|
<
?memo*

Le caractère « " »
Ce caractère a la même fonction que le caractère \. La seule différence est que ce double apostrophe doit être utilisé par paire et qu'il peut être utilisé pour une chaîne de caractères de longueur variable. Donc,

la chaîne
"?"
"&"
"fichier?*test"
"drole[m]ent"
sera interprétée comme
?
&
fichier?*test
drole[m]ent

Le caractère « ; »
Ce caractère permet de séparer des lignes de commande que l'on veut envoyer en même temps à l'interpréteur de commande. La syntaxe est:

commande1 [arguements1] ; commande2 [arguments2] ;...

Le caractère « > »
Redirige la sortie standard d'un programme dans un fichier (voir plus loin la section « Redirection ») au lieu de l'écran.

Le caractère « < »
Redirige l'entrée standard d'un programme à partir d'un fichier (voir plus loin la section « Redirection ») au lieu du clavier.

Les caractères « >> »
Redirigent la sortie standard d'un programme dans un fichier (voir plus loin la section « Redirection ») au lieu de l'écran. Cependant, cette fois-ci le fichier sera augmenté des données (concaténation) sortant du programme au lieu d'être écrasé (s'il existe).

Le caractère « | »
C'est le symbole du tube (« pipe ») qui sera vu dans la section « tube ».

Le caractère « & »
Ce caractère indique à l'interpréteur de faire l'exécution de la commande qui précède en arrière-plan (« background »). Ce concept sera abordé dans le chapitre « Processus et contrôle ».

Le caractère « $ »
Ce caractère indique à l'interpréteur que le mot qui suit est le nom d'une variable d'environnement et qu'il faut utiliser son contenu (voir l'exemple de la commande « echo » dans la section « commandes de base »).

Le caractère « ~ »
Ce caractère référence un répertoire privé quelconque. Lorsqu'il est suivit d'une espace ou du caractère "/", il signifit le répertoire privé de l'usager courant. S'il est suivant d'autres caractères imprimables, il référence le répertoire privé d'un autre usager. Par exemple,« ~heidi » signifie le répertoire privé de l'usager heidi.

5.2 Variables d'environnement

Une liste de variables qui sont dites d'environnement sont gérées par l'interpréteur de commandes. Ces variables peuvent être lues par d'autres programmes exécutées par l'usager ou utilisées par le « shell » lui-même. Ces variables peuvent être utiles pour changer certaines valeurs par défaut ou modifier le comportement d'un programme sans avoir à spécifier la même option à chaque fois, etc.

Par exemple, supposons que l'usager veut lire les bases de messages (« news », voir le chapitre « Usenet ») situées sur le serveur STEP dont l'adresse est « step.polymtl.ca ». L'usager utilise le programme « rtin » (rtin n'est pas l'unique programme pour lire les bases de messages) pour accéder à ces messages. Par défaut, le programme en question accède au « news » du serveur dont le nom est écrit dans le fichier /etc/nntpserver à moins qu'une autre adresse ne soit spécifiée par le biais de la variable d'environnement NNTPSERVER. Donc, avant de donner la commande « rtin » à l'interpréteur de commandes, il entrera au clavier la commande (selon le « shell » utilisé):

setenv NNTPSERVER step.polymtl.ca (tcsh)
ou
export NNTPSERVER=step.polymtl.ca (bash et ksh)
Remarquez l'absence d'espaces sur les côtés du caractère « = ».

Ensuite, il pourra entrer la commande « rtin » pour lire les bases de messages du serveur STEP. La syntaxe générale des commandes pour modifier les variables d'environnement est:

setenv nom_de_la_variable valeur (tcsh)
ou
export nom_de_la_variable=valeur (bash et ksh)
Pour effacer une variable les commandes sont:

unsetenv nom_de_la_variable (tcsh)
ou
unset nom_de_la_variable (bash et ksh)
Les variables d'environnement demeurent actives pour toute le dureé d'une session de travail. Par défaut, certaines variables d'environnement sont initialisées pour l'utilisateur à l'ouverture d'une session. Pour voir le contenu et le nom de ces variables on peut faire les commandes:

setenv (tcsh)
ou
printenv (ksh, tcsh)
ou
env (tous les « shells », utilitaire)
Voici une courte liste de variables d'environnement populaires sous Unix.

PATH
Identifie la liste des répertoires à chercher, en ordre, pour trouver le fichier exécutable donné sur la ligne de commande. Ces répertoires sont examinés un à la suite de l'autre et la recherche se termine lorsque le fichier est trouvé ou que la liste des répertoires contenue dans la variable est terminée. La seule exception est quand la commande en question est une commande spéciale de l'interpréteur (« shell built-in command »). À ce moment, le contenu de la variable PATH n'est évidemment pas examiné.

MANPATH
Liste des répertoires de recherche pour l'utilitaire « man ». Ce programme sera examiné dans le chapitre « comment obtenir de l'aide ».

SHELL
Son contenu indique l'interpréteur de commande présentement utilisé.

HOME
Nom du répertoire privé de l'usager.

MAIL
Nom du fichier avec son chemin dans lequel le courrier de l'usager est placé.

TERM
Type du terminal. La liste des terminaux supportés par le système et leurs possibilités se retrouve dans le fichier /etc/termcap.

OSTYPE
Nom du système d'exploitation qui roule sur l'ordinateur.

USER
Nom du détenteur du compte associé à la présente session.

HOST
Nom de l'ordinateur sur lequel les commandes sont exécutées.

PWD
Chemin du réperoitre de travail courant réel (sans liens symboliques).

Le nom des variables d'environnement et leur contenu ne sont pas réglementés par Unix. Un usager peut écrire un programme qui utilise la variable MA_VARIABLE_A_MOI dont le contenu n'est pas important au point de vue de l'interpréteur de commande. Ceci veut aussi dire que l'usager ne sera pas averti par un message d'erreur s'il fait une faute de frappe quand il veut changer le contenu d'une variable. La nouvelle variable sera créée mais n'aura sans doute aucune signification (à moins d'un hasard) pour les programmes qui seront utilisés par la suite.

5.3 Variables locales

L'interpréteur de commande possède des variables locales qui gèrent certaines de ses fonctions (ou comportement) ou qui contiennent certains renseignements utiles. Ces variables ne sont pas accessibles par d'autres programmes car elles sont locales à l'interpréteur. Ces variables sont spécifiques à l'interpréteur utilisé et ne seront pas élaborées dans ce manuel. Pour voir le nom et le contenu des variables locales, il faut donner la commande « set ». Pour en savoir plus sur les variables locales, l'utilisateur peut examiner diverses documentations comme les « man pages » (voir le chapitre « Comment obtenir de l'aide ») concernant le « shell » qu'il utilise. En ce qui concerne bash et ksh, les variables d'environnement sont des variables locales qui sont exportées avec la commande « export ». Ceci revient à dire que toutes leurs variables d'environnement sont aussi des variables locales mais que le contraire n'est pas vrai. Pour créer des variables sous bash et ksh qui demeureront locales, la commande est:

nom=valeur (bash et ksh) Par la suite, cette variable peut être exportée avec la commande:
export nom (bash et ksh) En ce qui concerne tcsh, la commande pour créer des variables locales est:
set nom=valeur (tcsh)
Pour effacer des variables locales, la commande est:
unset nom (pour tous les « shells »)

5.4 « alias »

Tous les interpréteurs (sauf sh) possèdent cette commande qui permet la substitution d'une chaîne de caractères par une autre. Cette commande est pratique pour éviter l'écriture de longues commandes qui incluent plusieurs arguments ou si l'usager veut toujours utiliser une option particulière sans avoir à la spécifier à chaque fois. La commande « alias », sans argument, permet de voir ceux qui sont déjà créés (certains le sont par défaut). Pour créer des alias, les syntaxes sont:

alias chaine1 chaine2 (tcsh)
alias chaine1=chaine2 (bash et ksh)
Remarquer l'absence d'espaces sur les côtés du caractère « = ».

Ensuite il suffit d'entrer le première chaîne de caractères (sur la ligne de commande, par exemple) et l'interpréteur de commandes la susbtituera par la deuxième. La commande pour enlever des alias créés auparavant est « unalias » qui prend en argument la chaîne de caractères impliquée (chaine1 dans l'exemple de syntaxe précédente). Cependant, pour indiquer à l'interpréteur de ne pas faire la substitution de la chaîne de caractères, il suffit de placer le caractère « \ » devant le nom (\chaîne1 dans la syntaxe précédente).

5.5 Fichiers de configuration

Des fichiers de configuration existent pour tous les « shells ». Ces fichiers permettent de les configurer automatiquement au début d'une session de travail (ou au lancement d'un nouveau « shell » à partir de la ligne de commande) sans répétition de plusieurs commandes afin de rendre le « shell » conforme aux goûts de l'usager. Ces fichiers doivent se trouver dans le répertoire privé du détenteur du compte. Il y a aussi des fichiers de configuration globaux qui sont référencés par les « shells », et ce, peu importe les fichiers de configuration personnels des usagers. Les noms de ces fichiers sont:

bash
au démarrage (dans cette ordre):
/etc/profile (lors de l'ouverture de la session -- global)
.bash_profile (lors de l'ouverture de la session
.profile (lors de l'ouverture de la session, si aucun .bash_profile n'est présent)
.bashrc (ou pour les « shells » non-interactifs sauf celui par défaut)
.bash_login (selon la version)
$ENV (toujours)
à la fin:
.bash_logout (si c'était le « shell » par défaut)
tcsh
au démarrage (dans cette ordre):
/etc/csh.cshrc (toujours global)
/etc/csh.login (lors de l'ouverture de la session -- global)
.tcshrc (toujours)
.cshrc (s'il n'y a pas de .tcshrc)
.login (lors de l'ouverture de la session)
à la fin:
.logout (si c'était le « shell » par défaut)

ksh
au démarrage (dans cette ordre):
/etc/profile (lors de l'ouverture de la session -- global)
.profile (lors de l'ouverture de la session)
$ENV (toujours, à moins d'utiliser l'option « -p »)
à la fin:
Toute commande ou fichier spécifié par la commande: trap « commande » 0
$ENV veut dire le contenu de cette variable. Le contenu doit être le nom d'un fichier.

Voici un exemple de fichier de configuration personnel:

##################### fichier --->>>> .tcshrc ############################
#### variables locales
set autolist
set history=30
set savehist = 30
if ($?prompt) then
set prompt="%n%U[%@]%u:%B %~>%b"
endif

#### variables d'environnement
setenv PATH /usr/local/bin:/bin:/usr/bin:/usr/X11/bin:/usr/openwin/bin:. setenv NNTPSERVER 132.207.4.15
setenv LESSCHARSET latin1

#### commandes
umask 077 # mask de permissions sur les fichiers créés source .config # a condition que le fichier  ».config » existe date >> login.log

#### aliases
alias ls ls-F
alias h history
alias vt setenv TERM vt100
alias dir ls -al
alias .. 'cd ..'
alias step 'rlogin -l laforge step.polymtl.ca'
###################### fin du fichier .tcshrc ###########################

Si l'usager fait des modifications dans un fichier de configuration, il doit exécuter la commande « source » pour que le « shell » puisse les prendre en considération immédiatement. Cette commande prend comme argument le nom du fichier de configuration. La syntaxe est la suivante:

source fichier_de_config (bash, tcsh et ksh [2])

Exemples.
source .tcshrc (tcsh)
source .bash_profile (bash)
source .profile (ksh)
5.6 Fichiers scripts

Un fichier script est un fichier qui contient des commandes qui sont exécutées par le « shell »[3]. Ces commandes peuvent être les mêmes que celles qu'on entre à la ligne de commande. En plus, ces fichiers contiennent souvent des instructions de contrôle comme les boucles, les instructions conditionnelles, etc. La syntaxe utilisée par ces instructions dépend du « shell » utilisé et c'est pourquoi le manuel ne donnera pas la théorie à ce sujet. Les fichiers de configuration sont aussi des fichiers scripts. On peut également entrer des instructions de contrôle sur la ligne de commande. À titre d'exemple, voici un fichier script quelconque.

Script...
Figure 5.1 Fichier script quelconque.

Dans le fichier de la figure 5.1, on peut voir sur la première ligne le symbole « #! ». Ce symbole indique à l'interpréteur de commandes que le programme qui suit sur la même ligne doit être utilisé pour effectuer les commandes qui sont écrites dans le reste du fichier. Le programme en question n'est pas toujours un «shell». On peut utiliser tout logiciel qui comprend les commandes qui suivent dans le fichier.

5.7 Sortie standard (« standard output ») et entrée standard (« standard input »)

La sortie standard d'un programme ou d'un utilitaire est l'endroit où les informations sont envoyées. Un programme en exécution qui envoie des chaînes de caractères à sa sortie standard, n'a aucune idée de la destination réelle. La destination peut être l'écran du terminal (par défaut) où redirigée dans un fichier quelconque. Dans la même optique, l'entrée standard est la provenance des informations qui peut être le clavier du terminal (par défault) ou un fichier.

5.7.1 Redirection de la sortie standard et de l'entrée standard

Le symbole « > » indique à l'interpréteur de rédiriger la sortie standard d'un programme vers un fichier. La syntaxe est la suivante:

programme [arguments] > fichier

Si le fichier n'existe pas, il sera créé. S'il existe, l'ancien contenu sera détruit.

Le symbole « >> » permet aussi de rediriger la sortie standard dans un fichier mais sans que celui-ci ne soit écrasé, s'il existe. Les informations envoyées seront tout simplement ajoutées au contenu actuel du fichier.

Le symbole « < » indique à l'interpréteur de lire l'entrée standard d'un programme à partir d'un fichier. La syntaxe est la suivante:

programme [arguments] < fichier

Exemple.

laforge[3:52pm]: ~>cat exemple
bonjour
122
voiture
avion
Dormir pour toujours
laforge[3:52pm]: ~>sort -r exemple > temp
laforge[3:52pm]: ~>cat temp
voiture
bonjour
avion
Dormir pour toujours
122
laforge[3:52pm]: ~>cat exemple >> temp
laforge[3:52pm]: ~>cat temp
voiture
bonjour
avion
Dormir pour toujours
122
bonjour
122
voiture
avion
Dormir pour toujours
laforge[3:52pm]: ~>mail heidi < temp
laforge[3:52pm]: ~> _
Les commandes utilisées dans l'exemple sont expliquées dans le chapitre « Commmandes de base ». La denière commande envoie le contenu du fichier temp à heidi par courrier électronique.

5.8 Tubes (« pipes »)

Le symbole « | » représente un tube (« pipe »). Un tube indique à l'interpréteur de rédiriger la sortie standard d'un programme directement à l'entré standard d'un autre. La syntaxe est la suivante:

programme_a [arguments] | programme_b [arguments]

Cette ligne de commande a le même effet que les trois suivantes:

programme_a [arguments] > fichier_temporaire
programme_b [arguments] < fichier_temporaire
rm fichier_temporaire

La ligne de commande peut contenir plusieurs tubes dont la sortie standard est redirigée vers l'entrée standard du programme suivant. Un programme situé entre deux tubes est appelé un filtre. La manière d'utiliser une cascade de tubes est la suivante:

prog1 [arg1] | prog2 [arg2] | prog3 [arg3] |...| progN [argN]

Dans ce cas, les programmes prog2 à progN-1 sont appelés des filtres puisqu'ils modifient les données qui leur sont envoyées du programme précedent, avant de les transmettre au prochain.

Il est à noter que les tubes peuvent être utilisés en combinaison avec des redirections de sorties ou d'entrées standards.

Exemples.

cat fichier_exemple | sort -r | lpr
ls -lR |awk ´{print $5,$9}´|sort -nr (à essayer!)
ps -aux | grep heidi
programme [arguments] | more
Le dernier exemple est très pratique pour contrôler le défilement trop rapide des informations envoyées à l'écran par un programme quelconque.

Chapitre 5. Interpréteur de commandes « shell »

[ Table | Début de page ]

[1] Ceci dépend de la commande effectuée.
[2] Avec certaines versions de ksh, la commande « source » doit être remplacé par « .  » (un point).
[3] Ou un autre programme.