Logo de kxs.frCours d'informatique pour le lycée et la prépa

Linux - Commandes de base

Introduction

Nous verrons dans ce TP les commandes de base d’un système de type Unix comme Linux ou MacOS. Il existe des commandes similaires sous Windows mais leurs noms sont différents et surtout, peu de personnes utilisent la ligne de commande avec Windows. Nous utiliserons le terme Linux dans toute la suite car c’est le système de type Unix le plus répandu.

Arborescence

Avant de parler des commandes, il faut d’abord comprendre l’arborescence sous Linux. L’avantage est que c’est la même sur tous les systèmes et que cela na presque pas changé depuis 30 ans.

/ est la racine. Tout chemin qui commence par / est dit absolu. Les éléments du chemin sont séparé par un slash : /.

Il y a toujours les mêmes répertoires à la racine :

/
├── boot
├── cdrom
├── dev
├── etc
├── home
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── snap
├── srv
├── sys
├── tmp
├── usr
└── var

Il ne faut pas connaître l’utilité de chacun de ces répertoires. Si vous n’êtes pas administrateur vous n’aurez à faire qu’aux répertoires suivants :

/home/login est votre répertoire personnel. Chaque utilisateur en possède un à son nom, toujours dans le répertoire /home. Tout ce qui vous concerne est dans ce répertoire : vos fichiers, votre bureau, votre historique internet, vos préférences. ~ est un alias (raccourci) pour votre répertoire personnel.

Un chemin relatif est un chemin qui part du répertoire courant. On utilise .. pour remonter au dossier parent. Le . correspond au dossier courant.

1) Quel est le répertoire personnel d’un utilisateur qui s’appelle « michel » ?

/home/michel

2) On considère l’arborescence suivante :

/
├── home
│	├── eleve
│	│	└── fichier.txt
│	└── administrateur
├── lost+found
├── media
└── var
	└── www
		└── index.html
  • /home/eleve/fichier.txt
  • /var/www/index.html
  • ../eleve/fichier.txt
  • ../../var/www/index.html

Console

Une console est un écran attendant des instructions, on y accède avec les touches Ctrl + Alt + Fx ou x est un chiffre entre 1 et 6. Il faut faire Ctrl + Alt + F2 pour revenir à l’interface graphique.

La console n’étant pas très pratique on lui préfère souvent un terminal qui est une fenêtre avec une console à l’intérieur. Vous utiliserez le terminal de votre choix (Terminal, Tilix…) :

Il existe plusieurs interpréteurs de commande (shell), nous utiliserons celui fourni par défaut et le plus répandu : bash.

L’invite de commande se présente sous la forme :

login@ordi:repertoire_courant$

Vous pouvez alors saisir des commandes. Dans la suite, les commandes seront précédées par $ pour indiquer qu’elles doivent être saisies dans le shell.

Astuce : tab (la touche tabulation) complète automatiquement le nom ou l’arborescence s’il est unique. tab tab affiche toutes les possibilités.

Astuce : il est possible de remonter dans l’historique des commandes avec ↑.

Commande

Pour lancer une commande, il suffit de mettre son nom dans le shell et d’appuyer sur entrée.

3) Essayez les commandes suivantes et donnez ce qu’elles font (on les reverra plus tard) :

  • Donne la date ;
  • Affiche le répertoire courant ;
  • Donne la liste des utilisateurs connectés ;
  • Liste le contenu du répertoire courant.

Une commande peut avoir un ou plusieurs paramètres. Ils sont en général séparés par des espaces.

4) Essayez la commande suivante et dire ce qu’il se passe :

$ echo "toto"

Elle affiche toto.

Une commande peut avoir des options. Bien souvent les options sont des lettres précédées un tiret ou des mots précédé de deux tirets. On peut éventuellement mettre plusieurs options derrière le même tiret.

5) Essayer la commande suivante et expliquez ce qu’elle produit :

$ python3 -V

Elle affiche la version de Python.

Enfin, il existe une commande qui permet de voir le manuel de n’importe quelle commande : man.

6) Essayez les commandes suivantes et corrigez vos réponses à la question 3 :

$ man ls
$ man pwd
$ man who

Commandes de base

man (manuel)

Affiche la page de manuel d’une commande (q pour quitter)
man ls affiche la page de manuel de la commande ls

pwd (print working directory)

Renvoie le chemin absolu du répertoire courant.

ls (list segment)

Affiche le contenu d’un répertoire.
ls -a affiche les fichiers cachés
ls -l affiche les informations détaillées
ls -h affiche la taille des fichiers de façon lisible

cd (change directory)

Permet de naviguer dans les répertoires
cd /usr/bin se place dans le répertoire /usr/bin
cd ou cd ~ se place dans le répertoire de l’utilisateur
cd .. remonte d’un répertoire
cd - revient au répertoire précédent

cp (copy)

Permet de copier des fichiers ou des répertoires
Option : -r copie un répertoire et tout son contenu (récursif)
cp fichier destination/ copie fichier dans le répertoire destination
cp -r rep/ destination/ copie rep et tout son contenu dans le répertoire destination
cp -r rep/* destination copie le contenu de rep/ dans le répertoire destination

mv (move)

Permet de déplacer ou renommer des fichiers
mv fichier destination/ déplace fichier dans le répertoire destination
mv fichier destination/fichier2 déplace et renomme fichier dans le répertoire destination
mv rep1 rep2 renomme rep1 en rep2 (Attention, si rep2 existe, rep1 sera déplacé dans rep2)
mv /var/www . déplace le répertoire /var/www dans le répertoire courant.

rm (remove)

Permet de supprimer des fichiers et des répertoires
Option :
-r supprime un dossier et tout ce qu’il contient
-f ne demande pas de confirmation avant d’effacer
rm fichier supprime fichier
rm -rf rep/ supprime le répertoire rep et tout ce qu’il contient sans rien demander
rm -rf /* supprime tous les fichiers de l’ordinateur (ne pas tester, l’ordinateur serait inutilisable !)

mkdir (make directory)

Créer un répertoire
mkdir rep crée le répertoire rep

rmdir (remove directory)

Supprime un répertoire vide (moins risqué que rm -r)
rmdir rep supprime le répertoire rep s’il est vide

touch

Créer un fichier vide
touch fiche crée le fichier fiche

cat (concatenate)

Affiche le contenu d’un fichier (peut faire d’autres choses aussi)

more

Affiche le contenu d’un fichier page par page

7) En utilisant la commande man, trouver la fonction des commandes head et tail.

head affiche les dix premières lignes d'un fichier.
tail affiche les dix dernières lignes d'un fichier.

8) Quels sont les auteurs de la commande ls ?

Richard M. Stallman et David MacKenzie

9) Lister le contenu du répertoire /etc et donner 3 répertoires qui s’y trouvent.

python3 vim et emacs

10) Dans votre répertoire personnel, créez un répertoire toto puis un sous-répertoire titi. Créez dans titi un fichier tata. Appelez le professeur.

Commandes supplémentaires

top

Permet de voir la charge cpu et les processus actifs

nano

Éditeur de texte. Ctrl + s pour sauvegarder et Ctrl + x pour quitter.

11) Écrivez « Coucou » dans le fichier tata.

Scripts bash

Tout ce qui suit est hors programme mais cela peut intéresser certain d’entre vous. Il est possible, et c’est ce qui fait la force de la ligne de commande, de regrouper des commandes dans un fichier qui peut ensuite être exécuté. C’est ce qu’on appelle un script shell.

Pour créer un script il suffit d’écrire des commandes dans un fichier. On utilisera l’extension .sh et on fera commencer le fichier par :

#!/bin/bash

Pour rendre le fichier exécutable il faudra effectuer la commande :

chmod +x mon_fichier.sh

et pour lancer le fichier

./mon_fichier.sh