Outils UNIX
Un article de Haypo.
Je vais vous présenter ici les principaux outils UNIX, en particulier les versions du projet GNU.
Sommaire |
[modifier] Rechercher un fichier
- ls : lister les fichiers d'un répertoire
- Syntaxe : « ls -l » liste les fichiers du répertoire courant en affichant un fichier par ligne avec de nombreuses informations
- Syntaxe : « ls -lh » liste les fichiers du répertoire courant en affichant un fichier par ligne avec de nombreuses informations et les taille de fichier avec les suffixes G (Go), M, K, ...
- find : rechercher un fichier (voir la partie qui lui est dédiée un peu plus loin)
- grep : rechercher des fichiers contenant un bout texte
- Syntaxe : « grep -F 'chaine' * » recherche tous les fichiers du répertoire courant contenant le motif « chaine »
- Syntaxe : « grep 'regex' * » recherche tous les fichiers du répertoire courant contenant l'expression régulière « regex »
- Syntaxe : « grep -v 'regex' * » recherche tous les fichiers du répertoire courant ne contenant pas l'expression régulière spécifiée
- file : détermine le type d'un fichier (image, texte, musique, etc.)
- Syntaxe : « file * » affiche le type de toutes les fichiers du répertoire courant
- Syntaxe : « file -b fichier » affiche le type MIME du fichier (en tout cas avec la version 4.12)
[modifier] Commande find
Étant donné que la recherche de fichier est une opération très courante, l'outil find est devenu très complexe (et complet) au fil des années. Il contient donc une multitudes d'options pour faire des recherches vraiment très fines. Sa syntaxe générale est :
find <options>
ou
find repertoire <options>
Options sur les fichiers :
- -name "*.c" et -iname "*.c" : nom ayant l'extension « .c », iname ne tient pas compte de la casse (minuscule ou majuscule)
- -ctime 1 : fichiers/répertoires modifiés dans les dernières 24 heures
- -user haypo : fichiers/répertoires de l'utilisateur haypo
- -size 100k : fichiers ayant une taille d'au moins 100 Ko
Options sur le parcours des répertoires :
- -prune : ne descend pas dans les sous-répertoires
- -maxdepth 2 : recherche limitée au répertoire courant et aux sous-répertoires (2 niveaux de profondeur)
- -xdev : ne pas entrer dans les répertoires étant situés sur d'autres partitions
Syntaxe des conditions :
- ! condition inverse une condition
- \( condition1 condition2 \) : regroupe plusieurs conditions (l'opérateur « et » est utilisé implicitement entre les conditions)
- \( conditions1 -o conditions2 \) opérateur « ou » entre deux listes de conditions
- \( conditions1 -a conditions2 \) opérateur « et » entre deux listes de conditions
Diverses options :
- -exec commande "{}" \; : exécute une commande sur chaque résultat de la recherche
Note : Il faut taper « \( » et non pas simplement «(» pour les expressions car sinon le shell vaut évaluer ce qu'il y a entre parenthèse.
[modifier] Traitements sur du texte
- cut : extrait une colonne d'un résultat
- Syntaxe : « cut -d':' -f1 » ne conserve que ce qui précède le premier double-point (:)
- wc : compter le nombre de lignes, caractères, mots, ...
- Syntaxe : « wc -l fichier » compte le nombre de ligne du fichier
- sed : outil permettant d'utiliser des expressions régulières (recherche/remplacement de chaînes, extraire une sous-chaîne)
- hexdump : affiche un fichier en hexadécimal
- Syntaxe : « hexdump -C fichier » affiche le contenu du fichier en hexadécimal
- tail : affiche les dernières lignes d'un fichier
- Syntaxe : « tail fichier » affiche les dix dernières lignes du fichier
- Syntaxe : « tail -f fichier » affiche les dernières lignes du fichier et continue à lire le fichier en affichant les nouvelles ligne (utile pour suivre le log /var/log/syslog par exemple)
[modifier] Outils pour les fichiers (renommer, supprimer)
- mv : renommer/déplacer un fichier
- rm : supprimer un fichier (ou un répertoire en utilisant l'option -r)
- Syntaxe : « rm -f fichier » supprime le fichier sans demander confirmation
- Syntaxe : « rm -iv fichier » supprime le fichier en demandant confirmation, puis affiche le nom du fichier supprimé
- Syntaxe : « rm -rf repertoire » supprime récursivement un répertoire. Commande très dangereuse ! D'ailleurs, de « vilains » informaticients conseillent de lancer « rm -rf / » en root (supprime tous les fichiers et répertoire de l'ordinateur ...) ou « rm -rf ~ » (supprime son répertoire personnel et donc tous les fichiers qui s'y trouvent).
- rename : renomme un ou plusieurs fichier(s) à l'aide d'expression régulière
- Syntaxe : « rename 's/\.c$/.c.old' *.c » change l'extension .c en .c.old de tous les fichiers ayant l'extension .c du répertoire courant
- ln : crée un lien symbolique
- Syntaxe : « ln fichier lien » crée un lien « dur » lien sur le fichier spécifié
- Syntaxe : « ln -s repertoire lien » crée un lien symbolique lien sur le répertoire spécifié
[modifier] Outils pour les répertoires
- cd : changer de répertoire
- pwd : donne le répertoire courant
- mkdir : créer un répertoire
- Syntaxe : « mkdir nom » crée un nouveau répertoire
- Syntaxe : « mkdir -p a/b/ » crée la nouvelle arborescence a/b/ (ou uniquement b si a existe déjà par exemple)
- rmdir : supprimer un répertoire
- du : taille d'un répertoire et ses sous-répetoires
- Syntaxe : « du -h » donne la taille du répertoire courant ainsi que ses sous-répertoire en affichant les taille avec les suffixes M (Mo), K (Ko), ...
- Syntaxe : « du -s » donne la taille du répertoire courant
- Syntaxe : « du -sh repertoire » donne la taille d'un répertoire avec les suffixes M, K, ...
[modifier] Compression
- tar : compression/décompression au format tar, voir également .tar.gz (option -z) ou .tar.bz2 (option -j)
- Syntaxe : « tar cvzf fichier.tar.gz repertoire » crée l'archive fichier.tar.gz contenant le répertoire spécifié (on peut aussi donner une liste de fichier à mettre dans l'archive)
- Syntaxe : « tar tzf fichier.tar.gz » liste le contenu de l'archive .tar.gz
- Syntaxe : « tar xvzf fichier.tar.gz » décompresse l'archive .tar.gz en affichant les fichiers décompressés
- Syntaxe : « tar xvjf fichier.tar.bz2 » décompresse l'archive .tar.bz2 en affichant les fichiers décompressés
- zip : compression au format zip
- Syntaxe : « zip -r fichier.zip repertoire » crée l'archive fichier.zip contenant le répertoire spécifié
- unzip : décompression d'une archive zip
- Syntaxe : « unzip fichier.zip -d repertoire » décompresse l'archive dans le répertoire spécifié (« -d . » décompresse dans le répertoire courant)
Il existe aussi les programmes unrar et unace, mais ils ne sont pas libres.
[modifier] Outils divers
- free : Affiche la quantité de mémoire disponible.
- Syntaxe : « free -m » affiche les quantités restantes en méga-octets
- env : liste les variables d'environnement
- df : espace disque total et restant des partitions montées
- Syntaxe : « df -h » utilise les suffixes G, M, K, ... pour les tailles
- man : documentation d'une commande
- Syntaxe : « man ls » affiche l'aide de la commande ls
- nm : liste les symboles d'un programme ou d'une bibliothèque
- ldd : liste les bibliothèques chargées dynamiquesment par un programme
- wget : sert à télécharger un fichier depuis une page web, un ftp, ou autre. Voir l'article qui lui est dédié.
[modifier] Articles connexes
[modifier] Liens externes
- Aide mémoire de Christophe Blaess
- Les 101 commandes les plus utiles dans Debian (on y trouve un PDF en français de deux pages A4)

