Ce document constitue un guide pratique et concis, destiné aux étudiants universitaires souhaitant acquérir une maîtrise des systèmes d'exploitation Unix/Linux. Il vise à présenter les commandes fondamentales et les concepts clés nécessaires à une utilisation efficace de ces environnements.
Il couvre les notions suivantes:
- Les commandes de base pour la navigation et la manipulation de fichiers et répertoires.
- L'arborescence classique des systèmes Unix et la gestion des droits d'accès.
- Les processus système, l'édition de fichiers (VI) et les opérations d'administration courantes.
Introduction aux Commandes Essentielles Unix/Linux
Ce guide fournit un aperçu détaillé des commandes fondamentales et des concepts clés pour naviguer et administrer un système Unix/Linux, de la gestion des fichiers aux permissions et à l'arborescence du système.
Naviguer dans les Répertoires (cd)
La commande cd (Change Directory) est utilisée pour se déplacer entre les répertoires du système de fichiers.
cd ..: Remonte d'un niveau dans l'arborescence des répertoires.cd /: Retourne au répertoire racine du système.cd -: Retourne au répertoire précédent visité.cd [CHEMIN]: Change le répertoire courant pour le chemin spécifié (absolu ou relatif).
Lister les Fichiers et Répertoires (ls)
La commande ls (List Directory Contents) permet d'afficher le contenu d'un répertoire.
ls -l: Affiche les attributs détaillés des fichiers et répertoires (permissions, propriétaire, taille, date, etc.).ls -d: Affiche uniquement les répertoires spécifiés, pas leur contenu.ls -a: Liste tous les fichiers du répertoire, y compris les fichiers cachés (ceux commençant par un point).ls -m: Affiche les fichiers en les séparant par une virgule sur une seule ligne.ls -t: Trie et affiche les fichiers par date de dernière modification, du plus récent au plus ancien.ls -lu: Affiche les fichiers triés par date du dernier accès et indique cette date.ls -F: Ajoute un indicateur (/, *, @, etc.) après le nom des fichiers pour en identifier le type (répertoire, exécutable, lien symbolique).ls -S: Trie et affiche les fichiers par ordre de taille décroissante.ls -X: Trie et affiche les fichiers par extension alphabétiquement.ls -r: Inverse l'ordre de tri (par exemple, alphabétique inverse pour les noms de fichiers).ls -alR /: Affiche tous les fichiers d'un système, y compris les cachés, de manière récursive à partir de la racine.ls -alR | grep doc: Affiche tous les fichiers d'un système dont le nom ou les informations contiennent la chaîne "doc".
Copier des Fichiers et Répertoires (cp)
La commande cp (copy) est utilisée pour copier des fichiers et des répertoires.
cp [SOURCE] [DESTINATION]: Copie le fichier ou le répertoire SOURCE vers la DESTINATION. Par défaut, demande confirmation si la destination écrase un fichier existant.cp -i: Demande une confirmation interactive avant d'écraser un fichier existant.cp -l: Crée un lien physique (hard link) plutôt qu'une copie du fichier.cp -s: Crée un lien symbolique (soft link) vers le fichier source.cp -p: Préserve les attributs du fichier source (permissions, dates de modification et d'accès) lors de la copie.cp -r: Copie de manière récursive l'ensemble d'un répertoire et de ses sous-répertoires.cp -b: Crée une sauvegarde du fichier de destination s'il existe avant de le remplacer par la nouvelle copie. La sauvegarde est renommée en ajoutant un tilde (~) à la fin du nom.
Supprimer des Fichiers et Répertoires (rm & rmdir)
Ces commandes sont utilisées pour supprimer des éléments du système de fichiers. Soyez vigilant, la suppression est souvent irréversible.
rm [FICHIER]: Supprime les fichiers spécifiés.rm -r [RÉPERTOIRE]: Supprime de manière récursive un répertoire et tout son contenu (fichiers et sous-répertoires).rm -f [FICHIER]: Force la suppression des fichiers sans demande de confirmation, même s'ils sont protégés en écriture.rmdir [RÉPERTOIRE]: Supprime un répertoire, mais seulement s'il est vide.rmdir -p rep1/rep2/rep3: Supprime un répertoire et ses répertoires parents s'ils deviennent vides après la suppression.
Créer des Répertoires (mkdir)
La commande mkdir (make directory) est utilisée pour créer de nouveaux répertoires.
mkdir [RÉPERTOIRE]: Crée un nouveau répertoire avec le nom spécifié.mkdir -p rep1/rep2/rep3: Crée un répertoire et tous les répertoires parents nécessaires dans le chemin spécifié s'ils n'existent pas.
Déplacer ou Renommer un Fichier (mv)
La commande mv (move) est utilisée pour déplacer ou renommer des fichiers et des répertoires.
mv [SOURCE] [DESTINATION]: Déplace un fichier ou un répertoire SOURCE vers une DESTINATION, ou renomme SOURCE en DESTINATION si la destination est un nom de fichier dans le même répertoire.mv -b: Crée une sauvegarde du fichier de destination s'il existe avant de le remplacer.mv -i: Demande une confirmation avant d'écraser un fichier existant.mv -u: Déplace un fichier uniquement si le fichier source est plus récent que le fichier de destination ou si le fichier de destination n'existe pas.
Recherche, Analyse et Modification de Contenus
find [CHEMIN] -name [NOM]: Recherche des fichiers dans une arborescence de répertoires, avec la possibilité de spécifier un nom (accepte les jokers).locate [NOM]: Recherche rapidement des fichiers dans une base de données pré-indexée.which [COMMANDE]: Localise le chemin complet d'un fichier exécutable dans le PATH de l'utilisateur.diff [FICHIER1] [FICHIER2]: Affiche les différences ligne par ligne entre deux fichiers texte.cmp [FICHIER1] [FICHIER2]: Compare deux fichiers octet par octet et signale la première différence trouvée.cat [FICHIER]: Concatène et affiche le contenu d'un ou plusieurs fichiers sur la sortie standard.more [FICHIER]: Affiche le contenu d'un fichier écran par écran, permettant une navigation paginée.sort [FICHIER]: Trie les lignes d'un fichier texte.df: Affiche l'espace disque utilisé et disponible des systèmes de fichiers montés.sed: Éditeur de flux qui permet d'effectuer des transformations textuelles sur un fichier ou un flux d'entrée, affichant le résultat sans modifier le fichier original par défaut.du [CHEMIN]: Estime l'espace disque utilisé par les fichiers et répertoires à partir du chemin spécifié.wc [FICHIER]: Compte le nombre de lignes, de mots et de caractères dans un fichier.file [FICHIER]: Détermine le type d'un fichier (texte, image, exécutable, etc.).grep [OPTIONS] [MOTIF] [FICHIER]: Recherche un motif (expression rationnelle) dans un ou plusieurs fichiers.grep -c: Affiche uniquement le nombre d'occurrences du motif trouvé dans le fichier.grep -n: Affiche les lignes correspondantes précédées de leur numéro de ligne.
Autres Commandes Utiles
pwd: Affiche le chemin absolu du répertoire de travail actuel.man [COMMANDE]: Affiche le manuel d'aide (manual page) pour une commande spécifiée.emacs,joe: Éditeurs de texte populaires sous Linux pour modifier des fichiers.ln: Crée des liens (physiques ou symboliques) entre fichiers ou répertoires.who: Affiche les utilisateurs actuellement connectés au système.free: Affiche la quantité de mémoire physique et swap libre et utilisée sur le système.clear: Efface le contenu du terminal.touch [FICHIER]: Met à jour la date et l'heure de dernier accès et de dernière modification d'un fichier. Si le fichier n'existe pas, il est créé.logout: Déconnecte l'utilisateur de sa session shell.logname: Affiche le nom d'utilisateur de la personne qui s'est connectée.
Démarrage, Redémarrage & Arrêt
startx: Démarre le système graphique X Window System sous Linux.reboot: Redémarre le système immédiatement.shutdown -r [TEMPS]: Arrête le système puis le redémarre à un moment spécifié.shutdown -h [TEMPS]: Arrête le système de manière sécurisée à un moment spécifié.exit: Ferme la session shell actuelle.
Monter et Démonter un Système de Fichiers
La commande mount est cruciale pour rendre les systèmes de fichiers (partitions, disques, clés USB, etc.) accessibles dans l'arborescence Linux.
mount [PÉRIPHÉRIQUE] [POINT_DE_MONTAGE]: Monte un système de fichiers à un point de montage spécifié. La commandemountrequiert généralement les privilèges de l'utilisateur root. Le fichier de configuration/etc/fstabliste les systèmes de fichiers à monter automatiquement au démarrage.- Pour convertir automatiquement les fins de ligne des fichiers ASCII MS-DOS au format Unix lors du montage, utilisez l'option
conv=auto.mount -o conv=auto -t vfat /dev/hda1 /dos/c umount [POINT_DE_MONTAGE]: Démonte un système de fichiers. Le point de montage ne doit pas être en cours d'utilisation (aucun processus ne doit accéder aux fichiers qu'il contient).
Exemples de Montage de Périphériques
- Partition Dos :
mount -t vfat /dev/hda1 /dos/cMonte la première partition du premier disque IDE (
/dev/hda1) formatée en FAT (vfat) sur le point de montage/dos/c. - Lecteur de CD-ROM :
mount -t iso9660 /dev/hdb /cdromMonte le CD-ROM (ici sur
/dev/hdb) avec le système de fichiersiso9660sur/cdrom.mount /dev/cdrom /cdromUtilise un lien symbolique courant (
/dev/cdrom) pour monter le CD-ROM sur/cdrom. L'option-o ro(ou-r) permet de monter un périphérique en lecture seule, ce qui est courant pour les CD-ROM. - Lecteur de disquettes :
mount /dev/fd0 /floppyMonte le lecteur de disquettes (
/dev/fd0) sur le point de montage/floppy.
Copie d'une Disquette
cp /dev/fd0 disk.img: Copie le contenu brut du lecteur de disquettes (/dev/fd0) vers un fichier image (disk.img).cp disk.img /dev/fd0: Copie le fichier image (disk.img) vers le lecteur de disquettes (/dev/fd0).
Archivage et Compression
gzip [FICHIER]: Compresse un fichier unique au format.gz.gzip -d [FICHIER.gz]: Décompresse un fichier.gz.tar -zcvf /chemin/archive.tar.gz /chemin/a/archiver: Crée une archive compressée (.tar.gz) du répertoire spécifié.-z: Compresse l'archive avec gzip.-c: Crée une nouvelle archive.-v: Affiche les noms des fichiers traités (mode verbeux).-f: Spécifie le nom du fichier d'archive.
tar -zxcf /chemin/archive.tar.gz -C /repertoire/destination: Extrait le contenu d'une archive compressée dans un répertoire cible.-x: Extrait les fichiers de l'archive.-C: Change de répertoire avant l'extraction.
Administration Système Linux
Gestion des Tâches Planifiées
at [HEURE]: Exécute des commandes ou des scripts à une heure spécifiée ultérieurement.cron: Daemon (service d'arrière-plan) de planification de tâches qui exécute des commandes ou scripts à intervalles réguliers.crontab: Fichier de configuration qui contient la liste des tâches (jobs) et des commandes à exécuter parcron, avec leur planification.
Gestion des Utilisateurs et des Droits
chmod [PERMISSIONS] [FICHIER]: Modifie les permissions d'accès aux fichiers et répertoires.chown [UTILISATEUR][:GROUPE] [FICHIER]: Change le propriétaire et/ou le groupe d'un fichier ou répertoire.adduser [UTILISATEUR]: Crée un nouveau compte utilisateur sur le système.passwd [UTILISATEUR]: Modifie le mot de passe d'un utilisateur.chfn [UTILISATEUR]: Change les informations utilisateur (nom complet, numéro de bureau, téléphone, etc.).userdel [UTILISATEUR]: Supprime un compte utilisateur.
Commandes Système Diverses
mkbootdisk: Crée une disquette de démarrage (boot disk) pour le système.lilo -u: Désinstalle le chargeur de démarrage LILO.
Messages Système et Informations Matérielles
Les fichiers du répertoire /proc fournissent des informations dynamiques sur le système.
cat /proc/interrupts: Affiche les interruptions matérielles (IRQ) utilisées par les périphériques.cat /proc/ioports: Affiche les plages de ports d'entrée/sortie (I/O) utilisées par les périphériques.cat /proc/dma: Affiche l'utilisation des canaux d'accès direct à la mémoire (DMA).cat /proc/pci: Affiche les informations sur les périphériques PCI connectés.
Gestion des Processus
Ces commandes permettent de surveiller et de contrôler les programmes en cours d'exécution.
top: Affiche en temps réel les processus actifs, leur utilisation du CPU, de la mémoire, etc.ps [OPTIONS]: Affiche les processus en cours d'exécution sur le système.pstree: Affiche les processus sous forme d'arborescence, montrant les relations parent-enfant.kill [SIGNAL] [PID]: Envoie un signal (par défaut SIGTERM) à un processus spécifié par son PID (Process ID) pour le terminer. Pour trouver le PID, on peut utiliserpsoutop.
Éditer un Fichier avec vi
vi est un éditeur de texte puissant mais avec une courbe d'apprentissage. Il fonctionne en deux modes principaux :
- Mode commande : Pour la navigation, la suppression, la copie, le collage et l'exécution d'autres commandes. C'est le mode par défaut au démarrage de
vi. - Mode insertion : Pour taper du texte.
Utilisation Basique de vi
- Démarrer
vi: Tapezvi [NOM_FICHIER]pour ouvrir ou créer un fichier. - Passer en mode insertion :
i: Insérer du texte avant le curseur.a: Ajouter du texte après le curseur.o: Ajouter une nouvelle ligne en dessous de la ligne actuelle et passer en mode insertion.O: Ajouter une nouvelle ligne au-dessus de la ligne actuelle et passer en mode insertion.A: Ajouter du texte à la fin de la ligne actuelle.
- Quitter le mode insertion : Appuyez sur la touche
Échap. La mention "INSERT" disparaît généralement en bas de l'écran. - Supprimer du texte (en mode commande) :
- Déplacez le curseur sur le caractère à supprimer, puis appuyez sur
x. X: Supprime le caractère situé avant le curseur.dd: Supprime la ligne courante.
- Déplacez le curseur sur le caractère à supprimer, puis appuyez sur
- Sauvegarder et quitter (en mode commande) :
:w: Sauvegarde le fichier sans quitter.:wq: Sauvegarde le fichier et quittevi.:q!: Quittevisans sauvegarder les modifications (force la sortie).
- Annuler la dernière commande (en mode commande) :
u: Annule la dernière action effectuée.
Structure du Système et Permissions
Organisation des Répertoires : Arborescence UNIX Classique
L'arborescence des répertoires sous Linux suit une structure standardisée, définie par le Filesystem Hierarchy Standard (FHS).
/: Le répertoire racine, point de départ de toute l'arborescence des fichiers. Tous les autres répertoires en dépendent./bin: Contient les binaires fondamentaux (commandes essentielles) accessibles à tous les utilisateurs./dev: Contient les fichiers dits "spéciaux" qui représentent les périphériques matériels (par exemple,/dev/hda1pour la première partition IDE,/dev/sda1pour la première partition SCSI,/dev/fd0pour le lecteur de disquettes)./etc: Contient les fichiers de configuration du système. Par exemple,/etc/passwdcontient des informations sur les comptes utilisateurs./sbin: Contient les binaires système (commandes d'administration) essentiels, généralement réservés à l'utilisateur root. Par exemple, la commandeshutdown./home: Répertoire qui contient les répertoires personnels de chaque utilisateur du système. Chaque répertoire utilisateur est créé automatiquement lors de la création d'un compte./lost+found: Répertoire destiné à stocker les fichiers récupérés après une vérification du système de fichiers (parfsck) suite à des erreurs disque./tmp: Répertoire accessible en écriture par tous les utilisateurs, destiné aux fichiers temporaires. Son contenu est généralement effacé au redémarrage./var/spool: Répertoire des fichiers qui servent de file d'attente, comme les travaux d'impression ou les courriels en attente./usr: Contient la majorité des utilitaires et applications multi-utilisateurs./usr/bin: Binaires des applications et scripts disponibles pour les utilisateurs./usr/X11R6: Contient les fichiers liés à XFree86 (bibliothèques, binaires, documentation du système X Window)./usr/include: Contient les fichiers d'en-tête (headers) nécessaires à la programmation./usr/lib: Contient les bibliothèques logicielles./usr/local: Conçu pour les programmes et données installés localement par l'administrateur, afin de ne pas interférer avec les paquets du système.
Les Droits sous Linux
Les permissions d'accès aux fichiers et répertoires sont gérées par trois types de droits et pour trois catégories d'utilisateurs.
Types de Droits
- Droit de lecture (
rpour Read) :- Pour un fichier : Autorise la lecture de son contenu.
- Pour un répertoire : Autorise à lister les fichiers qu'il contient, si le droit d'exécution sur ce répertoire est également accordé.
- Droit d'écriture (
wpour Write) :- Pour un fichier : Autorise à en modifier le contenu.
- Pour un répertoire : Autorise à créer des fichiers et à en supprimer dans ce répertoire, même si l'on n'est pas le propriétaire des fichiers.
- Droit d'exécution (
xpour Execute) :- Pour un fichier : Autorise l'exécution du fichier (s'il s'agit d'un script ou d'un programme).
- Pour un répertoire : Autorise l'utilisateur à le traverser, c'est-à-dire à y accéder ou à accéder à ses sous-répertoires.
Catégories d'Utilisateurs
- Propriétaire (
upour User) : L'utilisateur qui possède le fichier ou le répertoire. - Groupe (
gpour Group) : Le groupe d'utilisateurs associé au fichier ou au répertoire. - Autres (
opour Others) : Tous les autres utilisateurs du système. - Tous (
apour All) : Représente l'ensemble des catégories (propriétaire, groupe, autres).
Analyse d'une Ligne d'Exemple (ls -l)
Une commande ls -l affiche des informations détaillées pour chaque fichier, organisées en plusieurs champs :
-rwxr-xr-x 1 Dupond labo2 3528 04 août 02 10:10 linux
- Type de fichier et permissions :
- Le premier caractère indique le type (
-pour un fichier,dpour un répertoire,lpour un lien symbolique). - Les neuf caractères suivants sont divisés en trois groupes de trois, représentant les permissions pour :
- Le propriétaire (
rwx: lecture, écriture, exécution). - Le groupe (
r-x: lecture, exécution). - Les autres (
r-x: lecture, exécution).
- Le propriétaire (
- Le premier caractère indique le type (
- Nombre de liens physiques : Indique le nombre de liens physiques vers le fichier ou le nombre d'entrées (pour un répertoire).
- Nom du propriétaire : L'utilisateur qui possède le fichier ou le répertoire.
- Nom du groupe : Le groupe auquel appartient le fichier ou le répertoire.
- Taille : La taille du fichier en octets (ou la taille du répertoire en blocs).
- Date et heure : Date et heure de la dernière modification.
- Nom : Nom du fichier, du répertoire ou du lien.
Modification des Permissions avec chmod
La commande chmod permet de modifier les permissions d'accès aux fichiers. Seul le propriétaire du fichier ou l'utilisateur root peut modifier ces permissions.
- Syntaxe symbolique :
chmod a+w fichier.txtAccorde le droit d'écriture (
w) à tous les utilisateurs (a) surfichier.txt. Pour supprimer un droit, remplacez+par-.chmod go-wr fichier.txtSupprime les droits d'écriture (
w) et de lecture (r) pour le groupe (g) et les autres (o) surfichier.txt. - Syntaxe numérique (octale) : Chaque droit a une valeur numérique : lecture (4), écriture (2), exécution (1). La somme de ces valeurs définit les permissions pour chaque catégorie.
chmod 644 [FICHIER]: Droits d'accès par défaut courants.- Propriétaire :
rwx(4+2+0 = 6) - Lecture et écriture. - Groupe :
r--(4+0+0 = 4) - Lecture seule. - Autres :
r--(4+0+0 = 4) - Lecture seule.
- Propriétaire :
chmod 755 [FICHIER]: Droits d'accès les plus utilisés pour les répertoires ou exécutables.- Propriétaire :
rwx(4+2+1 = 7) - Lecture, écriture, exécution. - Groupe :
r-x(4+0+1 = 5) - Lecture et exécution. - Autres :
r-x(4+0+1 = 5) - Lecture et exécution.
- Propriétaire :
chmod 777 [FICHIER]: Droits d'accès totaux (à utiliser avec prudence).- Propriétaire :
rwx(4+2+1 = 7) - Lecture, écriture, exécution. - Groupe :
rwx(4+2+1 = 7) - Lecture, écriture, exécution. - Autres :
rwx(4+2+1 = 7) - Lecture, écriture, exécution.
- Propriétaire :
Qu'est-ce qu'un Shell ?
Sous Unix et Linux, un shell est un interpréteur de commandes en mode texte. Il s'agit de la partie du système d'exploitation qui sert d'interface entre l'utilisateur et le noyau du système. Il permet aux utilisateurs d'interagir avec le système en tapant des commandes, et il peut également exécuter des scripts (séquences de commandes stockées dans un fichier exécutable, comme les scripts Bash).
Foire Aux Questions (FAQ)
- Qu'est-ce que la commande
chmodet pourquoi est-elle importante ? - La commande
chmod(change mode) permet de modifier les permissions d'accès aux fichiers et répertoires. Elle est cruciale pour la sécurité et le bon fonctionnement du système, car elle contrôle qui peut lire, écrire ou exécuter un fichier, empêchant ainsi les accès non autorisés ou les modifications accidentelles. - Quelle est la différence principale entre
rmetrmdir? - La commande
rm(remove) est utilisée pour supprimer des fichiers et, avec l'option-r(récursive), des répertoires et leur contenu. La commandermdir(remove directory), en revanche, ne peut supprimer que des répertoires vides. Si un répertoire contient des fichiers ou d'autres répertoires,rmdiréchouera. - Comment puis-je visualiser l'espace disque utilisé sur mon système Linux ?
- Pour visualiser l'espace disque utilisé et disponible sur les systèmes de fichiers montés, vous pouvez utiliser la commande
df(disk free). Pour estimer l'espace disque consommé par un répertoire et ses sous-répertoires, la commandedu(disk usage) est plus appropriée.