Trucs & astuces

De UnixManiax
Aller à la navigation Aller à la recherche
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.


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