GNU Core Utilities
This article needs additional citations for verification. (June 2011) |
Developer(s) | GNU Project |
---|---|
Stable release | 9.7[1] ![]() |
Repository | |
Written in | C, shell script[2] |
Operating system | Unix-like |
Type | Miscellaneous utilities |
License | 2007, GPL 3.0 or later since version 6.10 2002, GPL 2.0 or later until version 6.9 |
Website | www |
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]- GNOME Core Applications – Software applications built with the GNOME philosophy in mind
- GNU Binutils – GNU software development tools for executable code
- List of GNU packages
- List of KDE applications – Set of applications and supporting libraries
- List of POSIX commands
- List of Unix daemons
- List of web browsers for Unix and Unix-like operating systems
- Toybox – Collection of Unix tools in single executable file
- Unix philosophy – Software development philosophy
- util-linux – Package of Linux utilities from the Linux Kernel Organization
References
[edit]- ^ Pádraig Brady (9 April 2025). "coreutils-9.7 released [stable]". Retrieved 9 April 2025.
- ^ "The GNU Core Utilities Open Source Project on Open Hub: Languages Page". Archived from the original on 2019-03-28. Retrieved 2019-03-28.
- ^ "GNU file utilities release 1.0". groups.google.com.
- ^ "GNU shell programming utilities released". groups.google.com.
- ^ "new GNU file and text utilities released". groups.google.com.
- ^ "GNU's Who".
- ^ Meyering, Jim (2003-01-13). "README-package-renamed-to-coreutils". Archived from the original on 2019-12-25. Retrieved 2018-08-15.
- ^ Meyering, Jim (2007-07-23). "COPYING: Update to Version 3". Archived from the original on 2019-12-25. Retrieved 2018-08-15.
External links
[edit]- Official website
- Manual
- README
- The Heirloom Toolchest - An alternative set of utilities
- opensource.com article: gnu-core-utilities on 4 Apr 2018 by David Both (Correspondent)
- Rosetta Stone For *Nix – configurable list of equivalent programs for *nix systems.
- The Unix Acronym List – explains the names of many Unix commands.
- The UNIX System Homepage