Skip to Content

Les commandes avancées sous Linux

But de ce document

Ce document donnera une description et des exemples d’utilisations des commandes avancées les plus courantes sous Linux.

xargs [ -options ] [ commande ]

Exécute commande aussi souvent que nécessaire, en recevant à chaque fois ses arguments sur l’entrée standard. Ceci permet à commande de traiter beaucoup d’arguments à partir d’une liste créée par une commande (ls ou find par exemple) ou contenue dans un fichier.

Option Commentaire
-i [cache] Transforme toutes les ou toutes les chaînes par les chaînes envoyées par l’entrée standard.
-p Demande confirmation à l’utilisateur avant l’exécution de chaque ligne de commande. Implique l’option -t.
-t Affiche la ligne de commande sur la sortie d’erreur standard avant de l’exécuter.
-v Mode verbeux.

Exemples :

$ find / -type f | xargs grep "*motif*" > ma_liste
$ ls rep1 | xargs -i -t mv rep1/{} rep2/{}

sort [ -options ] [ fichiers ]

La commande sort trie les lignes des fichiers passés en arguments.

Option Commentaire
-n Tri arithmétique.
-o fichier Envoie la sortie dans fichier .
-r Tri inversé.
-tc Sépare les champs par le caractère c.
+ n [ -m ] Saute les n permiers champs et trie jusqu’à la position m du champ. Si m n’existe pas, trie jusqu’à la fin de la ligne.
-k n [ ,m ] Semblable au précédent. Saute les n-1 permiers champs et trie jusqu’à la position m-1 . Ici les champs sont numérotés à partir de 1.

Exemples :

$ ls -l | sort -n -k5
$ sort +2n -t: /etc/passwd

bc [ -options ] [ fichiers ]

bc est un language dont la syntaxe ressemble au C, permettant d’effectuer des calculs en précision infinie.

Option Commentaire
-l Utilise la bibliothèque mathématique standard. Indispensable si vous souhaitez utiliser des fonctions telles que sin, cos, log, ...
-q fichier N’affiche pas le message de bienvenue.

Exemples :

$ echo "5*12.35" | bc -l
$ du -ks * | cut -f1 | bc -l

wc [ -options ] [ fichiers ]

Affiche le nombre de lignes, de mots ou de caractères de « fichier ». Si «  fichier » est omis, lit l’entrée standard.

Option Commentaire
-c Affiche le nombre de caractères.
-l Affiche le nombre de lignes.
-w Affiche le nombre de mots.

Exemples :

$ wc -w mon_super_livre.txt
$ ls | wc -l

cut -options [ fichiers ]

Sélectionne une partie de chaque ligne d’un fichier. On utilise la virgule pour séparer les valeurs d’une liste, et le tiret pour préciser des plages.

Option Commentaire
-c list Affiche uniquement les caractères situés aux positions précisées dans liste.
-d c Avec l’option -f, permet de spécifier le caractère c comme séparateur de champs.
-f liste Affiche les champs précisés dans liste.

Exemples :

# cut -d: -f1,5 /etc/passwd
$ cut -c1-68 fichier.txt

tr [ -options ][ Chaîne1 ][ Chaîne2 ]

Copie l’entrée standard vers la sortie standard en remplaçant les caractères de chaîne1 par chaîne2 .

Option Commentaire
-d Supprime certains caractères de chaîne1.
-s Exclut de «  Chaîne2 » les caractères en double dans « Chaîne1 ».

Exemples :

$ tr " " "_" fichier
$ cat fichier | tr -d : > fichier2

type [ -options ] commandes

Affiche la référence absolue de commandes et indique si elles sont ou non au registre hash.

Option Commentaire
-a Affiche toutes les commandes portant le nom commande et pas seulement celles lancées par défaut.
-t Indique si commande est un alias, un mot-clé, une fonction, une fonction interne ou un fichier.

Exemples :

$ type -a kill
$ type -t ls

passwd [ -options ] [ utilisateur ]

Change le mot de passe d’un utilisateur . Seul le propriétaire ou le super utilisateur peut changer un mot de passe. Le propriétaire n’a pas à spécifier utilisateur .

Option Commentaire
-d C’est un moyen rapide de désactivation du mot de passe d’un compte. Il rendra inutile la saisie d’un mot de passe pour un compte donné. Disponible uniquement pour root.

Exemples :

$ passwd toto secret
$ passwd

awk [ -options ] [ fichier_programme ] [ fichier(s) ]

awk est un langage d’examen et de traitement de motifs. Il permet :

  •  Le traitement d’un fichier comme s’il constituait une base de données composées de d’enregistrements et de champs.
  •  L’usage de variables pour modifier la base de données.
  •  L’exécution de commandes shell dans un script.
  •  L’exécution d’opérations sur les nombres et les chaînes.
  •  L’usage de structure de programmation (boucles, conditions...).
  •  La création de fonctions personnelles.
  •  Le traitement du résultat de commandes shell.
  •  La production de rapports formatés.

    Inutile de dire que le sujet est vaste. Je me contenterai donc de donner quelques exemples d’utilisation. Reportez-vous à la page de manuel de la fonction pour de plus amples explications.

    Option Commentaire
    -f fichier Lit les commandes awk dans fichier plutôt que depuis l’entrée standard.
    -Fc Utilise le caractère c comme séparateur de champs.

    Exemples :

    $ awk -F: '{print $1 "\t" $5}' /etc/passwd
    $ ls -l | grep ^- | awk '{somme+=$5}END{print "Total taille fichiers : ", somme}'

    sed [ -options ] [ commandes ] [ fichier(s) ]

    sed est un éditeur de flots. Il permet d’éditer des fichiers sans interaction avec l’utilisateur. Tout comme awk, il s’agit là d’une commande extrèmement vaste et complexe, faisant appel massivement aux expressions régulières et que je survolerai. Sachez que sed permet :

  •  L’édition simultanée de plusieurs fichiers.
  •  La simplification des modifications répétitives apportées à un fichier.
  •  La rédaction de programmes de conversion.
    Option Commentaire
    -e commande Indique que l’argument suivant est une commande d’édition. Nécessaire dans le cas d’enchaînement de plusieurs commandes.
    -f fichier Indique que fichier est un script contenant les commandes d’édition.
    -g Toutes les substitutions sont globales.

    Exemples :

    $ sed 's/10.0.0.1/192.168.1.1/' fichier > fichier.tmp
    $ sed -g -e 's/\([^~]\){}>>/\1\~{}>>/' -e 's/{}<<\([^~]\)/{}<<\~\1/' fichier1 > fichier.new

    Historique des modifications

    Version Date Commentaire
    0.1 2002 Thierry COLAS, auteur original du document « Lignes de commandes - le pense bête de COAGUL »
    0.2 2004 Marc POIROUD pour la conversion en LATEX , PDF et HTML. Gnunux, pour sa relecture
    0.3 21/03/05 Tony pour la conversion au format OOo / Spip et le découpage en 7 articles.
  • Commentaires

    > Les commandes avancées sous Linux

    J’ai ajouté "But de ce document"

  •  Ca va ?
  • > Les commandes avancées sous Linux

    Je trouve le descriptif un peu ... bof ;)

    Ne serait-il pas mieux de mettre lebut de la page et le nom des commandes ?