echo shore/samhunter/blog/2026/10/19.txt | nc nightfall.city 1900 | less
## 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...