Vous êtes sur la page 1sur 24

Linux: Les commandes de base

i
Linux Utilisation Sommaire

1. Introduction

2. Connexion et déconnexion

3. Commandes

4. Organisation des fichiers

5. Gestion des fichiers

6. Gérer les processus

7. Les autres utilisateurs

8. Communication

9. L'éditeur de texte vi

10. Annexes

Copyright FORGEST Formations. Tous droits réservés. i


Linux Utilisation

1. Introduction
Ce support de cours permet de voir les commandes de base de LINUX afin d’avoir une vue
d'ensemble cohérente de ce systeme d’exploitation.Cela couvre principalement l’ouverture de
session d’un utilisateur, la gestion des fichiers ainsi que la vision que l'utilisateur a du système.

2. Connexion et déconnexion
2.1. Se connecter
L’ouverture de session débute par la phase de connexion. C'est à ce moment que le système
détermine s'il vous autorise l'accès ou non. Cette connexion est obligatoire avant chaque session de
travail.

2.1.1. Vous n'avez pas encore de mot de passe


La connexion sur une machine Linux s'effectue lors de l'affichage sur le terminal du message (ce
message peut éventuellement être précédé par le nom de machine ou bien le nom du système) :

login :
Vous devez alors entrer votre nom d'utilisateur et valider en tapant sur la touche [Return].
Exemple :

login : Linux
Si l'utilisateur Linux est connu alors une bannière de bienvenue s'affichera, ainsi que le message
d'invite du système. L'utilisateur peut alors commencer à travailler.
Si le nom est incorrect ou bien l'utilisateur inconnu, alors le mot de passe est demandé et vérifié. En
cas d'échec les messages suivants sont affichés :

login : Linux
Password :
login incorrect.
login :
L'utilisateur peut alors essayer à nouveau. Si vous n'avez pas eu de messages ou si le système ne
vous a demandé aucun mot de passe pour accéder à votre compte, cela veut dire que vous n'avez pas
de mot de passe et que n'importe qui connaissant votre nom d'utilisateur peut entrer chez vous.
Si vous désirez installer un mot de passe, taper la commande passwd.

$ passwd
Les messages suivants s'afficheront :
Enter new password :
Re-enter new password :

Remarque : lorsque le système vous demande un mot de passe, celui-ci n'est jamais affiché à
l'écran. Le terminal est mis en mode sans écho.
Un mot de passe doit contenir au moins 6 caractères dont au moins 2 caractères sont alphabétiques
et un numérique ou spécial. Majuscule/minuscule sont prises en compte. Seuls les 8 premiers
caractères d’un mot de passe sont significatifs.

2.1.2. Vous avez déjà un mot de passe


Au message login entrer votre nom d'utilisateur puis valider par la touche [Return]. Ensuite apparaît
le message Password qui vous invite à entrer votre mot de passe. Saisissez-le sans vous tromper, et
terminer par le touche [Return]. Toute erreur peut être rectifiée par la touche [Backspace].

2
Linux Utilisation

login : Linux
Password :
Le mot de passe n'est jamais affiché, bien évidemment pour des questions de sécurité. Conserver le
soigneusement et ne le confier qu'aux personnes de confiance. Si le login et le password sont
correctement saisis alors une bannière de bienvenue, ainsi que le message d'invite du système
s'affichent. Vous pouvez alors commencer à travailler.
Au contraire, si une erreur quelconque se produit, un message d'erreur s'affiche, le login apparaît de
nouveau pour vous permettre de recommencer.

Exemple :

login : inconnu
Password :
login incorrect.
login :
Lorsque vous êtes connectés et que vous désirez changer votre mot de passe, il suffit alors de lancer
la commande passwd.

$ passwd
Les messages suivants s'afficheront :

Enter old password :


Enter new password :
Re-enter new password :

Vous êtes, seuls, autorisés à changer votre mot de passe. Pour des raisons de sécurité, l'ancien mot
de passe est demandé (si vous vous êtes absentés momentanément on ne peut changer votre mot de
passe). Le nouveau mot de passe est redemandé afin d'être sûr que vous savez le saisir
correctement. En cas d'erreur, l'ancien mot de passe est conservé.

2.2. Se déconnecter ...


Celle-ci dépend du type de session qui a été ouverte. Si un environnement graphique (tel que celui
créé par X Windows, l'environnement multi-fenêtrage) est en place, il existe généralement un menu
"logout" (ou "exit") qui permet de quitter cet environnement et ainsi de terminer la session de
travail. Parfois aussi, ce menu ne permet simplement que de quitter l'environnement graphique. Il
faut ensuite procéder à l'étape de déconnexion ci-dessous.
En l'absence d'un environnement graphique, une simple commande telle que logout ou exit, entrée
après l'invite du système, suffit pour terminer la session de travail.

3. Commandes
3.1. Interpréteur de commandes

L'utilisateur peut taper des commandes lorsqu'il se trouve au niveau commande, c'est-à-dire lorsque
l'invite du système apparaît. Toute commande entrée sera interprétée par l'interpréteur
decommandes (ou shell). Le terme shell veut dire coquille pour exprimer l'idée d'interface entre
utilisateurs et système LINUX et a été donné par opposition au noyau du système.

3.2. Syntaxe des commandes


Celle-ci est généralement la suivante : nom_commande [options] [arguments]

3
Linux Utilisation

• les options commencent habituellement par le caractère - (signe moins) suivi d'une ou plusieurs
lettres-clés. Ces options vont modifier le comportement de la commande ;
• les arguments spécifient les objets (fichiers ou variables) sur lesquels la commande va
s'appliquer.

Note :
• les crochets autour des arguments et des options signifient que ceux-ci sont optionnels.
• tous les shells font la distinction entre les lettres minuscules et majuscules pour les commandes
et les noms de fichiers.

3.3. Manuel des commandes


Si on veut de l'aide sur les règles d'utilisation ou encore sur les fonctionnalités d'une commande, on
peut utiliser l'aide en ligne grâce à la commande man (comme MANual pages) de la façon suivante
:

man nom_commande

3.4. Caractères génériques


Certaines commandes acceptent plusieurs noms de fichiers en arguments aussi, il était intéressant
d'avoir des notations permettant de raccourcir l'écriture d'une telle liste. Ainsi, il existe
plusieurscaractères génériques qui, incorporés dans les noms de fichiers, ont la signification
suivante :

• le caractère ? peut remplacer n'importe quel caractère ;


• le caractère * peut remplacer n'importe quelle chaîne de caractères, y compris la chaîne vide.
• Le caractère [ commence une définition d'ensemble qui se termine par le caractère ]. Tous les caractères
qui sont placés entre les crochets (écrits sans espaces) définissent l'ensemble des caractères possibles. On
peut aussi définir un intervalle en séparant les caractères par le -.

Exemple : abc* = abc abcd abc.c


*i* = titi avion iiiiiiiiii
a?? représente tous les noms commencant par a et suivit d'exactement deux caractères
?a* identifie tous les noms ayant en deuxième caractère un a
a[bc]d = abd acd
a[0-9] représente tous les fichiers commencant par a suivi d'un chiffre

3.5. Redirection des entrées/sorties

Généralement, les commandes lisent l'entrée standard et/ou écrivent sur la sortie standard.
Normalement, l'entrée standard est le clavier et la sortie standard est l'écran. Il est possible de
rediriger ces entrée et sortie standards vers des fichiers.

Pour que le résultat d'une commande soit rangé dans un fichier au lieu d'apparaître à l'écran, il faut
utiliser la syntaxe :

nom_commande [options] [arguments] > fichier_sortie

On voit que si le fichier de redirection existe déjà, son contenu est écrasé avec la redirection >. Si
on veut que ce contenu soit préservé et y ajouter des résultats d'une commande, il faut utiliser la
redirection >>.

Au lieu de fournir des données en les entrant au clavier, ces données peuvent être lues dans un
4
Linux Utilisation

fichier avec la syntaxe :

nom_commande [options] [arguments] < fichier_entrée

3.6. Tube (<<pipe>>)

Dans le même ordre d'idées, on peut utiliser le mécanisme de <<pipe>> qui permet de prendre la
sortie standard d'une première commande et de la rediriger sur l'entrée standard d'une 2ème
commande. La syntaxe est :

nom_commande1 [options] [arguments] | nom_commande2 [options] [arguments]

4. Organisation des fichiers


4.1. Arborescence d'UNIX

L'unité d'information gérée par le système est le fichier et celui-ci peut contenir n'importe quoi et être
éventuellement vide. Selon leur utilisation, les fichiers sont appelés répertoires (<<directories>>) ou fichiers
tout court (<<files>>). Un répertoire est un catalogue de fichiers contenant leurs caractéristiques comme les
droits d'accès, la taille, la date de création, etc.
L'ossature du système est une structure arborescente de fichiers et de répertoires. Chaque utilisateur peut
ajouter dans son coin de nouvelles branches. / est le nom du répertoire racine (<<root>>) de l'arbre.

Exemple d'arborescence :

bin dev etc lib tmp users sys

cours ens

moi

src calendar

pstree.c cpp.c

4.1.1. Nom absolu d'un fichier

Le nom absolu d'un fichier est formé de tous les noms de répertoires traversés depuis la racine pour
l'atteindre, les noms sont séparés par des obliques avant / (contrairement au MS-DOS qui utilisent
des obliques arrière \). Chaque fichier a un nom absolu unique dans le système.

Exemple : 2 fichiers de même nom, fic1, peuvent coexister s'ils sont dans 2 répertoires différents et
ont donc un nom absolu différent :
/users/ens/moi/src/cpp.c et /users/ens/moi/calandar/cpp.c

4.1.2. Nom relatif


Le répertoire courant (<<working directory>>) permet de raccourcir la notation d'un nom de fichier
5
Linux Utilisation

en utilisant des noms relatifs à ce répertoire courant. Au début de la session, le répertoire courant est
le répertoire personnel de l'utilisateur. Le répertoire courant est noté . et peut être en tout temps
identifié grâce à la commande pwd. Le père du répertoire courant est noté .. et correspond à un
niveau supérieur dans l'arborescence.
Ex : moi>pwd
/users/ens/moi
moi>cd src
moi>pwd
/users/ens/moi/src
moi>ls -la
total 4
drwx------ 2 moi 512 Sep 21 21:30 .
drwxr--r-x 8 moi 512 Sep 21 21:30 ..
-rw------- 1 perrot 50 Sep 21 21:30 cpp.c
-rw------- 1 perrot 50 Sep 21 21:30 pstree.c
moi>cd ../calendar
moi>pwd
/users/ens/moi/calendar
moi>cd /users/ens/moi/src
moi>pwd
/users/ens/moi/src

Remarque :
• la commande cd (Change Directory) permet de changer de répertoire. En argument, on lui
passe le nom du répertoire dans lequel on veut se déplacer. Sans argument, on revient au
répertoire personnel.
• les chemins relatifs ne commencent jamais par le caractère barre oblique /. C'est la seule
manière de distinguer un chemin relatif d'un chemin absolu.

4.2. Droits d'accès des fichiers


Chaque fichier (ou répertoire) possède un ensemble d'attributs définissant les droits d'accès à ce
fichier pour tous les utilisateurs du système.

4.2.1. Classes d'utilisateurs


Il existe 3 classes d'utilisateurs pouvant éventuellement accéder à un fichier :
• le propriétaire du fichier (User) ;
• le groupe dans lequel appartient le propriétaire (Group) ;
• les autres (Others).

A sa création, un fichier appartient à son auteur. Le propriétaire du fichier peut ensuite distribuer ou
restreindre les droits d'accès sur ce fichier (voir plus loin).

4.2.2. Types d'accès


Pour chaque classe d'utilisateurs, il y a 3 types d'accès à un fichier donné :
- r : en lecture (Read) ;
- w : en écriture (Write) ;
- x : en exécution (eXecute).

Au niveau répertoire, ces droits signifient :

- droit de lister les fichiers présents dans ce répertoire (Read) ;


- droit de créer ou de détruire un fichier qui s'y trouve (Write) ;
6
Linux Utilisation

- droit de traverser ce répertoire (eXecute).

En combinant les 3 types d'accès et les 3 classes d'utilisateurs, il y a donc 9 droits d'accès différents
qui existent sous Linux.

4.2.3. Visualisation des droits d'accès

Pour cela, on utilise la commande ls -l. Le 1er caractère spécifie si le fichier est un répertoire
(caractère d) ou un fichier tout court (caractère -). Les 9 caractères suivants identifient les droits
d'accès (présence du droit si lettre r, w ou x ; absence de droit si caractère -) et sont structurés de la
façon suivante :

Ex : moi>ls -l

total 2

-rw------- 1 perrot 49 Sep 18 12:37 pstree.c


-rw------- 1 perrot 50 Sep 18 12:35 cpp.c

4.2.4. Modification des droits d'accès

Linux permet pour tout fichier de positionner les droits d'accès désirés selon le format dont on a
déjà parlé. On spécifie ainsi les droits d'accès du fichier pour le propriétaire du fichier, les
utilisateurs appartenant au même groupe que le propriétaire et les autres utilisateurs.

La commande réalisant cette fonction est chmod (change mode). chmod admet comme paramètres
:

u user + ajouter r lecture


g group - retirer w écriture
o others = positionner x exécution

On note que Linux vérifie les droits en commençant d'abord par le propriétaire.
Si pour un objet, le propriétaire ne possède plus aucun droit, et les autres oui, le propriétaire ne peut
plus accèder à son fichier. Linux ne vérifie pas ce type d'incohérence.

Exemples :

$ chmod o-r toto


Retire le droit de lecture pour les autres utilisateurs sur le fichier toto.

$ chmod ug+w toto


Ajoute le droit d'écriture pour le propriétaire et le groupe.

$ chmod -rwx toto


Enlève tous les droits pour tout le monde

$ chmod =r toto
Positionne pour tout le monde uniquement le droit en lecture.

$ chmod u=rw ,go-rwx toto


Positionne les droits de lecture/écriture pour le propriétaire, et retire tous les droits pour le groupe et
les autres.
7
Linux Utilisation

4.2.5. Initialisation des droits d'accès

Au moment où l'utilisateur crée un fichier, des droits d'accès par défaut sont donnés à ce fichier.
C'est la commande umask qui permet de définir la protection maximale que l'on donne par défaut
aux nouveaux fichiers. La syntaxe est la suivante :

$ umask [mask]

Les droits d'accès rwx sont groupés en ugo (User Group Others). Chaque groupe peut être
représenté par un chiffre en octal. La table de translation est la suivante :

--- 0 --x 1 -w- 2


-wx 3 r-- 4 r-x 5
rw- 6 rwx 7

Ainsi rwxrw-r-- correspond à 764, de même rwxr-xr-x correspond à 755.


Pour positionner le masque par défaut, il faut positionner son complément. Ainsi au masque 755, il
faut positionner son complément c'est à dire 022.
Exemple :

$ umask
022
Affiche le masque actuel (022 par défaut).

$ umask 022
Positionne pour les droits rwxr-xr-x pour les fichiers à créer. Les attributs des fichiers existants ne
sont pas modifiés.

$ umask
Donne la valeur du masque

Remarque : La commande chmod n'est pas affectée par la valeur du masque.

5. Géstion les fichiers


5.1. Liste des fichiers

Pour afficher les fichiers et les répertoires du répertoire courant, il faut utiliser la commande ls (list).
ls offre plusieurs options selon le format d'affichage désiré. Il est possible de combiner les options.

$ ls (La commande affiche tous les noms des objets du répertoire courant sous forme de liste).

$ ls -al /users (Les objets du répertoire /users sont listés).

Les options de la commande ls :


L'option -a permet d'afficher tous les fichiers (même cachés commençant par '.').
L'option -A permet d'afficher tous les fichiers (même cachés commençant par '.') sauf les répertoires
'.' et '..' .
L'option -d permet d'afficher les répertoires en tant qu'objet et non pas répertoire.
L'option -l permet d'avoir toutes les informations sur les objets, format long.
8
Linux Utilisation

L'option -t trie les fichiers selon la date de dernière modification.


L'option -R affiche le contenu des répertoires et sous-répertoires associés (récursif).

$ ls -a
. .. .profile essai essai2 bonjour
Affiche tous les objets (fichiers cachés).

$ ls -A
.profile essai essai2 bonjour
Affiche tous les objets (fichiers cachés) excepté les répertoires '.' et '..'.

$ ls -lg
total 2
-rwxr-xr-x 1 u1 cours 15 Jun 27 12:00 calendar
drwxr-xr-x 2 u1 cours 512 Jun 27 12:00 src
...
Affiche les objets sous le format long. On retrouve ici tous les renseignements concernant chaque
fichier :
- le total identifie le nombre de bloc de 512 octets nécessaires pour la sauvegarde du répertoire,
- le premier caractère concerne le type de l'objet, d pour directory (répertoire), - pour fichier normal,
c pour fichier device (périphérique) en mode caractère), b pour fichier device en mode bloc,
- la série de 9 caractères représente les droits d'accès du fichier (lecture, écriture, exécution pour le
propriétaire, le groupe et les autres),
- le chiffre est le nombre de liens de l'objet (au moins 2 pour un répertoire).
- Les deux noms suivant identifient succésivement le propriétaire et le groupe du propriétaire au
moment de la création du fichier,
- on trouve ensuite la taille en octet de l'objet,
- puis la date de dernière modification (et non de création),
- et finalement le nom de l'objet.

5.2. Création d'un fichier

Habituellement, on utilise un éditeur de textes. Ici, on suppose que l'utilisateur ne sait utiliser aucun
des éditeurs et qu'en attendant, il a la recette suivante pour créer un petit fichier :

$cat > nom_fichier


1ère ligne
2ème ligne
.
.
dernière ligne
^D

Remarque : Si le fichier existe déjà, son précédent contenu est détruit par la fonction cat. Cette
procedure de creation de fichier est simple mais elle manque de fonctionnalités en ce qui concerne
l'édition du fichier (correction d'erreurs impossible sur les lignes précédentes).

5.3. Destruction d'un fichier

La commande rm (remove) permet d'effacer un ou plusieurs fichiers.

$ rm toto

9
Linux Utilisation

$ rm essai essai2
Les fichiers toto essai essai2 du répertoire courant sont détruits (il faut avoir le droit décriture dans
le répertoire). rm admet des options très utiles comme -f pour forcer la destruction, ne pas tenir
compte des droits, -i pour confirmer la destruction, et enfin -r pour détruire récursivement un
répertoire.

$ rm -r users/ens

5.4. Visualisation d'un fichier

Plusieurs commandes à différentes fonctionnalités permettent la visualisation d'un fichier mais les
plus usuelles sont :

$cat nom_fichier ou $more nom_fichier

La commande more permet un affichage page par page. Elle accepte plusieurs fichiers et offre
plusieurs options durant son exécution.

Quelques options :
[?] permet de voir toutes les options,
[Return] passe à la ligne suivante,
[Espace] passe à la page suivante,
et enfin [q] pour sortir prématurément.

Remarque : Si la commande more est appelée avec plusieurs noms de fichiers, elle place en tête de
chaque fichier une bannière avec le nom du fichier courant. Si l'on désire afficher le contenu de
fichiers non ASCII, il faut alors utiliser la commande od (cf. Les principales commandes).

5.5. Copier un fichier


Linux permet de dupliquer un fichier et copier un ou plusieurs fichiers vers un répertoire. La
commande cp (copy) possède donc deux syntaxes :

$ cp fichier1 fichier2
Copie le fichier1 dans le fichier2, les deux fichiers sont identiques.

$ cp fichier1 ... fichierN répertoire


Copie les fichiers 1 à N vers le répertoire répertoire. Les fichiers possèdent alors le même nom
relatif. Il est possible de spécifier des chemins pour chaque nom (chemin relatifs ou absolus).
L'option -R permet de recopier une arborescence.

$ cp -[r|R] répertoire1 répertoire2


Noter que pour copier vers un répertoire, l'utilisateur doit posséder les droits d'écriture sur ce
répertoire.

5.6. Renommer/Déplacer un fichier


La commande mv (move) peut être utilisé de deux manières (exactement comme la commande
copie). Pour renommer un fichier, dans ce cas le fichier destination reste dans le même répertoire.

$ mv toto titi
$ mv essai toto
Pour déplacer un fichier (ou plusieurs fichiers), dans ce cas les fichiers destinations sont placés dans
un répertoire différent.

10
Linux Utilisation

$ mv toto titi /tmp


Il est aussi possible de déplacer un objet en le renommant :

$ mv toto /tmp/titi

5.7. Création d'un répertoire

mkdir nom_répertoire (cette commande est possible uniquement si nom_répertoire est inexistant)

Exemple :
$ mkdir sources
$ mkdir lettres jeux
Les répertoires sources lettres jeux ont été créés sous le répertoire courant.

$ mkdir objets /users/cours


Le répertoire objets est créé dans le répertoire courant alors que le répertoire cours est créé dans le
répertoire users sous le répertoire racine.

On ne peut créer l'arborescence que niveau par niveau. Les répertoires lettres et jeux du précédent
exemple sont créés au même niveau. Cependant, si l'on désire créer l'arborescence sur plusieurs
niveaux certains systèmes autorisent l'utilisation de l'option -p.

$ mkdir -p lettres /jeux


Le répertoire jeux est créé dans le répertoire lettres (même si le répertoire lettres n'existait pas).

5.8. Suppression d'un répertoire

rmdir nom_répertoire (si le répertoire est vide)

rm -r nom_répertoire (r comme récursif : effacement du contenu du répertoire et de lui-même)

5.9. Changer le répertoire de travail


La commande cd (Change Directory) permet de changer le répertoire de travail, et donc se déplacer
dans le système de fichiers.
Sans paramètre, cd permet de revenir au répertoire de connexion (c'est le répertoire ou le système
nous positionne au début de la session).
$ cd

Avec un nom de répertoire ou un chemin, cd positionne dans le répertoire spécifié s'il existe.
Par exemple :
$ cd /etc
$ cd ..
$ cd usr/bin
$ cd .

Rappel : .. désigne le répertoire père et . désigne le répertoire courant, celui où l'on se trouve.

5.10. Afficher le répertoire courant


Il est parfois utile de connaître le répertoire courant de travail, surtout après avoir changé de
répertoire.
La commande pwd (print working directory) affiche le répertoire courant de travail.
$ pwd

11
Linux Utilisation

/users/ens/moi
$ cd ..
$ pwd
/users/ens

6. Gérer les processus


Un processus est l'image mémoire (appelé aussi instance) d'un programme disque s'exécutant en
mémoire. Un processus est une tâche. C'est la combinaison :
- d'une configuration mémoire (code du programme, état des variables statistiques, état de la pile)
- d'une configuration des registres du processeur (adresse de la prochaine instruction)

Sous Linux, toute activité s'exécute dans le cadre d'un processus. Linux étant un système
d'exploitation multi-tâches, les processus peuvent s'exécuter en parallèle selon leurs priorités.
Chaque processus peut évoluer dynamiquement en mémoire après sa phase de création suivant
certains critères tels que : temps passé en exécution, priorité du processus (voir commande nice
sous cshell). A intervalle régulier (quantum), le processus actif est interrompu et le contrôle de
l'unité centrale est donné au processus de plus haute priorité qui est en attente.Un processus qui perd
le contrôle de l'unité centrale reste soit en mémoire, soit en zone de swap.
Chaque processus possède sa propre zone de mémoire (ram ou disque). L'attribution du temps
processeur est contrôlé par un processus scheduler qui fonctionne selon le mécanisme du temps
partagé.
fork()
Préempté Créé

return Prêt à s'exéc Prêt à être


Exec(U) en mémoire transféré
swapp in mem

swapp out mem


Appel
système
wakeup wakeup
sleep
Exec(K)

swapp out

Zombie Endormi Endormi


en mémoire transféré

Chaque processus est caractérisé par une image mémoire comprenant 4 parties :
.Une zone représentant la carte d'identité du processus, accessible qu'en mode système.
On y trouve la pile système et la structure U qui est une collection d'informations
relatant l'aspect dynamique du processus (taille, identification : PID, liste des
fichiers ouverts, zone de passage des paramètres lors des appels
systèmes ...).
.Une zone texte avec les instructions et les constantes du programme.
.Une zone tas qui comprend les données statiques du programme ainsi qu'une partie réservée
à l'allocation dynamique de mémoire.
.Une zone pile utilisateur (variables locales).

Le système dispose également d'une autre structure qui contient toutes les informations nécessaires
à l'ordonnancement des processus. On y trouve , l'état, le statut, la priorité, l'identification,

12
Linux Utilisation

l'événement attendu, le temps passé en mémoire, le temps passé en exécution.

6.1.1. Les processus en exécution


Il est possible d'observer les processus en activité à un moment donné grâce à la commande ps
(processus status).
ps fournit pour chaque processus un certain nombre d'informations dont les plus importantes sont le
numéro du processus (pid) et le nom du processus.

De plus ps fournit des options telles que :


-a affiche les processus associés à un terminal,
-x affiche les processus non associés à un terminal,
-g affiche tous les processus courants,
-l donne le maximum d'informations sur les processus (en particulier le père).

$ ps
Liste les processus lancés par l'utilisateur.

$ ps -g
Demande l'affichage de tous les processus en exécution.

La commande ps permet de connaître l'activité du système en terme de processus. Le format de


sortie est constitué de champs :
$ ps - l
F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME
COM
20488001126 907 906 0 5 0 28 84 child S pd 0:00 -sh
20080001126 987 907 12 28 0 260 492 R pd 0:00 ps -l

Remarque : l'exécution d'une commande depuis le Shell génère la création d'un processus, ce n'est
pas le Shell qui exécute la commande. Le Shell se contente de créer un processus qui exécutera la
commande à sa place. Pendant le temps d'exécution le Shell attend sans rien faire (jusqu'à la fin de
son fils).

La signification des champs est la suivante :


F status du processus codé sur une entier.
UID numéro d'identification de l'utilisateur. (voir la commande ID)
PID numéro d'identification du processus.
PPID numéro d'identification du processus père.
CP temps d'utilisation CPU (sert pour l'ordonnancement)
PRI priorité ( priorité inversement proportionnelle au nombre indiqué)
NI valeur de nice
SZ taille en blocs de l'image mémoire
Wchan événement attendu si le processus est en attente
STAT voir plus loin ...
TT terminal associé au processus
TIME temps d'exécution cumulé du processus
CMD nom de la commande associé au processus

L'état d'un processus est donné par un champ de 4 lettres ABCD :


A Etat d'exécution du processus
R processus en exécution (Running).
S processus en sommeil depuis moins de 20 secondes. Attend la fin d'un événement
(Sleeping).
13
Linux Utilisation

T processus terminé (Terminate).


I processus endormi depuis plus de 20 secondes (Idle).
P processus en attente (Page wait).
D processus en attente non interruptible, cas d'appels systèmes, I/O sur disques.
Z processus terminé qui attend son père, la fin du wait de son père (Zombie).

B Indique le support de stockage du processus


- <caractère espace>, le processus est chargé en mémoire.
W le processus est swappé sur disque (swapped out).
> processus en instance d'être transféré de la mémoire vers le disque, par manque de place en
mémoire.

C Indique la priorité du processus


N priorité diminuée.
< priorité augmentée.
- <caractère espace>, priorité nulle.

D Indique un traitement spécial du processus pour la mémoire virtuelle


A processus en attente de récupération de mémoire virtuelle. L'opération en cours de
traitement est plus communément appelée ramasse-miette.
S processus en attente d'adresses séquentielles, car possédant un important volume de
données. Il utilise grandement la mémoire virtuelle.

6.1.2. Terminer un processus


En temps normal, lorsq'un processus est lancé, il s'arrête avec la fin de son exécution. Il se termine
alors normalement. Cependant, il arrive qu'on désire interrompre un processus avant sa fin pour
diverses raisons.
Un premier moyen est d'interrompre le processus par ^C (appui des touches [Ctrl] et [c]).
Cependant, ^C n'est pas toujours efficace, surtout pour des processus lancés an arrière plan (cf.
Lancer un processus en arrière plan). Linux propose la commande kill pour tuer un processus, c'est
à dire le terminer prématurément.

kill admet comme paramètre le ou les numéros des processus (pid).

$ kill 627 2010


Les processus ayant les pid 627 et 2010 sont tués.

kill admet une option correspondant à des signaux de -1 à -15. Mais nous n'aborderons pas ce détail
pour nous souvenir uniquement de l'option -9 qui permet de tuer un processus efficacement.

$ kill -9 627
Tue le processus sur un signal non masquable (à réserver aux processus de type interactif comme le
Shell).
kill admet une option correspondant à des signaux de -1 à -15. Le signe x indique qu'un fichier core
est créé.

1 SIGHUP coupure de la ligne. Perte de la porteuse sur la ligne. Cet évenement peut
également être provoqué par stty 0 >/dev/tty.
2 SIGINT demande d'arrêt du terminal. Produit par la frappe des touches del ou break.
3x SIGQUIT abandon
4x SIGILL instruction illégale
5x SIGTRAP piège pour suivre les instructions (voir adb)

14
Linux Utilisation

6x SIGIOT parfois appelé Abord (utilisé par adb)


7x SIGEMT parfois utilisé sur les machines sans virgules flottantes
8x SIGFPE erreur de calcul flottant
9 SIGKILL destruction
10 x SIGBUS erreur sur le bus. En C cela peut être une erreur d'adressage avec un pointeur
11 x SIGSEGV violation d'un segment. En C cela peut être du à une mauvaise utilisation d'un
pointeur d'un indice dans les tableaux.
12 x SIGSYS argument incorrect lors de l'appel d'une fonction système.
13 SIGPIPE écriture dans un tube alors qu'aucun processus ne le lit la sortie.
14 SIGALARM horloge (voir alarm)
15 SIGTERM événement logiciel de fin de processus. C'est l'événement par défaut de kill.
Les processus qui reçoivent ce signal doivent nettoyer les fichiers temporaires et s'arrêter.

7. Les autres utilisateurs


Nous avons dit que Linux était un système multi-utilisateurs, il est intéressant de connaître les
possiblités offertes par le système pour échanger de l'information entre les utilisateurs.

7.1.1. Qui suis-je ?


Vous êtes connus du système par votre nom d'utilisateur. Demandez lui donc s'il vous connaît
réellement ?

$ who am i
$ whoami
Ces commandes renvoient à l'utilisateur son nom de login. Déterminer la différence entre les deux
commandes.

7.1.2. Les utilisateurs connectés


Il est parfois utile de connaître les utilisateurs qui sont connectés en même temps que vous...Pour
leur adresser un message de bienvenue par exemple ! Linux vous offre la commande who qui
fournit simplement les noms et les terminaux de login, et la commande finger, plus sophistiquée,
donnant le nom réel de l'utilisateur.

$ who
$ finger
$ users

Remarque : il existe aussi la commande w qui est un mélange du who et du finger.

8. Communication
8.1. Courrier électronique (<<e-mail>>)

Chaque utilisateur a à sa disposition une boîte à lettres où sont stockées les lettres qui lui sont
envoyées par d'autres utilisateurs. Il existe différents logiciels pour lire et envoyer du courrier
électronique mais on va parler ici de l'outil standard présent sous tout système UNIX : mail.

8.1.1. Envoi de courrier

15
Linux Utilisation

Pour cela, la commande à utiliser est : mail adresse_destinataire. Si le destinataire du courrier est
sur le même réseau local que l'expéditeur, son nom d'utilisateur suffit comme adresse. Dans le cas
contraire, l'adresse Internet complète est nécessaire.

Après cette commande, l'utilisateur spécifie le sujet (court si possible) de son e-mail après le champ
Subject: puis entre la lettre à envoyer. Cette dernière se ;termine par une ligne commençant par un
point ou par la marque de fin de fichier soit ^D.

Ex : mail perrot

1ère ligne
2ème ligne
.
dernière ligne

^D

8.1.2. Lecture de courrier

On est informé de la présence de courrier dans la boîte à lettres au moment de la connexion par le
système grâce à un message à l'écran. Sur la plupart des systèmes, si on est déjà logé au moment où
arrive une nouvelle lettre, celle-ci est affichée. Sur certains systèmes, seul un message signalant
l'arrivée de courrier est affiché. Il existe de nombreux utilitaires d'avertissement (textes, graphiques
ou sonores) de l'arrivée de courrier.

Permet d'accéder au courrier :


$ mail

Le message No mail s'affiche si l'utilisateur n'a aucun courrier. Dans le cas contraire, il pourra
entrer :
p pour lire le message courant.
s suivi d'un nom de fichier pour enregistrer le message dans le fichier.
Si aucun nom n'est spécifié, le fichier par défaut est le fichier mbox.
d pour détruire le message lu.
+ pour passer au message suivant.
x pour sortir de la messagerie en abandonnant les modifications.
q pour sortir en conservant les modifications.

8.2. Connexion sur une machine distante

On a la possibilité, à partir d'une machine sur laquelle on a déjà ouvert une session de travail, de se
connecter à un autre ordinateur via le réseau (local ou Internet). La commande à utiliser est la
suivante :

telnet adresse_machine

Pour pouvoir se connecter, il faut bien sûr avoir un compte sur cette machine distante. Il faut alors
s'identifier de la même façon qu'on le fait pour se connecter une première fois sur une machine. Une
fois logé sur la machine distante, les commandes entrées sont exécutées sur cette machine.

Exemple :
$telnet neumann
16
Linux Utilisation

Trying 145.207.12.1 ...


Connected to neumann.
Escape character is '^]'.
SunOS UNIX (neumann)
login: toto
Password:

8.3. Transfert de fichiers

FTP (File Transfer Protocol) est un programme permettant de transférer des fichiers entre 2
machines. FTP fonctionne un peu comme la commande telnet. Il faut d'abord lui fournir en
argument l'adresse de la machine avec laquelle on désire effectuer des transferts de fichiers de la
façon suivante :

ftp adresse_machine
Puis, on s'identifie auprès du système avec un nom d'utilisateur et un mot de passe.

Par contre, contrairement au service Telnet, FTP peut donner un accès (restreint) à des machines où
l'on n'a pas de compte utilisateur. Pour cela, il faut que la machine permette ce qu'on appelle les
FTP anonymes. Dans ce cas, on fournit comme nom d'utilisateur, le nom anonymous et comme mot
de passe, son adresse e-mail (ce qui permet de faire des statistiques sur l'utilisation du site FTP).
L'accès au site FTP est alors restreint puisque que l'on n'a pas de compte utilisateur dessus. Il est
possible par exemple que l'on ne puisse que retirer des fichiers sur cette machine (généralement
présents dans le répertoire /pub).

Une fois logé sur le site à l'aide de FTP, on accède aux commandes FTP quand on voit l'invite ftp>.
La liste de ces commandes est obtenue avec la commande help. Pour obtenir de l'aide sur une
commande en particulier, il faut taper la commande :

help nom_commande

Les commandes importantes à connaître sont :


- ls (liste des fichiers du répertoire courant); les caractères génériques sont utilisables ici aussi ;
- cd nom_répertoire (changement de répertoire) ;
- get nom_fichier : récupère un fichier sur la machine distante. Il y a possibilité de sauver le
fichier sous un autre nom sur la machine locale ;
- put nom_fichier : transfert un fichier de la machine locale à la machine distante ;
- mode de transfert : ascii (par défaut) ou binary ; en effet, en mode ascii, certains caractères sont
traduits entre 2 systèmes différents pour les rendre plus lisibles. Par contre, pour les fichiers
binaires (pas de caractères ascii), cette traduction ne doit pas avoir lieu ;
- transfert multiple : mget et mput. Avec ces 2 commandes (dont la fonction est identique à celle
de leur équivalents, get ou put), on peut transférer plusieurs fichiers à la fois. L'utilisation des
caractères génériques est alors intéressante ;
- confirmation : prompt. Dans le cas de l'utilisation de mget et mput, le système demande, pour
chaque fichier concerné, de valider ou non son transfert. Si on veut annuler cette demande
systématique de confirmation, on utilise la commande : prompt.

8.4. Commande finger

La commande finger permet d'avoir de l'information sur un utilisateur qui a un compte sur une
machine particulière. On l'utilise ainsi :

17
Linux Utilisation

finger nom_utilisateur@adresse_machine
Exemple :
$finger lile@prism.uvsq.fr
[prism.uvsq.fr]
Login name: lile In real life: Lise Leon

Remarques :
- la commande finger affiche en plus du nom de la personne, le contenu des fichiers textes .plan
(plan de travail) et .project (projet sur lequel travaille cette personne) s'ils sont présents dans le
répertoire personnel de l'utilisateur ;
- pour des raisons de sécurité, certaines machines ne permettent pas l'accès par finger aux
informations concernant les utilisateurs qui y ont un compte.

8.5. Commande ping

Cette commande permet de vérifier s'il existe une connexion possible entre la machine où l'on
travaille et celle spécifiée en argument : ping adresse_machine.

$ping neumann
von-neumann is alive

Elle permet aussi de déterminer l'adresse numérique d'une machine avec la syntaxe suivante :
ping -s adresse_machine (envoi d'un paquet par seconde et affichage de la présence de réponse de la
machine).

$ping -s vision

PING vision: 56 data bytes

64 bytes from vision (147.207.12.129): icmp_seq=0. time=2. ms


64 bytes from vision (132.207.12.129): icmp_seq=1. time=4. ms
^C

8.6. Commande talk

Parfois, on peut préférer au courrier électronique, le principe de conversation interactive. Ce


principe est mis en place sous UNIX grâce à la commande talk. Pour cela, utilisateur1 qui travaille
sur machine1 utilise la syntaxe :

talk utilisateur2 (si les 2 correspondants sont sur la même machine) ou


talk utilisateur2@machine2 (si elles sont sur 2 machines différentes).

L’utilisateur2 reçoit un message du type :


Message from TalkDaemon@machine2...
talk: connection requested by utilisateur1@machine1.
talk: respond with: talk utilisateur1@machine1.

utilisateur2 accepte la communication avec utilisateur1 en entrant la commande de réponse talk


spécifiée.

18
Linux Utilisation

La fenêtre de travail de chacun des 2 correspondants se partagent alors en 2 et chacun voit dans la
1ère moitié, ce qu'il entre et dans la 2ème moitié, ce que son correspondant entre au clavier. La fin
de la communication est généralement signalée par l'un ou l'autre des correspondants par la
commande d'interruption ^C.

9. Éditeurs de textes
Le but d'un éditeur de textes est de créer et de modifier des fichiers textes qui peuvent être des
documents ou des programmes sources (programmes C, Fortran, etc.). Il existe de nombreux
éditeurs sous UNIX mais les 2 éditeurs standards généralement disponibles sont ed et vi. Le premier
est un éditeur interactif fonctionnant en mode ligne : le fichier traité n'est pas affiché à l'écran et
l'utilisateur doit donc fournir des requêtes en indiquant les adresses des lignes que l'éditeur doit
traiter. On n'étudiera pas cet éditeur vu son manque de convivialité. Il faut quand même savoir que
ed est un vieil éditeur qui a servi de référence pour d'autres éditeurs comme vi.

9.1- L'éditeur de textes vi

vi (Visual), contrairement à ed, est un éditeur pleine page puisqu'il affiche le fichier traité sur une
page d'écran (au moins 24 lignes de 80 caractères). L'éditeur vi a une mauvaise réputation : il est
jugé difficile et mal commode. Cette idée vient surtout du fait qu'aucune commande n'est disponible
en mode insertion à part la commande ESC de sortie du mode d'insertion. En particulier, on ne peut
déplacer le curseur en mode insertion. Toutefois, il ne faut pas perdre de vue que l'éditeur vi est
présent sur la plupart des systèmes UNIX et qu'il est quelque fois le seul éditeur accessible.

Vi possède 2 modes de travail :

• un mode commande dans lequel l'utilisateur spécifie les requêtes de traitement du fichier ;
• un mode insertion dans lequel tout ce qui est entré au clavier est écrit dans le tampon de
mémoire associé au fichier.

Pour ouvrir un fichier existant ou pour créer un nouveau fichier, il suffit d'utiliser la syntaxe
suivante :
vi nom_fichier.

À l'appel de l'éditeur, on se trouve dans le mode commande. Plusieurs commandes d'insertion de


texte permettent de passer en mode insertion, alors que pour passer du mode insertion au mode
commande, on tape le caractère d'échappement ESC (ESCAPE).
Les commandes sont nombreuses et ici, on ne verra que les plus importantes. Elles sont de plusieurs
types :

9.1.1- Commandes de déplacement du curseur

Remarque : la ligne courante est la ligne dans laquelle se trouve le curseur.

l (ou ESPACE ou → ) : déplacement d'un caractère vers la droite ;


h (ou BACKSPACE ou <- ) : déplacement d'un caractère vers la gauche ;
k (ou [[arrowup]] ) : déplacement d'un caractère vers le haut ;
j (ou [[arrowdown]] ) : déplacement d'un caractère vers le bas ;
0 : déplacement sur le caractère de la colonne 1 de la ligne courante ;
19
Linux Utilisation

$ : déplacement sur le dernier caractère de la ligne courante ;


[n]G : déplacement sur la nème ligne du fichier. Par défaut, n est le numéro de la dernière ligne ;
/motifRETURN: descendre sur la 1ère ligne contenant motif ;
?motifRETURN: remonter sur la 1ère ligne contenant motif ;
n : répète la dernière opération /motif ou ?motif ;
CTRL-f (Forward) : page suivante ;
CTRL-b (Backward) : page précédente ;
w (Word) : déplacement sur le début du mot suivant ;
b (Back) : déplacement sur le début du mot précédent ;
e (End) : déplacement sur la fin du mot courant ;
Toutes ces commandes (sauf 0, $ et G) peuvent être précédées d'un entier qui sert de facteur de
répétition.

Ex : 3k (fait remonter le curseur de 3 lignes) ; 2w (déplace le curseur de 2 mots en avant).

Note : on voit en fin de fichier, la présence de tildes (~) en première colonne de chaque ligne : c'est
pour indiquer que ces lignes ne font pas partie du fichier édité.

9.1.2- Commandes d'insertion

Toutes les commandes d'insertion de chaînes de caractères font passer en mode insertion et doivent
être terminées par le caractère ESC pour repasser en mode
commande.

a chaîne : chaîne insérée immédiatement après le curseur (Append);


A chaîne : chaîne insérée en fin de la ligne courante ;
i chaîne : chaîne insérée devant le curseur (Insert) ;
I chaîne : chaîne insérée au début de la ligne courante ;
o chaîne : chaîne insérée après la ligne courante (Open) ;
O chaîne : chaîne insérée avant la ligne courante.

9.1.3-Commandes de suppression

x : supprime le caractère pointé par le curseur ;

X : supprime le caractère précédant le curseur ;

dd : supprime la ligne courante ;

D : supprime la fin de la ligne courante (y compris le caractère pointé) ;

[n]d[adr] (Delete) : n est un éventuel facteur de répétition et adr est une éventuelle adresse dans le
texte. Dans ce cas, la destruction de texte a lieu depuis le
20
Linux Utilisation

caractère sous le curseur jusqu'à :

- le caractère adressé ou le dernier caractère de l'entité adressée (si l'adresse est celle d'un mot par
ex.) ;
- la ligne adressée en cas d'adressage de ligne (y compris cette ligne) ;
- le caractère précédent l'adressage par un motif.

Ex : 3dw (détruit la fin du mot courant et les 2 mots suivants) ; dG (détruit la fin du fichier à partir
de la ligne courante y compris) ; d/fic (efface les caractères entre
la position du curseur et la 1ère chaîne fic).

9.1.4- Commandes de remplacement

r : remplace le caractère sous le curseur par le caractère tapé ensuite ;


R : remplace les caractères à partir du curseur par le texte entré après R et terminé par ESC ;
s : remplace le caractère sous le curseur par le texte qui suit s, terminé par ESC.

[n]c[adr] (Change) : fonctionne sur le même principe que la commande d (voir plus haut). Un
caractère $ est positionné pour indiquer la fin du texte à remplacer, matérialisant adr. Si la fin de la
modification (ESC) est frappé avant d'atteindre le dollar, tous les caractères situés entre le curseur et
le dollar sont effacés tandis que si le curseur dépasse le dollar, celui-ci s'efface et les caractères qui
le suivent se poussent.

Ex : 2cw (remplace depuis le curseur et le mot suivant); c$ (remplace depuis le curseur jusqu'à la
fin de la ligne).

9.1.5- Commandes de copie et de déplacement de blocs

Déplacer un bloc se fait par une requête d où il est placé dans un tampon. Puis, le curseur est
positionné là où on veut insérer le bloc, insertion qui se fait avec la requête p (Put) après le curseur
(ou sur la ligne suivante) ou avec la requête P avant le curseur (ou sur la ligne précédente). opier un
bloc se fait par une requête y (Yank), d'utilisation similaire à la commande d, qui initialise le
tampon sans ôter le bloc adressé du texte puis par une requête p ou P d'insertion à l'endroit où le
curseur a été positionné.

9.1.6 Commandes de recherche et de remplacement

Pour effectuer une substitution dans tout le texte (ou seulement une partie), on peut procéder de 2
façons :

- avec une combinaison de recherche sur motif (/motif ou ?motif), modification (c) et répétition
(n pour répéter la dernière recherche et . pour répéter la dernière modification)
- avec une requête de substitution en mode ligne (empruntée à l'éditeur ed) : la requête s.

Ex : pour remplacer dans tout le texte motif1 par motif2, on utilise la commande :

:1,$s/motif1/motif2/g

Ceci se fait sans demande de confirmation, demande de confirmation qui peut activée par
l'utilisation de /cg au lieu de /g.
21
Linux Utilisation

9.1.7- Commandes générales

:w : sauvegarde du fichier sous son nom d'entrée ;


:w nom_fichier : sauvegarde du fichier sous le nom nom_fichier ;
:q : sortie de l'éditeur (seulement possible si le texte n'a pas été modifié depuis la dernière
sauvegarde ;
:q! : sortie de l'éditeur (même si le texte a été modifié) ;
:r nom_fichier : introduction du fichier nom_fichier dans le texte après la ligne courante ;
:u (Undo) : annulation la dernière modification du texte ;
:f : obtention des caractéristiques du fichier édité (nom du fichier, numéro de ligne pointée, etc.) ;
:!nom_commande : exécution d'une commande shell.

10. Annexes
chmod - changer le mode d'accés d'un fichier
Syntaxe : chmod mode file ...
cp - copier un fichier
Syntaxe : cp [ -r ] file1 [ file2 ... ] target
cut - découpage des lignes d'un fichier suivant des champs
Syntaxe : cut -clist [ file1 file2 ... ]
cut -flist [ -dchar ] [ -s ] [ file1 file2 ]
du - occupation d'un disque
Syntaxe : du [ -s ] [ - a ] [ file ... ]
find - recherche d'un fichier
Syntaxe : find path-name-list expression
finger - informations sur un utilisateur
Syntaxe : finger [ options ] name ...
kill - détruit un processus
Syntaxe : kill [ - signo ] PID ...
login - connection sur un nouveau compte usager
Syntaxe : login [ name [ env-var ] ] ...
login - -r rhost
logname - affiche le nom d'utilisateur
Syntaxe : logname
lp, cancel - envoyer ou annuler une requête d'impression à une imprimante
Syntaxe : lp [ -c ] [ -ddest ] [ -m ] [ -nnumber ] [ -ooption ] [ -ppriority ] [ -s ] [ -ttitle ]
[ -w ] [ files ... ]
cancel [ ids ] [ printers ] [ -a ] [ -e ] [ -i ] [ -u user ]
ls, l , ll, lsf, lsr, lsx - liste du contenu d'un répertoire
Syntaxe : ls [ -abcdfgilmnopqrstuxACFFLR1 ] [ names ]

22
Linux Utilisation

l [ ls options ] [names ] = ls -m
ll [ ls options ] [names ] = ls -l
lsf [ ls options ] [names ] = ls -f
lsr [ ls options ] [names ] = ls -R
lsx [ ls options ] [names ] = ls -x
mail - écrire ou lire un courrier
Syntaxe : mail [ + ] [ -epqr ] [ -f file ]
mailx - envois de courrier en mode intéractif (ajout de commandes par rapport à mail)
Syntaxe : mailx [ options ] [ name ...]
mkdir - créér un répertoire
Syntaxe : mkdir dirname
more - filtre pour affichage à l'écran (découpage par page d'écran avec attente de frappe
clavier)
Syntaxe : more [ -n ] [ -cdflsu ] [ +linenumber ] [ +/pattern ] [ name ... ]
mv - déplacer ou renommer un fichier
Syntaxe : mv [ -f ] file1 [ file2 ... ] target
Syntaxe : news [ -a ] [ -n ] [ -s ] [ items ]
passwd - changer son mot de passe
Syntaxe : passwd [ name ]
ps - donne l'état des processus
Syntaxe : ps [ -edafl ] [ -c corefile ] [ -s swapdev ] [ -n namelist ] [ -t termlist ] [ -p proclist ]
[ -u uidlist ] [ -g grplist ]
pwd - donne le nom du répertoire courant
Syntaxe : pwd
rm - efface un fichier
Syntaxe : rm [ -fri ] file ...
rmdir - efface un répertoire
Syntaxe : rmdir dir ...
[ +pos1 [ -pos2 ] ] [ file ... ]
tail - coupure de la fin d'un fichier
Syntaxe : tail [ + [ number ] [ lbc [ f ] ] ] [ file ]
vi - éfiteur de texte pleine page
Syntaxe : vi [ - ] [ -v ] [ -r ] [ -R ] [ +command ] [ -l ] [ -t tag ] [ -V ] [ -wsize ] [ -x ]
[ file ... ]
who - donne la liste des utilisateurs connectés sur le système
Syntaxe : who [ -uTlHqpdbrtasA ] [ file ]
whom am i
who am I
write - envoie de messages à un utilisateur connecté
Syntaxe : write user [ line ]

23

Vous aimerez peut-être aussi