Apprendre Les 101 Commandes Indispensables Sous Linux

cat

  • lire le contenu d'un fichier texte cat monfichier.txt.

less

  • fonctionnement similaire à cat, mais affiche le fichier page par page. C'est donc plus pratique pour les longs fichiers.

head

  • affiche l'en-tête d'un fichier, l'option -n permet de spécifier le nombre de lignes à afficher.

tail

  • semblable à head, mais concerne la « queue » du fichier, en d'autres termes, cette commande n'affiche que la fin. Une option très appréciable -f pour follow, permet de mettre à jour en temps réel l'affichage de la fin du fichier, ce qui est fort pratique pour suivre l'évolution d'un fichier de logs par exemple ;).

touch

  • crée un fichier. Il suffit de faire touch nom_du_fichier. Comme Franckito le précise dans les commentaires touch a pour but premier de modifier l'horodatage d'un fichier. Si vous faites touch sur un fichier qui existe déjà, cela actualisera ses dates de dernier accès et modification.

mkdir

  • crée un dossier, le fonctionnement est le même que celui de la commande touch. mkdir nom_du_dossier.

cp

  • copy, fait une copie d'un fichier. L'option -R permet de réaliser des copies de dossiers entiers.
Sélectionnez1.2.3.4.cp fichier_original copie_du_fichier # on peut aussi placer la copie directement dans un autre dossier cp fichier_original nom_du_dossier/copie_du_fichier

mv

  • move, permet de déplacer des fichiers/dossiers. La commande mv s'utilise exactement de la même manière que la commande cp. En outre, cette commande permet aussi de renommer les fichiers et dossiers en changeant simplement leur nom.
Sélectionnezmv mon_fichier mon_fichier_new_name

rm

  • remove, supprime des fichiers. rm nom_du_fichier. L'option -f force la suppression, l'option -i demande une confirmation avant suppression, enfin l'option -r permet la suppression des dossiers.

rmdir

  • remove directory, supprime un dossier seulement s'il est vide.

ln

  • link, crée un lien entre deux fichiers. L'option -s permet de créer un lien symbolique.
Sélectionnez1.2.3.4.5.#créer un lien en dur ln fichier1 fichier2 #créer un lien symbolique ln -s fichier1 lien_vers_fichier1

wc

  • word count, permet de compter le nombre de lignes, de mots et de caractères dans un fichier texte. Les options sont -l pour line (nombre de lignes), -w pour word (nombre de mots) et -m pour le nombre de lettres. Il y a aussi l'option -c pour avoir la taille du fichier en bits. Pour l'utiliser, on fournit simplement en paramètre l'adresse du fichier texte :
SélectionnezBuzut$ wc -l test.rtf 33 test.rtf

wc permet aussi facilement de savoir combien vous avez de fichiers/dossiers dans un répertoire donné, il suffit pour cela de rediriger la sortie d'un ls vers wc : ls | wc et le tour est joué !

sort

  • trie un fichier texte par ordre alphabétique. L'option -r permet d'effectuer un tri inverse, c'est-à-dire antialphabétique ou décroissant pour les nombres, et l'option -R permet un tri aléatoire, c'est le mode shuffle quoi ;). On n'oubliera pas non plus l'option -u qui permet d'éliminer les doublons. Enfin l'option -o permet de créer un nouveau fichier avec les résultats triés :
Sélectionnezsort -o fichier_trie.txt fichier_en_bordel.txt

uniq

  • la commande uniq permet de dédoublonner un fichier. Il suffit de lui passer en paramètre l'adresse du fichier à dédoublonner et le nom du nouveau fichier à créer.
Sélectionnezuniq doublons.txt no-doublons.txt

cut

  • coupe dans un fichier texte. Pour couper toutes les lignes selon un nombre donné de caractères, on utilisera l'option -c. cut -c 2 conservera seulement les deux premiers caractères. On peut aussi donner un intervalle : cut -c 2-4, alors on conservera uniquement les caractères deux à quatre. Exemple, « anticonstitutionnellement » sera transformé en « ntic ». Il est aussi possible de se servir de délimiteurs pour couper du texte, avec les options -d et -f. Les fichiers au format .csv séparent les différents champs, les colonnes, par des points-virgules ;. Dans un fichier où nous aurions trois champs, le nom, le prénom et la ville, si nous voulons extraire la ville, nous ferions comme ceci cut -d ; -f 3 on indique le délimiteur après -d et le champ après -f (field veut dire champ en anglais).

tar

  • tar est l'utilitaire d'archivage. Il permet de regrouper des fichiers et des dossiers dans une seule archive. Les options intéressantes sont les suivantes : tar -cvf (create, verbose, file) permet de créer une archive, d'afficher tous les détails du processus (mode verbeux) et de tout mettre dans un dossier. Exemple :
Sélectionneztar -cvf nouvelle_archive.tar mon_dossier_a_archiver

Processus inverse, pour « détarrer » une archive, on utilise les options -xvf (eXtract, verbose, file) tar -xvf archive.tar. Les options -tf servent à afficher le contenu d'une archive sans l'ouvrir. Il est aussi possible de compresser et décompresser à la volée les archives tar, il faut ajouter pour cela l'option -z lors de la création ou l'ouverture de l'archive tar -zcvf compress.tar.gz compress/.

gzip

  • permet de compresser une archive tar au format zip. gunzip archive.tar.gz, il suffit ensuite d'utiliser la commande gunzip pour la dézipper.

bzip2

  • fonctionne exactement de la même manière que gzip, mais compresse au format bzip. Pour décompresser l'archive, l'équivalent de gunzip est ici bunzip2.

zcat zmore zless

  • zcat, zmore et zless remplissent les mêmes fonctions que cat, more et less, mais à appliquer aux fichiers compressés.

iconv

  • permet de changer l'encodage d'un fichier. option -f pour préciser l'encodage d'origine et option -t pour celui de destination. Par défaut, iconv renvoie tout sur la sortie standard, donc si vous voulez directement envoyer les résultats dans un fichier, il suffit de faire une petite redirection :
Sélectionneziconv -f UTF-8 -t UTF-17 fichier.txt >> new-encodage.txt

wget

  • copie un fichier distant sur l'ordinateur. wget http://www.site.org/rep/01/fichier.txt.

scp

  • vise à remplir la même fonction que la commande de copie cp, mais elle permet de copier les fichiers de manière sécurisée à travers le réseau; c'est-à-dire entre hôtes distants. De même qu'avec cp, l'option -r permet de copier un répertoire entier. scp ficher_exemple login@ip_ou_adresse:adresse_de_destination.
Sélectionnez1.2.3.4.scp test.txt [email protected]:~/transfert #et pour récupérer un fichier d'un hôte distant scp [email protected]:~/movie.mkv ~/

rsync

  • c'est un utilitaire qui permet de synchroniser entre eux des dossiers. Très pratique donc pour la sauvegarde. C'est pour ma part les options -arv que j'utilise. -a conserve les droits, etc., -r permet la récursivité et -v pour le mode verbeux. Petit exemple de sauvegarde de mes photos de vacances :
Sélectionnezrsync -arv photo backup_photo

Il est utile de préciser que si vous supprimez des fichiers dans le dossier source, rsync ne répercute pas la suppression dans le dossier de sauvegarde si vous ne lui adjoignez pas l'option --delete. Au cas où vous ne désiriez pas supprimer totalement les fichiers, il est possible de les placer dans un dossier séparé, options : --backup --backup-dir= Petit exemple pour la forme :

Sélectionnezrsync -arv photo ~/backup_photo --delete --backup --backup-dir=~/backup_photo/delete

Bien entendu, il est possible de faire une sauvegarde distante.

Sélectionnezrsync -arv photo buzut@monserver:~/backup_photo --delete

Dans le cas d'une sauvegarde distante, il peut s'avérer très avantageux d'activer la compression, ainsi, rsync compresse les fichiers de manière transparente pendant le transfert. Cette option magique a pour petit nom -z comme zip.

Dernière chose, au cas où votre serveur n'écoute pas sur le port 22 en ssh, option -e, exemple pour un ssh sur le port 443 -e 'ssh -p 443'.

file

  • détermine le type d'un fichier indépendamment de son extension. Il suffit de lui fournir en paramètre le fichier à évaluer.

split

  • coupe un fichier en fichiers plus petits (-l préciser un nombre de lignes, -b préciser une taille en bytes (faites suivre la taille de K, M, G, T pour définir une unité différente). Pour créer des fichiers de 300 lignes split -l 300 test.txt, ou des fichiers de 1 MB split -b 1000000 mon_fichier.

sed

  • dans les commandes qui permettent de manipuler du texte, sed est sans conteste l'une des plus puissantes. Remplacement selon une expression régulière, effacement de certaines expressions ou lignes selon un mot-clef donné… Seul inconvénient, qui dit puissance dit aussi complexité. sed ne s'explique pas en deux lignes et c'est pour cela que j'y ai consacré un article entier. Ça vaut le coup !

awk

  • awk est un langage de programmation à elle seule. Cette commande permet la recherche de chaines et l'exécution d'actions en fonction des motifs trouvés. D'une puissance redoutable, elle est aussi assez complexe. Je vous redirige donc vers des tutos en français ici ou là.

locate

  • cette commande permet de localiser un fichier sur le disque dur. locate monfichier.txt. La commande locate est très rapide, car elle retrouve le fichier en consultant une base de données. Elle ne parcourt pas directement le disque dur à la recherche du fichier en question. L'inconvénient de ce procédé est que si le fichier est tout récent, il risque de ne pas encore être indexé, et locate ne vous sera alors d'aucun secours. On peut forcer la mise à jour de la base de données avec la commande sudo updatedb. On peut aussi se tourner vers la commande find.

grep

  • permet d'effectuer des recherches par expressions régulières. Dans sa forme la plus simple, grep permettra d'afficher la ligne contenant un mot-clef (avec l'option -o on affiche seulement l'expression matchée), ceci depuis un fichier ou une autre commande. Par exemple, si on veut afficher tous les processus ssh, on filtrera la commande ps aux avec grep : ps aux | grep ssh. grep permet également de rechercher dans le contenu de fichiers. Un exemple tiré de mon article sur la désinfection d'un WordPress où l'on cherche tout fichier .php potentiellement infecté :
Sélectionnez1.2.3.4.# option -l pour matcher seulement certains types de fichiers (ici les .php) # option -r pour la récursivité (recherche dans les sous-dossiers) # option -E pour la syntaxe REGEXP étendue) grep --include "*.php" -rlE 'viagra|pharma|Tadacip|eval|base64_decode|socket_shutdown|socket_close|socket_clear_error|fopen|curl' www/

find

  • la commande find est bien plus puissante que locate, mais elle est aussi bien plus lente, car elle parcourt le disque au fur et à mesure de la recherche. Sa syntaxe est la suivante find /adresse_du_repertoire_de_recherche/ element_a_trouver. Cette syntaxe n'est qu'une base. find permet en effet de rechercher selon une taille ou une date de dernier accès, mais encore d'effectuer des actions sur les fichiers trouvés, d'appeler une commande, etc. Une page de man à lire donc… Connaître la date de dernier accès est très pratique et puissant, quelques exemples :
Sélectionnez1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.# le plus simple chercher un fichier dont on connaît le nom # trouver tous les .htaccess dans /var/www find /var/www -name ".htaccess" # liste les fichiers dans www par date de dernière modification find /www -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r # on peut être plus précis en affichant les fichiers modifiés dans le x (ici 50) dernières minutes find /target_directory -type f -mmin -50 # ou les 24 dernières heures find /target_directory -type f -mtime -24 # on peut enfin choisir un intervalle (entre hier et avant-hier) find /target_directory -type f -mtime -48 ! -mtime -24 # last but not least, déplacer les fichiers qui ont plus de 24 h (ou modifié il y a plus de 24 h) find /target_directory -type f -mtime -24

Vous noterez très certainement que nous utilisons ici mtime pour la dernière modification. Il y a également :

  • mmin pour les minutes ;
  • atime et amin pour le dernier accès,- ;
  • ctime et cmin pour le dernier changement.

Vous pouvez lire cet article et ce post pour bien comprendre les différences et implications change time et modification time.

Tag » Apprendre Linux En Ligne De Commande