Skip to content

tp commandes unix

Exercice 1 Chemins relatifs et absolus 1 🏆

  1. En vous basant sur l'arborescence Linux du cours déterminez le chemin absolu permettant d'accéder aux fichiers :

  2. cat

  3. rapport.odt

  4. Toujours en vous basant sur cette même arborescence, déterminez le chemin relatif permettant d'accéder aux fichiers :

  5. rapport.odt depuis le répertoire elsa

  6. fiche.ods depuis le répertoire boulot
  7. photo1.jpg depuis le répertoire ski
  8. photo1.jpg depuis le répertoire boulot

Exercice 2 : Commandes de base 🏆

Préalables

  • Vérifier tout d'abord que vous possédez un Shell Unix, si ce n'est pas le cas suivez ces intructions

  • Une fois démarré le terminal, vous devriez accéder à une invite de commandes différente en fonction de la solution installée

Dans la suite, on utilisera le symbole $ pour représenter le prompt du shell (c'est l'équivalent de >>> sous Python) : il ne fait pas partie de la commande.

Exemple guidé

1- Changer de répertoire courant avec la commande cd (change directory)

Commencer par vous placer dans le répertoire home à l'aide d'un chemin absolu

$ cd /home

La commande cd est suivie d'un paramètre qui est ici le chemin vers le répertoire spécifié (attention : il y a un espace entre la commande et le paramètre).

2- Vous pouvez vérifier à tout moment où vous êtes en utilisant la commande pwd (print working directory)

$ pwd
/home

Remarque : ici la première ligne est précédée du prompt $ (qui n'est pas à taper bien évidemment !) pour bien montrer que cette ligne est une commande contrairement à la deuxième qui correspond à ce que fournit le shell en retour.

La commande pwd vous renvoie toujours un chemin absolu vers le répertoire courant.

Placez vous maintenant dans votre répertoire personnel : c'est par défaut un des répertoires enfants de home. Par exemple si votre nom d'utilisateur est Toto, il suffit de faire :

  • Sous forme de chemin absolu :

    $ cd /home/Toto
    
  • Ou encore en utilisant ~ qui référence toujours le répertoire personnel de l'utilisateur actif

    $ cd ~
    
  • Sous forme de chemin relatif depuis home par exemple :

    $ cd ./Toto
    

3- Créer des répertoires avec la commande mkdir (make directory)

  • Une fois dans votre répertoire personnel vous pouvez créer un répertoire de travail nommé nsi

    $ mkdir nsi
    
  • On souhaite créer 3 répertoires enfants nommés rep1 , rep2, rep3 et rep4.

    $ cd nsi
    $ mkdir rep1 rep2 rep3 rep4
    

Les deux commandes précédentes ont permis tout d'abord d'entre dans le répertoire nsi puis de créer les 3 répertoires en une seule fois (il suffit de laisser un espace entre chaque nom)

4- Afficher le contenu d'un répertoire avec la commande ls (list)

En se plaçant toujours dans le répertoire nsi on obtient

$ ls
rep1 rep2 rep3 rep4

Un bon moyen à tout moment de vérifier le contenu d'un répertoire !

5- Supprimez des répertoires avec la commande rmdir (remove directory)

On souhaite supprimer rep3 depuis le répertoire nsi : rien de plus simple

$ rmdir rep3

Toutes les commandes précédentes peuvent être effectuées avec des chemins relatifs (comme les exemples précédents) ou des chemins absolus.

Supprimons le répertoire rep4 avec un chemin absolu :

$ rmdir ~/nsi/rep4

Remarques :

  • pour un répertoire personnel nommé Toto on aurait aussi pu écrire rmdir /home/Toto/nsi/rep4
  • Comme avec l'interpréteur Python, utilisez l'auto-complétion avec la touche TAB pour gagner du temps lors de la saisie des chemins.

6- Créer des fichiers vides avec la commande touch

  • On souhaite créer un fichier nommé essai1 dans rep1 On rappelle que sous Unix les fichiers n'ont pas nécessairement une extension.
$ touch rep1/essai1

Constatez qu'il n'est pas nécessaire de se placer dans dans le dossier pour créer le fichier, on a ici utilisé un chemin absolu

On peut vérifier ce qui c'est passé sans se déplacer dans le répertoire rep1 !!

$ ls rep1
essai1

Remarque : la commande ls peut comme on le constate accepter comme argument un chemin vers un répertoire dont on souhaite lister le contenu. Si rien n'est indiqué c'est le répertoire courant qui est traité.

  • On peut également créer plusieurs fichiers simultanément. Par exemple : créons les fichiers essai2a et essai2b dans rep2
$ touch rep2/essai2a rep2/essai2b

A ce stade il est bon de vérifier notre travail, normalement la structure du dossier nsi doit être la suivante :

.
├── rep1
│   └── essai1
└── rep2
    ├── essai2a
    └── essai2b

Remarques:
L'arborescence est ici représentée verticalement, une indentation identique est appliquée à chaque enfant du même parent
On reconnait au sommet le symbole . représentant le répertoire courant ici nsi qui contient deux répertoires rep1 et rep2. Le premier contenant le fichier essai1 et le second deux fichiers essai2a et essai2b

  • Entrons dans le dossier rep1 et vérifions son contenu :
$ cd rep1
$ ls
essai1
  • Remontons au dossier parent puis entrons dans rep2 et vérifions son contenu :
$ cd ../rep2
$ ls
essai2a essai2b

7- Supprimez des fichiers avec la commande rm(remove)

On souhaite supprimer le fichier essai2a depuis le répertoire rep2 puis vérifier le contenu du répertoire :

$ rm essai2a
$ ls
essai2b

A ce stade la structure du dossier nsi doit être la suivante :

.
├── rep1
│   └── essai1
└── rep2
    └── essai2b

8- Renommer(ou déplacer) un fichier avec la commande mv(move)

  • Déplaçons le fichier essai2b restant vers le répertoire en rep1.
$ mv essai2b ../rep1/

Cette commande accepte deux paramètres : le premier correspond au chemin vers le fichier d'origine ici essai2b, le second au nouvel emplacement du fichier après déplacement ici ../rep1/
Attention ici le / final est important : il indique qu'on déplace le fichier dans un répertoire : le fichier serait sinon renommé.

A ce stade voilà l'arborescence du dossier nsi :

.
├── rep1
│   ├── essai1
│   └── essai2b
└── rep2
  • La commande mv permet également de renommer un fichier (en le déplaçant ou non)
$ mv essai2b essai1b

La structure devient alors :

.
├── rep1
│   ├── essai1
│   └── essai1b
└── rep2

Remarque : on aurait pu réaliser les 2 étapes précédentes en une seule commande depuis le répertoire d'origine du fichier : mv essai2b ../rep1/essai1b (déplacement et renommage du fichier)

9- Copier un fichier avec la commande cp(copy)

Au lieu de déplacer le fichier on peut aussi vouloir en faire une copie (en la renommant). Depuis rep2, plaçons-nous dans rep1 puis copions essai1b dans rep2 en nommant la copie essai2_new

$ cd ../rep1
$ cp essai1b ../rep2/essai2_new

Comme la commande mv, cp accepte deux paramètres : le premier correspond au chemin du fichier d'origine le second au chemin vers la copie.

Pensez à naviguer entre les répertoires avec cd , vérifiez quel est le répertoire courant avec pwd et lister le contenu des répertoires avec ls.
Au final la structure du dossier nsi doit être la suivante :

.
├── rep1
│   ├── essai1
│   └── essai1b
└── rep2
    └── essai2_new

Exercice 3 : A vous de jouer 🏆🏆

Pour chacune des étapes suivantes écrivez les commandes associées et réalisez-les.
Il est fortement conseiller de dessiner sur un brouillon au fur et à mesure l'arborescence : cela vous aidera à vous repérer. Cette dernière sera demandée à quelques points d'étapes.

1) Placez vous dans votre répertoire personnel

2) Depuis votre répertoire personnel :

  • a- Créer un répertoire data
  • b- Créer deux répertoires enfants au répertoires data nommés travail et maison
  • c- Créer les fichiers agenda, collegues, cuisine dans travail

3) Placez-vous dans le répertoire travail

4) Depuis travail

  • a- lister le contenu du répertoire
  • b- Dupliquez le fichier agenda en nommant le nouveau agenda2
  • c- Déplacez cuisine dans le répertoire maison (le nom ne sera pas modifié)
  • d- Supprimez le fichier agenda2

5) Dessiner la structure du répertoire data

6) Placez vous dans le répertoiremaison

7) Depuis le répertoire maison :

  • a- Créez 3 répertoires endants de maison nommés videos, info etmusique
  • b- Créez 4 répertoires enfants de musique nommés rnb, jazz, rock et rap

8) Déplacez vous en une seule commande dans le répertoire rap

9) Depuis le répertoire rap supprimez le répertoire rock

10) Dessiner la structure du répertoire data

11) Déplacez vous en une seule commande dans le répertoire travail

Exercice 4 : Manipulez le contenu des fichiers 🏆🏆

Les commandes sont des programmes exécutables, on peut donc lancer n'importe quel programme grâce au Shell. Par exemple un éditeur de texte.

1) Créer un répertoire ex4 dans votre répertoire personnel. Dans ce dernier créer un fichier vide nommé texte.
2) Placez vous dans le répertoire créé puis lancez l'éditeur Vim pour modifier texte

$ vim texte

Vim est un logiciel libre inspiré du logiciel vi (très répandu sur les sytèmes Unix) fonctionnant dans le terminal en mode texte plein écran. Il propose énormément de fonctions qui sont, pour la grande majorité, accessibles au clavier.

Vim

Pour plus d'informations sur son utilisation suivez ce lien

  • Basculez en mode insertion en appuyant sur les touches ESC puis i. En bas de la fenêtre vous devriez apercevoir --INSERT-- ce qui signifie que vous pouvez écrire dans le fichier.

Complétez avec le texte de votre choix.

  • Pour enregistrez : passez en mode interactif en appuyant sur la touche ESC, puis tapez la commande suivante en validant par entrée
:wq

Si vous êtes bien en mode interactif, les caractères saisis le seront sur la dernière ligne

commandes vim

Cette commande signifie write and quit : écrire et quitter. Vous devriez revenir à l'interpréteur de commandes du shell.

3) Vérifiez maintenant le contenu du fichier sans utiliser l'éditeur grâce à la commande cat

$ cat texte

4) 🥇 Maintenant que vous savez éditer des fichiers et visualiser leur contenu rapidement réalisez le défi qui suit.

a- En un minimum de commandes et un minimum de touches, créer à partir de votre répertoire personnel un répertoire defi ayant la structure suivante :

.
├── d1
│   └── texte1
├── d2
│   └── texte2
└── d3
    ├── r3_1
    │   └── texte3
    └── r3_2
        └── texte4
  • defi, d1, d2, d3, r3_1, r3_2 sont des répertoires
  • texte1, texte3 des fichiers contenant la chaîne de caractères "Un premier texte"
  • texte2 et texte4 des fichiers contenant la chaîne de caractères "Un deuxième texte"

Vous noterez toutes les commandes utilisées

b- Toujours en un minimum de commandes et un minimum de touches, placez vous dans le répertoire r3_2 et, depuis cet emplacement visualiser le contenu de tous les fichiers textes.(la commande cat accepte plusieurs arguments comme mkdir par exemple)

Vous noterez toutes les commandes utilisées

Exercice 5 : QCM 🏆

(Extraits des QCM diffusables pour les E3C)

1. Dans la console Linux, étant positionné dans le répertoire /home/marcelH/travail, quelle commande faut-il exécuter pour remonter dans l'arborescence vers le répertoire /home/marcelH ?

  • [ ] cd .
  • [ ] cd ..
  • [ ] cd ...
  • [ ] cd /../.

2. Dans un système Linux, on dispose d'un répertoire racine contenant deux répertoires documents et sauvegardes. On se trouve dans le répertoire documents où figure un fichier NSI.txt. Quelle commande permet de créer une copie nommée NSI2.txt de ce fichier dans le répertoire sauvegardes ?

  • [ ] cp NSI.txt NSI2.txt
  • [ ] cp NSI.txt sauvegardes/NSI2.txt
  • [ ] cp NSI.txt ../NSI2.txt
  • [ ] cp NSI.txt ../sauvegardes/NSI2.txt

3. Le répertoire personnel de l'utilisateur contient deux répertoires tempo et sauve. On souhaite déplacer le fichier bac.txt du repertoire tempo vers le répertoire sauve. Quelle commande permet de réaliser ce déplacement ?

  • [ ] mkdir ~/tempo/bac.txt ~/sauve
  • [ ] mkdir ~/sauve ~/tempo/bac.txt
  • [ ] mv ~/tempo/bac.txt ~/sauve/
  • [ ] mv ~/sauve ~/tempo/bac.txt

4. Sous UNIX, que va réaliser la ligne de commande cat file.txt ?

  • [ ] rien du tout
  • [ ] l'affichage du contenu du fichier file.txt dans la console
  • [ ] la création d'un fichier file.txt
  • [ ] la suppression du fichier file.txt

  1. https://github.com/nsi-acot/continuite_pedagogique_premiere 

Back to top