A Practical Guide to Linux Commands, Editors, and Shell Programming (2nd Edition)