Jump to content

GNU Core Utilities

From Wikipedia, the free encyclopedia
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

[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 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

[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
  • 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

[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]


References

[edit]
  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.
[edit]