TY - BOOK AU - Glass,Graham TI - UNIX for programmers and users SN - 9788177583595 (pb) U1 - 005.276 PY - 2003/// CY - Upper Saddle River, N.J. PB - Pearson Education KW - Operating Systems (Computers) N1 - Includes bibliographical references (p. 673-674) and index; CHAPTER 1 What is UNIX? Motivation Prerequisites Objectives Presentation Computer Systems The Hardware Central Processing Unit (CPU) Random-Access Memory (RAM) Read-Only Memory (ROM) Disk CD-ROM Drive Monitor Graphics Card Keyboard Mouse Printer Tape Modem Ethernet Interface Other Peripherals Operating Systems The Software Sharing Resources Communication Utilities Programmer Support Standards List of UNIX Features (A Recap) UNIX Philosophies UNIX Yesterday UNIX Today UNIX Tomorrow The Rest of this Book Chapter Review Checklist ' Quiz Exercise Project CHAPTER 2 UNIX Utilities for Nonprogrammers Motivation Prerequisites Objectives Presentation Utilities Shell Command Obtaining an account Logging In Shells Running a Utility Input, Output, and Error Channels Obtaining On-Line Help: man Special Characters Terminating a Process: Control-C Pausing Output: Control-SIControl-Q End of Input: Control-D Setting Your Password: passwd Logging Out Poetry in Motion: Exploring the File System Printing Your Shell's Current Working Directory: pwd Absolute and Relative Pathnames Creating a File Listing the Contents of a Directory: Is Listing a File: cat/more/page/head/tail Renaming a File: mv Making a Directory: mkdir Moving to a Directory: cd Copying a File: cp Editing a File: vi Deleting a Directory: rmdir Deleting a File: rm Printing a File: Ip/Ipstat/cancel Printing a File: Ipr/lpq/lprm Counting the Words in a File: wc File Attributes File Storage Filenames File Modification Time File Owner File Group File Types File Permissions Hard Link Count Groups Listing Your Groups: Groups Changing a File's Group: chgrp Changing a File's Permissions: chmod Changing a File's Owner: chown Changing Groups: newgrp Poetry in Motion: Epilogue Determining Your Terminal's Type: tset C shell Bourne/Korn/Bash shell C shell Bourne/Korn/Bash shell Changing a Terminal's Characteristics: stty Editing a File: vi Starting vi Text Entry Mode Command Mode Memory Buffer and Temporary Files Common Editing Features Cursor Movement Deleting Text Replacing Text Pasting Text Searching Searching and Replacing Saving and Loading Files Miscellaneous Customizing vi Keeping Your Customizations For More Information Editing a File: emacs Starting emacs emacs Commands Getting Out of Trouble Getting Help Leaving emacs emacs Modes Entering Text Common Editing Features Moving the Cursor Deleting, Pasting, and Undoing Searching Search and Replace Saving and Loading Files Miscellaneous For More Information Electronic Mail: mail/mailx Sending Mail Reading Mail Contacting the System Administrator Chapter Review Checklist Quiz Exercises Project CHAPTER 3 UNK Utilities for Power Users Motivation Prerequisites Objectives Presentation Utilities Introduction Filtering Files Filtering Patterns: egrep/ f grep/grep Removing Duplicate Lines: uniq Sorting Files: sort Comparing Files Testing for Sameness: cmp File Differences: dif f Finding Files: find Archives Copying Files: cpio Tape Archiving: tar Incremental Backups: dump and restore Scheduling Commands Periodic Execution: cron/crontab One-Time Execution: at Programmable Text Processing; awk awk Programs Accessing Individual Fields Begin and End Operators Variables Control Structures Extended Regular Expressions Condition Ranges Field Separators Built-in Functions Hard and Soft Links: In Identifying Shells: whoaini Substituting a User: su Checking for Mail: biff Transforming Files Compressing Files: compress/uncompress and gzip/gunzip File Encryption: crypt Stream Editing: sed Translating Characters: tr Converting Underline Sequences: ul Looking at Raw File Contents: od Mounting File Systems: mount/lunount Identifying Terminals: tty Text Formatting: nroff/troff/style/spell Timing Execution: time Rolling Your Own Programs: Perl Getting Perl Printing Text Variables, Strings, and Integers Arrays Mathematical and Logical Operators String Operators Comparison Operators If, While, For, and Foreach Loop Constructs File I/O Functions Library Functions Command-Line Arguments A Real-World Example Chapter Review Checklist Quiz Exercises Projects CHAPTER 4 The UNIX SheUs Motivation Prerequisites Objectives Presentation Utilities Shell Commands Introduction Shell Functionality Selecting a Shell Shell Operations Executable Files Versus Built-in Commands Displaying Information: echo Changing Directories: cd Metacharacters Redirection Output Redirection Input Redirection Filename Substitution (Wildcards) Pipes Command Substitution Sequences Conditional Sequences Grouping Commands Background Processing Redirecting Background Processes Redirecting Output Redirecting Input Shell Programs: Scripts Subshells Variables Quoting Here Documents Job Control Process Status: ps Signaling Processes: kill Waiting for Child Processes: wait Finding a Command: $path Overloading Standard Utilities Termination and Exit Codes Common Core Built-Ins eval exec shift umask Chapter Review Checklist Quiz Exercises Project CHAPTER 5 The Bourne Shell Motivation Prerequisites Objectives Presentation Utilities Shell Commands Introduction Start-Up Variables Creating/Assigning a Variable Accessing a Variable Reading a Variable from S^ndard Input Exporting Variables Read-Only Variables Predefined Local Variables Predefined Environment Variables Arithmetic Conditional Expressions Control Structures case .. in .. esac for .. do .. done if .. then .. fi trap until .. do .. done while .. done Sample Project: track Miscellaneous Built-Ins Read Command:. null Command Setting Shell Options: set Enhancements Sequenced Commands Command-Line Options Chapter Review Checklist Quiz Exercises Projects CHAPTER 6 The Kom Shell Motivation Prerequisites Objectives Presentation Shell Commands Introduction Start-Up Aliases Aliasing Built-in Commands Removing an Alias Predefined Aliases Some Useful Aliases Tracked Aliases Sharing Aliases History Numbered Commands Storage of Commands Command Reexecution Editing Commands Editing Commands The Built-in vi Editor The Built-in emacs/gmacs Editor Arithmetic Preventing Metacharacter Interpretation Return Values Hide Substitution Menus: select Functions Using Parameters Returning from a Function Context Local Variables Recursion Sharing Functions Enhanced Job Control Jobs Specifying a Job bg fg kill Enhancements Redirection Pipes Command Substitution Variables Formatting Case Type Miscellaneous Built-Ins Sample Project: Junk The Restricted Shell Command-Line Options Chapter Review Checklist Quiz Exercises Projects CHAPTER 7 The C Shell Motivation Prerequisites Objectives Presentation Shell Commands Introduction Start-Up Variables Creating and Assigning Simple Variables Accessing a Simple Variable Creating and Assigning List Variables Accessing a List Variable Building Lists Predefined Local Variables Creating and Assigning Environment Variables Predefined Environment Variables Expressions String Expressions Arithmetic Expressions File-Oriented Expressions Filename Completion Aliases Removing an Alias Useful Aliases Sharing Aliases Parameterized Aliases History Numbered Commands Storage of Commands Reading History Command Reexecution Accessing Pieces of History Accessing Portions of Filenames History Substitution Control Structures foreach .. end goto if .. then .. else .. endif onintr repeat switch .. case .• endsw while .. end Sample Project: Junk Enhancements Command Reexecution: A Shortcut Metacharacters: {} Filename Substitution Piping Job Control Terminating a Login Shell Built-Ins chdir glob source The Directory Stack The Hash Table Command-Line Options Chapter Review Checklist Quiz Exercises Project CHAPTER 8 The Bourne Again SheU Motivation Prerequisites Objectives Presentation Shell Commands Introduction Getting Bash Start-Up Variables Creating and Assigning a Simple Variable Accessing Simple Variables Creating and Assigning a List Variable Accessing List Variables Building Lists Destroying Lists Exporting Variables Predefined Variables Command Shortcuts Aliases Command History Autocompletion Arithmetic Conditional Expressions Arithmetic Tests String Comparisons File-Oriented Expressions Control Structures case .. in .. esac if .. then .. elif .. then .. else .. fi for .. do .. done while/until .. do .. done Directory Stack Job Control Functions Miscellaneous Built-in Commands Command-Line Options Chapter Review Checklist Quiz Exercise Project CHAPTER 9 Networking Motivation Prerequisites Objectives Presentation Commands Introduction Building a Network Ethernets Bridges Routers Gateways Internetworking Packet Switching Internet Addresses Naming Routing Security Ports and Common Services Network Programming Users Listing Users: users / rusers More User Listings: who / rwho/w Your Own Host Name: hostname Personal Data: finger Communicating with Users Shielding Yourself from Communication: mesg Sending a Line at a Time: write Interactive Conversations: talk Messages to Everyone: wall Distributing Data Copying Files between Two UNIX Hosts: rep Copying Files between Non-UNIX Hosts: f tp Distributing Processing Remote Logins: rlogin Executing Remote Commands: rsh Remote Connections: telnet Network File System: NFS For More Information... Chapter Review Checklist Quiz Exercises Project CHAPTER 10 The Internet Motivation Prerequisites Objectives Presentation The Evolution of the Internet In the Beginning: The 1960s Standardizing the Internet: The 1970s Rearchitecting and Renaming the Internet: The 1980s The Web: The 1990s Using Today's Internet URLs Chapter Review Checklist Quiz Exercises Project CHAPTER 11 Windowing Systems Motivation Prerequisites Objectives Presentation Utilities Introduction Graphical User Interfaces Mit X Servers Screen Geometry Security and Authorization X Window Managers Focus Program Start-Up Open and Closed Windows Choices of Window Managers Widgets Menus Push Buttons Check Boxes and Radio Buttons Scroll Bars Motif Window Manager Functions Bringing Up the Root Menu Opening a Window Closing a Window Moving a Window Resizing a Window Raising or Lowering a Window Bringing Up a Window Menu Client Applications xclock xbif f xterm Standard X Client Arguments Geometry Foreground and Background Title Iconic Advanced Topics Copy and Paste Networking Capabilities Application Resources Configuration and Start-Up A (Limited) Survey of Other X-Compatible Desktops CDE Gnome KDE OpenWindows VUE Chapter Review Checklist Quiz Exercises Project CHAPTER 12 CProgramining Tools Motivation Prerequisites Objectives Presentation Utilities The C Language C Compilers Single-Module Programs Compiling a C Program A Listing of the Corrected Reverse Program Running a C Program Overriding the Default Executable Name Multimodule Programs Reusable Functions Preparing a Reusable Function Compiling and Linking Modules Separately The Stand-Alone Loader: Id Reusing the Reverse Function Maintaining Multimodule Programs The UNIX File Dependency System; make Make Files The Order of Make Rules Executing a Make Make Rules Writing Your Own Rules Touch Macros Other Make Facilities The UNIX Archive System: ar Creating an Archive Adding a File Appending a File Obtaining a Table of Contents Deleting a File Extracting a File Maintaining an Archive from the Command Line Maintaining an Archive by Using Make Ordering Archives Creating a Table of Contents: ranlib Shared Libraries The UNIX Source Code Control System: SCCS Creating an SCCS File Checking Out a File Monitoring SCCS Activity Undoing a Checkout and Returning a File Creating a New Delta Obtaining a File's History SCCS Identification Keywords Creating a New Release Checking Out Read-Only Copies of Previous Versions Checking Out Editable Copies of Previous Versions Editing Multiple Versions Deleting Versions Compressing SCCS Files Restricting Access to SCCS Files Locking Releases The UNIX Profiler: prof Double-Checking Programs: lint The UNIX Debugger: dbx Preparing a Program for Debugging Entering the Debugger Running a Program Tracing a Program Tracing Variables and Function Calls The Bug Breakpoints Single Stepping Accessing Variables Listing a Program Leaving the Debugger Summary When You're Done: strip Chapter Review Checklist Quiz Exercises Projects CHAPTER 13 Systems Programming Motivation Prerequisites Objectives Presentation System Calls and Library Routines Introduction Error Handling: perror () Regular File Management A File Management Primer First Example: reverse How reverse Works reverse.c: Listing Opening a File: open () Reading from a File: read {) Writing to.a File: write () Moving in a File: 1 seek () Closing a File: close () Deleting a File: unl ink () Second Example: monitor How monitor Works monitor .c: Listing Obtaining File Information; St at () Reading Directory Information: getdents {) Miscellaneous File Management System Calls Changing a File's Owner or Group: chown () and fchown () Changing a File's Permissions: chmod () and fchmod () Duplicating a File Descriptor: dup {) and dup2 () FileDescriptor Operations: font 1 () Controlling Devices: ioctl () Creating Hard Links: link () Creating Special Files: mknod () Flushing the File System Buffers: sync {) Truncating a File: truncate () and f truncate () STREAMS Process Management Creating a New Process: fork () Orphan Processes Terminating a Process: exi t () Zombie Processes Waiting for a Child: wai t () Differentiating a Process: exec () Changing Directories: chdir () Changing Priorities: nice () Accessing User and Group IDs Sample Program: Background Processing Sample Program: Disk Usage Threads Redirection Signals The Defined Signals A List of Signals Terminal Signals Requesting an Alarm Signal: alarm () Handling Signals: signal 0 Protecting Critical Code and Chaining Interrupt Handlers Sending Signals: ki 11 0 Death of Children Suspending and Resuming Processes Process Groups and Control Terminals IPC Pipes Sockets Shared Memory Semaphores Ibe Internet Shell Restrictions Command Syntax Starting the Internet Shell Built-in Conunands Some Regular Examples Some Internet Examples How It Works The Main Command Loop Parsing Executing a Conunand Sequence Executing Pipelines Executing a Simple Command Redirection Extensions Chapter Review Checklist Quiz Exercises Projects CHAPTER 14 UNIX Internals Motivation Prerequisites Objectives Presentation Introduction Kernel Basics Kernel Subsystems Processes and Files Talking to the Kernel System Calls User Mode and Kernel Mode Synchronous versus Asynchronous Processing Interrupting Interrupts The Rle System ■ Disk Architecture Interleaving Storing a File Block I/O Inodes Inode Contents The Block Map File System Layout The Superblock Bad Blocks Directories li-anslating Pathnames into Inode Numbers Sample Pathname-to-Inode Translation Mounting File Systems File System I/O Process Management Executable Files The First Processes Kernel Processes and User Processes The Process Hierarchy Process States Process Composition The User Area The Process Table The Scheduler Scheduling Rules Memory Management Memory Pages Page Tables and Regions The RAM Table Loading an Executable File: exec () Address Translation Illustration of MMU Algorithm The MMU and the Page Table The Memory Layout after the First Instruction The Page Daemon Swap Space The Page Daemon Algorithm The Memory Layout after Some Page Outs Accessing a Page That's Stored in Swap Space Duplicating a Process: fork () Processing References to Shared RAM and Swap Pages Thrashing and Swapping Terminating a Process: exi t () Signals Input/Output I/O Objects I/O System Calls I/O Buffering Regular File I/O Directory File I/O Mounting File Systems Translation of Filenames Special File I/O Terminal I/O Streams Interprocess Communication Pipes Sockets Chapter Review Checklist Quiz Exercises Projects CHAPTER 15 System Administration Motivation Prerequisites Objectives Presentation Utilities Introduction Becoming a Superuser Starting UNIX Stopping the System Maintaining the File System File System Integrity Disk Usage Assigning Quotas Creating New File Systems Backing Up File Systems Maintaining User Accounts The Password File The Group File Installing Software Peripheral Devices Installing a Device Terminal Files The Network Interface Automating Tasks Accounting Configuring the Kernel Security Issues Chapter ReAuew Checklist Quiz Exercises Project CHAPTER l&The Future Motivation Prerequisites Objectives Presentation Introduction Current and Near-Future Influences on UNIX Object-Oriented Programming Open Source Software Parallel, Distributed, and Multiprocessor Systems TheYear-2000"Bug" Sixty-Four-Bit Systems Internet Addressing: IPv6 High-Bandwidth Networks Fault-Tolerant Systems Survey of Current Popular Versions of UNIX AIX Caldera SCO/Unixware FreeBSD HP-UX IRIX Linux NetBSD OpenBSD Tru64 UNIX Solaris Chapter Review Checklist Quiz Exercise Project ER -