Linux Yak First (Part 4): There’s no place like /home

export PATH=$HOME/bin:$PATH

Configuration in $HOME

As you learn more about linux configuration files, I find it helps to remember that linux’s roots come from systems designed around having multiple, concurrent users. Windows and OS X can do this as well these days, but this has been a normal part of linux for a long time now, and it shaped some of how things work.

  • Firefox’s configuration, cache, and profiles all live in .mozilla/firefox/.
  • Your SSH key and SSH configuration files live in .ssh/.
  • vim uses .vimrc for configuration, and a .vim directory for even more configuration.
  • .cache/ for caches, and
  • .local/ for data (like profiles, history, and potentially private data.)
  • .cache/, .config/ and .local/
  • .gitconfig — if you’re using git, then you should configure git.
  • .profile — this is similar to .bashrc, but it’s only read once (on login) instead of every time a terminal is opened.
  • .vimrc — everyone should learn at least some vim, including how to configure it.
  • .xinitrc — this file is read when you log in and lets you control which applications get launched when you login.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Kevin Hamer

Kevin Hamer


The Principal Engineer at Imarc, Erratic Author on Medium. Writing about web development and being a better web developer.