# /home

Linux is a multi-user environment so each user is also assigned a specific directory that is accessible only to them and the system administrator. These are the user home directories, which can be found under '/home/$USER' (~/). It is your playground: everything is at your command, you can write files, delete them, install programs, etc.... Your home directory contains your personal configuration files, the so-called dot files (their name is preceded by a dot). Personal configuration files are usually 'hidden', if you want to see them, you either have to turn on the appropriate option in your file manager or run ls with the -a switch. If there is a conflict between personal and system wide configuration files, the settings in the personal file will prevail.

Dotfiles most likely to be altered by the end user are probably your .xsession and .bashrc files. The configuration files for X and Bash respectively. They allow you to be able to change the window manager to be startup upon login and also aliases, user-specified commands and environment variables respectively. Almost always when a user is created their dotfiles will be taken from the /etc/skel directory where system administrators place a sample file that user's can modify to their hearts content.

/home can get quite large and can be used for storing downloads, compiling, installing and running programs, your mail, your collection of image or sound files etc.

The FSSTND states that:

      /home is a fairly standard concept, but it is clearly a site-specific
      filesystem.

      Different people prefer to place user accounts in a variety of places.
      This section describes only a suggested placement for user home
      directories; nevertheless we recommend that all FHS-compliant
      distributions use this as the default location for home directories.
      On small systems, each user's directory is typically one of the many
      subdirectories of /home such as /home/smith, /home/torvalds,
      /home/operator, etc. On large systems (especially when the /home
      directories are shared amongst many hosts using NFS) it is useful
      to subdivide user home directories. Subdivision may be accomplished by
      using subdirectories such as /home/staff, /home/guests, /home/students,
      etc.

      The setup will differ from host to host. Therefore, no program
      should rely on this location.

      If you want to find out a user's home directory, you should use the
      getpwent(3) library function rather than relying on /etc/passwd because
      user information may be stored remotely using systems such as NIS.

      User specific configuration files for applications are stored in the
      user's home directory in a file that starts with the '.' character
      (a "dot file"). If an application needs to create more than one dot
      file then they should be placed in a subdirectory with a name starting
      with a '.' character, (a "dot directory"). In this case the
      configuration files should not start with the '.' character.

      It is recommended that apart from autosave and lock files programs
      should refrain from creating non dot files or directories in a home
      directory without user intervention.