Debian Reference

Osamu Aoki

This Debian Reference (v2) (2009-08-04 17:24:27 UTC) is intended to provide a broad overview of the Debian system as a post-installation user's guide. It covers many aspects of system administration through shell-command examples for non-developers.

Abstract

This book is free; you may redistribute it and/or modify it under the terms of the GNU General Public License of any version compliant to the Debian Free Software Guidelines (DFSG).


Table of Contents

Preface
1. Disclaimer
2. What is Debian
3. About this document
3.1. Guiding rules
3.2. Prerequisites
3.3. Conventions
3.4. The popcon
3.5. The package size
3.6. Bug reports
4. Some quotes for new users
1. GNU/Linux tutorials
1.1. Console basics
1.1.1. The shell prompt
1.1.2. The shell prompt under X
1.1.3. The root account
1.1.4. The root shell prompt
1.1.5. GUI system administration tools
1.1.6. Virtual consoles
1.1.7. How to leave the command prompt
1.1.8. How to shutdown the system
1.1.9. Recovering a sane console
1.1.10. Additional package suggestions for the newbie
1.1.11. An extra user account
1.1.12. sudo configuration
1.1.13. Play time
1.2. Unix-like filesystem
1.2.1. Unix file basics
1.2.2. Filesystem internals
1.2.3. Filesystem permissions
1.2.4. Control of permissions for newly created files: umask
1.2.5. Permissions for groups of users (group)
1.2.6. Timestamps
1.2.7. Links
1.2.8. Named pipes (FIFOs)
1.2.9. Sockets
1.2.10. Device files
1.2.11. Special device files
1.2.12. procfs and sysfs
1.3. Midnight Commander (MC)
1.3.1. Customization of MC
1.3.2. Starting MC
1.3.3. File manager in MC
1.3.4. Command-line tricks in MC
1.3.5. The internal editor in MC
1.3.6. The internal viewer in MC
1.3.7. Auto-start features of MC
1.3.8. FTP virtual filesystem of MC
1.4. The basic Unix-like work environment
1.4.1. The login shell
1.4.2. Customizing bash
1.4.3. Special key strokes
1.4.4. Unix style mouse operations
1.4.5. The pager
1.4.6. The text editor
1.4.7. Setting a default text editor
1.4.8. Customizing vim
1.4.9. Recording the shell activities
1.4.10. Basic Unix commands
1.5. The simple shell command
1.5.1. Command execution and environment variable
1.5.2. "$LANG" variable
1.5.3. "$PATH" variable
1.5.4. "$HOME" variable
1.5.5. Command line options
1.5.6. Shell glob
1.5.7. Return value of the command
1.5.8. Typical command sequences and shell redirection
1.5.9. Command alias
1.6. Unix-like text processing
1.6.1. Unix text tools
1.6.2. Regular expressions
1.6.3. Replacement expressions
1.6.4. Global substitution with regular expressions
1.6.5. Extracting data from text file table
1.6.6. Script snippets for piping commands
2. Debian package management
2.1. Debian package management prerequisites
2.1.1. Package configuration
2.1.2. Basic precautions
2.1.3. Life with eternal upgrades
2.1.4. Debian archive basics
2.1.5. Package dependencies
2.1.6. The event flow of the package management
2.1.7. First response to package management troubles
2.2. Basic package management operations
2.2.1. Basic package management operations with commandline
2.2.2. Interactive use of aptitude
2.2.3. Key bindings of aptitude
2.2.4. Package views under aptitude
2.2.5. Search method options with aptitude
2.2.6. The aptitude regex formula
2.2.7. Dependency resolution of aptitude
2.2.8. Package activity logs
2.2.9. Aptitude advantages
2.3. Examples of aptitude operations
2.3.1. Listing packages with regex matching on package names
2.3.2. Browsing with the regex matching
2.3.3. Purging removed packages for good
2.3.4. Tidying auto/manual install status
2.3.5. System wide upgrade with aptitude
2.4. Advanced package management operations
2.4.1. Advanced package management operations with commandline
2.4.2. Verification of installed package files
2.4.3. Safeguarding for package problems
2.4.4. Searching on the package meta data
2.5. Debian package management internals
2.5.1. Archive meta data
2.5.2. Top level "Release" file and authenticity
2.5.3. Archive level "Release" files
2.5.4. Fetching of the meta data for the package
2.5.5. The package state for APT
2.5.6. The package state for aptitude
2.5.7. Local copies of the fetched packages
2.5.8. The Debian package file name
2.5.9. The dpkg command
2.5.10. The update-alternative command
2.5.11. The dpkg-statoverride command
2.5.12. The dpkg-divert command
2.6. Recovery from a broken system
2.6.1. Incompatibility with old user configuration
2.6.2. Different packages with overlapped files
2.6.3. Fixing broken package script
2.6.4. Rescue with the dpkg command
2.6.5. Recovering package selection data
2.7. Tips for the package management
2.7.1. How to pick Debian packages
2.7.2. Packages from mixed source of archives
2.7.3. Tweaking candidate version
2.7.4. Volatile and Backports.org
2.7.5. Automatic download and upgrade of packages
2.7.6. Limiting download bandwidth for APT
2.7.7. Emergency downgrading
2.7.8. Who uploaded the package?
2.7.9. The equivs package
2.7.10. Porting a package to the stable system
2.7.11. Proxy server for APT
2.7.12. Small public package archive
2.7.13. Recording and copying system configuration
2.7.14. Converting or installing an alien binary package
2.7.15. Extracting package without dpkg
2.7.16. More readings for the package management
3. The system initialization
3.1. An overview of the boot strap process
3.2. Stage 1: the BIOS
3.3. Stage 2: the boot loader
3.4. Stage 3: the mini-Debian system
3.5. Stage 4: the normal Debian system
3.5.1. The meaning of the runlevel
3.5.2. The configuration of the runlevel
3.5.3. The runlevel management example
3.5.4. The default parameter for each init script
3.5.5. The hostname
3.5.6. Network interface initialization
3.5.7. Network service initialization
3.5.8. The system message
3.5.9. The kernel message
3.5.10. The udev system
3.5.11. The kernel module initialization
4. Authentication
4.1. Normal Unix authentication
4.2. Managing account and password information
4.3. Good password
4.4. Creating encrypted password
4.5. PAM and NSS
4.5.1. Configuration files accessed by the PAM and NSS
4.5.2. The modern centralized system management
4.5.3. "Why GNU su does not support the wheel group"
4.5.4. Stricter password rule
4.6. Other access controls
4.6.1. sudo
4.6.2. SELinux
4.6.3. Restricting access to some server services
4.7. Security of authentication
4.7.1. Secure password over the Internet
4.7.2. Secure Shell
4.7.3. Extra security measures for the Internet
4.7.4. Securing the root password
5. Network setup
5.1. The basic network infrastructure
5.1.1. The domain name
5.1.2. The hostname resolution
5.1.3. The network interface name
5.1.4. The network address range for the LAN
5.1.5. The network configuration infrastructure
5.1.6. The network device support
5.2. The network connection method
5.2.1. The DHCP connection with the Ethernet
5.2.2. The static IP connection with the Ethernet
5.2.3. The PPP connection with pppconfig
5.2.4. The alternative PPP connection with wvdialconf
5.2.5. The PPPoE connection with pppoeconf
5.3. The basic network configuration with ifupdown
5.3.1. The command syntax simplified
5.3.2. The basic syntax of "/etc/network/interfaces"
5.3.3. The loopback network interface
5.3.4. The network interface served by the DHCP
5.3.5. The network interface with the static IP
5.3.6. The basics of wireless LAN interface
5.3.7. The wireless LAN interface with WPA/WPA2
5.3.8. The wireless LAN interface with WEP
5.3.9. The PPP connection
5.3.10. The alternative PPP connection
5.3.11. The PPPoE connection
5.3.12. The network configuration state of ifupdown
5.3.13. The basic network reconfiguration
5.3.14. The ifupdown-extra package
5.4. The advanced network configuration with ifupdown
5.4.1. The ifplugd package
5.4.2. The ifmetric package
5.4.3. The virtual interface
5.4.4. The advanced command syntax
5.4.5. The mapping stanza
5.4.6. The manually switchable network configuration
5.4.7. Scripting with the ifupdown system
5.4.8. Mapping with guessnet
5.5. The network configuration for desktop
5.5.1. GUI network configuration tools
5.5.2. Automatic network configuration
5.6. The low level network configuration
5.6.1. Iproute2 commands
5.6.2. Safe low level network operations
5.7. Network optimization
5.7.1. Finding optimal MTU
5.7.2. Setting MTU
5.7.3. WAN TCP optimization
5.8. Netfilter infrastructure
6. Network applications
6.1. Web browsers
6.1.1. Browser configuration
6.2. The mail system
6.2.1. Modern mail service basics
6.2.2. The mail configuration strategy for workstation
6.3. Mail transport agent (MTA)
6.3.1. The configuration of exim4
6.3.2. The configuration of postfix with SASL
6.3.3. The mail address configuration
6.3.4. Basic MTA operations
6.4. Mail user agent (MUA)
6.4.1. Basic MUA — Mutt
6.5. The remote mail retrieval and forward utility
6.5.1. getmail configuration
6.5.2. fetchmail configuration
6.6. Mail delivery agent (MDA) with filter
6.6.1. maildrop configuration
6.6.2. procmail configuration
6.6.3. Redeliver mbox contents
6.7. POP3/IMAP4 server
6.8. The print server and utility
6.9. The remote access server and utility (SSH)
6.9.1. Basics of SSH
6.9.2. Port forwarding for SMTP/POP3 tunneling
6.9.3. Connecting without remote passwords
6.9.4. Dealing with alien SSH clients
6.9.5. Setting up ssh-agent
6.9.6. Troubleshooting SSH
6.10. Other network application servers
6.11. Other network application clients
6.12. The diagnosis of the system daemons
7. The X Window System
7.1. Key packages
7.2. Setting up desktop environment
7.2.1. Debian menu
7.2.2. Freedesktop.org menu
7.2.3. Debian menu under GNOME desktop environment
7.3. The server/client relationship
7.4. The X server
7.4.1. The (re)configuration of the X server
7.4.2. The connection methods to the X server
7.5. Starting the X Window System
7.5.1. Starting X session with gdm
7.5.2. Customizing the X session (classic method)
7.5.3. Customizing the X session (new method)
7.5.4. Connecting a remote X client via SSH
7.5.5. Secure X terminal via the Internet
7.6. Fonts in the X Window
7.6.1. Basic fonts
7.6.2. Additional fonts
7.6.3. CJK fonts
7.7. X applications
7.7.1. X office applications
7.7.2. X utility applications
7.8. The X trivia
7.8.1. Keymaps and pointer button mappings in X
7.8.2. Classic X clients
7.8.3. The X terminal emulator — xterm
7.8.4. Running X clients as root
8. I18N and L10N
8.1. The keyboard input
8.1.1. The input method support with SCIM
8.1.2. An example for Japanese
8.1.3. Disabling the input method
8.2. The display output
8.3. The locale
8.3.1. Basics of encoding
8.3.2. Rationale for UTF-8 locale
8.3.3. The reconfiguration of the locale
8.3.4. The value of the "$LANG" environment variable
8.3.5. Specific locale only under X Window
8.3.6. Filename encoding
8.3.7. Localized messages and translated documentation
8.3.8. Effects of the locale
9. System tips
9.1. The screen program
9.1.1. The use scenario for screen(1)
9.1.2. Key bindings for the screen command
9.2. Data recording and presentation
9.2.1. The log daemon
9.2.2. Log analyzer
9.2.3. Recording the shell activities cleanly
9.2.4. Customized display of text data
9.2.5. Customized display of time and date
9.2.6. Colorized shell echo
9.2.7. Colorized commands
9.2.8. Recording the graphic image of an X application
9.2.9. Recording changes in configuration files
9.3. Data storage tips
9.3.1. Disk partition configuration
9.3.2. Accessing partition using UUID
9.3.3. Filesystem configuration
9.3.4. Filesystem creation and integrity check
9.3.5. Optimization of filesystem by mount options
9.3.6. Optimization of filesystem via superblock
9.3.7. Optimization of hard disk
9.3.8. Using SMART to predict hard disk failure
9.3.9. Expansion of usable storage space via LVM
9.3.10. Expansion of usable storage space by mounting another partition
9.3.11. Expansion of usable storage space using symlink
9.3.12. Expansion of usable storage space using aufs
9.4. Data encryption tips
9.4.1. Removable disk encryption with dm-crypt/LUKS
9.4.2. Encrypted swap partition with dm-crypt
9.4.3. Automatically encrypting files with eCryptfs
9.4.4. Automatically mounting eCryptfs
9.5. Monitoring, controlling, and starting program activities
9.5.1. Timing a process
9.5.2. The scheduling priority
9.5.3. The ps command
9.5.4. The top command
9.5.5. Listing files opened by a process
9.5.6. Tracing program activities
9.5.7. Identification of processes using files or sockets
9.5.8. Repeating a command with a constant interval
9.5.9. Repeating a command looping over files
9.5.10. Starting a program from GUI
9.5.11. Customizing program to be started
9.5.12. Killing a process
9.5.13. Scheduling tasks once
9.5.14. Scheduling tasks regularly
9.5.15. Alt-SysRq key
9.6. System maintenance tips
9.6.1. Who is on the system?
9.6.2. Warning everyone
9.6.3. Hardware identification
9.6.4. Hardware configuration
9.6.5. System and hardware time
9.6.6. The terminal configuration
9.6.7. The sound infrastructure
9.6.8. Disabling the screen saver
9.6.9. Disabling beep sounds
9.6.10. Memory usage
9.6.11. System security and integrity check
9.7. The kernel
9.7.1. Linux kernel 2.6
9.7.2. Kernel headers
9.7.3. Compiling the kernel and related modules
9.7.4. Compiling the kernel source: Debian standard method
9.7.5. Compiling the module source: Debian standard method
9.7.6. Compiling the kernel source: classic method
9.7.7. Non-free hardware drivers
9.8. Virtualized system
9.8.1. Virtualization tools
9.8.2. Chroot system
9.8.3. Setting up login for chroot
10. Data management
10.1. Sharing, copying, and archiving
10.1.1. Archive and compression tools
10.1.2. Copy and synchronization tools
10.1.3. Idioms for the archive
10.1.4. Idioms for the copy
10.1.5. Idioms for the selection of files
10.1.6. Backup and recovery
10.1.7. Backup utility suites
10.1.8. An example script for the system backup
10.1.9. A copy script for the data backup
10.1.10. Removable mass storage device
10.1.11. Sharing data via network
10.1.12. Archive media
10.2. The binary data
10.2.1. Making the disk image file
10.2.2. Writing directly to the disk
10.2.3. Mounting the disk image file
10.2.4. Making an empty disk image file
10.2.5. Viewing and editing binary data
10.2.6. Manipulating files without mounting disk
10.2.7. Data redundancy
10.2.8. Data file recovery and forensic analysis
10.2.9. Making the ISO9660 image file
10.2.10. Writing directly to the CD/DVD-R/RW
10.2.11. Mounting the ISO9660 image file
10.2.12. Spliting a large file into small files
10.2.13. Clearing file contents
10.2.14. Dummy files
10.2.15. Erasing an entire hard disk
10.2.16. Undeleting deleted but still open files
10.2.17. Searching all hardlinks
10.2.18. Invisible disk space consumption
10.3. Data security infrastructure
10.3.1. Key management for Gnupg
10.3.2. Using GnuPG with files
10.3.3. Using GnuPG with Mutt
10.3.4. Using GnuPG with Vim
10.3.5. The MD5 sum
10.4. Source code merge tools
10.4.1. Extracting differences for source files
10.4.2. Merging updates for source files
10.4.3. Updating via 3-way-merge
10.5. Version control systems
10.5.1. Comparison of VCS commands
10.6. CVS
10.6.1. Installing a CVS server
10.6.2. Using local CVS server
10.6.3. Using remote CVS pserver
10.6.4. Anonymous CVS (download only)
10.6.5. Using remote CVS through ssh
10.6.6. Creating a new CVS archive
10.6.7. Working with CVS
10.6.8. Exporting files from CVS
10.6.9. Administration of CVS
10.6.10. File permissions in CVS repository
10.6.11. Execution bit
10.7. Subversion
10.7.1. Installing a Subversion server
10.7.2. Setting up a repository
10.7.3. Configuring Apache2
10.7.4. Subversion usage examples
10.7.5. Creating a new Subversion archive
10.7.6. Working with Subversion
10.8. Git
10.8.1. Before using Git …
10.8.2. Git references
10.8.3. Git commands
10.8.4. Git for recording configuration history
11. Data conversion
11.1. Text data conversion tools
11.1.1. To convert a text file with iconv
11.1.2. To convert file names with iconv
11.1.3. EOL conversion
11.1.4. TAB conversion
11.1.5. Editors with auto-conversion
11.1.6. Plain text extraction
11.1.7. Highlighting and formatting plain text data
11.2. XML data
11.2.1. Basic hints for XML
11.2.2. XML processing
11.2.3. The XML data extraction
11.3. Printable data
11.3.1. Ghostscript
11.3.2. Merge two PS or PDF files
11.3.3. Printable data utilities
11.3.4. Printing with CUPS
11.4. Type setting
11.4.1. roff typesetting
11.4.2. TeX/LaTeX
11.4.3. Pretty print a manual page
11.4.4. Creating a manual page
11.5. The mail data conversion
11.5.1. Mail data basics
11.6. Graphic data tools
11.7. Miscellaneous data conversion
12. Programming
12.1. The shell script
12.1.1. POSIX shell compatibility
12.1.2. Shell parameters
12.1.3. Shell conditionals
12.1.4. Shell loops
12.1.5. The shell command-line processing sequence
12.1.6. Utility programs for shell script
12.1.7. Shell script dialog
12.1.8. Shell script example with zenity
12.2. Make
12.3. C
12.3.1. Simple C program (gcc)
12.4. Debug
12.4.1. Basic gdb execution
12.4.2. Debugging the Debian package
12.4.3. Obtaining backtrace
12.4.4. Advanced gdb commands
12.4.5. Debugging X Errors
12.4.6. Check dependency on libraries
12.4.7. Memory leak detection tools
12.4.8. Static code analysis tools
12.4.9. Disassemble binary
12.5. Flex — a better Lex
12.6. Bison — a better Yacc
12.7. Autoconf
12.7.1. Compile and install a program
12.7.2. Uninstall program
12.8. Perl short script madness
12.9. Web
12.10. The source code translation
12.11. Making Debian package
A. Appendix
A.1. The Debian maze
A.2. Copyright history
A.3. Document format

List of Tables

1.1. List of interesting text-mode program packages.
1.2. List of informative documentation packages.
1.3. List of usage of key directories.
1.4. List of the first character of "ls -l" output
1.5. The numeric mode for file permissions in chmod(1) commands.
1.6. The umask value examples.
1.7. List of notable system-provided groups for file access.
1.8. List of notable system provided groups for particular command executions.
1.9. List of types of timestamps.
1.10. The device types.
1.11. List of special device files.
1.12. The key bindings of MC.
1.13. The reaction to the enter key in MC.
1.14. List of shell programs.
1.15. List of key bindings for bash.
1.16. List of Unix style mouse operations.
1.17. List of basic Unix commands.
1.18. 3 parts of locale value.
1.19. List of locale recommendations.
1.20. List of "$HOME" values.
1.21. Shell glob patterns.
1.22. Command exit codes.
1.23. Shell command idioms.
1.24. Predefined file descriptors.
1.25. Metacharacters for BRE and ERE.
1.26. The replacement expression.
1.27. List of script snippets for piping commands.
2.1. List of Debian package management tools.
2.2. List of Debian archive sites.
2.3. List of Debian archive components.
2.4. The relationship between suite and codename.
2.5. List of package dependencies.
2.6. List of key web site to resolving problems with a specific package.
2.7. Package management operations with commandline using aptitude and apt-get / apt-cache.
2.8. Notable command options for aptitude(8).
2.9. List of key bindings for aptitude.
2.10. List of views for aptitude.
2.11. The categorization of standard package views.
2.12. List of the aptitude regex formula.
2.13. The log files for package activities.
2.14. List of advanced package management operations.
2.15. The content of the Debian archive meta data.
2.16. The name structure of Debian packages.
2.17. The usable characters for each component in the Debian package names.
2.18. The notable files for dpkg.
2.19. List of the default Pin-Priority value for each package source type.
2.20. List of the proxy tools specially for Debian archive
3.1. List of boot loaders.
3.2. The meaning of GRUB parameters.
3.3. List of runlevels and meanings.
3.4. List of kernel error levels.
4.1. 3 important configuration files for pam_unix(8).
4.2. The second entry content of "/etc/passwd".
4.3. List of commands to manage account information.
4.4. List of tools to generate password.
4.5. List of notable PAM and NSS systems.
4.6. List of configuration files accessed by the PAM.
4.7. List of insecure and secure services and ports.
4.8. List of tools to provide extra security measures.
5.1. List of network address ranges.
5.2. List of network configuration tools.
5.3. List of network connection methods and connection paths.
5.4. List of network connection configurations.
5.5. List of network connection acronyms.
5.6. List of configuration files for the PPP connection with pppconfig.
5.7. List of configuration files for the PPP connection with wvdialconf.
5.8. List of configuration files for the PPPoE connection with pppoeconf.
5.9. List of basic network configuration commands with ifupdown.
5.10. List of stanzas in "/etc/network/interfaces"
5.11. List of acronyms for WLAN.
5.12. List of terminology for network devices.
5.13. List of advanced network configuration commands with ifupdown.
5.14. List of environment variables passed by the ifupdown system
5.15. Translation table from obsolete net-tools commands to new iproute2 commands.
5.16. List of low level network commands.
5.17. List of network optimization tools.
5.18. Basic guide lines of the optimal MTU value
5.19. List of firewall tools.
6.1. List of web browsers.
6.2. List of browser plugin packages.
6.3. List of basic mail transport agent related packages for workstation.
6.4. List of choices for mail transport agent (MTA) packages in Debian archive.
6.5. List of important postfix manual pages
6.6. List of mail address related configuration files.
6.7. List of basic MTA operation.
6.8. List of mail user agent (MUA).
6.9. List of remote mail retrieval and forward utilities.
6.10. List of MDA with filter.
6.11. List of POP3/IMAP4 servers.
6.12. List of print servers and utilities.
6.13. List of remote access server and utilities.
6.14. List of SSH authentication protocols and methods.
6.15. List of SSH configuration files.
6.16. List of SSH client startup examples.
6.17. List of free SSH clients for other platforms.
6.18. List of other network application servers.
6.19. List of network application clients.
6.20. List of popular RFCs.
7.1. List of key (meta)packages for X Window.
7.2. List of server/client terminology.
7.3. List of connection methods to the X server.
7.4. Table of packages to support X Window font systems.
7.5. Table of corresponding PostScript Type 1 fonts.
7.6. Table of corresponding TrueType fonts.
7.7. Table of key words used in CJK font names to indicate font types.
7.8. List of basic X office applications
7.9. List of basic X utility applications
8.1. List of keyboard reconfiguration methods.
8.2. List of input method supports with SCIM.
9.1. List of programs to support interrupted network connections.
9.2. List of key bindings for screen.
9.3. List of system log analyzers.
9.4. Display examples of time and date for the "ls -l" command for lenny.
9.5. List of graphic image manipulation tools.
9.6. List of packages to record configuration history in VCS.
9.7. List of disk partition management packages
9.8. List of filesystem management packages
9.9. List of data encryption utilities.
9.10. List of tools for monitoring and controlling program activities
9.11. List of nice values for the scheduling priority.
9.12. List of ps command styles.
9.13. List of commands for top.
9.14. List of frequently used signals for kill command.
9.15. List of SAK command keys.
9.16. List of hardware identification tools.
9.17. List of hardware configuration tools.
9.18. List of sound packages
9.19. List of commands for disabling the screen saver.
9.20. List of memory sizes reported.
9.21. List of tools for system security and integrity check
9.22. List of key packages to be installed for the kernel recompilation on the Debian system
9.23. List of virtualization tools
10.1. List of archive and compression tools.
10.2. List of copy and synchronization tools.
10.3. List of backup suite utilities.
10.4. List of packages which permit normal users to mount removable devices without a matching "/etc/fstab" entry.
10.5. List of filesystem choices for removable storage devices with typical usage scenarios.
10.6. List of the network service to chose with the typical usage scenario.
10.7. List of packages which view and edit binary data.
10.8. List of packages to manipulate files without mounting.
10.9. List of tools to add data redundancy to files.
10.10. List of packages for data file recovery and forensic analysis.
10.11. List of data security infrastructure tools.
10.12. List of GNU Privacy Guard commands for the key management
10.13. List of the meaning of trust code.
10.14. List of gnu privacy guard commands on files
10.15. List of source code merge tools.
10.16. List of version control system tools.
10.17. Comparison of native VCS commands.
10.18. Assumption for the CVS archive.
10.19. Notable options for CVS commands (use as first argument(s) to cvs(1)).
10.20. List of git packages and commands.
11.1. List of text data conversion tools.
11.2. List of encoding values and their usage.
11.3. List of EOL conversion tools.
11.4. List of TAB conversion commands from bsdmainutils and coreutils packages.
11.5. List of tools to extract plain text data.
11.6. List of tools to highlight plain text data.
11.7. List of predefined entities for XML.
11.8. List of XML tools.
11.9. List of DSSL tools.
11.10. List of XML data extraction tools.
11.11. List of XML pretty print tools.
11.12. List of Ghostscript PostScript interpreters.
11.13. List of printable data utilities.
11.14. List of type setting tools.
11.15. List of packages to help creating the manpage.
11.16. List of packages to help mail data conversion.
11.17. List of graphic data tools.
11.18. List of miscellaneous data conversion tools.
12.1. List of packages to help programing.
12.2. List of typical bashisms.
12.3. List of shell parameters.
12.4. List of shell parameter expansions.
12.5. List of key shell parameter substitutions.
12.6. List of file comparison operators in the conditional expression.
12.7. List of string comparison operators in the conditional expression.
12.8. List of packages containing small utility programs for shell scripts.
12.9. List of user interface programs.
12.10. List of make automatic variables.
12.11. List of make variable expansions.
12.12. List of advanced gdb commands
12.13. List of memory leak detection tools
12.14. List of tools for static code analysis
12.15. List of Yacc-compatible LALR parser generators
12.16. List of source code translation tools.