Memento commandes
CrĂ©ditsâïž
Ce chapitre est un extrait remis en forme d'un document dont l'auteur est FrĂ©dĂ©ric Junier. Celui-ci a prĂ©cisĂ© : Memento directement inspirĂ© des livres La ligne de commande par lâexemple de Vincent Fourmond et Parlez-vous Shell ? de Thomas Hugel.
Dans ce memento, nous prĂ©sentons des commandes du shell BASH sous licence libre, qui est le shell par dĂ©faut sur la plupart des distributions du systĂšme dâexploitation libre Linux. On distinguera parfois fichiers et rĂ©pertoires mais on rappelle que les rĂ©pertoires sont juste des fichiers spĂ©ciaux, qui contiennent dâautres fichiers. Un memento en ligne est disponible sur https://juliend.github.io/linux-cheatsheet/.
I. GĂ©nĂ©ralitĂ©sâïž
Pour faciliter la saisie des commandes avec le clavier, BASH offre quelques raccourcis clavier bien pratiques :
la touche de tabulation
La touche de tabulation permet dâappeler la complĂ©tion automatique
qui propose de compléter la commande avec les choix possibles
(fichiers ou commandes existants). Par exemple si on saisit pw
,
lâappui sur la touche de tabulation nous propose plusieurs commandes
commençant par ce préfixe :
junier@fredportable:~$ pw
pwck pwconv pwd pwdx pwgen pwunconv
Les flĂšches de direction Haut et Bas
Les flĂšches de direction Haut et Bas permettent de naviguer dans lâhistorique des commandes.
documentation : man
La plupart des commandes du shell sont dotĂ©es dâune documentation
accessible depuis lâinterprĂ©teur avec la commande man
. Par exemple
pour afficher lâaide de la commande ls
, on Ă©crira man ls
.
commande, arguments et options
Une commande shell est constituĂ©e du nom de la commande suivi dâun ou plusieurs arguments. Des options prĂ©cĂ©dĂ©es peuvent modifier le comportement de la commande :
nom_commande -option1 -option2 ... arg1 arg2 arg3 ...
II. Les commandes usuellesâïž
La commande ls
Ainsi, la commande ls
permet dâafficher des informations sur
répertoire ou un fichier :
-
Sans argument, ni option
ls
liste le contenu du répertoire courant :junier@fredportable:~/sandbox$ ls fichier1 fichier2 fichier3 fichier4 rep1 rep2
-
Avec lâoption
-l
elle affiche des informations détaillées sur chacun des fichiers contenus dans le répertoire :junier@fredportable:~/sandbox$ ls -l
total 8
-rw-rw-r-- 1 junier junier 0 août 16 21:43 fichier1
...........
drwxrwxr-x 2 junier junier 4096 août 16 21:44 rep1
drwxrwxr-x 2 junier junier 4096 août 16 21:44 rep2 -
Si on passe un répertoire en argument à la commande, elle affiche son contenu.
junier@fredportable:~/sandbox$ ls -l rep1
total 0
-rw-rw-r-- 1 junier junier 0 août 16 21:44 photo1.jpg
-rw-rw-r-- 1 junier junier 0 août 16 21:44 photo2.jpg
Naviguer dans lâarborescence du systĂšme de fichiersâïž
La commande pwd
La commande pwd
pour print work directory
permet dâafficher le
répertoire courant dit de travail. Le symbole tilde ~
est un
raccourci pour dĂ©signer le rĂ©pertoire personnel de lâutilisateur, en
général /home/utilisateur
.
junier@fredportable:~/sandbox$ pwd
/home/junier/sandbox
La commande cd
La commande cd
pour change directory
permet de changer de
répertoire courant.
-
Sans argument ou avec
cd ~
elle ramĂšne lâutlisateur dans son rĂ©pertoire personnel/home/utilisateur
.cd -
ramĂšne dans le rĂ©pertoire prĂ©cĂ©dentđ Textejunier@fredportable:~/sandbox$ cd junier@fredportable:~$ pwd /home/junier junier@fredportable:~$ cd - /home/junier/sandbox
-
cd ..
permet de remonter dans le rĂ©pertoire parent :đ Textejunier@fredportable:~/sandbox$ pwd /home/junier/sandbox junier@fredportable:~/sandbox$ cd .. junier@fredportable:~$ pwd /home/junier
-
On peut fournir Ă
cd
un chemin absolu ou relatif mais il faut que le chemin soit uniquement constituĂ© de rĂ©pertoires !đ Textejunier@fredportable:~/sandbox$ cd /home/junier/sandbox/rep1 junier@fredportable:~/sandbox/rep1$ cd .. junier@fredportable:~/sandbox$ cd rep1 junier@fredportable:~/sandbox/rep1$ cd photo1.jpg bash: cd: photo1.jpg: N'est pas un dossier
Copier, supprimer, dĂ©placer un fichierâïž
La commande mv
La commande mv
pour move
sert à déplacer ou renommer des
fichiers ou des répertoires. Elle prend deux arguments source et
cible : si la cible est un répertoire, alors la cible est
copiée dedans sinon elle est renommée.
junier@fredportable:~/sandbox$ ls
fichier1 fichier2 fichier3 fichier4 rep1 rep2 rep3
junier@fredportable:~/sandbox$ mv fichier1 fichier1-copie
junier@fredportable:~/sandbox$ ls
fichier1-copie fichier2 fichier3 fichier4 rep1 rep2 rep3
junier@fredportable:~/sandbox$ ls rep1
photo1.jpg photo2.jpg
junier@fredportable:~/sandbox$ mv fichier1-copie rep1
junier@fredportable:~/sandbox$ ls rep1
fichier1-copie photo1.jpg photo2.jpg
junier@fredportable:~/sandbox$ mv rep1 rep2
junier@fredportable:~/sandbox$ ls rep2
rep1 son1.jpg son2.jpg
La commande cp
La commande cp
permet de copier des fichiers. Elle sâutilise comme
mv
, sauf que le fichier source nâest pas supprimĂ©. Par dĂ©faut
cp
ne copie que des fichiers, pour copier un répertoire et son
contenu, il faut lui passer lâoption -R
pour recursive
.
junier@fredportable:~/sandbox$ ls
fichier2 fichier3 fichier4 rep2 rep3
junier@fredportable:~/sandbox$ ls rep2
rep1 son1.jpg son2.jpg
junier@fredportable:~/sandbox$ cp fichier2 rep2
junier@fredportable:~/sandbox$ ls rep2
fichier2 rep1 son1.jpg son2.jpg
junier@fredportable:~/sandbox$ cp rep2 rep3
cp: -r non spécifié ; omission du répertoire 'rep2'
junier@fredportable:~/sandbox$ cp -R rep2 rep3
junier@fredportable:~/sandbox$ ls rep3
rep2
La commande rm
La commande rm
permet de supprimer les fichiers quâon lui passe en
argument. Pour supprimer un répertoire et son contenu, il faut lui
passer lâoption -R
comme pour cp
.
đ” Attention, rm
ne déplace pas les fichiers vers une corbeille, ils sont supprimés
définitivement !
junier@fredportable:~/sandbox$ ls
fichier2 fichier3 fichier4 rep2 rep3
junier@fredportable:~/sandbox$ rm fichier2
junier@fredportable:~/sandbox$ ls
fichier3 fichier4 rep2 rep3
junier@fredportable:~/sandbox$ rm rep3
rm: impossible de supprimer 'rep3': est un dossier
junier@fredportable:~/sandbox$ rm -r rep3
junier@fredportable:~/sandbox$ ls
fichier3 fichier4 rep2
III. Gestion des droits sur les fichiersâïž
Lecture des droits
Considérons le contenu du répertoire ~/sandbox
affiché de façon détaillée avec la commande ls -l
:
junier@fredportable:~/sandbox$ ls -l
total 8
-rwxrw-r-- 1 junier junier 0 août 16 21:43 fichier3
-rw-rw-r-- 1 junier junier 0 août 16 21:43 fichier4
drwxrwxr-x 3 junier junier 4096 août 16 23:29 rep2
drwxrwxr-x 2 junier junier 4096 août 16 23:33 rep3
đ Les 10 premiers caractĂšre dâune ligne reprĂ©sentent les droits sur le fichier (ou le rĂ©pertoire) :
-
Pour
fichier3
on a-rw-rw-r--
:- le premier caractĂšre
-
indique quâil sâagit dâun fichier - le premier bloc de trois caractĂšres
rwx
représente les droits pour le propriétaire (u) du fichier : lecture (r), écriture (w) et exécution (x). - le second bloc de trois caractÚres
rw-
représente les droits pour le groupe (g) du fichier : lecture (r), écriture (w) et un tiret-
qui marque lâabsence de droit dâexĂ©cution - le dernier bloc de trois caractĂšres
rw-
reprĂ©sente les droits pour les autres (o) utilisateurs du fichier : ce sont les mĂȘmes que pour le groupe.
- le premier caractĂšre
-
Pour
rep2
on adrwxrwxr-x
:- le premier caractĂšre
d
indique quâil sâagit dâun rĂ©pertoire - les trois blocs de trois caractĂšres suivants Ă©numĂšrent les droits en lecture (r), Ă©criture (w), exĂ©cution (x) des trois types dâutilisateurs du rĂ©pertoire : propriĂ©taire, groupe et autres.
- le premier caractĂšre
La commande chmod
Le propriĂ©taire dâun fichier ou le superutilisateur root
peut
changer les droits dâun fichier ou dâun rĂ©pertoire avec la commande
chmod
dont la syntaxe est :
chmod [-R] [ugoa][+-=][rwx] fichier
-
Les options entre crochets désignent :
u
: le propriétaireg
: le groupeo
: les autres utilisateursa
: tous les utilisateurs+
: ajouter le(s) droit(s)-
: enlever le(s) droit(s)=
: fixer le(s) droit(s)r
: droit de lecturew
: droit dâĂ©criturex
: droit dâexĂ©cution-R
: récursivement (nécessaire pour agir sur un répertoire)
-
Quelques exemples :
-
Fixer les droits Ă w pour tous les utilisateurs sur
fichier3
:đ Textejunier@fredportable:~/sandbox$ chmod a=w fichier3
-
Donner le droit dâĂ©criture aux autres utilisateurs sur
fichier4
:đ Textejunier@fredportable:~/sandbox$ chmod o+w fichier4
-
Enlever le droit de lecture Ă tous les utilisateurs sur
fichier4
:đ Textejunier@fredportable:~/sandbox$ chmod ugo-r fichier4
-
Enlever le droit de lecture au groupe sur le répertoire
rep2
:đ Textejunier@fredportable:~/sandbox$ chmod -R g-w rep2
-
Affichage des droits aprÚs les modifications précédentes :
đ Textejunier@fredportable:~/sandbox$ ls -l total 8 ---x--x--x 1 junier junier 0 aoĂ»t 16 21:43 fichier3 --w--w--w- 1 junier junier 0 aoĂ»t 16 21:43 fichier4 drwxrwxr-x 3 junier junier 4096 aoĂ»t 16 23:29 rep2 drwxrwxr-x 2 junier junier 4096 aoĂ»t 16 23:33 rep3
-