Product SiteDocumentation Site

Annexe B. Petit cours de rattrapage

Bien que cet ouvrage s'adresse principalement aux administrateurs ou utilisateurs avancés, nous ne souhaitons pas exclure les novices désireux de se former. Nous rappelons donc dans cette partie quelques concepts informatiques fondamentaux que l'on côtoie en exploitant un ordinateur sous Unix.

B.1. Interpréteur de commandes et commandes de base

Dans le monde Unix, l'administrateur est inévitablement confronté à la ligne de commande, ne serait-ce que dans les cas où le système ne démarre plus correctement et propose uniquement ce moyen comme accès de secours. Il est donc important de savoir se débrouiller un minimum dans un interpréteur de commandes.
Les commandes présentées dans cette section le sont de manière assez rapide. Il ne faut pas hésiter à consulter les pages de manuels correspondantes pour découvrir les nombreuses options disponibles.

B.1.1. Déplacement dans l'arborescence et gestion des fichiers

Après connexion, la commande pwd (print working directory, afficher le répertoire de travail) indique l'emplacement courant. La commande cd répertoire (change directory, changer de répertoire) sert à naviguer dans l'arborescence des fichiers. Le répertoire parent est toujours nommé .. tandis que . est un synonyme pour le répertoire courant. La commande ls affiche le contenu d'un répertoire ; en l'absence de paramètres, elle travaille sur le répertoire courant.
$ pwd
/home/rhertzog
$ cd Desktop
$ pwd
/home/rhertzog/Desktop
$ cd .
$ pwd
/home/rhertzog/Desktop
$ cd ..
$ pwd
/home/rhertzog
$ ls
Desktop    Downloads  Pictures  Templates
Documents  Music      Public    Videos
Créer un nouveau répertoire s'effectue avec mkdir répertoire, alors que la commande rmdir répertoire supprime un répertoire vide. La commande mv sert à renommer et/ou à déplacer les fichiers et les répertoires, tandis que rm fichier supprime un fichier.
$ mkdir test
$ ls
Desktop    Downloads  Pictures  Templates  Videos
Documents  Music      Public    test
$ mv test new
$ ls
Desktop    Downloads  new       Public     Videos
Documents  Music      Pictures  Templates
$ rmdir new
$ ls
Desktop    Downloads  Pictures  Templates  Videos
Documents  Music      Public

B.1.2. Consultation et modification des fichiers texte

La commande cat fichier (prévue pour concaténer des fichiers sur la sortie standard) lit un fichier et affiche son contenu dans le terminal. Si le fichier est trop gros, la commande less (ou more) permet de l'afficher page par page.
La commande editor lance un éditeur de texte (comme vi ou nano) et permet de créer/modifier/lire des fichiers texte. Pour les fichiers les plus simples, il est parfois possible de les créer directement depuis l'interpréteur de commandes grâce aux redirections. Ainsi, echo "texte" >fichier crée un fichier nommé fichier contenant « texte ». Pour ajouter une ligne à la fin de ce fichier, il est possible de faire echo "texte supplémentaire" >>fichier. On notera l'emploi de >> dans cet exemple.

B.1.3. Recherche de fichiers et dans les fichiers

La commande find répertoire critères recherche des fichiers dans l'arborescence sous répertoire. L'option -name nom est le critère de recherche le plus courant et permet de retrouver un fichier par son nom.
La commande grep expression fichiers extrait du contenu des fichiers les lignes correspondant à l'expression rationnelle (voir encadré B.A.-BA Expression rationnelle). L'option -r exécute une recherche récursive sur tous les fichiers contenus dans le répertoire indiqué en paramètre. Cela permet d'identifier facilement un fichier dont on connaît une partie du contenu.

B.1.4. Gestion des processus

La commande ps aux liste les processus en cours d'exécution et leur identifiant pid (process id). Par la suite, la commande kill -signal pid envoie un signal à un processus donné (à condition qu'il appartienne au même utilisateur) ; le signal TERM demande au programme de se terminer alors que KILL le tue brutalement.
L'interpréteur de commandes permet de lancer des programmes en tâche de fond : il suffit pour cela d'ajouter « &» à la fin de la commande. Dans ce cas, l'utilisateur retrouve le contrôle immédiatement, bien que la commande lancée ne soit pas encore terminée. La commande jobs indique les processus exécutés en arrière-plan. La commande fg %numéro-de-job (foreground, avant-plan) replace le processus à l'avant-plan. Dans cette situation, la combinaison de touches Control+Z permet de stopper l'exécution du processus et de reprendre le contrôle de la ligne de commande. Pour réactiver en arrière-plan le processus stoppé, il faut faire bg %numéro-de-job (pour background, arrière-plan).

B.1.5. Informations système : mémoire, espace disque, identité

La commande free affiche des informations sur l'usage de la mémoire vive, tandis que df (disk free) rapporte l'espace disponible sur les différents disques accessibles dans l'arborescence. On emploie fréquemment l'option -h de df (pour human readable) afin qu'il affiche les tailles avec une unité plus adaptée (généralement mégaoctets ou gigaoctets). De même, la commande free dispose de -m ou -g pour afficher les informations soit en mégaoctets soit en gigaoctets.
$ free
              total        used        free      shared  buff/cache   available
Mem:       16279260     5910248      523432      871036     9845580     9128964
Swap:      16601084      240640    16360444
$ df
Filesystem                1K-blocks      Used Available Use% Mounted on
udev                        8108516         0   8108516   0% /dev
tmpfs                       1627928    161800   1466128  10% /run
/dev/mapper/vg_main-root  466644576 451332520  12919912  98% /
tmpfs                       8139628    146796   7992832   2% /dev/shm
tmpfs                          5120         4      5116   1% /run/lock
tmpfs                       8139628         0   8139628   0% /sys/fs/cgroup
/dev/sda1                    523248      1676    521572   1% /boot/efi
tmpfs                       1627924        88   1627836   1% /run/user/1000
La commande id affiche l'identité de l'utilisateur connecté et indique la liste des groupes dont il est membre. Il est parfois important de pouvoir vérifier si l'on est membre d'un groupe donné ; cela peut conditionner l'accès à certains fichiers ou périphériques.
$ id
uid=1000(rhertzog) gid=1000(rhertzog) groupes=1000(rhertzog),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev),109(bluetooth),115(scanner)