Skip to content

Latest commit

 

History

History
151 lines (137 loc) · 3.51 KB

README.md

File metadata and controls

151 lines (137 loc) · 3.51 KB

boreutils

An implementation of some of the utilities specified in POSIX.1-2017.

Excluded utilities

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 used exclusively for printing: lp, etc.
  • The following Margin Codes:
    • CD: C-Language Development Utilities
    • FD: FORTRAN Development Utilities
    • FR: FORTRAN Runtime Utilities
    • OB: Obsolescent
    • SD: Software Development Utilities
    • UU: UUCP Utilities
  • Things that are very heavily influenced by software not in Boreutils, including:
    • Things that have terminal-specific behavior, like tput.

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 use kvm_getproc*(). Elsewhere? Who the heck knows.
  • Obscenely complex things, such as those involving creating archives:
    • pax

Utilities, and current status

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)