Comment lire l'utilisation d'Unix

16

J'ai fait quelques recherches, mais je ne trouve pas de documentation sur le fonctionnement de l' utilisation d'Unix . Je sais quelque chose (principalement par essais et erreurs) mais, par exemple, comment savoir que

/usr/bin/ls  [-aAbcCdeEfFghHilLmnopqrRstuvVx1@] [file]...

signifie que vous pouvez inclure plus d'une option? C'est,

ls -la

Où se trouve la documentation sur la syntaxe d'utilisation?

sixtyfootersdude
la source
POSIX a son mot à dire sur la façon dont les affichages d'utilisation / d'aide doivent être formatés, mais au-delà des utilitaires de base (GNU), peu le suivent de manière cohérente.
Tim Post
@Tim, je n'ai rien sur l'utilisation là-bas.
sixtyfootersdude
(s'il vous plaît ne prenez pas cela comme un post RTFM, c'est plus un commentaire amusant) vous pouvez réellement exécuter 'man man' et faire défiler vers le bas pour trouver les directives de syntaxe.
ThinkBonobo

Réponses:

34

C'est vrai qu'il n'y a pas de RFC ou quoi que ce soit, mais vous n'allez pas trop loin de la base si vous vous en tenez à ces directives:

  1. Tout ce qui est entre parenthèses < >signifie que l'option est requise:
    <foo>

  2. Tout ce qui est entre crochets [ ]signifie que l'option est facultative:
    [bar]

  3. Les options séparées par un tube |signifient que ce sont les valeurs valides:
    --baz=one|two|three

  4. Les options d'une seule lettre commencent par un tiret:
    -a

  5. Les options multi-lettres commencent par deux tirets:
    --foo-bar

  6. (basé sur # 4) Un tiret unique avec plusieurs lettres signifie généralement l'union de ces options individuelles à une seule lettre plutôt qu'une option à plusieurs lettres. Toutes les commandes ne prennent pas en charge ce type d'union. Exemple:
    -aAbBcCest le même que-a -A -b -B -c -C

Frankc
la source
1
homme homme ou homme 5 homme
mpez0
1
Il n'y a pas de RFC, mais il y a les spécifications POSIX , qui incluent les conventions utilitaires
Wildcard
6

Il n'y a pas de structure stricte pour les pages de manuel, mais ce qui suit couvre la plupart des commandes.

À partir des PAGES MANUELLES (5), Manuel des formats de fichiers BSD , section "SYNTAXE DE LA PAGE MANUELLE":

Dans la syntaxe de page manuelle, tout ce qui est dans une police de texte normale est un texte obligatoire. Tout ce qui se trouve dans une police en gras est un indicateur ou une sous-commande. Tout ce qui est souligné est un argument spécifié par l'utilisateur tel qu'un nom de fichier.

Tout argument entouré de crochets est considéré comme facultatif. Par exemple, [nom de fichier] indiquerait un argument de nom de fichier facultatif.

Les indicateurs, arguments ou sous-commandes séparés par un séparateur vertical (|) s'excluent mutuellement. Par exemple, si -a active une option et -b désactive l'option, la syntaxe de cette commande peut être -a | -b.

Dans certains cas, vous pouvez même voir des groupes entiers d'arguments entourés de crochets et séparés par un séparateur vertical. C'est une façon de montrer qu'une commande a plus d'une syntaxe valide. Dans d'autres pages de manuel, cela s'exprime par le fait d'avoir plusieurs lignes dans le synopsis, chacune commençant par le nom de la commande. Le format séparé est plus courant (et plus lisible), mais n'est pas toujours possible pour les commandes avec une syntaxe particulièrement complexe.

Enfin, la convention de notation la plus importante est l'utilisation des points de suspension (...). Cela indique que des arguments supplémentaires peuvent être ajoutés à ce stade.

Peter Mortensen
la source
5

Les lignes d'utilisation ne suivent rien de cohérent.

Vous devez utiliser man lsou info lspour obtenir un niveau d'informations plus cohérent.

clahey
la source