/bin : Wesentliche Kommandos (für alle Benutzer)

Zweck

Verzeichnis /bin enthält Kommandos, die sowohl vom Systemverwalter als auch von Benutzern verwendet werden können, und die auch dann benötigt werden, wenn keine weiteren Dateisysteme eingebunden sind (z.B. im Einzelbenutzer-Modus). Es darf auch Kommandos enthalten, die nur indirekt von Skripten aufgerufen werden. [1]

Anforderungen

In /bin darf es keine Unterverzeichnisse geben.

Die folgenden Kommandos oder symbolischen Links zu Kommandos werden in /bin benötigt:

KommandoBeschreibung
catVerketten von Dateien auf die Standardausgabe
chgrpÄndern der Gruppenzugehörigkeit von Dateien
chmodÄndern der Zugriffsrechte von Dateien
chownÄndern von Eigentümer oder Gruppeneigentümern von Dateien
cpKopieren von Dateien und Verzeichnissen
dateAnzeigen oder Setzen von Systemdatum/-zeit
ddKopieren und Konvertieren einer Datei
dfInformieren über Dateisysteme
dmesgAnzeigen der Systemkern-Meldungen
echoAnzeigen einer Textzeile
falseTue nichts und versage!
hostnameAnzeigen oder Setzen des Rechnernamens
killSenden von Signalen an Prozesse
lnErzeugen von Links zu Dateien
loginStarten einer Systemsitzung
lsAnzeigen von Verzeichnisinhalten
mkdirErzeugen von Verzeichnissen
mknodErzeugen einer speziellen Datei
moreBlättern durch einen Text
mountEinbinden von Dateisystemen
mvVerschieben oder Umbenennen von Dateien
psInformieren über Prozesse
pwdAnzeigen des aktuellen Verzeichnisses
rmLöschen von Dateien oder Verzeichnissen
rmdirLöschen leerer Verzeichnisse
sedStream-Editor "sed"
shKommandooberfläche "Bourne shell"
sttyAnzeigen und Ändern von Terminal-Einstellungen
suÄndern der Benutzer-ID
syncSchreiben von Dateisystempuffern erzwingen
trueTue nichts, aber erfolgreich!
umountLösen einer Dateisystem-Einbindung
unameAnzeigen von Systeminformationen

Wenn /bin/sh nicht die echte "Bourne shell" ist, so muss es ein fester oder symbolischer Link auf das tatsächliche shell-Kommando sein.

Die Kommandos [ und test müssen jeweils zusammen entweder unter /bin oder unter /usr/bin abgelegt werden.

TippHintergrund
 

Beispielsweise verhält sich "bash" unterschiedlich, je nachdem ob es mit sh oder bash aufgerufen wird. Außerdem zeigt die Verwendung eines symbolischen Links dem Benutzer an, dass /bin/sh nicht die echte Bourne shell ist.

Die Forderung, dass [ und test als Programmdateien vorhanden sein müssen, selbst wenn sie shell-intern implementiert sind, gründet sich auf den POSIX.2-Standard.

Optionen

Die folgenden Programme oder symbolischen Links zu Programmen müssen in /bin dann vorhanden sein, wenn auch die entsprechenden Subsysteme eingerichtet sind:

KommandoBeschreibung
cshKommandooberfläche "C shell" (optional)
edEditor "ed" (optional)
tarArchivierungsprogramm "tar" (optional)
cpioArchivierungsprogramm "cpio" (optional)
gzipGNU Kompressionsprogramm "gzip" (optional)
gunzipGNU Dekompressionsprogramm "gunzip" (optional)
zcatGNU Dekompressionsprogramm "zcat" (optional)
netstatNetzstatistik (optional)
pingICMP Netztest

Wenn gunzip und zcat vorhanden sind, müssen es symbolische Links zu gzip sein. /bin/csh darf ein symbolischer Link entweder zu /bin/tcsh oder zu /usr/bin/tcsh sein.

TippHintergrund
 

Die Kommandos tar, gzip und cpio sind hier ergänzt worden, um das Wiederherstellen eines Systems - mit einem noch intakten /-Dateisystem - möglich zu machen.

Umgekehrt sollten sie weggelassen werden, wenn ein Wiederherstellen von der Wurzelpartition aus niemals erwartet wird (z.B. bei einem ROM-Chip als Wurzel, wobei /usr über NFS eingebunden wird). Wenn ein Wiederherstellen des Systems über das Netz vorgesehen ist, dann müssen auch ftp oder tftp in der Wurzelpartition verfügbar sein, inclusive aller für die ftp-Verbindung benötigten Komponenten.

Fußnoten

[1]

Kommandos, die nicht wichtig genug sind, um hier abgelegt zu werden, gehören stattdessen nach /usr/bin. Solche, die nur von Nicht-Root-Benutzern verwendet werden (das X Window System, chsh, usw.) sind in der Regel nicht wichtig genug, um in der Wurzelpartition gespeichert zu werden.