Aller au contenu

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 :

📋 Texte
 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

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.

📋 Texte
 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

    📋 Texte
          junier@fredportable:~/sandbox$ cd
          junier@fredportable:~$ pwd
          /home/junier
          junier@fredportable:~$ cd -
          /home/junier/sandbox
    
  • cd .. permet de remonter dans le rĂ©pertoire parent :

    📋 Texte
         junier@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 !

    📋 Texte
          junier@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.

📋 Texte
 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.

📋 Texte
 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 !

📋 Texte
 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 :

📋 Texte
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.
  • Pour rep2 on a drwxrwxr-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.

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 :

📋 Texte
 chmod [-R] [ugoa][+-=][rwx] fichier
  • Les options entre crochets dĂ©signent :

    • u : le propriĂ©taire
    • g : le groupe
    • o : les autres utilisateurs
    • a : tous les utilisateurs
    • + : ajouter le(s) droit(s)
    • - : enlever le(s) droit(s)
    • = : fixer le(s) droit(s)
    • r : droit de lecture
    • w : droit d’écriture
    • x : 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 :

      📋 Texte
          junier@fredportable:~/sandbox$ chmod a=w fichier3
      
    • Donner le droit d’écriture aux autres utilisateurs sur fichier4:

      📋 Texte
          junier@fredportable:~/sandbox$ chmod o+w fichier4
      
    • Enlever le droit de lecture Ă  tous les utilisateurs sur fichier4 :

      📋 Texte
          junier@fredportable:~/sandbox$ chmod ugo-r fichier4
      
    • Enlever le droit de lecture au groupe sur le rĂ©pertoire rep2 :

      📋 Texte
          junier@fredportable:~/sandbox$ chmod -R g-w rep2
      
    • Affichage des droits aprĂšs les modifications prĂ©cĂ©dentes :

      📋 Texte
          junier@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