Commandes Linux diverses

Recherches sur fichiers

Affiche toutes les occurences du terme "myInstance" dans les fichiers java du répertoire "src"

$ find src -type f -name "*java" -exec grep -nH "myInstance" {} \;

Le paramètre -type f indique que nous cherchons uniquement des fichiers.
Le paramètre -name "*java" cherche sur le nom de fichier terminant par java. A noter qu'il existe également le paramètre -iname pour les recherches insensibles à la casse.
-exec permet de lancer une commande sur le nom de fichier trouvé. Le nom du fichier est appelé par '{}' et à vous de voir pour le reste de la commande. Le ';' indique au find la fin de la commande lancée avec -exec

Et pour n'avoir les fichiers que de façon unique (sans affichage des doublons) :

$ find src -type f -name "*java" -exec grep -nH "myInstance" {} \; | cut -d":" -f1 | sort | uniq

Comme précédemment mais avec le nombre d'occurences du terme "myInstance" dans ces fichiers :

$ find src -type f -name "*java" -exec grep -nH "myInstance" {} \; | cut -d":" -f1 | sort | uniq -c

Infos sur disques

Humm, je suis sur que ce répertoire est très gros. Dois-je le mettre au régime (disk usage)?

$ du -hs /path/to/directory
>>>168G   /path/to/directory

Et pour lister les sous répertoires de /path/to/directory dans l'ordre croissant de la taille utilisée (pratique pour trouver le responsable)

$ du -s /path/to/diretory/* | sort -n
>>>10003000   /path/to/directory/dir1
>>>13000203   /path/to/directory/file1.txt
>>>145000000   /path/to/directory/dir2

Mais combien me reste-t-il d'espace disque?

$ df -h

Je m'attaque à mon fstab. Oh mais quel est l'UUID de mes disques?

$ sudo blkid

Informations sur le(s) disque(s)

$ sudo fdisk -l

Chercher un fichier dans le système

$ locate nginx.conf
>>>/etc/init/nginx.conf
>>>/etc/nginx/nginx.conf

Ou sans s'occuper des majuscules/minuscules

$ locate -i NGINX.conf
>>>/etc/init/nginx.conf
>>>/etc/nginx/nginx.conf

A noter que locate se base sur un index généré par la commande 'updatedb' lancée automatiquement, mais rien ne vous empêche de le faire manuellement.

Réseaux

En plus des commandes classiques pour lister les interfaces ifconfig, iwconfig, il est intérressant de savoir ce qui se passe avec son réseaux:

  • iftop un top pour le reseaux et voir en temps réel les connexions
  • netsat -laputen pour lister les ports utilisés
  • nmap -sn 192.168.10.1/24 pour trouver des hotes sur le réseau et voir beaucoup plus avec nmap.
  • une autre possibilité pour trouver ces voisins est de lister le cache de la table arp soit par arp -a ou bien ip neigh show. Cette dernière commande peut être agrémentée de plusieurs options pour filtrer par masque réseau (192.168.1.0/24 par exemple) ou bien par interface (dev eth0) et pleins d'autres.
  • Un lien bien utile pour un recap des commandes, une cheat sheet de redhat.

Autres

Pour blocker le touchpad 1/2 seconde quand on tape au clavier (à ajouter au démarrage):

$ sudo syndaemon -i 0.5 -K -d

La commande watch, pour executer une commandes toutes les n secondes (par exemple un ls toutes les 5 secondes où on attend un fichier):

$ watch -n 5 ls -la