GNU Core Utilities
| GNU Core Utilities | |
|---|---|
| Developer(s) | GNU Project |
| Stable release | 9.7[1] |
| Repository | |
| Written in | C, shell script[2] |
| Operating system | Unix-like |
| Type | Miscellaneous utilities |
| License | 2007, GPL 3.0 or later since version 6.10 2002, GPL 2.0 or later until version 6.9 |
| Website | www |
The GNU Core Utilities or coreutils is a collection of GNU software that implements many standard, Unix-based shell commands. The utilities generally provide POSIX compliant interface when the POSIXLY_CORRECT environment variable is set, but otherwise offers a superset to the standard interface. For example, the utilities support long options and options after parameters. This environment variable enables a different functionality in BSD.
Similar collections are available in the FOSS ecosystem, with a slightly different scope and focus (less functionality), or license. For example, BusyBox which is licensed under GPL-2.0-only, and Toybox which is licensed under 0BSD.
Commands
The commands implemented by coreutils are listed below. Throughout this article and customary for Unix-based systems, the term file refers to all file system items including regular files and special files such as directories.
File utilities
chcon– Changes file security context (SELinux)chgrp– Changes file group ownershipchown– Changes file user ownershipchmod– Changes file permissionscp– Copies filesdd– Copies and converts file datadf– Reports file system free spacedir– Likels -C -b; by default lists files in columns, sorted verticallydircolors– Configures colors used forlsoutputinstall– Copies files and sets file attributesln– Creates a link to a filels– Lists filesmkdir– Creates directoriesmkfifo– Creates named pipes (FIFOs)mknod– Creates block or character special filesmktemp– Creates temporary regular files or directoriesmv– Moves and renames filesrealpath– Reports the absolute or relative path of a filerm– Deletes filesrmdir– Deletes empty directoriesshred– Overwrites a file to hide its contents and optionally deletes itsync– Flushes file system bufferstouch– Changes file timestamps; creating files if they do not existtruncate– Sets the size of a file via truncation or extensionvdir– Likels -l -b; by default lists files in long format
Text utilities
b2sum– Computes and checks BLAKE2b message digestbase32– Encodes or decodes base32base64– Encodes or decodes base64basenc– Encodes or decodes various encodings including hexadecimal, base32, base64, and Z85cat– Concatenates filescksum– Report or compute the checksum of filescomm– Compares two sorted files line by linecsplit– Splits a file into sections determined by context linescut– Removes sections from each line of filesexpand– Converts tabs to spacesfmt– Formats textfold– Wraps each input line to fit in specified widthhead– Outputs the first part of filesjoin– Joins lines of two files on a common fieldmd5sum– Computes and checks MD5 message digestnl– Numbers lines of filesnumfmt– Formats numbersod– Dumps files in octal and other formatspaste– Merges lines of filesptx– Produces a permuted index of file contentspr– Paginates or columnates filessha1sum,sha224sum,sha256sum,sha384sum,sha512sum– Computes and checks SHA-1/SHA-2 message digestsshuf– Generates random permutationssort– Sorts lines of text filessplit– Splits a file into piecessum– Checksums and counts the blocks in a filetac– Concatenates files in reverse order; line by linetail– Outputs the last part of filestr– Translates or deletes characterstsort– Performs a topological sortunexpand– Converts spaces to tabsuniq– Removes duplicate lines from a sorted filewc– Reports the number of bytes, words, and lines in files
Shell utilities
arch– Reports machine hardware name; same asuname -mbasename– Removes the path prefix from a given pathnamechroot– Changes the root directorydate– Reports or sets the system date and timedirname– Strips non-directory suffix from file namedu– Shows disk usage on file systemsecho– Outputs textenv– Reports and modifies environment variablesexpr– Evaluates expressionsfactor– Factors numbersfalse– Does nothing but exit with unsuccessful statusgroups– Reports the groups of which the user is a memberhostid– Reports the numeric identifier for the current hostid– Reports the real or effective UID and GIDlink– Creates a link to a filelogname– Reports the user's login namenice– Modifies scheduling prioritynohup– Allows a command to continue running after logging outnproc– Queries the number of (active) processorspathchk– Checks whether file names are valid or portablepinky– A lightweight version of fingerprintenv– Reports environment variablesprintf– Formats textpwd– Reports the current working directoryreadlink– Reports the value of a symbolic linkruncon– Run command with specified security contextseq– Reports a sequence of numberssleep– Blocks (delays, waits) for a specified amount of timestat– Reports information about an inodestdbuf– Runs a command with custom standard streams configurationstty– Changes and reports terminal line settingstee– Sends output to multiple filestest– Evaluates an expressiontimeout– Runs a command with a time limittrue– Does nothing but exit with success statustty– Reports the terminal nameuname– Reports system informationunlink– Removes files viaunlink()functionuptime– Reports how long the system has been runningusers– Reports the user names of users currently logged into the current hostwho– Reports logged-in userswhoami– Reports the effective useridyes– Outputs a string repeatedly[– Synonym for test that enables expressions like[ expression ]
History
In 1990, David MacKenzie announced GNU fileutils.[3]
In 1991, MacKenzie announced GNU shellutils and GNU textutils.[4][5] Moreover, Jim Meyering became the maintainer of the packages (known now as coreutils) and has remained so since.[6]
In September 2002, the GNU coreutils were created by merging the earlier packages textutils, shellutils, and fileutils, along with some other miscellaneous utilities.[7]
In July 2007, the license of the GNU coreutils was updated from GPL-2.0-or-later to GPL-3.0-or-later.[8]
See also
- GNOME Core Applications – Software applications built with the GNOME philosophy in mind
- GNU Binutils – GNU software development tools for executable code
- List of GNU packages
- List of KDE applications – Set of applications and supporting libraries
- List of POSIX commands
- List of Unix daemons
- List of web browsers for Unix and Unix-like operating systems
- Toybox – Collection of Unix tools in single executable file
- Unix philosophy – Software development philosophy
- util-linux – Package of Linux utilities from the Linux Kernel Organization
References
- ^ Pádraig Brady (9 April 2025). "coreutils-9.7 released [stable]". Retrieved 9 April 2025.
- ^ "The GNU Core Utilities Open Source Project on Open Hub: Languages Page". Archived from the original on 2019-03-28. Retrieved 2019-03-28.
- ^ "GNU file utilities release 1.0". groups.google.com.
- ^ "GNU shell programming utilities released". groups.google.com.
- ^ "new GNU file and text utilities released". groups.google.com.
- ^ "GNU's Who".
- ^ Meyering, Jim (2003-01-13). "README-package-renamed-to-coreutils". Archived from the original on 2019-12-25. Retrieved 2018-08-15.
- ^ Meyering, Jim (2007-07-23). "COPYING: Update to Version 3". Archived from the original on 2019-12-25. Retrieved 2018-08-15.
External links
- Official website
- Manual
- README
- The Heirloom Toolchest - An alternative set of utilities
- opensource.com article: gnu-core-utilities on 4 Apr 2018 by David Both (Correspondent)
- Rosetta Stone For *Nix – configurable list of equivalent programs for *nix systems.
- The Unix Acronym List – explains the names of many Unix commands.
- The UNIX System Homepage