Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

What is it? ...

share|improve this question

5 Answers 5

Wikipedia has a decent explanation. From that article:

  • /bin: "Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp."
  • /usr/bin: "Non-essential command binaries (not needed in single user mode); for all users."
share|improve this answer
    
For more info take a look into pathname.com/fhs/pub/fhs-2.3.html –  Marcin Gil Nov 30 '09 at 7:26
4  
In addition to their essential status, /bin should be statically linked (not try to dynamically load dependencies) which means they may be much larger files. However, they will still work even if necessary system libraries are mucked up. /usr/bin has no such recommendation. –  Broam Nov 30 '09 at 14:35
    
Most of the time, the stuff in /bin is not statically linked these days. You use busybox if you need a statically liked environment. –  Ken Bloom Dec 2 '09 at 20:59
$ man hier

contains a good description of the file system hierarchy

share|improve this answer

In the old days of small disks, it was common to have /bin on the boot disk, and /usr/bin on a separate disk (sometimes even a shared network drive). /bin would contain anything needed to either boot the system, or fix it if /usr/bin couldn't be mounted for some reason. Its another one of those historical accidents that doesn't make as much sense today.

share|improve this answer

The distinction is simple, /bin is where system binaries are stored (mostly these binaries are owned by root) whereas /usr/bin is where the usual spot for binaries that are used by ordinary non root users. It is also a common place to deposit binary programs that were built by the compiler to be used by other users.

Hope this clears things up, Best regards, Tom.

share|improve this answer

A lot of times (even today, for various reasons), people create /usr as a separate filesystem. In these circumstances, / is mounted first, then programs on / are used to mount /bin. So there's a requirement that anything needed to get to the point of mounting /usr needs to live in /bin or /sbin. Additionally, anything useful in troubleshooting problems (if you can't mount /usr) is also best stored in /bin or /sbin.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.