0% ont trouvé ce document utile (0 vote)
9 vues8 pages

TP3 : Commandes UNIX/Linux Essentielles

3 eme tp linux

Transféré par

ahmedhabbani207
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues8 pages

TP3 : Commandes UNIX/Linux Essentielles

3 eme tp linux

Transféré par

ahmedhabbani207
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ENVIRONNEMENT UNIX/LINUX

Travaux pratiques : TP3

Professeur : Asmae EL KASSIRI


Filière : GINF 1ère Année

Année Universitaire : 2024-2025


TP3

OBJECTIF DU TP
La finalité de ce TP est de:
 Vous faire comparer les fichiers et les dossiers
 Vous faire utiliser les jokers
 Vous faire comprendre les redirections et les tubes
 Vous faire appliquer des traitements sur les fichiers avec des commandes de base

1 Les commandes de comparaison


- diff : comparaison ligne par ligne de deux fichiers texte :
o -i: ignore les différences majuscules/miniscules
o -b: ignore les différences d’espaces blancs
o -r: étudie récursivement les sous répertoires
- cmp : comparaison octet par octet de deux fichiers:
o -l: renvoie le rang de chaque octet différent
o -s: renvoie vrai ou faux

2 Les jokers
Les jokers sont « * » et « ? ».
- Le «?» remplace un caractère e.g., « td1.??? » permet de capturer tous les fichiers de noms td1 avec une
extension composée de 3 caractères, tels [Link] et [Link], mais pas [Link] ni td1.a.
- Le «*» Remplace une chaîne de caractères e.g., « td1.* » permet de capturer permet de capturer tous les
fichiers de noms td1 avec une extension composée de 0 ou plusieurs caractères, tels td1.a, [Link] et
[Link].

3 Les commandes de traitement de fichiers


3.1 La commande grep
La syntaxe de la commande grep que nous utiliserons sera de la forme : grep -options expression fichier.
L'argument expression est ce qu'on appelle une expression régulière, une suite de symboles décrivant un
ensemble (fini ou infini) de mots. Noter que cet argument est encadré par des guillemets doubles.
Les options sont les suivantes :
- -i: affiche les lignes contenant la chaîne en ignorant les différences majuscules/minuscules
- -v: affiche les lignes ne contenant pas la chaîne
- -c: compte le nombre de lignes contenant la chaîne
- -n: chaque ligne contenant la chaîne est numérotée

ENVIRONNEMENT UNIX/LINUX |Asmae EL KASSIRI 1


- -x: ligne correspondant exactement à la chaîne
- -l: affiche le nom des fichiers qui contiennent la chaîne
- -r: étudie récursivement les sous répertoires
En sortie, grep renvoie toutes les lignes de fichier contenant au moins un mot décrit par expression.

3.2 cut:
 Fonction : propose de couper du texte au sein d'un fichier afin de conserver uniquement une partie de chaque
ligne.
o Options les plus fréquentes :
 -c : spécifier les caractères à couper
 -d : indique quel est le délimiteur dans le fichier ;
 -f : indique le numéro du ou des champs à couper (s’utilise avec -d)
o Exemples :
 cut -c 2-5 [Link] : conserver uniquement les caractères 2 à 5 de chaque ligne du fichier [Link]
 cut -c -5 [Link] : conserver du premier au 5ème caractère
 cut -c 5- [Link] : conserver du 5ème au dernier caractère
 cut -d ‘,’ -f 3 [Link] : le délimiteur qui sépare les champs est la virgule et le numéro du champ à
couper est 3.
 cut -d ‘,’ –f 3,5 [Link] : le délimiteur qui sépare les champs est la virgule et les champs à couper sont
3 et 5.
 cut -d ‘,’ –f 2-5 [Link] : le délimiteur qui sépare les champs est la virgule et les champs à couper sont
de 2 à 5.

3.3 sort
 Le programme sort permet de trier les lignes d'un fichier. Les caractères ``+'' et ``-'' permettent de spécifier de
quelle colonne à quelle colonne le tri doit s'effectuer (1ere colonne pour 0, 2eme colonne pour 1...) :
 Options :
Option Signification
-b Saute les colonnes constituées de blancs.
-d Trie de type dictionnaire.
-n Trie par ordre numérique.
-f Aucune différentiation n'est faite entre minuscules et majuscules.
-b Ignore les espaces placés en début de champ.
-r Trie inverse.
-M Trie chronologiquement les mois.
-k Trie par position (l’espace est le délimiteur par défaut de séparation
-o Ecrit le résultat dans un fichier
-t: Trie suivants les champs séparés par les caractères deux points (« : »).
 exemples :
o sort -nk2 file: le tri numérique se fera sur le deuxième mot
o sort -nk2,n3 : le tri se fera sur le 2ème mot et s’arrêtera au 3ème mot

ENVIRONNEMENT UNIX/LINUX |Asmae EL KASSIRI 2


o sort -t: -nk2,n3 : le tri se fera sur la 2ème colonne et s’arrêtera à la 3ème colonnes, les colonnes sont séparées
par « : »
o sort -t: +5.1 /etc/passwd: le tri se fera sur un caractère situé à la 2eme position du 6eme champ
o sort -t: +0d -1 +2nr -3 : triera le 1er champ par ordre dictionnaire, et le 3eme champ par
ordre numérique inverse
o sort -t: +4.3n -4.5 +4.0n -4.2: triera du 4eme au 6eme caractère du 5eme champ par
ordre numérique, et du 1er au 3eme caractère du 5eme champ par ordre numérique, si le
premier tri s'est avéré insuffisant.
3.4 split:
 fonction: décomposer un gros fichier en plusieurs fichiers de taille plus petite.
 Options :
o -a n: utiliser un suffixe de longueur n (par défaut n=2)
o -d : utiliser des suffixes numériques au lieu des lettres alphabets
o -b taille: préciser la taille minimale par fichier résultant (la taille = n [M|K|B|G] par défaut K)
o -e : interdire la génération de fichiers vides
o -l n : préciser le nombre de lignes par fichier
o -n nb : préciser le nombre de sous fichiers résultants
 Exemples :
o split -b 300M [Link] film : diviser le fichier [Link] aux fichiers filmaa, filmab, etc. (chaque fichier contient
300 Mo)
o split -a 3 –b 300M [Link] film : diviser le fichier [Link] aux fichiers filmaaa, filmaab, etc.
o split -n 3 [Link] test : diviser le fichier [Link] aux fichiers testaa, testab et testac.
o split -l 20 [Link] new : diviser le fichier [Link] aux fichiers newaa, newab, etc. (chaque fichier contient
20 lignes)
o split -d -l 15 [Link] new : diviser le fichier [Link] aux fichiers new11, new12, etc.
 Pour rassembler les parties d’un fichier : cat
 Exemple : cat film* > [Link]

4 Les séparateurs, les redirections et les tubes


4.1 Les séparateurs
Les séparateurs conditionnels de commande sont le && (ET logique) et le || (OU logique).
Influences:
- cmd1 cmd2 cmd3: les commandes cmd1, cmd2 et cmd3 vont être exécutées indépendamment les unes des
autres et dans l’ordre.
- cmd1 && cmd2 && cmd3 : la commande cmd2 ne va-t-être exécutée que si la cmd1 a été exécutée
correctement, et la commande cmd3 ne va-t-être exécutée que si la cmd2 a été exécutée correctement
- cmd1 || cmd2 || cmd3 : la commande cmd2 va-t-être exécutée si la cmd1 a retourné une erreur, et la
commande cmd3 ne va-t-être exécutée que si la cmd2 a retourné une erreur
Exemples :

ENVIRONNEMENT UNIX/LINUX |Asmae EL KASSIRI 3


- touch test/[Link] || mkdir test && touch test/[Link] : si on n’arrive pas à créer [Link] dans test, on va
d’abord créer le répertoire test puis créer [Link] dans ce répertoire si la création passe correctement
- mkdir test touch test/[Link] : créer le répertoire test puis crée [Link] dans test

4.2 Les redirecteurs


Trois différents « fichiers » sont toujours ouverts par défaut, stdin (le clavier), stdout (l'écran) et stderr (la sortie
des messages d'erreur vers l'écran). Ceux-ci, et n'importe quel autre fichier ouvert, peuvent être redirigés. La
redirection signifie simplement la capture de la sortie d'un fichier, d'une commande, d'un programme, d'un script,
voire même d'un bloc de code dans un script et le renvoi du flux comme entrée d'un autre fichier, commande,
programme ou script.
Les descripteurs de fichier pour stdin, stdout et stderr sont, respectivement, 0, 1 et 2. Pour rediriger les sorties on
utilise les symboles : <, >, >>, <<.
Exemples :
- 1>nom_fichier : Redirige stdout vers le fichier "nom_fichier".
- 1>>nom_fichier : Redirige et ajoute stdout au fichier "nom_fichier".
- 2>nom_fichier : Redirige stderr vers le fichier "nom_fichier".
- 2>>nom_fichier : Redirige et ajoute stderr au fichier "nom_fichier".
- &>nom_fichier : Redirige à la fois stdout et stderr vers le fichier "nom_fichier".
- 2>&1 : Redirige stderr vers stdout.
- cat [Link] > newFile : redirige le contenu du fichier [Link] dans le fichier newFile
- cat [Link] >> newFile : redirige le contenu du fichier [Link] et l’ajoute à la fin du fichier newFile
- ls -l > resultat_ls : redirige le résultat de la commande ls -l dans le fichier resultat_ls

4.3 Les tubes de communication (pipe) et les filtres


Les tubes ou pipes : flot de données reliant une sortie standard d'une commande vers une entrée standard d'une
autre commande.
P1 | P2 | P3 : la sorite de P1 est redirigée vers P2, et la sortie de P2 est redirigée vers P3.
Exemples :
- ls -al| grep tp: le résultat de la commande ls -al est envoyé comme entrée à la commande grep, ce qui fait
on va chercher dans les lignes résultats de ls -al celles contenant le mot tp
- find -name tri|wc -l: on va calculer le nombre de lignes du résultat de la commande find

5 Exercices
5.1 Exercice 1
1. Exécutez la commande : ls -tr. Qu’avez-vous remarqué ?
2. Créez un fichier nommé f1
3. Ecrivez le texte suivant dans le fichier f1 :

Bonjour

ENVIRONNEMENT UNIX/LINUX |Asmae EL KASSIRI 4


Je suis un ami de la filière GINF

Bonne fin de journée !

4. Tapez les commandes suivantes et donnez vos remarques à propos de leurs résultats :
a. cat f1 > f2 idem cat <f1 >f2
b. cat f1 f2 > f12
5. Faites des comparaisons de fichiers avec les deux commandes cmp et diff :
a. f1 et f2
b. f1 et f2 en ignorant les blancs et la casse
c. f1 et f12
6. dans une seule ligne, vos allez essayer de :
a. créer des copies de f1 et f2 avec les noms nf1 et nf2
b. supprimer f1
c. si on n’arrive pas à supprimer f1, alors créer une copie de nf1 avec le nom f1
d. si on arrive à supprimer f1, alors on va supprimer f2

5.2 Exercice 2
1. Saisissez ces lignes dans votre invité de commandes :

cat >exo2
1. exercice num2
2. ligne num2
5. ligne num6
5. ligne num3
3. ligne num3
4. ligne num4
[CTRL]D

2. Exécutez la commande : cat exo2. Qu’avez-vous remarqué ? alors qu’est qu’a fait la commande cat de la
question numéro 1.
3. Ajoutez les lignes suivantes à la fin du fichier exo2 avec la commande cat :
5. ligne num6
5. ligne num3
4. Exécutez la commande : uniq exo2 cp_exo2. Affichez le contenu du fichier cp_exo2. Quel est le rôle de la
commande uniq alors ??
5. Exécutez la commande : sort exo2. Quel est le résultat obtenu ?? que est alors le rôle de la commande
sort ??
6. Affichez le contenu du fichier exo2. Est-ce qu’il a été trié ?
7. Exécutez la commande : sort -o cp_exo2 exo2. Quel est le résultat obtenu ??
8. Affichez le contenu du fichier exo2. Est-ce qu’il a été trié ?
9. Affichez le contenu du fichier cp_exo2. Est-ce qu’il a été trié ?

ENVIRONNEMENT UNIX/LINUX |Asmae EL KASSIRI 5


10. Quel est alors le rôle de l’option -o avec la commande sort. Proposez une autre alternative pour rediriger
le résultat du tri du fichier exo2 vers le fichier cp_exo2.
11. Utilisez la commande uniq sur cp_exo2. Analysez le résultat et déduisez le rôle de cette commande.
12. Comparez cp_exo2 et exo2
13. Essayez les deux commandes cat suivantes, et décrivez ce que vous-en déduisez :

cat << STOP


> Bonjour le monde !
> STOP
Bonjour le monde !
$ cat > [Link] << STOP
> Bonjour le monde !
> STOP

5.3 Exercice 3
1. Copiez le fichier /etc/passwd dans votre home directory avec le nom tp_passwd.
2. Affichez le contenu du fichier tp_passwd (lignes numérotées). De quoi sont séparées les colonnes ?
3. Combien de lignes contient-il ?
4. Affichez la ligne contenant votre nom de login.
5. Dans le fichier tp_passwd :
a. affichez le nombre de lignes contenant le mot « root »
b. affichez les lignes ne contenant pas le mot « root »
c. affichez le nombre de lignes ne contenant pas le mot « root »
d. affichez les lignes numérotées ne contenant pas le mot « root »
e. affichez les noms de fichiers qui contiennent le mot « tp » dans votre home directory
f. affichez les noms de fichiers qui contiennent le mot « tp » dans votre home directory et ses sous-
répertoires
6. extraire depuis le fichier tp_passwd
a. la 1ère et la 3ème colonne
b. de la 2ème à la 4ème colonne
c. du 1er caractère au 7ème caractère
7. triez le fichier tp_passwd par ordre dictionnaire inverse en redirigeant le résultat vers un fichier res_tri.
Affichez le résultat
8. triez le fichier tp_passwd en enregistrant le résultat dans le même fichier
a. par ordre numérique inverse de la 1ère jusqu’à la 3ème colonne. Affichez le résultat
b. par ordre numérique inverse du 3ème au 4ème caractère de la 2ème colonne et un ordre dictionnaire
du 1er au 4ème caractère de la 1ère colonne. Affichez le résultat
c. par ordre numérique inverse du 1er au 3ème caractère de la 1ère colonne et un ordre dictionnaire
du 2ème au 7ème caractère de la 5ère colonne. Affichez le résultat
d. par ordre dictionnaire de la 3ème colonne. Affichez le résultat
9. comptez le nombre d’entrées dans votre répertoire personnel
10. écrivez la commande : find / -type f -iname ?t*
a. que fait cette commande ?

ENVIRONNEMENT UNIX/LINUX |Asmae EL KASSIRI 6


b. quelle commande devez-vous écrire pour compter le nombre de lignes renvoyées par cette
commande ?
c. quelle commande devez-vous écrire pour compter le nombre d’erreurs renvoyées par cette
commande ?
11. décomposez le fichier tp_passwd :
a. en 4 sous parties, les noms doivent être de suffixe de longueur 3. Affichez les sous-parties puis
supprimez-les avec une seule commande.
b. en dessous parties de tailles <= 2K, les suffixes doivent être numériques de longueur 3. Affichez
les sous-parties puis supprimez-les avec une seule commande.
c. en dessous fichiers chacun avec 10 lignes maximum. Interdisez la génération de fichiers vides.
Affichez les sous-parties puis rassemblez les dans le fichier cp_passwd1.
12. Comparez cp_passwd1 et passwd2

ENVIRONNEMENT UNIX/LINUX |Asmae EL KASSIRI 7

Vous aimerez peut-être aussi