Showing someone zsh for the first time can be a fun experience because it’s a shell with many tricks. Usually, all it takes is a short demonstration of zsh’s tab-completion powers to captivate your audience. Being able to type gcc -[TAB] to see a list of its command line options is something that most users could never imagine, but zsh is full of surprises when it comes to making interactive shells as functional as possible.
One especially impressive feature of zsh is its context-sensitive completion system. With zsh, you can use the tab key to complete file names, command flags, shell variable names, and even scripting language syntax.
Whether you’re new to Linux or longtime Penguinista, a powerful command-line shell can boost productivity. From helpful prompts, to automatic argument completion, to time-saving command-line editing, there are many features to enjoy in modern shells. One of the most modern is the Z Shell, or zsh.
Scripting has been a recurring theme in this column. It wasn’t planned that way — but the fact that every article to date has featured scripting in some way shouldn’t be overlooked.
If you’ve been reading this column for the past few months, you’ve learned about the zsh shell’s (http://www.zsh.org) fabulous tab completion system. By adding the following two lines to your $HOME/.zshrc file, you can use the tab key to not only expand file names, but also get lists of command-line options.
Vim is a fascinating editor. You could spend a lifetime learning the intricacies of its strange but powerful interface without knowing everything it can do. One thing you might not know is that you can write scripts to control Vim in another language.
If you fall on the vi side of the “Great Editor Debate,” then hopefully you’re using vim (http://www.vim.org). It’s got all the features of vi and more. One powerful feature is called syntax highlighting; it helps immensely when programming because it provides additional visual clues when editing source code.
For all the great things that can be said about the GIMP, one thing that you can’t say is that it’s a model Unix application. You can’t send anything into its standard input, nor get anything from its standard output. The GIMP is a universe unto itself, and this flies in the face of the Unix philosophy, which shuns interactive interfaces and encourages developers to make every program a filter.
Unix (and by association, Linux) provides the user with an environment full of possibilities. To turn these possibilities into reality, a Unix user must be technical in two senses of the word. Of course, he must understand technology, but to really shine, he must understand and even appreciate good technique.