GNU Core Utilities
| This article needs additional citations for verification.  (June 2011) | 
| GNU Core Utilities | |
|---|---|
| Developer | GNU Project | 
| Stable release | 9.8[1]   / 22 September 2025 | 
| 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 ownership
- chown– Changes file user ownership
- chmod– Changes file permissions
- cp– Copies files
- dd– Copies and converts file data
- df– Reports file system free space
- dir– Like- ls -C -b; by default lists files in columns, sorted vertically
- dircolors– Configures colors used for- lsoutput
- install– Copies files and sets file attributes
- ln– Creates a link to a file
- ls– Lists files
- mkdir– Creates directories
- mkfifo– Creates named pipes (FIFOs)
- mknod– Creates block or character special files
- mktemp– Creates temporary regular files or directories
- mv– Moves and renames files
- realpath– Reports the absolute or relative path of a file
- rm– Deletes files
- rmdir– Deletes empty directories
- shred– Overwrites a file to hide its contents and optionally deletes it
- sync– Flushes file system buffers
- touch– Changes file timestamps; creating files if they do not exist
- truncate– Sets the size of a file via truncation or extension
- vdir– Like- ls -l -b; by default lists files in long format
Text utilities
[edit]- b2sum– Computes and checks BLAKE2b message digest
- base32– Encodes or decodes base32
- base64– Encodes or decodes base64
- basenc– Encodes or decodes various encodings including hexadecimal, base32, base64, and Z85
- cat– Concatenates files
- cksum– Report or compute the checksum of files
- comm– Compares two sorted files line by line
- csplit– Splits a file into sections determined by context lines
- cut– Removes sections from each line of files
- expand– Converts tabs to spaces
- fmt– Formats text
- fold– Wraps each input line to fit in specified width
- head– Outputs the first part of files
- join– Joins lines of two files on a common field
- md5sum– Computes and checks MD5 message digest
- nl– Numbers lines of files
- numfmt– Formats numbers
- od– Dumps files in octal and other formats
- paste– Merges lines of files
- ptx– Produces a permuted index of file contents
- pr– Paginates or columnates files
- sha1sum,- sha224sum,- sha256sum,- sha384sum,- sha512sum– Computes and checks SHA-1/SHA-2 message digests
- shuf– Generates random permutations
- sort– Sorts lines of text files
- split– Splits a file into pieces
- sum– Checksums and counts the blocks in a file
- tac– Concatenates files in reverse order; line by line
- tail– Outputs the last part of files
- tr– Translates or deletes characters
- tsort– Performs a topological sort
- unexpand– Converts spaces to tabs
- uniq– Removes duplicate lines from a sorted file
- wc– Reports the number of bytes, words, and lines in files
Shell utilities
[edit]- arch– Reports machine hardware name; same as- uname -m
- basename– Removes the path prefix from a given pathname
- chroot– Changes the root directory
- date– Reports or sets the system date and time
- dirname– Strips non-directory suffix from file name
- du– Shows disk usage on file systems
- echo– Outputs text
- env– Reports and modifies environment variables
- expr– Evaluates expressions
- factor– Factors numbers
- false– Does nothing but exit with unsuccessful status
- groups– Reports the groups of which the user is a member
- hostid– Reports the numeric identifier for the current host
- id– Reports the real or effective UID and GID
- link– Creates a link to a file
- logname– Reports the user's login name
- nice– Modifies scheduling priority
- nohup– Allows a command to continue running after logging out
- nproc– Queries the number of (active) processors
- pathchk– Checks whether file names are valid or portable
- pinky– A lightweight version of finger
- printenv– Reports environment variables
- printf– Formats text
- pwd– Reports the current working directory
- readlink– Reports the value of a symbolic link
- runcon– Run command with specified security context
- seq– Reports a sequence of numbers
- sleep– Blocks (delays, waits) for a specified amount of time
- stat– Reports information about an inode
- stdbuf– Runs a command with custom standard streams configuration
- stty– Changes and reports terminal line settings
- tee– Sends output to multiple files
- test– Evaluates an expression
- timeout– Runs a command with a time limit
- true– Does nothing but exit with success status
- tty– Reports the terminal name
- uname– Reports system information
- unlink– Removes files via- unlink()function
- uptime– Reports how long the system has been running
- users– Reports the user names of users currently logged into the current host
- who– Reports logged-in users
- whoami– Reports the effective userid
- yes– 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 (22 September 2025). "coreutils-9.8 released [stable]". Retrieved 22 September 2025.
- ^ "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. Retrieved 24 September 2025.
- ^ MacKenzie, David J. (16 July 1991). "GNU shell programming utilities released". groups.google.com.
- ^ MacKenzie, David J. (22 August 1991). "new GNU file and text utilities released". groups.google.com. Retrieved 24 September 2025.
- ^ "GNU's Who". gnu.org.
- ^ 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.
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.
 
	



