Mastering Bash and Terminal
Great post &amp; thread, a tl;dr:<p><pre><code>  Ctrl-r      search history
              - then Ctrl-r again to show next match
              - then Tab to show all options
  Ctrl-p      previous command or arrow up
  Ctrl-n      next command or arrow down
  export HISTCONTROL=ignoreboth:erasedups
              Add to .bashrc to avoid duplicate entries

  Ctrl-a      to beginning of line
  Ctrl-e      to end of line
  Alt-b       one word back
  Alt-f       one word forward
  Ctrl-k      delete to end of line
  Ctrl-u      delete to beginning of line
  Alt-d       delete to end of word
  Ctrl-w      delete to beginning of word
  Alt-Backspc same

  cd -        change to last dir
  pushd &lt;dir&gt; mark current dir and go to &lt;dir&gt;
  popd        go to marked dir 
  z           fuzzy cd, install from https:&#x2F;&#x2F;github.com&#x2F;rupa&#x2F;z
  j           fuzzy cd and more, install via autojump

  Ctrl-z      to background &amp; suspend
  bg          recent background app continue running
  fg          bring recent background app to front
  disown -h   remove recent background app from current tty
  fg %n       bring nth app to front, e.g.: fg %2 for second

  less        better than cat, doesn&#x27;t flood screen, same keys
  find        find files, e.g. find &#x2F; -name &lt;filename&gt;

  ag          install via the_silver_searcher, faster grep

  tree        shows dir like a GUI app, install
  !!          last command, e.g. sudo !!
  fish        bash alternative with more sensible defaults

  man bash    read more about bash</code></pre>