tp commandes unix
Exercice 1 Chemins relatifs et absolus 1 🏆
-
En vous basant sur l'arborescence Linux du cours déterminez le chemin absolu permettant d'accéder aux fichiers :
-
cat
-
rapport.odt
-
Toujours en vous basant sur cette même arborescence, déterminez le chemin relatif permettant d'accéder aux fichiers :
-
rapport.odt
depuis le répertoireelsa
fiche.ods
depuis le répertoireboulot
photo1.jpg
depuis le répertoireski
photo1.jpg
depuis le répertoireboulot
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
etrep4
.$ 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 écrirermdir /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
dansrep1
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
etessai2b
dansrep2
$ 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 enrep1
.
$ 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éstravail
etmaison
- c- Créer les fichiers
agenda
,collegues
,cuisine
danstravail
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 nouveauagenda2
- c- Déplacez
cuisine
dans le répertoiremaison
(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ésvideos
,info
etmusique
- b- Créez 4 répertoires enfants de
musique
nommésrnb
,jazz
,rock
etrap
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.
Pour plus d'informations sur son utilisation suivez ce lien
- Basculez en mode insertion en appuyant sur les touches
ESC
puisi
. 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
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épertoirestexte1
,texte3
des fichiers contenant la chaîne de caractères "Un premier texte"texte2
ettexte4
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
-
https://github.com/nsi-acot/continuite_pedagogique_premiere ↩