Table of Contents| Foreword | xv | 
| Preface | xix | 
| Things Are Going to Get a Lot Worse Before Things Get Worse |  
  | 
 | xxi | 
 | xxiii | 
| Contributions and Acknowledgment |  
  | xxix | 
| Typographical Conventions |  
  | xxxii | 
| The UNIX-HATERS Disclaimer |  
  | xxxiii | 
| Anti-Foreword | xxxv | 
|   | 
| Part 1: User Friendly? |  1 | 
| 1 UNIX | 3 | 
| The World s First Computer Virus |  
  | 
 | 4 | 
 | 9 | 
| Standardizing Unconformity |  
  | 10 | 
 | 14 | 
| 2 Welcome, New User! | 17 | 
| Like Russian Roulette with Six Bullets Loaded |  
  | 
 | 18 | 
 | 19 | 
| Consistently Inconsistent |  
  | 26 | 
 | 31 | 
| Error Messages and Error Checking, NOT! |  
  | 31 | 
 | 37 | 
| 3 Documentation? | 43 | 
 | 
 | 44 | 
| This Is Internal Documentation? |  
  | 51 | 
| For Programmers, Not Users |  
  | 54 | 
| Unix Without Words: A Course Proposal |  
  | 56 | 
| 4 Mail | 61 | 
| Don't Talk to Me, I m Not a Typewriter! |  
  | 
| Sendmail: The Vietnam of Berkeley Unix |  
  | 62 | 
| Subject: Returned Mail: User Unknown |  
  | 67 | 
 | 74 | 
| Apple Computer s Mail Disaster of 1991 |  
  | 85 | 
| 5 Snoozenet | 93 | 
 | 
| Netnews and Usenet: Anarchy Through Growth |  
  | 93 | 
 | 96 | 
 | 100 | 
| This Information Highway Needs Information |  
  | 100 | 
| rn, trn: You Get What You Pay for |  
  | 101 | 
 | 105 | 
| Seven Stages of Snoozenet |  
  | 106 | 
| 6 Terminal Insanity | 111 | 
 | 
 | 111 | 
 | 114 | 
| 7 The X-Windows Disaster | 123 | 
| How to Make a 50-MIPS Workstation Run Like a 4.77MHz IBM PC |  
  | 
| X: The First Fully Modular Software Disaster |  
  | 124 | 
 | 127 | 
| X Graphics: Square Peg in a Round Hole |  
  | 141 | 
| X: On the Road to Nowhere |  
  | 142 | 
|   | 
| Part 2: Programmer s System? |  145 | 
| 8 csh, pipes, and find | 147 | 
| Power Tools for Power Fools |  
  | 
 | 148 | 
 | 155 | 
 | 161 | 
 | 166 | 
| 9 Programming | 173 | 
| Hold Still, This Won't Hurt a Bit |  
  | 
| The Wonderful Unix Programming Environment |  
  | 175 | 
| Programming in Plato s Cave |  
  | 176 | 
| "It Can't Be a Bug, My Makefile Depends on It!" |  
  | 186 | 
| If You Can't Fix It, Restart It! |  
  | 198 | 
| 10 C++ | 203 | 
 | 
| The Assembly Language of Object-Oriented Programming |  
  | 204 | 
 | 208 | 
 | 211 | 
| C++ Is to C as Lung Cancer Is to Lung |  
  | 214 | 
| The Evolution of a Programmer |  
  | 215 | 
|   | 
| Part 3: Sysadmin's Nightmare |  219 | 
| 11 System Administration | 221 | 
 | 
| Keeping Unix Running and Tuned |  
  | 223 | 
| Disk Partitions and Backups |  
  | 227 | 
 | 235 | 
| Maintaining Mail Services |  
  | 239 | 
 | 241 | 
| 12 Security | 243 | 
| Oh, I m Sorry, Sir, Go Ahead, I Didn t Realize You Were Root |  
  | 
| The Oxymoronic World of Unix Security |  
  | 243 | 
 | 244 | 
 | 257 | 
| 13 The File System | 261 | 
| Sure It Corrupts Your Files, But Look How Fast It Is! |  
  | 
 | 262 | 
| UFS: The Root of All Evil |  
  | 265 | 
| 14 NFS | 283 | 
 | 
 | 284 | 
 | 287 | 
| Not File System Specific? (Not Quite) |  
  | 292 | 
|   | 
| Part 4: Et Cetera |  303 | 
| A Epilogue | 305 | 
| Enlightenment Through Unix |  
  | 
| B Creators Admit C, Unix Were Hoax | 307 | 
 | 
| C The Rise of Worse Is Better | 311 | 
| D Bibliography | 317 | 
| Just When You Thought You Were Out of the Woods... |  
  | 
| Index | 319 |