1.7. /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.