Kit de survie Linux extrait du site https://www.commentcamarche.net/faq/8386-kit-de-survie-linux
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 on ne l'ignorait pas, tout simplement…
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
Afficher la page détaillant l'écriture et des paramètres d'une commande et leurs fonctions
$ 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
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
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é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
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 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 un fichier
$ mv -i /chemin/fichier /chemin
Déplacer un répertoire
$ mv /chemin/rep_à_déplacer/ /chemin/destination/
Renommer un fichier
$ mv fichier_source fichier_destination>
Comparer 2 fichiers
$ cmp fichier1 fichier2
$ diff fichier1 fichier2
$ sdiff fichier1 fichier2
Comparer 3 fichiers
$ diff3 fichier1 fichier2 fichier3
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 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 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
Une archive tar.gz
$ tar xvzf mon_archive.tar.gz
Une archive tar.bz2
$ tar xvjf mon_archive.tar.bz2
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 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
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
Qui est connecté ?
$ who
$ finger
Qui est connecté et qui fait quoi ?
$ w
Qui suis-je ?
$ whoami
Où suis-je ?
$ pwd
Afficher les bibliothèques nécessaires à un programme
ldd /chemin/programme
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
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
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
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
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
ssh
$ ssh login@serveur
telnet
$ telnet adresse_IP
scp
$ scp /chemin/fichier login@serveur:/chemin/destination/
Noyau
$ uname -r
Système d'exploitation
$ uname -o
Type de processeur
$ uname -p
Informations détaillées
$ cat /proc/cpuinfo
Charge moyenne du processeur
$ cat /proc/loadavg
Informations détaillées
$ cat /proc/meminfo
Afficher l'état
$ free -m
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
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”
# 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
# biosdecode
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.
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
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
Recherche des capteurs
$ sensors-detect
Chargement des modules
# modprobe i2c-xxx i2c-yyy i2c-zzz
Affichage température
$ sensors
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
Avec ImageMagcik
$ import -pause 5 capture.png
GIF ⇒ PNG
$ convert fichier_d_entree.gif fichier_en_sortie.png
JPG ⇒ PNG
$ convert fichier_d_entree.jpg fichier_en_sortie.png
etc.
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
Afficher un calendrier du mois en cours
$ cal
Afficher un calendrier annuel
$ cal 2008