Kit de survie Linux

http://www.commentcamarche.net/faq/8386-kit-de-survie-linux

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 “http://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_