Cela fait plusieurs années que j’utilise le système d’exploitation linux (distribution Ubuntu).

Si je suis sensible au monde du logiciel libre, c’est surtout le système d’exploitation parfait pour le bidouilleur que je suis.

Linux dispose de milliers de commandes et logiciels gratuits qui permettent de faire tout et n’importe quoi.

C’est également un système pariculièrement robuste et le risque d’attraper un virus est particulièrement limité.

La seule chose qui manque ? Une suite bureautique qui puisse rivaliser avec le pack office. OpenOffice n’étant clairement pas au niveau.

En ce moment, je réalise beaucoup de traitements sur de gros fichiers (plusieurs gigas). Le moins qu’on puisse dire, c’est que Linux nous propose de très nombreuses commandes qui nous fassilitent la tâche.

Voici une liste de commandes bien pratiques. Cette liste va me servir de mémo, elle évoluera donc dans le temps. N’hésitez pas à partager les commandes que vous utilisez régulièrement.

Grep
Tout le monde connait la commande grep qui permet d’afficher les lignes qui correspondent à un motif.
grep -v ressort les lignes qui ne correspondent pas au motif.
grep -v -f a.txt b.txt ressort les lignes du fichier b.txt qui ne sont pas dans le fichier a.txt

Zcat
Commande extrèmement utile permettant d’afficher sur la sortie standard les lignes d’un fichier compressé. Zcat ne créé pas un nouveau fichier.

Wget
Utilitaire de téléchargement qui permet nottament d’aspirer un site.
wget -r permet d’activer le mode récursif.
wget -O – permet d’afficher le code source sur la sortie standard
wget -S –spider permet de récupérer l’entête de la réponse, ne télécharge pas le fichier

Petite question : je n’ai pas réussi à cumuler mode récursif et affichage sur la sortie standard, si quelqu’un sait comment faire…

Split
Commande permettant de découper un fichier en plusieurs à la taille souhaitée.

Sort
Commande extrèmement puissante permettant de trier un fichier (excel n’ouvre pas les fichiers de 20 go…).
sort -n permet de trier numériquement (et non alphabatiquement pas défaut)
sort -r trie dans le sens inverse
sort -R trie aléatoirement
sort -k2 trie sur la deuxième colonne
sort -t$’\t’ permet de spécifier que les colonnes sont séparées par une tabulation, j’ai galéré avant de trouver !
sort -t$’\t’ – k2,2 -u permet de trier et dé-doublonner sur la deuxième colonne

Uniq
Déduplique les lignes d’un fichier trié.
uniq -c permet d’afficher le nombre d’occurences

Join
Permet de fusionner deux fichiers ayants un champ en commun

Cut
Permet d’afficher une partie d’une ligne (en spécifiant une colonne, un nombre de caractère, …)

Awk
Très puissant, à la fois commande et langage de programmation. Permet de rechercher et traîter une chaîne au sein d’une ligne. J’en avais déjà parlé ici.

Cat
Concatène les fichiers en entrée standard.

File
Détermine le type d’un fichier et notamment son encodage.

Travailler en arrière plan
Lorsqu’un traitement lancé est long, on peut l’interrompre en faisant ctrl +z.
Pour voir tous les processus interrompus, on fait jobs.
Pour le relancer en arrière-plan, on fait bg.
Pour le remettre au premier plan, on fait fg.

Screen
Un must, on appelle ça un « multiplexeur de terminaux ». Imagineons que vous travailliez sur un terminal au boulot, grâce à screen (et ssh), vous pouvez retrouver le terminal de chez vous, comme vous l’aviez quitté !
screen -S nom_de_la_session pour créer un screen
screen -r nom_de_la_session pour s’y reconnecter
screen -ls pour connaître tous les screens existants.

Génial !

Et vous ? Quelles commandes linux utilisez-vous régulièrement ?