Kit de survie Linux

Mémo des commandes usuelles

Vous trouverez ci-dessous un mémento des commandes Linux usuelles (ou pas) qu'on a tous en tête, plus ou moins, mais dont on oublie souvent un bout de syntaxe, quand ce n'est pas la syntaxe entière, et, pour certaines même, dont on avait totalement oublié l'existence, quand ne l'ignorait pas, tout simplement...

Merci à tou(te)s de compléter cette liste ainsi que celle des catégories.

Notes à l'attention des futurs contributeurs :

  • Ceci n'est pas un tutoriel mais juste un aide mémoire, à ce titre ne mettez qu'un descriptif le plus succinct possible suivi par la commande.
  • Essayer pour les commandes systèmes nécessitant les droits du superutilisateur "root" de faire précéder ces commandes par le caractère dièse (#) représentatif du "root" et par le caractère dollar ($) pour les commandes ne nécessitant aucun droit particulier et pouvant être exécutées par un simple utilisateur.

Notes à l'attention des lecteurs :

  • Pour les systèmes basés sur Ubuntu lorsqu'une commande nécessite les droits du superutilisateur "root" (représenté ci-dessous par le caractère dièse (#) représentatif du "root"), faites précéder cette commande par "sudo".

Sommaire

Manuel et aide

Les pages de man

Afficher la page de man d'une commande

  • $ man commande

Rechercher les pages faisant référence à un mot-clé ("mot-clé" peut être un mot simple ou le nom d'une commande)

  • $ man -k mot-clé
  • $ apropos commande/mot-clé

Documentation supplémentaire avec info (pour certaines pages)

  • $ info commande

Aide en ligne

Type d'une commande (alias, mot-clé réservé au shell, fonction, commande interne ou simple fichier sur le disque)

  • $ type commande
  • $ type -t commande

Afficher l'aide sommaire d'une commande interne (builtin)

  • $ help commande

Afficher l'aide sommaire d'une commande externe

  • $ commande --help
  • $ commande -h

Opérations sur les fichiers et répertoires

Affichage

Affichage d'un fichier

  • $ cat fichier

Affichage page par page (touche "Espace" avance d'une page, touche "Entrée" avance d'une ligne)

  • $ more fichier

Affichage ligne par ligne (flêche haut <=> flêche bas)

  • $ less fichier

Afficher les 5 dernières lignes d'un fichier

  • $ tail -5 fichier

Lire en temps réel les 5 dernières lignes d'un fichier

  • $ tail -5f fichier

Afficher le 5 premières lignes d'un fichier

  • $ head -5 fichier

Afficher un fichier à l'envers

  • $ tac fichier

Numéroter un fichier en sortie

  • $ cat -n fichier
  • $ nl fichier

Connaitre le type d'un fichier

  • $ file fichier

Lister un répertoire

  • $ ls
  • $ ls -l

Affichage récursif

  • $ ls *
  • $ ls -R 

Afficher les fichiers cachés

  • $ ls -a 

Afficher le fichier en supprimant le caractère '0'

  • $ tr -d "0" < fichier

Afficher le fichier en remplaçant le caractère '0' par "gag"

  • $ sed ' s/0/gag/g' fichier

Création

Créer un fichier vide

  • $ > fichier
  • $ touch fichier

Créer 10 fichiers vides

  • $ touch fichier{1..10}.txt

Créer un répertoire

  • $ mkdir répertoire

Créer un répertoire et ses sous-répertoires

  • $ mkdir -p rep_parent/rep1/rep2/rep3

Redirection

Dans un fichier

  • $ ls -R  /home/$USER/*.txt > liste.txt

Dans un fichier mais en ajoutant à la suite

  • $ ls -R  /home/$USER/*.txt >> liste.txt

À la fois à l'écran et dans un fichier

  • $ ls -R  /home/$USER/*.txt | tee liste.txt

À la fois à l'écran et dans un fichier mais en ajoutant à la suite

  • $ ls -R  /home/$USER/*.txt | tee -a liste.txt

Copier

Copier un fichier

  • $ cp fichier_source fichier_destination

Copier un ensemble de fichiers

  • $ cp /répertoire_source/*.html /répertoire_destination

Copier un répertoire

  • $ cp -R /répertoire_source /répertoire_destination

Déplacer

Déplacer un fichier

  • $ mv -i  /chemin/fichier /chemin

Déplacer un répertoire

  • $ mv /chemin/rep_à_déplacer/ /chemin/destination/

Renommer

Renommer un fichier

  • $ mv fichier_source fichier_destination>

Comparer

Comparer 2 fichiers

  • $ cmp fichier1 fichier2
  • $ diff fichier1 fichier2
  • $ sdiff fichier1 fichier2

Comparer 3 fichiers

  • $ diff3 fichier1 fichier2 fichier3

Trier

Trier alphabétiquement

  • $ sort fichier

Trier numériquement

  • $ sort -n  fichier

Éliminer les doublons

  • $ sort fichier | uniq
  • $ sort -u fichier

Afficher uniquement les doublons

  • $ sort fichier | uniq -d

Archiver/Désarchiver

Archiver un dossier/répertoire

  • $ tar -vcf nom_archive.tar nom_dossier_à_archiver

Désarchiver un dossier/répertoire

  • $ tar -vxf mon_archive.tar

Lister le contenu d'une archive

  • $ tar -tf mon_archive.tar

Compresser/Décompresser

Compresser une archive (sans sauvegarde de l'original)

  • $ compress mon_archive.tar
  • $ gzip mon_archive.tar
  • $ bzip2 mon_archive.tar

Compresser une archive (avec sauvegarde de l'original)

  • $ compress -c mon_archive.tar > mon_archive.tar.Z
  • $ gzip -c mon_archive.tar > mon_archive.tar.gz
  • $ bzip2 -k mon_archive.tar

Décompresser une archive

  • $ uncompress mon_archive.tar.Z
  • $ gunzip mon_archive.tar.gz
  • $ bunzip2 mon_archive.tar.bz2

Décompresser et Désarchiver

Une archive tar.gz

  • $ tar xvzf mon_archive.tar.gz

Une archive tar.bz2

  • $ tar xvjf mon_archive.tar.bz2

Compter

Compter les caractères d'un fichier

  • $ wc -c fichier

Compter les mots d'un fichier

  • $ wc -w fichier

Compter les lignes d'un fichier

  • $ wc -l fichier
  • $ sed -n '$=' fichier

Rechercher

Fichiers

Rechercher un fichier

  • $ find /chemin -name "nom" -print

Rechercher un motif dans une arborescence ( en affichant le chemin, le nom du fichier et le numéro de ligne dans ce fichier)

  • $ find /chemin -name "*" -type f -exec grep -Hn  "motif" {} \;

Mettre la base de slocate à jour

  • # updatedb

Rechercher un fichier indexé

  • $ locate nom

Un motif dans un fichier

  • $ grep "motif" fichier

Commandes

Localiser une commande

  • $ which commande

Rechercher les fichiers exécutables

  • $ whereis commande

Rechercher le nom du fichier qui sera exécuté à l'appel de commande

  • $ type -p commande

Utilisateurs

Qui est connecté ?

  • $ who
  • $ finger

Qui est connecté et qui fait quoi ?

  • $ w

Qui suis-je ?

  • $ whoami

Où suis-je ?

  • $ pwd

Dépendances

Afficher les bibliothèques nécessaires à un programme

  • ldd /chemin/programme

Administration système

Gestion système

Activité du système

  • $ top

État des processus

  • $ ps -ef

Taux d'occupation du disque

  • $ df -h

Taux d'utilisation du disque

  • $ du -h /home/$USER

Gestion des utilisateurs

Ajouter un utilisateur

  • # useradd new_user

Supprimer un utilisateur

  • # userdel user

Ajouter un groupe

  • # groupadd new_groupe

Supprimer un goupe

  • # groupdel groupe

Changer le propriétaire d'un répertoire

  • # chown $USER /chemin/repertoire

Changer son mot de passe

  • $ passwd

Changer le mot de passe d'un utilisateur

  • # passwd login

Afficher les groupes auxquels appartient un utilisateur

  • $ groups $USER

Information utilisateur

  • $ finger $USER

Réseau

Information matériel

Connaitre le module d'une carte

  • # ethtool -i eth0

Plus d'infos

  • # udevinfo -a -p /sys/class/net/eth0/

Liste des interfaces détectées par le noyau

  • $ /sbin/ifconfig
  • $ /sbin/ip link show

Informations pour le sans-fil

  • # iwconfig

Outils supplémentaires

  • # mii-tool eth0
  • # mii-diag -a

Tests et mesures

Tester l'adresse locale

  • $ ping -c4 localhost

Pinger une adresse réseau

  • $ ping -c4 Adresse_IP

Vérifier les adresses MAC du LAN

  • # nmap -sP 192.168.1.1-254

Configuration

Configurer une adresse

  • # ifconfig eth0 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255

Ajouter une passerelle par défaut

  • # route add default gw nom_passerelle

Empêcher le ping

  • # echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

Connexion

ssh

  • $ ssh login@serveur

telnet

  • $ telnet adresse_IP

scp

  • $ scp /chemin/fichier login@serveur:/chemin/destination/

Connaitre son matériel

Système

Noyau

  • $ uname -r

Système d'exploitation

  • $ uname -o

Processeur

Type de processeur

  • $ uname -p

Informations détaillées

  • $ cat /proc/cpuinfo

Charge moyenne du processeur

  • $ cat /proc/loadavg

Mémoire

Informations détaillées

  • $ cat /proc/meminfo

Afficher l'état

  • $ free -m

Descriptif matériel

Ressources matérielles

  • # dmidecode

Liste matérielle

  • # lshw
  • # lshw -html > fichier.html
  • # lshal

Liste des cartes PCI

  • $ lspci -v

Liste des périphériques USB

  • # lsusb

Résolution d'écran

  • $ xrandr -q

Vérification prise en charge matérielle

Lister les codes fabricants et périphériques PCI

  • $ lspci -n

Coller le résultat sur "https://kmuto.jp/debian/hcl/" et cliquer sur "Check"

Périphériques inconnus (unknow) ?

  • # scanpci -v

Relever dans le descriptif de l'élément en question, son code "vendor" (0xXXXX) ainsi que son code "device" (0xYYYY, puis rendez vous sur le site "PCIDatabase.com" pour en déterminer le constructeur et le périphérique inconnu.

Bios

Information sur le Bios

  • # biosdecode

Module

Afficher les modules chargés

  • $ /sbin/lsmod

Afficher la listes des modules

  • $ /sbin/modprobe -l

Charger un module

  • # insmod chemin_vers_module
  • # modprobe nom_module

Supprimer un module

  • # rmmod nom_module
  • $ modprobe -r nom_module

Obtenir des infos sur un module

  • $ /sbin/modinfo nom_module

NOTES: insmod charge un module avec partir du chemin vers son fichier. Par exemple si vous voulez charger le module machin.ko situé dans le répertoire courant, alors tapez insmod ./machin.ko
Pour le décharger: rmmod machin (sans ./ko derrière). insmod ne gère pas les dependances, donc si votre module a besoin d'un autre pour se charger, insmod ne le chargera pas pour vous. Insmod est plutôt un outil de développement.
La commande modprobe est plus intelligente. Prenant en paramètre un nom de module (sans le .ko en suffixe), elle va chercher le module dans le répertoire /lib/modules/`uname -r` et le charger ainsi que ses dépendances.

Disque dur

Table des partitions

  • $ /sbin/fdisk -l

Informations disque

  • # hdparm -I /dev/xxx

(si smartmontools est installé)

  • # smartctl -i /dev/xxx

Test disque

  • # smartctl -t short /dev/xxx

Sauvegarder la table des partitions (MBR)

  • # dd if=/dev/hdx of=/chemin/sauvegarde.dd bs=512 count=1

Sauvegarder la table des partitions de la partition étendue

  • # sfdisk -d /dev/hdx > /chemin/save_etendue.sf

Restaurer la table des partitions (MBR)

  • # dd if=/chemin/sauvegarde.dd of=/dev/hdx

Restaurer la table des partitions de la partition étendue

  • # sfdisk /dev/hdx < /chemin/save_etendue.sf

Déterminer l'UUID d'un disque (Universal Unique IDentifier)

  • $ ls -l /dev/disk/by-uuid
  • # vol_id -u /dev/sda1
  • # blkid

Ajouter/retirer un périphérique de swap

  • # swapon chemin_périphérique
  • # swapoff chemin_périphérique

CD/DVD/Graveur

Trouver l'adresse SCSI du graveur

  • $ cdrecord --scanbus 
  • $ cdrecord --scanbus dev=ATA 

Débloquer le graveur
Si pour une raison ou pour une autre le graveur ne répond plus à aucune commande, renvoie des messages d'erreur et refuse de s'ouvrir même en appuyant sur le bouton d'éjection, alors vous pouvez utiliser cdrdao pour le réinitialiser

  • # cdrdao unlock --device y,z

Température (lm_sensors)

Recherche des capteurs

  • $ sensors-detect

Chargement des modules

  • # modprobe i2c-xxx i2c-yyy i2c-zzz

Affichage température

  • $ sensors

Multimédia

Conversion de format vidéo

avi => flv

  • $ ffmpeg -i video.avi -f flv video.flv

flv => avi

  • $ ffmpeg -i video.flv -f avi video.avi

wmv => avi

  • $ ffmpeg -i video.wmv -f avi video.avi

avi => SVCD

  • $ ffmpeg -i video.avi -target pal-SVCD video.mpeg

Capture d'écran

Avec ImageMagcik

  • $ import -pause 5 capture.png

Conversion de formats graphiques

GIF => PNG

  • $ convert  fichier_d_entree.gif fichier_en_sortie.png

JPG => PNG

  • $ convert  fichier_d_entree.jpg fichier_en_sortie.png

etc.

Redimensionnement d'images

Avec ImageMagcik

Dans les exemples ci-dessous, le format d'entrée peut être un autre format que PNG, les dimensions peuvent être modifiées :

  • Redimensionnement à une taille donnée
    • $ convert  fichier_d_entree.png  -resize 320x200 fichier_en_sortie.png
  • Redimensionnement à une largeur donnée
    • $ convert  fichier_d_entree.png  -resize 320x fichier_en_sortie.png
  • Redimensionnement à une hauteur donnée
    • $ convert  fichier_d_entree.png  -resize 320x fichier_en_sortie.png
  • Redimensionnement de la première image d'un GIF animé
    • $ convert  fichier_d_entree.gif[0]  -resize 320x200 fichier_en_sortie.gif
  • Redimensionnement en forçant la valeur du fond transparent (afin d'éviter un fond noir peu esthétique). Ici le fond est forcé en blanc :
    • $ convert  fichier_d_entree.png  -resize 320x200 -background white -flatten fichier_en_sortie.png

Divers

Afficher un calendrier du mois en cours

  • $ cal

Afficher un calendrier annuel

  • $ cal 2008
Cet article est régulièrement mis à jour par des experts sous la
direction de Jean-François Pillou, fondateur de CommentCaMarche.
Ce document intitulé « Kit de survie Linux » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.