GNU Core Utilities

From Wikipedia, the free encyclopedia
(Redirected from Coreutils)
Jump to navigation Jump to search

GNU Core Utilities
DeveloperGNU Project
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC, shell script[1]
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    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 | edit source]

    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

    [edit | edit source]
    • 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 | edit source]
    • 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 | edit source]
    • 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 | edit source]

    In 1990, David MacKenzie announced GNU fileutils.[2]

    In 1991, MacKenzie announced GNU shellutils and GNU textutils.[3][4] Moreover, Jim Meyering became the maintainer of the packages (known now as coreutils) and has remained so since.[5]

    In September 2002, the GNU coreutils were created by merging the earlier packages textutils, shellutils, and fileutils, along with some other miscellaneous utilities.[6]

    In July 2007, the license of the GNU coreutils was updated from GPL-2.0-or-later to GPL-3.0-or-later.[7]

    On 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.[8] A preview version of the package is currently available, though some complain about performance and security issues.[9]

    See also

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').


    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]
    • Official website
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). - Manual
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). – An alternative set of utilities
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). – configurable list of equivalent programs for *nix systems.
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). – explains the names of many Unix commands.
    • Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).