## 2026.10.19 / Monday
## POSIX commands
Recently I read/paged through a User Manual for SCO Unix. They
only described a couple of commands, and I began to wonder what
percentage of the "whole thing" the book actually covered.
I checked the list of POSIX (mandatory and optional) commands -
quite a bunch of them. Are they still relevant? Or were they
relevant for me, at any possible time?
* I never cared a lot about localisation - I think I used
gettext/gencat/msgfmt at some point, but I don't even remember
the context
* I completely "missed" SCCS - I used RCS for a while, then moved
to CVS, Subversion, Mercurial, Git.
The list:
### Commands I used/am using
[+] alias Manage command aliases
[+] ar Manage library archives
[+] at Execute commands at a later time
[+] awk Pattern scanning and processing language
[+] basename Report non-directory portion of a pathname
[+] batch Schedule commands to be executed in a batch queue
[+] bc Arbitrary-precision arithmetic calculator
[+] bg Move jobs to the background
[+] cal Print a calendar
[+] cat Concatenate and print files
[+] cc Compile C source code
[+] cd Change the working directory
[+] chgrp Change file group ownership
[+] chmod Change file modes/attributes/permissions
[+] chown Change file ownership
[+] cksum Report file checksum and size
[+] cmp Compare two files
[+] command Execute a simple command
[+] comm Select or reject lines common to two files
[+] compress Compress data
[+] cp Copy files
[+] cron Schedule periodic background work
[+] ctags Create a tags file
[+] cut Cut out selected fields of each line of a file
[+] date Report or change system date and time
[+] dd Convert and copy files
[+] df Report free storage space
[+] diff Compare two files
[+] dirname Report the directory portion of a pathname
[+] du Estimate file space usage
[+] echo Write to standard output
[+] ed The standard text editor
[+] env Set the environment for command invocation
[+] expand Convert tabs to spaces
[+] expr Evaluate arguments as an expression
[+] ex Text editor
[+] false Exit immediately with status 1
[+] fc Process the command history list
[+] fg Move a job to the foreground
[+] file Report type of files
[+] find Find files
[+] fold Filter for folding lines
[+] fuser List process IDs of all processes that have one or
more files open
[+] getopts Parse utility options
[+] grep Search text for a pattern
[+] hash Hash database access method
[+] head Copy the first part of files
[+] iconv Codeset conversion
[+] id Report user identity
[+] ipcrm Remove a message queue, semaphore set, or shared
memory segment identifier
[+] ipcs Report interprocess communication facilities status
[+] jobs Report background jobs
[+] join Merges two sorted text files based on the presence
of a common field
[+] kill Terminate or signal processes
[+] lex Generate programs for lexical tasks
[+] link Create a hard link to a file
[+] ln Link files
[+] locale Get locale-specific information
[+] logger Log messages
[+] logname Report the user's login name
[+] lp Send files to a printer
[+] ls List directory contents
[+] m4 Macro processor
[+] mailx Process messages
[+] make Maintain, update, and regenerate groups of programs
[+] man Display system documentation
[+] mesg Permit or deny messages
[+] mkdir Make directories
[+] mkfifo Make FIFO special files
[+] more Display files on a page-by-page basis
[+] mv Move or rename files
[+] newgrp Change to a new group
[+] nice Invoke a utility with an altered nice value
[+] nl Line numbering filter
[+] nm Write the name list of an object file
[+] nohup Invoke a utility immune to hangups
[+] od Dump files in various formats
[+] paste Merge corresponding or subsequent lines of files
[+] patch Apply changes to files
[+] pax Portable archive interchange
[+] printf Write formatted output
[+] pr Paginate or columnate files for printing
[+] ps Report process status
[+] pwd Print working directory
[+] readlink Print destination of a symbolic link
[+] read Read a line from standard input
[+] realpath Report the fully qualified path of a file XPG4[2]
[+] renice Set nice values of running processes
[+] rmdir Remove empty directory(ies)
[+] rm Remove file(s)
[+] sed Stream editor
[+] sh Shell, the standard command language interpreter
[+] sleep Suspend execution for an interval
[+] sort Sort, merge, or sequence check text files
[+] split Split files into pieces
[+] strings Find printable strings in files
[+] strip Remove unnecessary information from executable files
[+] stty Set the options for a terminal
[+] tabs Set terminal tabs
[+] tail Copy the last part of a file [citation needed]
[+] talk Talk to another user
[+] tee Duplicate the standard output
[+] test Evaluate expression
[+] time Display elapsed, system and kernel time used by
the current shell or designated process.
[+] timeout Run command with a time limit
[+] touch Change file access and modification times
[+] tput Change terminal characteristics
[+] tr Translate characters
[+] true Exit immediately with status 0
[+] tty Report user's terminal name
[+] type Displays how a name would be interpreted if used
as a command
[+] ulimit Set or report file size limit
[+] umask Get or set file mode creation mask
[+] unalias Remove alias definitions
[+] uname Report system name
[+] uncompress Expand compressed data
[+] unexpand Convert spaces to tabs
[+] uniq Report or filter out repeated lines in a file
[+] unlink Call the unlink function
[+] uucp System-to-system copy
[+] uudecode Decode a binary file
[+] uuencode Encode a binary file
[+] uustat uucp status inquiry and job control
[+] uux Remote command execution
[+] vi Screen-oriented (visual) display editor
[+] wait Await process completion
[+] wc Line, word and byte or character count
[+] who System administration Display who is on the system
[+] write Write to another user's terminal
[+] xargs Construct argument lists and invoke utility
[+] yacc Yet another compiler compiler
[+] zcat Expand and concatenate compressed data
### Commands I don't think I ever used
#### Misc
[-] asa Interpret carriage-control characters
[-] cflow Generate a C-language call graph
[-] csplit Split files based on context
[-] cxref Generate a C-language program cross-reference table
[-] gencat Generate a formatted message catalog
[-] getconf Get configuration values
[-] gettext Retrieve text string from messages object
[-] localedef Define locale environment
[-] msgfmt Create messages objects from messages object files
[-] ngettext Retrieve text string from messages object with
plural form
[-] pathchk Check pathnames
[-] tsort Topological sort
[-] xgettext Extract gettext calls from C source code strings
#### SCCS
[-] admin Create and administer SCCS files
[-] delta Make a delta (change) to an SCCS file
[-] get Get a version of an SCCS file
[-] prs Print an SCCS file
[-] rmdel Remove a delta from an SCCS file
[-] sact Print current SCCS file-editing activity
[-] sccs Front end for the SCCS subsystem
[-] unget Undo a previous get of an SCCS file
[-] val Validate SCCS files
[-] what Identify SCCS files
What's your "POSIX experience?" - it's not meant as a pissing
contest, I'm just curious how much of the "POSIX luggage" is still
in active use out there...