Aller au contenu principal

Semaine 13 - Cours théorique - Invite de commande (Linux)

Vous devez faire les exercices à partir de votre portable.

Téléchargez le fichier 1r1_ex_s9-5bb01cdced6471630e29f3183204fce4.zip.

Il faut extraire tout son contenu dans le dossier ~/excmd1.

Si vous n'avez pas Ubuntu sur votre portable, utilisez l'ordinateur du laboratoire.

Le contenu du dossier ~/excmd1 doit être comme l'image ci-dessous.

mkdir excmd1
unzip 1r1_ex_s9.zip -d excmd1/

Votre invite de commandes doit avoir le dossier de travail ~/excmd1 comme l'image ci-dessous.

1. Commandes de base

La réponse affiche le dossier de travail ainsi que la commande.

Exemple, le dossier de travail doit être ~/excmd1 et la commande doit être cd .. la réponse sera affichée : ~/excmd1$ cd ..

Numéro 1.1

Changez le dossier de travail pour ~/excmd1/ex1/.

Utilisez la notation relative.

Réponse

~/excmd1$ cd ex1

Numéro 1.2

Affichez le contenu du dossier.

Réponse

~/excmd1/ex1$ ls

Numéro 1.3

Déterminez le nombre de dossiers. Il ne faut pas tenir compte des dossiers . et .. (dossier de références).

Réponse

1 dossier

Déterminez le nombre de fichiers.

Réponse

7 fichiers

Déterminez la taille totale des fichiers.

Réponse

10 739 octets

Déterminez le fichier qui est le plus gros.

Réponse

note.exe

Numéro 1.4

Créez le dossier ~/excmd1/rep1/.

Utilisez la notation absolue.

Réponse

~/excmd1/ex1$ mkdir ~/excmd1/rep1

Numéro 1.5

Créez le dossier ~/excmd1/rep1/reps1/.

Utilisez la notation absolue.

Réponse

~/excmd1/ex1$ mkdir ~/excmd1/rep1/reps1

Numéro 1.6

Copiez le fichier ~/excmd1/ex1/lib/mdba.lib dans le dossier ~/excmd1/rep1/reps1/.

Utilisez la notation absolue.

Réponse

~/excmd1/ex1$ cp ~/excmd1/ex1/lib/mdba.lib ~/excmd1/rep1/reps1/mdba.lib

Numéro 1.7

Changez le dossier de travail pour ~/excmd1/ex1/lib/.

Utilisez la notation absolue.

Réponse

~/excmd1$ cd ~/excmd1/ex1/lib

Numéro 1.8

Déplacez le fichier ~/excmd1/ex1/lib/mdbb.lib dans le dossier ~/excmd1/rep1/reps1/.

Utilisez la notation relative pour la source et l'absolue pour la destination.

Réponse

~/excmd1/ex1/lib$ mv mdbb.lib ~/excmd1/rep1/reps1/mdbb.lib

Numéro 1.9

Changez le dossier de travail pour ~/excmd1/rep1/reps1/

Utilisez la notation relative.

Option 1 -> une seule commande

Réponse

~/excmd1/ex1/lib$ cd ../../rep1/reps1

Option 2 -> 4 commandes

Réponse

~/excmd1/ex1/lib$ cd ..
~/excmd1/ex1$ cd ..
~/excmd1$ cd rep1
~/excmd1/rep1$ cd reps1

Numéro 1.10

Renommez le fichier ~/excmd1/rep1/reps1/mdbb.lib pour zmdbb.lis.

Utilisez la notation relative.

Réponse

~/excmd1/rep1/reps1$ mv mdbb.lib zmdbb.lis

Numéro 1.11

Supprimez le fichier ~/excmd1/rep1/reps1/mdba.lib.

Utilisez la notation relative.

Réponse

~/excmd1/rep1/reps1$ rm mdba.lib

Numéro 1.12

Créez le dossier ~/excmd1/rep1/reps2/.

Utilisez la notation absolue.

Réponse

~/excmd1/rep1/reps1$ mkdir ~/excmd1/rep1/reps2

Numéro 1.13

Changez le dossier de travail pour ~/excmd1/rep1/reps2/.

Utilisez la notation relative.

Option 1 -> 1 seule commande

Réponse

~/excmd1/rep1/reps1$ cd ../reps2

Option 2 -> 2 commandes

Réponse

~/excmd1/rep1/reps1$ cd ..
~/excmd1/rep1$ cd reps2

Numéro 1.14

Supprimez le dossier ~/excmd1/rep1/reps2/.

Est-ce que ça fonctionne ?

Réponse

Si vous êtes bien dans le dossier de travail ~/excmd1/rep1/reps2, il ne sera pas possible de le faire. Il n'est pas possible de supprimer un dossier en cours d'utilisation.

Que devez-vous faire pour être en mesure de résoudre le problème ?

Réponse

Vous devez changer le dossier de travail.
~/excmd1/rep1/reps2$ cd ..
~/excmd1/rep1$ rm -r ~/excmd1/rep1/reps2

Numéro 1.15

Créez le dossier ~/excmd1/xdoc/.

Utilisez la notation absolue.

Réponse

~/excmd1/rep1$ mkdir ~/excmd1/xdoc

Numéro 1.16

Créez le dossier ~/excmd1/redirect/.

Utilisez la notation absolue.

Réponse

~/excmd1/rep1$ mkdir ~/excmd1/redirect

Numéro 1.17

Supprimez le fichier ~/excmd1/ex1/database.dll

Utilisez la notation absolue.

Réponse

~/excmd1/rep1$ rm ~/excmd1/ex1/database.dll

Numéro 1.18

Changez le dossier de travail pour ~/excmd1/ex1/.

Utilisez la notation relative.

Option 1 - 1 commande

Réponse

~/excmd1/rep1$ cd ../ex1

Option 2 - 2 commandes

Réponse

~/excmd1/rep1$ cd ..
~/excmd1$ cd ex1

Numéro 1.19

Supprimez le fichier ~/excmd1/ex1/typo64.dll.

Utilisez la notation relative.

Réponse

~/excmd1/ex1$ rm typo64.dll

Numéro 1.20

Changez le dossier de travail pour ~/excmd1/.

Utilisez la notation relative.

Réponse

~/excmd1/rep1$ cd ..

Numéro 1.21

Créez les dossiers ci-dessous.

~/excmd1
|---- s1/
|---- s2/
|----- s31/
|----- s32/
|---- tx1/
|---- tx21/
|---- tx22/

Utilisez le moins de commandes. Il est possible de le faire en 4 commandes.

Utilisez la notation relative.

Réponse

~/excmd1$ mkdir -p s1/s2/s31
~/excmd1$ mkdir -p s1/s2/s32
~/excmd1$ mkdir -p tx1/tx21
~/excmd1$ mkdir -p tx1/tx22

Numéro 1.22

Créez le fichier ~/excmd1/fruits.txt. Le fichier doit contenir uniquement ce message sur 3 lignes.

Ligne 1 : Pomme Ligne 2 : Banane Ligne 3 : Orange

Réponse

~/excmd1$ echo Pomme > ~/excmd1/fruits.txt
~/excmd1$ echo Banane >> ~/excmd1/fruits.txt
~/excmd1$ echo Orange >> ~/excmd1/fruits.txt

La première ligne utilise uniquement le >, car on veut effacer le fichier s'il existe déjà. Les autres lignes doivent conserver le contenu du fichier.

Numéro 1.23

Supprimez le dossier ~/excmd1/s1/.

Utilisez la commande man pour la commande de suppression de dossiers pour connaitre l'option pour permettre la suppression du contenu.

Utilisez la notation absolue.

Réponse

~/excmd1$ rm -r ~/excmd1/s1

2. Utilisation des métacaractères.

Numéro 2.1

Changez le dossier de travail pour ~/excmd1/wc1/.

Utilisez la notation absolue.

Réponse

~/excmd1/rep1$ cd ~/excmd1/wc1

Numéro 2.2

Affichez tous les fichiers qui ont l'extension .txt. Il doit avoir 280 fichiers.

Réponse

~/excmd1/wc1$ ls *.txt
~/excmd1/wc1$ ls *.txt|wc

Numéro 2.3

Affichez tous les fichiers qui débutent par doc. Il doit avoir 180 fichiers.

Réponse

~/excmd1/wc1$ ls doc*
~/excmd1/wc1$ ls doc*|wc

Numéro 2.4

Affichez tous les 10 fichiers de hdoc20.txt à hdoc29.txt.

Les fichiers hdoc200.txt à hdoc209.txt ne doivent pas s'afficher.

Option 1:

Réponse

~/excmd1/wc1$ ls hdoc2?.txt

Bien que valide dans ce cas, cette commande afficherait aussi hdoc2a.txt si le fichier existait. On va donc préférer l'option 2.

Option 2:

Réponse

~/excmd1/wc1$ ls hdoc2{0..9}.txt

Numéro 2.5

Copiez tous les fichiers .txt dans le dossier ~/excmd1/txt/. Il doit avoir 280 fichiers.

Pour vous aider, effectuez un ls avec les métacaractères avant de procéder à la copie.

Avez-vous une erreur ? Faites l'action manquante.

Réponse

Vous devez créer le dossier txt, car il n'existe pas.
~/excmd1/wc1$ mkdir ~/excmd1/txt
~/excmd1/wc1$ cp *.txt ~/excmd1/txt/

Numéro 2.6

Déplacez tous les fichiers qui débutent par adoc et hdoc dans le dossier ~/excmd1/xdoc/. Il doit avoir 190 fichiers.

Les fichiers qui débutent par doc ne doivent pas être déplacés.

Utilisez uniquement une commande pour le déplacement.

Pour vous aider, effectuez un ls avec les métacaractères avant d'effectuer le déplacement.

Pour le chemin de destinations, utilisez ceci : ~/excmd1/xdoc/

Réponse

~/excmd1/wc1$ mv ?doc* ~/excmd1/xdoc/

Numéro 2.7

Renommez tous les fichiers qui ont l'extension .zxt par l'extension .bob.

Réponse

Sous Linux, le shell remplace les métacaractères. L'utilisation de * comme destination devient donc impossible. Il faudra donc utiliser les fonctions avancées du shell pour obtenir le même résultat. Cela dépasse le cadre du cours.

3. Redirection

Numéro 3.1

Affichez le contenu du dossier ~/excmd1/wc1/ dans le fichier ~/excmd1/redirect/ex41.txt.

Réponse

~/excmd1/wc1$ ls > ~/excmd1/redirect/ex41.txt

Numéro 3.2

Changez le dossier de travail pour ~/excmd1/.

Réponse

~/excmd1/wc1$ cd ..

Numéro 3.3

Affichez l'arborescence du dossier ~/excmd1/ avec les fichiers.

Utilisez la commande man pour la commande de l'arborescence pour connaitre l'option pour inclure les fichiers.

Enregistrez le contenu dans le fichier ~/excmd1/redirect/ex43.txt.

Réponse

~/excmd1$ ls -R > ~/excmd1/redirect/ex43.txt

Numéro 3.4

Affichez le contenu des 2 fichiers du dossier ~/excmd1/redirect/.

Réponse

~/excmd1$ cat ~/excmd1/redirect/ex41.txt
~/excmd1$ cat ~/excmd1/redirect/ex43.txt