1.3. /bin

Unlike /sbin, the bin directory contains several useful commands that are of use to both the system administrator as well as non-privileged users. It usually contains the shells like bash, csh, etc.... and commonly used commands like cp, mv, rm, cat, ls. For this reason and in contrast to /usr/bin, the binaries in this directory are considered to be essential. The reason for this is that it contains essential system programs that must be available even if only the partition containing / is mounted. This situation may arise should you need to repair other partitions but have no access to shared directories (ie. you are in single user mode and hence have no network access). It also contains programs which boot scripts may depend on.

Compliance to the FSSTND means that there are no subdirectories in /bin and that the following commands, or symbolic links to commands, are located there.


 cat	Utility to concatenate files to standard output
 chgrp	Utility to change file group ownership
 chmod	Utility to change file access permissions
 chown	Utility to change file owner and group
 cp	Utility to copy files and directories
 date	Utility to print or set the system data and time
 dd	Utility to convert and copy a file
 df	Utility to report filesystem disk space usage
 dmesg	Utility to print or control the kernel message buffer
 echo	Utility to display a line of text
 false	Utility to do nothing, unsuccessfully
 hostname	Utility to show or set the system's host name
 kill	Utility to send signals to processes
 ln	Utility to make links between files
 login	Utility to begin a session on the system
 ls	Utility to list directory contents
 mkdir	Utility to make directories
 mknod	Utility to make block or character special files
 more	Utility to page through text
 mount	Utility to mount a filesystem
 mv	Utility to move/rename files
 ps	Utility to report process status
 pwd	Utility to print name of current working directory
 rm	Utility to remove files or directories
 rmdir	Utility to remove empty directories
 sed	The `sed' stream editor
 sh	The Bourne command shell
 stty	Utility to change and print terminal line settings
 su	Utility to change user ID
 sync	Utility to flush filesystem buffers
 true	Utility to do nothing, successfully
 umount	Utility to unmount file systems
 uname	Utility to print system information

If /bin/sh is not a true Bourne shell, it must be a hard or symbolic
link to the real shell command. The [ and test commands must be placed
together in either /bin or /usr/bin. Command binaries that are not
essential enough to place into /bin must be placed in /usr/bin, instead.
Items that are required only by non-root users (the X Window System,
chsh, etc.) are generally not essential enough to be placed into the
root partition.

The following programs, or symbolic links to programs, must be in /bin
if the corresponding subsystem is installed:

  csh	The C shell (optional)
  ed	The `ed' editor (optional)
  tar	The tar archiving utility (optional)
  cpio	The cpio archiving utility (optional)
  gzip	The GNU compression utility (optional)
  gunzip	The GNU uncompression utility (optional)
  zcat	The GNU uncompression utility (optional)
  netstat	The network statistics utility (optional)
  ping	The ICMP network test utility (optional)

If the gunzip and zcat programs exist, they must be symbolic or hard 
links to gzip. /bin/csh may be a symbolic link to /bin/tcsh or 
/usr/bin/tcsh. The tar, gzip and cpio commands have been added to make 
restoration of a system possible (provided that / is intact). Conversely,
if no restoration from the root partition is ever expected, then these 
binaries might be omitted (e.g., a ROM chip root, mounting /usr through 
NFS). If restoration of a system is planned through the network, then 
ftp or tftp (along with everything necessary to get an ftp connection) 
must be available on the root partition.