OS X Command Line Utilities
This was supposed to be  few lines of remarks. It expanded quickly in relation with my enthusiasm for this topic.<p>I've been investing some time in the command line on my Mac. I am moving from a dilettante going to the shell on a per-need basis to a more seasoned terminal native. It pays off handesomely! It's hard to convey how nice it to have to have a keyboard-based unified environment instead of a series of disjoined mouse-based GUI experiences.<p>Here are some recommendations pertaining to mastering the command line on a Mac specifically:<p>-You can make the terminal start instantaneously instead of it taking several seconds. Remove the .asl files in /private/var/log/asl/. Also remove the file /users/<username>/Library/Preferences/com.apple.terminal.plist<p>- Install iterm2. It possesses many fancy features but honestly I hardly ever use them. The main reason to use it instead of the default Terminal application is that It just works©.<p>-Make your terminal look gorgeous. It may sound superficial but it actually is important when you spend expanded period of time in the terminal. You go from this <a href="http://i.imgur.com/cx3zZL8.png" rel="nofollow">http://i.imgur.com/cx3zZL8.png</a> to this <a href="http://i.imgur.com/MQbx8yK.png" rel="nofollow">http://i.imgur.com/MQbx8yK.png</a> . You become eager to go to your terminal instead of reluctant. Pick a nice color scheme <a href="https://code.google.com/p/iterm2/wiki/ColorGallery" rel="nofollow">https://code.google.com/p/iterm2/wiki/ColorGallery</a> . Use a nice font (Monaco, Source Code Pro, Inconsolata are popular). Make it anti aliased.<p>-Go fullscreen. Not so much for the real estate but for the mental switch. Fullscreen mode is a way to immerse yourself into your productive development world. No browser, no mail, no application notification. Only code.<p>-Install Alfred. It's the command line for the GUI/Apple part of your system. Since I installed it I stopped using the dock and Spotlight. Press ⌘+space then type what you want and it comes up. In just a few keystrokes you can open an application, open gmail/twitter/imdb/..., make a webs search, find a file (by name, by text content), open a directory,... It's difficult to describe how empowering it is to being able to go from 'I want to check something out in the directory x which is somewhere deep deep in my dev folders' to having it displayed in 2 seconds flat.<p>-Make a few symlinks from your home directory to the directories you use frequently. Instead of doing cd this/that/code/python/project/ you just do cd ~/project.<p>-Learn the shell. I recommend the (free) book  The Linux Command Line: <a href="http://linuxcommand.org/tlcl.php" rel="nofollow">http://linuxcommand.org/tlcl.php</a> . It guides you gently from simple directory navigation all the way up to shell scripting.<p>-Use tmux. Essential if you want to spend some time in the terminal. You can split the window in multiple independent panes. Your screen will have multiple terminals displayed simultaneously that you can edit independently. For example I'll have the code in one side and on the other side a REPL or a browser. You can also have multiple windows each with its own set of panes and switch from on to the other. With the multiple windows I can switch from one aspect of a project to another instantly. E.g: one window for the front-end dev, a second one for the backend and another for misc file management/git/whatever.<p>-Pick an editor and work towards mastery. I don't care if you choose vi or emacs. You'll be surprised how simple features can make a big change in how you type. You'll be even more surprised at how good it feels<p>The terminal is here to stay. It's a skill that bears a lot of fruits and that deprecate slowly. The more you sow the more you reap.