|
3.1. INTRODUCTION
Linux est un
système d’exploitation puissant mais son utilisation n’est pas
facile pour les débutants non familiarisés avec l’environnement
UNIX. L’utilisation de la plupart des applications peut s’effectuer
à partir de l’interface graphique X-Window (ou à partir de
surcouches de X-Window telles que les environnements graphiques KDE
et GNOME). Cependant pour certains travaux, il est beaucoup plus
pratique et plus souple d’utiliser des lignes de commande depuis un
environnement shell plutôt que d’utiliser de lourdes solutions
graphiques. De plus, si vous devez intervenir sur votre serveur
Linux à distance (c’est à dire depuis un poste connecté à Internet),
vous allez inévitablement devoir utiliser des lignes de commande.
Qu’appelle t’on
un shell ? Un shell est la liaison la plus élémentaire entre
l’utilisateur et le système d’exploitation, c’est à dire le
programme de gestion de la ligne de commande. Les commandes saisies
sont interprétées par le shell et transmises au système
d’exploitation.
De nombreuses
commandes du shell ressemblent aux commandes MS-DOS : en utilisant
la terminologie UNIX, nous pouvons considérer que le programme
command.com correspond au shell de MS-DOS. Dans les environnements
de type UNIX, il existe plusieurs shells (bash, tcsh, csh, sh,
etc..)
3.2. LES
COMMANDES DE BASE
Pour toutes les
commandes, il est possible d’obtenir de l’aide en tapant
man
suivi du nom de la commande. En tapant une commande suivie du
paramètre
--help,
nous obtenons la liste des paramètres possibles. N’hésitez pas à
recourir à la commande
man ou
au paramètre
--help
dès que vous avez besoin d’aide.
3.2.1. Se
déplacer dans les répertoires (cd)
Lorsque vous
ouvrez une session Unix avec votre login et votre mot de passe, vous
vous retrouvez devant le "prompt" du shell. En fonction du shell
employé, le prompt peut avoir la forme suivante :
[jeans AT meonline test] $
Le mot jeans
signifie que vous vous êtes "logué" sur le compte de l’utilisateur
jeans, AT meonline signifie que vous êtes sur la machine qui porte
le nom meonline et test signifie que vous êtes dans le répertoire
test.
La commande
cd
permet de se déplacer dans les répertoires. La command
ls
permet d’afficher la liste des fichiers d’un répertoire.
Attention, sous
les systèmes Unix, un répertoire est désigné par le symbole
/
ou slash et non pas par un \ ou anti-slash comme c’est le cas
sous DOS.
Exemples d’utilisation de la
commande
cd :
|
COMMANDE |
RESULTAT |
| $ cd / |
déplacement à la
racine du système |
| $ cd /test |
déplacement dans
le répertoire test de la racine |
| $ cd test |
déplacement
dans le répertoire courant test |
| $ cd test/ |
déplacement
dans le répertoire courant test |
| $ cd /usr/local |
déplacement
dans le répertoire apache du répertoire /usr |
| $ cd .. |
recule d'une
branche vers la racine |
| $ cd ~ |
déplacement dans
son répertoire personnel |
| $ cd ~jeans |
déplacement
dans le répertoire personnel de l'utilisateur de jeans |
Etant donné que
le système mémorise le répertoire courant (répertoire dans lequel on
est), on peut utiliser des noms de chemins relatifs :
| $ cd /home/jeans/test |
chemin absolu |
$ cd test |
chemin relatif |
3.2.2. Lister les fichiers d’un répertoire (ls)
La commande
ls
permet de lister le contenu d’un répertoire.
| |
[jeans AT meonline
test] $ cd /bin
[jeans AT meonline /bin] $ ls |
| |
arch
ash
awk
cp
cpio
csh
date |
dd
df
dmesg
fgrep
gawk
grep
gunzip |
gzip
hostname
kill
mount
mt
mv
netstat |
nisdomainname
ping
ps
sh
sleep
sort
stty |
su
sync
tar
ypdomain
zcat
zsh
ls |
La commande
ls
sans arguments donne un listing brut difficile à exploiter. Pour
obtenir des informations plus précises, il est nécessaire d’utiliser
l’argument
-l.
Exercice : Taper la commande ls avec -l en
argument.
Avant de continuer, il est
nécessaire de fournir quelques explications sur la gestion des
fichiers. Sous Linux, un fichier peut représenter :
- un fichier texte ou un fichier exécutable (on
parle alors de fichier binaire) ;
- un répertoire ;
- un périphérique ;
- une référence à un autre fichier (on parle alors
de lien).
Linux étant un système
multi-utilisateur, les utilisateurs doivent par conséquent être
administré. Pour faciliter cette administration, les utilisateurs
sont réunis en groupes. Ce qui permet de paramétrer des droits
spécifiques à chaque groupe : droits en lecture, mais aussi en
écriture et en exécution.
Revenons à l’exemple ci-dessus : les
informations fournies sont relativement nombreuses et sont
regroupées en colonnes :
La première colonne constitué de 10
caractères fournit des informations sur le type de fichier et les
droits associés. Pour le premier caractère :
- le caractère
- représente un
simple fichier ;
- la lettre d
représente un dossier (directory) ;
- la lettre l
représente un lien ;
Il existe d’autres types de fichiers
mais nous ne nous en occuperons pas à ce niveau. Les 9 lettres
suivantes sont groupées trois par trois et indiquent les droits
associés au fichier, c’est à dire par qui et comment un fichier
peut-être utilisé :
Pour chaque triplet :
-
la première lettre indique si le fichier peut
être lu ou pas : r
(readable) si le fichier peut être lu et un tiret sinon ;
- la seconde lettre indique si le fichier peut être
écrit ou pas : w
(writable) ou un tiret ;
-
la troisième lettre indique si le fichier peut
être exécuté : x
pour un binaire exécutable ou un tiret.
Ainsi dans l’exemple précédent, le
fichier lisezmoi.txt peut être lu et écrit pas son propriétaire, il
peut également être lu par les membres de son groupe mais ne peut
être modifié. Pour les autres, la lecture et la modification de ce
fichier ne sont pas autorisés.
Pour vous aider à retenir l’ordre de
présentation des droits (utilisateur / groupe / autres), vous pouvez
utiliser l’astuce mnémotechnique suivante : je, nous, ils.
Notons qu’il existe également des
fichiers cachés sous Linux : lorsque le nom d’un fichier commence
par un point (caractère .), celui-ci n’est visible qu’avec l’option
-a.
Exercice : Taper ls
avec -la en argument depuis votre répertoire personnel.
Les liens ainsi que la modification
des droits associés à un fichier sont abordés un peu plus loin.
3.2.3. Retrouver dans quel répertoire je suis (pwd) et créer
un répertoire (mkdir)
Lorsque l’on se déplace dans un répertoire, le
shell n’affiche que le nom du répertoire dans lequel on se trouve
sans préciser le chemin complet. On peut donc très facilement se
tromper de répertoire : par exemple penser être dans le répertoire
/bin alors que
l’on se trouve dans le répertoire
/usr/local/bin. La
commande pwd
permet de connaître le chemin du répertoire dans lequel on se
trouve.
[jeans AT meonline bin]$ pwd
/usr/local/bin
Pour créer un répertoire il suffit
d’utiliser la commande mkdir avec le nom du répertoire
souhaité en paramètre.
Exercice : Créer un répertoire test
dans votre répertoire personnel.
3.2.4. Copier (cp), supprimer (rm), déplacer et renommer un
fichier (mv)
La copie de fichier s’effectue avec la commande
cp (copy).
La syntaxe de la commande
cp est la suivante :
cp source destination
La source et la destination pouvant être un fichier ou un
répertoire.
Exemples :
|
COMMANDE |
RESULTAT |
| $ cp lisezmoi.txt test.txt |
Duplique le fichier lisezmoi.txt en test.txt |
| $ cp lisezmoi.txt test/ |
Copie le fichier lisezmoi.txt dans le répertoire
test |
| $ cp test/ test2/ |
Copie les fichiers du répertoire test dans le
répertoire testi2 |
| $ cp -R test/ test2/ |
Copie tous les fichiers du répertoire testi -
y compris les sous-répertoires dans le répertoire test2 |
La commande
rm (remove) permet
de supprimer un fichier.
| $ rm lisezmoi.txt |
Supprime le fichier lisezmoi.txt |
L’option
-R permet de
supprimer récursivement tout le contenu d’un répertoire. Attention,
évitez au maximum d’utiliser cette option et surtout ne l’utiliser
jamais en tant que root.
La commande
rmdir (remove
directory) permet de supprimer un répertoire.
| $ rmdir test |
Supprime le répertoire test |
La commande
mv permet de
renommer un fichier.
$ cp lisezmoi.txt test.txt |
Duplique le fichier lisezmoi.txt en test.txt |
$ mv lisezmoi.txt test2.txt |
Renomme le fichier lisezmoi.txt en test2.txt |
 |