La ligne de commande sous Linux – Partie 1

Tux, la mascotte officielle de Linux

Introduction à la ligne de commande

Il y a une nécessité grandissante de savoir utiliser une ligne de commande avec le temps à cause de nos besoins et de la facilité et la rapidité que l’on aimerait acquérir. C’est pourquoi je fais cette série d’articles qui permettront d’appréhender les bases de la ligne de commande sous Linux.

Quand on parle de ligne de commande sous Linux, on en vient très vite à parler de bash et sh qui sont deux programmes dits interpréteurs de shell. Pour faire simple ces deux programmes utilisent des syntaxes différentes pour interpréter les commandes que l’on entrera. Pour notre utilisation, nous choisirons le classique bash.

Cependant vous utiliserez rarement bash directement, vous passerez par une interface graphique pour interagir avec bash, c’est pourquoi il faudra un autre programme pour notre utilisation. Que vous soyez sur un environnement de bureau KDE, Gnome ou autre vous aurez toujours un interpréteur de commande graphique installé. Sous Gnome, un classique Ctrl+Alt+T devrais fonctionner et ouvrir l’interpréteur. Sinon dans tous les cas une simple recherche dans les programmes de « terminal » devrait vous renvoyer vers le logiciel par défaut (gnome shell, konsole et des dizaines d’autres).

Une fois le terminal graphique ouvert vous vous retrouvez devant une interface un peu austère et qui n’a pas franchement beaucoup de boutons graphiques. C’est normal, c’est le but de la manœuvre.

Pour décrire dans un article quelle commande entrez dans la console on note souvent de deux manières. Soit :

# commande

Soit :

$ commande

On préfère quand même la deuxième notation. Cela voudra dire qu’il faut tapez commande sans le sigle $ qui n’est là que pour indiquer que c’est une chose à tapez dans l’interpréteur. Ensuite il suffit de taper la touche entrer pour valider la saisie et exécuter notre commande.

Nous pouvons déjà interpréter ce qu’il y a marqué avant le $ dans l’interpréteur.

[aztorius@fedora-77 ~]

« aztorius » indique que l’utilisateur courant a pour pseudo aztorius.

« fedora-77 » indique le nom de la machine courante (donnée en général lors de l’installation de Linux).

Ces deux informations peuvent sembler évidentes, mais cela peut vite évoluer.

Enfin n’oublions pas le « ~ » qui a une très grande importance. Ce symbole signifie que l’on est actuellement dans le répertoire d’origine de l’utilisateur courant (en l’occurrence aztorius). Pour faire un lien, on est en fait dans le dossier /home/aztorius

pwd

pwd (print working directory) permet comme son nom l’indique d’afficher le dossier courant.

$ pwd

Cela va afficher dans notre cas : /home/aztorius (qui est pour rappel totalement équivalent à ~ si on est connecté en tant que aztorius).

ls

ls (list segments) permet d’afficher la liste des dossiers et fichiers dans un dossier.

$ ls

ls seul permet d’afficher une liste compacte et simple des éléments dans le dossier courant (cf pwd).

$ ls -a

L’option -a permet d’afficher en plus les fichiers et dossiers cachés (ceux dont le nom commencent par un . ).

$ ls -l

L’option -l permet d’afficher les éléments sous forme de liste et avec beaucoup plus de détails. Exemple :

[aztorius@fedora-77 ~]$ ls -l
total 48
drwxr-xr-x. 2 aztorius aztorius 4096 28 juil. 14:52 Bureau
drwxr-xr-x. 2 aztorius aztorius 4096 16 avril 11:11 Documents
drwx------. 11 aztorius aztorius 4096 30 juil. 22:08 Dropbox
drwxrwxr-x. 8 aztorius aztorius 4096 30 juil. 13:05 git
drwxr-xr-x. 2 aztorius aztorius 4096 31 juil. 13:07 Images
drwxrwxr-x. 4 aztorius aztorius 4096 17 avril 11:26 kodi-visualizations
drwxr-xr-x. 2 aztorius aztorius 4096 16 avril 11:11 Modèles
drwxr-xr-x. 3 aztorius aztorius 4096 17 avril 11:30 Musique
drwxr-xr-x. 2 aztorius aztorius 4096 16 avril 11:11 Public
drwxr-xr-x. 7 aztorius aztorius 4096 30 juil. 17:30 Téléchargements
drwxr-xr-x. 2 aztorius aztorius 4096 18 avril 08:45 Vidéos
drwxrwxr-x. 3 aztorius aztorius 4096 19 avril 11:38 'VirtualBox VMs'

« total 48 » signifie qu’il y a 48 éléments au total à l’intérieur de chaque dossier (avec un seul niveau de profondeur dans la recherche).

« drwxr-xr-x » correspond aux permissions actuellement choisies pour l’élément correspondant. Le « d » signifiant que c’est un dossier (directory). Ensuite 3 x 3 symboles sont présents. Il y a 3 types de permissions pour 3 groupes différents. On peut regrouper par 3 les symboles sous forme de paquets. De gauche à droite : le paquet pour les permissions du créateur/propriétaire de l’élément, le paquet pour les membres du groupe de l’élément et enfin les permissions pour les autres. « r » signifie un accès en lecture (read) possible, le « – » signifie l’absence de la permission correspondante (ie l’interdiction). « w » signifie une permission en écriture (write) et « x » une permission à exécuter (à lancer en tant que programme).

On a ensuite le nombre d’élément dans le dossier. Puis le nom du propriétaire, ici « aztorius », du dossier/fichier. Et enfin le nom du groupe auquel appartient le fichier, ici aussi « aztorius ». Même si ce sont les même noms, ce sont deux choses différentes. Un utilisateur est unique, mais plusieurs utilisateurs différents peuvent appartenir à un groupe. Par défaut lors de la création d’un utilisateur, un groupe est aussi crée avec le même nom.

On a ensuite une taille en octets, puis la date de dernière modification avec l’heure correspondante et enfin le nom de l’élément.

$ ls Bureau/

Permet d’afficher le contenu de ~/Bureau/ au lieu de ~/

On peut évidemment aller plus loin dans les dossier :

$ ls Bureau/dossierA/dossierB/

On a alors l’affichage du contenu du dossierB qui se trouve dans le dossierA qui se trouve dans le dossier Bureau
On peut aussi combiner avec des options exemple :

$ ls -la Bureau/dossierA/

Ou encore :

$ ls -l Bureau/dossierA/ -a

Voilà pour ce qui concerne ls.

cd

$ cd Bureau
$ cd Bureau/
$ cd ./Bureau
$ cd ./Bureau/

Ces quatres commandes permettent de « rentrer » dans le dossier Bureau à partir du dossier courant.

« Bureau » spécifie l’élément correspondant à Bureau. « Bureau/ » lui correspond au dossier se nommant Bureau. « ./Bureau » spécifie l’élément Bureau à partir du dossier actuel (ie ~) donc ici c’est l’élément /home/aztorius/Bureau . Enfin « ./Bureau/ » est la même chose que « ./Bureau » mais en spécifiant que l’on utilise le dossier Bureau et non un élément quelconque.

Après exécution on peut apercevoir une différence dans l’interpréteur.

[aztorius@fedora-77 ~]$ cd Bureau/
[aztorius@fedora-77 Bureau]$

On est bien passé du dossier ~ (/home/aztorius) à Bureau (/home/aztorius/Bureau).

Pour remonter vers le dossier parent il suffit de faire :

$ cd ..

Cas spécial : le point simple correspond au dossier courant :

$ cd .

Cette commande ne change rien. On peut remarquer qu’avec ./Bureau on utilisait aussi le dossier courant représenté par le point auquel on ajoute le dossier où l’on veut aller.

$ cd

Lorsqu’il n’y a pas d’argument cela nous ramène à la racine de notre dossier utilisateur (ie ~).

Les manuels

Il arrive que l’on ne se souvienne plus des options que prend tel programme/commande. On peut utiliser alors le manuel. Pour ouvrir le manuel de cd :

$ man cd

Il suffira d’appuyer sur la touche Q pour quitter le manuel. Le déplacement peut se faire avec les flèches directionnelles. Il est fort probable que le manuel soit en Anglais donc mieux vaut apprendre à le lire un minimum.

Astuce : la touche tabulation

Revenons à mon dossier utilisateur.

[aztorius@fedora-77 ~]$ ls -l
total 48
drwxr-xr-x. 2 aztorius aztorius 4096 28 juil. 14:52 Bureau
drwxr-xr-x. 2 aztorius aztorius 4096 16 avril 11:11 Documents
drwx------. 11 aztorius aztorius 4096 30 juil. 22:08 Dropbox
drwxrwxr-x. 8 aztorius aztorius 4096 30 juil. 13:05 git
drwxr-xr-x. 2 aztorius aztorius 4096 31 juil. 13:07 Images
drwxrwxr-x. 4 aztorius aztorius 4096 17 avril 11:26 kodi-visualizations
drwxr-xr-x. 2 aztorius aztorius 4096 16 avril 11:11 Modèles
drwxr-xr-x. 3 aztorius aztorius 4096 17 avril 11:30 Musique
drwxr-xr-x. 2 aztorius aztorius 4096 16 avril 11:11 Public
drwxr-xr-x. 7 aztorius aztorius 4096 30 juil. 17:30 Téléchargements
drwxr-xr-x. 2 aztorius aztorius 4096 18 avril 08:45 Vidéos
drwxrwxr-x. 3 aztorius aztorius 4096 19 avril 11:38 'VirtualBox VMs'

Souvent vous aurez une certaine flemme a taper  » cd Téléchargements » en toute lettre. C’est pourquoi la tabulation sert à auto-compléter suivant ce que vous avez entré. Exemple :

$ cd T

Une fois cette commande tapée, il suffira d’appuyer sur tabulation pour que l’interpréteur la remplace par :

$ cd Téléchargement/

Pour ce cas là, l’interpréteur n’a pas eu d’ambiguïté donc il a directement remplacé par un élément valide. Prenons un cas avec une ambiguïté :

$ cd D

Si l’on appuie une fois sur tab, rien ne se passera car il y a un conflit (Documents et Dropbox, deux valeurs possibles). Par contre deux appuis sur tab permettront d’afficher les possibilités. L’interpréteur proposera alors Documents et Dropbox. Pour lever l’ambiguïté il suffit de rajouter manuellement une lettre. Exemple :

$ cd Dr

Un seul élément commence par « Dr » donc il n’y a plus d’ambiguïté et un appui sur tab remplacera par :

$ cd Dropbox/

Cette astuce est très utilisée pour aller très vite dans l’écriture des commandes et ainsi ne par perdre de temps par rapport à un gestionnaire de fichier classique (voir même aller plus vite qu’un tel gestionnaire).

Voilà pour cette première partie sur la ligne de commande. Laissez vos impressions et vos incompréhensions dans les commentaires.