Vous êtes sur la page 1sur 17

Support de cours

(cours 2)
Conventions :

Démonstration de la commande user1@debian~:$

Déroulement , remarque sur la commande ou


schéma

Remarque

Commande de base de Linux


la syntaxe des commandes est la suivante

commande -options argument

la commande,les options et les arguments doivent être séparés par des espaces exemple :
- ls c’est la commande
- (-l) c’est l’option
- linux c’est l’argument

● Commande mkdir :
la commande mkdir (make directory) permet de créer un répertoire
user1@debian~:$ mkdir rep

elle possède plusieurs options l’option la plus utilisée et l’option (-p parent) elle permet de créer un
répertoire avec un sou-répertoire exemple:
(dans l’exemple suivant on est déjà a l’intérieur du répertoire personnel de l’utilisateur user1 c’est-
a-dire a l’intérieur de /home/user1)

user1@debian~:$ mkdir -p linux/cours ---/home/user1


|__Linux
|__cours

autre exemple
user1@debian~:$ mkdir -p test/rep1/rep10 ---/home/user1
|__test
|__rep1
|_rep10
mkdir -p linux/cours si le répertoire Linux n’existe pas il sera créé ensuite elle va créer le répertoire
cours, par ailleurs si le répertoire Linux existe déjà elle va directement créer le répertoire cours a
l’intérieur du répertoire Linux.
remarque :

Pour Créer un fichier caché il faut précédé son nom par un (.) ex : touch .fichier.txt
La meme chose pour les répertoire

• Commande ls:
la commande ls possède plusieurs options parmi les plus utilisés :
-a : (a veut dire all) (ls -a) affiche tous le contenu d’un répertoire ainsi que les fichiers et répertoires
caché
-l : (ls -l) affiche le contenu d’un répertoire en liste en affichant les droits d’accès, taille, date création
etc…
-h : (Human readable ) (ls -h ) elle affiche la taille des fichiers en Ko,Mo,Go,To etc.. selon la taille du
fichier
-R : (Recursive) elle affiche toute le contenu du répertoire est sous répertoire
-i : (inode) elle affiche les inodes des fichier et répertoire
remarque :
les options courtes (un seul caractère) peuvent être groupés exemple
ls -alhiR /

• commande cd :
la commande cd (change directory nous permet de naviguer a l’intérieur de l’arborescence du système
de fichier (voir support de cours Initiation_linux_cours1)

la commande cd utilise des représentations spéciales:


. : le point(.) représente le répertoire courant en d’autre terme lui-même
.. : les deux point (. .) représente le répertoire parant
~ : ce caractère représente un raccourci du répertoire personnel de l’utilisateur
courant exemple
si on utilise le compte user1 ~ va représenter /home/user1
si on utilise le compte kamel ~ va représenter /home/kamel
- : représente le répertoire précédent
type chemin :
les chemins qui commencent par la racine c’est-a-dire le premier (/), on les appelle les chemins dure
les chemins telque ~/rep on les appelle les chemain relatifs
remarque :
La commande cd et le point, deux points , tilda ou tire doive etre séparer par un espace
Correcte : cd .. et non cd..

Afin de se déplacer d’un répertoire a un autre qui se trouve ailleurs dans le systeme de fichier il faut
indiquer le chemin complet exemple

Pour se deplacer de etc (etc un répertoire qui se trouve dans la racine ) vers un répertoire log (qui se trouve
dans le repertoire var qui a son toure se trouve dans le repertoire racine (/) il faut indiquer le chemain
complet

Quelques exemples :
user1@debian~:$ cd /var/log Déroulement: Se déplacer de /home/user1 au répertoire /var/log
user1@debian:/var/log$ — / (racine) a — / (racine)
|_ home |_var
|_user1 |_ log

user1@debian~:$ cd /etc Déroulement: Se déplacer de /home/user1 au répertoire /etc


user1@debian:/etc$ — / (racine) a — / (racine)
|_ home |_etc
|_user1

user1@debian:/etc$ cd /dev Déroulement: Se déplacer de /etc au répertoire /dev


— / (racine) a — / (racine)
|_ etc |_ dev

user1@debian:/etc$ cd /home/user1 Déroulement: Se déplacer de /etc au répertoire /home/user1


user1@debian:~$ — / (racine) a — / (racine)
|_ etc |­_home
user1@debian:/etc$ cd ~ |_user1
user1@debian:~$

user1@debian:/var/log$ cd .. Déroulement: Se déplacer de /var/log au répertoire /var


user1@debian:/var$ — / (racine) a – / (racine)
|_ var |_ var
|_log
user1@debian:~/linux/exo$ cd ../../exo2 Déroulement: Se déplacer de
/home/user1/linux/exo au répertoire
user1@debian:~/linux/exo2$ /home/user1/linux/exo2
ou — / (racine) – / (racine)
|_ home |_ home
user1@debian:~/linux/exo$ cd ~/linux/exo2 |_user1 |_user1
user1@debian:~/linux/exo2$ |_linux |_linux
|_exo |_exo
|_exo2 |_exo2

user1@debian:/var/log$ cd /etc Déroulement: Se déplacer de /var/log au


répertoire /etc puis revenir au précédent
user1@debian:/etc$ cd -
user1@debian:/var/log$

on ne peut pas couvrir tous les exemples afin de bien comprendre le fonctionnement de cd il faut
pratiquer sur la machine

• Commande cp :
la commande cp (copy) permet de copier des fichiers et des répertoires le principe de fonctionnement
est le même avec les chemins que celui de la commande cd
voici quelques exemples

EX1:
user1@debian~:$ cp /etc/passwd . Déroulement: copier le fichier passwd au
répertoire courant (/home/user1)
– / (racine) a – / (racine)
|_etc |_ home
|_ passwd |_user1

EX 2:
user1@debian:/var/log $ cp /etc/passwd ~

Déroulement: l’utilisateur se trouve dans le répertoire /var/log il peut copier le fichier passwd qui se
trouve dans etc qui a son toure se trouve dans la racine vers son répertoire personnel
– / (racine) a – / (racine)
|_etc |_ home
|_ passwd |_user1
EX 3:
user1@debian:/var/log $ cp /etc/passwd ~/linux

Déroulement: l’utilisateur se trouve dans le répertoire /var/log il peut copier le fichier passwd qui se
trouve dans etc qui a son tour se trouve dans la racine vers le répertoire linux qui se trouve dans
répertoire personnel
– / (racine) a – / (racine)
|_etc |_ home
|_ passwd |_user1
|_linux

EX4:
^user1@debian:~/Linux/REP1 $ cp linux/REP1/fichier.txt ../../.

Déroulement:Copier le fichier.txt qui se trouve dans le répertoire REP1 qui son tour se trouve dans le
répertoire personnel vers le répertoire personnel
– / (racine) a – / (racine)
|_home |_ home
|_ user1 |_user1
|_linux
|_REP1
|_ fichier.txt

plusieurs exemples existent pour bien apprendre le fonctionnement il faut pastiquer sur la machine

• Commande cat :
c’est une commande très simple elle affiche le contenu d’un fichier a la sortie standard par défaut
l’écran (on se trouve a l’intérieur du répertoire personnel /home/user1)
user1@debian~:$ cat /etc/passwd Cette commande veux dire :
Lire le fichier passwd qui se trouve dans le répertoire etc qui a son
tour se trouve dans la racine du système de fichier

— / (racine)
|_ etc
|_ passwd

remarque :
le premier (/) veut dire la racine du système de fichier les autres (/) sont des séparateurs
si on veut lire un fichier dans le même répertoire on saisit directement le nom du fichier voici un
exemple
user1@debian~:$ cat monfichie.txt

si on veut lire un fichier qui se trouve a l’intérieur d’un répertoire qui est au même niveau que le
répertoire courant on utilise le chemin du fichier exemple
user1@debian~:$ cat linux/monfichie.txt On se trouve déjà a l’intérieur /home/user1 qui contien
un répertoire linux qui a son tour contient un fichier
monfichier.txt
--/home/user1
|_ linux
|_ monfichier.txt

cat possède une option assez intéressante (-n) qui affiche le numéro de la ligne a cote de chaque ligne
affichée
user1@debian~:$ cat -n monfichie.txt

• tac :
c’est l’inverse de la commande cat elle affiche le fichier inversé
user1@debian~:$ tac /etc/passwd

• less :
cette commande permet de lire un fichier, mais elle permet également la navigation entre les lignes du
fichier en utilisant les touches du clavier (haut , bas)
user1@debian~:$ less -n monfichie.txt

• head :
cette commande par défaut affiche les dix (10) premières lignes d’un fichier
user1@debian~:$ head /etc/passwd

la contrainte des 10 lignes peut être modifié en utilisant l’options (-n)


user1@debian~:$ head -n 3 /etc/passwd Déroulement : affiche seulement les 3 premieres ligne du
fichier
• tail :
elle est semblable a la commande head par défaut elle affiche les dix (10) dernières ligne d’un fichier
user1@debian~:$ tail /etc/passwd

la contrainte des 10 lignes peut être modifié en utilisant l’options (-n)


user1@debian~:$ tail -n 3 /etc/passwd Déroulement : affiche seulement les 3 dernières ligne du
fichier

• sort :
la commande sort trie les lignes d’un fichier par ordre alphabétique
user1@debian~:$ soit /etc/passwd

• echo:
cette commande permet d’afficher un message a la sortie standard (par défaut l’écran) mais on peut
rediriger son flux vers une autre commande ou dans un fichier

user1@debian~:$ echo ‘’hello world’’
Hello world
user1@debian~:$

• wc :
cette commande permet de compter le nombre de ligne, le nombre de mot et le nombres de caractères
d’un fichier en utilisant les options (-l) pour ligne (-w) pour words (-c) pour caractères
user1@debian~:$ wc -l /etc/passwd
41 /etc/passwd
user1@debian~:$ wc -w /etc/passwd
98 /etc/passwd
user1@debian~:$ wc -c /etc/passwd
2394 /etc/passwd
user1@debian~:$
Description du fichier /etc/passwd et /etc/group
le fichier /etc/passwd est un fichier csv qui contient 7 champs séparer par (:)
user1@debian~:$ tail -n 1 /etc/passwd
user1:x:1004:1005:Admin:/home/user1:/bin/bash
user1@debian~:$

user1 : c’est le nom de login


x : c’est le mot de passe
1004 : c’est le UID (User Identifier ) il est unique
1005 : c’est le GID (Group Identifier) il est unique
Admin : c’est un commentaire (génialement il est vide ::)
/home/user1 : c’est le répertoire personnel de l’utilisateur
/bin/bash : c’est le bash de l’utilisateur attribuer a la création du compte

le fichier /etc/groupe est aussi un fichier csv il contient 3 champs :


user1@debian~:$ tail -n 1 /etc/group
DSI:x:1005:kamel,karim
user1@debian~:$

DSI : Nom du groupe


x : Mot de passe
1005 : c’est le GID (Group Identifier) il est unique
karim,kamel : ce sont les utilisateurs qui ont le groupe DSI comme groupe secondaire

• id :
cette commande permet de voire le UID de l’utilisateur courant voici un exemple
user1@debian~:$ id
uid=1000(user1) gid=1004(DSI) groups=1001(Prod),1002(Compta)
• cut :
la commande cut permet d’extraire les informations d’un champ ou plusieurs champs spécifiques
voici la syntaxe de la commande
cut -f1 -d ‘:’ /etc/passwd
cut : c’est le nom de la commande
-f : c’est l’option (-f) qui signifie field (champ) il faut qu’elle soit suivie du numéro du
champ exemple (1) on peut utiliser un intervalle
-d : c’est le séparateur entre les champs du fichier dans le cas de passwd ou group c’est les
(:)
/etc/passwd : c’est le nom du fichier a dont on veut extraire les informations

voici quelque exemple :


user1@debian~:$ cut -f1 -d’:’ /etc/passwd user1@debian~:$ cut -f3 -d’:’ /etc/passwd
root 0
Karim 1000
Kamel 1001
Etc…… Etc……

On peut utiliser des intervalles


user1@debian~:$ cut -f1,3-6 -d’:’ /etc/passwd
root:0::/root
Karim:1001::/home/karim
Kamel:1002::/home/kamel
Etc……

• split :
la commande split permet de découper un fichier en plusieurs autres fichiers, mais il faut utiliser deux
options obligatoires (-l) et (-a) voici la syntaxe de la commande

split -l100 -a5 fichier.txt

-l : suivie par un numéro (-l100) pour déterminer le nombre de ligne que va contenir chaque
fichier de sortie
-a : suivie d’un numéro (-a5) qui détermine la langueur du nom des fichiers de sortie
voici un exemple :
remarque :
A titre d’exemple on suppose que le fichier (fichier.txt) contient 10000 lignes

user1@debian~:$ split -l1000 -a5 fichier.txt Déroulement : cette commande va découper le fichier
fichier.txt en 10 autres fichiers ou chacun contient
1000 lignes
Xaaaaa : contiendra les 1000 première
Xaaaab : contiendra les 1000 suivantes
Xaaaac : contiendra les 1000 suivantes
Etc….

remarque :
Il est egalement possible d’utiliser split sans l’option -l par defaut split decoupe un fichier en plusieurs
autre fichiers

• mv :
la commande mv possède deux fonctions couper/coller(déplacer) et renommé

 pour déplacer un fichier d’un endroit a un autre voici un exemple il faut que les deux objects
existe c’est-a-dire le fichier est le répertoire ou bien les deux répertoires
voici un exemple
user1@debian~:$ mv fichier.txt Linux/ Déroulement : cette commande va déplacer le fichier
fichier.txt dans le répertoire linux
--/ (racine) après exécution --/ (racine)
|_ home |_home
|_Linux |_linux
|_fichier.txt |_fichier.txt

on peut déplacer de(s) fichier(s) d’un emplacement un autre même si l’utilisateur est dans un autre
répertoire
user1@debian/var/log:$ mv /home/user1/fichier.txt /home/user1/Linux/
Ou bien
user1@debian/var/log:$ mv ~/fichier.txt ~/Linux/
Déroulement : cette commande va déplacer le fichier fichier.txt dans le répertoire linux même si
l’utilisateur est dans /var/log mais la il faut donnée le chemin dure

--/ (racine) après exécution --/ (racine)


|_ home |_home
|_user1 |_user1
|_Linux |_linux
|_fichier.txt |_fichier.txt
user1@debian/var/log:$ mv /home/user1/fichier.txt /home/user2/
Ou bien
user1@debian/var/log:$ mv ~/fichier.txt /home/user2/
Déroulement : cette commande va déplacer le fichier fichier.txt dans le répertoire personnel de
user2 cette commande sera exécuter seulement si user1 dispose du droit d’écriture sur le
répertoire personnel de user2

--/ (racine) après exécution --/ (racine)


|_ home |_home
|_Linux |_linux
|_fichier.txt |_fichier.txt
remarque :
c’est le meme fonctionnement avec le point Et les deux point
- On peut déplacer le fichier d’un répertoire vers le répertoire parant de ce dernier (..)
- On peut déplacer un fichier d’un répertoire vers le répertoire courant (.)
- le déplacement est le meme que les fichiers pour les répertoires

• pour Renommer un fichier il faut que la cible existe et la destination n’existe pas

exemple
user1@debian~:$ mv fichier.txt file.txt
on peut egalement renommer un fichier même si on est pas dans le même répertoire exemple

user1@debian~/Linux:$ mv ../fichier.txt ../file.txt

Déroulement : meme si l’utilisateur n’est pas au meme niveau que le fichier il peut le renommé
en utilisant les deux point(..)

--/ (racine) après exécution --/ (racine)


|_ home |_home
|_user1 |_user1
|_Linux |_Linux
|_fichier.txt |_file.txt

remarque :
On peut renomer un répertoire de la meme maniere répertoire source existant le nouvau nom ne
doit pas existe sinon elle fera un déplacement
• commande rm :
commande rm (remove) permet de supprimer un fichier ou un répertoire son utilisation est semblable a
celle de mv, cp cd

user1@debian~:$ rm fichier.txt

user1@debian~:$ rm REP1/fichier.txt Déroulement:


--/ (racine) après exécution --/ (racine)
|_ home |_home
|_user1 |_user1
|_REP1 |_REP1
|_fichier.txt

remarque :
c’est le même fonctionnement avec le point Et les deux point tilda
- On peut supprimer un fichier d’un répertoire parent en utilisant les (..)
- On peut supprimer un fichier d’un répertoire en spécifiant le chemin dure si on est pas au meme
niveau

afin de supprimer un répertoire il faut juste ajouter l’option ( -r recursive) voici un exemple

user1@debian~:$ rm -r REP1 Déroulement:


--/ (racine) après exécution --/ (racine)
|_ home |_home
|_user1 |_user1
|_REP1 |_REP1
|_fichier.txt
|_fichier2.txt
|_rep3
|_fichier4.txt
|_fichier5.txt

d’autre option existent :


-f : qui veut dire force généralement utilisé avec -r
-i : affiche un message de confirmation de la suppression (rm -i)
remarque :
Il est également possible de cibler les fichier a supprimer exemple rm *.txt ou *.log ou bien fichier*.log
• grep :
la commande grep est l’une des commandes les plus importantes elle est très utilisée
elle permet de chercher a l’intérieur d’un fichier les lignes qui contiennent le mot clé donné en
argument
voici la syntaxe de grep
grep -option (mot_clé) fichier

voici quelques exemples :

user1@debian~:$ grep root /etc/passwd Déroulement: elle va afficher toutes les lignes qui
contiennent le mot clé root et les afficher a l’ecran

elle possède plusieurs options parmi les plus utilisés


-i : (ignore-case) ignorer la casse
-v : inverser la recherche affiche toutes les ligne qui ne contiennent pas le mot clé
-n : affiche le numéro de la ligne qui contient le mot clé
-l : affiche tous les fichiers qui contient le mot clé exemple
user1@debian~:$ grep -l root /etc/*
/etc/passwd
/etc/group
/etc/sudoers
/etc/service
/etc/security
...

remarque :
La commande grep sera vu plus en détail au prochain cours
Les redirections :
chaque commande possède une entrée (stdin) et deux sorties (stdout) est la sortie standard la (stderr)
est la sortie d’erreur standard par défaut les deux sorties sont redirigées a l’écran
voici le schema qui illustre ce fonctionnement

il est possible de rediriger chaque sortie vers un périphérique , fichier

1 : représente la sortie standard


2 : représente la sortie des erreurs

pour rediriger une sortie vers un fichier ou périphérique on utilise les symboles suivants :
> : Écrire dans un fichier
>> : Ajouter la sortie a un fichier
& : rediriger toutes les sorties dans le même fichier

voici quelques exemples :


user1@debian~:$ cat /etc/shadow 2> err.txt Déroulement: si la commande n’arrive pas a lire le
fichier elle va générer des erreurs via (2>) les erreurs
seront sauvegarder dans un fichier err.txt au lieu de
l’écran

user1@debian~:$ cat /etc/group 2> err.txt 1> out.txt Déroulement: la commande va essayer de
lire le fichier group si elle arrive a le lire
au lieu d’afficher le résultat sur l’écran il
sera rediriger dans le fichier out.txt car
on a clairement indique le (1>)
Si elle n’arrive pas a le lire les messages
d’erreur seront enregistrer dans err.txt
grâce a (2>)
Ajouter
user1@debian~:$ cat /etc/group 2>> err.txt 1>> out.txt Déroulement: elle va faire la même chose
avec l’exemple précédant sauf qu’ici le
contenu de err.txt et out.txt ne sera pas
écrasé

user1@debian~:$ cat /etc/group &> out.txt Déroulement: cette commande va


enregistrer les erreurs et le résultat dans
le même fichier
user1@debian~:$ cat /etc/group &>> out.txt
Le deuxième exemple va ajouter au lieu
d’écraser
si nous avons seulement besoin que des résultats, mais on ne veut ni voir les erreurs sur l’écran ni les
garder dans un fichier, on peut dans ce cas utiliser le périphérique spécial /dev/null
user1@debian~:$ ls -alR / 1> out.txt 2>/dev/null

l’exemple précédent peut être inversé si nous avons seulement besoin des erreurs et nous n’avons pas
besoin des résultats
user1@debian~:$ ls -alR / 1>/dev/null 2>err.txt

remarque :
Le répertoire /dev/ contient les fichiers spécifiques au périphériques voir l’arborescence cours 1

exemple
user1@debian~:$ echo ‘’ hello ‘’ 1> file.txt  Déroulement: Dans cet exemple le texte hello ne sera
pas afficher a l’écran mais enregistrer dans un
fichier

Les pipe:
les pipes généralement connues sous le nom des pipes anonyme connectent la sortie standard d’une
commande a l’entrée standard d’une autre commande voici le symbole des pipes ( | )

voici quelques exemples :


user1@debian~:$ ls . | wc -l Déroulement: la commande ls sera exécuter en premier son résultat sera
traité par la commande wc l’affichage a l’écran est le résultat de la
dernière commande c’est a dire dons notre cas c’est la wc
exemple
user1@debian~:$ head – n 5 /etc/passwd | sort | tail -n 2 | grep user1

Déroulement: l’exemple suivant head va extraire les 5 premières lignes ensuite ils seront triés , puis
extraire les 2 dernieres lignes précédemment triés ensuite une recherche sera effectée avec la commande
grep qui affichera le résultat sur l’écran

Ex: on peut combiner la redirection avec les pipes voici un exemple :


user1@debian~:$ head – n 5 /etc/passwd | sort | tail -n 2 | grep user1 1> resultat.txt

Déroulement: l’exemple suivant est identique au précédant aprat le résultat de grep ne sera pas afficher a
l’ecran mais il sera rediriger dans un fichier
remarque :
ON peut piper plusieurs commande

user1@debian~:$ head – n 5 /etc/passwd | sort | tac | tail-n 3 | grep user1 | awk ‘{ print $1}’
1>resultat.txt 2> err.txt
voici un autre exemple :
user1@debian~:$ echo ‘’Hello tux how are you‘’ | wc -c 1> Ncaracter.txt
user1@debian~:$ cat Ncaracter.txt
22
user1@debian~:$

Déroulement: le message sera envoyer a la commande wc qui a sont tour va compter le nombre de
caractères une fois terminé son résultat sera redirigé dans un fichier Ncaracter.txt

Vous aimerez peut-être aussi