Linux Command Cheat Sheet


Syntaxe

Passer une commande : on tape d'abord le nom de la commende, puis une liste d'arguments (optionnels) qui permettent de compléter une commande.
# commande { args1, args2 arg3 ...}
A savoir :
  • Ils sont séparés par des espaces.
  • Ils peuvent être écris de différentes façons :
    /chemin/fichier --help -h -c 3 -3
Si vous avez besoin d'utiliser un espace dans le nom d'un dossier ou d'un fichier, vous pouvez "échapper le caractère" en le précédant d'un anti-slash \.
mon\ fichier.txt
Si vous avez avez beaucoup d'espaces ou des caractères spéciaux : concaténez l'argument avec des guillemets doubles.
"C'est mon fichier.txt"
Et il est possible d'échapper des guillemets doubles ou des anti-slash à l'aide de ce dernier ?
Oui :
"mon \"beau\" fichier.jpeg" ->  mon "beau" fichier.jpeg

Exemple de commande simple

Si je passe la commande ls (list) seule : l'ordinateur me retourne une liste simple :
# ls Bureau/
.fichier_cache.txt Dev cpu.txt
Mais si je rajoute des arguments, comme un dossier Bureau/ et un formatage de sorti -lha :
# ls Bureau/ -lha 
-rw-r--r-- 1 root root 2,8K 8 nov. 20:08 .fichier_cache.txt 
drwxr-xr-x 2 drion drion 4,0K 3 nov. 23:58 Dev 
-rw-r--r-- 1 root root 54 5 nov.  22:55  cpu.txt
L'argument -l organise la sortie sous forme de liste, -h sert à formater l'affichage du poids des fichiers et enfin et -a pour faire afficher les fichiers cachés.

Echo et Variables

Les variables sont des petites boites auxquelles nous assignons un nom est une valeur, l'objet est ensuite stocké sur la mémoire vive de l'ordinateur jusqu'à que vous vous l'utiliser.
# Texte="/mon/dossier"
# Nombre=12
 La commande ECHO peut autant servir à afficher le contenu de quelques chose. Le contenu d'une variable par exemple. pour utiliser le contenu de la variable : 

# echo $Texte
"/mon/dossier"
# echo $Nombre
12

 La commande ECHO peut autant servir à afficher le résultat d'une commande.
# ls $Texte
dossier_1/ dossier_2/ fichier_1.txt 


Structures

"Et"

On peut passer plusieurs commandes sur une seule ligne avec "et" noté &&:
# command_1 { args } && command_2 { args } && etc.

"Ou"

On peut passer une commande alternative avec "ou" noté || : Si la première commande est fausse (et seulement si elle est fausse), alors le programme teste la seconde.
# command_1 { args } || command_2 { args } || etc.

le tuyau

Le tuyau ("pipe" en anglais) permet de faire passer le résultat d'une commande vers une autre commande. Il se note avec un seul |.
# command_1 { args } | command_2 { args } | etc.
Le tuyau est pratique pour, par exemple, filtrer un résultat. Voir : exemple de commande complexe.

Redirection de l'entrée standard

l'entrée standard ("stdin"), c'est votre clavier quand vous allez taper une commande. On peut rediriger l'entrée standard sur un flux ou fichier avec <. Il peut également lire dans un fichier.
# command_1 { args } < /path/file

Redirection de la sortie standard

La sortie standard ("stdout") est l'affichage à l'écran, en règle général : le résultat de la commande. Il est possible de renvoyer le résultat de la commande dans un fichier à l'aide du chevrons fermant >.
# command_1 { args } > /path/file
Si le fichier n'existe pas, il le créer. Si le fichier existe : il est vidé puis remplit avec le résultat de la commande. Si vous souhaitez écrire au bout du fichier, sans effacer ce qui est déjà écris : utilisez deux chevrons >>.
# command_1 { args } >> /path/file

Exemple de commande complexe

Ainsi la commande :
# cat /proc/cpuinfo | grep "model name" -i | head -1 > cpu.txt && cat cpu.txt
Va créer un fichier contenant :
model name : Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
Cette commande utilise cat pour lire le fichier /proc/cpuinfo : puis le contenu du fichier est filtré par la commande grep qui ne retient que les lignes contenant "model name" puis header pour ne conserver que la première ligne, ensuite on écris cette ligne dans le fichier cpu.txt, et enfin : on affiche le contenu fichier en question.

Système de fichier

  • Lister le contenu d'un dossier 
    # ls /path
  • Créer un dossier
    # mkdir /path
  • Supprimer un dossier (si celui est vide)
    # rmdir /path
  • Copier un dossier (de /arg1 vers /arg2)
    # cp /frompath /topath
  • Déplacer ou renommer un dossier ou un fichier
    # mv /frompath /topath
  • Supprimer un dossier ou un fichier.
    Utiliser l'argument récursif -r pour supprimer de dossier et son contenu.
    # rm /path
  • Créer un fichier (vide par défaut).
    Permet aussi de modifier certaines propriétés.
    # touch /path
  • Lit le contenu d'un fichier
    # cat /path

Filtres


  • Ne conserve que les 10 premières lignes.
    # head -10 
  • Ne conserve que les 10 dernières lignes.
    # tail -10 
  • NB: head et tail peuvent lire un fichier, à l'instar de cat, si le premier argument fourni est le nom du fichier à ouvrir. 
  • Filtrer selon une expression régulière "foo".
    # grep "foo" 
    Ajouter l'argument -i pour ignorer la casse des caractères (les majuscules). Exemple :
    # lspci | grep vga -i 
    (sort all buses contening "vga" and ignore chars breaking).

Droits Unix


  • Change le propriétaire du fichier ou du dossier
    # chown new_owner /path 
  • Change le groupe d'un fichier
    # chgrp new_group /path 
  • Change les droits, sur un dossier ou un fichier, selon des droits en lecture, écriture et exécution. 
  • Les droits s'écrivent, soit avec des lettres:
    # chmod u=rwx,g=rx,o=r /path 
  • Soit par l'addition des chiffres :
    # chmod 751 /path


Les types d'utilisateurs

Utilisateur (propriétaire) noté U (user)
Groupe associé noté G (groups)
Autres noté O (other)

Les types de droits

Lecture noté R (reading)chiffre : 4
Écriture noté W (writing)chiffre : 2
Exécution noté X (executing)chiffre : 1
Aucun noté -chiffre : 0

Aucun commentaire:

Enregistrer un commentaire