An implementation of some of the utilities specified in POSIX.1-2017.
Boreutils focuses on non-optional utilities. Many POSIX utility categories and XSI (X/Open Systems Interfaces) utilities are excluded.
Things explicitly excluded include:
- Things that make more sense as shell builtins, including:
- Things that are only really usable in a shell:
cd
,hash
,read
, etc. - Things related to job control:
bg
,fg
,jobs
, etc.
- Things that are only really usable in a shell:
- Things used exclusively for printing:
lp
, etc. - The following Margin Codes:
CD
: C-Language Development UtilitiesFD
: FORTRAN Development UtilitiesFR
: FORTRAN Runtime UtilitiesOB
: ObsolescentSD
: Software Development UtilitiesUU
: UUCP Utilities
- Things that are very heavily influenced by software not in Boreutils, including:
- Things that have terminal-specific behavior, like
tput
.
- Things that have terminal-specific behavior, like
Things not excluded, but prone to be put off forever include:
- Things where the standard doesn't provide enough information:
mesg
: "The mechanism by which the message status of the terminal is changed is unspecified"
- Things where there's no standard for the underlying functionality:
ps
: On Linux, you read /proc. On BSD, you usekvm_getproc*()
. Elsewhere? Who the heck knows.
- Obscenely complex things, such as those involving creating archives:
pax
Below is the list of POSIX.1-2017 utilities that are planned to be implemented.
Utilities that are checked off have been implemented. Partial implementations have notes explaining what is missing and a link to GitHub issues.
- at
- awk
- basename
- batch
- bc
- cal (August 1752 and earlier is broken. GH#4)
- cat
- chgrp
- chmod
- chown
- cksum
- cmp
- comm
- cp
- crontab
- csplit
- cut
- date
- dd
- df
- diff
- dirname
- du
- echo
- ed
- env
- ex
- expand
- expr
- false
- file
- find
- fold
- gencat
- getconf
- getopts
- grep
- head
- iconv
- id
- join
- kill (
kill -l EXIT_STATUS
is unimplemented. GH#7) - link
- ln
- locale
- localedef
- logger
- logname
- ls
- m4
- mailx
- make
- man (It's not very robust, and doesn't support
-k
. GH#8) - mkdir
- mkfifo
- more
- mv
- newgrp
- nice
- nl
- nohup
- od
- paste
- patch
- pathchk
- pax
- pr
- printf
- ps
- pwd
- renice
- rm
- rmdir
- sed
- sh
- sleep
- sort
- split
- strings
- stty
- tabs
- tail
- talk
- tee
- test
- time
- touch
- tr
- true
- tsort
- tty
- umask
- uname
- unexpand
- uniq
- unlink
- uudecode
- uuencode
- vi
- wc
- xargs
Here are non-POSIX.1-2017 utilities which are provided:
- dir (an extremely basic
ls
alternative) - ish (an extremely basic shell; not POSIX-compliant)
- which (no standard)
- whoami (no standard)
- yes (no standard)