Jump to content

GNU Core Utilities

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
GNU Core Utilities
Developer(s)GNU Project
Stable release
9.7[1] Edit this on Wikidata / 9 April 2025
Repository
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/

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 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
  • factorFactors 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]

See also


References

  1. ^ Pádraig Brady (9 April 2025). "coreutils-9.7 released [stable]". Retrieved 9 April 2025.
  2. ^ "The GNU Core Utilities Open Source Project on Open Hub: Languages Page". Archived from the original on 2019-03-28. Retrieved 2019-03-28.
  3. ^ "GNU file utilities release 1.0". groups.google.com.
  4. ^ "GNU shell programming utilities released". groups.google.com.
  5. ^ "new GNU file and text utilities released". groups.google.com.
  6. ^ "GNU's Who".
  7. ^ Meyering, Jim (2003-01-13). "README-package-renamed-to-coreutils". Archived from the original on 2019-12-25. Retrieved 2018-08-15.
  8. ^ Meyering, Jim (2007-07-23). "COPYING: Update to Version 3". Archived from the original on 2019-12-25. Retrieved 2018-08-15.