web-dev-qa-db-fra.com

Différence entre ps -aux et ps aux

Quelle est la différence entre ps -aux et ps aux? Je me demande si c'est plus qu'une simple question de syntaxe et de "portabilité". Lequel est-il préférable d'utiliser dans Ubuntu?

Malgré des questions similaires, cette différence spécifique m'intéresse.

12
floatingpurr

BSD et AT & T ont développé des versions incompatibles de ps. Les options sans tiret principal sont le style BSD tandis que celles avec un tiret principal sont de style Unix AT & T.

Le ps man page a également ceci à dire:

Notez que "ps -aux" est distinct de "ps aux". Les normes POSIX et UNIX exigent que "ps -aux" imprime tous les processus appartenant à un utilisateur nommé "x", ainsi que tous les processus sélectionnés par l'option -a. Si l'utilisateur nommé "x" n'existe pas, ce "ps" peut interpréter la commande comme "ps aux" et afficher un avertissement. Ce comportement est destiné à faciliter la transition d'anciens scripts et habitudes. Il est fragile, sujet au changement et ne doit donc pas être invoqué.

Linux a choisi de supporter les deux. ps -au{user} affichera une erreur si vous fournissez un utilisateur non existant. Voir:

$ ps -autest
error: user name does not exist

Usage:
 ps [options]

 Try 'ps --help <simple|list|output|threads|misc|all>'
  or 'ps --help <s|l|o|t|m|a>'
 for additional help text.

For more details see ps(1).

Ubuntu/Canonical a choisi d'afficher une erreur. Debian a choisi de donner le même résultat à ps -aux et ps aux. Dans l'ensemble, assez déroutant. Mais comme indiqué: ceci est/était de rendre les scripts compatibles. Et vous pouvez utiliser ce dont vous vous sentez heureux.

19
Rinzwind