Debian Reference

Osamu Aoki

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).

Abstract

This Debian Reference (v2) (2009-01-17 17:51:59 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.


Table of Contents

1. Preface
1.1. Disclaimer
1.2. What is Debian
1.3. About this document
1.3.1. Guiding rules
1.3.2. Prerequisites
1.3.3. Conventions
1.3.4. The popcon
1.3.5. The package size
1.3.6. Bug reports
1.4. Some quotes for new users
2. GNU/Linux tutorials
2.1. Console basics
2.1.1. The shell prompt
2.1.2. The shell prompt under X
2.1.3. The root account
2.1.4. The root shell prompt
2.1.5. GUI system administration tools
2.1.6. Virtual consoles
2.1.7. How to leave the command prompt
2.1.8. How to shutdown the system
2.1.9. Recovering a sane console
2.1.10. Additional package suggestions for the newbie
2.1.11. An extra user account
2.1.12. sudo configuration
2.1.13. Play time
2.2. Unix-like filesystem
2.2.1. Unix file basics
2.2.2. Filesystem internals
2.2.3. The filesystem permission system
2.2.4. Control of permissions for newly created files: umask
2.2.5. Permissions for groups of users (group)
2.2.6. Timestamps
2.2.7. Links
2.2.8. Named pipes (FIFOs)
2.2.9. Sockets
2.2.10. Device files
2.2.11. Special device files
2.2.12. procfs and sysfs
2.3. Midnight Commander (MC)
2.3.1. Customization of MC
2.3.2. Starting MC
2.3.3. File manager in MC
2.3.4. Command-line tricks in MC
2.3.5. The internal editor in MC
2.3.6. The internal viewer in MC
2.3.7. Auto-start features of MC
2.3.8. FTP virtual filesystem of MC
2.4. The basic Unix-like work environment
2.4.1. The login shell
2.4.2. Customizing bash
2.4.3. Special key strokes
2.4.4. Unix style mouse operations
2.4.5. The pager
2.4.6. The text editor
2.4.7. Setting a default text editor
2.4.8. Customizing vim
2.4.9. Recording the shell activities
2.4.10. Basic Unix commands
2.5. The simple shell command
2.5.1. Command execution and environment variable
2.5.1.1. LANG variable
2.5.1.2. PATH variable
2.5.1.3. HOME variable
2.5.2. Command line options
2.5.3. Shell glob
2.5.4. Return value of the command
2.5.5. Typical command sequences and shell redirection
2.5.6. Command alias
2.6. Unix-like text processing
2.6.1. Unix text tools
2.6.2. Regular expressions
2.6.3. Replacement expressions
2.6.4. Extract data from text file table
2.6.5. Script snippets for piping commands
2.6.6. Perl one liner for the regular-expression substitution
3. Debian package management
3.1. Debian package management prerequisites
3.1.1. Package configuration
3.1.2. Basic precautions
3.1.3. Life with eternal upgrades
3.1.4. Debian archive basics
3.1.5. Package dependencies
3.1.6. The event flow of the package management
3.1.7. First response to package management troubles
3.2. Basic package management operations
3.2.1. Basic package management operations with commandline
3.2.2. Interactive use of aptitude
3.2.3. Key bindings of aptitude
3.2.4. Package views under aptitude
3.2.5. Search method options with aptitude
3.2.6. The aptitude regex formula
3.2.7. Dependency resolution of aptitude
3.2.8. Package activity logs
3.2.9. Aptitude advantages
3.3. Examples of aptitude operations
3.3.1. List packages with regex matching package name
3.3.2. Browse with the regex matching
3.3.3. Purge removed packages for good
3.3.4. Tidy auto/manual install status
3.3.5. System wide upgrade with aptitude
3.4. Advanced package management operations
3.4.1. Advanced management operations with commandline
3.4.2. Verify installed package files
3.4.3. Safeguard for package problems
3.4.4. Search on the package meta data
3.5. Debian package management internals
3.5.1. Archive meta data
3.5.2. Top level Release file and authenticity
3.5.3. Archive level Release files
3.5.4. Fetching of the meta data for the package
3.5.5. The package state for APT
3.5.6. The package state for aptitude
3.5.7. The local copies of the fetched packages
3.5.8. The Debian package file name
3.5.9. The dpkg command
3.5.10. The update-alternative command
3.5.11. The dpkg-statoverride command
3.5.12. The dpkg-divert command
3.6. Recovery from a broken system
3.6.1. Incompatibility with old user configuration
3.6.2. Different packages with overlapped files
3.6.3. Fixing broken package script
3.6.4. Rescue using the dpkg command
3.6.5. Recover package selection data
3.7. Tips for the package management
3.7.1. How to pick Debian packages
3.7.2. Packages from mixed source of archives
3.7.3. Tweaking candidate version
3.7.4. Volatile and Backports.org
3.7.5. Emergency downgrading
3.7.6. Who uploaded the package?
3.7.7. The equivs package
3.7.8. Port a package to the stable system
3.7.9. Proxy server for APT
3.7.10. Small public package archive
3.7.11. Record/copy system configuration
3.7.12. Convert or install an alien binary package
3.7.13. Extract package without dpkg
3.7.14. More readings for the package management
4. The system initialization
4.1. An overview of the boot strap process
4.2. Stage 1: the BIOS
4.3. Stage 2: the boot loader
4.4. Stage 3: the mini-Debian system
4.5. Stage 4: the normal Debian system
4.5.1. The meaning of the runlevel
4.5.2. The configuration of the runlevel
4.5.3. The runlevel management example
4.5.4. The default parameter for each init script
4.5.5. The hostname
4.5.6. Network interface initialization
4.5.7. Network service initialization
4.5.8. The system message
4.5.9. The kernel message
4.5.10. The udev system
4.5.11. The kernel module initialization
5. Authentication
5.1. Normal Unix authentication
5.2. Manage account and password information
5.3. Good password
5.4. Creating encrypted password
5.5. PAM and NSS
5.5.1. Configuration files accessed by the PAM and NSS
5.5.2. The modern centralized system management
5.5.3. "Why GNU su does not support the wheel group"
5.5.4. Stricter password rule
5.6. Other access controls
5.6.1. sudo
5.6.2. SELinux
5.6.3. Restricting access to some server services
5.7. Security of authentication
5.7.1. Secure password over the Internet
5.7.2. Secure Shell
5.7.3. Extra security measures for the Internet
5.7.4. Securing the root password
6. Network setup
6.1. The basic network infrastructure
6.1.1. The domain name
6.1.2. The hostname resolution
6.1.3. The network interface name
6.1.4. The network address range for the LAN
6.1.5. The network configuration infrastructure
6.1.6. The network device support
6.2. The network connection method
6.2.1. The DHCP connection with the Ethernet
6.2.2. The static IP connection with the Ethernet
6.2.3. The PPP connection with pppconfig
6.2.4. The alternative PPP connection with wvdialconf
6.2.5. The PPPoE connection with pppoeconf
6.3. The basic network configuration with ifupdown
6.3.1. The command syntax simplified
6.3.2. The basic syntax of /etc/network/interfaces
6.3.3. The loopback network interface
6.3.4. The network interface served by the DHCP
6.3.5. The network interface with the static IP
6.3.6. The basics of wireless LAN interface
6.3.7. The wireless LAN interface with WEP
6.3.8. The wireless LAN interface with WPA/WPA2
6.3.9. The PPP connection
6.3.10. The alternative PPP connection
6.3.11. The PPPoE connection
6.3.12. The network configuration state of ifupdown
6.3.13. The basic network reconfiguration
6.3.14. The ifupdown-extra package
6.4. The advanced network configuration with ifupdown
6.4.1. The ifplugd
6.4.2. The ifmetric
6.4.3. The virtual interface
6.4.4. The advanced command syntax
6.4.5. The mapping stanza
6.4.6. The manually switchable network configuration
6.4.7. Scripting with the ifupdown
6.4.8. Mapping with guessnet
6.5. The network configuration for desktop
6.5.1. Automatic network configuration
6.5.2. GUI network configuration tools
6.6. The low level network configuration
6.6.1. Iproute2 commands
6.6.2. Safe lower level network operations
6.7. Network optimization
6.7.1. Finding optimal MTU
6.7.2. Setting MTU
6.7.3. WAN TCP optimization
6.8. Netfilter
7. Network applications
7.1. Web browsers
7.1.1. Browser configuration
7.2. The mail system
7.2.1. Modern mail service basics
7.2.2. Basic mail software choice
7.2.3. The mail configuration strategy for workstation
7.2.3.1. The configuration of exim4
7.2.3.2. The configuration of postfix with SASL
7.2.3.3. The mail address configuration
7.2.4. Tips for managing the mail
7.2.4.1. Basic MTA operations
7.2.4.2. Basic MUA -- Mutt
7.2.4.3. Redeliver mbox contents
7.2.5. Choices of software for the mail
7.2.5.1. MTA
7.2.5.2. MUA
7.2.5.3. The remote mail retrieval and forward utility
7.2.5.4. MDA
7.2.5.5. POP3/IMAP4 server
7.3. The print server and utility
7.4. The remote access server and utility (SSH)
7.4.1. Basics of SSH
7.4.2. Port forwarding for SMTP/POP3 tunneling
7.4.3. Connecting with fewer passwords -- RSA
7.4.4. Dealing with alien SSH clients
7.4.5. Setting up ssh-agent
7.4.6. Troubleshooting SSH
7.5. Other network application servers
7.6. Other network application clients
7.7. The diagnosis of the system daemons
8. The X window system
8.1. Key packages
8.2. Setting up desktop environment
8.2.1. Debian menu
8.2.2. Freedesktop.org menu
8.2.3. Debian menu under GNOME desktop environment
8.3. The server/client relationship
8.4. The X server
8.4.1. The (re)configuration of the X server
8.4.2. The connection methods to the X server
8.5. Starting the X window system
8.5.1. Starting X session with gdm
8.5.2. Customizing the X session (classic method)
8.5.3. Customizing the X session (new method)
8.5.4. Connecting a remote X client via SSH
8.5.5. Secure X terminal via Internet
8.6. Fonts in the X window
8.6.1. Basic fonts
8.6.2. Additional fonts
8.6.3. CJK fonts
8.7. X applications
8.7.1. X office applications
8.7.2. X utility applications
8.8. The X trivia
8.8.1. Keymaps and pointer button mappings in X
8.8.2. The classic X clients
8.8.3. The X terminal emulator -- xterm
8.8.4. Running X clients as root
9. The I18N and L10N
9.1. The keyboard input
9.1.1. The input method support with scim
9.1.2. An example for Japanese
9.1.3. Disabling the input method
9.2. The display output
9.3. The locale
9.3.1. Basics of encoding
9.3.2. Rationale for UTF-8 locale
9.3.3. The reconfiguration of the locale
9.3.4. Configuring system with LANG
9.3.5. Specific locale only under X Window
9.3.6. Filename encoding
9.3.7. Localized messages and translated documentation
9.3.8. Effects of locale
10. System tips
10.1. The screen program
10.1.1. The use scenario for the screen command
10.1.2. Key bindings for the screen command
10.1.3. A screen-like program for X window system
10.2. Data recording and presentation
10.2.1. The log daemon
10.2.2. Log analyzer
10.2.3. Recording the shell activities cleanly
10.2.4. Customized display of text data
10.2.5. Colorized shell echo
10.2.6. Colorized commands
10.2.7. Recording the graphic image of an X application
10.2.8. Recording changes in configuration files
10.3. Data storage tips
10.3.1. Partition configuration
10.3.2. Accessing partition using UUID
10.3.3. Filesystem configuration
10.3.4. Filesystem creation and integrity check
10.3.5. Optimization of filesystem by mount options
10.3.6. Optimization of filesystem via superblock
10.3.7. Optimization of harddisk
10.3.8. Expand usable storage space via LVM
10.3.9. Expand usable storage space by mounting another partition
10.3.10. Expand usable storage space using symlink
10.3.11. Expand usable storage space using aufs
10.4. Data encryption tips
10.4.1. Removable disk encryption with dm-crypt/LUKS
10.4.2. Encrypted swap partition with dm-crypt
10.4.3. Automatically encrypting files with eCryptfs
10.4.4. Automatically mounting eCryptfs
10.5. Monitoring, controlling, and starting program activities
10.5.1. Time a process
10.5.2. The scheduling priority
10.5.3. The ps command
10.5.4. The top command
10.5.5. List files opened by a process
10.5.6. Trace program activities
10.5.7. Identify processes using files or sockets
10.5.8. Repeating a command with a constant interval
10.5.9. Repeating a command looping over files
10.5.10. Starting a program from GUI
10.5.11. Customizing program to be started
10.5.12. Kill a process
10.5.13. Schedule tasks once
10.5.14. Schedule tasks regularly
10.5.15. Alt-SysRq
10.6. System maintenance tips
10.6.1. Who is logged on
10.6.2. Warn everyone
10.6.3. The hardware identification
10.6.4. The hardware configuration
10.6.5. System and hardware time
10.6.6. The terminal configuration
10.6.7. The sound infrastructure
10.6.8. Disable the screen saver
10.6.9. Disable the sound (beep)
10.6.10. Memory usage
10.6.11. System security and integrity check
10.7. The kernel
10.7.1. Linux kernel 2.6
10.7.2. Kernel headers
10.7.3. Kernel and module compile
10.7.4. Kernel source compile: Debian standard method
10.7.5. Module source compile: Debian standard method
10.7.6. Kernel source compile: classic method
10.7.7. Non-free hardware drivers
10.8. The chroot
10.8.1. Run a different Debian distribution with chroot
10.8.2. Setting up login for chroot
10.8.3. Setting up X for chroot
10.8.4. Run other distributions with chroot
10.8.5. Build packages under chroot
10.8.6. Other virtualization tools
11. Data management
11.1. Sharing, copying, and archiving
11.1.1. Archive and compression tools
11.1.2. Copy and synchronization tools
11.1.3. Idioms for the archive
11.1.4. Idioms for the copy
11.1.5. Idioms for the selection of files
11.1.6. Backup and recovery
11.1.7. Backup utility suites
11.1.8. An example script for the system backup
11.1.9. A copy script for the data backup
11.1.10. Removable mass storage device
11.1.11. Sharing data via network
11.1.12. Archive media
11.2. The binary data
11.2.1. Make the disk image file
11.2.2. Writing directly to the disk
11.2.3. View and edit binary data
11.2.4. Mount the disk image file
11.2.5. Manipulating files without mounting disk
11.2.6. Make the ISO9660 image file
11.2.7. Writing directly to the CD/DVD-R/RW
11.2.8. Mount the ISO9660 image file
11.2.9. Split a large file into small files
11.2.10. Clear file contents
11.2.11. Dummy files
11.2.12. Erase entire harddisk
11.2.13. Undelete deleted but still open file
11.2.14. Searching all hardlinks
11.2.15. Invisible disk space consumption
11.3. Data security infrastructure
11.3.1. Key management for Gnupg
11.3.2. Using GnuPG with files
11.3.3. Using GnuPG with Mutt
11.3.4. Using GnuPG with Vim
11.3.5. The MD5 sum
11.4. Source code merge tools
11.4.1. Extract differences for source files
11.4.2. Merge updates for source files
11.4.3. 3 way merge updates
11.5. Version control systems
11.5.1. Native VCS commands
11.5.2. CVS
11.5.2.1. Installing a CVS server
11.5.2.2. Use local CVS server
11.5.2.3. Use remote CVS pserver
11.5.2.4. Anonymous CVS (download only)
11.5.2.5. Use remote CVS through ssh
11.5.2.6. Create a new CVS archive
11.5.2.7. Work with CVS
11.5.2.8. Export files from CVS
11.5.2.9. Administer CVS
11.5.2.10. File permissions in repository
11.5.2.11. Execution bit
11.5.3. Subversion
11.5.3.1. Installing a Subversion server
11.5.3.2. Setting up a repository
11.5.3.3. Configuring Apache2
11.5.3.4. Subversion usage examples
11.5.3.5. Create a new Subversion archive
11.5.3.6. Working with Subversion
11.5.4. Git
11.5.4.1. Before using Git
11.5.4.2. Git references
11.5.4.3. Git commands
11.5.4.4. Git for recording configuration history
12. Data conversion
12.1. Text data conversion tools
12.1.1. To convert a text file with iconv
12.1.2. To convert file names with iconv
12.1.3. EOL conversion
12.1.4. TAB conversion
12.1.5. Editors with auto-conversion
12.1.6. Plain text extraction
12.1.7. Highlighting and formatting plain text data
12.2. XML data
12.2.1. Basic hints for XML
12.2.2. XML processing
12.2.3. The XML data extraction
12.3. Printable data
12.3.1. The Ghostscript
12.3.2. Merge two PS or PDF files
12.3.3. Printable data utilities
12.3.4. Printing with CUPS
12.4. Type setting
12.4.1. roff typesetting
12.4.2. TeX/LaTeX
12.4.3. Pretty print a manual page
12.4.4. Creating a manual page
12.5. The mail data conversion
12.5.1. Mail data basics
12.6. Graphic data tools
12.7. Miscellaneous data conversion
13. Programming
13.1. The shell script
13.1.1. POSIX shell compatibility
13.1.2. Shell parameters
13.1.3. Shell conditionals
13.1.4. Shell loops
13.1.5. The shell command-line processing sequence
13.1.6. Utility programs for shell script
13.1.7. Shell script dialog
13.1.8. Shell script example with zenity
13.2. Make
13.3. C
13.3.1. Simple C program (gcc)
13.3.2. Debugging with gdb
13.3.2.1. Basic gdb execution
13.3.2.2. Debugging the Debian package
13.3.2.3. Obtaining backtrace
13.3.2.4. Advanced gdb commands
13.3.2.5. Debugging X Errors
13.3.3. Check dependency on libraries
13.3.4. Debugging with memory leak detection tools
13.3.5. Disassemble binary
13.3.6. Flex -- a better Lex
13.3.7. Bison -- a better Yacc
13.4. Autoconf
13.4.1. Compile and install a program
13.4.2. Uninstall program
13.5. Perl short script madness
13.6. Web
13.7. Static code analysis tools
13.8. The source code translation
13.9. Making Debian package
A. Appendix
A.1. The Debian maze
A.2. Copyright history
A.3. Document format

List of Tables

2.1. List of interesting text-mode program packages.
2.2. List of informative documentation packages.
2.3. List of usage of key directories.
2.4. List of the first character of "ls -l" output
2.5. The numeric mode for file permissions in chmod(1) commands.
2.6. The umask value examples.
2.7. List of example system-provided groups for file access.
2.8. List of notable system provided groups for particular command executions.
2.9. List of types of timestamps.
2.10. The device types.
2.11. List of special device files.
2.12. The key bindings of MC.
2.13. The reaction to the enter key in MC.
2.14. List of shell programs.
2.15. List of key bindings for bash.
2.16. The Unix style mouse operations.
2.17. List of basic Unix commands.
2.18. The 3 parts of locale value.
2.19. List of locale recommendations.
2.20. List of HOME values.
2.21. The shell glob patterns.
2.22. Command exit code.
2.23. The shell command idioms.
2.24. The predefined file descriptors.
2.25. The metacharacters for BRE and ERE.
2.26. The replacement expression.
2.27. The script snippets for piping commands.
2.28. The comparison of ed vs perl for in-place editing.
3.1. List of Debian package management tools
3.2. Lists of Debian archive sites.
3.3. The lists of Debian archive components.
3.4. The relationship between suite and codename.
3.5. List of package dependencies.
3.6. List of key web site to resolving problems with a specific package.
3.7. Package management operations with commandline using aptitude and apt-get / apt-cache.
3.8. Notable command options for "aptitude".
3.9. List of key bindings for aptitude.
3.10. Views for aptitude.
3.11. The categorization of standard aptitude views.
3.12. List of the aptitude regex formula.
3.13. The log files for package activities.
3.14. List of advanced package management operations.
3.15. The content of the Debian archive meta data.
3.16. The name structures of the Debian packages.
3.17. The usable characters for each component in the Debian package names.
3.18. The notable files for dpkg.
3.19. List of essential default Pin-Priority values.
3.20. List of the proxy tools specially for Debian archive
4.1. List of boot loaders.
4.2. The meaning of GRUB parameters.
4.3. List of runlevels and meanings.
4.4. List of kernel error levels.
5.1. The 3 important configuration files for pam_unix.o.
5.2. The second entry content of /etc/passwd.
5.3. List of commands to manage account information.
5.4. List of tools to generate password.
5.5. List of notable PAM and NSS systems.
5.6. List of configuration files accessed by the PAM.
5.7. List of insecure and secure services and ports.
5.8. List of tools to provide extra security measures.
6.1. List of network address ranges.
6.2. List of network configuration tools.
6.3. List of network connection types and connection paths.
6.4. List of network connection configurations.
6.5. List of network connection acronyms.
6.6. List of configuration files for the PPP connection with pppconfig.
6.7. List of configuration files for the PPP connection with wvdialconf.
6.8. List of configuration files for the PPPoE connection with pppoeconf.
6.9. List of basic network configuration commands with ifupdown.
6.10. List of stanzas in /e/n/i
6.11. List of acronyms for WLAN.
6.12. List of terminology for network devices.
6.13. List of advanced network configuration commands with ifupdown.
6.14. List of environment variables passed by the ifupdown system
6.15. Translation table from obsolete net-tools commands to new iproute2 commands.
6.16. List of lower level network commands.
6.17. List of network optimization tools.
6.18. Basic guide lines of the optimal MTU value
6.19. List of firewall tools.
7.1. List of web browsers.
7.2. List of browser plugin packages.
7.3. List of popular mail system for workstation.
7.4. List of important postfix manual pages
7.5. List of mail address related configuration files.
7.6. List of basic MTA operation.
7.7. List of MTA.
7.8. List of MUA.
7.9. List of remote mail retrieval and forward utilities.
7.10. List of MDA.
7.11. List of POP3/IMAP4 servers.
7.12. List of print servers and utilities.
7.13. List of remote access server and utilities.
7.14. List of SSH authentication protocols and methods.
7.15. List of SSH configuration files.
7.16. List of SSH client startup examples.
7.17. List of free SSH clients for other platforms.
7.18. List of other network application servers.
7.19. List of network application clients.
7.20. List of popular RFCs.
8.1. List of key (meta)packages for X window.
8.2. List of server/client terminology.
8.3. List of connection methods to the X server.
8.4. Table of packages to support X window font systems.
8.5. Table of corresponding PostScript Type 1 fonts.
8.6. Table of corresponding TrueType fonts.
8.7. Table of key words used in CJK font names to indicate font types.
8.8. List of basic X office applications
8.9. List of basic X utility applications
9.1. List of keyboard reconfiguration methods.
9.2. List of input method supports with scim.
10.1. List of programs to support interrupted network connections.
10.2. List of key bindings for screen.
10.3. List of system log analyzers.
10.4. List of graphic image manipulation tools.
10.5. List of packages to record configuration history in VCS.
10.6. List of disk partition management packages
10.7. List of filesystem management packages
10.8. List of data encryption utilities.
10.9. List of tools for monitoring and controlling program activities
10.10. List of nice values for the scheduling priority.
10.11. List of ps command styles.
10.12. List of commands for top.
10.13. List of frequently used signals for kill command.
10.14. List of SAK command keys.
10.15. List of hardware identification tools.
10.16. List of hardware configuration tools.
10.17. List of sound packages
10.18. List of commands for disabling the screen saver.
10.19. List of memory sizes reported.
10.20. List of tools for system security and integrity check
10.21. List of key packages to be installed for the kernel recompilation on the Debian system
10.22. List of virtualization tools
11.1. List of archive and compression tools.
11.2. List of copy and synchronization tools.
11.3. List of backup suite utilities.
11.4. List of packages which permit normal users to mount removable devices without a matching /etc/fstab entry.
11.5. List of filesystem choices for removable storage devices with typical usage scenarios.
11.6. List of the network service to chose with the typical usage scenario.
11.7. List of packages which view and edit binary data.
11.8. List of packages to manipulate files without mounting.
11.9. List of data security infrastructure tools.
11.10. List of GNU Privacy Guard commands for the key management
11.11. List of the meaning of trust code.
11.12. List of gnu privacy guard commands on files
11.13. List of source code merge tools.
11.14. List of version control system tools.
11.15. Comparison of native VCS commands.
11.16. Assumption for the CVS archive.
11.17. Notable options for CVS commands (use as first argument(s) to cvs).
11.18. List of git packages and commands.
12.1. List of text data conversion tools.
12.2. List of encoding values and their usage.
12.3. List of EOL conversion tools.
12.4. List of TAB conversion commands from bsdmainutils and coreutils packages.
12.5. List of tools to extract plain text data.
12.6. List of tools to highlight plain text data.
12.7. List of predefined entities for XML.
12.8. List of XML tools.
12.9. List of DSSL tools.
12.10. List of XML data extraction tools.
12.11. List of XML pretty print tools.
12.12. List of Ghostscript PostScript interpreters.
12.13. List of printable data utilities.
12.14. List of type setting tools.
12.15. List of packages to help creating the manpage.
12.16. List of packages to help mail data conversion.
12.17. List of graphic data tools.
12.18. List of miscellaneous data conversion tools.
13.1. List of packages to help programing.
13.2. List of bashizms.
13.3. List of shell parameters.
13.4. List of shell parameter expansions.
13.5. List of key shell parameter substitutions.
13.6. List of file comparison operators in the conditional expression.
13.7. List of string comparison operators in the conditional expression.
13.8. List of user interface programs.
13.9. List of make automatic variables.
13.10. List of make variable expansions.
13.11. List of advanced gdb commands
13.12. List of memory leak detection tools
13.13. List of Yacc-compatible LALR parser generators
13.14. List of tools for static code analysis
13.15. List of source code translation tools.