Les commandes sous UNIX / LINUX

Linux : les commandes de base en ligne de commande

Architectures matérielles et systèmes d'exploitation · Cours issu de pixees.fr/informatiquelycee

À la « préhistoire » des systèmes d'exploitation, toutes les interactions se faisaient par l'intermédiaire de lignes de commandes : des suites de caractères saisies au clavier. Aujourd'hui, même si les interfaces graphiques permettent d'effectuer la plupart des opérations, il est important de connaître quelques-unes de ces commandes.

Pour saisir des lignes de commandes, on utilise une console (aussi appelée terminal). L'invite de commande ressemble à :

david@PC-Bureau:~$ ← invite de commande
✏️ À faire vous-même 1

Ouvrez une console sur votre système. Identifiez l'invite de commande : elle affiche le nom de l'utilisateur, le nom de la machine et le répertoire courant.


Le système de fichiers en arborescence

Dans les systèmes de type UNIX (GNU/Linux, macOS), les fichiers sont organisés en arborescence. La base de l'arbre s'appelle la racine et se représente par /.

On y trouve des répertoires (dossiers, encadrés ci-dessous) et des fichiers (sans cadre). Contrairement à Windows, les extensions de fichiers ne sont pas obligatoires sous Linux.

/ mnt bin boot dev etc home lib media bash cat grub abi grub cpu max elsa usb0 grub.cfg images documents photos_vac ski fiche.ods boulot photo_1.jpg gdbd_3.jpg rapport.odt
💡 Légende : Les noms encadrés sont des répertoires. Les noms sans cadre sont des fichiers. Les répertoires en bleu sont les répertoires personnels des utilisateurs (home, max, elsa).

Chemin absolu ou chemin relatif ?

Pour indiquer la position d'un fichier dans l'arborescence, il existe deux méthodes :

TypeDéfinitionExemple
Chemin absolu Chemin depuis la racine / /home/elsa/documents/fiche.ods
Chemin relatif Chemin depuis le répertoire courant (pas de / au début) images/photo_vac/photo_1.jpg
💡 Astuce : .. permet de remonter d'un niveau dans l'arborescence. . désigne le répertoire courant. Exemple : ../ski/photo.jpg
💡 Le symbole ~ (tilde) désigne le répertoire personnel de l'utilisateur connecté, soit /home/nom_utilisateur.
Attention : Linux est sensible à la casse. Le répertoire Documents et le répertoire documents sont deux répertoires différents !
✏️ À faire vous-même 2

En vous basant sur une arborescence type, déterminez :

  • Le chemin absolu du fichier cat et du fichier rapport.odt
  • Le chemin relatif vers rapport.odt depuis le répertoire elsa
  • Le chemin relatif vers fiche.ods depuis le répertoire boulot

Les commandes essentielles

cd — Changer de répertoire

La commande cd (change directory) permet de se déplacer dans l'arborescence.

david@PC-Bureau:~$ cd documents
# chemin relatif : se déplace dans "documents" depuis le répertoire courant

david@PC-Bureau:~/documents$ cd /home/elsa/documents
# chemin absolu : même destination, depuis n'importe où

david@PC-Bureau:~/documents$ cd ..
# remonte d'un niveau

david@PC-Bureau:~$ cd
# retour direct au répertoire personnel (~)
✏️ À faire vous-même 3

Depuis le répertoire home, quelle commande permet d'aller dans le répertoire boulot ? Écrivez d'abord la version avec chemin absolu, puis avec chemin relatif.

ls — Lister le contenu d'un répertoire

La commande ls affiche la liste des fichiers et sous-répertoires du répertoire courant.

david@PC-Bureau:~$ cd nsi
david@PC-Bureau:~/nsi$ ls
fiche1.odt  photo.jpg  test/
✏️ À faire vous-même 4

Ouvrez une console et utilisez la commande ls depuis votre répertoire personnel. Identifiez les fichiers et les répertoires présents.

pwd — Afficher le répertoire courant

La commande pwd (print working directory) affiche le chemin absolu du répertoire où vous vous trouvez.

david@PC-Bureau:~/nsi$ pwd
/home/david/nsi
✏️ À faire vous-même 5

Ouvrez une console et utilisez pwd pour vérifier dans quel répertoire vous vous trouvez.


mkdir — Créer un répertoire

La commande mkdir (make directory) crée un nouveau répertoire dans le répertoire courant.

david@PC-Bureau:~$ mkdir mon_dossier
david@PC-Bureau:~$ ls
mon_dossier/
💡 Évitez les espaces et les accents dans les noms de fichiers ou de répertoires. Utilisez le tiret bas _ à la place des espaces.
✏️ À faire vous-même 6

Créez un répertoire nommé test_nsi dans votre répertoire personnel avec la commande mkdir.

touch — Créer un fichier vide

La commande touch crée un fichier vide.

david@PC-Bureau:~$ touch mon_fichier.txt
david@PC-Bureau:~$ ls
mon_fichier.txt

cat — Afficher le contenu d'un fichier

La commande cat affiche dans la console le contenu d'un fichier texte.

david@PC-Bureau:~$ cat toto.txt
coucou

cp — Copier un fichier

La commande cp copie un fichier d'un emplacement vers un autre. Le nom du fichier de destination peut être différent de celui de la source.

david@PC-Bureau:~$ cp fic.txt info/fic.txt
# copie fic.txt dans le répertoire info/

david@PC-Bureau:~$ cp fic.txt info/fiche.txt
# copie et renomme en même temps

rm — Supprimer un fichier ou un répertoire

La commande rm supprime un fichier. Pour supprimer un répertoire et tout son contenu, on utilise l'option -r.

david@PC-Bureau:~$ rm fichier.txt
# supprime un fichier

david@PC-Bureau:~$ rm -r mon_dossier
# supprime un répertoire et tout son contenu
⚠️ Attention ! La commande rm est irréversible : il n'y a pas de corbeille ! La commande rm * efface tous les fichiers du répertoire courant. La commande rm -r * efface tous les fichiers et répertoires. À manipuler avec la plus grande prudence.
✏️ À faire vous-même 7
  • Placez-vous dans le répertoire test_nsi créé précédemment
  • Créez un fichier test.txt avec touch
  • Créez un répertoire doc avec mkdir
  • Copiez test.txt dans doc avec cp
  • Supprimez le répertoire doc et son contenu avec rm -r

mv — Déplacer un fichier

La commande mv (move) permet de déplacer un fichier dans un autre répertoire. Attention : il s'agit d'un déplacement, pas d'une copie — le fichier d'origine disparaît.

david@PC-Bureau:~$ mv toto.txt titi/
# déplace toto.txt dans le répertoire titi/

man — Obtenir de l'aide sur une commande

La commande man affiche le manuel d'utilisation d'une autre commande. Très utile pour découvrir toutes les options disponibles.

david@PC-Bureau:~$ man ls
# affiche la documentation complète de la commande ls
# appuyer sur q pour quitter

Gestion des utilisateurs et des droits

Les systèmes de type UNIX sont des systèmes multi-utilisateurs : plusieurs personnes peuvent partager le même ordinateur, chacune avec son propre environnement de travail et ses propres droits.

Un utilisateur particulier possède tous les droits sur le système : c'est le super utilisateur, appelé root ou administrateur. Il peut attribuer ou retirer des droits aux autres utilisateurs. Pour simplifier la gestion, il est aussi possible de créer des groupes d'utilisateurs et d'attribuer des droits à un groupe entier.

Les 3 types de droits

Chaque fichier ou répertoire possède trois types de droits :

SymboleDroitSignification
r Lecture (read) Peut-on lire le contenu du fichier ?
w Écriture (write) Peut-on modifier le contenu du fichier ?
x Exécution (execute) Peut-on exécuter ce fichier (programme) ? Pour un répertoire : peut-on le parcourir ?

Les 3 types d'utilisateurs

Ces droits sont définis séparément pour trois catégories d'utilisateurs :

SymboleCatégorieSignification
u Propriétaire (user) La personne qui a créé le fichier (par défaut)
g Groupe (group) Les utilisateurs appartenant au groupe associé au fichier
o Autres (others) Tous les autres utilisateurs
a Tous (all) Raccourci pour modifier u, g et o en même temps

ls -l — Afficher les droits d'un fichier

L'option -l de la commande ls affiche des informations détaillées, dont les droits de chaque fichier.

david@PC-Bureau:~/nsi$ ls -l
-rw-r--r-- 1 david david 0 avril 13 19:58 fic.txt
drwxr-xr-x 2 david david 4096 avril 13 20:05 info

Décryptons la ligne -rw-r--r-- 1 david david 0 avril 13 19:58 fic.txt :

ChampValeurSignification
Type-Fichier (d pour répertoire)
Droits propriétairerw-Lecture ✓ — Écriture ✓ — Exécution ✗
Droits grouper--Lecture ✓ — Écriture ✗ — Exécution ✗
Droits autresr--Lecture ✓ — Écriture ✗ — Exécution ✗
PropriétairedavidNom de l'utilisateur propriétaire
GroupedavidNom du groupe associé
Taille0Taille en octets (fichier vide ici)
Nomfic.txtNom du fichier
💡 Pour un répertoire, le premier caractère est d au lieu de -. Le droit x sur un répertoire signifie qu'on peut le parcourir (entrer dedans avec cd).

chmod — Modifier les droits d'un fichier

La commande chmod (change mode) permet au propriétaire d'un fichier (ou à root) de modifier les permissions. Sa syntaxe est :

# Syntaxe générale :
chmod [u|g|o|a] [+|-|=] [r|w|x] nom_du_fichier

david@PC-Bureau:~$ chmod o+w toto.txt
# ajoute le droit d'écriture aux "autres" sur toto.txt

david@PC-Bureau:~$ chmod g-wx toto.txt
# retire écriture ET exécution au groupe sur toto.txt

david@PC-Bureau:~$ chmod a+r rapport.txt
# donne le droit de lecture à tout le monde

david@PC-Bureau:~$ chmod u+x script.sh
# rend le script exécutable pour son propriétaire

Les symboles liés aux opérations :

OpérateurEffet
+Ajoute une permission
-Supprime une permission
=Réinitialise et définit exactement les permissions indiquées
⚠️ Rappel : L'utilisateur root a tous les droits sur l'ensemble des fichiers et répertoires du système. Il peut utiliser chmod sur n'importe quel fichier, même s'il n'en est pas le propriétaire.
✏️ À faire vous-même 8

Dans le répertoire test_nsi, créez un fichier titi.txt. Utilisez ls -l pour vérifier ses permissions par défaut. Puis :

  • Retirez le droit de lecture aux autres utilisateurs
  • Ajoutez le droit d'exécution au propriétaire
  • Vérifiez à nouveau avec ls -l que les droits ont bien changé

Récapitulatif des commandes

CommandeRôleExemple
pwd Afficher le répertoire courant pwd
ls Lister le contenu du répertoire courant ls
ls -l Lister avec les droits et détails ls -l
cd Changer de répertoire cd documents
mkdir Créer un répertoire mkdir test_nsi
touch Créer un fichier vide touch fiche.txt
cat Afficher le contenu d'un fichier cat fiche.txt
cp Copier un fichier cp fic.txt doc/fic.txt
mv Déplacer un fichier mv fic.txt archives/
rm Supprimer un fichier rm fic.txt
rm -r Supprimer un répertoire et son contenu rm -r mon_dossier
man Afficher le manuel d'une commande man ls
chmod Modifier les droits d'un fichier chmod o+w fic.txt

Source : pixees.fr/informatiquelycee — Licence CC BY-SA