GNU Core Utilities

unter der General Public License veröffentlichte Sammlung von grundlegenden Befehlszeilen-Programmen

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).

GNU Core Utilities

Basisdaten

Entwickler GNU-Projekt
Aktuelle Version 9.5[1]
(28. März 2024)
Betriebssystem verfügbar für
Unix, Unixoide u. a. POSIX-kompatible;
vorinstalliert bei
GNU/Linux, Haiku, …
Programmier­sprache C[2]
Kategorie Unix-Programme
Lizenz GPL
deutschsprachig ja
gnu.org/software/coreutils

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

Bearbeiten
Das Debian-Paket coreutils 5.2.1-2 enthält die folgenden Programme:
File Utilities
chgrp Ändert die Gruppe von Dateien oder Verzeichnissen change group
chown Ändert den Besitzer von Dateien oder Verzeichnissen change owner
chmod Ändert die Berechtigungen von Dateien oder Verzeichnissen change mode
cp Kopiert Dateien oder Verzeichnisse copy
dd Konvertiert und kopiert Dateien dump data
df Zeigt den freien Speicherplatz eines Dateisystems an disk space free
dir Wie ls directory
dircolors Definiert Farben für ls directory entry colors
install Kopiert Dateien und Verzeichnisse und setzt Attribute install
ln Erstellt Verknüpfungen mit Dateien oder Verzeichnissen link node
ls Listet Dateien oder Verzeichnisse auf list directory
mkdir Erstellt Verzeichnisse make directory
mkfifo Erstellt Pipes (FIFOs) make ‘first in first out’
mknod Erstellt Gerätedateien make node
mv Verschiebt Dateien oder Verzeichnisse bzw. benennt sie um move
rm Löscht Dateien remove
rmdir Löscht Verzeichnisse (auch rekursiv) remove directory
shred Löscht Dateien unwiederbringlich durch Überschreiben shred file
sync Schreibt Dateisystempuffer auf die Festplatte synchronize data
touch Ändert Zeitstempel von Dateien und Verzeichnissen touch file attributes
vdir Variante von dir variant of dir
Text utilities
awk Programmiersprache Alfred V. Aho, Peter J. Weinberger und Brian W. Kernighan
cat Hängt Dateien aneinander concatenate files
cksum Berechnet Prüfsummen und die Anzahl der Bytes von Dateien checksum
comm Vergleicht zwei sortierte Dateien zeilenweise compare & merge (?)
csplit Teilt Dateien abhängig vom Inhalt in mehrere Teile split via context line
cut Entfernt Abschnitte aus jeder Zeile einer Datei cut parts of a file
expand Konvertiert Tabulatorzeichen in Leerzeichen expand white space
fmt Einfacher Textformatierer format text
fold Bricht Zeilen auf eine bestimmte Länge um. Keine UTF-8-Unterstützung
head Zeigt nur den Anfang einer Datei an show head
join Vereinigt Zeilen aus zwei Dateien mit einem gemeinsamen Feld join lines of two files
md5sum Berechnet und vergleicht MD5-Prüfsummen print or check MD5 checksums
nl Fügt einer Datei Zeilennummern hinzu add number lines
od Listet den Inhalt von Dateien in verschiedenen Formaten auf, z. B. hexadezimal octal dump
paste Vereinigt Zeilen von Dateien paste lines of files
ptx Erstellt einen permutierten Index von Dateiinhalten build permuted index
pr Formatiert Dateien zum Drucken convert text files for printing
sed Bearbeitet Text-Datenströme stream editor
sha1sum Berechnet und vergleicht SHA1-Prüfsummen print or check SHA1 checksums
sort Sortiert Zeilen einer oder mehrerer Datei(en) sort lines of a file
split Teilt eine Datei in Stücke auf split file content
sum Zeigt Prüfsummen und Anzahl der Blöcke einer Datei an checksum
tac Hängt Dateien in umgekehrter Richtung aneinander (letzte Zeile zuerst) reverse cat
tail Zeigt nur das Ende einer Datei an show tail
tr Ersetzt oder löscht Zeichen in einer Datei. Keine UTF-8-Unterstützung translate characters
tsort Führt eine topologische Sortierung aus topologic sort
unexpand Konvertiert Leerzeichen in Tabulatorzeichen unexpand white space
uniq Löscht mehrfache gleiche Zeilen aus einer sortierten Datei show unique lines
wc Berechnet die Anzahl von Bytes, Wörtern und Zeilen einer Datei word count
Shell Utilities
basename Entfernt Pfad und optional ein Suffix aus einem vollständigen Dateinamen base part of pathname
chroot Führt einen Befehl mit einem bestimmten Stammverzeichnis aus change root directory
date Zeigt oder setzt die Systemzeit system date time
dirname Zeigt nur den Pfad eines vollständigen Dateinamens an directory part of pathname
du Zeigt die Speicherplatzbelegung in einem Dateisystem disk usage
echo Gibt einen Text aus echo stdin
env Setzt Umgebungsvariablen und führt Programme aus environment settings
expr Wertet Ausdrücke aus evaluate expression
factor Berechnet Primfaktoren evaluate prime factor
false Tut nichts, liefert aber einen fehlerhaften Endestatus zurück false
groups Zeigt die Gruppen an, denen ein Benutzer angehört groups of a user
hostid Zeigt eine Nummer zur Identifizierung des Rechners an host identifier
id Zeigt Namen und Gruppenzugehörigkeit eines Benutzers an. user's identity
link Erstellt einen harten Link auf eine Datei link to a file
logname Zeigt den Namen des Nutzerkontos an login name
nice Ändert die Priorität eines Prozesses be nice
nohup Führt einen Befehl aus, der auch nach dem Abmelden weiterläuft no hang up
pathchk Prüft Dateinamen auf Portabilität path check
pinky Zeigt Informationen zu einem Benutzer an
printenv Zeigt Umgebungsvariablen an print environment settings
printf Gibt Daten formatiert aus print format
pwd Zeigt das aktuelle Arbeitsverzeichnis an print working directory
readlink Zeigt Informationen zu einer symbolischen Verknüpfung an read link
seq Gibt eine Folge von Zahlen aus sequence
sleep Wartet eine bestimmte Zeit
stat Gibt Dateisystem-Informationen zu einer Datei aus state of corresponding inode
stty Setzt Terminal-Einstellungen set teletype
tee Zweigt Datenstrom in eine Datei ab tee connector (T-Stück)
test Prüft Dateitypen und wertet Ausdrücke aus
true Tut nichts, liefert aber einen erfolgreichen Endestatus zurück true
tty Zeigt den Namen des Terminals an teletype
uname Zeigt Informationen zum Betriebssystem an unix name
unlink Löscht eine Datei mit der unlink-Funktion
users Zeigt die aktuell am Rechner angemeldeten Benutzer gemäß einer bestimmten Datei an
who Zeigt die aktuell am Rechner angemeldeten Benutzer an
whoami Zeigt die effektive Benutzeridentität an, wird durch id erweitert who am i
yes Gibt wiederholt einen Text aus (für Ja-Antwort genutzt)
Andere Utilities
[ ... ] Syntax-Alternative zu test

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

Bearbeiten
Portal: Freie Software – Übersicht zu Wikipedia-Inhalten zum Thema Freie Software
Bearbeiten

Einzelnachweise

Bearbeiten
  1. Pádraig Brady: coreutils-9.5 released [stable]. 28. März 2024 (abgerufen am 28. März 2024).
  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.