Quelles sont les principales commandes Linux ?
Bien que les systèmes d’exploitation basés sur Linux disposent depuis longtemps maintenant de multiples environnements graphiques de bureau complets et ergonomiques, l’interface fondamentale pour interagir avec le système reste l’interface en ligne de commande, appelée souvent le shell, ou prompt. En effet, pour de nombreuses tâches, comme celles qui sont répétitives, il est souvent plus efficace d’effectuer l’action désirée en tapant une ligne de commande qu’en effectuant l’équivalent à la souris. De plus, ces lignes de commandes peuvent être conservées dans un fichier texte, lequel pourra être rejoué à l’envie ou automatiquement pour automatiser certaines actions. Il existe plusieurs shell disponibles dans les différentes distributions Linux, le plus répandu étant bash. Aussi les principales commandes Linux présentées ici seront constituées d’exemples pris dans les commandes natives de bash, et ponctuellement de programmes externes. Cet article ne pouvant être synthétique et exhaustif en même temps, je présenterai ici quelles sont les principales commandes Linux que j’utilise le plus au quotidien pour utiliser mon système personnel (pas pour l’administrer, les commandes d’administration feront l’objet d’un article dédié, bien que nous ayons déjà vu dans un article précédent comment terminer un programme planté avec la ligne de commande).
Savoir où on est dans le système de fichiers Linux : commande pwd
Pour déterminer où nous sommes situés actuellement dans le système de fichiers, on utilise la commande pwd.
pwd
Naviguer dans le système de fichiers : commande cd
La commande de base pour naviguer dans le système de fichiers du disque dur est cd (pour Change Directory). Elle permet, comme son nom l’indique, de naviguer au sein de l’arborescence des dossiers du disque dur. On l’invoque en tapant simplement cd suivi d’un argument qui est le nom du dossier dans lequel on veut plonger. Cet argument peut être un chemin absolu (défini depuis la racine du système /) ou bien relatif à l’endroit où nous sommes quand on tape la commande cd.
Lancée sans argument, c’est un raccourci pour revenir au home directory de l’utilisateur courant (c’est le dossier de base de l’utilisateur, qui lui appartient, et dans lequel il stocke ses fichiers et ses paramètres). Il est équivalent à cd ~ (“~” représente le home directory de l’utilisateur courant, par exemple /home/julien). Notons à ce titre que le prompt nous indique dans quel répertoire on se situe, l’indication se situant juste avant le signe “$” du prompt (d’abord /var/log, puis ~ = /home/julien après avoir tapé la commande cd).
cd
Plonger dans le répertoire /var/log. Ici le chemin indiqué est absolu (le chemin commence par /).
cd /var/log
Plonger dans le répertoire log. Le chemin indiqué est relatif, c’est à dire que le répertoire log doit être dans le répertoire dans lequel on se trouve quand on tape la commande.
cd log
Revenir dans le répertoire où nous nous situions précédemment.
cd -
Remonter dans le répertoire contenant le répertoire dans lequel on est actuellement (“..” représente le répertoire parent du répertoire courant. “.” représente le répertoire courant.) On peut donc taper des commandes comme celle ci : cd ../lib qui fait plonger dans le répertoire lib qui se situe dans le même répertoire que celui qui contient le répertoire courant.
cd ..
Lister le contenu d’un dossier, trier et compter les éléments : commande ls
C’est la commande ls qui permet de lister le contenu d’un répertoire. Lancée sans argument, elle donne la liste des éléments du répertoire courant.
Lister et trier
ls /home/julien
Liste le contenu du répertoire indiqué en argument. Comme pour cd, le chemin passé en argument peut-être absolu ou relatif. Les éléments sont classés par ordre alphabétique.
La commande ls accepte de nombreuses options, voici celles que j’utilise le plus souvent:
ls -a
Affiche aussi les éléments cachés (sous Linux, pour cacher un élément on met un point au début de son nom)
ls -l
Affiche les éléments du dossier courant, listés verticalement et avec des colonnes représentant de gauche à droite, les droits sur les éléments, le propriétaire et le groupe propriétaire, la taille de l’élément, la date de dernière modification, et enfin le nom du dossier. Tout ceci étant classé par ordre alphabétique sur les noms des éléments. L’option -l est celle qui est la plus utilisée de la commande ls.
ls -1
Comme avec l’option -l, la commande ls -1 (le chiffre “un”), affiche le résultat en colonne. Mais cette fois-ci il n’y en a qu’une seule qui est le nom des éléments.
ls -t
Affiche les éléments comme ls, mais cette fois-ci les éléments ne sont plus classés par ordre alphabétique, mais par date, du plus récent au plus ancien.
ls -r
L’option -r inverse le tri : ici les éléments seront classés en ordre alphabétique inversé. Combiné avec l’option -t, les éléments seront donc classés du plus vieux au plus récent.
Toutes ces options sont combinables, c’est-à-dire qu’on peut les utiliser conjointement, comme par exemple:
ls -ltra
C’est une combinaison des options précédentes : affiche la liste détaillée en colonnes des éléments, y compris ceux qui sont cachés, en les triant par date inversée, les plus récents étant en bas.
Compter les éléments : commandes ls et wc
On utilise ici la commande ls -l conjointement à la commande wc, qui sert à compter les caractères, les mots ou les retours à la ligne (c’est l’option -l de wc qui compte les lignes). Ainsi on va tout simplement compter les lignes retournées par la commande ls -l ce qui nous donnera le nombre d’éléments d’un dossier.
ls -l | wc -l
Attention, il faut retrancher 1 au nombre obtenu, car la première ligne renvoyée par ls -l n’est pas un élément du dossier. Si on veut éviter d’avoir à retrancher, nous pouvons utiliser l’option -1 de ls (ls -1 | wc -l).
On remarque que pour coupler les deux commandes, le symbole “|” (pipe) a été utilisé : il sert à envoyer la sortie d’une commande (ici ls) dans l’entrée d’une autre commande (ici wc).
Supprimer un élément : commandes rm et rmdir
Deux commandes sont disponibles, suivant la nature de l’élément à supprimer : rm et rmdir
Supprimer un fichier
rm -f fichier_a_suppr
L’option -f est là pour éviter la demande de confirmation pour la suppression.
Supprimer un dossier vide
rmdir dossier_vide_a_suppr
rmdir refusera de supprimer le répertoire si il n’est pas vide, par sécurité.
Supprimer un dossier non vide
rm -rf dossier_non_vide_a_suppr
Nous utilisons de nouveau la commande rm, mais avec l’option -r pour demander de supprimer récursivement le contenu du dossier également. Notez l’utilisation de l’option -f comme précédemment pour ne pas avoir à confirmer la suppression.
Copier un élément : commande cp
C’est le job de la commande cp.
cp fichier_a_copier Documents/
Copie le fichier à copier à l’intérieur du dossier Documents.
Déplacer un élément : commande mv
C’est la commande mv qui s’en charge.
mv fichier_a_deplacer Documents/
Déplace le fichier à l’intérieur du dossier Documents.
Renommer un élément : encore la commande mv
Ça peut être surprenant au premier abord, mais c’est aussi la commande mv qui s’en charge.
mv ancien_nom nouveau_nom
En fait, techniquement, l’opération de renommer n’est qu’un cas particulier du déplacement.
Commandes pour afficher le contenu d’un fichier dans Linux
Afficher le contenu d’un fichier de façon paginée : commande more
On utilise la commande more. Elle va nous afficher le contenu du fichier par “pages”, c’est-à-dire par portions remplissant l’écran. On fait défiler les pages en appuyant sur la barre d’espace, ou ligne par ligne avec la touche entrée.
more /var/log/syslog
Afficher juste la fin du fichier : commande tail
Avec la commande tail. Elle peut prendre le paramètre -n avec un chiffre indiquant le nombre de lignes à afficher à partir de la dernière.
tail -n 10 /var/log/syslog
Afficher tout le fichier d’un coup : commande cat
Ici on va utiliser la commande cat. La commande cat sert comme son nom l’indique à concaténer plusieurs fichiers, mais si on ne lui donne qu’un nom de fichier en argument, elle va nous en afficher le contenu. Si le contenu est grand, ça peut faire défiler l’écran assez longtemps.
cat fichier_a_afficher
Chercher des éléments : commande find
La commande historique pour faire des recherches dans le système de fichiers est find. Ses options sont nombreuses, et on peut combiner des critères de sélection pour réaliser des recherches très pointues. De même, bien l’action de base réalisée par find est d’afficher les résultats de la recherche à l’écran, cette commande peut réaliser d’autres actions, comme par exemple supprimer les fichiers remontés par les résultats.
find ~ -name "fichier_a_chercher"
Recherche dans le home directory (~) de l’utilisateur courant le ou les fichiers se nommant “fichier_a_chercher“.
Quand on n’a qu’une vague idée du nom de ce que l’on recherche, on peut utiliser le caractère “*” comme joker pour substituer une partie du nom à chercher.
find /home/julien -name "*fichier*"
Remontera tous les fichiers du home directory de l’utilisateur courant dont le nom contient le mot “fichier”.
Bonus : commande Linux renommer en une ligne de commande de multiples fichiers
Comme dit dans l’introduction, un des avantages de la ligne de commande est que l’on peut empiler des commandes dans un fichier texte, pour demander à bash de les lancer, et nous éviter des tâches répétitives. Bash nous permet également d’écrire des programmes ou scripts pouvant réaliser ces tâches répétitives. Voici un exemple de ce qu’il est possible de faire, en quelques commandes sur une seule ligne : renommer de multiples fichiers en une seule fois. Dans cet exemple nous utilisons les commandes ls et mv vues précédemment, ainsi que la boucle while/do/done de bash qui nous permet d’exécuter des commandes tant qu’une condition prédéfinie est remplie.
ls -1 | while read line; do mv $line nouveau_nom_$line; done
Cette commande renomme tous les fichiers du dossier courant en leur ajoutant “nouveau_nom” au début du nom de fichier. Pratique pour renommer des dossiers de photos par exemple. Détaillons cette commande : ls -1 nous affiche la liste des fichiers en une colonne représentant les noms des fichiers. Cette liste est envoyée par le pipe (|) à la boucle while. La boucle while lit ligne par ligne la sortie de la commande ls -1, et pour chaque ligne, renomme le fichier apparaissant sur la ligne, en ajoutant “nouveau_nom_” au nom affiché sur la ligne. La boucle s’arrête quand il n’y a plus de ligne, c’est-à-dire quand tous les fichiers affichés par ls -1 ont été parcourus.
Avec ce tout petit exemple, on se rend bien compte de la puissance de la ligne de commande: en une seule manipulation, ne faisant appel qu’à des commandes simples et une boucle, on réalise une opération en seulement quelques secondes, alors que celle-ci effectuée manuellement aurait pris plusieurs minutes.
Commentaires
Laisser un commentaire