GNU Core Utilities

GNU Core Utilities

(c) Aurelio A. Heckert, CC BY-SA 2.0
Basisdaten

EntwicklerGNU-Projekt
Aktuelle Version9.4[1]
(29. August 2023)
Betriebssystemverfügbar für
Unix, Unixoide u. a. POSIX-kompatible;
vorinstalliert bei
GNU/Linux, Haiku, …
ProgrammierspracheC[2]
KategorieUnix-Programme
LizenzGPL
deutschsprachigja
gnu.org/software/coreutils

Die GNU Core Utilities (‚Kernprogramme‘), kurz coreutils, sind eine vom GNU-Projekt unter der General Public License veröffentlichte Sammlung von grundlegenden Befehlszeilen-Programmen wie beispielsweise das zum Auflisten von Dateien verwendete ls. Die Sammlung stellt die Funktionalität der üblichen Unix-Kommandos zur Verfügung und ist für viele verschiedene Betriebssysteme verfügbar, insbesondere für GNU/Linux, aber auch für Windows mit dem WSL oder Cygwin. Die Befehlszeilenprogramme orientieren sich am POSIX-Standard, sind aber bewusst nicht vollständig konform. Die Programme beschränken sich, wie bei Unix üblich, auf eine bestimmte Aufgabe. Dadurch können sie einfach in umfangreichere Befehle oder Programme bzw. Skripte eingefügt werden (siehe Unix-Philosophie).

Unterstützt werden viele Hardwareplattformen, beispielsweise x86, SPARC, ARM und PowerPC.

Die Sammlung fasst die ursprünglich einzeln angebotenen Pakete textutils (für Texte), shellutils (für die Shell), und fileutils (für Dateien) in einem zusammen. Sie wird auch in anderen Zusammenstellungen gepflegt, so enthält beispielsweise BusyBox Versionen der meisten der unten gelisteten Programme.

Enthaltene Programme

Das Debian-Paket coreutils 5.2.1-2 enthält die folgenden Programme:
File Utilities
chgrpÄndert die Gruppe von Dateien oder Verzeichnissenchange group
chownÄndert den Besitzer von Dateien oder Verzeichnissenchange owner
chmodÄndert die Berechtigungen von Dateien oder Verzeichnissenchange mode
cpKopiert Dateien oder Verzeichnissecopy
ddKonvertiert und kopiert Dateiendump data
dfZeigt den freien Speicherplatz eines Dateisystems andisk space free
dirWie lsdirectory
dircolorsDefiniert Farben für lsdirectory entry colors
installKopiert Dateien und Verzeichnisse und setzt Attributeinstall
lnErstellt Verknüpfungen mit Dateien oder Verzeichnissenlink node
lsListet Dateien oder Verzeichnisse auflist directory
mkdirErstellt Verzeichnissemake directory
mkfifoErstellt Pipes (FIFOs)make ‘first in first out’
mknodErstellt Gerätedateienmake node
mvVerschiebt Dateien oder Verzeichnisse bzw. benennt sie ummove
rmLöscht Dateienremove
rmdirLöscht Verzeichnisse (auch rekursiv)remove directory
shredLöscht Dateien unwiederbringlich durch Überschreibenshred file
syncSchreibt Dateisystempuffer auf die Festplattesynchronize data
touchÄndert Zeitstempel von Dateien und Verzeichnissentouch file attributes
vdirVariante von dirvariant of dir
Text utilities
catHängt Dateien aneinanderconcatenate files
cksumBerechnet Prüfsummen und die Anzahl der Bytes von Dateienchecksum
commVergleicht zwei sortierte Dateien zeilenweisecompare & merge (?)
csplitTeilt Dateien abhängig vom Inhalt in mehrere Teilesplit via context line
cutEntfernt Abschnitte aus jeder Zeile einer Dateicut parts of a file
expandKonvertiert Tabulatorzeichen in Leerzeichenexpand white space
fmtEinfacher Textformatiererformat text
foldBricht Zeilen auf eine bestimmte Länge um. Keine UTF-8-Unterstützung
headZeigt nur den Anfang einer Datei anshow head
joinVereinigt Zeilen aus zwei Dateien mit einem gemeinsamen Feldjoin lines of two files
md5sumBerechnet und vergleicht MD5-Prüfsummenprint or check MD5 checksums
nlFügt einer Datei Zeilennummern hinzuadd number lines
odListet den Inhalt von Dateien in verschiedenen Formaten auf, z. B. hexadezimaloctal dump
pasteVereinigt Zeilen von Dateienpaste lines of files
ptxErstellt einen permutierten Index von Dateiinhaltenbuild permuted index
prFormatiert Dateien zum Druckenconvert text files for printing
sha1sumBerechnet und vergleicht SHA1-Prüfsummenprint or check SHA1 checksums
sortSortiert Zeilen einer oder mehrerer Datei(en)sort lines of a file
splitTeilt eine Datei in Stücke aufsplit file content
sumZeigt Prüfsummen und Anzahl der Blöcke einer Datei anchecksum
tacHängt Dateien in umgekehrter Richtung aneinander (letzte Zeile zuerst)reverse cat
tailZeigt nur das Ende einer Datei anshow tail
trErsetzt oder löscht Zeichen in einer Datei. Keine UTF-8-Unterstützungtranslate characters
tsortFührt eine topologische Sortierung austopologic sort
unexpandKonvertiert Leerzeichen in Tabulatorzeichenunexpand white space
uniqLöscht mehrfache gleiche Zeilen aus einer sortierten Dateishow unique lines
wcBerechnet die Anzahl von Bytes, Wörtern und Zeilen einer Dateiword count
Shell Utilities
basenameEntfernt Pfad und optional ein Suffix aus einem vollständigen Dateinamenbase part of pathname
chrootFührt einen Befehl mit einem bestimmten Stammverzeichnis auschange root directory
dateZeigt oder setzt die Systemzeitsystem date time
dirnameZeigt nur den Pfad eines vollständigen Dateinamens andirectory part of pathname
duZeigt die Speicherplatzbelegung in einem Dateisystemdisk usage
echoGibt einen Text ausecho stdin
envSetzt Umgebungsvariablen und führt Programme ausenvironment settings
exprWertet Ausdrücke ausevaluate expression
factorBerechnet Primfaktorenevaluate prime factor
falseTut nichts, liefert aber einen fehlerhaften Endestatus zurückfalse
groupsZeigt die Gruppen an, denen ein Benutzer angehörtgroups of a user
hostidZeigt eine Nummer zur Identifizierung des Rechners anhost identifier
idZeigt Namen und Gruppenzugehörigkeit eines Benutzers an.user's identity
linkErstellt einen harten Link auf eine Dateilink to a file
lognameZeigt den Namen des Nutzerkontos anlogin name
niceÄndert die Priorität eines Prozessesbe nice
nohupFührt einen Befehl aus, der auch nach dem Abmelden weiterläuftno hang up
pathchkPrüft Dateinamen auf Portabilitätpath check
pinkyZeigt Informationen zu einem Benutzer an
printenvZeigt Umgebungsvariablen anprint environment settings
printfGibt Daten formatiert ausprint format
pwdZeigt das aktuelle Arbeitsverzeichnis anprint working directory
readlinkZeigt Informationen zu einer symbolischen Verknüpfung anread link
seqGibt eine Folge von Zahlen aussequence
sleepWartet eine bestimmte Zeit
statGibt Dateisystem-Informationen zu einer Datei ausstate of corresponding inode
sttySetzt Terminal-Einstellungenset teletype
teeZweigt Datenstrom in eine Datei abtee connector (T-Stück)
testPrüft Dateitypen und wertet Ausdrücke aus
trueTut nichts, liefert aber einen erfolgreichen Endestatus zurücktrue
ttyZeigt den Namen des Terminals anteletype
unameZeigt Informationen zum Betriebssystem anunix name
unlinkLöscht eine Datei mit der unlink-Funktion
usersZeigt die aktuell am Rechner angemeldeten Benutzer gemäß einer bestimmten Datei an
whoZeigt die aktuell am Rechner angemeldeten Benutzer an
whoamiZeigt die effektive Benutzeridentität an, wird durch id erweitertwho am i
yesGibt wiederholt einen Text aus(für Ja-Antwort genutzt)
Andere Utilities
[ ... ]Syntax-Alternative zu test

Kritik

Häufiger wird kritisiert, dass GNU-Programme Bloatware seien,[3] dies wird unter anderem daran festgemacht, dass die GNU-Version von true aus 80 Zeilen Code besteht,[4] wobei nach etablierten C-Standards drei Zeilen Code ausreichen würden. Andere Unix-ähnliche Systeme wie zum Beispiel OpenBSD nutzen solche „3-Zeiler“.[5] Des Weiteren erweitern GNU-Versionen oft die Funktionalität von Unix-Programmen, wodurch die Unix-Programme mit den GNU-Programmen inkompatibel werden.[3]

Siehe auch

Weblinks

Einzelnachweise

  1. Pádraig Brady: coreutils-9.4 released [stable]. 29. August 2023 (abgerufen am 29. August 2023).
  2. The coreutils Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 5. September 2018).
  3. a b GNU is Bloated! Abgerufen am 4. August 2019.
  4. upstream mirror. Contribute to coreutils/coreutils development by creating an account on GitHub. coreutils, 2. August 2019, abgerufen am 4. August 2019.
  5. Public git conversion mirror of OpenBSD's official CVS src repository. Pull requests not accepted: send diffs to the tech@ mailing list. - openbsd/src. OpenBSD, 3. August 2019, abgerufen am 4. August 2019.

Auf dieser Seite verwendete Medien

Heckert GNU white.svg
(c) Aurelio A. Heckert, CC BY-SA 2.0
A bold GNU head.