This is a list of POSIX (Portable Operating System Interface) commands as specified by IEEE Std 1003.1-2024, which is part of the Single UNIX Specification (SUS). These commands can be found on Unix operating systems and most Unix-like operating systems.
This is not a comprehensive list of all utilities that existed in the various historic Unix and Unix-like systems, as it excludes utilities that were not mandated by the aforementioned standard.
Name | Category | Status (Option code) | Description | First appeared |
---|---|---|---|---|
admin | SCCS | Optional (XSI) | Create and administer SCCS files | PWB UNIX |
alias | Misc | Mandatory | Define or display aliases | |
ar | Misc | Mandatory | Create and maintain library archives | Version 1 AT&T UNIX |
asa | Text processing | Optional (FR) | Interpret carriage-control characters | System V |
at | Process management | Mandatory | Execute commands at a later time | Version 7 AT&T UNIX |
awk | Text processing | Mandatory | Pattern scanning and processing language | Version 7 AT&T UNIX |
basename | Filesystem | Mandatory | Return non-directory portion of a pathname; see also dirname | Version 7 AT&T UNIX |
batch | Process management | Mandatory | Schedule commands to be executed in a batch queue | |
bc | Misc | Mandatory | Arbitrary-precision arithmetic language | Version 6 AT&T UNIX |
bg | Process management | Optional (UP) | Run jobs in the background | |
cc /c17 | C programming | Optional (CD) | Compile standard C programs | IEEE Std 1003.1-2024 |
cal | Misc | Optional (XSI) | Print a calendar | Version 5 AT&T UNIX |
cat | Filesystem | Mandatory | Concatenate and print files | PDP-7 UNIX |
cd | Filesystem | Mandatory | Change the working directory | Version 6 AT&T UNIX |
cflow | C programming | Optional (XSI) | Generate a C-language call graph | System V |
chgrp | Filesystem | Mandatory | Change the file group ownership | PWB UNIX |
chmod | Filesystem | Mandatory | Change the file modes/attributes/permissions | PDP-7 UNIX |
chown | Filesystem | Mandatory | Change the file ownership | PDP-7 UNIX |
cksum | Filesystem | Mandatory | Write file checksums and sizes | 4.4BSD |
cmp | Filesystem | Mandatory | Compare two files; see also diff | Version 1 AT&T UNIX |
comm | Text processing | Mandatory | Select or reject lines common to two files | Version 4 AT&T UNIX |
command | Shell programming | Mandatory | Execute a simple command | |
compress | Filesystem | Optional (XSI) | Compress data | 4.3BSD |
cp | Filesystem | Mandatory | Copy files | PDP-7 UNIX |
crontab | Misc | Mandatory | Schedule periodic background work | System V |
csplit | Text processing | Mandatory | Split files based on context | PWB UNIX |
ctags | C programming | Optional (SD) | Create a tags file | 3BSD |
cut | Text processing | Mandatory | Cut out selected fields of each line of a file | System III |
cxref | C programming | Optional (XSI) | Generate a C-language program cross-reference table | System V |
date | Misc | Mandatory | Display the date and time | Version 1 AT&T UNIX |
dd | Filesystem | Mandatory | Convert and copy a file | Version 5 AT&T UNIX |
delta | SCCS | Optional (XSI) | Make a delta (change) to an SCCS file | PWB UNIX |
df | Filesystem | Mandatory | Report free disk space | Version 1 AT&T UNIX |
diff | Text processing | Mandatory | Compare two files; see also cmp | Version 5 AT&T UNIX |
dirname | Filesystem | Mandatory | Return the directory portion of a pathname; see also basename | System III |
du | Filesystem | Mandatory | Estimate file space usage | Version 1 AT&T UNIX |
echo | Shell programming | Mandatory | Write arguments to standard output | Version 2 AT&T UNIX |
ed | Text processing | Mandatory | The standard text editor | PDP-7 UNIX |
env | Misc | Mandatory | Set the environment for command invocation | System III |
ex | Text processing | Optional (UP) | Text editor | 1BSD |
expand | Text processing | Mandatory | Convert tabs to spaces | 3BSD |
expr | Shell programming | Mandatory | Evaluate arguments as an expression | Version 7 AT&T UNIX |
false | Shell programming | Mandatory | Return false value | Version 7 AT&T UNIX |
fc | Misc | Optional (UP) | Process the command history list | |
fg | Process management | Optional (UP) | Run jobs in the foreground | |
file | Filesystem | Mandatory | Determine file type | Version 4 AT&T UNIX |
find | Filesystem | Mandatory | Find files | Version 1 AT&T UNIX |
fold | Text processing | Mandatory | Filter for folding lines | 1BSD |
fuser | Process management | Optional (XSI) | List process IDs of all processes that have one or more files open | System V |
gencat | Misc | Mandatory | Generate a formatted message catalog | |
get | SCCS | Optional (XSI) | Get a version of an SCCS file | PWB UNIX |
getconf | Misc | Mandatory | Get configuration values | |
getopts | Shell programming | Mandatory | Parse utility options | |
gettext | Misc | Mandatory | Retrieve text string from messages object | |
grep | Misc | Mandatory | Search text for a pattern | Version 4 AT&T UNIX |
hash | Misc | Mandatory | Hash database access method | |
head | Text processing | Mandatory | Copy the first part of files | PWB UNIX[ citation needed ] |
iconv | Text processing | Mandatory | Codeset conversion | HP-UX |
id | Misc | Mandatory | Return user identity | System V |
ipcrm | Misc | Optional (XSI) | Remove a message queue, semaphore set, or shared memory segment identifier | System V |
ipcs | Misc | Optional (XSI) | Report interprocess communication facilities status | System V |
jobs | Process management | Optional (UP) | Display status of jobs in the current session | |
join | Text processing | Mandatory | Merges two sorted text files based on the presence of a common field | Version 7 AT&T UNIX |
kill | Process management | Mandatory | Terminate or signal processes | Version 4 AT&T UNIX |
lex | C programming | Optional (CD) | Generate programs for lexical tasks | Version 7 AT&T UNIX |
link | Filesystem | Optional (XSI) | Create a hard link to a file | Version 1 AT&T UNIX |
ln | Filesystem | Mandatory | Link files | Version 1 AT&T UNIX |
locale | Misc | Mandatory | Get locale-specific information | |
localedef | Misc | Mandatory | Define locale environment | |
logger | Shell programming | Mandatory | Log messages | 4.3BSD |
logname | Misc | Mandatory | Return the user's login name | 4.4BSD |
lp | Text processing | Mandatory | Send files to a printer | System V |
ls | Filesystem | Mandatory | List directory contents | Version 1 AT&T UNIX |
m4 | Misc | Mandatory | Macro processor | PWB UNIX |
mailx | Misc | Mandatory | Process messages | Version 1 AT&T UNIX |
make | Programming | Optional (SD) | Maintain, update, and regenerate groups of programs | PWB UNIX |
man | Misc | Mandatory | Display system documentation | Version 2 AT&T UNIX |
mesg | Misc | Mandatory | Permit or deny messages | Version 1 AT&T UNIX |
mkdir | Filesystem | Mandatory | Make directories | Version 1 AT&T UNIX |
mkfifo | Filesystem | Mandatory | Make FIFO special files | 4.4BSD[ dubious – discuss ] |
more | Text processing | Optional (UP) | Display files on a page-by-page basis | 3BSD |
msgfmt | Misc | Mandatory | Create messages objects from messages object files | |
mv | Filesystem | Mandatory | Move or rename files | Version 1 AT&T UNIX |
newgrp | Misc | Mandatory | Change to a new group | Version 6 AT&T UNIX |
ngettext | Misc | Mandatory | Retrieve text string from messages object with plural form | |
nice | Process management | Mandatory | Invoke a utility with an altered nice value | Version 4 AT&T UNIX |
nl | Text processing | Optional (XSI) | Line numbering filter | System III |
nm | C programming | Optional (SD, XSI) | Write the name list of an object file | Version 1 AT&T UNIX |
nohup | Process management | Mandatory | Invoke a utility immune to hangups | Version 4 AT&T UNIX |
od | Misc | Mandatory | Dump files in various formats | Version 1 AT&T UNIX |
paste | Text processing | Mandatory | Merge corresponding or subsequent lines of files | Version 32V AT&T UNIX |
patch | Text processing | Mandatory | Apply changes to files | 4.3BSD |
pathchk | Filesystem | Mandatory | Check pathnames | |
pax | Misc | Mandatory | Portable archive interchange | 4.4BSD[ citation needed ] |
pr | Text processing | Mandatory | Paginate or columnate files for printing | Version 1 AT&T UNIX |
printf | Shell programming | Mandatory | Write formatted output | 4.3BSD-Reno |
prs | SCCS | Optional (XSI) | Print an SCCS file | PWB UNIX |
ps | Process management | Mandatory | Report process status | Version 4 AT&T UNIX |
pwd | Filesystem | Mandatory | Print working directory | Version 5 AT&T UNIX |
read | Shell programming | Mandatory | Read a line from standard input | |
readlink | Filesystem | Mandatory | Print destination of a symbolic link | |
realpath | Filesystem | Mandatory | Resolve a symbolic link | |
renice | Process management | Mandatory | Set nice values of running processes | 4BSD |
rm | Filesystem | Mandatory | Remove directory entries | Version 1 AT&T UNIX |
rmdel | SCCS | Optional (XSI) | Remove a delta from an SCCS file | PWB UNIX |
rmdir | Filesystem | Mandatory | Remove directories, if they are empty. | Version 1 AT&T UNIX |
sact | SCCS | Optional (XSI) | Print current SCCS file-editing activity | System III |
sccs | SCCS | Optional (XSI) | Front end for the SCCS subsystem | 4.3BSD |
sed | Text processing | Mandatory | Stream editor | Version 7 AT&T UNIX |
sh | Shell programming | Mandatory | Shell, the standard command language interpreter | Version 7 AT&T UNIX (in earlier versions, sh was either the Thompson shell or the PWB shell) |
sleep | Shell programming | Mandatory | Suspend execution for an interval | Version 4 AT&T UNIX |
sort | Text processing | Mandatory | Sort, merge, or sequence check text files | Version 1 AT&T UNIX |
split | Misc | Mandatory | Split files into pieces | Version 3 AT&T UNIX |
strings | C programming | Mandatory | Find printable strings in files | 2BSD |
strip | C programming | Optional (SD) | Remove unnecessary information from executable files | Version 1 AT&T UNIX |
stty | Misc | Mandatory | Set the options for a terminal | Version 2 AT&T UNIX |
tabs | Misc | Mandatory | Set terminal tabs | PWB UNIX |
tail | Text processing | Mandatory | Copy the last part of a file | PWB UNIX[ citation needed ] |
talk | Misc | Optional (UP) | Talk to another user | 4.2BSD |
tee | Shell programming | Mandatory | Duplicate the standard output | Version 5 AT&T UNIX |
test | Shell programming | Mandatory | Evaluate expression | Version 7 AT&T UNIX |
time | Process management | Mandatory | Retrieve and format time and date | Version 3 AT&T UNIX |
timeout | Process management | Mandatory | Run command with a time limit | Version 3 AT&T UNIX |
touch | Filesystem | Mandatory | Change file access and modification times | Version 7 AT&T UNIX |
tput | Misc | Mandatory | Change terminal characteristics | System V |
tr | Text processing | Mandatory | Translate characters | Version 4 AT&T UNIX |
true | Shell programming | Mandatory | Return true value | Version 7 AT&T UNIX |
tsort | Text processing | Mandatory | Topological sort | Version 7 AT&T UNIX |
tty | Misc | Mandatory | Return user's terminal name | Version 1 AT&T UNIX |
type | Misc | Optional (XSI) | Displays how a name would be interpreted if used as a command | |
ulimit | Misc | Optional (XSI) | Set or report file size limit | |
umask | Misc | Mandatory | Get or set the file mode creation mask | System III |
unalias | Misc | Mandatory | Remove alias definitions | |
uname | Misc | Mandatory | Return system name | PWB UNIX |
uncompress | Misc | Optional (XSI) | Expand compressed data | 4.3BSD |
unexpand | Text processing | Mandatory | Convert spaces to tabs | 3BSD |
unget | SCCS | Optional (XSI) | Undo a previous get of an SCCS file | System III |
uniq | Text processing | Mandatory | Report or filter out repeated lines in a file | Version 3 AT&T UNIX |
unlink | Filesystem | Optional (XSI) | Call the unlink function | Version 1 AT&T UNIX |
uucp | Network | Optional (UU) | System-to-system copy | Version 7 AT&T UNIX |
uudecode | Network | Mandatory | Decode a binary file | 4BSD |
uuencode | Network | Mandatory | Encode a binary file | 4BSD |
uustat | Network | Optional (UU) | uucp status inquiry and job control | System III |
uux | Process management | Optional (UU) | Remote command execution | Version 7 AT&T UNIX |
val | SCCS | Optional (XSI) | Validate SCCS files | System III |
vi | Text processing | Optional (UP) | Screen-oriented (visual) display editor | 1BSD |
wait | Process management | Mandatory | Await process completion | Version 4 AT&T UNIX |
wc | Text processing | Mandatory | Line, word and byte or character count | Version 1 AT&T UNIX |
what | SCCS | Optional (XSI) | Identify SCCS files | PWB UNIX |
who | System administration | Optional (XSI) | Display who is on the system | Version 1 AT&T UNIX |
write | Misc | Mandatory | Write to another user's terminal | Version 1 AT&T UNIX |
xargs | Shell programming | Mandatory | Construct argument lists and invoke utility | PWB UNIX |
xgettext | C programming | Optional (CD) | Extract gettext calls from C source code strings | IEEE Std 1003.1-2024 |
yacc | C programming | Optional (CD) | Yet another compiler compiler | PWB UNIX |
zcat | Text processing | Optional (XSI) | Expand and concatenate data | 4.3BSD |
The Portable Operating System Interface is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system and user-level application programming interfaces (APIs), along with command line shells and utility interfaces, for software compatibility (portability) with variants of Unix and other operating systems. POSIX is also a trademark of the IEEE. POSIX is intended to be used by both application and system developers.
The Single UNIX Specification (SUS) is a standard for computer operating systems, compliance with which is required to qualify for using the "UNIX" trademark. The standard specifies programming interfaces for the C language, a command-line shell, and user commands. The core specifications of the SUS known as Base Specifications are developed and maintained by the Austin Group, which is a joint working group of IEEE, ISO/IEC JTC 1/SC 22/WG 15 and The Open Group. If an operating system is submitted to The Open Group for certification, and passes conformance tests, then it is deemed to be compliant with a UNIX standard such as UNIX 98 or UNIX 03.
uniq
is a utility command on Unix, Plan 9, Inferno, and Unix-like operating systems which, when fed a text file or standard input, outputs the text with adjacent identical lines collapsed to one, unique line of text.
In computing, tar is a computer software utility for collecting many files into one archive file, often referred to as a tarball, for distribution or backup purposes. The name is derived from "tape archive", as it was originally developed to write data to sequential I/O devices with no file system of their own, such as devices that use magnetic tape. The archive data sets created by tar contain various file system parameters, such as name, timestamps, ownership, file-access permissions, and directory organization. POSIX abandoned tar in favor of pax, yet tar sees continued widespread use.
The FreeBSD Documentation License is the license that covers most of the documentation for the FreeBSD operating system.
basename is a standard computer program on Unix and Unix-like operating systems. When basename is given a pathname, it will delete any prefix up to the last slash ('/'
) character and return the result. basename is described in the Single UNIX Specification and is primarily used in shell scripts.
uname is a computer program in Unix and Unix-like computer operating systems that prints the name, version and other details about the current machine and the operating system running on it.
wc
is a command in Unix, Plan 9, Inferno, and Unix-like operating systems. The program reads either standard input or a list of computer files and generates one or more of the following statistics: newline count, word count, and byte count. If a list of files is provided, both individual file and total statistics follow.
pax is an archiving utility available for various operating systems and defined since 1995. Rather than sort out the incompatible options that have crept up between tar
and cpio
, along with their implementations across various versions of Unix, the IEEE designed a new archive utility pax that could support various archive formats with useful options from both archivers. The pax
command is available on Unix and Unix-like operating systems and on IBM i, and Microsoft Windows NT until Windows 2000.
Signals are standardized messages sent to a running program to trigger specific behavior, such as quitting or error handling. They are a limited form of inter-process communication (IPC), typically used in Unix, Unix-like, and other POSIX-compliant operating systems.
In computing, tee
is a command in command-line interpreters (shells) using standard streams which reads standard input and writes it to both standard output and one or more files, effectively duplicating its input. It is primarily used in conjunction with pipes and filters. The command is named after the T-splitter used in plumbing.
test is a command-line utility found in Unix, Plan 9, and Unix-like operating systems that evaluates conditional expressions. test was turned into a shell builtin command in 1981 with UNIX System III and at the same time made available under the alternate name [.
cpio is a general file archiver utility and its associated file format. It is primarily installed on Unix-like computer operating systems. The software utility was originally intended as a tape archiving program as part of the Programmer's Workbench (PWB/UNIX), and has been a component of virtually every Unix operating system released thereafter. Its name is derived from the phrase copy in and out, in close description of the program's use of standard input and standard output in its operation.
In Unix-like operating systems, true
and false
are commands whose only function is to always return with a predetermined exit status. Programmers and scripts often use the exit status of a command to assess success or failure (non-zero) of the command. The true
and false
commands represent the logical values of command success, because true returns 0, and false returns 1.
CPU time is the amount of time for which a central processing unit (CPU) was used for processing instructions of a computer program or operating system, as opposed to elapsed time, which includes for example, waiting for input/output (I/O) operations or entering low-power (idle) mode. The CPU time is measured in clock ticks or seconds. Often, it is useful to measure CPU time as a percentage of the CPU's capacity, which is called the CPU usage. CPU time and CPU usage have two main uses.
In computing, which
is a command for various operating systems used to identify the location of executables. The command is available in Unix and Unix-like systems, the AROS shell, for FreeDOS and for Microsoft Windows. The functionality of the which command is similar to some implementations of the type command. POSIX specifies a command named command that also covers this functionality.
The link utility is a Unix command line program that creates a hard link from an existing directory entry to a new directory entry. It does no more than call the link system function. It does not perform error checking before attempting to create the link. It returns an exit status that indicates whether the link was created. Creating a link to a directory entry that is itself a directory requires elevated privileges.
Unix is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.
Getopt is a C library function used to parse command-line options of the Unix/POSIX style. It is a part of the POSIX specification, and is universal to Unix-like systems. It is also the name of a Unix program for parsing command line arguments in shell scripts.