Where did the files go?¶
After you have installed your software, you may be left asking, Now what?
You are probably staring at a command prompt or a message saying your software package has been installed. But where did it go? How do you start the program? This is one of those mystical Linux moments when you realize that you are a fish and this is not the water you are used to.
If you are using a graphical desktop (KDE or Gnome), the good news is that your newly installed program probably also has a newly installed icon and entry in your programs menu. The bad news is that the menu is so large and poorly organized on most systems that you may not be able to find it.
On the other hand, if you were installing a server or a command line utility, you probably will not find it in your menu no matter how hard you look. So let’s take a quick tour to find out where files live on your Linux system. (You may first want to read about the Linux Virtual File System for some background.)
User Programs (binaries)¶
/bin - Essential user commands¶
The /bin directory contains essential commands that every user will need. This includes your login shell and basic utilities like ls. The contents of this directory are usually fixed at the time you install Linux. Programs you install later will usually go elsewhere (read on).
/usr/bin - Most user commands¶
The /usr hierarchy contains the programs and related files meant for users. (The original Unix makers had a thing for abbreviation.) The /usr/bin directory contains the program binaries. If you just installed a software package and don’t know where the binary went, this is the first place to look. A typical desktop system will have many programs here.
System Administration Programs (binaries)¶
/sbin - Essential System Admin Commands¶
The /sbin directory contains programs needed by the system administrator, like fsck, which is used to check file systems for errors. Like /bin, /sbin is populated when you install your Linux system, and rarely changes.
/usr/sbin - Non-essential System Administration Programs (binaries)¶
This is where you will find commands for optional system services and network servers. Desktop tools will not show up here, but if you just installed a new mail server, this is where to look for the binaries.
Libraries are shared bits of code. On Windows these are called DLL files (Dynamic Loading Libraries). On Linux systems they are usually called SO (Shared Object) files. As to location, are you detecting a pattern yet? There are three directories where library files are placed: /lib, /usr/lib, and /usr/local/lib.
Documentation is a minor exception to the pattern of file placement. Pages of the system manual (man pages) follow the same pattern as the programs they document: /man, /usr/man, and /usr/local/man. You should not access these files directly, however, but by using the man command (see Getting Help).
Many programs install addition documentation in the form of text files, HTML, or other things not man pages. This extra documentation is stored in directories under /usr/share/doc or /usr/local/share/doc. (On older systems you may find this under /usr/doc instead.)