Linux est un noyau, il n'a pas de commandes. Certaines distributions de logiciels construits pour ce noyau suivent le standard LSB, d'autres la politique Debian, la plupart aucune en particulier.
Stéphane Chazelas
@ StéphaneChazelas Bien que je sois d'accord, je dirais que suivre la politique Debian est proche de suivre LSB, puisque Debian prend en charge LSB (sinon par défaut, toujours via le lsbpaquet).
Techniquement , vous ne pouvez pas supposer quoi que ce soit , parce que Linux-le-noyau s'utilisé dans un tas de contextes intégrés ou semi-intégrés où un éventail complet de services shell serait un gaspillage inutile de l' espace. Si vous vous demandez ce que vous pouvez vous attendre à installer dans un environnement shell "normal" compatible Unix, je ne regarderais pas POSIX ni LSB mais l'ensemble de paquets que Debian considère comme "requis". De nombreux outils de gestion de système essentiels, par exemple "ip", ne sont pas du tout standardisés.
ar echo hostname more sh
at egrep install mount shutdown
awk fgrep install_initd msgfmt su
batch file ipcrm newgrp sync
bc fuser ipcs od tar
chfn gettext killall passwd umount
chsh grep lpr patch useradd
col groupadd ls pidof userdel
cpio groupdel lsb_release remove_initd usermod
crontab groupmod m4 renice xargs
df groups md5sum sed zcat
dmesg gunzip mknod sendmail
du gzip mktemp seq
Un certain nombre de programmes «uniquement à partir de LSB» proviennent en fait de POSIX. Ceux-ci incluent: awk, grep, ls, sed, sh, xargs pour sûr; Je devrais vérifier ar, at, batch, bc, crontab. Il peut y en avoir d'autres aussi.
Jonathan Leffler
@JonathanLeffler J'ai dû faire une erreur dans l'expression régulière. Je le réparerai quand je le pourrai.
muru
NP. J'utiliserais la page POSIX 2008 (2013) de niveau supérieur ou spécifiquement la liste des utilitaires . Il comprend toutes les possibilités que j'ai mentionnées; Je vois aussi file, ipcrm, ipcs, m4, patchet la zcatliste - qui est une opération de Eyeballing plutôt qu'une vérification formelle des listes.
Techniquement, vous ne pouvez pas supposer que quelque chose sera présent, car Linux-le-noyau est utilisé dans tout un tas de contextes intégrés ou semi-intégrés où un ensemble complet d'utilitaires shell serait une perte d'espace inutile. Il ne serait pas hors de question, par exemple, de construire un appareil IoT dont le système de fichiers contient un chargeur de démarrage, un noyau monolithique, une coutume /sbin/initqui fait tout ce que l'appareil aura besoin de faire, quelques /deventrées et rien d'autre .
La spécification POSIX.1-2008 "Shell et utilitaires" , également liée dans la réponse de muru, est destinée à standardiser le shell en tant que langage de programmation . Il n'inclut donc pas la plupart des outils d'administration système que l'on s'attend à trouver sur une installation Unix "traditionnelle". Malheureusement, c'est aussi une cicatrice restante visible de l'ancien schisme entre System V et BSD - les outils que vous trouverez sur Linux ne sont pas les mêmes que ceux sur FreeBSD ou OSX ou autre. Donc, encore une fois, il n'y a pas de référence fiable.
Pour donner une indication de ce qui manque dans la réponse de maru, c'est l'ensemble de paquets que Debian (unstable) considère comme "requis" ( définition officielle : "Les systèmes avec seulement les paquets requis sont probablement inutilisables, mais ils ont suffisamment de fonctionnalités pour permettre au de démarrer et d' installer d' autres logiciels. ») et qui contribuent à des fichiers /bin, /sbin, /usr/binou /usr/sbin. Ceux marqués d'un astérisque ne sont pas seulement "obligatoires", mais "essentiels", ce qui signifie que les autres logiciels fournis sont autorisés à assumer leur présence sans en dépendre.
¹ awk-the-language est "essentiel", mais l'administrateur système peut choisir s'il souhaite l'implémentation "mawk" ou "gawk".
Et ce sont les packages considérés comme "importants" idem; la définition officielle de "important" est "une personne Unix expérimentée qui l'a trouvé manquant dirait 'Qu'est-ce qui se passe, où est le foo?'":
Notez que ce deuxième ensemble comprend des outils d'administration système critiques comme pset iproute2, mais aussi des choses qui pourraient être complètement inutiles sur certaines installations, comme atet dmidecode. Les deux ensembles contiennent également des éléments spécifiques à Debian, comme dpkget apt.
Notez également que les deux ensembles ne sont pas un sur-ensemble des fonctionnalités requises par LSB (ou POSIX + XSI d'ailleurs): ces utilitaires sont manquants:
ar gencat lpr msgfmt strings
bc gettext lsb_release patch strip
ed install_initd m4 pax time
file killall mailx remove_initd
fuser lp make sendmail
La liste des utilitaires qui se trouvent dans les packages ci-dessus mais pas dans LSB est longue et fastidieuse, mais je l'inclus quand même pour souligner le nombre d '"outils d'administration système critiques" qu'elle comprend.
Complet. Je voudrais noter que l'adduser (et la famille) de Debian est ... celui de Debian. Arch utilise Slackware, qui est très différent. Je ne le nomme que parce qu'il ne semble pas spécifique à Debian, mais est néanmoins comme la ipcommande que vous avez mentionnée plus tôt.
Cependant, de nombreuses personnes ont tendance à parcourir ce qui est contenu dans les répertoires affichés par echo $PATH, puis à consulter la page de manuel pour plus d'informations.
La recherche dans les répertoires vous dira ce qui est inclus dans votre distribution spécifique, elle ne dira pas ce qui devrait être. Comment diriez-vous en y regardant qu'il manque quelque chose?
busybox --list
. Je rigole.lsb
paquet).Réponses:
La Linux Standard Base (LSB) a une liste d'applications :
Beaucoup d'entre eux sont inclus comme faisant partie de la norme POSIX 1003.1-2001 , mais les éléments suivants sont uniquement en LSB ou ont des spécifications différentes de POSIX:
la source
file
,ipcrm
,ipcs
,m4
,patch
et lazcat
liste - qui est une opération de Eyeballing plutôt qu'une vérification formelle des listes.Techniquement, vous ne pouvez pas supposer que quelque chose sera présent, car Linux-le-noyau est utilisé dans tout un tas de contextes intégrés ou semi-intégrés où un ensemble complet d'utilitaires shell serait une perte d'espace inutile. Il ne serait pas hors de question, par exemple, de construire un appareil IoT dont le système de fichiers contient un chargeur de démarrage, un noyau monolithique, une coutume
/sbin/init
qui fait tout ce que l'appareil aura besoin de faire, quelques/dev
entrées et rien d'autre .La spécification POSIX.1-2008 "Shell et utilitaires" , également liée dans la réponse de muru, est destinée à standardiser le shell en tant que langage de programmation . Il n'inclut donc pas la plupart des outils d'administration système que l'on s'attend à trouver sur une installation Unix "traditionnelle". Malheureusement, c'est aussi une cicatrice restante visible de l'ancien schisme entre System V et BSD - les outils que vous trouverez sur Linux ne sont pas les mêmes que ceux sur FreeBSD ou OSX ou autre. Donc, encore une fois, il n'y a pas de référence fiable.
Pour donner une indication de ce qui manque dans la réponse de maru, c'est l'ensemble de paquets que Debian (unstable) considère comme "requis" ( définition officielle : "Les systèmes avec seulement les paquets requis sont probablement inutilisables, mais ils ont suffisamment de fonctionnalités pour permettre au de démarrer et d' installer d' autres logiciels. ») et qui contribuent à des fichiers
/bin
,/sbin
,/usr/bin
ou/usr/sbin
. Ceux marqués d'un astérisque ne sont pas seulement "obligatoires", mais "essentiels", ce qui signifie que les autres logiciels fournis sont autorisés à assumer leur présence sans en dépendre.¹ awk-the-language est "essentiel", mais l'administrateur système peut choisir s'il souhaite l'implémentation "mawk" ou "gawk".
Et ce sont les packages considérés comme "importants" idem; la définition officielle de "important" est "une personne Unix expérimentée qui l'a trouvé manquant dirait 'Qu'est-ce qui se passe, où est le foo?'":
Notez que ce deuxième ensemble comprend des outils d'administration système critiques comme
ps
etiproute2
, mais aussi des choses qui pourraient être complètement inutiles sur certaines installations, commeat
etdmidecode
. Les deux ensembles contiennent également des éléments spécifiques à Debian, commedpkg
etapt
.Notez également que les deux ensembles ne sont pas un sur-ensemble des fonctionnalités requises par LSB (ou POSIX + XSI d'ailleurs): ces utilitaires sont manquants:
La liste des utilitaires qui se trouvent dans les packages ci-dessus mais pas dans LSB est longue et fastidieuse, mais je l'inclus quand même pour souligner le nombre d '"outils d'administration système critiques" qu'elle comprend.
la source
ip
commande que vous avez mentionnée plus tôt.La Wikipédia: liste des commandes Unix et Linuxconfig: Linux Les commandes sont certainement en valeur un regard.
Cependant, de nombreuses personnes ont tendance à parcourir ce qui est contenu dans les répertoires affichés par
echo $PATH
, puis à consulter la page de manuel pour plus d'informations.la source