Trucs & astuces
Vérifier le type d'un fichier
Si vous ne savez plus ce que contient un fichier, utilisez la commande file qui vous le dira, parfois de façon très détaillée.
Exemples :
$ file toto.txt toto.txt: ASCII text $ file "01 - Surfing With the Alien.ogg" 01 - Surfing With the Alien.ogg: Ogg data, Vorbis audio, stereo, 44100 Hz, ~160000 bps, created by: Xiph.Org libVorbis I (1.1.0 RC1)
Lister les partitions du disque dur
Pour obtenir la liste des partitions de vos disques, tapez
fdisk -l
Faire une calculatrice sous bash
On peut facilement faire des calculs directement en ligne de commande. Attention, ça ne fonctionne qu'avec des nombres entiers.
# echo $((1 + 2 * 3 )) # 7 Ca marche aussi avec des variables. # i=5; echo $(( $i + $i )) # 10 Le plus efficace reste quand même d'utiliser "bc".
Voir le partage de connexions
Pour voir les connexion en cours sur votre machine tapez :
netstat -M
Rechercher un texte dans plusieurs fichiers
si tous les fichiers sont dans le même répertoire
# grep "mon_texte" *
On va alors obtenir la liste des fichiers qui contiennent le texte, suivie de la ligne du fichier contenant le texte.
Pour voir le numéro de la ligne concernée on mettra grep -n.
Pour ne voir que le nom des fichiers on mettre grep -l.
si les fichiers sont dans des répertoires différents
# find . -type f -exec grep -l "mon_texte" {} \;
explication :
- find . => rechercher à partir du répertoire courant
- -type f => on cherche un fichier
- -exec => à chaque fichier trouvé on exécute la commande qui suit
- grep -l "mon_texte" {} => on recherche "mon_texte" dans les fichiers ({} remplace le nom des fichiers trouvés) et on affiche le nom du fichier
- \; => fin de l'option exec
'remarques : cette procédure n'affiche que le nom des fichiers, mais pas la ligne de texte correspondante. Si on veut voir la ligne de texte, il faut retirer l'iption "-l", mais dans ce cas on ne voit plus le nom du fichier... On peut encore remplacer "-l" par "-n", dans ce cas on voit la ligne de texte avec le numéro de ligne, mais là encore, on ne voit plus le nom du fichier. Je n'ai pas trouvé de moyen simple (sans passer par un script) d'afficher à la fois le nom du fichier et la ligne de texte. Si quelqu'un sait faire, ça m'intéresse ;-).
Dernière connexion
Pour savoir quand l'utilisateur fred s'est connecté la dernière fois :
lastlog -u fred
Surveiller à intervalles réguliers
La commande watch permet de voir le résultat d'une commande à intervalles réguliers :
watch cat /proc/meminfo
==> permet de voir l'évolution de la mémoire
watch -n 6 ls /home/fred
==> permet de voir le contenu de /home/fred (utile pour voir la progression d'une copie de fichiers par exemple). L'option -n 6 permet de rafraîchir toutes les 6 secondes (2 secondes par défaut).
Geler / dégeler un terminal
pour geler :
ctrl-s
pour dégeler :
ctrl-q
Ignorer les alias
Si vous voulez utiliser une commande sans passer par les alias pour retrouver ses paramètres par défaut, précédez la d'un \. Par exemple :
\ls
Code ASCII d'une touche
Pour connaitre le code ASCII d'une touche, faites : showkey -a puis appuyez sur la/les touche(s) désirées. Tapez ctrl-d pour sortir.
Concaténer des PDF
Pour concaténer des fichiers PDF :
texexec --pdfarrange --result=fic-final.pdf fic1.pdf fic2.pdf fic3.pdf
changer la résolution de l'écran en mode texte
Lorsqu'on est sur un serveur, on est souvant en mode texte. Par défaut, on est en 640x480, ce qui n'est pas toujours pratique. Avec grub, on peut facilement changer ça en éditant le fichier /boot/grub/menu.lst, et en ajoutant "vga=711" à la fin de la ligne qui commence par "kernel". La valeur "771" est à adapter en fonction du tableau ci-dessous. La modification ne sera prise en compte qu'au prochain reboot.
Exemple de ligne sur CentOS 5.3 pour passer en 800x600 en 8 bits :
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/vg00/lvroot vga=771
640x480 | 800x600 | 1024x768 | 1280x1024 | 1600x1200 | demander à l'utilisateur | |
8 bits | 769 | 771 | 773 | 775 | 796 | ask |
16 bits | 785 | 788 | 791 | 794 | 798 | ask |
32 bits | 786 | 789 | 792 | 795 | 799 | ask |