The UNIX Programming Environment

by Brian W. Kernighan

Other authorsRob Pike (Author)
Paperback, 1984



Call number


Library's review

Indeholder "Preface", "1. UNIX for Beginners", " 1.1 Getting started", " 1.2 Day-to-day use: files and common commands", " 1.3 More about files: directories", " 1.4 The shell", " 1.5 The rest of the UNIX system", "2. The File System", " 2.1 The basics of files", " 2.2 What's in a file?", " 2.3 Directories and filenames", " 2.4 Permissions", " 2.5 Inodes", " 2.6 The directory hierarchy", " 2.7 Devices", "3. Using the Shell", " 3.1 Command line structure", " 3.2 Metacharacters", " 3.3 Creating new commands", " 3.4 Command arguments and parameters", " 3.5 Program output as arguments", " 3.6 Shell variables", " 3.7 More on I/O redirection", " 3.8 Looping in shell programs", " 3.9 bundle: putting it all together", " 3.10 Why a programmable shell?", "4. Filters ", " 4.1 The grep family", " 4.2 Other filters", " 4.3 The stream editor sed", " 4.4 The awk pattern scanning and processing language", " 4.5 Good files and good filters", "5. Shell Programming", " 5.1 Customizing the cal command", " 5.2 Which command is which?", " 5.3 While and until loops: watching for things", " 5.4 Traps: catching interrupts", " 5.5 Replacing a file: overwrite", " 5.6 Zap: killing processes by name", " 5.7 The pick command: blanks vs. arguments", " 5.8 The news command: community service messages", " 5.9 Get and put: tracking file changes", " 5.10 A look back", "6. Programming with Standard I/O", " 6.1 Standard input and output: vis", " 6.2 Program arguments: vis version 2", " 6.3 File access: vis version 3", " 6.4 A screen-at-a-time printer: p", " 6.5 An example: pick", " 6.6 On bugs and debugging", " 6.7 An example: zap", " 6.8 An interactive file comparison program: idiff", " 6.9 Accessing the environment", "7. UNIX System Calls", " 7.1 Low-level I/O", " 7.2 File system: directories", " 7.3 File system: inodes", " 7.4 Processes", " 7.5 Signals and interrupts", "8. Program Development", " 8.1 Stage 1: A four-function calculator", " 8.2 Stage 2: Variables and error recovery", " 8.3 Stage 3: Arbitrary variable names; built-in functions", " 8.4 Stage 4: Compilation into a machine", " 8.5 Stage 5: Control flow and relational operators", " 8.6 Stage 6: Functions and procedures; input/output", " 8.7 Performance evaluation", " 8.8 A look back", "9. Document Preparation", " 9.1 The ms macro package", " 9.2 The troff level", " 9.3 The tbl and eqn preprocessors", " 9.4 The manual page", " 9.5 Other document preparation tools", "10. Epilog", " Appendix 1. Editor Summary", " Appendix 2. hoc Manual", " Appendix 3. hoc Listing", "Index".

Aldeles glimrende introduktion til diverse værktøjer i unix værktøjskassen. Overraskende aktuel selv om den snakker om halv og fuld duplex et par steder.
… (more)


Prentice Hall (1984), Paperback, 357 pages


Designed for first-time and experienced users, this book describes the UNIX® programming environment and philosophy in detail. Readers will gain an understanding not only of how to use the system, its components, and the programs, but also how these fit into the total environment.

User reviews

LibraryThing member rdai
This book, as well as "The C Programming Language" by Kernighan and Ritchie are the bibles of Unix and C programming, in my opinion. These are from the command line days, but they are still timeless reading. Highly recommended.
LibraryThing member alecclews
Still a great book even after all these years. Chapters 1-5 should be read by all UNIX and Linux users. The rest of the book is useful for UNIX developers.

Just don't expect it to explain how to use X/KDE/Gnome etc.
LibraryThing member snifty
This is one of the best technical books I've ever read. In a strange way it's still the best introduction to Linux, even though there are many outdated details. After all, _all_ technical are full of outdated details -- but it's the rare book indeed that can rise above implementation and express an entire philosophy of development concisely and readably.… (more)
LibraryThing member szarka
Although an updated version would be even better, it's amazing how good of an introduction to UNIX this book remains more than twenty years after its publication.
LibraryThing member scottjpearson
This book, copyright 1984, is not one's typical software read. Typical books on software deal with the latest and greatest that's coming down the pike. Instead, this book is a reminder of what is great in the UNIX operating system. It harkens back to the days when assembly coding was common and programming in C was considered more cutting edge.

So why is this worth a programmer's time to read over thirty years later in an era of object-orientation and machine-learning? The answer to this question is not vexing; indeed, it is simple. Great ideas transformed into great inventions deserve great study.

This book's epilog sums up this advice in describing four elements of UNIX's style:

1. "Let the machine do the work."
2. "Let other people do the work. Use programs that already exist as building blocks in your programs..."
3. "Do the job in stages. Build the simplest thing that will be useful, and let your experience with that determine what (if anything) is worth doing next."
4. "Build tools. Write programs that mesh with the existing environment, enhancing it rather than merely adding to it."
… (more)
LibraryThing member jrep
Before there was bash, before Ruby or PHP or Python or Perl, before X Windows, there was The Shell.


Original language


Original publication date


Physical description

x, 357 p.; 23.3 cm


013937681X / 9780139376818

Local notes

Omslag: Celine Brandes, Photo Plus Art
Omslaget viser titel og forfatternavne
Indskannet omslag - N650U - 150 dpi
2002 Event med Peter Salus: Trauma on the Internet
Februar 2002, besøg på Datalogi af Peter Salus.
Arrangeret af Michael Hejlskov Jacobsen og undertegnede.
Side vii: "The number of UNIX installations has grown to 10, with more expected." (The UNIX Programmer's Manual, 2nd Edition, June, 1972)
Page: 0.3675 seconds