Jump to content

GNU Core Utilities

From Wikipedia, the free encyclopedia
(Redirected from Coreutils)
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]

In Unix-based systems, the term file refers to all file system items including regular files and special files such as directories.

File utilities

[edit]
Name Description
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]
Name Description
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]
Name Description
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
[ A synonym for test; 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]