Linux Filesystem Hierarchy 之 /bin

1.3. /bin


Unlike /sbin, the bin directory containsseveral useful commands that are of use to both the system administrator as well as non-privilegedusers. It usually contains the shells like bash, csh, etc.... And commonly usedcommands 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 forthis is that it contains essential system programs that must be available evenif only the partition containing / is mounted. This situation may arise shouldyou 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 alsocontains programs which boot scripts may depend on.

不像/sbin似的,bin目录包含了几个有用的命令,它们对于系统管理员和非授权的用户都很有用。Bin目录下通常包含shells,如,bash,csh,还有经常使用的命令,像cp, mv,rm,cat,ls。因为这个原因并且与/usr/bin对比而言,在本目录下的二进制文件一般认为是比较基础的。其中的原因是,该目录包含了基础的系统程序,即使在只有包含 / 的分区挂接的情况下,这些程序也必须可用。如果你需要修复其他的分区,而你又不能访问共享目录(就是说,你处于single user 模式,因此你没有网络访问),情形就变得更普遍了。/bin目录也包含启动脚本(boot scripts)所依赖的程序。


Compliance to the FSSTND means that thereare no subdirectories in /bin and that the following commands, or symboliclinks 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 thesystem'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, itmust be a hard or symbolic link to the real shell command.

如果/bin/sh不是真正的Bourne shell,那么,它必须是真正的 shell 命令的硬链接或者符号链接。


The rationale behind this is because sh andbash mightn't necessarily behave in the same manner. The use of a symbolic linkalso allows users to easily see that /bin/sh is not a true Bourne shell.

这背后的基本逻辑是,因为sh和bash不必要有相同的行为。符号链接的使用也允许用户很容易看到/bin/sh不是一个真正的Bourne shell.


The [ and test commands must be placedtogether in either /bin or /usr/bin.

[ 和 test命令必须一起出现在 /bin 或者/usr/bin中。


The requirement for the [ and test commandsto be included as binaries (even if implemented internally by the shell) isshared with the POSIX.2 standard.

因遵从与POSIX.2标准,要求将 [ 和 test命令作为二进制文件(即使是由shell内部实现的)包含进来。


The following programs, or symbolic linksto 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, theymust 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 beenadded to make restoration of a system possible (provided that / is intact).

tar,gzip,和cpio命令已经被添加进来,使得系统的恢复(restoration)成为可能(提供了 / 不会被破坏)。


Conversely, if no restoration from the rootpartition is ever expected, then these binaries might be omitted (e.g., a ROMchip root, mounting /usr through NFS). If restoration of a system is plannedthrough the network, then ftp or tftp (along with everything necessary to getan ftp connection)

must be available on the root partition.


想对作者说点什么? 我来说一句