Travaux pratiques (autres commandes UNIX)
Cette seconde série de travaux pratiques se décompose en 4 parties :
- commandes utilisateurs,
- gestion des droits,
- archivage et décompression,
- gestion des processus.
Commandes utilisateurs
Identifiez-vous : quels sont votre user id (uid) et votre groupe (gid) ?
Voir la solution
$ whoami
[votre username]
$ id
uid=[votre username] gid=usersGestion des droits
En restant dans votre répertoire de travail (UnixShell), listez complètement le contenu de votre home directory.
Décrivez ce que vous y trouvez :Voir la solution
UnixShell est à 2 nveaux sous votre home directory:
ll ../..quels sont les fichiers et répertoires présents ?
Voir la solution
Des répertoires comme :
./ ../ Formation/
Des fichiers comme :.profilelesquels sont cachés ?
Voir la solution
Tous ceux qui commencent par un point comme
.profilequels sont leurs propriétaires et groupes attachés ?
Voir la solution
Propriétaires : surtout vous, éventuellement l'utilisateur
root
Groupes : le vôtre, éventuellement d'autresquels sont les droits afférants ?
Voir la solution
Possiblement variable, mais dépendant surtout de votre
umask(voir la suite)Copiez dans votre répertoire
UnixShellle fichiertestUmask.txt(par un clic droit sur ce lien puis "Enregistrez la cible du lien sous" ou "Save link as").
Ses droits initiaux sontrwxrwxr-x.
Quel est votreumask?
Voir la solution
Dépend de votre configuration, mais s'observe en faisant un ll pour afficher les droits pris par le fichier testUmask.txt lors de la copie sous votre compte.
En prenant pour exemple les droits présentés plus haut : rwxrwxr-x
txt user (u) : rwx, binaire 111 octal 7 group (g) : rwx, binaire 111 octal 7 other (o) : r-x, binaire 101 octal 5
Donc profil octal 775, d'où un umask de 002 (sa négation en octal).
On peut aussi lancer umask comme commande en ligne...
Modifiez les droits de ce fichier
testUmask.txtde deux façons pour obtenir ceux qui suivent, en séquence pour les trois cas de proche en proche :rwx------rwxrwxrwxrwxr-xr--
La première façon de procéder utilisera un profil octal, la seconde des lettres. Contrôlez vos actions à chaque étape.
Voir la solution
rwx------$ chmod 700 testUmask.txt $ chmod go-rwx testUmask.txt $ ll -rwx------ 1 [uid] users 36 May 5 13:04 testUmask.txtrwxrwxrwx$ chmod 777 testUmask.txt $ chmod a+rwx testUmask.txt $ ll -rwxrwxrwx 1 [uid] users 36 May 5 13:05 testUmask.txtrwxr-xr--$ chmod 754 testUmask.txt $ chmod go-w,o-x testUmask.txt $ ll -rwxr-xr-- 1 [uid] users 36 May 5 13:06 testUmask.txt
- Cherchez le chemin où se trouve votre fichier .profile, à partir de votre home directory, sans changer de répertoire.
Voir la solution
bash find ~ -name .profile
- Copiez dans votre répertoire
UnixShellle fichiertestDiff1.txt(par un clic droit sur ce lien).
Ouvrez-le dans un éditeur et modifiez-le selon les consignes qui s'y trouvent.
Ensuite, sauvegardez-le commetestDiff2.txt.
Comparez les deux fichiers, analysez le rapport obtenu en fonction de vos actions.
Voir la solution
bash $ diff testDiff1.txt testDiff2.txt 3a4 > LIGNE AJOUTEE 6d6 < LIGNE A SUPPRIMER 9c9 < Modifiez-moi !!! --- > Modifiée
Archivage et compression
- Archivez en un seul tarfile tout le contenu de votre répertoire
UnixShell(placez-vous au-dessus).
Contrôlez le fichier.tarrésultat.
Voir la solution
Le plus simple est d'abord de vous déplacer dans le répertoire parent de UnixShell pour l'archiver :
bash $ cd .. $ pwd / ... /Formation $ ll drwxrwxr-x 4 [uid] [gid] 1024 Apr 5 13:15 ./ drwxrwxr-x 16 [uid] [gid] 512 Apr 25 16:35 ../ drwxrwxr-x 4 [uid] [gid] 1024 Apr 25 10:03 UnixShell
bash $ tar -cvf Archives.tar UnixShell $ ll drwxrwxr-x 4 [uid] [gid] 1024 Apr 5 13:15 ./ drwxrwxr-x 16 [uid] [gid] 512 Apr 25 16:35 ../ drwxrwxr-x 4 [uid] [gid] 1024 Apr 25 10:03 UnixShell -rwxrwxr-x 1 [uid] [gid] 10240 May 5 14:23 Archives.tar
- Créez le sous-répertoire
tarzip(sousUnixShelloù vous revenez) et déplacez-y votre tarfile.
Sans vous déplacer dans ce sous-répertoire, désarchivez le tarfile et contrôlez le résultat.
Voir la solution
bash $ cd UnixShell $ pwd / ... /Formation/UnixShell
bash $ mkdir tarzip $ mv ../Archives.tar tarzip
bash $ tar -xvf tarzip/Archives.tar UnixShell/ UnixShell/monHistorique.txt UnixShell/testDiff1.txt UnixShell/testDiff2.txt
bash $ ll drwxrwxr-x 4 [uid] [gid] 512 May 5 15:25 ./ drwxrwxr-x 4 [uid] [gid] 1024 Apr 25 10:03 ../ drwxrwxr-x 4 [uid] [gid] 1024 May 5 14:23 UnixShell/ -rwxrwxr-x 1 [uid] [gid] 212 May 5 10:10 monHistorique.txt drwxrwxr-x 2 [uid] [gid] 512 May 5 15:18 tarzip/ -rwxrwxr-x 1 [uid] [gid] 261 May 5 14:12 testDiff1.txt -rwxrwxr-x 1 [uid] [gid] 249 May 5 14:13 testDiff2.txt
Si vous avez travaillé comme cela, vous devez constater que le répertoire UnixShell s'est désarchivé sous lui-même...
C'est bien sûr un exemple se voulant surtout didactique.
Dans une situation plus concrète, le désarchivage doit s'opérer aux endroits les plus adéquats !
- Toujours en restant sous
UnixShell, compressez le tarfile en.gz.
Affichez ensuite les informations relatives aux tailles de fichiers et au ratio de compression.
Voir la solution
bash $ gzip tarzip/Archives.tar $ ll tarzip -rwxrwxr-x 1 [uid] [gid] 612 May 5 16:23 Archives.tar.gz
bash $ gzip -l tarzip/Archives.tar.gz compressed uncompr. ratio uncompressed_name 612 10240 94.3% tarzip/Archives.tar
- Toujours en restant sous
UnixShell, décompressez letarfile.gzsur le disque.
Puis vérifiez le résultat en listing complet.
Recompressez le tarfile et contrôlez de nouveau.
Voir la solution
bash $ gunzip tarzip/Archives.tar $ ll tarzip -rwxrwxr-x 1 [uid] [gid] 10240 May 5 14:23 Archives.tar
bash $ gzip tarzip/Archives.tar -rwxrwxr-x 1 [uid] [gid] 612 May 5 16:48 Archives.tar.gz
- Toujours en restant sous
UnixShell, et sans décompresser letarfile.gzsur le disque, comptez le nombre de lignes non compressées qu'il renferme.
Voir la solution
bash $ gunzip -c tarzip/Archives.tar | wc -l