This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "GNU Core Utilities" β news Β· newspapers Β· books Β· scholar Β· JSTOR (June 2011) (Learn how and when to remove this message) |
| GNU Core Utilities | |
|---|---|
| Developer | GNU Project |
| Stable release | |
| 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.gnu.org/software/coreutils/ |
| Repository | |
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
[edit]Currently, there are over 100 commands implemented by coreutils, with the commands 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
[edit]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
[edit]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
[edit]archβ Reports machine hardware name (same asuname -m)basenameβ 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
[edit]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]
In April 2026, Canonical is planning to replace the standard, C-based coreutils package with one written in Rust in their release of Ubuntu 25.10 and 26.04 LTS.[9] A preview version of the package is currently available, though some complain about performance and security issues.[10]
See also
[edit]- 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 librariesPages displaying short descriptions of redirect targets
- 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
[edit]- ^ PΓ‘draig Brady (4 February 2026). "coreutils-9.10 released [stable]". Retrieved 4 February 2026.
- ^ "The GNU Core Utilities Open Source Project on Open Hub: Languages Page". openhub.net. Archived from the original on 28 March 2019. Retrieved 28 March 2019.
- ^ MacKenzie, David J. (8 February 1990). "GNU file utilities release 1.0". groups.google.com. Archived from the original on 28 April 2023. Retrieved 24 September 2025.
- ^ MacKenzie, David J. (16 July 1991). "GNU shell programming utilities released". groups.google.com. Archived from the original on 28 April 2023. Retrieved 28 April 2023.
- ^ MacKenzie, David J. (22 August 1991). "new GNU file and text utilities released". groups.google.com. Archived from the original on 3 December 2024. Retrieved 24 September 2025.
- ^ "GNU's Who". gnu.org. Archived from the original on 28 April 2023. Retrieved 28 April 2023.
- ^ Meyering, Jim (13 January 2003). "readme-package-renamed-to-coreutils". git.savannah.gnu.org. Archived from the original on 25 December 2019. Retrieved 15 August 2018.
- ^ Meyering, Jim (23 July 2007). "copying: Update to Version 3". git.savannah.gnu.org. Archived from the original on 25 December 2019. Retrieved 15 August 2018.
- ^ Rendek, Lubos (4 November 2025). "Ubuntu 26.04: Release Date and New Features in Resolute Raccoon". linuxconfig.org. Retrieved 10 November 2025.
- ^ Larabel, Michael (15 September 2025). "Ubuntu 25.10's Rust Coreutils Transition Has Uncovered Performance Shortcomings". Phoronix. Archived from the original on 9 November 2025. Retrieved 9 November 2025.
External links
[edit]- Official website
- "GNU Coreutils". gnu.org. Retrieved 24 September 2025. - Manual
- "Readme". git.savannah.gnu.org. Retrieved 24 September 2025.
- "The Heirloom Toolchest". heirloom.sourceforge.net. Retrieved 24 September 2025. β An alternative set of utilities
- Both, David (24 April 2018). "An introduction to the GNU Core Utilities". opensource.com. Retrieved 24 September 2025.
- "Rosetta Stone For *Nix". bhami.com. Retrieved 24 September 2025. β configurable list of equivalent programs for *nix systems.
- RΓΆsler, Wolfram (2007). "The Unix Acronym List". roesler-ac.de. Archived from the original on 6 August 2024. Retrieved 24 September 2025. β explains the names of many Unix commands.
- "The UNIX System Homepage". unix.org. Retrieved 24 September 2025.
