Commandes diverses

  1. locate
    Fonction de recherche d'un motif dans les fichier enregistrés dans une base de données. Elle est beaucoup plus rapide que find qui parcourt récursivement l'arborescence.
    locate gcc
  2. xargs
    La commande find est indispensable pour rechercher des fichiers. Je l'utilise souvent avec xargs et grep pour des recherches non-triviales. Par exemple, pour déterminer toutes les lignes des fichiers *.tex modifiés depuis moins d'un mois dans mon répertoire ~/tex contenant les mots 'suite' ou 'Suite':
    find ~/tex -mtime -30 -name '*.tex' | xargs grep -n [Ss]uite | less
    xargs prend la sortie standard de find et l'utilise comme liste d'arguments de la commande grep.
    Pour l'exemple ci-dessus, on peut également utiliser l'option exec de find:
    find ~/tex -mtime -30 -name '*.tex' -exec grep [Ssuite] {} \;
    En effet, après -exec, on peut placer une commande quelconque qui s'exécute sur chaque fichier trouvé (symbolisé par {}. La commande doit être terminée par \;.

    Un autre exemple: pour créer un fichier compil.log dans lequel on concatène tous les fichiers *.log du répertoire courant, on peut par exemple utiliser:
    ls -F *.log | xargs cat > compil

  3. which
    Permet de trouver le chemin d'accès d'un programme se trouvant dans un répertoire du $PATH
    which perl
    /usr/bin/perl
  4. fuser
    Permet de trouver quels processus utilisent un fichier (qui peut être également un périphérique). Très utile si une ressource inconnue utilise par exemple le cdrom et qu'on veuille le démonter...
    /usr/sbin/fuser -ma /dev/cdrom
    Voir aussi lsof qui affiche les fichiers ouverts : man lsof
  5. ldd
    La commande ldd permet de voir quelles bibliothèques partagées utilise un exécutable:
    ldd /usr/bin/perl

    libnsl.so.1 => /lib/libnsl.so.1 (0x4001e000)
    libdb.so.3 => /lib/libdb.so.3 (0x40036000)
    libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x40074000)
    libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
    libm.so.6 => /lib/libm.so.6 (0x4007d000)
    libc.so.6 => /lib/libc.so.6 (0x4009c000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x40196000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

  6. diff-patch
    diff permet de voir les différences entre deux fichiers ascii (lignes ajoutées, retirées), et si l'on produit un fichier de ces différences, on peut utiliser la commande patch qui permet de mettre à jour l'ancien fichier.
    diff fichier.old fichier > fichier.diff

    Remarque: L'interface graphique tkdiff est très bien faite: elle affiche les deux fichiers en parallèle et colore les changements entre les fichiers.
  7. du
    Permet de voir (récursivement) l'utilisation en espace d'un répertoire ainsi que tous les fichiers et sous-répertoires qu'il contient.
    du /opt
  8. df
    Visualise les différents disques montés, ainsi que l'espace occupé-disponible.
    df
  9. sync
    Enregistre sur disque les tampons des systèmes de fichiers. J'ai eu quelques problèmes avec mon graveur de cd qui bloquait X et mon clavier m'obligeant à rebooter dans un état instable. Depuis, je lance régulièrement sync pour mettre à jour les données sur le disque...
    sync

Retour
Bash Index Soyeur
Alain Soyeur
Last modified: Sun Oct 24 11:10:10 CEST 1999