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 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 Zählt 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

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

Siehe auch

Unix-Kommando MinGW

Weblinks Website der GNU Core Utilities (englisch)

Einzelnachweise

Kategorie:Linux-Software Kategorie:Unix-Software Kategorie:GNU-Paket