You are previewing Mac OS X UNIX 101 Byte-Sized Projects.
O'Reilly logo
Mac OS X UNIX 101 Byte-Sized Projects

Book Description

Unix is no longer someone else's OS. With Mac OS X built on top of it, Unix  is becoming a household name, and more and more Mac users are ready to take it on. This book is for them!

Based on a popular series of Unix tips, this book promises to deliver what most other Unix guides fail to: comprehensive tutorials and instruction on specific Unix subjects, commands, and projects, not just a handy reference guide. Arranged into 101 mini tutorials in 11 key technology areas, this book provides all the tricks, techniques, and training that you need to understand how the system works and start using it immediately.  You will quickly learn the basics to working with the Unix command line as well as work on specific tutorials/exercises, including: browsing and searching the directory file-system; viewing, searching, and processing file content; using text editors; shell scripting; cool commands; and more.

Table of Contents

  1. Copyright
    1. Dedication
  2. Thanks to:
  3. Introduction
    1. Philosophy
    2. But I Love My Mouse
    3. What You’ll Learn
    4. How to Use This Book
    5. Code Extracts
    6. Supported Systems
    7. Further Reading
  4. 1. Absolute Basics
    1. 1. Lose the Mouse
      1. Your First Commands
        1. Find Out What the Finder Doesn’t Find
        2. Command Options
      2. Cases and Spaces
      3. All About Shells
        1. Have a Bash
        2. How to Change the Default Shell
      4. Command-Line Editing
    2. 2. Learn Basic Unix
      1. Pathnames
      2. Basic Commands
        1. Changing the CWD
        2. View Files with less and cat
        3. Copy Files
        4. Delete Files
        5. Move Files
        6. It’s Goodbye, Not Au Revoir
        7. Multiple Files
      3. Commands for Directories
        1. Create a Directory
        2. Remove a Directory
        3. Copy and Move a Directory
      4. Recursion
        1. Copy a Directory
        2. Remove a Directory
      5. Dotty Files
      6. How to Become the Root User
      7. Partitions and Disks
      8. Further Projects
    3. 3. Get the Most from the Unix Manual
      1. Search by Keyword
        1. whatis
        2. The whatis Database
      2. The Nine Manual Sections
      3. Example of man Use
    4. 4. Learn Bash Shell Basics
      1. Entering Commands
        1. Auto Completion
        2. Command-Line History
        3. Command-Line Editing
      2. Aliases and Functions
        1. Fun with Functions
        2. Make them Permanent
      3. Shell and Environment Variables
        1. Shell Variables
        2. Environment Variables
        3. Scope
        4. Bash vs. Tcsh
      4. Bash Initialization
        1. What Goes in Which Script?
        2. Editing Script Files
    5. 5. Discover Other Shells
    6. 6. Use Redirection and Pipelining
      1. Redirection of stdout and stderr
      2. Redirection of stdin
      3. Pipelining
        1. A Time to Kill
        2. Syntax Summary
    7. 7. Know Your Users and Groups
      1. Users
      2. Groups
      3. Unix Commands
        1. Display Your Details
        2. Display a File’s Details
        3. Change Groups and Owners
        4. List Users and Groups
      4. Default Users and Groups
    8. 8. Manage File Permissions
      1. What are Permissions?
        1. Permission Triplets
        2. Permissions on Mac OS X System Files
      2. Take Command of Permissions
      3. Set Default Permissions
      4. Append-Only Directories: The Sticky Bit
      5. Executing as Another User
        1. The s-Bit
      6. Commands Inherit Permissions, Too
    9. 9. Learn About Shell Scripts
      1. A Simple Script
      2. Executing the Script
    10. 10. Write Shell Scripts
      1. Shell Arguments
      2. Conditional Processing
      3. Multiple Conditions
      4. Loops
  5. 2. Browse and Search the File System
    1. 11. Globbing with [^*?]
      1. The Power of Pattern Matching
      2. Star Globbing
        1. List All JPEG Files
        2. Glob the Path
      3. Match One Character
      4. Match Character Ranges and Classes
      5. Escape from Globbing
      6. Shrink Big Command Lines
    2. 12. Power Globbing
      1. Check Completion
      2. Customize Completion
        1. Set nocaseglob
        2. Set nullglob
        3. The dotglob Option
      3. Set GLOBIGNORE
      4. Activate Extended Globbing
      5. Make It So
    3. 13. Change Your Working Directory
      1. Popular Destinations
        1. Use Aliases
        2. Teleport Using a CD Path
      2. Beware Tilde Expansion
      3. cd Quickies
      4. Make It So
    4. 14. Navigate the File System
      1. Pushing and Popping
      2. Manipulate the Directory Stack
      3. Mimic a Tcsh Shell Feature in Bash
    5. 15. Find Files by Name
      1. Locate with locate
        1. The Locate Database
        2. Use Globbing with locate
        3. Rebuild Manually
      2. Find with find
        1. Find by Name
        2. Use Globbing with find
        3. Search by Pathnames
        4. Use Regular Expressions
    6. 16. Find Unix Commands
      1. Use Type to Identify a Command
        1. Override Bash’s Order
        2. The PATH
      2. The Tcsh Shell
    7. 17. Get Clever Finding Files
      1. Search Criteria
      2. Find Criteria
        1. Find by Filename and Pathname
        2. Find by Type
        3. Find by Size
        4. Find by Timestamp
        5. Find by Owner, Associated Group, and Permissions
      3. Use Complex Conditions
      4. Process Each File
        1. Process the List
        2. Process the Files with find
        3. Process the Files with -exec and xargs
    8. 18. Use find, -exec, and xargs
      1. Do Something With What You Found
      2. Use the -exec Primary
      3. Process Each File via xargs
        1. xargs vs. -exec
        2. Cope with Too Many Files
        3. Handle Filenames with Spaces
      4. Limit find’s Scope
        1. Limit Recursion
        2. Set the Maximum Recursion Depth
        3. Avoid Other File Systems
    9. 19. Understand Links and Aliases
      1. Get a Few Pointers
      2. Create Soft Links
      3. Create Hard Links
      4. Symbolic Links vs. Hard Links
      5. Links and Other Commands
      6. Aliases
    10. 20. File Finding Tips
      1. Find Files Since
        1. Since Last Restart
        2. Since a Marker File
      2. Find Empty Files
      3. Remove the Full Pathname
      4. Follow Symbolic Links
  6. 3. Work with File Content
    1. 21. Display Text Files
      1. Reading Files with cat and vis
      2. Make a Hard Copy
      3. The less Pager
        1. Navigation
        2. Options
        3. Use Bookmarks
        4. more or less
      4. heads or tails
        1. View Live Files
        2. The Console Application
    2. 22. Display Binary Files
      1. View Compressed Files
      2. View Binary Files
        1. Search for Strings
        2. View with hexdump and xxd
    3. 23. Search File Content
      1. Use grep
        1. grep Options
        2. Some grep Examples
        3. Escape and Double Escape
        4. Zipped Files
      2. Count Words
      3. Use awk to Isolate and Format Text
      4. Use sed
    4. 24. View File Differences
      1. What’s the difference?
      2. diff Files
        1. Differences Side by Side
      3. Compare Directories
        1. Make and Apply Patches
      4. Merge with sdiff
    5. 25. View Three-Way Differences
      1. Three-Way Comparison with diff3
      2. Merge Two Sets of Changes
        1. Patch the Differences
        2. Resolve Conflicts
    6. 26. Sort and Compare Text Files
      1. Sort Files
      2. Detect Duplicate Files
    7. 27. Compress Files
      1. Compress and Uncompress
      2. Create Compressed Archives
      3. Use bzip2
    8. 28. Archive Files
      1. Make an Archive
      2. Compress and Uncompress
      3. Understand tar and Pathnames
        1. Relative Pathnames
        2. Absolute Pathnames
      4. Make Incremental Backups
    9. 29. File-Content Tips
      1. Determine File Content
        1. Search for Files with a Specific Type of Content
        2. Process Files with a Specific Content Type
      2. Search Compressed Files
      3. Expand and Unexpand Tabs
      4. Fold Long Lines
      5. Split Large Files
  7. 4. Edit Files
    1. 30. Edit with nano
      1. Basics
        1. Move Around
        2. Get Help
        3. Edit File Contents
        4. Cut and Paste
        5. Save Your Edits
      2. Search and Replace
        1. Replace
        2. Use Regular Expressions
        3. Match Brackets
      3. Edit Multiple Files
        1. Use Tabbed Completion
        2. Use File Search
      4. Format Text
      5. nanorc Configuration File
      6. Syntax Highlighting
    2. 31. Edit with emacs
      1. Basics
        1. Move Around
        2. Get Help
        3. Edit File Contents
        4. Cut and Paste
        5. Save Your Edits
      2. Search and Replace
        1. Replace
        2. Use Regular Expressions
        3. More
      3. Multiple Files (Buffers) and Windows
        1. Open Multiple Windows
        2. Use Tabbed Completion
      4. Repetition
      5. Much More
    3. 32. Edit with vim
      1. Basics
        1. Override vi Compatibility
        2. Understand vim Modes
        3. Move Around
        4. Jump to a Line
        5. Get Help
      2. Add and Remove Text
        1. Undo Changes
        2. Simple Cut, Copy, and Paste
        3. Save Your Edits
        4. Edit as Root
      3. Search and Replace
        1. Search Options
        2. Replace
        3. Use Regular Expressions
    4. 33. Learn Advanced vim
      1. Quick Matching
        1. Match Bracket Pairs
        2. Find a Character
      2. Perform Global Edits
        1. Line Ranges
        2. Use vim Commands as Functions
      3. Set Bookmarks
      4. Build Command Sequences
        1. Repetition Counts
        2. More Motion Commands
        3. Combine Them All
      5. Cut, Copy, and Paste
        1. Registers
        2. More Registers
      6. Repeat Commands with Macros
      7. Filter through External Commands
    5. 34. Use vim Windows
      1. Edit Multiple Files
        1. Read Files
        2. Browse Directories
      2. Open Many Windows
        1. Split the Screen
        2. Change Window Sizes
      3. Compare Files
      4. More
    6. 35. Configure vim
      1. Create a Configuration File
      2. Create Key Shortcuts
        1. Abbreviations
        2. Key Mappings
      3. vim Configuration Directories
        1. Global
        2. Local
    7. 36. Edit with GUI-Based Editors
      1. Configure Your Editor
        1. Keep It Plain
        2. Line Breaks
        3. Edit as Root
      2. TextEdit
      3. TextWrangler
  8. 5. Keep an Eye on Your Mac
    1. 37. Profile the Hardware
      1. Profile from the Command Line
        1. Be Smart
        2. Profiler Tips
        3. Profiler Options
      2. Display Processor and RAM Information
      3. Control Power Management
    2. 38. Profile the System Software
      1. Display Darwin Information
      2. Update Mac OS X
      3. Manage Open Firmware
    3. 39. View Processes
      1. View Process Information
        1. Find the Top Hogs
        2. Grab a Snapshot
        3. Log Activity
        4. Process the Output from top
      2. View Process Status
      3. Define a ps Function
    4. 40. Manage Processes
      1. Understand Signals
      2. Stop Interactive Processes
      3. Kill Errant Processes
        1. Force Quit
        2. Define a Killer Function
        3. Restart
      4. Change Process Priority
        1. Make a Process Play Nice
        2. Launch a nice Process
    5. 41. View System Log Files
      1. Know Your Log Files
        1. View Log Files
        2. View Log Files in Real Time
        3. The Console Application
      2. Log File Rotation
      3. Periodic Maintenance
    6. 42. Manage the System Log Daemon
      1. Understand Logging
        1. The System Log Daemon
        2. Configure syslogd
      2. Send Log Messages
      3. Apple’s syslog
      4. Send Messages to Another Host
    7. 43. System Voyeur Tips
      1. Glimpsing Possibilities
      2. System Activity
        1. Display Live System Calls
        2. Monitor Scheduling and Interrupt Latency
        3. How Long Has Your Mac Been Up and Running?
        4. Display Virtual-Memory Statistics
        5. Display the System Message Buffer
        6. Show Live File System Calls
        7. List Open Files
      3. Network Activity
      4. Kernel Information
  9. 6. Make the Most of the Shell
    1. 44. Customize the Terminal
      1. Create a Clickable Shell Script
      2. Save Custom Window Settings
      3. Run a Script in a Custom Window
      4. Change the Title Bar
      5. Dynamic Title Bars
    2. 45. Customize the Bash Shell
      1. Use Shell Options
        1. The cdspell Option
        2. Globbing
        3. History
      2. Use Shell Attributes
        1. Useful Attributes
        2. Useful Attributes for Shell Scripts
      3. Enhance Command-Line Completion
        1. The readline Library
        2. Bell Style
        3. Case-Insensitive Completion
        4. Completion Query Threshold
        5. Show If Ambiguous
        6. Set Visible File Type Indication
      4. Think Different
    3. 46. Customize the Tcsh Shell
      1. Enhance Command-Line Completion
      2. Change Your Prompt
    4. 47. Customize Shell Startup
      1. Configure Login Shells
      2. Configure Non-Login Shells
      3. Noninteractive Shells
      4. The Tcsh Shell
    5. 48. Customize Command History
      1. Recall History
      2. Change History
        1. Disable History
        2. Hide History
        3. Merge History
      3. Tcsh Shell History
    6. 49. Use Command-Line Recall
      1. Search History
      2. History Expansion
        1. Verify First
        2. Recall Arguments
        3. Edit the Last Command Line
    7. 50. Change the Command Path
      1. Know the PATH
      2. Change the PATH
        1. Add to the PATH
        2. Dotty PATHs
      3. Tcsh Shell Paths
      4. Know the MANPATH
    8. 51. Define Shell Aliases
      1. Define an Alias
        1. Aliases in Aliases
        2. List and Remove
        3. Alias Expansion Quirks
        4. The Double-Alias Trick
        5. Aliases in Scripts
      2. Arguments to Aliases
      3. Tcsh Shell Aliases
    9. 52. Define Shell Functions
      1. Define a Function
        1. Debug a Function
        2. Function Arguments
        3. Recursive Functions
        4. List All Functions
        5. Delete a Function
      2. Tcsh Shell Functions
    10. 53. Edit Command Lines
      1. Know the Key Keystrokes
      2. Expand the Command Line
        1. Expand Completions
        2. Change readline’s Key Bindings
        3. emacs or vi
      3. Tcsh Shell Bindings
    11. 54. Understand Bash Internals
      1. Shell Special Characters
      2. Command Search Order
      3. Command-Line Processing
    12. 55. Run Background Jobs
      1. Start a Background Job
      2. Control Background Jobs
      3. Supply Input to a Background Job
      4. Avoid Orphaned Jobs
    13. 56. Cool Shell Tips
      1. Create Your Own Message of the Day
      2. Format Output with printf
      3. Prevent Execution of Initialization Scripts
      4. Script vs. source vs. .
      5. Argument Recall
      6. Auto Options
      7. Override Command-Line Processing Order
      8. Tcsh
  10. 7. Programmatically Change Files
    1. 57. Edit Text Files
      1. Change File Content
        1. Convert from Mac to Unix
        2. Write Back to the Original File
      2. Strip Lines and Characters
      3. Expand and Unexpand
    2. 58. Batch-Edit Files
      1. Add Utility to the tr Command
      2. Use a for Loop
        1. Make It a Function
        2. Write a Generic each Function
      3. Search with find
    3. 59. Learn the sed Stream Editor
      1. The sed Basics
      2. Let’s Edit
        1. Make sed grep
        2. Encode a File
      3. Line Ranges in sed Scripts
      4. sed Functions
      5. Multiple sed Commands
      6. Complex Line Ranges
    4. 60. Learn the awk Text Processor
      1. An Editing Language
      2. The awk Basics
        1. Patterns
        2. Actions
      3. Scripts for awk
        1. Delete Blank Lines
        2. Make awk grep
        3. Print Fields
        4. Print and Skip Blocks
      4. Substitute with awk
    5. 61. Learn Advanced sed
      1. Highlight a Block of Text
      2. Highlight Lines
    6. 62. Learn Advanced awk
      1. Process, Count and Report with awk
      2. Process a CSV File
      3. Count Lines
      4. Use Conditionals
    7. 63. Editing Tips
      1. Edit with echo
      2. Edit with cat
      3. Edit with printf
      4. Edit with split
      5. Edit with paste
  11. 8. Administer the System
    1. 64. Get Information about Users
      1. Who’s There?
        1. Amnesia
        2. List Login History
      2. Report on Users and Groups
    2. 65. Manage User Accounts
      1. DIY UIDs and GIDs
      2. View Account Information
      3. Report and Find
      4. Change Account Information
        1. Create a New Group
        2. Add a User to a Group
        3. Remove a User from a Group
        4. Change a User’s Shell
        5. Create a New User
        6. Delete a Group or User
    3. 66. Manage File Systems
      1. Systems and Sharing
      2. List File Systems
      3. Discover Mounted Drives
    4. 67. Look after Your Disks
      1. Take Command of Disks
      2. Verify and Repair a Volume
      3. Verify Permissions
      4. Be Smart with diskutil
    5. 68. Mount and Unmount Local Disks
      1. Manage Volumes Manually
      2. Use the Unix mount Command
        1. Unmount Drives
        2. Show in the Finder
        3. Mount a CD or DVD
      3. Manage On-Disk Permissions
      4. Use the diskutil Tool
    6. 69. Delete Immutable Files
      1. Immutable Files
      2. System Immutable
      3. Boot into Single-User Mode
    7. 70. Schedule Commands with at
      1. The at Queue
      2. Schedule a Job
        1. Write the Job to a File
        2. Remove a Job
        3. Capture Output from a Job
        4. Specify Dates
    8. 71. Schedule Commands with cron
      1. Schedule a Job
        1. Capture Output from a Job
        2. Specify Dates
      2. User Crontabs
    9. 72. Manage Periodic Maintenance
      1. The Maintenance Scripts
        1. The periodic Command
        2. Add Your Own Maintenance
      2. Launching Maintenance Scripts
      3. Add Your Own Scheduled Tasks
    10. 73. Manage Network Settings
      1. View and Change Interface Settings
        1. Switch an Interface Off and On
        2. Multi-Home
        3. Check Host Names with hostname
        4. Change Network Locations
      2. Eyeball the Firewall
    11. 74. System Tips
      1. Mount a Volume by Name
      2. Change the Startup Disk
      3. Set the Date and Time
  12. 9. Learn Shell Scripting
    1. 75. Use Functions in Scripts
      1. Functions’ Power, Multiplied
      2. Write a Function
      3. Underline a String
    2. 76. Use Bash Parameter Expansion
      1. Basic Expansion
      2. Complex Expansion
        1. Set Default Values
        2. Slice Strings
        3. Top and Tail Strings
      3. Search and Replace
    3. 77. Learn Regular Expressions
      1. The Match Game
      2. Basic Rules
      3. Regular-Expression Syntax
      4. Simple Regular Expressions
      5. Anchors
      6. Repeaters
      7. Bracket Expressions
        1. Character Ranges
        2. Character Classes
    4. 78. Be Clever with Regular Expressions
      1. Repeaters with Bounds
      2. Subexpressions
      3. Branches
      4. Capture Patterns
      5. Search and Replace
    5. 79. Use Here-Documents in Scripts
      1. “Talk” in a Script
      2. Redirect from a Here-Document
      3. Control an Interactive Command
    6. 80. Understand Shell Quoting
      1. Recognize Special Characters
      2. Quote and Escape
        1. A First Escape Trick
        2. A More Daring Escape
        3. Consecutive Quotes
        4. Multi-Level Quoting
        5. Quoting within Command Evaluation
    7. 81. Write Complex Bash Conditions
      1. Understand Bash Conditions
        1. The [ Command
        2. Example Conditionals
        3. Complex Conditions
      2. Bash Boolean Operators
      3. Use the [[ Keyword
      4. Use Bash Integer Conditions
    8. 82. Debug Your Scripts
      1. Use Bash Attributes to Troubleshoot
      2. Trace Script Execution
      3. Display Executed Statements
      4. Exit on Error
    9. 83. Batch-Process Files
      1. Discover Loops and Wrappers
      2. Process Multiple Files
        1. Process the Options
        2. Process the Files
      3. Write a Wrapper Script
      4. Recursive Batch Processing
    10. 84. A Bash and Tcsh Reference
      1. Set Variables
      2. Redirection and Pipelining
      3. Tee Time
      4. Startup Files
      5. Control Constructs
        1. The if Construct
        2. The case/switch Construct
        3. The for Loop
        4. The while Loop
    11. 85. Take Advantage of Subshells
      1. Subshells
        1. Create Local Blocks of Code
        2. Selectively Redirect Input and Output
        3. Redirect stdout with Tsch
      2. Group Commands
    12. 86. Trap and Handle Unix Signals
      1. Understand Signals
      2. Catch Signals
        1. Add Multiple Handlers
        2. Write a Complex Handler
        3. Trap over a Block of Code
    13. 87. Scripting Tips
      1. Declare Your Variables
      2. Use Integer Arithmetic Expressions
      3. Test for a Numeric Value
      4. Return Arbitrary Values
      5. Variable Variables
  13. 10. Network in Unix
    1. 88. Mount Shares
      1. Switch on File Sharing
      2. Mount an AFP Share
        1. Access Shares Mounted by the Finder
        2. Unmount a Share
      3. Mount an NFS Share
        1. Unmount a Share
        2. Automount Shares
        3. Show in the Finder
    2. 89. Set up an NFS Server
      1. Set up a Simple NFS Server
        1. Define Exports
        2. Enable a Pre-Tiger system
        3. Avoid Rebooting
        4. Mount a Share
      2. Other Share Examples
    3. 90. Probe Networks
      1. Unix Utilities Power Apple’s Tools
      2. Ping a Host
        1. Ping Bonjour (Rendezvous)
        2. Ping All Hosts
        3. Find the Router
      3. Use Bonjour Names
      4. Trace a Route
      5. Examine Routing Tables
        1. The netstat Command
        2. The arp Command
      6. Scan Ports
        1. Grab an Open-Source Port Scanner
        2. Steal Apple’s Port Scanner
    4. 91. Resolve Hostnames
      1. Learn What’s in a (Domain) Name
      2. Look up DNS Information
      3. Configure DNS Lookup
      4. Configure from Unix
      5. Use Reverse Mapping
      6. Dig for Information
        1. Look up Additional Information
        2. Trace a DNS Chain
        3. Use Reverse Mapping with dig
    5. 92. Configure Apache
      1. Set Up Your Own Web Server
      2. Start and Stop Apache
      3. Configure Apache
        1. Change the Document Root
        2. Remove Clashing Sites
        3. Test the New Configuration
        4. Check Apache’s Log Files
    6. 93. Configure Apache More
      1. Configure Apache
        1. Enable PHP Support
        2. Search for Index.html
        3. Enable Server-Side Includes
        4. Disable Personal Web Sites
        5. Control Bonjour (Rendezvous)
      2. Enable CGI
        1. Serve CGI from Elsewhere
        2. CGI from Anywhere
    7. 94. Configure the FTP Service
      1. Enable FTP
        1. Active and Passive FTP
        2. Enable FTP from Unix
      2. Configure FTP
        1. Reduce Open Ports
        2. Change the Default umask
        3. Check the Log Files
    8. 95. Networking Tips
      1. Grab via HTTP
      2. Grab and Upload via FTP
        1. Connect to an FTP Account
        2. Upload Files
      3. Query a Dictionary
  14. 11. Discover More Commands
    1. 96. Discover Useful Utilities
      1. Display a Calendar
      2. Calculate
      3. Convert Units
    2. 97. Connect with Aqua
      1. Copy and Paste
      2. Drag and Drop
      3. Double-Click a Shell Script
    3. 98. Open Aqua Items
      1. Open a Folder
      2. Open an Application
      3. Open a File
      4. Open URLs
    4. 99. OS X–Specific Commands
      1. Copy with ditto
      2. Snap with Screen Capture
      3. Manage HFS+ File Attributes
      4. Read and Set Preferences Files
      5. Manage Preferences Files
    5. 100. Unix Command Reference
      1. Use Basic Commands
      2. View Files
      3. Search for Files and Commands
      4. Search File Content
      5. Change File Content
      6. Compress and Archive File Content
      7. Compare Text Files
      8. Query and Manage Processes
      9. Query and Manage Users
      10. Schedule Tasks
      11. Use Shell and Scripting Commands
        1. Shell Environment and Settings
        2. Shell Jobs and Processes
        3. Shell Scripting Commands
        4. Tcsh–Specific Commands
        5. Commands to Control the Terminal
      12. Employ Useful Utilities
      13. Query and Mount File Systems
      14. Access Network Services
      15. Report and Configure Network Settings
      16. Manage the System
      17. Manage the Kernel
      18. Use Mac OS X–Specific Commands
        1. Manage Disks
        2. Manage HFS+ Files
        3. Manage the System
        4. Manage User Accounts
        5. Manage Useful Utilities
    6. 101. Have Fun
      1. Bash Humor
      2. Tcsh Humor
      3. Cheat at Crosswords
      4. Trivial Pursuits
  15. Unix Terminology Reference