GNU Core Utilities
This article needs additional citations for verification. (June 2011) |
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
[edit]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
[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 forls
outputinstall
– 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]
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 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
[edit]- ^ 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
[edit]- 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