TP Shell/Linux
L’objectif ici est de découvrir et prendre en main la ligne de commande. Mais aussi gagner
en autonomie pour trouver les informations requises pour exécuter une commande avec des
options particulières.
echo
La tradition veut que lorsque l'on découvre un nouveau langage informatique on apprenne
tout d'abord comment afficher le message "Hello World". C'est donc ce que nous allons
faire. L'instruction ou la commande que nous allons utiliser est echo . Cette commande
prend en paramètre le message à afficher. C'est à dire une chaîne de caractères. Par
exemple "Hello World". Essayez la commande suivante.
$ echo "hello world"
Remarque : Ne saisissez pas le caractère $ . Il indique l'invite de votre ligne de commande.
Question 1 : Qu'est ce qui s'affiche à l'écran ?
man
Pour obtenir des informations sur une commande vous utiliserez la commande 'man'
(comme manuel utilisateur). Son fonctionnement est simple. Il suffit de lui passer en
paramètre le nom de la commande pour laquelle vous souhaitez obtenir des informations
(son utilité, son usage, ses options, et parfois même des exemples). Par exemple, pour
obtenir des informations sur la commande echo vous saisirez les instructions suivantes.
$ man echo
Astuce : Pour sortir de la commande man appuyez sur la touch Q .
Question 2 : Quelles instructions allez-vous saisir pour obtenir des informations sur la
commande man ?
Question 3 : Déterminez l'option (flag en anglais) de la commande echo qui permet de
supprimer le retour à la ligne ?
ls
Pour obtenir la liste des fichiers et dossiers là où vous êtes dans l'arborescence du système
de fichiers il suffit de taper la commande ls .
$ ls
Question 4 : Quel option de la commande ls permet d'afficher tous les fichiers (même ceux
dont le nom commence par un point, qu'on appel parfois des fichiers cachés).
Remarque : Maintenant que vous connaissez cette option, avouez que les fichiers cachés ne
sont pas... très bien cachés.
Question 5 : Quel option unique de la commande ls permet d'afficher beaucoup plus
d'informations sur chaque fichier et dossier. Comme par exemple sa taille, sa date de
création, son propriétaire, ses droits d'accès,...
Remarque: Nous décrirons plus en détail toutes les informations obtenues à l'écran
ultérieurement.
cat
La commande cat permet d'envoyer (d'afficher) à l'écran le contenu d'un fichier. Imaginons
un fichier foo.txt contenant la chaîne de caractères bonjour monde. La commande cat
foo.txt affichera à l'écran bonjour monde.
Remarque : La commande supporte l'option --help ce qui permet de s'affranchir de
la commande man .
$ cat –help
Question 6 : Quels instructions allez-vous saisir pour afficher le contenu du fichier .bashrc
Question 7 : Quel option de la commande cat allez-vous utiliser pour afficher le contenu du
fichier .bashrc en numérotant chaque ligne ?
Touch
Une simple commande qui permet de créer un fichier vide. Saisissez la commande touch
bar.txt . Le fichier bar.txt sera créé.
$ touch bar.txt
Question 8 : Comment vous assurez que le fichier existe bien et qu'il est vide ?
Astuce : Utilisez les commandes vues ci-avant bien sûr ! (ls et cat)
mkdir
La commande mkdir permet de créer un dossier (ou répertoire, ou directory en anglais).
Son usage est simple. Il suffit de lui passer en paramètre le nom du dossier que l'on souhaite
créer.
$ mkdir MonDossier
Rappel : Les systèmes de fichier sous Linux sont sensibles à la casse (Majuscule/minuscule).
La chaine de caratères MonDossier est différente de monDossier .
Question 9 : Créer les
dossiers MonDossierPerso , MonDossier_a_effacer et .MonDossierSecret (remarquez le
caractère point qui prèfixe le nom du dossier).
rmdir
La commande rmdir permet de supprimer un dossier vide (c'est à dire qui ne contient ni
fichier ni sous-dossier).
Question 10 : Supprimer le fichier MonDossier_a_effacer .
mv (renommer)
La commande mv permet (entre autre) de renommer un fichier ou un dossier. Son usage
est simple. Le premier paramètre est l'ancien nom. Le second paramètre est le nouveau
nom.
$ mv ancienNom nouveauNom
Question 11 : Renommer le dossier MonDossierPerso en MonDossierPro .
cd
La commande 'cd' (change directory) permet de se déplacer dans l'arborescence du
système de fichier. Il suffit de lui passer en paramètre le nom du répertoire dans lequel
vous voulez "descendre".
Exemple
$ cd MonDossierPro
On peut passer à la commande cd en paramètre un chemin absolu ou relatif.
Rappel : Il existe des nommages particuliers qu'il faut connaitre.
Les deux points .. représente le répertoire situé immédiatement au-dessus.
Le caractère ~ (tilde) représente le chemin de votre répertoire de connexion
(user's home directory).
Le caractère point . représente le répertoire courant.
Le caractère / (slash) situé le plus à gauche d'un chemin absolu représente
la racine du système de fichiers. Autre part il n'est qu'un séparateur.
Astuce : Si vous saisissez la commande cd seul sans argument vous retournez directement
dans votre répertoire de connexion.
Par exemple sur ma machine personnelle la commande cd ~ équivaut à cd /home/jp . Mais
si je veux revenir dans mon répertoire de connexion je saisirai plutôt cd (suivie d'un retour
chariot). Le résultat de ces trois dernières commande est identique.
Question 12 : Quelle commande allez-vous saisir pour vous positionner dans le
répertoire log situé dans le répertoire var lui même situé à la racine ( / ) du système de
fichier.
Astuce : Utilisez un chemin absolu.
pwd
Cette commande permet de savoir où vous vous situez dans l'arborescence de votre système
de fichier. Saisissez simplement la commande pwd .
$ pwd
Vous devriez être dans /var/log (cf. question 12 précédente).
Question 13 : Saisissez la commande cd sans argument. Où êtes vous à présent ? Notez le
chemin complet obtenu avec la commande pwd .
>
Le caractère > (strictement supérieur) fait partie des opérateurs. Un opérateur est
généralement utilisé pour que des programmes puissent interagir. Le caractère > est
l'opérateur qui permet de rediriger la sortie d'une commande. Par exemple si j'exécute la
commande echo "hello" > greetings.txt , le message hello ne sera pas affiché à l'écran. La
sortie de la commande echo sera redirigée dans le fichier greetings.txt. Le message hello se
retrouvera donc dans le fichier greetings.txt.
$ echo "hello" > greetings.txt # Rien ne s'affiche à l'écran
$ ls # Un fichier greetings.txt a été créé.
greetings.txt
$ cat greetings.txt
hello
$
Question 14 : Après avoir testé les commandes précédente, saisissez la commande echo
"bonjour" > greetings.txt . Que contient le fichier greetings.txt ? (utilisez la commande cat )
Remarque : Si le fichier existe déjà celui-ci est écrasé/effacé. Son contenu est remplacé par
le nouveau message.
Question 15 : Donnez la ligne d'instructions pour créer un fichier
nommé secrets.txt contenant le message J'aime chanter sous ma douche.
>>
L'opérateur double supérieur ( >> ) fonctionne comme l'opérateur ci-dessus a la
différence majeure qu'il n'efface pas le contenu du fichier destinataire. Il ajoute la sortie
de la commande à la fin du fichier (on dit qu'il fait de l'append en anglais).
Par exemple si j'exécute la commande echo "hola" >> greetings.txt , le mot hola sera
ajouté à la fin du fichier greetings.txt sans effacer ce qu'il contenait.
$ echo "hola" >> greetings.txt # Rien ne s'affiche à l'écran
$ ls # Le fichier greetings.txt existe toujours.
greetings.txt
$ cat greetings.txt
bonjour
hola # une nouvelle ligne est apparu en fin de fichier
$
Question 16 : Donnez la ligne d'instructions pour ajouter le message Je dors avec des
chaussettes à la fin du fichier secrets.txt .
mv (déplacer)
La commande mv que nous avons déjà rencontrée ci-avant peut également être utilisée
pour déplacer des fichiers et des dossiers.
Son usage est simple : mv file.doc dossierA pour ranger le fichier .doc dans le dossier A,
ou mv dossierA dossiers pour ranger/déplacer le dossier A dans le répertoire dossiers.
Par exemple pour déplacer le fichier greetings.txt dans MonDossierPro on utilise la
commande mv greetings.txt MonDossierPro .
Question 17 : Comment déplacer le fichier secrets.txt dans le dossier .MonDossierSecret ?
rm
La commande rm (remove) permet d'effacer un fichier. Il suffit de lui passer en paramètre
le nom du fichier 0 effacer.
$ rm fichier_inutile.txt
La commande rm permet également de supprimer un répertoire et tout son contenu. Pour
ce faire vous devrez utiliser les options -r et -f ou -rf (plus efficace).
$ rm -rf repertoireAeffacer
ATTENTION : L'usage des options -rf peut être fatal. Sous Linux la récupération de
documents supprimés est considéré comme impossible. Donc soyez très vigilant avant de
valider une commande de ce type.
Question 18 : A quoi sert l'option -r de la commande rm ?
Question 19 : A quoi sert l'option -f de la commande rm ?
Question 20 : Pourquoi vous ne taperez jamais la commande rm -rf ~ ? (NE LE FAITE PAS,
JUSTE CHERCHER POURQUOI IL NE FAUT PAS LE FAIRE)
Activités
Voici une arborescence que vous allez devoir reproduire sur votre poste de travail à l'endroit
qui vous conviendra dans votre répertoire de connexion.
Activité 1 : Lister les commandes (mkdir et cd) que vous avez utilisé pour obtenir une
arborescence identique.
Positionnez vous à présent à la racine de votre répertoire de connexion (dans votre home
directory). Vous pouvez utilisez la commande cd sans paramètre (suivi d'Entrée). Saisissez la
commande suivante :
touch projet.c tp1.py script.sh fichier.tmp
Activité 2 : Déplacer les fichiers fraichement créé ci-dessus dans les répertoires les mieux
adaptés selon vous de l'arborescence créé dans l'activité précédente.