Vous êtes sur la page 1sur 12

TD LINUX

Les commandes de base

1-Manipulation des dossiers et fichiers

2-Gestion des utilisateurs et des groupes

3- Recherche de fichiers

4-Extraire, Trier et Filtrer des données.

5- Redirection du flux

6- chainer les commandes.

1-Manipulation des dossiers et fichiers

1.1. Créer un dossier sous /home/votre_prenom nommé « TD »


mkdir nom_dossier ; mkdir TD

1.2.Créer un autre dossier sous /home/votre_prenom nommé


photos qui contient 3 fichiers nommés : tunis.jpg,
bizerte.jpg et hammamet.jpg
touch nom_fichier
touch tunis.jpg
touch bizerte.jpg
touch hammamet.jpg
1.3. Créer sous TD un fichier OS.txt
touch nom_fichier
touch os.txt
1.4. Editer le fichier OS.txt, copier le paragraphe, enregistrer et
quitter :

gedit nom_fichier

gedit os.txt

1.5. Afficher le contenu de votre fichier OS.txt sur la console

Cat nom_fichier

Cat os.txt

1.6. Afficher seulement les 3 premières lignes du fichier OS.txt


sur la console

head –n nom_fichier ( n= nombre de lignes )

head –3 os.txt

1.7. Afficher seulement les 3 dernières lignes du fichier OS.txt


sur la console

tail –n nom_fichier

tail -3 os.txt

1.8. Créer un deuxième dossier sous /home/votre_prenom qui


s’intitule Doc

mkdir nom_fichier
1.9. 1.9.Déplacer le fichier OS.txt vers Doc et le renommer SE.txt

Pour déplacer :

mv nom_fichier / nom_dossier

mv os.txt .. / TD

Pour renommer :

mv nom_fichier nom_proposé

mv os.txt se.txt

1.10. Supprimer le dossier TD avec une demande de confirmation


avant la suppression définitive

rm –i TD

la commande rm et ses options :

-i : demander confirmation

-f : forcer la suppression, quoi qu'il arrive

-r : supprimer un dossier et son contenu

1.11. Les liens entre les fichiers :

Question –a-: définir un inode

Un nœud d'index ou inode est une structure de données contenant des


informations à propos d'un fichier ou répertoire stocké dans
certains systèmes de fichiers (notamment de type Linux/Unix). À chaque
fichier correspond un numéro d'inode (i-number) dans le système de
fichiers dans lequel il réside, unique au périphérique sur lequel il est situé.
Chaque fichier a un seul inode, même s'il peut avoir plusieurs noms
(chacun de ceux-ci fait référence au même inode). Chaque nom est appelé
link.

Les inodes peuvent, selon le système de fichiers, contenir aussi des


informations concernant le fichier, tel que son créateur (ou propriétaire),
son type d'accès (par exemple sous Unix : lecture, écriture et exécution),
etc.

Question –b- : créer un lien physique entre le fichier SE.txt et un nouveau fichier
nommé lien_phy :

ln nom_fichier lien_phy

ln se.txt lien_phy

Question –c- : vérifier qu’il s’agit bien du même inode entre les deux fichiers :

ls –li

Question –d- : créer un lien symbolique entre le fichier SE.txt et un nouveau


fichier nommé lien_symb :

ln –s nom_fichier lien_symb

ln –s se.txt lien_symb

Question –e- : vérifier qu’il s’agit bien d’un lien symbolique :

ls –li

Gestion des utilisateurs et des groupes :

1.11. Créer un nouvel utilisateur Ali

Sudo adduser nom d’utilisateur


Sudo adduer ali

NB : il faut ajouter sudo car seul le super utilisateur est autorisé à ajouter un
utilisateur ou un groupe au système .

1.12. Affecter ali à un nouveau groupe nommé famille

Sudo addgroup nom_group : créer un group

Sudo addgroup famille

Sudo adduser nom-utilisateur nom-group

Sudo adduser ali famille

1.13. Modifier le propriétaire du fichier SE.txt qui vous


appartenait (créé précédemment par votre_prenom) et
l’attribuer à Ali.

Sudo chown nom-utilisateur nom-fichier

Sudo chown ali se.txt

1.14. 2.4.De même, faites en sorte que le groupe famille soit le


propriétaire du fichier SE.txt

Sudo chown nom-group nom-fichier

Sudo chown famille se.txt


1.15. Créer un nouveau fichier sous /home/votre_prenom/Projet
(projet étant un nouveau dossier) un fichier nommé
projet1.c

« Mkdir » pour le dossier et « touch » pour le fichier

1.16. Lister les droits d’accès au fichier projet1.c que disposent


votre_prénom, votre groupe et Ali.

ls –l nom_fichier

1.17. Modifier les droits d’accès à ce fichier de façon à ce qu’il peut


être lu, modifié et exécuté par vous et votre groupe et qu’ Ali est
autorisé à le lire mais interdit de le modifier et de l’exécuter.
(proposer deux méthodes possibles).

sudo chmod u+---,g+---,o+--- nom_fichier

 u = user (propriétaire) ;
 g = group (groupe) ;
 o = other (autres).

sudo chmod u+rwx,g+rwx,o+r-- projet1.c

Recherche de fichiers :

Revenir à la racine de linux

Cd ~

Chercher le chemin d’accès au fichier projet1.c

« Sudo updatedb » après « locate nom_fichier »

Chercher le chemin d’accès à tous les fichiers d’extension .jpg sur


votre disque
Locate *jpg

Chercher tous les fichiers dont la taille est supérieure à 10Mo

La commande « find » et ses options :

 -name recherche sur le nom du fichier,


 -perm recherche sur les droits d'accès du fichier,
 -links recherche sur le nombre de liens du fichier,
 -user recherche sur le propriétaire du fichier,
 -group recherche sur le groupe auquel appartient le
fichier,
 -type recherche sur le type (d=répertoire,
c=caractère, f=fichier normal),
 -size recherche sur la taille du fichier en nombre
de blocs (1 bloc=512octets),
 -atime recherche par date de dernier accès en
lecture du fichier,
 -mtime recherche par date de dernière modification
du fichier,
 -ctime recherche par date de création du fichier.

Chercher tous les dossiers qui se trouvent sous /home /votre _


prenom .

find / -type recherche sur le type (d=répertoire ou dossier, c=caractère,


f=fichier normal),

find / -type d

Supprimer tous les fichiers .jpg sous le /home/votre_prenom

rm –i *.jpg

Chercher tous les fichiers que vous avez visité depuis 3 jours.

Find . –atime -3
EXTRAIRE, TRIER ET FILTRER DES DONNÉES:

Afficher toutes lignes dans le fichier SE.txt qui contiennent le mot «


linux » en ne tenant pas compte qu’il soir écrit en majuscule ou
miniscule.

grep –i linux se.txt

La commande grep permet de rechercher une chaîne de caractères dans un


fichier.
Les options sont les suivantes :

 -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
 -x ligne correspondant exactement à la chaîne
 -l affiche le nom des fichiers qui contiennent la
chaîne

Essayer le contraire et afficher les lignes qui ne contiennent pas le


mot « linux ».

grep –v –i linux se.txt

Afficher maintenant tous les lignes sous le dossier /home le mot «


GPL »

grep –n –i gpl se.txt

NB : ajouter toujours –i au commande « grep » pour éviter le problème de


minuscule et majuscule .

Afficher toutes lignes sous /home qui contiennent un chiffre entre


[1990 et 2000]

grep –n [1990-2000] se.txt


Créer un nouveau fichier sous /home/votre_prenom nommé
test_tri.txt et placer le texte suivant (chaque nom dans une ligne):

ahmed hedi moez zohra sarra ahmed .

commande «touch » après commande « gedit »

Trier le contenu de ce fichier par ordre alphabétique et le mettre


dans un nouveau fichier tri.txt.

La commande « sort » et ses options :

 -o : écrire le résultat dans un fichier


 -r : trier en ordre inverse
 -R : trier aléatoirement
 -n : trier des nombres

Touch tri.txt | sort –o test_tri.txt

. Supprimer les doublons dans ce fichier et mettre le résultat dans


sans_doublons.txt

Uniq tri.txt sans_doublants.txt

La commande « uniq » et ses options :

 -u : Affiche seulement les lignes n'apparaissant


qu'une seule fois.
 -d : Affiche seulement les lignes répétées.
 -c : le nb d’occurrences .
Trier les nombres suivants par ordre croissant et les placer dans tri_nb.txt
la commande « sort –n »

Sort –n test_tri.nb.txt tri_nb.txt

Compter le nombre de mots que contient le fichier se.txt

La commande « wc » et ses options :

wc –w se.txt

 -l : nb de lignes
 -w : nb de mots
 -c : nb d’octets
 -m : nb de caractères

Compter le nombre de lignes que contient le fichier tri.txt

Wc –l tri.txt

Compter le nombre d’octets que contient le fichier se.txt

wc –c se.txt

Créer un nouveau fichier notes.csv qui contient : Eya, 12, assez bien Hedi,16,
très bien Ahmed, 8, insuffisant Zeineb, 13, assez bien

Gedit notes.csv

Cat notes.csv

Couper de ce fichier les données et ne conserver que la colonne des notes


(délimitateur = ,)

La commande « cut » :

cut -d , -f numero_champs a couper nom_fichier


Remarque les champs sont séparés par un « , » .

Cut –d , -f 2 notes.csv

Redirection du flux :

Couper du fichier notes.csv créé précédemment la première colonne des


noms et la rediriger vers le fichier eleves.txt

cut –d , -f 1 notes.csv>eleves.txt

NB :Le symbole > redirige dans un fichier et l’écrase s’il existe déjà

Taper la commande suivante et commenter : Cut –d , -f 1 brouillon.csv >


fichier_res.txt 2>erreur.txt

Commentaires :

Linux va crée le fichier_res.txt et afficher les erreurs dans le fichier erreur.txt


et dans ce cas l’erreur est :

Taper cette commande et commenter : Cut –d , -f 1 brouillon.csv >


fichier_res.txt 2>&1

Commentaires :

Linux va afficher les erreurs dans le fichier_res.txt signifie dans le fichier lui-
même ;

taper les commandes suivantes et commenter : sort –n << STOP wc –m << FIN

Sort –n << stop : permet de trier des nombres donnés par l’utilisateur et
l’afficher sur le terminal pour stopper et afficher le résultat final de tri on écrit
stop.
Wc –m << fin : permet de compter le nb de mots d’une chaine de caractères
quelconques donnée par l’utilisateur et afficher le résultat sur le terminal
pour afficher on écrit fin.

Chainer les commandes

6.1.A partir du fichier notes.csv, couper la colonne des noms des élèves et les
trier par ordre alphabétique et afficher le résultat sur la console.

Les commande : sort | cut

Sort | cut –d , -f 1 notes.csv

A partir du fichier notes.csv, couper la colonne des noms des élèves et les trier
par ordre alphabétique et afficher le résultat dans eleves.txt.

Sort | cut –d , -f 1 notes.csv>eleves.txt

 Au lieu d'afficher le résultat d'une commande dans une


console, il est possible de l'enregistrer dans un
fichier. Il suffit d'ajouter le symbole > suivi du nom du
fichier à la fin de la commande. Par
exemple ls > liste_fichiers.txt enregistre la liste des
fichiers dans un fichier plutôt que de l'afficher en
console.
 Le symbole>> enregistre à la fin du fichier au lieu de
l'écraser s'il existe déjà.
 Les symboles 2> et 2>> permettent de rediriger seulement
les erreurs dans un fichier. Quant à 2>&1 il redirige les
erreurs dans le même fichier que les messages normaux.
 < permet de lire des données depuis un fichier et de les
envoyer à une commande, tandis que << lit les données
depuis le clavier.
 Le symbole | combine des commandes : les données de la
commande à sa gauche sont envoyées à la commande à sa
droite. Ainsi, du | sort -nr récupère la liste des
fichiers avec leur taille et l'envoie à sort pour qu'il
la trie.