coreutils

Category:Articles needing additional references from June 2011Category:All articles needing additional references

Category:Use dmy dates from September 2025

GNU Core Utilities
DeveloperGNU Project
Stable release
9.11[1] Edit this on Wikidata / 20 April 2026; 17 days ago (20 April 2026)
Written inC, shell script[2]
Operating systemUnix-like
TypeMiscellaneous utilities
License2007, GPL 3.0 or later since version 6.10
2002, GPL 2.0 or later until version 6.9
Websitewww.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

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

  • 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 ls output
  • 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

  • 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

  • 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

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

References

  1. "coreutils-9.11 released [stable]". 20 April 2026. Retrieved 21 April 2026.
  2. "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.
  3. 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.
  4. 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.
  5. 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.
  6. "GNU's Who". gnu.org. Archived from the original on 28 April 2023. Retrieved 28 April 2023.
  7. 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.
  8. 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.
  9. Rendek, Lubos (4 November 2025). "Ubuntu 26.04: Release Date and New Features in Resolute Raccoon". linuxconfig.org. Retrieved 10 November 2025.
  10. 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.
Category:Free software programmed in C Category:Free system software Category:GNU Project software#Core%20Utilities Category:Lists of software#Unix%20programs Category:Software using the GNU General Public License Category:System administration Category:Unix software Category:Unix SUS2008 utilities#%20