Aller au contenu

Administration Unix - TP séance 01

Tous les exercices sont à faire sur un système Linux, de préférence Ubuntu.

Exercice 1 : prise en main du terminal et de vi

1.1. Le terminal Gnome sur Ubuntu

Pour ouvrir un terminal, pressez simultanément les 3 touches Ctrl+Alt+T.

Dans la plupart des logiciels avec une interface graphique, les copier-coller se font avec Ctrl+C (copier), Ctrl+V (coller), Ctrl+X (couper).

Dans un terminal, il faut presser en plus Shift ; il faut donc faire Ctrl+Shift+C (copier), Ctrl+Shift+V (coller), Ctrl+Shift+X (couper).

Vous pouvez rajouter un nouvel onglet dans un terminal avec Ctrl+Shift+T, et une nouvelle fenêtre avec Ctrl+Shift+N.

Dans le terminal, vous pouvez rappeler les commandes précédentes avec les flèches Up et Down, compléter une commande en appuyant sur la touche Tab, faire un recherche dans les commandes précédentes avec Ctrl+R, vider le terminal avec Ctrl+L.

1.2. Éditeur vi

Les activités d'administration système se font très souvent dans un terminal distant, sans mode graphique. Il existe un éditeur de texte qui fonctionne dans un terminal et qui est disponible sur tous les systèmes Unix : vi (prononcer "vie ail").

Cet éditeur est très puissant et vous fera gagner beaucoup de temps lorsque vous le maîtriserez, mais son fonctionnement au premier abord est un peu déroutant.

En effet, il y a 2 modes :

  • le mode "commande", vous y êtes par défaut. Les touches provoquent des actions, par exemple : x supprime un caractère, i passe en mode insertion, :q Enter quitte vi ;
  • le mode "édition" : ce que vous tapez est inséré dans le texte ; pressez Esc (la touche Échap) pour revenir au mode commande.

La version de vi que nous allons utiliser est en réalité vim (vi iMproved) et nous allons la découvrir à l'aide de son tutoriel vimtutor.

Sur les machines en salle de TP, vim et vimtutor sont déjà installés ; si vous travaillez sur votre ordinateur portable, vous pouvez installer vim et vimtutor sur Ubuntu en tapant :

$ sudo apt install vim vimtutor

En cas d'erreur d'installation (paquet vimtutor non trouvé), essayez :

$ sudo apt update
$ sudo apt install vim

Maintenant, ouvrez un terminal et tapez

$ vimtutor

Si vous vous retrouvez face à une fenêtre vide, ou un texte en anglais, vous pouvez à la place télécharger le fichier vimtutor-fr.txt ; copiez-le par exemple dans le répertoire Bureau, puis tapez dans un terminal :

$ cd ~/Bureau`
$ vim vimtutor-fr.txt

Suivez les leçons jusqu'au résumé de la leçon 4 inclus, sans y passer plus d'une demi-heure (vous pourrez étudier la suite du tutoriel plus tard).

1.3. Consignes

Dans la suite, tous les exercices devront être réalisés dans un terminal et avec vi pour éditer votre fichier de réponses.

Dans le terminal, après avoir quitté vimtutor, créez un répertoire Bureau/AdminUnix/ avec la commande mkdir, allez dedans avec la commande cd, puis éditez votre fichier de réponses en tapant

$ vi tp01-reponses.txt

Commencez à écrire en haut du fichier vos noms et prénoms ; enregistrez fréquemment en tapant Esc :w Enter

Ce fichier contiendra uniquement les réponses aux questions à partir de l'exercice 2 ; n'y mettez pas les manipulations de cet exercice 1, ni la sortie des commandes.

Rendu de la séance

À la fin de la séance, vous déposerez votre fichier de réponses sur la page Ametice en suivant bien les instructions, même si vous n'avez pas fini la planche ; lorsque vous aurez terminé (chez vous), vous pourrez re-déposer la version finale.

Exercice 2 : les options de la commande ls

Pour découvrir les options de ls, ouvrez un second terminal et tapez :

$ man ls

Tapez :

Space pour passer à la page suivante
b pour revenir à la page précédente
/motclé pour rechercher un mot clé
n pour rechercher la prochaine occurrence du mot clé
N pour rechercher la précédente occurrence
h pour l'aide de man
q pour quitter man

Remarque : comme pour la plupart des commandes Unix, les options en une seule lettre peuvent être regroupées, par exemple ls -l -a -i en ls -lai.

a) Listez le contenu du répertoire /etc en triant par ordre inverse de la date de modification des fichiers (le plus ancien en premier).

b) Listez de manière étendue (option -l) les fichiers du répertoire /dev qui commencent par std, en affichant dans le cas des liens, les droits du fichier pointé au lieu des droits du lien lui-même (cherchez dans le man de ls : dereference). Remarque : le caractère * correspond à toutes les chaînes.

c) Que renvoie la commande suivante :

$ ls -aihn 

Exercice 3 : la commande find

a) Rechercher dans le répertoire /sbin les fichiers plus gros que 20 ko.

b) Rechercher dans le répertoire /usr les fichiers dont le nom commence par un a, et qui ont été modifiés après le fichier /etc/passwd.

c) Rechercher dans le répertoire /etc les répertoires dont le nom fait 3 lettres avec une voyelle parmi a,e,i comme caractère du milieu, indépendamment de la casse (majuscule ou minuscule).

Remarque : dans la chaîne de recherche (à protéger entre des ""),
* correspond à n'importe quelle chaîne de caractère,
? correspond à exactement 1 caractère,
[abc] correspond à 1 caractère parmi ceux entre crochets.

Exercice 4 : les droits

a) Créez un répertoire /tmp/testRep, et une arborescence de sous-répertoires et de fichiers comme celle qui est présentée ci-dessous, en créant si possible les sous-répertoires en même temps avec : mkdir -p.

Utilisez les flèches du clavier pour rappeler les commandes précédentes. Vous pouvez également recopier de manière récursive avec : cp -rp.

Positionnez les droits avec umask et chmod (les droits standards sont ici rwx r-x r-x pour un répertoire, et rw- r-- r-- pour un fichier).

testRep                 droits standards
├── repertoire1         droits standards
│   └── repertoire      droits standards
│       └── fichier     droits standards
├── repertoire2         r-- r-x r-x
│   └── repertoire      droits standards
│       └── fichier     droits standards
├── repertoire3         --x r-x r-x
│   └── repertoire      droits standards
│       └── fichier     droits standards
└── repertoire4         --- r-x r-x
    └── repertoire      droits standards
        └── fichier     droits standards

b) Pouvez vous lister le contenu des sous-répertoires repertoire(1 à 4) ? Et pouvez vous changer le répertoire courant du shell dans ces répertoires ? Pourquoi ?

c) Pouvez vous créer une archive contenant l'arborescence que vous venez de créer ? Pourquoi ?

Exercice 5 : la commande tar

a) Créez un répertoire /tmp/TP1. En utilisant la commande wget, copiez y les fichiers :

https://pageperso.lis-lab.fr/~edouard.thiel/ens/adunix/pub/exemple1.tar
https://pageperso.lis-lab.fr/~edouard.thiel/ens/adunix/pub/fichier1

b) Listez le contenu de l'archive exemple1.tar.

c) Extrayez le contenu de l'archive. Qu'advient-il des droits des fichiers ? Du propriétaire et du groupe des fichiers ?

d) Quelles sont les possibilités pour créer une archive contenant le contenu original de exemple1.tar plus le fichier fichier1 ?