UNIX

Les Principales commandes du système

Les commandes décrites ci-après sont sous leur forme SYSTEM V

et peuvent présenter quelques différences quant à leurs options, dans d'autres versions.


 

cal [[mois] année]

imprime le calendrier pour l'année (éventuellement uniquement le mois demandé).

L'année doit être comprise entre 1 et 9999 et le mois être un entier compris entre 1 et 12.

date

donne la date et l'heure. C'est également par l'intermédiaire de cette même commande que le super-utilisateur peut modifier la date courante du système.

du [option] <ficcat> ..

donne le nombre de blocs utilisés par chaque fichier ou catalogue indiqué (dans le cas de catalogues, le travail est fait de façon récursive pour leur contenu). Si aucun paramètre n'est fourni, le catalogue de travail (.) est traité. Les blocs sont en général de longueur 512 ou 1024 caractères.

Options:-s : seul le nombre total est donné;

-a : l'information est fournie pour tout fichier ou catalogue (sans cette option, seules les informations concernant les catalogues le sont).

df [<disque-logique> ..]

donne les nombres de blocs et de i-nodes libres pour les différents disques logiques montés. Les disques logiques peuvent être nommés soit par leur référence de fichier spécial, soit par le nom sous lequel ils sont montés.

echo [arg]

écrit sur la sortie standard ses arguments séparés par des espaces. L'impression se termine par <newline> sauf si la chaîne des arguments contient le caractère \c. La commande echo est interne au C-Shell.

file [-f] <fichier> ..

Par une série de tests sur le contenu du fichier ou les informations du i-noeud de ce fichier (ASCII, binaire...). L'option -f indique que le premier argument contient la liste des fichiers dont on veut déterminer le type.

id

donne le numéro de compte et le nom de l'utilisateur (uid=...) ainis que son numéro de groupe (gid=...).

logname

donne l'identification de l'utilisateur (valeur de la variable LOGNAME).

newgrp <groupe>

permet de changer de groupe en cours de session.

ps [options]

donne des informations sur les processus actifs sur le système. Sans option, donne des informations sur les processus dont l'utilisateur est le propriétaire.

Options :-e : informations sur tous les processus;

-a : informations seulement sur les processus attachés à un terminal;

-f : liste complète de toutes les informations;

-l : liste longue des informations;

-t <liste de terminaux> : informations concernant les processus attaché à une liste de terminaux ; les numéros des terminaux dans la liste sont séparés par des virgules comme dans l'exemple suivant : ps - t5,7,10.

Les informations qui sont obtenues sont les suivantes suivant les options employées

(énumérées entre parenthèses) :

* (1) F: indicateurs précisant si le processus est :

- processus en mémoire centrale (01);

- processus système (02);

- processus "cloué" en mémoire;

- processus en cours d'entrée-sortie (04);

- processus "swappé" (10);

- processus tracé par un autre (20);

* (1) S: état du processus

0 : non existant;

S : en sommeil (sleep);

W : en attente d'événements (wait);

R : en cours d'exécution;

Z : terminé;

T : arrêté;

* (f,1) UID : numéro du propriétaire du processus.

* (toutes) PID : numéro du processus (nécessaire pour tuer un processus).

* (f,1) PPID : numéro du processus père.

* (f) STIME : heure de lancement du processus.

* (l) PRI : priorité du processus (plus le nombre est grand, plus la priorité est faible).

* (l) ADDR : adresse en mémoire si le processus y est résident, ou bien adresse de swap sur disque.

* (l) SZ : nombre de blocs de l'image mémoire du processus.

* (l) WCHAN : événement attendu par le processus dans le cas où son état est S ou W, ou bien <espace>.

* (toutes) TTY : numéro du terminal d'attachement.

* (toutes) TIME : temps d'exécution cumulé.

* (l) CMD : nom de la commande exécutée.

pwd

donne la référence absolue du catalogue de travail (interne au B. Shell).

stty [-a] [-g] [options] ou STTY...

sans argument, la commande donne la valeur des principaux paramètres (tous si option -a) de la ligne associée à l'entrée standard. L'option -g entraîne l'impression sous une forme utilisable comme données de stty (c'est-à-dire pour modifier l'état de la ligne).

Les modes de contrôle sont :

* parenb (-parenb) autorise (supprime) le contrôle de parité;

* parodd (-parodd) parité impaire (paire);

* 50 ... 9600 extra extb : sélection de vitesse;

* cstopb (-cstopb) utilise 1 (2) bit(s) stop par caractère.

Les modes d'entrée sont :

* ignbrk (-ignbrk) le break est ignoré (ne l'est pas);

* ignpar (-ignpar) les erreurs de parité sont ignorées (ne le sont pas);

* istrip (-istrip) compacte (ne compacte pas) sur 7 bits les caractères entrés;

* inlcr (-inlcr) le caractère <newline> est interprété comme <return> (ne l'est pas);

* icrnl (-icrnl) le caractère <return> est interprété comme <newline> (ne l'est pas);

* iuclc (-iuclc) les majuscules sont interprétées comme minuscules (ne le sont pas);

* ixon (-ixon) permet le contrôle de sortie par le caractère DC3 (<CTRL S>);

* ixany (-ixany) tout caractère (seulement DC1 c'est-à-dire <CTRL Q> relance le défilement;

* ixoff (-ixoff) le système envoie (ou pas) les caractères START/STOP précédents suivant l'état des buffers.

Les modes de sortie sont :

* olcuc (-olcuc) identifie (ou non) les minuscules aux majuscules en sortie;

* onlcr (-onlcr) interprète (ou non) <newline> comme la suite <return> <newline>;

* ocrnl (-ocrnl) interprète (ou non) <return> comme <newline>;

* onocr (-onocr) les <return> en tête de ligne sont ignorés;

* onlret (-onlret) sur le terminal <newline> est interprété (ou non) comme <return>;

su [-] [<identification>]

modifie, jusqu'au premier <CTRL D> le propriétaire effectif du processus shell appelant ; par défaut l'identification est root. L'option - entraîne l'exécution du fichier .profile de l'utilisateur dont l'identification est donnée.

tabs [<spécification>]

positionne les tabulations (sauts successifs du caractère <tab>). Si aucune spécification n'est donnée, par défaut il s'agit de 8 (tabulations standard de UNIX).

La première est la colonne 1. Les différentes spécifications prédéfinies possibles sont les suivantes (on donne les numéros de colonnes successifs) :

-a : 1 10 16 36 72 (assembleur IBM 370)

-a2 : 1 10 16 40 72 (assembleur IBM 370)

-c : 1 8 12 16 20 55 (COBOL)

-c2 : 1 6 10 14 49 (COBOL)

-c3 : 1 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62 67 (COBOL)

-f : 1 7 11 15 19 23 (FORTRAN)

-p : 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 (PL/1)

-s : 1 10 55 (SNOBOL)

-u : 1 12 20 44 (assembleur UNIVAC 1100)

Un utilisateur peut en plus de ces spécifications définir les siennes sous la forme d'une liste de nombres croissants séparés par des virgules (au plus 40 nombres).

test <exp> ou [<exp>]

l'expression est évaluée et si sa valeur est vraie, le code de retour de la commande est nul (exit status 0).

Cette commande est particulièrement utile dans les programmes Shell pour réaliser des tests.

Les primitives pour la construction des instructions sont :

-r <fichier> : vrai si fichier existe et peut être lu par le propriétaire du processus;

-w <fichier> : vrai si le fichier existe et peut être modifié;

-x <fichier> : vrai si le fichier peut être exécuté;

-f <fichier> : vrai si le fichier existe et est un fichier ordinaire;

-d <fichier> : vrai si le fichier existe et est un catalogue;

-c <fichier> : vrai si le fichier existe et est un fichier spécial de type caractère;

-b <fichier> : vrai si le fichier existe et est un fichier spécial de type bloc;

-s <fichier> : vrai si le fichier existe et est de taille non nulle;

-z <chaine> : vrai si le fichier est de longueur non nulle;

-n <chaine> : vrai si la chaîne est de longueur non nulle;

<chaine 1> = <chaine 2> : vrai si les deux chaines sont égales;

<chaîne> : vrai si la chaîne est non vide;

<nombre 1> -eq <nombre 2> : vrai si les deux nombres sont égaux

(autres prédicats possibles : -ne -gt -ge -lt -le).

Ces expressions peuvent être composées au moyen des connecteurs :

! pour la négation,

-a pour la conjonction,

-o pour la disjonction,

et les parenthèses ( et ).

tty

donne le nom complet du terminal associé à l'entrée standard (éventuellement Not a tty). La valeur de retour est 0 si l'entrée standard est associée à un terminal et 1 sinon.

who

donne la liste des utilisateurs connectés au système.

basename <chaîne> [<suffixe>]

supprime le plus long préfixe de la chaine se terminant par / et le suffixe s'il se trouve à la fin de la chaîne.

cat [-s] <fichier> ...

lit les fichiers référencés et imprime leur contenu sur la sortie standard. L'option -s supprime le message "not found" si un fichier n'existe pas.

chgrp <groupe> <fichier> ..

change le nom du groupe auquel les protections du niveau du groupe ou des fichiers s'appliquent.

chmod <mode> <ficcat> ...

modifie les bits de protection des fichiers.

Les modes peuvent être absolus et sont alors obtenus par combinaison des nombres octaux suivants:

4000 positionne le "set-uid" bit;

2000 positionne le "set-gid" bit;

1000 positionne le "sticky" bit;

0400 lisible par les membres du groupe propriétaire;

0040 lisible par les autres utilisateurs;

0200 modifiable par le propriétaire;

0020 modifiable par le groupe propriétaire;

0002 modifiable par les autres utilisateurs;

0100 exécutable par le propriétaire;

0010 exécutable par le groupe;

0001 exécutable par les autres utilisateurs;

Les modes peuvent être symboliques et ils ont alors la forme :

[<qui>] <permission> <opération> où :

<qui> est une combinaison des lettres

u pour le propriétaire,

g pour le groupe,

o pour les autres,

a pour tous;

<permission> est

+ pour autoriser,

- pour interdire,

= imposer certines permissions et supprimer les autres;

<opération> est une combinaison des lettres

r pour lire,

w pour écrire,

x pour exécuter,

s pour le "set-uid" bit (associé ou le "set-gid" bit (associé à g),

t pour le "sticky" bit.

chowm <nom> <ficcat> ..

permet de rendre l'utilisateur d'identification <nom> propriétaire des différents fichiers énumérés.

cmp [options] <fichier 1> <fichier 2>

Les deux fichiers sont comparés : s'ils sont différents, le numéro de la première

ligne contenant une différence est affiché ainsi que le numéro (dans le fichier) du

caractère différent ; si l'un des deux fichiers est le début de l'autre un message le

signale.

Options :-l : toutes les différences sont signalées par le numéro du caractère en décimal et sa valeur octale;

-s : aucune impression ; dans ce cas la commande est utilisée pour obtenir un code de retour testable avec la convention suivante :

0 : fichiers identiques,

1 : fichiers différents,

2 : en cas d'erreur (fichier inexistant par exemple).

cp <fichier-source> <ficcat-cible>

si <ficcat-cible> n'est pas une référence de fichier existante, un nouveau noeud est créé avec ce nom comme premier lien et comme contenu une copie de celui du fichier de référence <fichier-source>. Si ficcat est une référence existante de fichier ordinaire le contenu du fichier correspondant est écrasé et si ficcat est une référence de catalogue un noeud est créé (à moins qu'il n'existe déjà) ayant <fichier-source> comme référence dans le catalogue.

diff [options] <fichier 1> <fichier 2>

permet de comparer les contenus des deux fichiers. En utilisant l'option -e, on obtient un ensemble de commandes de l'éditeur ed qui, appliquées aux fichiers, permettent de les rendre identiques. L'option -b permet de ne considérer dans les fichiers que les caractères non séparateurs (donc différents de <espace> et <tab>).

dd [<option> <valeur> ...]

copie de fichiers après conversion du fichier d'origine. Les origine et cible par défaut sont les entrée et sortie standard. Cette commande permet en particulier de convertir des fichiers codés en EBCDIC par exemple en fichier codés en ASCII.

Options :if = <référence> : donne la référence du fichier origine;

of = <référence> : donne la référence du fichier cible;

ibs = <nombre> : donne la taille d'un bloc en entrée en nombre de caractères (défaut 512);

obs = <nombre> : taille d'un bloc en sortie (défaut 512);

cbs = <nombre> : taille du tampon de conversion;

conv = accii : conversion EBCDIC en ASCII;

conv = ebcdic : conversion ASCII et EBCDIC;

conv = lcase : conversion des majuscules en minuscules;

conv = ucase : conversion des minuscules en majuscules;

conv = swap : échange des paires de caractères successifs.

dirname <chaîne>

donne la référence du catalogue dans lequel est la référence du fichier désigné par <chaîne>.

find <catalogue> .. <expression>

permet de rechercher récursivement dans les différents catalogues les fichiers qui satisfont l'expression booléenne demandée écrite au moyen des primitives suivantes (n représente un nombre entier positif quelconque, +n -n et n signifient respectivement >n <n et =n) :

-name <nom> : vrai si le fichier a pour référence nom ; si on utilise des caractères spéciaux (* ?...), il faut entourer le nom de " (sinon expansion par le Shell).

-perm <nombre octal> : vrai si les permissions du fichier correspondent au nombre octal donné (voir la commande chmod pour la valeur de cet entier) ; si le nombre est négatif, seuls les bits de valeur 1 sont comparés.

- type <x> : vrai si le type du fichier est <x> avec les conventions :

b pour fichier spécial bloc;

c pour fichier spécial caractère;

d pour catalogue;

f pour fichier ordinaire;

p pour tube nommé (System III/V).

-links <n> : vrai si le fichier a <n> liens (donc le compteur des références du i-noeud vaut n);

-user <nom> : vrai si le propriétaire du fichier est nom;

-group <nom> : vrai si le groupe propriétaire du fichier est nom;

-size <nom> : vrai si le fichier contient n blocs (de taille 512 ou 1024 octets suivant les machines);

-atime <n> : vrai si le fichier a été consulté depuis <n> jours;

-mtime <n> : vrai si le fichier a été modifié depuis <n> jours;

-exec commande : vrai si la commande restitue une valeur de sortie nulle ; la fin de la commande doit être ponctuée par \; et le nom du fichier examiné est représenté par {};

-print : le nom du fichier doit être imprimé;

-newer <fichier> : vrai si le fichier a été modifié plus récemment que le fichier argument;

-inum <n> : vrai si le i-node du fichier a pour numéro <n>;

-\(expression\) : a pour valeur booléenne celle de l'expression parenthésée.

Toutes ces primitives peuvent être composées avec les opérateurs booléens : de négation ! de conjonction (concaténation des expressions) de disjonction -o les parenthèses \( et \)

grep [options] <expression> [<fichier> ..]

permet de sélectionner dans un fichier les lignes contenant un motif donné décrit par une expression de la forme des expressions rationnelles de l'éditeur ed. Sauf option contraire, chaque ligne ayant cette propriété est écrite sur la sortie standard. Il est recommandé d'entourer d'apostrophes les expressions contenant des caractères spéciaux du langage de commandes utilisé.

Options :-v : seules les lignes ne contenant pas le motif sont écrites;

-c : seul le nombre de lignes satisfaisantes est écrit;

-l : seuls les noms des fichiers contenant de "bonnes" lignes sont écrits;

-n : chaque ligne est précédée de son numéro dans le fichier qui la contient.

head [-n] <fichier>

donne les n premières lignes du fichier. La valeur par défaut est 10.

ln <fichier 1> <fichier 2>

créer un nouveau lien <fichier 2> du fichier de référence fichier 1 (il n'y a pas recopie du contenu du fichier, ni création d'un nouvel i-node mais simplement augmentation du compteur des références du fichier (c'est-à-dire ajout d'un couple (numéro, référence) dans un catalogue.

lp [-c] [-d <dest>] [-m] [-n <entier>] [-s] [-t <titre>] référence ...

lance une requête d'impression, sur l'imprimante commune, des fichiers référencés. La référence - désigne l'entrée standard. La commande renvoie sur la sortie standard l'entier par lequel la requête est identifiée par le démon gérant l'imprimante (la commande cancel <numéro de requête> annule la requête).

Les options sont :-c : copie préalable des fichiers;

-d <dest> : indication d'une imprimante particulière;

-m : demandeur avisé par courrier de l'impression;

-n <entier> : demande de <entier> exemplaires;

-s : pas de message sur la sortie standard;

-t <titre> sur la page de garde.

La commande lpstat donne des informations sur le spoule.

ls [options] <ficcat> ..

pour chaque catalogue, la commande donne la liste des fichiers (ou catalogues) qu'il contient ; pour chaque argument non catalogue (fichier ordinaire) le nom du fichier est imprimé. Par défaut, les noms sont imprimés alphabétiquement. Si aucun argument n'est fourni, le catalogue de travail (.) est traité.

Options :-l : format d'impression long donnant :

le mode du fichier (droits d'accès),

le nombre de liens,

le propriétaire,

le groupe,

la taille (en nombre d'octets) et la date de dernière modification.

Si le fichier est un fichier spécial, à la place de la taille on obtient les informations correspondant aux adresses physiques de la ressource. Le nombre total de blocs physiques occupés est imprimé.

L'option -l donne les protections du fichier avec dix caractères :

* Le premier indique s'il s'agit d'un catalogue (d), d'un fichier spécial caractère (c) ou bloc (b), d'un fichier ordinaire (-) ou enfin pour System III et System V d'un tube nommé (p).

* Les neuf caractères suivants constituent trois ensembles de trois caractères donnant respectivement les droits du propriétaire, des membres du groupe ou des autres pour les opérations de lecture (r si oui et - sinon), d'écriture (w ou -) et d'exécution (x ou -).

* Si l'information correspondant au bit d'exécution du propriétaire est s, le bit "set-uid" est positionné ; si celle correspondant à l'exécution pour le groupe est s, le "set-gid" bit est positionné; enfin, si l'information est t pour le bit d'exécution des autres utilisateurs, le "sticky" bit est positionné.

-o : identique à -l, mais sans impression du groupe;

-g : identique à -l, mais le nom du propriétaire n'est pas imprimé;

-t : impression avec tri dans l'ordre des modifications (la dernière en tête);

-a : tous les noms des fichiers sont imprimés, alors que par défaut les noms commençant par . ne le sont pas;

-d : si l'argument est un catalogue, seul son nom est imprimé;

-r : l'ordre d'impression est inversé (quel que soit le critère du tri);

-u : le tri est fait suivant les dates de consultation;

-i : pour chaque fichier, le numéro de i-noeud est imprimé.

mkdir <chaîne> ..

créé les catalogues dont les références sont données en arguments.

more [+<nombre>] [+/<motif>] <fichier> ..

permet d'afficher sur l'écran un fichier (long) page par page. Au bas de chaque page apparaît le message more suivi du pourcentage de fichier déjà lu. Pour afficher une ligne supplémentaire, il suffit de taper <return> et pour afficher une page supplémentaire <espace>.

Options :+<nombre> : l'affichage commence à la ligne de numéro donné;

+/<motif> : l'affichage commence deux lignes avant la première ligne contenant <motif> (au sens de ed, c'est-à-dire d'expression rationnelle).

Les commandes de more sont :

h : "appel au secours" (liste des commandes de more);

q ou Q : abandon de la commande more;

= : affichage du numéro de la ligne courante;

v : appel de l'éditeur vi avec positionnement sur la ligne courante;

<nombre><espace> : affichage du nombre demandé de lignes supplémentaires (un écran par défaut);

<nombre>z : même effet que la commande précédente, mais en plus le nombre donné devient la taille de la fenêtre (par défaut 22);

<nombre>d ou <nombre>D : "scroll" ; si le nombre est donné, sa valeur est la nouvelle valeur du "scroll" (par défaut le "scroll" a pour valeur 11);

<nombre>s : saut de <nombre> lignes et affichage d'une fenêtre;

<nombre>f : saut de <nombre fenêtres et impression d'une fenêtre;

<nombre>/motif : recherche de la n-ième occurence du dernier motif recherché;

' : retour au point où la dernière recherche a commencé;

!<commande> : exécution d'une commande Shell;<nombre> : n : passage au <nombre>-ième fichier suivant dans la liste le fichier courant (éventuellement il s'agit du dernier);

<nombre> : p : idem en remplaçant suivant par précédent;

: f : donne le nom du fichier courant et le numéro de la ligne courante;

. : répète la dernière commande de more.

mv <fichier 1> <fichier 2>

le lien <fichier 2> remplace le lien <fichier 1> (changement de nom ; le compteur des références reste identique). Si <fichier 1> désigne un catalogue, <fichier 2> doit avoir le même père.

od [-options] [<fichier>] [[ + ] <nombre> [.] [b]]

réalise le "dump" d'un fichier dans un ou plusieurs formats spécifiés par le premier argument. Par défaut, le "dump" est octal (option -o).

Options :-b : les octets sont interprétés en octal;

-c : les octets sont interprétés en ASCII;

-d : les mots sont interprétés en décimal (1 mot = 2 octets);

-o : les mots sont interprétés en octal;

-x : les mots sont interprétés en hexadécimal.

Le nom du fichier est celui du fichier à "dumper". S'il n'y en a pas, il s'agit de l'entrée standard. Le nombre optionnel donne, lorsqu'il existe, le numéro du caractère dans le fichier à partir duquel le "dump" commence ; ce nombre est exprimé en octal sauf s'il est suivi de ., auquel cas il est décimal; de plus, s'il est suivi de b il donne un nombre de blocs.

paste <fichier> <fichier> ..

les lignes correspondantes (c'est-à-dire de même numéro) des fichiers sont concaténées (chaque fichier est donc en fait considéré comme une colonne).

paste [options] [<fichier> ..]

imprime le ou les fichiers sur la sortie standard après avoir effectué une mise en pages : le texte est séparé en pages, chacune d'elle commençant par une en-tête et un numéro, la date et le nom du fichier. L'impression peut-être réalisée en colonnes ; dans ce cas, par défaut, les colonnes sont d'égale longueur et les lignes trop longues sont tronquées.

Options :+<nombre> : début à la page de numéro donné (par défaut 1);

-<nombre> : impression sur le nombre de colonnes donné (par défaut 1);

-m : imprime les fichiers à raison de 1 par colonne;

-d : une ligne blanche entre chaque ligne du fichier;

-n <car> <n2> : la numération des lignes est faite sur <n2> caractères (par défaut 5) ; le nombre occupe les <n2> premières positions. Si le caractère (non numérique) <car> est présent, il est concaténé au numéro de la ligne (par défaut <tab>);

-w <nombre> : la largeur d'une ligne est le nombre donné de lignes;

-l <nombre> : chaque page contient le nombre donné de lignes;

-h : l'argument suivant est utilisé comme en-tête de chaque page;

-p : interruption avant le début de chaque nouvelle page (attente de <return> pour poursuivre);

-t : les cinq premières lignes de l'en-tête ne sont pas imprimées.

rm [options] <ficcat> ..

supprime des références de fichiers. Si le compteur des références d'un fichier devient nul, ce fichier est physiquement supprimé. Pour supprimer une référence de fichier, il est nécessaire d'avoir les droits d'écriture dans le catalogue la contenant (mais pas nécessairement les droits de lecture ou d'écriture dans le fichier lui-même). La référence ne peut être celle d'un catalogue que si l'option -r est utilisée, auquel cas la commande effectue une suppression récursive de la sous-arborescence ayant ce catalogue comme racine et le catalogue lui-même. Avec l'option -i, pour chacun des fichiers, il y a demande de confirmation de la suppression.

rmdir <catalogue> ..

supprime les catalogues ; pour être supprimé, un catalogue doit être vide.

sort [options] [[+n1] [-n2]] [<fichier 1>..] [-o <fichier 2>]

trie les lignes (et écrit les résultats sur la sortie standard sauf si l'option -o est utilisée). Le tri sur les lignes est lexicographique sur l'ensemble des fichiers d'entrée.

Options :-b : les espaces de tête sont ignorés dans les comparaisons;

-d : seules les lettres, chiffres et espaces sont significatifs dans les comparaisons;

-f : lettres minuscules et majuscules sont confondues;

-i : les caractères ASCII dont le code est extérieur à l'intervalle octal 040-0176 sont ignorés;

-n : les débuts de lignes numériques sont triés numériquement;

-r : l'ordre est inversé;

-t<x> : où <x> est un caractère quelconque permettant de séparer des champs dans les lignes.

La notation +n1 -n2 limite le champ des comparaisons aux portions de lignes allant de la position n1 à la position n2-1. Chacune des positions est de la forme m.n (éventuellement suivi de l'une des options b d f i n ou r) où m donne le nombre de champs à sauter depuis le début de ligne et n le nombre de caractères à sauter en début de champ avant de commencer la comparaison.

split [-n] [<fichier> [<nom>]]

le fichier est éclaté en fichier de n lignes (par défaut n=1000). Le premier des fichiers de sortie a pour référence la chaîne nom donnée en argument suivie de aa, le second cette chaîne suivie de ab, etc ... (dans l'ordre lexicographique). Si aucune chaine nom n'est donnée en argument, la chaîne x est prise par défaut.

tail [[+<nombre>] [lbc]] [<fichier>]

copie sur la sortie standard le "morceau" désiré du fichier. Ce morceau commence à la distance <nombre> du début du fichier s'il est précédé du signe - ; par défaut les dix dernières lignes sont fournies. Le nombre désigne un nombre de lignes, de blocs ou de caractères suivant qu'il est suivi du caractère 1, du caractère b ou du caractère c. Par défaut il s'agit de lignes.

tar [<clé>] [<ficcat>...]

permet de réaliser des sauvegardes de fichiers sur un fichier unique en principe sur bande magnétique (tape archive) mais éventuellement aussi sur un fichier disque classique et également dans l'autre sens de restituer des fichiers ainsi archivés. La clé permet de contrôler le type de l'opération : il s'agit d'un caractère au moins spécifiant le type d'opération à réaliser (lecture, écriture...) ; par ailleurs chaque opération peut être paramétrée. De manière générale lorsque ficcat est une référence de catalogue, le traitement de tar est réalisé récursivement sur ses différents sous-catalogues et fichiers.

Fonctions :r : écriture des fichiers en fin de bande ; cette opération est conséquence de l'option c ; attention donc, l'option r ne signifie pas read !

x : extraction des fichiers de la bande ; si le nom est un catalogue, le sous-arbre dont il est racine est extrait tout entier. Les caractéristiques (propriétaire, groupe, droits d'accès) sont restituées si cela est possible ;

t : liste des fichiers sur la bande (sans restitution) ;

u : sauvegarde des fichiers en fin de bande s'ils n'y sont pas déjà ;

c : création d'une nouvelle bande, c'est-à-dire sauvegarde à partir du début de la bande.

Les paramètres possibles des fonctions précédentes sont :

0, ..., 7 : sélectionne le numéro du dérouleur de bande (par défaut 0);

v : option "verbeuse" ; le nom de chaque fichier est affiché lors de son traitement et est précédé du nom de la fonction qui lui est appliquée;

w : avant chaque action, le nom de la focntion et le fichier concerné sont affichés et il y a attente de confirmation (mot commençant par y pour oui);

f : le nom de l'argument suivant est utilisé comme référence du fichier d'archive ; par défaut, celui-ci est /dev/rmt0 (dérouleur de bande 0). Si le nom de l'archive donné est - ; il s'agit de la sortie standard. Cette option permet ainsi de faire des copies de disque à disque de catalogues complets;

b : permet de définir un facteur de blocage (nombre de blocs compris entre 1 et 20);

m : demande la non-restitution des dates de dernière modification ; la date courante est alors utilisée pour cette date.

tr [option] [<chaîne 1>[<chaîne 2>]]

l'entrée standard est copiée sur la sortie standard après substitution ou suppression de caractères sélectionnés. Un caractère ayant une occurence dans <chaîne 1> et remplacé par le caractère de même position dans <chaîne 2>.

Options :-d : les caractères de l'entrée standard ayant une occurence dans <chaîne 1> sont supprimés;

-s : toute sous-chaîne de caractères de la chaîne de sortie formée d'un même caractère est réduite à un seul caractère.

Abréviations :

[a-z] pour le segment de caractères de a à z;

[a*n*] signifie a ... a (n fois);

\xyz désigne le caractère de code octal xyz.

uniq [option] [<fichier 1> [<fichier 2>]]

les lignes adjacentes du fichier sont comparées. Si une ligne est identique à ses suivantes, seul un exemplaire en est fourni.

Options :-u : seules les lignes figurant à un seul exemplaire sont écrites;

-c : génère devant chaque ligne un nombre indiquant son nombre d'occurences.

wc [options] [<fichier>..]

compte le nombre de lignes, de mots et de caractères des fichiers, un mot étant une chaîne de caractères délimitée par un début de ligne et/ou les caractères <espace>, <tab> ou <fin de ligne>.

Options :-l : nombre de lignes;

-w : nombre de mots;

-c : nombre de caractères.

L'option par défaut est -lwc

EXECUTION DE PROGRAMMES

at <heure> [<jour>][<fichier>]

demande le lancement d'un fichier de commandes Shell à une heure fixée. L'heure comporte de 1 à 4 chiffres et peut être suivie de a, p, n ou m pour respectivement am, pm, midi ou minuit. Le jour optionnel est un mois suivi d'un numéro de jour.

crypt [<chaîne>]

code suivant la clé <chaîne> (si elle est donnée) l'entrée standard et imprime le résultat codé sur la sortie standard. Il y a demande d'une clé dans le cas où elle n'est pas donnée en paramètre. Le décodage est réalisé avec la même clé.

csh [options] [<arguments> ...]

appel de l'interprète de C-Shell ; cette exécution commence par l'interprétation du fichier .cshrc (s'il existe) dans le catalogue privé de l'utilisateur.

Options :- : en position de premier argument, ce caractère précise que l'on créé un "login shell";

-c : les commandes à exécuter sont lues dans l'argument suivant;

-f : lancement plus rapide car il n'y a pas de recherche ni d'exécution du fichier .cshrc;

-i : lancment d'un C-Shell interactif.env [-] [<nom = <valeur>].. [<commande><arg> ..] env, sans paramètres, fournit l'environnement Shell de l'utilisateur (toutes les variables de l'environnement du langage de commandes appelant) ; avec arguments, elle permet de modifier cet environnement.

expr <arg>..

les arguments sont interprétés comme des expressions dont le résultat après évaluation est écrit sur la sortie standard. Les différents termes des expressions doivent être précédés par des espaces et les caractères spéciaux de \ ; 0 représente le nombre 0 (et non la chaîne vide) ; les chaînes contenant des espaces ou des caractères spéciaux peuvent être placées entre apostrophes ; les entiers peuvent être précédés du signe - ; ils sont traités en complément à 2.

Opérateurs : e1\| e2 a pour valeur l'expression e1 si e1 n'est pas nul et n'est pas la chaîne vide et sinon e2;

e1\ & e2 a pour valeur e1 si ni e1, ni e2 ne sont nulles ou vides et sinon 0;

e1 {= \> \< \<= \>= !=} e2 : opérateurs de relation;

e1 {+ -} e2 : opérateurs additifs;

e1 {* / %} e2 opérateurs multiplicatifs (multiplication, division et reste).

e1 : e2 comparaison d'expressions (e2 expression rationnelle).

Le code retour est 0 (si résultat <> 0), 1 (si résultat = 0) et 2 (si expressions incorrectes).

kill [option] <nombre> ..

envoie le signal 15 (terminer le processus) aux processus dont les numéros sont fournis en paramètre (les numéros des processus peuvent être connus en utilisant la commande ps).

Option : -<n> : où <n> est le numéro du signal à envoyer aux processus.

Les signaux principaux sont :

SIGNIT (2) : interruption [<delete>];

SIGQUIT (3) : interruption avec sauvegarde de l'image mémoire [<CTRL \ >];

SIGKILL (9) : pour tuer un processus en toutes circonstances.

line

lit une ligne au clavier (jusqu'au caractère <return>) et l'écrit sur la sortie standard.

nice [-<nombre>] <commande> [<arg>..]

exécute la commande avec une priorité donnée (nombre compris entre 1 et 19 valant 10 par défaut).

nohup <commande>

lance une commande non interrompue lorsque la session de travail se termine (particulièrement intéressant pour les commandes lancées en background). Les sorties standards sont redirigées sur le fichier nohup.out (catalogue de travail ou privé).

sh [option] [<arguments>..]

il s'agit de l'appel à l'interprète Bourne Shell.

Options :-c chaîne : les commandes sont lues dans la chaîne argument;

-i : lancement d'un Shell interactif;

-e : dans le cas d'un shell non interactif tout code de retour non nul d'une commande provoque la terminaison du processus Shell;

-n : lecture des commandes sans exécution;

-u : l'utilisation de variables non définies dans un mécanisme de substitution provoque une erreur;

-x : provoque le traçage (impression des commandes et de leurs arguments avant exécution).

sleep <nombre>

suspend l'exécution de la commande pour le nombre de secondes donné (ou un nombre sensiblement voisin !).tee [option] [<fichier>..] les informations transmises sur la sortie standard le sont à la fois sur celle-ci et sur le(s) fichier(s) nommé(s).

Options :-a : a l'effet de >> (les fichiers cibles ne sont pas effacés mais l'information y est concaténée).

COMMUNICATION ENTRE UTILISATEURS

mail [-f] [-f <fichier>] ou mail <nom> ...

- dans sa première forme, elle permet à un utilisateur de lire son courrier (les différents messages qui se trouvent dans sa boîte aux lettres) ; après impression de chacun des messages, le caractère ? apparaît et la commande mail attend une sous-commande de mail sur l'entrée standard ; cette commande indique l'usage à faire du message affiché :

<newline> : passage au message suivant;

+ : identique à <newline>;

d : suppression du message et passage au message suivant;

- : passage au message précédent;

p : réimpression du dernier message;

s <fichier> : sauvegarder le message dans le fichier;

w <fichier> : sauvegarder le message sans son en-tête dans le fichier;

m [<nom>..] : envoie le message aux différentes personnes nommées;

q : pour quitter la commande;

<EOT> : identique à q;

!<commande Shell> : exécution de la commande Shell donnée;

* ou h : liste des commandes.

L'option -r entraîne l'impression des messages en ordre FIFO (et non LIFO) ;

l'option -f<fichier> permet de lire une boîte aux lettres différente de la boîte standard.

- utilisée sous la forme mail nom.., elle permet d'envoyer du courrier aux utilisateurs nommés.

(Tout ce qui est entré sur l'entrée standard jusqu'au caractère <EOT> ou . seul sur une ligne.)

mesg [-n] [-y]

avec l'option -n interdit l'envoi de message par d'autres utilisateurs sur le terminal ; l'option -y rétablit l'autorisation.

news [option] <fichier> ..

permet la lecture des nouvelles (fichiers du catalogue /usr/news qui constitue un véritable journal de bord).

Options :-a : toutes les nouvelles sont imprimées, qu'elles aient ou non déjà été consultées par l'utilisateur;

-n : les noms des nouvelles sont seuls imprimés;

-s : indique le nombre de nouvelles disponibles (sans leurs noms et contenus).

write <nom> [<terminal>]

permet de communiquer directement avec l'utilisateur d'identification donnée s'il est logé ; tout ce qui est tapé au terminal (jusqu'au caractère <EOT>) est aussitôt envoyé sur le terminal de cet utilisateur (le numéro de terminal doit être indiqué si l'utilisateur est logé plusieurs fois). Sur l'écran du destinataire apparaît le message :

message from...

Signalons l'existence de commandes talk ou cause sur certains systèmes permettant la conversation entre usagers de manière plus agréable que write (l'écran de chacun des usagers est divisé en deux parties, chacune étant réservée aux messages d'un utilisateur). Il est bien clair que la communication par write suppose le respect par chacun des utilisateurs d'un protocole défini par les usagers.

help [<arg> ..]

donne des informations sur les commandes (mode d'emploi) ou messages du sytème (apparaissant entre parenthèses). Les arguments sont de trois types :

- un nom de commande;

- un numéro de message;

- un abrégé du nom d'un commande suivi d'un numéro de message relatif à cette commande.

learn [-<catalogue>] [<sujet> [<leçon>]]

outil d'apprentissage d'UNIX. Pour lancer la commande, il suffit de taper learn et de répondre aux questions posées. On peut donner un numéro de leçon ou un mot clé.

man [-] [-t] [section] titre ...

donne en ligne la section correspondant au titre donné dans le manuel standard d'UNIX.

Les commandes externes sont en section 1, les appels système en section 2 et les fonctions des bibliothèques standard en section 3. Ainsi, man 1 kill donne un manuel de la commande kill, man 2 kill un manuel d'utilisation de l'appel système kill et man 3 printf un manuel d'utilisation de la fonction printf.