Utiliser le Terminal de commandes sous Ubuntu


Les 21 commandes suivantes sont souvent utilisées. On utilise ici un ordinateur équipé du système d'exploitation Ubuntu 18.04.
[apropos] [cat] [cd] [chmod]  [cp]  [dpkg-query]  [file] [find]  [gcc] [locate]  [ls] [man]  [mkdir] [mv] [nl] [ping]  [ps]  [pwd] [rm] [top]  [tracepath] [which] 

On va regarder ci-après comment :
1) Identifier les répertoires de Ubuntu
2) Identifier les utilisateurs de Ubuntu
3) Naviguer dans les répertoires
4) Modifier les droits d'un répertoire ou d'un fichier
5) Afficher le type d'un fichier
6) Numéroter les lignes d'un fichier
7) Trouver un fichier
8) Gérer des répertoires et fichiers
9) Utiliser des métacaractères
10) Trouver et documenter des commandes
11) Suivre les process en cours
12) Voir des chemins et délais internet
13) Afficher la liste des paquets installés
14) Compiler et exécuter un programme C
15) Ecrire et exécuter un script
16) Renommer des fichiers par lot

[haut de page]

1) Identifier les répertoires de Ubuntu

Ubuntu 18.04 et Ubuntu 20.04 sont livrés avec l'environnement graphique de bureau GNOME (GNU Network Object Model Environment) et non plus l'environnement graphique Unity qui était présent dans certaines versions précédentes de Ubuntu. Le Terminal de commandes de Ubuntu 18.04 est le Terminal de GNOME version 3.28.2 (émulateur de terminal pour le bureau GNOME)

00

Les répertoires d'Ubuntu sont organisés en arborescence en partant du répertoire racine /

16

Astuce
Pour ouvrir le Terminal de commandes directement dans un répertoire donné, dans le répertoire /media/ubuntu/data par exemple, il suffit de cliquer droit sur ce répertoire (depuis l'explorateur de fichier) puis de choisir l'option de menu Ouvrir dans un terminal. Le Terminal s'ouvre alors directement dans ce répertoire qui devient le répertoire courant.

01

[haut de page]

2) Identifier les utilisateurs de Ubuntu

Sous Linux, en particulier sous Ubuntu, les utilisateurs sont organisés en groupes dotés de certains droits, en lecture, écriture et exécution (rwx), sur les fichiers. De plus il existe un super utilisateur su également appelé "administrateur" (root) qui possède tous les droits.

Pour pouvoir exécuter une commande en ayant tous les droits nécessaires, à l'aide du terminal, on peut :

  • utiliser le terminal en tant que simple utilisateur puis précéder les commandes du mot clef sudo
  • utiliser le terminal en tant que root, à l'aide de la commande sudo su suivie de la saisie de notre mot de passe utilisateur
  • utiliser le en tant que root, à l'aide de la commande su suivie de la saisie de notre mot de passe root (dans ce cas il faut naturellement avoir déjà défini ce mot de passe root, à l'aide de la commande sudo passwd root).

02

[cat]  [haut de page]

La commande cat permet d'afficher le contenu d'un fichier.
Par exemple : cat essai.txt

La commande cat /etc/group permet d'afficher le contenu du fichier /etc/group qui contient la liste des groupes ainsi que les utilisateurs correspondants. Le résultat de cette commande affiche des lignes ayant 3 à 5 champs :
nom du groupe : x : numéro du groupe : [utilisateurs,]

03

La commande cat /etc/passwd permet d'afficher le contenu du fichier /etc/passwd qui contient l'ensemble des informations relatives aux utilisateurs du sytème Le résultat de cette commande affiche des lignes ayant les 7 champs suivants :
nom du compte utilisateur :
x :
n° de l'utilisateur :
n° du groupe d'appartenance :
nom de l'utilisateur :
répertoire de connexion :
programme de demarrage

04

Remarque
Pour changer le mot de passe de l'utilisateur claude (par exemple), on se connecte en tant que claude, on tape la commande passwd claude puis on saisit le nouveau mot de passe.

[haut de page]

3) Naviguer dans les répertoires

Commandes fréquentes : pwd, ls et cd

[pwd]  [haut de page]

La commande pwd (print workin directory) permet d'afficher le chemin complet du répertoire courant. On appelle "répertoire courant" (working directory) le répertoire dans lequel on se trouve à un instant donné. C'est le répertoire dans lequel le terminal de commande est ouvert et est donc actif.
Exemple:
ubuntu@ubuntu-MS-7C08:~$ pwd
/home/ubuntu
ubuntu@ubuntu-MS-7C08:~$

[ls]  [haut de page]

La commande ls (list)permet d'afficher le contenu du répertoire courant.

La commande ls -l, effectuée depuis un répertoire courant, affiche l'ensemble des fichiers et répertoires contenus dans ce répertoire ainsi que les droits en lecture, écriture et exécution correspondants (rwx) pour le propriétaire de chaque fichier ou répertoire; le groupe (c'est à dire les autres utilisateurs du groupe auquel fait partie le propriétaire de chaque fichier ou répertoire); et pour les autres (c'est à dire pour les autres utilisateurs).

La commande ls -l essai.txt affiche les droits en lecture, écriture et exécution (rwx) du fichier essai.txt, situé dans le répertoire courant, pour le propriétaire du fichier; le groupe (c'est à dire les autres utilisateurs du groupe auquel fait partie le propriétaire) et les autres (c'est à dire les autres utilisateurs).

06

[cd]  [haut de page]

La commande cd (change directory) permet de changer de répertoire courant, c'est à dire de rendre le Terminal de commandes actif dans un autre répertoire. Il existe deux modes de navigation dans les répertoires : le mode de navigation absolu et le mode de navigation relatif.

Le mode de navigation absolu consiste à indiquer le chemin complet souhaité quel que soit le chemin courant dans lequel on se trouve.
Exemple :
Si on tape cd /media/ubuntu/data, le répertoire courant devient /media/ubuntu/data quel que soit le répertoire courant dans lequel on se trouvait avant d'éxécuter la commande.

Le mode de navigation relatif consiste à indiquer le chemin relatif souhaité par rapport au chemin courant dans lequel on se trouve. Par exemple :

  • cd ./data (si le répertoire courant est /media/ubuntu, le nouveau répertoire courant devient /media/ubuntu/data)
  • cd ./ubuntu/data (si le répertoire courant est /media, le nouveau répertoire courant devient /media/ubuntu/data)
  • cd .. (si le répertoire courant est /media/ubuntu/data, le nouveau répertoire courant devient /media/ubuntu) (ne pas oublier de laisser un espace entre cd et ..)

05

[haut de page]

4) Modifier les droits d'un répertoire ou d'un fichier

[chmod]  [haut de page]

La commande chmod permet de changer les droits en lecture, écriture et exécution (rwx) pour le propriétaire d'un fichier ou d'un répertoire; le groupe (c'est à dire les autres utilisateurs du groupe auquel fait partie le propriétaire du fichier ou du répertoire); et pour les autres (c'est à dire pour les autres utilisateurs).

Par exemple : La commande sudo chmod 777 essai.txt, exécutée depuis le répertoire où se trouve le fichier essai.txt donne les droits en lecture, écriture et exécution au propriétaire du fichier, aux utilisateurs du groupe auquel appartient le propriétaire du fichier et à tous les autres utilisateurs du fichier essai.txt.

De même la commande sudo chmod 777 dir, exécutée depuis le répertoire où se trouve le répertoire dir donne les droits en lecture, écriture et exécution au propriétaire du répertoire dir, aux utilisateurs du groupe auquel appartient le propriétaire du répertoire dir et à tous les autres utilisateurs du répertoire dir.

En fait, on peut attribuer les droits que l'on veut à qui on veut. Par exemple : Le paramètre 777 correspond à 111 111 111 en binaire soit rwx rwx rwx pour le propriétaire, le groupe et les autres. Avec le paramètre 777, le propriétaire, le groupe et les autres ont tous les droits sur le fichier (lecture r, écriture w et exécution x).
Le paramètre 744 correspond à 111 100 100 en binaire soit rwx r-- r-- pour le propriétaire, le groupe et les autres. Avec le paramètre 744, le propriétaire a tous les droits sur le fichier (lecture r, écriture w et exécution x) mais le groupe et les autres n'ont que le droit de lire (r) le fichier.

Une fois les droits sur un fichier ou sur un répertoire essai modifiés, on utilise la commande ls -l essai pour vérifier la bonne prise en compte de cette modification par le système.

[haut de page]

5) Afficher le type d'un fichier

[file]  [haut de page]

La commande file permet d'afficher le type d'un fichier. Par exemple : file essai.txt affiche essai.txt: ASCII text

07

[haut de page]

6) Numéroter les lignes d'un fichier

[nl]  [haut de page]

La commande nl permet de numéroter les lignes d'un fichier. Par exemple : nl essai.txt

[haut de page]

7) Trouver un fichier

On peut chercher un fichier, en mode interface graphique, à l'aide de la zone de recherche qui se trouve en haut à droite de l'explorateur de fichier, ou en mode ligne de commande à l'aide de la commande find.

15

Commandes : find, locate, which

[find]  [haut de page]

La commande sudo find . -name 001.jpg affiche tous les emplacements des fichiers (dans la totalité du répertoire courant) qui contiennent "001.jpg" dans leur nom.
La commande sudo find /home -name 001.jpg affiche tous les emplacements des fichiers (dans la totalité du répertoire /home) qui contiennent "001.jpg" dans leur nom.

[locate]  [haut de page]

La commande locate essai.txt affiche tous les emplacements des fichiers qui contiennent "essai.txt" dans leur nom. Si aucun nom n'apparaît, il est peut être nécessaire d'actualiser les données avec la commande updatedb.

08

[which]  [haut de page]

La commande which affiche le chemin complet du fichier correspondant à une commande.
Exemple :
ubuntu@ubuntu-MS-7C08:~$ which ls
/bin/ls
ubuntu@ubuntu-MS-7C08:~$

09

[haut de page]

8) Gérer des répertoires et fichiers

Commandes : mkdir, rm, cp, mv

[mkdir]  [haut de page]

La commande mkdir (make directory) permet de créer un répertoire. Exemple : mkdir repertoire : crée le dossier "repertoire"

[rm]  [haut de page]

la commande rm (remove)permet de supprimer un répertoire. Exemple : rm - R repertoire : supprime le dossier "repertoire"

[cp]  [haut de page]

La commande cp permet de copier un fichier dans un autre répertoire, en le renommant avec le nom souhaité (à l'issue de l'opération, le fichier n'est pas supprimé dans le répertoire source). Syntaxe : cp chemin_complet_source chemin_complet_cible

Exemple
cp /home /ubuntu /Documents /essai1 /essai.txt   /home /ubuntu /Documents /essai2/001.txt
Cette commande copie le fichier essai.txt, situé dans le répertoire /home /ubuntu /Documents /essai1, dans le répertoire /home /ubuntu /Documents /essai2 avec le nom 001.txt.
À l'issue de l'opération, le fichier essai.txt, situé dans le répertoire /home /ubuntu /Documents /essai1, n'est pas supprimé

10

[mv]  [haut de page]

La commande mv (move) permet de déplacer un fichier dans un autre répertoire, en le renommant avec le nom souhaité. A l'issue de l'opération, le fichier est supprimé dans le répertoire source. Syntaxe : mv chemin_complet_source chemin_complet_cible

Exemple:
mv /home /ubuntu /Documents /essai1 /essai.txt   /home /ubuntu /Documents /essai2 /001.txt
Cette commande copie le fichier essai.txt, situé dans le répertoire /home /ubuntu /Documents /essai1, dans le répertoire /home/ubuntu/Documents/essai2 avec le nom 001.txt.
À l'issue de l'opération, le fichier essai.txt, situé dans le répertoire /home /ubuntu /Documents /essai1, est supprimé

11

[haut de page]

9) Utiliser des métacaractères

Les métacaractères (appelés également caractères joker ou wildcards) sont des suites de caractères qui représentent des modèles (patterns) grâce auxquels on peut sélectionner seulement certains fichiers et pas les autres.

Les caractères joker suivants sont souvent utilisés.

* : tous les caractères
? : n'importe quel caractère simple
[:alnum:] n'importe quel caractère alphanumérique
[:alpha:] n'importe quel caractère alphabétique
[:digit:] n'importe quel caractère numérique
[:lower:] n'importe quel caractère minuscule
[:upper:] n'importe quel caractère majuscule
[suite de caractères] n'importe quel des caractères indiqués dans la suite de caractères indiquée
[! suite de caractères] n'importe quel caractère n'étant pas dans la suite de caractères indiquée

Exemple : cp métacaractère dir

* : tous les fichiers
claude* : tous les fichiers dont le nom commence par claude
image-??.jpg : tous les fichiers dont le nom commence par image- suivi de 2 caractères et .jpg
scan*.jpg : tous les fichiers dont le nom commence par scan et se termine par .jpg
[cfpm]* : tous les fichiers dont le nom commence par c, f, p ou m
image-[0-9][0-9].jpg : tous les fichiers dont le nom commence par image- et se termine de deux chiffres suivis de .jpg
[![:lower:]]* : tous les fichiers dont le nom ne commence pas par une minuscule
[[:digit:]]* : tous les fichiers dont le nom commence par un chiffre
*[[:upper:]01] : tous les fichiers dont le nom se termine par une majuscule ou par le chiffre 0 ou 1

Ainsi, la commande cp image*.jpg dir copie dans le répertoire dir tous les fichiers dont le nom commence par image et se termine par .jpg

Astuce
Pour rediriger, dans le fichier essai.txt, la réponse du terminal à une commande, on fait suivre la commande de > ls-nomdefichier
Exemple
man ls > ls-essai.txt renvoi la réponse dans un fichier essai.txt qui est placé automatiquement dans le répertoire courant où se trouve le terminal de commandes.

[haut de page]

10) Trouver et documenter des commandes

Commandes apropos, man

[apropos]  [haut de page]

la commande apropos "nom du sujet" permet de lister un ensemble de commande traitant de ce sujet
exemple
ubuntu@ubuntu-MS-7C08:~$ apropos img
gemtopbm (1) - convert a GEM .img file into a portable anymap
gemtopnm (1) - convert a GEM .img file into a portable anymap
img2pdf (1) - lossless conversion of raster images to pdf
imgtoppm (1) - convert an Img-whatnot file into a portable pixmap
pbmtogem (1) - convert a portable bitmap into a GEM .img file
ubuntu@ubuntu-MS-7C08:~$

[man]  [haut de page]

la commande man "nom de la commande" donne des informations sur la commande et sur ses paramètres d'utilisation. exemple : man ls (on presse la touche q pour quitter)

[haut de page]

11) Suivre les process en cours

Commandes fréquentes : ps, top

[ps]  [haut de page]
La commande ps -x affiche tous les process en cours.

[top]  [haut de page]

La commande top affiche l'activité instantanée de la machine

[haut de page]

12) Voir des chemins et délais internet

Commandes fréquentes: ping, tracepath

[ping]  [haut de page]

La commande ping permet de vérifier la connexion à un site ainsi que le délai de réponse global correspondant (envoi et réception en retour d'un paquet).
Exemple : ping turrier.fr

[tracepath]  [haut de page]

La commande tracepath (ou traceroute) affiche les chemins et délais de connexion à un site web.
Exemple : tracepath turrier.fr

[haut de page]

13) Afficher la liste des paquets installés

[dpkg-query]  [haut de page]

la commande dpkg-query permet d'afficher des informations sur les paquets installés sur l'ordinateur (paquets connus par la base données de dpkg).
Exemple : dpkg-query -l affiche la liste des paquets installés sur l'ordinateur

[haut de page]

14) Compiler et exécuter un programme C

[gcc]  [haut de page]

La commande gcc permet de compiler un programme source écrit en langage C afin d'obtenir un fichier exécutable. Pour que cette commande fonctionne, il faut naturellement que le paquet gcc (compilateur gcc) soit installé sur l'ordinateur.

exemple : code source
1) On écrit le code source suivant (par exemple) et on l'enregistre dans un fichier texte nommé essai.c (par exemple)
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}

2) On compile le code source, ce qui crée l'exécutable nommé essai
gcc essai.c -o essai ou make essai

3) On exécute le programme en ouvrant le terminal dans le répertoire où se trouve le programme puis en tapant la commande ./essai
ubuntu@ubuntu-MS-7C08:/media/ubuntu/data/essai$ ./essai
Hello, World!ubuntu@ubuntu-MS-7C08:/media/ubuntu/data/essai$

12

Remarque Pour lancer l'exécution du programme directement depuis l'explorateur de fichier, il faut passer par l'intermédiaire d'un script (fichier monscript par exemple) contenant la ligne ./essai.

Contenu du script :
#!/bin/bash ./essai

[haut de page]

15) Ecrire et exécuter un script

1) Ecrire le script
On écrit le code de script suivant (par exemple) qu'on enregistre dans un fichier nommé monscript (par exemple)

#!/bin/bash
./essai
echo -e "\r"
echo "------------------"
ls -l monscript
echo "------------------"
echo "Entrez un caractère -> "
read x1
echo $x1
read x2

2) Autoriser l'exécution du script
Depuis l'explorateur de fichier :
2.1) On clique droit sur le fichier
2.2) On autorise l'exécution du fichier en cochant Propriétés /Permissions /Autoriser l'exécution du fichier comme un programme
2.3) On vérifie, à l'aide de la commande ls -l monscript que le fichier est bien autorisé en exécution (sinon on modifie les droits sur le fichier, à l'aide de la commande chmod)
ubuntu@ubuntu-MS-7C08: /media /ubuntu /data /script$ ls -l monscript
-rwxr-xr-x 1 ubuntu ubuntu 158 oct. 18 17:48 monscript
ubuntu@ubuntu-MS-7C08:/media/ubuntu/data/script$

13

3) Exécuter le script
On peut alors exécuter le script directement dans le terminal, en ouvrant le terminal dans le répertoire où se trouve le script et en tapant la commande ./monscript

Pour pouvoir lancer l'exécution du script depuis l'explorateur de fichier, il faut activer l'option correspondante dans l'explorateur de fichiers. Pour cela,
1) on ouvre l'explorateur de fichier
2) on clique le petit bouton en forme de triangle situé en haut à gauche dans la barre de titre puis
3) Préférences /Comportement /Demander quoi faire (pour les fichiers texte exécutables)<

13b

Remarque : On peut également activer cette option en utilisant l'outil graphique Editeur dconf de Ubuntu mais normalement cela n'est pas nécessaire. En revanche, si on utilise cet outil, il est nécessaire de bien savoir ce qu'on fait et de faire très attention car cet éditeur très puissant permet de modifier les variables de configuration du système.

REMARQUE IMPORTANTE
Dans le cas où on lance l'exécution du script depuis l'explorateur de fichier, il est nécessaire de terminer le script par une instruction read pour obliger la fenêtre du terminal à rester ouverte aussitôt le code exécuté.
En effet, en l'absence de cette instruction read, on a l'impression que le script ne s'exécute pas; on a pas le temps de voir quelque chose car le terminal s'ouvre, exécute le code et se referme quasi instantanément. On rencontre ce même problème quand on programme en langage C en mode console.

[haut de page]

16) Exemple :Renommer des fichiers par lot

Le script suivant :
1) efface le contenu du répertoire essai2
2) numérote dans l'ordre, en commençant par le nombre entré, tous les fichiers jpg qui se trouvent dans le répertoire /media/ubuntu/data/essai et les place dans le répertoire /media/ubuntu/data/essai2 (à la fin de l'opération, le répertoire /media/ubuntu/data/essai est vide)

#!/bin/bash
echo "================"
echo "| NUMEROTAGE DE FICHIERS .jpg |"
echo "================"

cd /media/ubuntu/data/essai2
rm *
cd /media/ubuntu/data/essai
read -p "Entrez un nombre de départ -> " i
echo $i
for file in *; do
mv $file $(printf "../essai2/%03d.jpg" $i)
i=$((i + 1))
done
echo "------------------"
echo "C'est fait !"
echo "------------------"
cd /media/ubuntu/data/essai2
ls
read x2
exit

14