Académique Documents
Professionnel Documents
Culture Documents
Créer l'arborescence
$ mkdir drapports dcv dimages
$ cd drapports
$ touch rapport1.txt rapport2.txt rapport3.txt
$ cd ../dcv
$ touch cv1.txt cv2.txt lettre1.txt
$ cd ../dimages
$ touch image1.jpg image2.jpg image3.gif
Changer du répertoire en cours au répertoire personnel
$ cd ~
Afficher le contenu détaillé du répertoire personnel
$ ls -l
Afficher le chemin absolu du répertoire courant
$ pwd
Passer du répertoire personnel au répertoire dimages
$ cd dimages
Afficher les fichiers qui commencent par im
$ ls im*
Afficher les images de type gif
$ ls *gif
Copier le fichier cv1.txt dans le dossier drapports
$ cp ../dcv/cv1.txt ../drapports
Supprimer le répertoire drapports avec son contenu
$ rm -r ../drapports
Passer au répertoire personnel
$ cd $HOME
Créer un lien symbolique lien_symb_dimages vers le répertoire dimages
$ ln -s dimages lien_symb_dimages
$ mkdir -p rep1/rep2
$ touch fichier1 rep1/fichier2 rep1/rep2/fichier3
$ tree
Ex02:
1) Dans votre répertoire personnel, créer un répertoire test. Créer les sous-
répertoires pub et bin du répertoire test.
$ mkdir -p test/{pub,bin}
$ tree
2) Modifier les droits d'accès de façon que :
• Le répertoire test et son sous-répertoire pub soient accessibles en
lecture et exécution pour tous, et en écriture pour le propriétaire
seul.
$ chmod a=rx,u+w test test/pub
$ ls -ld test test/pub
$ ls -la test
• Le répertoire bin soit accessible en exécution pour tous, et en
lecture et écriture pour le propriétaire et son groupe.
$ chmod a=x,ug+rw test/bin
$ chmod a=rwx,o-rw test/bin
$ ls -ld test/bin
3) Aller dans le répertoire test. Créer un fichier doc.txt. Recopier le fichier
dans pub.
$ cd test
$ touch doc.txt
$ cp doc.txt pub
$ tree
4) Aller dans bin. Afficher à l'écran le contenu de test/pub/doc.txt.
$ cd bin
$ cat ../pub/doc.txt
5) Afficher la liste des fichiers contenus dans test et ses sous-répertoires.
$ ls -R ../
EX03 :
1) Créer un dossier nommé droits et un document monDoc.txt à l’intérieur
de ce dossier.
$ mkdir droits
$ touch droits/mondoc.txt
$ tree
2) Quels sont les droits d’accès sur le fichier que vous venez de créer pour
l’utilisateur ? le groupe ? les autres ?
$ ls -l droits/mondoc.txt
$ stat droits/mondoc.txt
3) Convertir en octal les droits d’accès du fichier mondoc.txt
664
$ stat droits/mondoc.txt
4) Modifier les droits sur monDoc.txt tel qu’il soit accessible en lecture
pour tout le monde (les accès en écriture et exécution sont laissés par
défaut).
$ ls -l droits/mondoc.txt
$ chmod a+r droits/mondoc.txt (commande facultative)
5) Modifier les droits sur le document tel qu’il ait les droits suivants :
rwxr–xr––
$ chmod ug+x,g-w droits/mondoc.txt
$ chmod u+x,g+x-w droits/mondoc.txt
6) Supprimer les droits de lecture au groupe et aux autres utilisateurs.
$ chmod go-r droits/mondoc.txt
7) Ajouter les droits d’exécutions aux autres utilisateurs.
$ chmod o+x droits/mondoc.txt
8) Ecrire avec plusieurs façons, l’accès total au document par tous les
utilisateurs.
$ chmod go+rw droits/mondoctxt
$ chmod a=rwx droits/mondoc.txt
$ chmod ugo+rwx droits/mondoc.txt
$ chmod 777 droits/mondoc.txt
Autres …
Les groupes : chaque utilisateur possède son propre groupe (groupe principal)
Le fichier /etc/group : les groupes utilisateurs avec la liste des utilisateurs dont
il est le groupe secondaire
$ cat /etc/group
$ wc -l /etc/group
Nom du groupe:MP:GID:liste utilisateurs
$ groups (affichage des groupes de l'utilisateur en cours)
$ groups utilisateur01 admin01 (groupes de l'utilisateur x)
Les Redirections :
Rediriger l'affichage de l'écran vers un fichier, une imprimante ou tout autre
périphérique, les messages d'erreurs vers un autre fichier, remplacer la saisie
clavier par le contenu d'un fichier.
Linux utilise des canaux d'entrées/sorties pour lire et écrire les données.
Les canaux par défaut de linux:
Canal d'entrée standard : le clavier
Canal de sortie standard : l'écran
Canal d'erreurs standard : redirigé vers l'écran
Redirection des flux de données vers des fichiers :
Flux de sortie (>) : rediriger la sortie standard (écran)
$ ls -l > fresultat.txt
$ cat fresultat.txt
Le fichier est créé ou son contenu est écrasé s'il existe
Les redirections sont mises en place avant l'exécution des commandes (fichier
crée avant l'exécution de la commande)
La double redirection (>>) : le résultat de la commande est ajouté en fin de
fichier.
$ cal >> fresultat.txt
$ ls >> fresultat.txt
$ clear
$ cat resultat.txt
Flux en entrée : les commandes peuvent recevoir des données à partir d'un
fichier au lieu de l'entrée standard (clavier) (<) redirection en entrée
$ wc < fresultat.txt
$ tr "[a-z]" "[A-Z]" < /etc/passwd
La redirection << : permet la saisie d'un texte jusqu’à un point donné et l'envoi
de son contenu à une commande ou un filtre
Après la << vous indiquez une chaîne de fin de saisie
$ tr "[a-z]" "[A-Z]" << fin
Les priorités : < , > , <<
Les canaux stabdars:
Canal d'entrée standard : stdin, descripteur 0
Canal de sortie standard : stdout, descripteur 1
Canal d'erreur standard : stderr, descripteur 2
$ rmdir dresultat (message d'erreur, par défaut envoyé sur écran)
$ rmdir dresultat 2> ferreur.log
$ ls -l
$ cat fereur.log
Rediriger les deux canaux de sortie dans un seul fichier, on utilise (>&)
$ ls -l > fresultat.txt 2>&1
Le fichier contient la sortie standard et les erreurs
$ wc < fresultat.txt > ftotal.txt
$ cat ftotal.txt
Les Tubes (Piplines) : les tubes ou pipes permettent de rediriger directement le
canal de sortie d'une commande vers le canal d'entrée d'une autre commande |
$ ls -l | wc
$ ls -l | wc > fresultat.txt
$ cat fresultat.txt
$ ls -l | wc | wc (plusieurs pipes)
La commande cat : permet de créer, fusionner ou afficher des fichiers sur la
sortie standard (écran) ou sur un autre fichier.
cat [option] [fichier]
Créer un fichier avec la commande cat
$ cat > fichier1.txt
texte
cours 1
fichier1
partie 1
Ctrl + d
$ ls -l
Afficher le contenu d'un fichier sur écran
$ cat fichier1.txt
$ cat /etc/passwd
$ cat >> fichier1.txt (ajouter du texte en fin de fichier)
$ cat fichier1.txt /etc/passwd /etc/group
$ cat *.txt
Redirection du contenu à l'aide de la commande cat
$ cat fichier1.txt > fichier2.txt (le fichier et crée ou écrasé)
$ cat fichier2.txt
$ cat fichier1.txt >> fichier2.txt (ajout du contenu en fin de fichier)
Concaténation des fichiers (fusion)
$ cat fichier1.txt fichier2.txt > fichier.txt
$ cat fichier.txt
Afficher les numéros de lignes
$ cat -n fichier.txt
La commande Find (suite) :
-exec : exécuter la commande pour chaque occurrence trouvée
-exec : doit être la dernière option de find
-exec : doit se terminer par \;
{} : substitution du fichier (passer le fichier résultat comme paramètre de la
commande)
$ touch f1.pdf f2.pdf f3.pdf
$ find -type f -name "*.pdf" -exec rm -f {} \;
$ touch f1.pdf f2.pdf f3.pdf
$ find . -type f -name "*.pdf" -ok rm -f {} \;
$ find . -iname "fich*" -exec ls {} \;
Les opérateurs logiques : ! or and
$ find . \(-name [fF]* ! -size +1b\) -print
Exercice01 : utilisation des wildcards
Globbing (wildcards = jokers, plages de valeurs [0-9], les filtres sur les fichiers)
: permet de nommer plusieurs fichiers grâce à des caractères "jokers", filtres,
plages de valeurs.
? un seul caractère
Astérisque * 0 ou n caractères
[chars] liste, liste alphabétique, liste numérique (acceptée)
[!chars] liste, liste alphabétique, liste numérique (refusée)
Exemples:
abc? : nom de fichier de 4 lettres commençant par abc
abc* : nom de fichier de trois lettres ou plus commençant par abc
*abc* : nom de fichier de 3 lettres ou plus contenant la chaîne abc
[ab]c : nom de fichier composé de deux lettres commencant par a ou A
[a-m]* : nom de fichier commencant par une lettre entre a et m
*[0-1][0-9] : nom de fichier se terminant par un nombre entre 00 et 19
[13579]*[a-z] commence par un chiffre impair et se termine par une minuscule
{a,b,c} fichiers nommés a b et c
{a*,*b*,*c} fichiers qui commencent par a , contient b ou se terminent par c
*{.doc,.odt,.rtf} fichiers *.doc, *.odt, *.rtf
Syntaxe sort
Sort -k<position> [-n][-r] -t<délimiteur> fichier
Exemples :
$ cat /etc/passwd
$ sort -k3 -nt ':' /etc/passwd
$ sort -k1,1 -t: /etc/passwd
Remarque : par défaut sort trie selon l'ordre numérique d'abord, puis par ordre
alphabétique.
Archivage et compression sous linux:
gzip et bzip2 peuvent compresser un seul fichier à la fois et ne peuvent pas créer
un paquetage de plusieurs fichiers
archiver en utilisant l’outil Tar (Tape archiver)
la solution c’est de créer une archive compressée , en utilisant Tar et (gzip ou
bzip2) pour avoir un résultat .tar.gz ou .tar.bz2
créer une archive : tar -cvf destination source
-c : créer l’archive
-v : mode détail
-f : file (archiver dans un fichier)
Archiver les fichiers texte dans une archive :
$ Ls -l > fichier1.txt
$ Ls -l > fichier2.txt
$ Ls -l > fichier3.txt
$ mkdir archive_txt
$ mv *.txt archive_txt
$ tar -cvf archivetxt.tar archive_txt
Afficher le contenu de l’archive sans l’extraire :
$ tar -tvf archivetxt.tar
Ajouter un fichier à l’archive:
$ ls -l > archive_txt/fichier4.txt
$ tar -rvf archivetxt.tar archive_txt/fichier4.txt
$ tar -tvf archivetxt.tar
Extraire les fichiers de l’archive dans le répertoire en cours:
$ cd Documents
$ tar -xvf ../archivetxt.tar
gzip et bzip2 pour compresser une archive:
bzip2 : meilleur taux de compression
Compresser l’archive archivetxt.tar avec gzip:
$ gzip archivetxt.tar
Décompresser l’archive gunzip:
$ gunzip archivetxt.tar.gz
La compression la plus puissante bzip2:
$ bzip2 archivetxt.tar
La décompression bunzip2:
$ bunzip2 archivetxt.tar.bz2
La Comparaison entre gzip et bzip2:
$ gzip -v dnsmasq.conf
$ gunzip dnsmasq.conf.gz
$ bzip2 -v dnsmasq.conf
$ bunzip2 dnsmasq.conf.bz2
Archiver et compresser en même temps avec tar et gzip :
$ tar -zcvf archivetxt.tar.gz archive_txt
Décompresser l’archive compressée :
$ tar -zxvf archivetxt.tar.gz
Archiver et compresser en même temps avec tar et bzip2 :
$ tar -jcvf archivetxt.tar.bz2 archive_txt
Décompresser l’archive compressée :
$ tar -jxvf archivetxt.tar.bz2