a practical guide to linux commands, editors and shell programming