These days, a Unix system is big, very big. This is especially true with GNU/Linux: the profusion of software available would make it an unmanageable system if there were not guidelines for the location of files in the tree structure.
The acknowledged standard in this respect is the FHS (Filesystem Hierarchy Standard), which is at version 2.1 at the time of the writing of this manual. The document which describes the standard is available on the Internet in different formats at pathname. This chapter gives only a brief summary, but it should be enough to teach you in what directory to look for (or place) a given file.
Data on a Unix system can be classified according to these two criteria. You may have guessed what they both mean: shareable data is data that can be common to several machines in a network, while unshareable data cannot be. Static data must not been modified in normal use, while variable data can be. As we explore the tree structure, we will classify the different directories into each of these categories.
Note: that these classifications are only recommended. You are not obliged to follow them, but adopting these guidelines will greatly help you manage your system. The static/variable distinction only applies to the use of the system and not its configuration. If you install a program, you will obviously have to modify "normally" static directories, e.g. /usr.