Linux ist ein Kernel, er hat keine Befehle. Einige Distributionen von Software, die für diesen Kernel erstellt wurden, folgen dem LSB-Standard, andere der Debian-Richtlinie, die meisten anderen nicht.
Stéphane Chazelas
@ StéphaneChazelas Obwohl ich zustimme, würde ich sagen, dass das Befolgen der Debian-Richtlinie dem Befolgen von LSB nahe kommt, da Debian LSB unterstützt (wenn nicht standardmäßig, immer noch über das lsbPaket).
Technisch annehmen , dass Sie nicht alles , weil Linux-the-Kernel in einer ganzen Reihe von eingebetteten oder halb eingebetteten Kontexten verwendet wird , wo eine volle Ergänzung des Shell - Utilities eine sinnlose Verschwendung von Platz wäre. Wenn Sie sich fragen, was Sie in einer "normalen" Unix-kompatiblen Shell-Umgebung erwarten können, würde ich nicht POSIX oder LSB betrachten, sondern die Pakete, die Debian für "erforderlich" hält. Viele wichtige Systemverwaltungswerkzeuge, z. B. "ip", sind überhaupt nicht standardisiert.
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
Einige der "nur von LSB" -Programme stammen tatsächlich von POSIX. Dazu gehören: awk, grep, ls, sed, sh, xargs sicher; Ich müsste nach Ar, At, Batch, BC, Crontab suchen. Es kann auch andere geben.
Jonathan Leffler,
@ JonathanLeffler Ich muss einen Fehler in der Regex gemacht haben. Ich werde es reparieren, wenn ich kann.
Muru
NP. Ich würde entweder die POSIX 2008 (2013) -Seite der obersten Ebene oder speziell die Liste der Dienstprogramme verwenden . Es enthält alle Möglichkeiten, die ich erwähnt habe; Ich sehe auch file, ipcrm, ipcs, m4, patch, und zcataufgeführt - das eine Eyeballing Operation ist eher als eine formale Überprüfung der Listen.
Technisch gesehen kann man nicht davon ausgehen, dass irgendetwas vorhanden sein wird, da der Linux-Kernel in einer ganzen Reihe von eingebetteten oder semi-eingebetteten Kontexten verwendet wird, in denen eine vollständige Ergänzung der Shell-Dienstprogramme eine sinnlose Verschwendung von Speicherplatz wäre. Es kommt beispielsweise nicht in Frage, ein IoT-Gerät zu erstellen, dessen Dateisystem einen Bootloader, einen monolithischen Kernel, eine Benutzerdefinition /sbin/init, die alles tut, was das Gerät jemals tun muss, ein paar /devEinträge und sonst nichts .
Die POSIX.1-2008-Spezifikation "Shell and Utilities" , die auch in der Antwort von muru verlinkt ist, soll die Shell als Programmiersprache standardisieren . Es enthält daher nicht die meisten Systemadministrations-Tools, die für eine "traditionelle" Unix-Installation erforderlich sind. Leider ist dies auch eine sichtbare Narbe der alten Spaltung zwischen System V und BSD - die Tools, die Sie unter Linux finden, sind nicht dieselben wie unter FreeBSD oder OSX oder was auch immer. Es gibt also keine verlässliche Grundlinie.
Um einen Hinweis darauf zu geben, was in Marus Antwort fehlt, ist dies die Menge von Paketen , die Debian (unstable) als "erforderlich" ansieht ( offizielle Definition : "Systeme mit nur den erforderlichen Paketen sind wahrscheinlich unbrauchbar, aber sie haben genügend Funktionalität den sysadmin zu booten zu ermöglichen und mehr Software installieren. ") , und dass beitragen Dateien /bin, /sbin, /usr/bin, oder /usr/sbin. Die mit einem Sternchen gekennzeichneten sind nicht nur "erforderlich", sondern "wesentlich", was bedeutet, dass andere Softwarepakete ihr Vorhandensein annehmen dürfen, ohne davon abhängig zu sein.
¹ awk-the-language ist "wesentlich", aber der Systemadministrator kann wählen, ob er die Implementierung "mawk" oder "gawk" möchte.
Und dies sind die Pakete, die ebenfalls als "wichtig" angesehen werden. Die offizielle Definition von "wichtig" ist "eine erfahrene Unix-Person, die es vermisst fand, würde sagen" Was um alles in der Welt ist los, wo ist foo? ":
Beachten Sie, dass dieser zweite Satz wichtige Systemverwaltungstools wie psund enthält iproute2, aber auch Dinge, die bei einigen Installationen möglicherweise völlig unnötig sind, wie atund dmidecode. Beide Sets enthalten auch Dinge, die Debian-spezifisch sind, wie dpkgund apt.
Beachten Sie auch, dass beide Mengen zusammen keine Obermenge der von LSB (oder POSIX + XSI in diesem Fall) benötigten Funktionen darstellen: Diese Dienstprogramme fehlen:
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
Die Liste der Dienstprogramme in den oben genannten Paketen, jedoch nicht in LSB, ist lang und langwierig, aber ich füge sie trotzdem hinzu, um zu unterstreichen, wie viele "kritische Systemadministrationstools" darin enthalten sind.
Umfassend. Ich möchte darauf hinweisen, dass Debians Adduser (und Familie) ... Debians ist. Arch verwendet Slackware, was sehr unterschiedlich ist. Ich nenne es nur, weil es nicht Debian-spezifisch klingt, aber dennoch dem ipBefehl entspricht, den Sie zuvor erwähnt haben.
Viele Leute echo $PATHwerfen jedoch einen Blick in die Verzeichnisse, die von angezeigt werden, und schauen dann auf die Manpage, um weitere Informationen zu erhalten.
Suchen Sie in den Verzeichnissen werden Ihnen sagen , was in Ihrer speziellen Distribution enthalten ist, wird es nicht sagen , was sollte sein. Wie würden Sie sagen, wenn Sie dort nachsehen, dass etwas fehlt?
busybox --list
. Ich mache nur Spaß.lsb
Paket).Antworten:
Die Linux Standard Base (LSB) enthält eine Liste von Anwendungen :
Viele davon sind Teil des POSIX 1003.1-2001-Standards , die folgenden sind jedoch entweder nur in LSB enthalten oder haben andere Spezifikationen als POSIX:
quelle
file
,ipcrm
,ipcs
,m4
,patch
, undzcat
aufgeführt - das eine Eyeballing Operation ist eher als eine formale Überprüfung der Listen.Technisch gesehen kann man nicht davon ausgehen, dass irgendetwas vorhanden sein wird, da der Linux-Kernel in einer ganzen Reihe von eingebetteten oder semi-eingebetteten Kontexten verwendet wird, in denen eine vollständige Ergänzung der Shell-Dienstprogramme eine sinnlose Verschwendung von Speicherplatz wäre. Es kommt beispielsweise nicht in Frage, ein IoT-Gerät zu erstellen, dessen Dateisystem einen Bootloader, einen monolithischen Kernel, eine Benutzerdefinition
/sbin/init
, die alles tut, was das Gerät jemals tun muss, ein paar/dev
Einträge und sonst nichts .Die POSIX.1-2008-Spezifikation "Shell and Utilities" , die auch in der Antwort von muru verlinkt ist, soll die Shell als Programmiersprache standardisieren . Es enthält daher nicht die meisten Systemadministrations-Tools, die für eine "traditionelle" Unix-Installation erforderlich sind. Leider ist dies auch eine sichtbare Narbe der alten Spaltung zwischen System V und BSD - die Tools, die Sie unter Linux finden, sind nicht dieselben wie unter FreeBSD oder OSX oder was auch immer. Es gibt also keine verlässliche Grundlinie.
Um einen Hinweis darauf zu geben, was in Marus Antwort fehlt, ist dies die Menge von Paketen , die Debian (unstable) als "erforderlich" ansieht ( offizielle Definition : "Systeme mit nur den erforderlichen Paketen sind wahrscheinlich unbrauchbar, aber sie haben genügend Funktionalität den sysadmin zu booten zu ermöglichen und mehr Software installieren. ") , und dass beitragen Dateien
/bin
,/sbin
,/usr/bin
, oder/usr/sbin
. Die mit einem Sternchen gekennzeichneten sind nicht nur "erforderlich", sondern "wesentlich", was bedeutet, dass andere Softwarepakete ihr Vorhandensein annehmen dürfen, ohne davon abhängig zu sein.¹ awk-the-language ist "wesentlich", aber der Systemadministrator kann wählen, ob er die Implementierung "mawk" oder "gawk" möchte.
Und dies sind die Pakete, die ebenfalls als "wichtig" angesehen werden. Die offizielle Definition von "wichtig" ist "eine erfahrene Unix-Person, die es vermisst fand, würde sagen" Was um alles in der Welt ist los, wo ist foo? ":
Beachten Sie, dass dieser zweite Satz wichtige Systemverwaltungstools wie
ps
und enthältiproute2
, aber auch Dinge, die bei einigen Installationen möglicherweise völlig unnötig sind, wieat
unddmidecode
. Beide Sets enthalten auch Dinge, die Debian-spezifisch sind, wiedpkg
undapt
.Beachten Sie auch, dass beide Mengen zusammen keine Obermenge der von LSB (oder POSIX + XSI in diesem Fall) benötigten Funktionen darstellen: Diese Dienstprogramme fehlen:
Die Liste der Dienstprogramme in den oben genannten Paketen, jedoch nicht in LSB, ist lang und langwierig, aber ich füge sie trotzdem hinzu, um zu unterstreichen, wie viele "kritische Systemadministrationstools" darin enthalten sind.
quelle
ip
Befehl entspricht, den Sie zuvor erwähnt haben.Die Wikipedia: Liste der Unix-Befehle und Linuxconfig: Linux-Befehle sind auf jeden Fall einen Blick wert.
Viele Leute
echo $PATH
werfen jedoch einen Blick in die Verzeichnisse, die von angezeigt werden, und schauen dann auf die Manpage, um weitere Informationen zu erhalten.quelle