Académique Documents
Professionnel Documents
Culture Documents
L'interface de commande, ou shell, permet d'entrer des commandes au clavier et de recevoir des messages en
retour. Elle permet également de définir des variables d'environnement, comme par exemple le type de terminal.
Les variables d'environnement sont un moyen de personnaliser votre environnement de travail, ainsi que
certains programmes. Par exemple, dans chaque fenêtre apparaît à la suite du login ou d'une exécution de
commande réussie, la chaîne de caractères (appelée prompt):
[dupont@smapc001 dupont]$
La dernière partie (dupont) de ce prompt, est la fin du chemin absolu (voir plus bas) du répertoire courant. Elle
varie donc en fonction du niveau du répertoire dans lequel on se trouve. Le shell utilise la variable $PROMPT
pour définir l'allure de l'invite ([dupont@smapc001 dupont]$).
Les variables d'environnement commencent par un dollar ($) et, par convention, sont écrites en majuscules. Seul
le shell tcsh sera présenté, car c'est l'un des plus pratiques et c'est également celui qui se trouve sur vos
machines. Les instructions suivantes permettent de les manipuler pour le shell tcsh :
Fichiers et répertoires
Sous Linux/UNIX, les fichiers sont organisés d'après une architecture en arborescence, similaire à celle utilisée
par les systèmes DOS ou Windows. Les fichiers sont disposés en répertoires, eux-mêmes pouvant être
subdivisés en sous-répertoires. Chaque étudiant possède un répertoire principal, ou répertoire maison (« home
directory », noté ~ ou $HOME). Seul le propriétaire pourra lire ou écrire dans ce répertoire. Ce dernier sera
également accessible depuis n'importe quelle machine des salles MA182 et MA186.
Le chemin, absolu ou relatif, est une notion qu'il faut bien maîtriser. Il représente l'adresse d'un fichier ou d'un
répertoire dans l'arbre du système Linux/UNIX. On différencie le chemin relatif du chemin absolu:
Le pathname absolu est l'adresse complète d'un fichier quelconque du réseau, donnée à partir de la racine (/); le
pathname relatif est le chemin d'accès au fichier file en partant du répertoire courant.
Commandes principales
Les commandes sont introduites à la suite du prompt. Une commande peut être suivie d'une série d'options et/ou
d'une série d'arguments. Afin d'être cohérent avec le manuel de référence nous présentons les différentes
commandes sous la forme :
NomDeCommande [-xyz...] [nom]
[-xyz...] chaque lettre représente une option ; les options peuvent être utilisées séparément ou de
manière combinée ;
[nom] un argument est un nom de fichier, de répertoire, etc.
cat file(s) concatène et affiche (sans interruption) le(s) fichier(s) file(s) à l'écran.
more [file] affiche à l'écran le fichier file, page écran par page écran ; pour passer d'une page
écran à la suivante, pressez sur la barre d'espace ; pour passer à la ligne suivante,
pressez sur la touche « retour de chariot » ; pour sortir, pressez sur la touche 'q'.
nedit, xemacs [file] éditeurs de fichiers.
quota -v place disponible. Cette commande vous permet de connaître l'espace disponible sur
votre compte, ainsi que l'espace occupé par vos fichiers. Attention : s'il vous arrive de
dépasser l'espace autorisé pour vos fichiers, vous ne pourrez plus rien écrire sur
votre compte; il se peut même que vous ne puissiez plus vous connecter.
g++ [options] file(s).cc compilation et/ou édition de liens d'un ou plusieurs fichiers contenant des
file(s).o programmes C++ ou des modules objets ; sans l'option -c, la compilation est
directement suivie de l'édition de liens ; on obtient le fichier exécutable, mais le fichier
de compilation (extension '.o') n'existe pas ;
-c n'exécute que la compilation (vérification de la syntaxe), c'est-à-dire la création du
fichier objet '.o' ; l'édition de liens se passe dans une deuxième étape (voir exemples
en annexe) ;
-g permet l'utilisation du debugger lors de l'exécution ;
-o name permet de donner un nom au fichier de sortie. Avec cette option, le fichier s'appelle
name, au lieu de a.out (pour les exécutables) et file.o (pour les objets).
gzip fichier permet la compression d’un fichier. Le nouveau fichier sera fichier.gz ;
gunzip fichier.gz permet de décompresser un fichier. Ce fichier doit être du type .gz.
top permet d’observer la vie d’un système et de détecter les processus « gourmands ».
ps affiche la liste des processus en cours dans une shell ;
ps -fu dupont affiche tous les processus de l’utilisateur dupont en cours sur une machine ;
kill PID termine le processus avec numéro d’identification PID.
Redirection
Par défaut les périphériques d'entrée et de sortie des machines sont respectivement le clavier et l'écran.
L'utilisateur peut modifier à sa guise cette convention. Il faut, pour ce faire, spécifier une nouvelle direction lors de
l'appel de la commande. On ajoute dans le cas d'une redirection de l'entrée le symbole '<' et dans le cas d'une
redirection de la sortie le symbole '>' suivi par la nouvelle entrée/sortie. Il s'agit en général d'un nom de fichier ou
d'un chemin. On peut donner comme exemple la commande cat.
cat file1 > file2 le résultat de la commande cat va se trouver dans le fichier file2 plutôt qu'à l'écran ;
le contenu de file2 est écrasé ;
cat file1 >> file2 le résultat de la commande cat va à la fin du fichier file2, plutôt qu'à l'écran
(concaténation).
Droits d'accès
Pour chacune des trois catégories d'utilisateurs : user (u), group (g), others (o), il y a des droits d'accès aux
fichiers et répertoires : read (r), write (w), execute (x). On peut trouver ces informations par la commande ls -l
file. On peut aussi modifier ces droits au moyen de la commande : chmod. Elle s'utilise de deux manières.
Sachant que read = 4, write = 2, execute = 1, on a la première commande: chmod xyz file où x, y, z ∈
{0,4,5,6,7}.
Exemple 1 : chmod 754 file attribue les accès suivants :
2) g++ -g prog.cc
Lance la compilation, effectue l'édition de liens, prépare l'exécutable de manière à pouvoir utiliser le
debugger et génère le module exécutable a.out.
ddd a.out
Lance l'exécution du programme sous le contrôle du debugger.
3) g++ -c prog.cc
Lance la compilation (sans l'édition de liens) et génère le module objet prog.o.
g++ -o exec prog.o
Lance l'édition de liens et renomme l'exécutable (exec).
exec
Lance l'exécution du programme.