commande -options arg1 arg2 arg3Les options varient en fonction de la commande, le nombre des arguments qui suivent dépend aussi de la commande, par exemple la commande :
sort -r mon-fichiersort (trier) permet de trier un fichier, l'option r (reverse), permet de trier en sens inverse le fichier. L'argument unique de la commande est le nom du fichier. Avec
cp -R mon-repertoire nouveau-repertoireLa commande cp (copy) copie un répertoire (option R) vers un autre répertoire, on a ici deux arguments.
On peut coupler deux options : ps -ef, avec cette commande on a l'option e et f (voir plus loin la signification de la commande).
A noter que pour introduire une option on met -, ce n'est pas nécessaire pour certaines commandes (tar par exemple).
Chacun de ces flux de données est identifié par un numéro descripteur, 0 pour l'entrée standard, 1 pour la sortie standard et 2 pour la sortie standard des messages d'erreur.
Vous pouvez changer ce comportement, en tapant :
ma-commande > mon-fichierTous les commentaires, les sorties, de la commande, ne vont pas apparaître au shell mais être écrits dans un fichier. En d'autres termes, la standard standard est redirigé vers un fichier. Cela peut être utile, si vous avez une commande qui génère énormément de commentaire, et que vous voulez les récupérer, pour les exploiter par la suite, à la terminaison de la commande.
La redirection > a pour effet de créer le fichier mon-fichier, si ce fichier existait déjà, il est tout simplement écrasé (supprimé et recréé), ce qui peut être gênant si vous ne voulez pas perdre ce qu'il contient, vous disposez donc de la redirection >>. En tapant :
ma-commande >> mon-fichierLe fichier mon-fichier n'est pas écrasé, mais la sortie standard (les commentaires de la commande) sont ajoutés en fin de fichier, à la suite du texte qui était déjà dans le fichier.
Les redirections marchent dans les deux sens, par exemple en tapant la commande suivante :
sort < mon-fichierVous envoyez le contenu du fichier mon-fichier vers la commande sort (trie), celle-ci va donc trier le contenu du fichier, par défaut le résultat sort sur la sortie standard, c'est à dire à l'écran, plus précisément sur le shell. Avec :
sort < mon-fichier > fichier-trieOn a vu que sort < mon-fichier avait pour effet de trier le fichier mon-fichier, l'expression >fichier-trie a pour effet d'envoyer le résultat (le fichier trié) dans un fichier fichier-trie, le résultat n'apparaît plus à l'écran, mais est sauvegardé dans un fichier.
Avec la redirection << la commande va lire les caractères jusqu'à la rencontre d'une certaine chaîne de caractères. Exemple avec la commande cat (catalogue, permet d'éditer le contenu d'un fichier).
>cat << fin je tape du texte jusqu'à la chaîne de caractère fin >En tapant la commande, vous revenez à la ligne, mais perdez le prompt, cat va lire (et éditer) les caractères que vous saisissez jusqu'à qu'il rencontre la chaîne fin, à ce moment là, le prompt apparaît à nouveau. Si vous voulez créer un fichier avec un peu de texte à l'intérieur, vous ferez :
>cat << fin > mon-fichier je tape du texte qui sera sauvegardé dans mon-fichier, pour terminer le texte fin >Le texte que vous venez de saisir, se trouve donc dans mon-fichier.
Avec la commande :
>fichier-videVous créez un fichier vide fichier-vide.
cat mon-fichier 2>fichier-erreurSi on rencontre une erreur pendant l'exécutionde la commande d'édition cat de mon-fichier (absence du fichier par exemple), le message d'erreur sera sauvegardé dans le fichier fichier-erreur.
En tapant :
sort mon-fichier > fichier-trieVous redirigez le résultat de la commande sort mon-fichier vers le fichierfichier-trie, la sortie standard (descripteur 1) n'est donc plus l'écran (plus précisément le shell ou terminal) mais le fichier fichier-trie.
Par défaut les messages d'erreur s'affichent dans le shell, vous pouvez faire en sorte qu'ils s'affichent dans le fichier fichier-trie, en tapant :
sort mon-fichier > fichier-trie 2>&1Avec la syntaxe >& vous indiquez que les messages d'erreurs seront redirigés vers la sortie standard qui est le fichier fichier-trie.
commande1 > sortie1On redirige cette sortie vers une autre commande, ça devient donc une entrée pour cette dernière commande, pour cela vous tapez :
commande2 < sortie1En fait la syntaxe commande1|commande2 (| étant le symbole de pipe) est totalement équivalente aux deux lignes de commandes précédentes.
Exemple : ls permet la visualisation de fichiers, en tapant ls, on obtient :
fichier1 fichier2 totofichiergrep permet la recherche d'une chaîne de caractère dans une liste donnée, en tapant grep toto * (* signifie tous les fichiers, grep recherche la chaîne de caractère toto dans les noms de tous les fichiers), on obtient :
totofichierOn a le même résultat avec le |, en tapant :
ls | grep totoLa première commande aura pour effet de lister le nom des fichiers se trouvant à l'endroit où l'on a tapé la commande, la sortie standard (le résultat de la commande) est donc une liste de nom, elle est redirigée vers la commande grep, qui va y chercher une chaîne de caractère contenant toto. Le résultat est donc aussi:
totofichier