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
lsliste le contenu du répertoire courant :junier@fredportable:~/sandbox$ ls fichier1 fichier2 fichier3 fichier4 rep1 rep2
-
Avec lâoption
-lelle 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 Ă
cdun 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
fichier3on a-rw-rw-r--:- le premier caractĂšre
-indique quâil sâagit dâun fichier - le premier bloc de trois caractĂšres
rwxrepré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
rep2on adrwxrwxr-x:- le premier caractĂšre
dindique 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
-