Shell Utils

ShellUtils are the fundamental shell commands (beyond the even more fundamental text and file manipulation shell commands) that were critical/required for use by shell scripts used in single user mode for system administration.

GNU version of ShellUtils are listed at

There are 35 commands listed, because at one point, the commonly used scripts needed exactly those 35, as was determined empirically by examining the scripts in use.

See also the popular BusyBox shell that has essentially all critical shell commands built-in, for sysadmin use from a tiny distribution such as a floppy for file system repair, etc.

Note that the core utilities (shell utils, file utils, text utils) are just the critical essentials that may be installed in e.g. /bin and /sbin (on Linux). The full range of crud shell utilities goes far beyond this, and that's what you see in /usr/bin (and for sysadmin, /usr/sbin on Linux).


Q: Why there is the command factor, an integer factorization command, in ShellUtils? What situation the factor command is useful?

A: Finding good candidates for a hash-modulus and generating potential DiffieHellmanMerkle key negotiation candidates are just two possibilities. Granted, these aren't shell utilities, but those are cases where the factor command is useful. If you are suggesting that it should be removed, you could try doing so in a less confrontational manner.

Actually I would guess that it was included because it can be helpful in arithmetic involved in file system repair, partition creation, etc., and further, that there are probably some commonly used scripts that use it, although I can't think offhand which scripts those might be.

If the question is actually "why is it a standard Unix command at all?" then that's like asking why arithmetic (bc, expr) are useful, very much the same. Why does one need to do arithmetic? I can't live without factor, and have frequently rewritten it when some Unix vendor stripped it from their distribution (it traditionally lives in /usr/games on non-Linux Unix systems), and if you have never needed factor numbers, and so cannot understand that, all I can say is that you're a wildly different kind of programmer, and there is probably too little shared experience to allow communication on this topic.


EditText of this page (last edited September 30, 2014) or FindPage with title or text search