Answering specific questions about using command line applications on Unix-like operating systems is usually not very hard — a few Google terms more often than not pulls up a topical Stack Overflow question. If you want to find what a Bash option does, or how to delete a word in Vim, you won’t struggle.
However, I’ve found it can be harder to find good general sources of
information on the web about these applications. If you want to learn more
about a particular editor, shell, or debugger, it’s tougher to find a single
source of organised, high-quality, and up-to-date information. As helpful as
man pages are for experienced users, their terseness can be a major deterrent
for newbies. I’d like to try and help fix this, hence this page (and the
Arabesque blog in general).
Links are grouped by application, sorted with my rough opinion of how useful I have found them as a source of information about a particular command line application. Each link is accompanied with a short summary description. Many of the links are blogs; I will add single blog posts if they’re exceptionally helpful, but a link to a whole blog or at least a post category would be preferred.
If you have suggestions for this list, please feel free to let me know by emailing me at email@example.com.
- Famous Awk One-Liners Explained — Peteris Krumins runs through an old list of one-line commands in Awk, explaining how each one works.
- BashFAQ on Greg’s Wiki — This is the best Bash resource on the web,
presenting answers to common questions asked of the
#bashIRC channel on Freenode. These articles and others on the wiki are essential reading for intermediate and advanced users.
- Bash Hackers Wiki — A worthy complement to Greg’s Wiki with a more encyclopedic or “reference” approach.
- ##c wiki — This is the C analogue to Greg’s wiki; a collection of high-quality resources and links for the C language, something of an oasis in a sea of misleading information.
Mastering Emacs — Great articles on intermediate to advanced Emacs usage. The beginners’ articles assume a fair bit of familiarity, but intermediate to advanced users should find this fascinating reading.
Why Emacs? — Bozhidar Batsov presents a very readable article explaining his enthusiasm for the editor, with particular emphasis on its superiority to Vim.
- MetaCPAN — A high-quality alternative interface to the original CPAN site for finding Perl modules.
- Modern Perl — An overview of modern Perl development practice; a successor to the O’Reilly “camel book”. Available to read online for free.
- Famous Sed One-Liners Explained — Peteris Krumins runs through an old list of one-line commands in Sed, explaining how each one works.
- cat-v — The late Uriel’s website takes the Unix philosophy to near-fanatical terms, leaving no sacred cow unslain. You may not agree with everything here, but all of it is worth reading and considering. Of particular interest are the historical Unix man page archives and the “Considered Harmful” subsite’s section on software.
Vi and Vim
Vimcasts — Drew Neil makes superb high-quality screencasts on basic to intermediate Vim usage. He focusses on migrating away from TextMate, a popular editor for Mac OS X. The first few screencasts in particular are highly recommended for beginners. If you are new to Vim and want to see what it can do, start here.
Derek Wyatt’s Vim Tutorial Videos — Derek Wyatt is an enthusiastic and engaging screencast host. His screencasts are helpfully divided into sections by skill: Novice, Intermediate, and Advanced. Some of the videos are quite long, but all are worth watching.
Vim Tips Wiki — This community wiki is good for users who have mastered the basics of the editor and are now looking to see what other tricks it can do. Tips range from specific editing tips to more general advice on managing Vim configuration.
You don’t grok Vi — A very in-depth answer to a Stack Overflow question explaining some usage patterns for
vi, all of which are applicable to Vim.
Seven Habits of Highly Effective Text Editing — Vim’s author Bram Moolenaar explains some general patterns for efficient editing. It is supposed to be suitable for any editor, but has a very heavy self-confessed bias towards Vim.
/r/vim — Reddit’s section for Vim users is relatively active and links to good content. It’s probably a little overwhelming for beginners, but definitely worth a subscription for Vim-using Redditors.