User's Guide ------------ Progeny Linux Systems, Inc. Version: 1.00p00, 2003.02.14-15:11 ------------------------------------------------------------------------------- Abstract -------- This "User's Guide" is nothing but a reformatted "Progeny User's Guide". Contents are adjusted for the standard Debian system. Copyright Notice ---------------- Copyright (C) 2001 by Progeny Linux Systems, Inc. This document may be used under the terms the GNU General Public License version 2 or higher. This document was created from GPL version of document at http://archive.progeny.com/progeny/debian/doc which page states as follows: Within this directory you will find several forms of the Progeny Debian User's Guide. As of the March 19, 2002 the User's Guide is licensed under the terms of the GNU General Public License. This debiandoc-sgml was created from users-guide-html.tar.gz using simple shell and perl scripts with the help of w3m, gpm, vim, mc, etc. . This content was touched-up slightly by Osamu Aoki and those portions are also licensed under the terms of the GNU General Public License. ------------------------------------------------------------------------------- Contents -------- 1. Introducing Debian 1.1. Learning About Linux 1.2. Learning About Debian 1.3. Learning About Progeny Debian 1.4. What is in this Product?? 1.5. Conventions Used in This Manual 1.6. Familiarizing Yourself with Linux 2. Preparing to Install Debian 2.1. Understanding Your System's Hardware 2.1.1. Finding Sources of Hardware Information 2.1.2. Gathering Hardware Information 2.1.3. Checking Hardware Compatibility 2.1.4. Meeting Minimum Hardware Requirements 2.2. Gathering Information About Linux Device Names 2.2.1. Understanding Device Names 2.2.2. Finding Information About Partitions 2.2.3. Understanding Windows Device Names 2.2.4. Understanding Linux Device Names 2.2.5. Reading Linux Device Names 2.2.6. Translating Windows Names to Linux Names 2.3. Backing Up Your System 3. Installing Debian 3.1. Organizing the Install 3.1.1. Preparing for the Install 3.1.2. Installing Multiple Operating Systems 3.1.3. Preparing a CD or Floppy Installation 3.1.4. Changing the Boot Order on IDE Computers 3.1.5. Changing the Boot Order on SCSI Computers 3.1.6. Installing From a Floppy 3.1.7. Installing From a Network 3.1.8. Installing Progeny Debian Without a Graphical Display 3.1.9. Navigating the Install Program 3.1.10. Navigating Without a Mouse 3.1.11. Opening a Virtual Terminal for Troubleshooting 3.2. Installing the Minimal System 3.2.1. Selecting the Installation Target 3.2.2. Creating and Editing Partitions 3.2.3. Limitations of the Partitioning Tool 3.2.4. Working Around Incompatible Partitions 3.3. Configuring Your System 3.3.1. Starting the Configuration Stage 3.3.2. Selecting Options to Configure 3.3.3. Setting the Date And Time 3.3.4. Configuring Users and Passwords 3.3.5. Choosing a Secure Password 3.3.6. Setting the Root Password 3.3.7. Creating a Regular User Account 3.3.8. Configuring Password Levels 3.3.9. Configuring the Video Card 3.3.10. Configuring the Monitor 3.3.11. Setting the Desktop Graphic Display 3.3.12. Configuring the Pointer 3.3.13. Setting Advanced Graphic Display Options 3.3.14. Configuring Electronic Mail 3.3.15. Configuring Printers 3.3.16. Configuring the Network 3.4. Selecting Software to Install 3.5. Installing Software From the Extras CD 4. Starting and Stopping the System and Graphical Interface 4.1. Working With User Accounts 4.1.1. Understanding Regular User Accounts 4.1.2. Understanding the Root Account 4.2. Logging in to Debian 4.2.1. Logging in Graphically 4.2.2. Logging in from a Command Line 4.3. Shutting Down Debian 4.3.1. Shutting Down from the Desktop 4.3.2. Shutting Down From the Command Line 4.3.3. Shutting Down From the Keyboard 4.4. Starting and Shutting Down the Graphical Interface 4.4.1. Starting a Graphical Interface From the Command Line 4.4.2. Exiting the Graphical Interface 4.4.3. Keeping the X Window System Running in the Background 4.4.4. Closing Down an X Window System 4.5. Changing User Accounts 5. Getting to Know the Command Line 5.1. Why Use the Command Line? 5.2. Starting a Command Line 5.3. Entering Commands 5.3.1. Understanding the Parts of a Command 5.3.2. Understanding Command Structures 5.3.3. Understanding Common Options 5.3.4. Entering Multiple File Names for a Command 5.3.5. Entering Commands with Strings 5.3.6. Using Metacharacters or Wild Cards 5.3.7. Entering Multiple Commands 5.3.8. Combining Commands 5.3.9. Running Programs in the Background 5.3.10. Stopping Commands from Running 5.4. Navigating the Command Line 5.4.1. Changing directories 5.4.2. Reading the Contents of Directories 5.4.3. Identifying Types of Directory Listings 5.4.4. Finding Your Current Location 5.4.5. Clearing the Screen 5.5. Using Command Line Shortcuts 5.5.1. Using Tab Completion 5.5.2. Using Command History 5.5.3. Using Text Pasting 5.5.4. Using Command Aliases 5.5.5. Abbreviating File Path Names 5.5.6. Redirecting Input and Output for Commands 5.5.7. Using Environment Variables 5.6. Finding Help for Commands 5.6.1. Using man Pages 5.6.2. Using Info Documents 5.6.3. Using whatis 6. Getting to Know the Desktop 6.1. Understanding Graphical Interfaces 6.2. Getting to Know the Parts of the Default Desktop 6.2.1. The Menus 6.2.2. The Panel 6.2.3. The File Manager 6.2.4. The Workspaces 6.3. Finding Your Way Around the Desktop 6.3.1. Using A Three Button Mouse 6.3.2. Using the Desktop Pop-Up Menus 6.3.3. Using Keyboard Shortcuts 6.3.4. Manipulating Windows 6.3.5. Reading Icon Properties 6.3.6. Opening A Command Line 7. Making the Desktop Your Own 7.1. Configuring Monitor Color Display 7.2. Customizing General Settings for GNOME and Sawfish 7.3. Customizing Program Launchers 7.3.1. Adding Launchers 7.3.2. Deleting Launchers 7.3.3. Recreating Default Launchers 7.3.4. Positioning Desktop Launchers Automatically 7.4. Customizing General Desktop Behavior 7.5. Customizing the Panel 7.5.1. Adding Applets to the Panel 7.6. Customizing the Menu 7.7. Customizing Individual Windows 7.8. Starting Files With Programs: Setting MIME Types 7.8.1. Adding MIME Types 7.8.2. Editing a MIME Type 7.8.3. Deleting a MIME Type 8. Searching for Files and Text 8.1. Understanding Linux Files 8.1.1. Understanding Linux Names 8.1.2. Understanding File Extensions in Linux 8.2. Introducing the Linux Directory Structure 8.2.1. Using Directories to Find Files 8.2.2. Understanding Absolute and Relative File Paths 8.3. Searching from the Desktop 8.3.1. Using the find Command From the Desktop 8.3.2. Using the locate Command From the Desktop 8.3.3. Searching From the GNOME Midnight Commander 8.4. Searching From the Command Line 8.4.1. Searching for Files: Using the find Command 8.4.2. Searching for Files From the Command Line Using the locate Command 8.4.3. Searching for Text From the Command Line: Using grep Commands 8.4.4. Using Metacharacters With grep Commands 8.5. Viewing Files From the Desktop 8.6. Viewing Files From the Command Line 8.6.1. Viewing Short Files: Using the cat Command 8.6.2. Viewing Files with Scrolling: Using the less Command 8.6.3. Viewing Files Backwards: Using the tac Command 8.6.4. Viewing the Start of Files: Using the head Command 8.6.5. Viewing the End of Files: Using the tail Command 8.7. Comparing Files from the Command Line 8.7.1. Making Simple Comparisons of Files: Using the comm Command 8.7.2. Making Complex Comparisons: Using the diff Command 8.7.3. Comparing Three Files: Using the diff3 Command 9. Working with Directories, Files, and Links 9.1. Creating New Files From the Desktop 9.2. Creating New Files From the Command Line 9.3. Creating New Directories From the Desktop 9.4. Creating New Directories From the Command Line 9.5. Selecting Files From the Desktop 9.6. Selecting Multiple Files From the Command Line 9.7. Copying Files From the Desktop 9.8. Copying From the Command Line 9.9. Moving Files From the Desktop 9.10. Moving Files From the Command Line 9.11. Renaming Files From the Desktop 9.12. Renaming Files From the Command Line 9.13. Deleting Files From the Desktop 9.13.1. Deleting Files Permanently 9.13.2. Moving To the Trash 9.13.3. Restoring From the Trash 9.14. Deleting Files From the Command Line 9.15. Merging Files 9.15.1. Merging Using a Viewing Command 9.15.2. Merging Files Using the diff3 Command 9.16. Working With Symbolic Links 9.16.1. Viewing Symbolic Links From the Desktop 9.16.2. Viewing Symbolic Links From the Command Line 9.16.3. Adding Links From the Desktop 9.16.4. Adding Links From the Command Line 9.17. Changing Owners 9.17.1. Changing Owners From the Desktop 9.17.2. Changing Owners From the Command Line 9.18. Changing Groups 9.18.1. Changing Groups From the Desktop 9.18.2. Changing Groups From the Command Line 9.19. Changing Permissions 9.19.1. Viewing Permissions From the Desktop 9.19.2. Viewing Permissions From the Command Line 9.19.3. Changing Permissions from the Desktop 9.19.4. Changing Permissions From the Command Line 9.19.5. Changing File Date and Time Attributes 9.19.6. Setting Special File Attributes 10. Reading System Information 10.1. Reading System Information From the Desktop 10.1.1. Using System Information from the Desktop: Using the System Info Tool 10.1.2. Viewing Process Information from the Desktop: Using the gtop Command 10.1.3. Viewing User Information from the Desktop: Using the gw Command 10.1.4. Using the Monitor Applets 10.2. Using Command Line Tools 10.2.1. Commands for Reading System Information 10.2.2. Commands for Reading Memory Information 10.2.3. Commands for Reading Process Information 10.2.4. Commands for Reading User Information 10.2.5. Reading /proc Files 10.3. Reading Log Files 10.3.1. Reading Standard Log Files From the Desktop 10.3.2. Reading Standard Log Files From the Command Line 10.3.3. Reading Non-Standard Log Files 10.3.4. Creating Custom Logs Using Redirection 11. Installing, Removing, and Upgrading Software 11.1. Understanding Packages 11.2. Understanding Package Management Tools 11.3. Understanding Debian Package Management 11.3.1. Understanding the Life Cycle of a Package 11.3.2. Understanding Package Information 11.3.3. Finding Package Management Files 11.3.4. Understanding Package Statuses 11.4. Understanding Selection States 11.4.1. Understanding Package Flags 11.5. Installing and Removing Package Sets With gnome-apt-pkgset 11.6. Installing and Removing Packages With the apt-pkgset Command 11.7. Installing and Removing Packages With the apt-get Command 11.8. Editing Source Lists 11.8.1. Adding a New Source Using an Interface 11.8.2. Adding a New Source from a Text Editor 11.8.3. Adding a New CD to the List of Sources 11.9. Managing Packages With the dpkg Command 11.9.1. The dpkg Command (Package Management): Options 11.9.2. The dpkg Command (Package Management): Argument 11.9.3. The dpkg Command (Package Management): Actions 11.10. Installing Unpackaged Software 11.11. Making Debian Packages From Other Formats 12. Doing Everyday Administration 12.1. Managing User Accounts 12.1.1. Adding a User Account 12.1.2. Deleting a User Account 12.1.3. Editing a User Account 12.1.4. Changing Individual Passwords 12.1.5. Choosing a Password 12.2. Managing Groups 12.2.1. Reading the /etc/group File 12.2.2. Adding a Group 12.2.3. Deleting a Group 12.2.4. Editing a Group 12.3. Managing Printing 12.3.1. Checking the Status of Print Jobs 12.3.2. Removing Jobs From a Printer Spool 12.3.3. Reading the Status of a Printer Spool 12.3.4. Printing From the Command Line 12.4. Managing Processes 12.4.1. Understanding Processes 12.4.2. Viewing Active Processes From the Desktop 12.4.3. Viewing Active Processes From the Command Line 12.4.4. Viewing Intensive Processes 12.4.5. Stopping a Process From the Desktop 12.4.6. Stopping a Process From the Command Line 12.4.7. Setting the Priority for a Process From the Desktop 12.4.8. Setting the Priority for a Process From the Command Line 12.5. Backing Up and Compressing Files 12.5.1. Planning a Backup 12.5.2. Choosing a Backup Tool 12.5.3. Backing Up and Restoring Using the cpio Command 12.6. Scheduling Jobs 12.6.1. Scheduling With the crontab Command 12.6.2. Scheduling With the at Command 12.7. Archiving and Compressing From the Desktop 12.8. Compressing and Archiving Files From the Command Line 12.8.1. Archiving and Compressing Using the tar Command 12.8.2. Compressing and decompressing Files With the gzip Command 12.8.3. Compressing and decompressing With the bzip2 Command 12.9. Checking or Repairing a File System 13. Configuring the System 13.1. Understanding Configuration Methods 13.1.1. Understanding the System Settings 13.1.2. Understanding Manual Configuration 13.1.3. Recompiling a Kernel 13.2. Configuring Hardware 13.2.1. Configuring a Printer 13.2.2. Configuring a Sound Card 13.2.3. Setting Up Personal Information Devices 13.2.4. Setting Up a Scanner 13.3. Configuring Partitions 13.3.1. Partitioning a Hard Drive 13.3.2. Mounting and Unmounting Filesystems 13.3.3. Creating a Swap Partition or File 13.3.4. Configuring the Boot Loader 13.3.5. Making a Bootable Recovery Disk 13.4. Configuring Networks 13.4.1. Configuring an Ethernet Card 13.4.2. Checking a Modem Connection 13.4.3. Configuring a Network Connection 13.4.4. Preparing to Configure a Network Connection 13.4.5. Configuring a Dialup Internet Connection 13.4.6. Setting Up E-Mail 13.5. Configuring the Graphical Display 13.5.1. Configuring a Video Card From the Desktop 13.5.2. Configuring a Video Card Manually 13.5.3. Configuring a Monitor From the Desktop 13.5.4. Configuring a Monitor Profile Manually 13.5.5. Setting Display Settings from the Desktop 13.5.6. Setting Display Settings Manually 13.5.7. Configuring a Pointer From the Desktop 13.5.8. Configuring a Pointer Manually 13.6. Changing Desktops 13.6.1. Changing Window Managers From a Desktop 13.6.2. Changing the Keyboard Mapping 13.6.3. Changing Window Managers From the Command Line 13.6.4. Adding Window Managers to the Login Screen 13.7. Changing Other Settings 13.7.1. Setting Date and Time From the Desktop 13.7.2. Setting Date and Time From the Command Line 13.7.3. Setting the Command Shell 13.7.4. Adding Fonts A. Automating Multiple Installs A.1. Creating Configuration Files A.1.1. Creating the Global Configuration File (global.cfg) A.1.2. Creating the debconf Configuration File (debconf.cfg) A.1.3. Creating the Network Modules File (netmod.lst) A.1.4. Creating the SCSI Module File (scsimod.lst) A.1.5. Creating the Network Configuration Database (network.cfg) A.1.6. Creating the Partitioning Information File (partinfo.cfg) A.1.7. Creating the Package Selection List (select.cfg) A.1.8. Creating the Post Installation Script (postinst) A.1.9. Creating the Sources List File (sources.lst) A.2. Creating the Automated Installer Floppy A.3. Starting an Automated Install B. Acknowledgements and Thanks C. Contacting Progeny Linux Systems D. GNU General Public License ------------------------------------------------------------------------------- 1. Introducing Debian --------------------- This user guide is a touched-up debiandoc-sgml version of "Progeny Debian Manual". Please also refer to FAQ (http://www.debian.org/doc/manuals/debian-faq/), APT HOWTO (http://www.debian.org/doc/manuals/apt-howto/), Debian reference (http://www.debian.org/doc/manuals/quick-reference/), and other documents in Debian Documentation Project (http://www.debian.org/doc/). Debian is a version of the Debian _GNU_ /Linux operating system. The CDs that come with this manual contain not only a complete operating system, but also the tools for most computing needs. If you want an even larger selection of software, you can download it for free from the Debian web site (http://www.debian.org/). This manual is designed to get started with Debian. It is also designed for use in front of your computer. The manual does not assume that you are an expert. However, it does assume that you have used computers before, and want to transfer your skills to Linux. At the very least, you are assumed to be willing to learn. Linux tools have come a long way in the last few years, but Linux is still built with a do-it-yourself philosophy. While you can ignore this philosophy, adapting it can bring a sense of power and control to your computing. If you master this manual, you will still not be an expert. To cover Linux completely requires hundreds of pages. However, you will be able to configure the basic parts of your system and be ready to explore Linux on your own. 1.1. Learning About Linux ------------------------- Linux (http://www.linux.org/) is an operating system: a series of programs that let you interact with your computer and run other programs. Linux is modelled on the unix operating system. From the start, Linux was designed to be a multi-tasking, multi-user system. These facts are enough to make Linux different from other well-known operating systems. However, Linux is even more different than you might imagine. In contrast to other operating systems, nobody owns Linux. Much of its development is done by unpaid volunteers. Development of what later became Linux began in 1984, when the _GNU_ Free Software Foundation (http://www.gnu.org/) began development of a free unix -like operating system. Linux's name is derived from that of Linus Torvalds, who began development of a unix -like kernel in 1991. While many groups and individuals have contributed to Linux, the largest single contributor is still the Free Software Foundation, which created not only most of the tools used in Linux, but also the philosophy and the community that made Linux possible. Linux is released under the _GNU_ General Public License ( _GPL_ ). Unlike most software licenses, the _GPL_ encourages users to freely copy, change, and distribute source code. For the Free Software Foundation, the emphasis of the _GPL_ is on free software as a philosophical right. The group that focuses on applying the ideals in the _GPL_ to business solutions is called the Open Source movement. Its emphasis is on the faster development and higher quality of software released under a public licence. However, to outsiders, these differences are mainly a matter of emphasis. Although the _GPL_ is often said to encourage fragmentation, Linux remains more or less standardized for several reasons. First, final approval of changes to the kernel are overseen by Linus Torvalds and his closest associates, especially Allan Cox. Second, Linux is released in different versions or distributions. Some distributions, like Debian, are volunteer efforts. Others, like Progeny, are commercial. However, all programs are kept as compatible as possible within the same distribution. Many programs also work with other distributions, or can be made to work with a little effort. Third, volunteer software projects are usually coordinated by informal project managers known as maintainers. Although anyone can write improvements to a piece of software, the maintainer makes the final decision about which improvements become an official part of the project. Usually, the maintainer makes these decisions after consulting the leading contributors to the project. These mechanisms are loose enough that Linux users still have immense freedom of choice in their software. For example, Linux users can choose from a dozen different command line shells and several graphical desktops. This selection is often bewildering to users of other operating systems, who are not used to thinking of the command line or desktop as something that they can change. In addition to software selection, Linux is less likely to crash, better able to run more than one program at the same time, and more secure than many operating systems. With these advantages, Linux is the fastest growing operating system in the server market. More recently, Linux has begun to be popular among home and business users as well. 1.2. Learning About Debian -------------------------- Debian (http://www.debian.org/) is a popular version of Linux. It is developed by a decentralized team of over 600 volunteer programmers in all parts of the world, and includes over 6000 software packages. Debian was founded in 1993 by Ian Murdock, now president and CEO of Progeny which funded and created the previous version of this "User's Guide". The name of Debian combines Ian's name with that of his wife Debra. Its full name, Debian _GNU_ /Linux, recognizes the central role of the GNU Free Software Foundation in developing Linux. Debian has been a major force in the rise of Linux and Open Source software over the last seven years. In fact, the Debian Free Software guidelines became the main source of the Open Source Definition in Although Debian has been almost entirely non-commercial, it is one of the most popular distributions of Linux. It is also the basis for several commercial distributions, including Progeny. Debian is especially popular among advanced users because of its technical excellence and its deep commitment to the needs and expectations of the Linux community. Debian also introduced many features to Linux that are now commonplace. For example, Debian was the first Linux distribution to include a package management system for easy installation and removal of software. It was also the first Linux distribution that could be upgraded without requiring reinstallation. Debian continues to be a leader in Linux development. Its apt program is second to none for managing software over the Internet. Moreover, its development process is an example of just how well the Open Source development model can work - even for very complex tasks such as building and maintaining a complete operating system. 1.3. Learning About Progeny Debian ---------------------------------- _This section is Progeny specific and does not apply for the standard Debian system. Rewrite desirable._ May put list of present and past Debian based distributions here. Progeny Debian is not a distribution spun off from Debian in the sense that Mandrake is based on Red Hat. Progeny's efforts are contributions to Debian, not a replacement for it. In fact, many Progeny employees are (or have been) actively involved with Debian. One of Progeny Debian main goals is to bring ease of use and system integration enhancements to Debian without taking away the flexibility and power of the underlying Debian system. The areas that Progeny is working in include installation, system administration, hardware detection, and software management. Another goal is to apply an additional testing and release cycle to the general Debian development cycle. Progeny hopes that this effort will help Debian provide its users with more frequent current and stable releases. So far as possible, Progeny works with existing free software, and with existing Debian development efforts. As with Debian, all of Debian's development occurs in an open forum. Everyone is welcome and encouraged to participate. To get involved in Progeny's Debian development efforts, subscribe to the progeny-debian mailing list. Send an e-mail to progeny-debian-request@lists.progeny.com with the word subscribe in the subject line or message body. 1.4. What is in this Product?? ------------------------------ _This section is Progeny specific and does not apply for the standard Debian system. Rewrite desirable._ May replace with available sources of Debian, such as: * Net-install with CD (Put URL) * Net-install with FD (Put URL) * Full CD (See Debian site for local venders.) The box that this manual came in should contain: * The Install cd , containing the operating system . * The Extras cd, containing additional programs, including the kde desktop. * Two source code cd s. * An Install floppy for systems that cannot start from the cd drive. * A Modules floppy for rarer drivers that cannot fit anywhere else. * A registration card for technical support a three month subscription to the Progeny Service Network. * The Progeny Debian User's Guide (this manual). If anything is missing, please contact Progeny Linux Systems at 1-317-833-0313 or custserv@progeny.com. 1.5. Conventions Used in This Manual ------------------------------------ To help you concentrate on learning, this manual uses as few conventions as possible. In fact, it has only three: * When you have to choose an icon or menu item with the mouse, you may be told to "select" or to "click" or "click on." All these instructions mean that you should select an item with the cursor while depressing the left mouse button. Similarly, "right click" means to use the right mouse button, while, "middle click" means to use the middle mouse button or the equivalent. * Information to type appears in a `fixed width font text', like this: `chmod 777 todo.txt' . Punctuation after this text should not be typed. * indicates variable information. For example, the standard format for a command is: The italics indicate that any command can replace the word "command" any options the word "options" and so on. Following are proposed conventions by "Osamu". * PRGN: `program-name' * FILE: `/full/path/name/to/file' `/directory' * PACKAGE: `package-name' * TT: `short command input and console output' * EXAMPLE: # root-command -option $ shell-user-command -option * Use punctuation outside of "quotation". This is not right English but clear manual contents. * Convert "Type command -option ." into shell console screen: $ command -option _[Note]_ Whenever files are a variable, you can also use a directory name. _[Note]_ Variable information may include source and target. The source is the file that original information is taken from. The target is the file that is acted upon. For example, when a file is copied, the source is the file being copied, and the target is the new copy that is created. 1.6. Familiarizing Yourself with Linux -------------------------------------- This manual introduces concepts as you are likely to need them. For now, here are some concepts that may be new to you: * Linux generally uses a three-button mouse. If you do not have a middle mouse button, you can emulate three buttons by clicking the left and the right mouse buttons at the same time. * The command line is much more flexible than you might think. It includes the abilities to cut and paste, to re-use previous commands, and to complete what you have typed in with a command. * For greater security, Linux makes strict use of accounts. Unlike some operating systems, you cannot bypass logging in to the system by pressing the Enter key. Most users have only limited access to files. Typically, only the root user (also called the super user or system administrator) has access to all files. * Linux has a consistent system for naming hardware, but the system is different from that of other popular operating systems. You should know the Linux naming system to avoid accidentally over-writing information. * Linux's directory system is similar to unix 's. Knowing the structure can help you find files. * Debian includes several boot managers. * `lilo': classic general purpose boot manager. * `grub': new improved general purpose boot manager. * `syslinux': for making boot floppy on DOS FAT system. * `loadlin': boot Linux from DOS. * `mbr': replacement for the DOS master boot loader. With a boot manager, you can use more than one operating system on the same computer. * Many Linux system settings can be changed by editing a configuration file in a text editor. * `nano' * `vim' * `emacs' * ... * Linux provides services such as printing through a number of independent programs or processes. * Processes that start with your machine and run in the background until you need them are called daemons. At first, these differences may seem overwhelming. Take your time and learn them as the need arises. Once you have learned them, you will find that the features of Linux give you more convenience, efficiency, and hands-on control than other popular operating systems. ------------------------------------------------------------------------------- 2. Preparing to Install Debian ------------------------------ Installing Linux is much easier than it was a few years ago. However, if you have never installed an operating system, installing Linux can still be nerve-wracking. You may find that your hardware either does not support Linux or needs to be configured manually to work well. To avoid trouble during the install, gather the information you need during the install before you start. This chapter explains how to: * Meet hardware requirements. * Name partitions according to Linux's and Windows' conventions. * Prevent accidental data loss during the install. 2.1. Understanding Your System's Hardware ----------------------------------------- In most cases, you can let Debian detect your hardware and accept the settings suggested during the install. However, these suggestions may not always work. To minimize problems, before you install, you should: * Gather information about your hardware before you start to install. At the very least, have the information handy if you need it. * Check hardware compatibility. * Check that your computer meets the minimum requirements for the type of install that you want to do. 2.1.1. Finding Sources of Hardware Information ---------------------------------------------- Hardware information can be gathered from: * The manuals that come with each piece of hardware. * The _bios_ setup screens of your computer. You can view these screens when you start your computer by pressing a combination of keys. Check your manual for the combination. Often, it is the Delete key. * The cases and boxes for each piece of hardware. * The System window in the Windows Control Panel. * System commands or tools in another operating system, including file manager displays. This source is especially useful for information about _ram_ and hard drive memory. * Your system administrator or Internet Service Provider. These sources can tell you the settings you need to set up your networking and e-mail. 2.1.2. Gathering Hardware Information ------------------------------------- The exact information you need depends on how much control you want over the install: * If you want, you can let the installer automatically partition your hard drive and accept the settings that the installer suggests. However, these settings may not be the best ones for your hardware. _[Warning]_ Do not do an automatic installation without first backing up important information. Otherwise, you may lose the information. * If you want a custom install, the following table shows the information needed. To save time, collect this information before you start the install. At the very least, know where you can find the information quickly. _[Note]_ If you need to contact Progeny technical support, you will probably need to provide additional information before technical support can help you. Hardware Information Needed for an Install +-------------------------------------------------------------------+ |Hardware| Information You Might Need | |--------+----------------------------------------------------------| | | * How many you have. | | | * Their order on the system. | |Hard | * Whether ide or scsi (most computers are ide). | |Drives | * Available free space. | | | * Partitions. | | | * Partitions where other operating systems are | | | installed. | |--------+----------------------------------------------------------| | | * Model and manufacturer. | | | * Resolutions supported. | |Monitor | * Horizontal refresh rate. | | | * Vertical refresh rate. | | | * Color depth (number of colors) supported. | | | * Screen size. | |--------+----------------------------------------------------------| | | * Type: serial, ps, or usb. | |Mouse | * Port. | | | * Manufacturer. | | | * Number of buttons. | |--------+----------------------------------------------------------| | | * Model and manufacturer. | | | * Type of adapter. | | | * Domain name. | |Network | * dhcp host name. | | | * ip Address. | | | * Netmask. | | | * Gateway. | | | * Name server. | |--------+----------------------------------------------------------| |Printer | * Model and manufacturer. | | | * Printing resolutions supported. | |--------+----------------------------------------------------------| | | * Model and manufacturer. | |Video | * Video ram available. | |Card | * Resolutions and color depths supported (these should | | | be checked against your monitor's capabilities). | +-------------------------------------------------------------------+ 2.1.3. Checking Hardware Compatibility -------------------------------------- Many brand name products work without trouble on Linux. Moreover, hardware for Linux is improving daily. However, Linux still does not run as many different types of hardware as some operating systems. In particular, Linux usually cannot run hardware that requires a running version of Windows to work. Although some Windows-specific hardware can be made to run on Linux, doing so usually requires extra effort. In addition, Linux drivers for Windows-specific hardware are usually specific to one Linux kernel. Therefore, they can quickly become obsolete. So called win-modems are the most common type of this hardware. However, printers and other equipment may also be Windows-specific. Author suggests that you avoid all such hardware. You can check hardware compatibility by: * Checking manufacturers' web sites for new drivers. * Looking at web sites or manuals for information about emulation. Lesser known brands can sometimes use the drivers or settings for better-known ones. * Checking hardware compatibility lists for Linux, such as http://www.linuxdoc.org/HOWTO/Hardware-HOWTO/. * Searching the Internet for other users' experiences. 2.1.4. Meeting Minimum Hardware Requirements -------------------------------------------- Once you have gathered information about your computer's hardware, check that your hardware will let you do the type of installation that you want to do. Depending on your needs, you might manage with less than some of the recommended hardware listed in the table below. However, most users risk being frustrated if they ignore these suggestions. Recommended Minimum System Requirements +-------------------------------------------------------+ |Install Type| Processor | RAM | Hard Drive | |------------+--------------+-------------+-------------| |No desktop |Pentium 100 |16 megabytes |450 megabytes| |------------+--------------+-------------+-------------| |With Desktop|Pentium 100 |64 megabytes |1 gigabyte | |------------+--------------+-------------+-------------| |Server |Pentium II-300|128 megabytes|4 gigabytes | +-------------------------------------------------------+ _[Note]_ If you are using a desktop, you will find that some window managers run better with more ram. 2.2. Gathering Information About Linux Device Names --------------------------------------------------- Linux uses its own system for naming hardware. If you know this system during installation, you can choose your options more intelligently. You can also avoid over writing partitions that you want to keep. 2.2.1. Understanding Device Names --------------------------------- All operating systems use a system for naming devices such as hard drive partitions and serial and parallel ports. Partitions are subdivisions of your hard drive. Serial and parallel ports are connectors on the back of your computer where devices such as a mouse or printer can be connected to the system. No matter what operating system you are using, hard drives are divided into partitions. Partitions can be of three types: primary, extended, and logical. A hard drive can have up to four primary partitions. However, as hard drives grew in size, a way around this limitation was needed. The answer was extended partitions, which can be partitioned into any number of smaller or logical drives. 2.2.2. Finding Information About Partitions ------------------------------------------- You can find information about your partitions by using: * `fdisk' on Linux or Windows. * `cfdisk' on Linux. * `_GNU_ parted' on Linux. * `PartitionMagic' from Windows or a boot floppy. _[Warning]_ Do not use PartitionMagic to create Linux partitions. Debian's install program is not compatible with `PartitionMagic'-created partitions. The result may be the loss of all partitions and all the data on them. Instead, use the Install cd to start your machine, and open a virtual terminal by pressing Ctrl-Alt-F2. Then use the `parted' tool. See Section 13.3.1, `Partitioning a Hard Drive'. [_This section is Progeny specific and does not apply for the standard Debian system. Rewrite desirable._] 2.2.3. Understanding Windows Device Names ----------------------------------------- Many users are familiar with Window's naming system: * `A' and `B' are the first and second _floppy_ drives. * _The first primary partition_ is `C'. Often, this is the only partition on a Windows system. * All primary partitions on all hard drives are named first. * Logical drives are named, starting with the first one on the first hard drive. * The last drive letter is usually the _cd_ drive. * _Serial ports_ are prefixed with `com' and start at 1. * _Parallel ports_ are prefixed with `lpt' and start at 1. The Windows naming system has several problems. First, few modern computers have a second floppy drive. Therefore, `B' is rarely used. More importantly, if you add or delete one partition, the names of many partitions can change. As a result, you can easily lose track of your partitions. 2.2.4. Understanding Linux Device Names --------------------------------------- Linux takes a consistent approach to naming. All drives and ports are named in the same way: * An `id' for the type of device. These `id's include `hd' for an _ide_ hard drive, `ttyS' for a _serial port_, and `lp' for a _parallel port_. * A letter `id' for the device. If, like most users, you have an _ide_ system, then: * `a' is the _primary master device_. * `b' is the _primary slave device_. * `c' is the _secondary master device_. * `d' is the _secondary slave device_. _[Warning]_ Check your _bios_ or the contents of each device to find details about master and slave devices. * A number `id' for the partition or port. Primary or extended partitions are named `1-4', while logical partitions are named `5' or higher. * _Serial and parallel ports_ start with `0', and can have any number. For example, the first partition on the first ide hard drive is `hda1' Similarly, the first serial port is `ttyS0'. This naming convention is simple, and gives you information about your system. The device `id' gives you information about the type of hardware installed, while the partition `id' tells you whether it is a primary or logical partition. In addition, if you add or delete partitions, only the number `id' changes. Even then, it can only change so far. A logical partition can never become `hda4', because `4' is reserved for primary partitions. By contrast, `D' could be either type of partition under Windows. Similarly, when you re-arrange primary partitions on one hard drive, the numbering of primary partitions on other hard drives is unaffected. Under Windows, changing primary partitions on any drive affects all primary partitions on the system. 2.2.5. Reading Linux Device Names --------------------------------- Before you install, decide whether you want to keep any existing partitions on your system. _[Warning]_ Linux partitions made with PartitionMagic are not compatible with the Debian install program. If you do, then translate the partition names to the Linux conventions so that you know where they are when you install. Linux Device Names +-------------------------------------------------------------------+ | Device Type |General| Specific | |----------------------------+-------+------------------------------| | | |A letter, starting with a, | |Partitions on an ide hard |hd |then: | |drive or a cd drive | | | | | | * 1 to 4 for a primary or | | | | extended partition. | | | | * 5 or more for a logical | | | | partition. | |----------------------------+-------+------------------------------| | | |A letter, starting with a, | | | |then: | |Partitions on a scsi hard | | | |drive or a cd drive |sd | * 1 to 4 for a primary | | | | partition. | | | | * 5 or more for a logical | | | | partition. | |----------------------------+-------+------------------------------| |Floppy drives |fd |A number, starting with 0. | |----------------------------+-------+------------------------------| |Serial or com ports |ttyS |A number, starting with 0. | |----------------------------+-------+------------------------------| |Parallel ports |lp |A number, starting with 0. | +-------------------------------------------------------------------+ 2.2.6. Translating Windows Names to Linux Names ----------------------------------------------- If you are installing Linux on an existing computer, translate Windows names to Linux names to avoid confusion. For example, if all your Windows files are on C, then you need to translate C into the Linux name if you want to be sure that you never delete or reformat the partition. _[Note]_ On most computers, your Windows C partition is hda1 in the Linux naming system. However, check before working with any partitions. Notice, too, that port names on Windows start with 1, while on Linux they start with 0. Linux Equivalents for Common Windows Device Names +---------------------------------------------------+ | Type of Device |Windows|Linux| |-------------------------------------+-------+-----| |1st floppy drive |A |fd0 | |-------------------------------------+-------+-----| |1st partition, 1st hard drive ( ide )|C |hda1 | |-------------------------------------+-------+-----| |1st partition, 1st hard drive (scsi) |C |sda1 | |-------------------------------------+-------+-----| |1st serial port |com1 |ttyS0| |-------------------------------------+-------+-----| |1st parallel port |lpt1 |lp0 | +---------------------------------------------------+ 2.3. Backing Up Your System --------------------------- Before you start to install Debian, back up your system. At the very least, make copies of important files. You may also want to create new rescue disks for existing operating systems. So long as you are careful, these precautions should be unnecessary. However, even experienced computer users can make mistakes, or face an unexpected power interruption. If anything does happen, backing up your system will save you hours of time and trouble. ------------------------------------------------------------------------------- 3. Installing Debian -------------------- _This section is Progeny specific and does not apply for the standard Debian system. Rewrite desirable._ Please refer to the official documents: Installation Manual (stable version) (http://www.debian.org/releases/stable/installmanual) and Installation Manual (testing version) (http://www.debian.org/releases/testing/installmanual) if you have any doubts. This chapter explains how to install Progeny Debian for the first time. If you want to: * Upgrade an existing Debian or Debian-based operating system, . * Do identical installs on different machines, See Appendix A, `Automating Multiple Installs'. Progeny Debian features a graphical installer. The installer automatically detects many types of hardware, and suggests many settings. If you do not need a graphical display, you can use text-mode from the second stage of the install onwards. The first stage of the install uses a basic vga mode which almost every system should be able to support. If you run into problems, you can usually follow the settings suggested by the installer and get a working system. After configuration, you can fine-tune the configuration from within Progeny Debian. Installation should take 30-60 minutes. The exact time depends on your choices, your experience, and the speed of your system. _[Note]_ If you have already installed Progeny Debian on your system, use the Add/Remove Software option to upgrade your system rather than reinstalling. Unlike some commercial distributions, Progeny Debian is not designed to reinstall over an existing system. Installation consists of five steps: * Organizing the install. * Installing the minimal system. * Configuring Progeny Debian. * Selecting and installing software. * Installing Software on the Extras cd . 3.1. Organizing the Install --------------------------- Immediately before installing, you need to: * Prepare for the install. * Choose the order in which to install different operating systems. * Decide on your install source and prepare for its use. Progeny Debian can be installed from: * A floppy and cd. * A cd. * A network. * Start the install. 3.1.1. Preparing for the Install -------------------------------- Collect the information about your system that you need, and have it handy during the install. Depending on how you choose to install, this information may include: * The partitions on the hard drive and which ones already contain an operating system. * The manufacturer and model for your video card, monitor, and printer. * Settings for your network or for your internet connection. In addition, back up any information that you do not want to lose. Errors or power surges and interruptions during the install could lose or corrupt it. For complete information about preparing for an install, See Chapter 2, `Preparing to Install Debian'. _[Note]_ Linux partitions created using `PartitionMagic' are incompatible with the Debian install program. If you have any, delete them and re-create the partitions using `parted' or Debian `fdisk'. 3.1.2. Installing Multiple Operating Systems -------------------------------------------- If you are going to install more than one operating system on the same machine, install all versions of Windows first. Otherwise, the Windows installation program may destroy your ability to start other operating systems or encourage you to reformat partitions with other operating systems. You can recover from these actions or avoid them, but installing Windows first saves you trouble. 3.1.3. Preparing a CD or Floppy Installation -------------------------------------------- Depending on your computer, you may need to change the boot order in the bios so that you can start from a cd or floppy. _[Note]_ You only need the floppy if your computer cannot start from a cd . The boot order is a listing of the drives that your computer tries to start from, and the order in which drives are tried. Your machine starts with the first operating system that it finds. How you change the boot sequence may depend on whether you have an ide or scsi system. 3.1.4. Changing the Boot Order on IDE Computers ----------------------------------------------- * 1 As your computer starts, press the keys to enter the bios utility. Often, it is the Delete key. However, consult the hardware documentation for the exact keystrokes. * 2 Find the boot sequence in the setup utility. Its location depends on your bios , but you are looking for a field that lists drives. Common entries on ide machines are C, A, cdrom or A, C, cdrom . C is the hard drive, and A is the floppy drive. * 3 Change the boot sequence setting so that the cdrom or the floppy is first. Usually, the Page Up or Page Down keys cycle through the possible choices. * Save your changes. Instructions on the screen tell you how to save the changes on your computer. _[Note]_ Remember to change the boot order after the minimal Progeny system is installed, so that you restart your machine from the hard drive. 3.1.5. Changing the Boot Order on SCSI Computers ------------------------------------------------ * 1 As your computer starts, press the keys to enter the scsi setup utility. You can start the scsi setup utility after the memory check and the message about how to start the bios utility displays when you start your computer. The keystrokes you need depend on the utility. Often, it is Ctrl-F2. However, consult your hardware documentation for the exact keystrokes. * 2 Find the utility for changing the boot order. * 3 Set the utility so that the scsi id of the cd drive is first on the list. _[Note]_ If you need to use the floppy drive, follow the instructions for changing the boot order on ide computers. Floppies are never scsi devices. * 4 Save your changes. Instructions on the screen tell you how to save the changes on your computer. Often, you must press F10. 3.1.6. Installing From a Floppy ------------------------------- If your computer cannot start from the cd drive, you need to start from a floppy disk: * 1 Check that the computer is set to boot from the floppy drive. See Section 3.1.3, `Preparing a CD or Floppy Installation'. * 2 Place the Install floppy in the floppy drive. * 3 Place the Progeny Debian cd in the cd drive. * 4 Restart your computer. The installation program begins. 3.1.7. Installing From a Network -------------------------------- A network install provides a single install source for multiple machines. When doing a network install, you might want to create an auto-install floppy. See Appendix A, `Automating Multiple Installs'. If you do not understand networks, do not attempt a network install without the help of your system administrator. * 1 Insert the Progeny Debian cd or install floppy . Then restart your computer. A text screen opens, giving instructions for a network install. A command line is at the bottom of the screen. * 2 At the command line, type: linux nfscd host:path options You must enter the host and the path. If you have a dhcp connection, the network configuration is automatically detected. Otherwise, you may need to add other options. Typical Network Install Options +---------------------------------------------------------------+ | Option | What It Does | |----------+----------------------------------------------------| |broadcast=|The address used for transmitting (broadcasting) | | |packets to all hosts on a network. | |----------+----------------------------------------------------| |gateway= |The address of the machine that is the default route| | |to machines not on the local subnet. | |----------+----------------------------------------------------| |host |The nfs server. | |----------+----------------------------------------------------| |ipaddr= |The address of the machine on which you are | | |installing Progeny Debian. | |----------+----------------------------------------------------| |nameserver|The address of the systems that provide hostname | |= |lookup services to your system. | |----------+----------------------------------------------------| |netmask= |The bitmask that defines the part of the system's | | |network address that identifies the network. | |----------+----------------------------------------------------| |path |The path to the network-mounted or nfs -mounted cd | | |drive from which you are installing. | +---------------------------------------------------------------+ 3.1.8. Installing Progeny Debian Without a Graphical Display ------------------------------------------------------------ The Progeny Debian installer is designed primarily for users who want a graphical display. However, you may decide not to use a graphical display (the X Window System) if you are an experienced user, or are installing a server. If you do not want a graphical display, note the following steps: * Start the minimal install with the command linux secondstage= text. The minimal installation will use a generic vga display, but the other stages will be text based. * At the start of the configuration stage, do not select X configuration. * During the software installation stage, do one of the following: * De-select the pre-selected gnome and X Window package set. * Leave the default package sets, then remove the gnome and X Window package set once Progeny Debian starts. 3.1.9. Navigating the Install Program ------------------------------------- The install program detects your mouse so that you can use it during the install. The install program uses a simple set of buttons for navigation: * Back: Returns you to the previous screen. * Next: Moves to the next screen. * Cancel: Exits the install program. In some cases, a button may not be available until a task is completed. 3.1.10. Navigating Without a Mouse ---------------------------------- If your mouse does not work in the install program, you can use the keyboard to navigate the menu choices. Later, you can configure your mouse in the Pointer screen or after the install. To navigate the install program without a mouse, use: * The left arrow key or Shift-Tab key to move between buttons and selections in the current screen. * The space bar to select an item in the current screen. * The Enter key to activate choices. 3.1.11. Opening a Virtual Terminal for Troubleshooting ------------------------------------------------------ If you have trouble installing Progeny Debian, you can open a virtual terminal: * During the minimal install stage, press Ctrl-Alt-F2. Press Alt-F7 to return to the install. * During the configuration stage, middle-click anywhere on the screen except for the window. * During software installation, the output displays for you. You may also want to open a virtual terminal if you need to use parted to partition your hard drive before installing. 3.2. Installing the Minimal System ---------------------------------- Installing the minimal system is the first stage in the installation of Progeny Debian. Installing the minimal system consists of three steps: * Selecting the target installation: Determining which hard drive and partitions are used. * Partitioning your hard drive: Creating and formatting the partitions for the install. * Configuring the system start-up: Choosing whether to use the grub boot manager, an existing boot manager (such as lilo ), or no boot manager. Once you have made your choices, the necessary partitions are prepared and the minimal system is installed. * 1 Start your machine with the Install cd and, if necessary, the Install Floppy. See Section 3.1.3, `Preparing a CD or Floppy Installation' See Installing From a Floppy. A text introduction appears. img/Installing.png * 2 Do one of the following: * Start a network install by entering a command at the prompt at the bottom of the screen. See Section 3.1.7, `Installing From a Network', or press F1. or * Set the install program to use a non-graphical install after the minimal installation. The minimal install uses a basic vga mode that should be usable on any computer. At the command prompt, type: linux secondstage=text, then press the Enter key. or * Start an install by pressing the Enter key. In all cases, the install program starts to load. After a moment, the install program starts and the Welcome screen opens. img/Installing.png img/Installing.png During the minimal install, you can troubleshoot by opening a virtual terminal. Press Ctrl-Alt-F2. To return to the installer, press Alt-F7. * 3 Select the Next button. The Select Installation Target screen opens. img/Installing.png * 4 Select your installation target. See Section 3.2.1, `Selecting the Installation Target'. Each target uses your hard drive in a different way: * Entire drive: The entire hard drive is used for the install. A Linux swap partition of 125 megabytes is created for you. The rest of the drive is used for a Linux partition. * Free space: Only the free space on the hard drive is used. The first available free space on any hard drive that is greater than one gigabyte is used for the install. The Linux partition is as large as possible. The swap partition is 125 megabytes in size. * Custom partitioning: The hard drive is used the way that you decide. img/Installing.png Back up all important information before doing custom partitioning. Otherwise, you may lose information. * 5 Do one of the following: * If you selected Entire disk, choose the hard drive to use. Then press the Next button. img/Installing.png img/Installing.png If an error dialog opens, asking whether you want a new partition table created, select the No button. Otherwise, all partitions on your hard drive are destroyed. Before continuing, use the Install cd to start your system, then used parted from a virtual terminal to create partitions. * If you selected custom partitioning, divide your hard drive the way you want if you selected Custom partitioning. Then press the Next button. See Section 3.2.2, `Creating and Editing Partitions'. img/Installing.png If you are installing over an existing Progeny Debian installation, select Custom install and re-format the partitions. Otherwise, the reinstall may fail. In all cases, the Configure System Startup screen opens. img/Installing.png * 6 Choose the boot loader to use: * Use grub : By default, Progeny uses the Grand Unified Bootloader (grub) . If you previously installed another boot loader, you may need to edit grub to add other operating systems. See Section 13.3.4, `Configuring the Boot Loader'. If you are already using grub, and have Windows on the first partition of the first hard drive, an entry for Windows is automatically created. If you have Windows installed on another partition, you must manually reconfigure grub to start Windows. See Section 13.3.4, `Configuring the Boot Loader'. * Use a different boot loader: Select if you plan to keep using a different boot loader, such as lilo, that is already installed. You may need to edit entries after configuration. grub is loaded on to the root partition for Progeny Debian. * Do Not Install a Boot Loader: No bootloader is used. The standard master boot record on the computer is used. You will only be able to use Progeny Debian until you set up and configure a bootloader. * Create a Startup Floppy: Select this option to create a boot floppy as an alternate means of booting your system. img/Installing.png Do not select both Create a Startup Floppy and Do Not Install a Boot Loader together. If you do, then the floppy will not be bootable. When choosing this option, you should know that: * Booting from a floppy is considerably slower than other choices. * All information on the floppy is over written. Back up any important information before creating the floppy. * The install floppy that comes with the Progeny Debian box set can be used as a recovery disk, but the one created with this option is specific to your system. Select the Next button when you are finished. The Preparing System Screen opens. * 7 Wait while the installer partitions and formats your hard drive, then installs the minimal system. The Preparing System screen displays the progress. img/Installing.png img/Installing.png Progress for formatting the disk shows the percentage of partitions created, not the total amount of hard drive space formatted. Installing a minimal system takes about 10 to 15 minutes. When the minimal system is installed, the Next button is enabled. Press the Next button to complete the minimal system installation. The Finish screen opens. img/Installing.png * 8 Press the Finish button to restart your system so that you can configure it. See Section 3.2.3, `Limitations of the Partitioning Tool'. * 9 Remove the Install cd when instructed to by the install program. img/Installing.png img/Installing.png If necessary, change the boot order of your computer to start it from the hard drive. If you forget, restart your computer and try again. 3.2.1. Selecting the Installation Target ---------------------------------------- Selecting the Installation Target is the first step in configuring the minimal system. Unless you select Custom partitioning, it is also the only step. Each installation target uses your hard drive in a different way. If you are unsure of which to choose, study the advantages and disadvantages of each target to decide which is best for you. Installation Targets for Progeny Debian +-------------------------------------------------------------------+ | Advantages | Disadvantages | |-------------------------------------------------------------------| |Entire Disk | |-------------------------------------------------------------------| | | * You lack full control of the | | | process. | | | * Information is lost unless you | | | back it up. | | | * The default setup may not be what | | * You do not need any | you want, especially if you are an| | special knowledge. | advanced user. | | * It's quick. | * A single large disk can be | | | inconvenient. For example, when | | | fschk is used at bootable, you may| | | need to wait a long time. | | | * You cannot use this option if you | | | have multiple operating systems on| | | the system. | |-------------------------------------------------------------------| |Free Space | |-------------------------------------------------------------------| | * Information is not | * The hard drive must have enough | | destroyed. | continuous space for the necessary| | * Existing partitions are | partitions. | | kept. | * You lack full control of the | | * You do not need any | process. | | special knowledge. | * The partitions created may be | | * It's quick. | smaller than you want or need. | |-------------------------------------------------------------------| |Custom | |-------------------------------------------------------------------| | * You fully control the | | | process. | | | * You decide whether to | * You must understand what you are | | keep existing | doing. | | partitions. | * You could destroy information by | | * You can put major | accident. | | directories such as / | | | home or /usr on | | | different partitions. | | +-------------------------------------------------------------------+ 3.2.2. Creating and Editing Partitions -------------------------------------- img/Installing.png When you select Custom partitioning as your installation target, the Edit Partitions screen opens. Using the Edit Partitions screen, you can create, delete, or edit partitions. Partitions are divisions of your hard drive. You need at least a root partition before you can continue the install. You should also add a swap partition for virtual memory. If you want, you can also create other partitions. For example, many Linux users prefer to have personal files on a separate partition to make back ups easier. Similarly, some put printer queues on a separate partition to limit their size. To create or edit a partition: * 1 Select a partition to edit or a block of free space in which to create a partition from the Edit Partition screen. Your selection is highlighted. img/Installing.png For detailed information about the Edit Partition screen, see Section 3.2.2.1, `Reading the Edit Partition Screen'. * 2 Select the New or Edit button. In both cases, the Partition screen opens. img/Installing.png * 3 Enter the features of the partition. See Section 3.2.2.2, `New and Edit Screen Fields'. img/Installing.png If you are editing an existing partition, you cannot change the type or size. Nor can you make a swap partition bootable. You must have a root partition. In addition, you probably want a swap partition. You may also want to create other partitions. You can change the mount point of an existing partition without losing the information on it. However, if you select the Format? box, you lose all information on an existing partition as soon as you continue the installation. * 4 Select the ok button when you are finished. You return to the Edit Partition screen. If you were creating a partition, the partition is now listed, and the entry for Free Space is either smaller or no longer listed. * 5 Repeat steps 1 to 4 for each partition that you want to create or edit. Remember not to format existing partitions without backing up important information. * 6 Select the Next button to carry out your changes to your hard drives. A confirmation screen appears. img/Installing.png * 7 Select the Yes button to continue with the install. img/Installing.png Changes to your partitions are not made until you select the Next button. If you change your mind about partitions that you create or edit, you can select the Undo All button to return the hard drive you selected to its original state. You can also use the Back button to choose another installation target. 3.2.2.1. Reading the Edit Partition Screen ------------------------------------------ +-------------------------------------------------------------------+ |Column| Information | |------+------------------------------------------------------------| | |The directory from which you access the partition in the | |Mount |Linux directory structure. | |Point | | | |To be readable from Linux, all partitions must have a mount | | |point except the swap partition. | |------+------------------------------------------------------------| | |The Linux name for the hard drive or partition. (***) | |Name | | | |Drives are displayed in a tree structure, with partitions as| | |branches of the tree. | |------+------------------------------------------------------------| |Size |The size of the partition in megabytes or gigabytes. | |------+------------------------------------------------------------| | |The state of the partition. | | | | | |Usually, the only statuses that you see are: | | | | | | * To be mounted: The partition is ready for use, and will | | | be mounted, but is not going to be formatted. | | | * To be formatted: The partition needs to be formatted | |Status| before it is ready for use. | | | * Bootable: The partition is listed as bootable in | | | Windows. If a Windows installation is on the first | | | partition, the installer detects it and sets it as | | | Bootable automatically. | | | | | |[Installing] | | |No changes are carried out until you select the Next button.| |------+------------------------------------------------------------| | |The format or filesystem of the partition. Possible formats | | |are: | |System| | | | * Linux ext2: The native Linux format. | | | * Linux swap: The Linux swap partition. | | | * Free Space: No format. | +-------------------------------------------------------------------+ ***) See Section 2.2.5, `Reading Linux Device Names'. 3.2.2.2. New and Edit Screen Fields ----------------------------------- +-------------------------------------------------------------------+ | Field | Choices | |----------+--------------------------------------------------------| | |Select the Format? box to format the partition All | |File |information is lost. | |System | | |Flags |To avoid difficulties, select this option if you are | | |installing over an existing Progeny Debian install. | |----------+--------------------------------------------------------| | |The format of the partition. Possible formats are: | | | | | | * Linux ext2: The native Linux format. | | | | | | This format is the one most commonly used in Linux. | | | | | | * Linux swap: The Linux swap partition. | | | | | | This format is used for virtual memory, which may | | | improve performance. You can have as many swap | |File | partitions as you have space for. | |System | | |Type |After you install, you can recompile your kernel to add | | |support for other types of filesystems. Linux can | | |support over two dozen filesystems, including fat16 ( | | |msdos in Linux), the format used by dos and early | | |versions of Windows. | | | | | |fat 32 ( vfat in Linux) is supported by default in | | |Progeny Debian. fat 32 is the format used by recent | | |versions of Windows. | | | | | |Several types of journalled filesystems are also | | |available. | |----------+--------------------------------------------------------| | |The directory from which you read the partition. | | | | | |You can select the directory from the drop-down list or | | |enter it in the field. Choices from the drop- down list | | |are: | | | | | | * /: The root or top directory in the tree. | | | * /boot: Files needed to start Linux. | | | * /home: Users' home directories and personal files. | | | * /tmp: Temporary files. | | | * /usr: Common system files for all users. | | | * /usr/share: Common system files for all users, | |Mount | including many basic programs. | |Point | * /var: Variable files, including logs and queues. | | | * /var/spool: Queues for information, such as print | | | jobs. | | | | | |A common place for non-Linux partitions is in the /mnt | | |directory. For convenience, you can call the mount | | |points by their Windows name. For example: /mnt/C. | | | | | |You must have at least a root directory before | | |continuing with the install. In addition, a swap file | | |gives better performance, enabling you to use virtual | | |memory. Putting other directories on different | | |partitions can make backing up or recovering easier. | |----------+--------------------------------------------------------| | |Select the Bootable? box to include the partition among | | |the possible choices when you start the computer. | |Partition | | |Flags |To be bootable, the partition must either have an | | |operating system installed, or else be the one on which | | |you plan to install Progeny Debian. | |----------+--------------------------------------------------------| | |The size of the partition. | |Partition | | |Size |To change the size, either enter the size directly in | | |the field or use the arrow keys to change it. | |----------+--------------------------------------------------------| |Partitions|Choices are primary or logical. | |----------+--------------------------------------------------------| |Units |The units of measurement for the partition size: | | |megabytes (mb) or gigabytes (gb). | +-------------------------------------------------------------------+ 3.2.3. Limitations of the Partitioning Tool ------------------------------------------- Currently, you cannot: * Resize an existing partition. Instead: * a Back up the information on the partition. * b Delete the partition. * c Create a new partition of the size you want. * Change the format of an existing partition. Instead: * a Back up the information on the partition. * b Delete the partition. * c Create a new partition with the format you want. * Mount existing partitions not in ext2 or swap format. Mount these partitions after the install by editing /etc/fstab. See Section 13.3.2.1, `Mounting Drives When the System Starts'. 3.2.4. Working Around Incompatible Partitions --------------------------------------------- Partitions created by some versions of Windows or PartitionMagic are incompatible with the install program. If an error dialog displays, asking if you want to create a new partition table, select No and exit the install program if you want to keep your existing partitions. To work around this problem: * 1 Backup all data on all partitions. * 2 Start your system using the Progeny Debian cd as a boot disk. * 3 When the install program starts, press Alt-Ctrl-2 to start a virtual terminal. * 4 Use the parted utility to create new partitions. See Section 13.3.1, `Partitioning a Hard Drive'. 3.3. Configuring Your System ---------------------------- Configuring your system is the second stage in installing Progeny Debian. It occurs after the minimal system has been installed, and you have restarted your computer. Configuration should take about 10 to 15 minutes, depending on your knowledge and your computer system's speed. If you need more information, select the Help button to the right of an item. Configuration takes you through a series of screens to configure the different aspects of the system. You can choose which aspects to configure. Once installation is complete, you can use the tools you used during the installation by selecting them from the System menu of the gnome Control Center. 3.3.1. Starting the Configuration Stage --------------------------------------- After the minimal system has been installed: * 1 Select the Finish button from the final screen. Your computer reboots. * 2 Remove the Progeny CD and floppy from their drives when the install program instructs you. Your computer restarts. * 3 If necessary, change the boot order on your machine so that it starts from the hard drive. See Section 3.1.3, `Preparing a CD or Floppy Installation'. img/Installing.png If your forget to change the boot order, restart your computer and try again. Restarting your machine a second time does not affect the install process. After a moment, the Insert cd-rom screen opens. * 4 Put the Progeny Debian Install cd into the drive and press the Enter key. After a moment, the System Configuration screen opens. img/Installing.png img/Installing.png If your video card or monitor is not detected automatically, text-based installation screens open. For details on how to use these screens, See Section 3.3.9, `Configuring the Video Card' See Section 3.3.10, `Configuring the Monitor' img/Installing.png If you started the installation program with linux secondstage=text, then the configuration stage is text-based instead of graphical. * 5 Select the Next button to start the configuration stage of the install program. The Select Options to Configure screen opens. img/Installing.png Middle-click anywhere on the screen except the window to open a virtual terminal for troubleshooting. 3.3.2. Selecting Options to Configure ------------------------------------- img/Installing.png * 1 Select the options to configure. By default, all options are configured except X configuration. You must configure Users and Electronic Mail. img/Installing.png If you want a desktop, select X configuration. Most users should configure all options. However, if you decide not to, you can configure from the desktop. * 2 Select the Next button to continue. The Date and Time Screen opens. 3.3.3. Setting the Date And Time -------------------------------- img/Installing.png * 1 Under Time Zone, select your Region from the drop-down list. * 2 Select your Time Zone from the drop-down list. The list varies with the region that you select. * 3 Select the options you want: * The System set to utc box to set the system to Greenwich Mean Time. * The path to your Network Time Server, if you have one. * 4 Under Date and Time, select the month. The arrow on the left move the month backward, while the arrow on the right moves it forward. * 5 Select the year. The arrows on the left move the year backward, while the arrow on the right moves it forward. If you move the month from December to January, the year changes automatically. * 6 Select the day by highlighting it on the calendar. * 7 Enter the hour, minute and seconds. In each field, you can either enter highlight the current entry and over write it or else use the arrow keys to change it. * 8 Set the time to am or pm . If you prefer a 24 hour clock, you can reset the date later using the date command. * 9 Select the Set Date and Time button. Press the Next button when you are done. The User screen opens. 3.3.4. Configuring Users and Passwords -------------------------------------- img/Installing.png User configuration has three steps: * Setting the root password. * Creating a regular user (optional, but recommended). * Setting password strength. Before entering passwords for either the root or new user, you might want to See Section 3.3.8, `Configuring Password Levels'. 3.3.5. Choosing a Secure Password --------------------------------- A secure password is one that is hard to crack. That is, it is: * A mixture of letters, numbers, symbols, and of upper and lower case. * At least six characters long. * Not based on anything associated with you, such as a birthday, a spouse's name, a pet, or a favorite sports team or movie. * Not a common word found in a dictionary. * Different from your passwords on other machines. * Different to your user account. * Not written down anywhere. 3.3.6. Setting the Root Password -------------------------------- The root user has full access to the system. Ordinarily, the root account is used only for administration and configuration. See Chapter 4, `Starting and Stopping the System and Graphical Interface'. * 1 Enter the password for the root user (The user account for the root user is "root"). See Section 3.3.8, `Configuring Password Levels'. * 2 Re-enter the password to confirm it. img/Installing.png Unless the two passwords match, a warning displays before you move to the next screen. 3.3.7. Creating a Regular User Account -------------------------------------- A regular user account has limited access to the system. Even if you know the root password, ordinarily you do most of your work in a regular user account. See Chapter 4, `Starting and Stopping the System and Graphical Interface'. * 1 Leave the check box beside "Create new user" selected. Press the Next button. In almost every case, you want to create at least one regular user account. After installation, you can create other user accounts as necessary. * 2 Enter a user name for the account. Typically, the user name is some combination of your first and last name, such as jmacdonald. * 3 Enter the full name for the account. The full name may or may not be identical to the user name. * 4 Enter a password for the account. See Section 3.3.8, `Configuring Password Levels'. * 5 Re-enter the password to confirm it. img/Installing.png Unless the two passwords match, you receive a warning before moving to the next screen. 3.3.8. Configuring Password Levels ---------------------------------- * 1 Select one of the following: * Maximum Strength: md 5 passwords are enabled. The default is to enable them. md 5 passwords add security to your system. They also allow passwords longer than 8 characters long. * Compatible with unix -like Systems: md 5 passwords are not enabled. md 5 passwords may be incompatible with older systems, or ones on a network that using a Network Information System (nis) Unless you have compatibility problems, accept the default of Maximum Strength. * 2 Leave the appropriate box checked to enable shadow passwords. With shadow passwords enabled, passwords are encrypted and stored in a file readable only by the root user. Shadow passwords are a standard security measure. However, they sometimes cause problems on networks that use a Network Information System (nis). Unless you have compatibility problems, accept the default and enable shadow passwords. * 3 Select the Next button to continue. If you chose to configure the graphical display, the Video Card screen opens. If you did not choose to configure the graphical display, the Electronic Mail screen opens. See Section 3.3.14, `Configuring Electronic Mail'. 3.3.9. Configuring the Video Card --------------------------------- img/Installing.png Information about your video card is detected automatically by the system. However, you can change this information if necessary. img/Installing.png Choosing settings that are not supported by your video card could damage it or the monitor. * 1 Enter a name or identifier for your video card configuration. After the install, you can see this name in the XFree86Config file. * 2 If necessary, select the X server package (graphic display driver) to use. In most cases, you can use the one suggested by the install program. If you have trouble choosing an X server package that works, try xserver-xfree86 or xserver-vga. * 3 If necessary, select the manufacturer and driver to use. In most cases, you can select the one suggested by the install program. If you have trouble configuring the video card, use one of the generic settings at the bottom of the list. Generic vga or Generic vesa should work with most cards. * 4 If necessary, enter the amount of video memory for the card. In most cases, you can leave it blank. img/Installing.png This setting is provided for older cards and for trouble shooting. Under most circumstances, Progeny Debian automatically detects the video memory available. * 5 Select the Next button. The Monitor configuration screen displays. 3.3.10. Configuring the Monitor ------------------------------- img/Installing.png Information about your monitor is automatically detected. However, you can change these settings if necessary. img/Installing.png Choosing settings that are not supported by your monitor could damage it or the video card. Consult the monitor documentation for the correct settings. * 1 Select a name for your monitor setting. You can find this name after the install in the XFree86Config file. * 2 Select the Simple, Medium, or Expert button to choose the means of configuring your monitor: * Simple: Select the monitor size from the drop-down list. Then select the ok button. * Medium: Select the resolution that you want to use from the drop down list. Then select the ok button. Your choice should not be greater than the highest resolution supported by both your monitor and your video card. * Expert: Enter the Horizontal Sync Range and Vertical Refresh Rate for your monitor. If you do not know these statistics, 30-130 for the Horizontal Sync and 60-160 for the Vertical Refresh should work for most monitors. img/Installing.png Simple and Medium modes or the suggested Horizontal Sync Range and Vertical Refresh Rate may not always give the best settings for your monitor. If necessary, you can change the settings after the install. * 3 Select the Next button to continue. The Desktop screen opens. 3.3.11. Setting the Desktop Graphic Display ------------------------------------------- img/Installing.png From the Desktop screen, you can set the resolution and color depth for the graphical display on your system. Settings for the graphic display depend on the capabilities of your video card and monitor. If you did not collect this information before installing, See Section 2.1.2, `Gathering Hardware Information'. img/Installing.png Choosing settings that are not supported by both your video card and monitor could damage either piece of hardware. * 1 Select the resolutions to support. By default, your desktop starts in the highest resolution supported, but you can change the resolution: * Temporarily, by pressing Alt-Ctrl-keypad+ to cycle through the available resolutions. * Permanently, by editing the XFree86Config file. * 2 From the drop-down list, select the color depth, or the number of colors that your desktop will use. Fewer colors mean a less realistic display of graphics, but a faster redraw time. However, if you have a video card with more than 4 megabytes of memory, for most purposes you can use the highest available color depth without any trouble. img/Installing.png Choosing settings that are not supported by both your video card and monitor could damage either piece of hardware. * 3 Select the Next button to continue. The Pointer screen opens. 3.3.12. Configuring the Pointer ------------------------------- img/Installing.png The pointer is usually a mouse. However, it can also be a trackball, a palette, or any other device that replaces a mouse. If you have been using the mouse during the install, you can accept the settings listed. However, if your mouse is not working, you adjust the settings. * 1 Select the port to use. In most cases, it is /dev/ttyS0 (com1) or /dev/ttyS1 (com2) for a serial mouse, or /dev/psaux for a ps2 mouse. * 2 Select the protocol or driver to use. If you are using a serial mouse, then select the name of the manufacturer from the drop-down list. Use ps2 for a generic ps2 mouse. If you cannot find a protocol for your mouse or pointing device, select Auto to have it detected automatically. You can also try different protocols to see if your mouse can use them. * 3 Select Emulate 3-button mouse if you have a 2 button one. With three button emulation, pressing both buttons on the pointer is the same as pressing the middle button on a three-button pointer. Linux is designed for use with a three button mouse, so most users of two-button mouses should choose this option. * 4 Select Enable scroll-wheel event to use a scroll wheel. If your mouse has a scroll wheel, you probably want this option. * 5 Select the Next button. The X Server screen opens. 3.3.13. Setting Advanced Graphic Display Options ------------------------------------------------ img/Installing.png From the X Server screen, you can set advanced options for your graphical display. If you are unsure what these settings mean, use the defaults. * 1 Select who can use a graphic display from the drop-down list: * Root Only: Only the root user. * Anybody: All users, whether local or remote. * Console Users Only: Users can only start the graphical display when working from the local keyboard and monitor. * 2 Select the process priority. This setting determines what share of your system's resources are given to the graphic display at any given time. img/Installing.png Changing the priority for your graphical display can seriously affect system performance. Do not change this setting from -10 unless you are sure what you are doing. * 3 Select the Next button. The Electronic Mail Configuration screen opens. 3.3.14. Configuring Electronic Mail ----------------------------------- img/Installing.png Unless set to local only, e-mail requires a network or dialup connection. You can configure a network during the install process or after. A dialup connection is not part of the install program, but you can set up one after the install process. If you need help with the choices on this screen, consult your system administrator or Internet service provider. * 1 Select the General mail setup. Choices are: * Internet Site: The same machine that originates the mail sends it and receives any incoming mail. * Internet with smarthost: A dedicated server delivers mail. This setting is often used when you are connecting to an Internet service provider. * Satellite system: No mail is delivered locally. Mail is delivered only through the smarthost. * Local only: E-mail can only be sent and received by users on the present machine. * No configuration: No e-mail is configured. * 2 Enter the outgoing mail hostname. Consult your system administrator or isp provider for the hostname needed. * 3 Enter the incoming mail hostname. Consult your system administrator or isp provider for the hostname needed. * 4 Enter the smtp relay host. Consult your system administrator or isp provider for the hostname needed. * 5 Check the appropriate box if you want a world-writable mail drop. A world-writable mail drop allows users to receive mail directly, instead of only through your network's mail system. It is faster, but can be a security risk. If in doubt, do not select world writable mail drop. * 6 Check the appropriate box if you want to use "procmail" for local mail delivery. Procmail lets you filter incoming messages and deliver them to folders other than your Inbox. You can use other tools to filter, so, if in doubt, do not use procmail. See Section 13.4.6.1, `Directing E-Mail Using procmail'. * 7 Select the Next button. The Printer screen opens. 3.3.15. Configuring Printers ---------------------------- img/Installing.png In this screen, you can configure printers for your system. * 1 Select the Printer definition to create or edit. If you have not created a Printer definition already, you can only select New. * 2 Enter a short name and a long name for the printer definition. These names can help you identify the printer. The short name appears on the printer spool, that stores files before they are sent to the printer, and in configuration files. The long name is used mainly to help you identify the printer. At some companies, printers are named with a theme, such as animals or famous people. However, names based on some combination of the manufacturer, model, and or path name of the printer may be easier to work with. * 3 Select the location of the printer: * Local: the printer is attached to the machine on which you are installing. You need to enter the device to which the local printer is attached. Usually, the device will be the first parallel port, /dev/lp0. * Remote: The printer is on a network to which your machine is attached. You need to enter: * The hostname: The machine to which the printer is attached. * The printer name: The name of the printer on the system to which it is attached. If you do not have this information, consult your system administrator. * 4 Select the printer driver from the list. Printers are listed by manufacturer, then by model. If your printer is not listed, it may be able to emulate one that is. Try Hewlett-Packard Laserjet drivers for both postscript and non-postscript printers. * 5 Select the Apply button to enter the printer definition. * 6 Add any other printer definitions by repeating this process. Notice that the definition you just entered is now listed in the drop-down list of printers. * 7 Select the default printer. If you entered only one printer definition in the previous screen, then it is already listed as default. * 8 Select the default paper size. If you are in North America, you can use the default Letter. If not, you probably want A4. * 9 Select the Next button. The Network screen displays. 3.3.16. Configuring the Network ------------------------------- img/Installing.png Network configuration is used not only for a network, but also for a cable or dsl internet connection. If you are an end-user, ask your system administrator or internet provider for the settings you need. * 1 Enter a hostname for your machine. * 2 Select one of the following: * No network configuration: Continue the install without setting up a network. If you want to add network support later, you can do so after the install. * Configure with dhcp: Network information is assigned automatically by the dhcp server. The dhcp hostname is assigned by an isp to your machine. This setting is optional. In most cases, it can be ignored. * Use manual settings: Enter the settings needed for the network: * Domain name: The name of the machine on which you are installing Progeny Debian. * ip address: The address of the machine on which you are installing Progeny Debian. * Netmask: The bitmask that defines the part of the system's network address that identifies the network. * Gateway: The address of the machine that is the default route to machines not on the network. * Name Servers: The address of the system that provide hostname lookup services to your system. img/Installing.png Check with your system administrator or Internet Server Production for the entries that you need. * 3 If your network connection is through a pcmcia or Cardbus network card, select the box beside Main network device is removable. * 4 Select the Next button. The Finish screen opens. img/Installing.png * 5 Select the Finish button to complete the configuration stage of installation. A bar graph displays the progress while the system is configured. img/Installing.png When your choices are entered, configuration is complete. The Available Software screen opens. 3.4. Selecting Software to Install ---------------------------------- [tasksel does similar thing] img/Installing.png Selecting software is the fourth stage of a Progeny Debian installation. Software is arranged in package sets. You can double-click on a package set to select individual packages. Progeny Debian pre-selects the following package sets: * Character-mode mail and news clients. * gnome applications. * gnome desktop system. * Mozilla * Netscape * X Window System img/Installing.png De-selecting the pre-selected packages then selecting Apply could remove parts of the operating system that you want to keep. Instead, use the Revert button and select packages individually. The time taken to install other software depends on your choices, and the speed of your machine. However, in most cases, choosing and selecting the software should take 15 to 20 minutes. * 1 Decide what package sets to install. To gather information to help you decide: * Select a package set: A brief description displays in the bottom pane. * Double-click on a package set: A window displays the packages that make up the set. If you have any familiarity with Linux, you can decide which packages to select. * Refer to the table at the end of this section. This table helps you decide whether you need a particular package set. * 2 Select the software to install. When a package set is selected, the box beside it has a check mark and its name displays in red. img/Installing.png Some packages are already selected. Do not de-select them unless you are sure what you are doing. The lower right corner of the window shows the status of the package set and how much space all your choices and the base system need. The total space used should be greater than the total space of all your Linux partitions (not including the swap file). Consult the table at the end of this section for help in selecting software. img/Installing.png The Extras cd contains other software that you can install from the desktop, including the kde desktop. * 3 Select the Apply button to start installing the packages. The Package Manager Output screen displays messages about the installation. img/Installing.png If you de-select default packages, use the Revert button instead of the Apply button. Otherwise, you could remove essential parts of the operating system. If screens may appear to ask for clarification during installation, consult the Help screens. In most cases, you can use the suggested settings. If the pane showing the progress of the install stops at a Y/N question, in most cases you can safely enter y (for "yes"). When the install is finished, the graphic display starts and a log in screen opens. * 4 Do one of the following: * Log in as root to configure other parts of the system or to install software on the Extras cd . or * Log in with your regular user account to start using your Progeny Debian system. or * Reboot to make sure that any initial services that are needed by the choices you have made during the install can start. img/Installing.png Although you can explore your Progeny Debian System immediately, plan on rebooting the system soon after you finish the installation process, just to make sure that everything is working properly. Software Package Sets +-------------------------------------------------------------------+ | Package | CD | Use | |----------------+--------+-----------------------------------------| |Apache web |Install |Sets up the system as a web server. | |server | | | |----------------+--------+-----------------------------------------| |Bind Domain Name|Install |Makes the system a Domain Name Server. | |Server | | | |----------------+--------+-----------------------------------------| |Character-mode | |Command line mail and news clients. | |mail and news |Install | | |client | |A default selection. | |----------------+--------+-----------------------------------------| |dhcp server |Install |Makes the system a dhcp server. | |----------------+--------+-----------------------------------------| |Debian package | | | |maintenance |Install |The creation of Debian (.deb) packages. | |tools | | | |----------------+--------+-----------------------------------------| |Document | |Document tools, including TeX, LaTex, | |preparation |Install |sgml and xml. | |tools. | | | |----------------+--------+-----------------------------------------| |ftp server |Install |Makes the system an ftp server. | |----------------+--------+-----------------------------------------| | | |Productivity applications, such as a word| |gnome |Install |processor and spreadsheet. | |applications | | | | | |A default selection. | |----------------+--------+-----------------------------------------| |gnome desktop | |The default Progeny Debian desktop. | |system |Install | | | | |A default selection. | |----------------+--------+-----------------------------------------| |gnu emacs |Install |The gnu emacs editor. | |----------------+--------+-----------------------------------------| |Games |Extras |A collection of games. | |----------------+--------+-----------------------------------------| | | |Productivity applications for the kde | |kde Office |Extras |desktop, such as a word processor and a | | | |spreadsheet. | |----------------+--------+-----------------------------------------| |kde Desktop |Extras |An alternate desktop. | |----------------+--------+-----------------------------------------| |kde Desktop | | | |system |Extras |Files needed to develop programs for the | |(Development | |kde desktop. | |files) | | | |----------------+--------+-----------------------------------------| |Linux 2.2 smp |Install |Linux kernel compiled for multi-processor| | | |support. | |----------------+--------+-----------------------------------------| |Linux 2.4 kernel|Install |Linux 2.4 kernel. | |(experimental) | | | |----------------+--------+-----------------------------------------| |Linux 2.4 kernel| | | |with smp support|Install |Linux 2.4 kernel compile for | | | |multi-processor support. | |(experimental) | | | |----------------+--------+-----------------------------------------| |Miscellaneous | |Print filters for various formats, | |print filters |Install |including TeX, dvi , and assorted | | | |graphics formats. | |----------------+--------+-----------------------------------------| | | |Open source web browser, e-mail client, | |Mozilla |Install |and news browser. | | | | | | | |A default selection. | |----------------+--------+-----------------------------------------| |nfs server |Install |nfs/nis server. | |----------------+--------+-----------------------------------------| | | |Non-free web browser, e-mail client, and | |Netscape |Install |news browser. | |Communicator | | | | | |A default selection. | |----------------+--------+-----------------------------------------| |Open ldap client|Install |Client support for using ldap servers. | |software | | | |----------------+--------+-----------------------------------------| |Open ldap server|Install |Server and support files for setting up | |software | |an ldap server. | |----------------+--------+-----------------------------------------| |Samba ( smb | |Suite of programs that allows Linux | |protocol) server|Install |systems to share files and printers with | | | |Windows systems over a network. | |----------------+--------+-----------------------------------------| |Scripting |Install |Scripting tools, such as tk/tcl. | |languages | | | |----------------+--------+-----------------------------------------| |Software | |A complete set of tools for developing | |development |Install |software. | |tools | | | |----------------+--------+-----------------------------------------| |Squid internet |Install |Proxy server for web and ftp clients | |object cache | | | |----------------+--------+-----------------------------------------| |Window managers |Install,|Alternative window managers. | | |Extras | | |----------------+--------+-----------------------------------------| | | |Provides graphical display. | |X Window System |Install | | | | |A default selection. | |----------------+--------+-----------------------------------------| |Xemacs |Install |An enhanced version of emacs designed for| | | |desktop use. | |----------------+--------+-----------------------------------------| |Vim |Install |An enhanced version of the unix text | | | |editor vi . | +-------------------------------------------------------------------+ 3.5. Installing Software From the Extras CD ------------------------------------------- Progeny Debian includes an Extras cd with additional software, including the kde desktop, a popular choice for a graphical display. To install software from the Extras cd: * 1 Log in to the system as the root user. * 2 Open a command line by selecting the icon on the top panel. img/Installing.png * 3 At the prompt, type: apt-cdrom add. Then follow the on-screen instructions, placing the Extras cd into the drive to add its package sets to the list on your system. * 4 From the menu in the top left corner of the screen, select Programs > System > Add/Remove Software. img/Installing.png The Configure Software screen opens. The screen resembles the one that you used to add software during the install, except that now it includes the contents of the Extras cd as well. * 5 Select the package sets to install. * 6 If you choose, double-click on a package set to view or select the individual packages in the set. * 7 Select the Apply button to install the software. The installation of your Progeny Debian system is now complete. If you need to fine-tune the system configuration, use the System tools in the gnome Control Center. They are similar to the screens that you use during installation. If you want to add software or upgrade the system, use the apt-get utility or select Programs > System > Add/Remove Software from the main menu. Re-installing over an existing Progeny Debian system is often difficult. If you do re-install, backup all important information and reformat the partitions you are using. ------------------------------------------------------------------------------- 4. Starting and Stopping the System and Graphical Interface ----------------------------------------------------------- Like any version of Linux, Debian has strict procedures for starting and stopping a system. These procedures are part of the operating system's security features. They also prevent accidental damage to the system. To start your computer, you must choose the operating system to load from the boot manager, and then log in to a user account. To stop your computer, you must log out of the user account, then halt or reboot the system. This chapter explains: * Working with User Accounts. * Choosing an operating system from the boot manager. * Logging in to a user account with a desktop or a command line. * Shutting down the system. * Starting and closing the graphical interface. * Changing user accounts after logging in. 4.1. Working With User Accounts ------------------------------- Linux is designed for multiple users. To use the system, you must log in with a user account. To use an account, you must know both the user name and the password. User accounts are organized into groups of accounts with similar access to the system. The software and the hardware you can use depends on the user account that you are using and the groups to which it belongs. For more information, When you install Debian, create at least two user accounts: a regular user account for everyday computing, and a root account for system administration. Normally, you also want one regular user account for each person who uses the system. 4.1.1. Understanding Regular User Accounts ------------------------------------------ A regular account is used for everyday computing. Each account has a home directory. By default, users' home directories are beneath the / home directory. This home directory is usually the same as the user name for the account. When you are logged in with an account, you usually can: * Read, write, and use files and directories in the account's home directory. * Read, write, and use all files and directories to which other users give you permission. * Read, but not write or use basic system files. On some systems, the system administrator may choose to make basic system files unreadable by regular users. Accounts may annoy those familiar with other operating systems. However, user accounts have several advantages: * Your private files are secure. You can change your setting so that other regular users cannot change, nor even see your files. * Your desktop and command line interfaces can be customized. * Viruses are less likely to infect the computer. While viruses are not the problem on Linux that they are on other operating systems, any damage is likely to affect only one user's files. * Only the root user can use important files. Mistakes, like viruses, are likely to affect only a user's personal files. 4.1.2. Understanding the Root Account ------------------------------------- The root account has full access to all software and hardware on the system. In most cases, it should be the only account that has full access. For this reason, the root user is sometimes called the super user or privileged user. The root user's home directory is /root. _[Note]_ The /root directory is different from the root directory at the top of the Linux directory tree. Nor is it the same as the root partition - the partition that the root directory is on. To avoid damaging your system, take the following precautions when using the root account: * Use the root account only for configuration or administration. * Use the root account as briefly as possible. * Give the root password to as few people as possible. Each of those people should use another account for everyday computing. * Do not give root privileges to any other account. * Do not use the root account on the Internet. * Use these precautions even on a single, unnetworked computer. Using the Boot Loader img/Login-2.png Many users have multiple operating systems or Linux kernels on the same computer. Using a boot loader, you can choose which operating system or kernel to start your computer with. Debian uses grub (Grand Unified Boot Loader). However, other boot loaders are widely used, including lilo (the Linux Loader). grub is the first thing that you see when starting a Debian system. You can edit grub to display any installed operating system or kernels. Your Debian system also includes a single-user mode. The single-user mode starts the machine with a basic system that the root user can use for troubleshooting. To choose an operating system from grub , do one of the following: * Highlight a menu item by using the arrow keys. Then press the Enter key. or * Wait for the default choice to start. The default choice starts in 10 seconds if you make no selection. In either case, Debian starts. After processes are started and some tests are run, the graphical display starts and the log in screen opens. You can reconfigure grub and add other operating systems to it. See Section 13.3.4, `Configuring the Boot Loader'. 4.2. Logging in to Debian ------------------------- img/Login-3.png After Debian has started its initial processes and run some checks, the log in screen opens. Logging in is the process of entering your user account and your password. _[Note]_ You cannot bypass this process, the way you can in some operating systems. By default, you log in graphically. However, you can also configure Debian to start in a command line instead. 4.2.1. Logging in Graphically ----------------------------- From the login window: * 1 If you want, select options from the menu: * Choose a desktop or window manager from the Session menu. * Choose a language from the Language menu. In both cases, if you do not make a choice, then the last choices you made are used as defaults. Usually, you do not need to make a choice. * 2 Type your user account name in the login field and press the Enter key. The field changes to the password field. _[Note]_ Use the root account only for configuration or administration work. * 3 Type the password for your user account. If you have changed any options since the last time you logged in, a dialogue window displays. Select the Yes button to make the new options the default. If you type an account name and password that are entered into the system, then the desktop starts. If the account name or password are incorrect, then you return to the login window. 4.2.2. Logging in from a Command Line ------------------------------------- You can log in from a command line if you configure Debian not to start the graphical interface automatically. You can also start Debian in single-user mode, which does not include the graphical interface. If you press Ctrl-D from the log prompt in single-user mode, the graphical interface starts. * 1 At the login prompt, type your user account name and press the Enter key. The password prompt displays. _[Note]_ Use the root account only for configuration or administration work. * 2 Type the password for your user account. If you type an account name and password that are entered into the system, then a command prompt displays and you are ready to work. If the account name or password are incorrect, you return to the login prompt. 4.3. Shutting Down Debian ------------------------- Linux is generally running many processes at once. Many of these run in the background, where they are easy to forget. For this reason, shutting down the system properly is essential. A proper shutdown is often called a graceful shutdown or exit. During a graceful shutdown: * All processes and programs are closed. * All information in ram memory or on the swap partition is written to the hard drive. * All log files are updated. * All partitions are dismounted. _[Warning]_ If you do not shut down properly, you may damage the operating system or lose files. At best, the next time you start your computer, you have a long delay while the root partition is checked. You can shut down from: * The desktop. * A command line. * The keyboard. 4.3.1. Shutting Down from the Desktop ------------------------------------- * 1 From the menu, select Logout. A confirmation window displays. * 2 If you have any unsaved changes to the desktop, select the Save current setup box. * 3 Select the Yes button to log out and return to the log in screen. * 4 From the login screen, you can: * Log in as another user. If you only need to change user accounts briefly, you may prefer to use su instead. See Section 4.5, `Changing User Accounts'. * Select System > Reboot from the menu. The system shuts down and restarts. * System > Halt from the menu. The system shuts down. If you select Reboot or Halt, a confirmation screen appears. * 5 Select the Yes button to reboot or halt the system. _[Warning]_ If you do not shut down properly, then you risk damaging the operating system. Even if no damage is done, your system checks the root partition before restarting. A quicker alternative is to open the command line and shut down from there. See Section 4.3, `Shutting Down Debian'-check: enabled? 4.3.2. Shutting Down From the Command Line ------------------------------------------ * 1 Log in as the root user. * 2 From the command line or from a command line window, enter one of the following commands: * halt : All processes immediately stop and the system shuts down. * shutdown halt + minutes or shutdown halt hh:mm : A warning message displays until all processes stop and the system shuts off. minutes is the number of minutes before the system shuts down. hh:mm sets the time in hours and minutes for the shutdown using a 24 hour clock. * reboot : The system shuts down and restarts. _[Note]_ Use the shutdown command to give regular users time to save their work. _[Warning]_ If you do not shut down properly, then you risk damage the operating system. Even if you don't, your system will check and, if necessary, repair the root partition before restarting. 4.3.3. Shutting Down From the Keyboard -------------------------------------- * 1 Press the Ctrl-Alt-Backspace keys in sequence. The desktop closes, and the log in screen opens. * 2 From the login screen, you can: * Log in as another user. If you only need to change user accounts briefly, you may prefer to use su instead. See Section 4.5, `Changing User Accounts'. * Select System > Reboot from the menu. The system shuts down and restarts. * System > Halt from the menu. The system shuts down. If you select Reboot or Halt, a confirmation screen appears. * 3 Select the Yes button to reboot or halt the system. 4.4. Starting and Shutting Down the Graphical Interface ------------------------------------------------------- Linux uses the X Window system for a graphical interface, such as a desktop and/or a window manager. See Section 6.1, `Understanding Graphical Interfaces'. You can choose to start a graphical interface automatically when you start your computer. This is the default setup for Debian. Alternatively, you can start the X Window system from the command line. 4.4.1. Starting a Graphical Interface From the Command Line ----------------------------------------------------------- You must have the X Window System installed as well as a desktop and/ or window manager. * 1 Log in to a command line. See Section 4.2.2, `Logging in from a Command Line'. * 2 Type: startx . The X Window System starts and the login window displays. _[Note]_ The X Window System is not loaded if you are starting from single-user mode. * 3 Log in. See Section 4.2.1, `Logging in Graphically'. 4.4.2. Exiting the Graphical Interface -------------------------------------- You can: * Exit the X Window System and keep it running in the background. * Close down a X Window System session that you started from the command line. 4.4.3. Keeping the X Window System Running in the Background ------------------------------------------------------------ * 1 Press Ctrl-Alt-F1. A full screen command line displays with a login prompt. * 2 Log in. See Section 4.2.2, `Logging in from a Command Line'. To return to the desktop, press Alt+F7. You return to your original user account. 4.4.4. Closing Down an X Window System -------------------------------------- * 1 Open a command line from the panel. * 2 Log in as the root user. See Section 4.5, `Changing User Accounts'. * 3 From a command line, type /etc/init/d/gdm stop. Then press the Enter key. A full screen command line displays with a login prompt. 4.5. Changing User Accounts --------------------------- From both the command line and the desktop, you can logout as one user, then login as another. However, a more convenient way to change accounts is to use the su command ("switch user" or "set user"). This command is especially useful if you need to log in briefly as the root user while using a graphical interface. However, to use it effectively, you need to be comfortable working from the command line. To change user accounts: * 1 If necessary, open a command line from the panel. * 2 From a command line, type su - user command. You do not need to enter a command. If you do enter a command, you use the other user account only to run that command. Then you return to your original account. A password prompt appears if you are logged in as a regular user. If you are logged in as the root user, then no password prompt displays. * 3 If necessary, enter the password for the account that you are logging into. _[Note]_ You have changed accounts only for the command line you are using. If you are running a desktop, then you are still logged in with your original account in other windows. * 4 If you changed accounts without running a command, repeat this process to return to your original account. If you run a command, you return to your original account as soon as the command is carried out. ------------------------------------------------------------------------------- 5. Getting to Know the Command Line ----------------------------------- A command line is a text-based interface for interacting with your computer. You type a command, then press the Enter key to run it. If you have used DOS , then you have used a command line. The command line is also known as the terminal, xterm, console, command shell, or shell. Some of these terms make technical distinctions, but, for most purposes, you can consider them identical. This chapter explains the basics of using the Linux command line. It covers: * Why Use the Command Line: An explanation of why you should learn to use the command line. * Starting the Command Line: The different ways that you can open a command line. * Entering a Command: How a command is structured and how you run one. * Navigating the Command Line: How you can move through directories and list files from the command line. * Using Command Line Shortcuts: Features of the Linux command line that save you time, effort, and typing. * Setting the Command Shell: How to change the default command line to suit your needs. * Finding Help for Commands: The on-line help systems for commands. The rest of the manual also contains command line solutions to different computing tasks. 5.1. Why Use the Command Line? ------------------------------ Most Windows and Mac OS users work with a graphical desktop and ignore the command line. Increasingly, many Linux users are doing the same. However, you should learn how to use the command line for several reasons: * Many useful tools can only be used from the command line. * The command line gives you more flexibility and power, especially when you are working with multiple files. * If you ever need to recover, you will do so from the command line. Maintenance work in single-user mode also requires familiarity with a command line. These reasons are important enough that many Linux users still prefer to work from the command line instead of the desktop. If you have used DOS, you will find the Linux command line much easier and much more powerful. Not only does it have many shortcuts to save you time, but you can even choose the command line interface - the shell - that best suits your needs. This manual assumes that you are using bash (Bourne Again Shell), the default for Progeny Debian and most other Linux distributions. 5.2. Starting a Command Line ---------------------------- If your computer is not set up to use a graphical desktop, it starts with the command line already running. To start a command line while running a graphical desktop, do one of the following: * Select the command line from the panel. img/Shell-1.png * From the menu, select Programs > System > Eterm, gnome Terminal or Regular xt erm. A command line window opens. img/Shell-2.png * Press Alt-F2 or select Run from the menu. A single line command window opens. img/Shell-3.png * Right-click on the work space. Then select New > Terminal from the pop-up menu. * Press Ctrl-Alt-F1 using the left-hand keys. A full screen command line opens. To return to the desktop, press Alt-F7. 5.3. Entering Commands ---------------------- To new users, a command can look overwhelming. However, once you realize that all commands follows the same basic structure, you can start using them efficiently. This section covers: * Understanding the parts of a command. * Understanding command structures. * Entering multiple file names. * Entering wild cards. * Entering multiple commands. * Combining commands. * Running commands in the background. * Stopping commands from running. 5.3.1. Understanding the Parts of a Command ------------------------------------------- A command is sometimes a single word. However, a command may include: * Options: variations on how the command is carried out. Options begin with one hyphen (-) if they were developed for unix or by unaffiliated programmers, or by two hyphens (--) if they were developed by the gnu Foundation. Because gnu commands are often complete words, they are often more user-friendly. * Arguments: Fixed values that affect exactly what the command does, or how it does it. * Directories or files: What the command affects. Some commands, such as cp (copy) need a source file (the file being worked with) and a target file (the one affected). * Strings: A set of characters enclosed by double or single quotation marks. Often, a string contains a regular expression or wild card. What a command does can vary greatly, depending on what options, arguments, and files are used. For example, If you simply type date , then the current date and time display. However, if you type date 0707132101, then your computer's date is changed to 1:21 pm on July 7, 2001. _[Note]_ Commands, options, and arguments are often abbreviated descriptions of what they do. For example, cp copies a file, while su switches the user account you are using. Similarly, in some commands, the -V option is short for Version, and lists the version number of the command. Knowing the full description is a useful way to memorize commands. 5.3.2. Understanding Command Structures --------------------------------------- The parts of a command are always entered in the same order: command options argument files A typical command is chgrp -Rv root /home/jtang/ToDo. In this example: * chgrp is the basic command. It is short for "change group." It transfers the ownership of the file at the end of the command from one group of users to another. * -Rv are two options: * -R (recursive) makes the command affect all files and sub-folders below the directory at the end of the command. * -v (verbose) makes the command list the files and folders as it changes them. _[Note]_ You only need one hyphen for both commands. However, you can enter -R -v if you prefer. * root is an argument. In this case, it means that the ownership of the directory will be transferred to the root user. * /home/jtang/ToDo is the directory whose ownership is being changed. Originally, it belonged to the user jtang, since it is in the home directory for that user. After the command is run, the ToDo directory will belong to the root user. 5.3.3. Understanding Common Options ----------------------------------- Many options differ with each command. However, a few basic options are used reasonably consistently. Some may have slight variations, such as using upper or lower case letters. If you have any doubt about an option, check the help before using it. Common Command Options +-------------------------------------------------------------------+ | Option | What It Does | |-----------------+-------------------------------------------------| | * -d |Displays debugging information | | * --debug | | |-----------------+-------------------------------------------------| | * -f |Runs the command no matter what the consequences,| | * --force |such as over-writing existing files. | |-----------------+-------------------------------------------------| |--help |Displays info help for the command | |-----------------+-------------------------------------------------| | | * Waits for confirmation before doing each part| | | of the command ( i, interactive ). | | * -i, | | | --interactive| or | | * --ignore-case| | | | * Ignores the distinction between lower case | | | and capital letters ( insensitive ). | |-----------------+-------------------------------------------------| | * -R, -r |Includes files and sub-directories of the | | * --recursive |directory name in the command. | |-----------------+-------------------------------------------------| | * -V, -v |Displays what a command is doing so you can see | | * --verbose |its progress. In some cases, -V or -v gives the | | |version number of the command. | +-------------------------------------------------------------------+ 5.3.4. Entering Multiple File Names for a Command ------------------------------------------------- The simplest way to have a command affect multiple files is to enter the file names with a space between them. Because this method specifies which files are affected by the command, it reduces the chances of accidently applying the command to the wrong file. For example, if a user called mary wanted to copy files called tasklist and notes to her backup directory, she would type: cp /home/mary/tasklist notes /home/mary/backup/. 5.3.5. Entering Commands with Strings ------------------------------------- Some commands use a string as an argument. A string is a combination of letters, numbers, characters and/or spaces inside single or double quotation marks. Within a string, you can type in multiple words, or disable metacharacters (also known as wild cards). A string that uses metacharacters is referred to as a regular expression. See Section 5.3.6, `Using Metacharacters or Wild Cards'. If you use double straight quotation marks, all metacharacters are disabled except environment variables, such as $ home. Single straight quotation marks disable all special characters. In most cases, use single quotation marks. Do not use true quotation marks (" "). True quotation marks may be a problem if you copy and paste from a word processor. For example, if you wanted to search user jsmith 's home directory for a file that contained the phrase "business expenses," you would use the grep command with the phrase as an argument: grep 'business expenses' /home/jsmith/. 5.3.6. Using Metacharacters or Wild Cards ----------------------------------------- Metacharacters are characters that designate a range of choices. They are also called special characters or wild cards. You may know the basic metacharacters from other operating systems: * An asterisk (*) includes any number of characters. * A question (?) mark includes any single character. _[Warning]_ Metacharacters can be extremely powerful, especially when used in combination. Be especially careful about using them when you are deleting and moving files. You may affect more files than you realize. _[Note]_ If you want to search for a character that is usually used as a metacharacter, place a backward slash ( ) in front of it. For example, ? searches for a question mark, instead of any character. 5.3.6.1. Metacharacters or Wild Cards ------------------------------------- +-------------------------------------------------------------------+ | Metacharacter | Stands for | |------------------+------------------------------------------------| |. |Any character except a new line marker. | |------------------+------------------------------------------------| |? |Any one character, or none. | |------------------+------------------------------------------------| |[ ] |Any one of the enclosed characters. | |------------------+------------------------------------------------| |* |Any number of characters, or none. | |------------------+------------------------------------------------| |^ string |The string at the start of the line. | |------------------+------------------------------------------------| |string $ |The string at the end of the line. | |------------------+------------------------------------------------| |string + |Match one or more of the characters in the | | |string | |------------------+------------------------------------------------| |string |Match a range of instances | |------------------+------------------------------------------------| |( string | string |One of the strings. | |) | | +-------------------------------------------------------------------+ Metacharacters are especially powerful when used together. For example: * ^contacts$ matches text in which contacts is the only word on a line. * [Cc]ontacts matches Contacts or contacts . * ^...$ searches for any line of three characters. * compan (y|ies) searches for company or companies . * [A-Za-z] searches for any upper or lowercase letter. Similarly, [0-9A-Za-z] searches for any number or any letter. 5.3.7. Entering Multiple Commands --------------------------------- Separate multiple commands by a semi-colon. For example, if you type cd /backup;ls s* , you move to the /backup directory (using cd), and list all files in the directory that start with s . 5.3.8. Combining Commands ------------------------- You can combine commands by typing them with the pipe character (|) between them. This technique is known as piping. For example, if you type ls|less , you display the files of the current directory ( ls ) using the less command, which allows you to scroll back and forth in the list. This combination would be useful if you had a long list of files. _[Warning]_ Use piping carefully. Sometimes, it has unwanted or unexpected results. 5.3.9. Running Programs in the Background ----------------------------------------- If you are using the X Window System, the command prompt is generally in its own window. As a result, you can easily do another task while a command is running. However, if you are using only the command line, you can run a command in the background, so that you can use the shell for another task while the command is running. To run a command in the background, type command & . 5.3.10. Stopping Commands from Running -------------------------------------- Press Ctrl-C. The command that is running stops. Then a new command prompt displays below the previous one. 5.4. Navigating the Command Line -------------------------------- Linux systems store files in directories. The directories are arranged in a tree-like structure. At the top of the tree is the root directory (/). Even directories on another partition are sub-directories of the root directory. See Chapter 8, `Searching for Files and Text'. Using a few basic commands, you can * Change directories. * Read the contents of directories. * Identify the type of entries in a directory. * Find your current directory. * Clear the screen. 5.4.1. Changing directories --------------------------- Type cd directory . Unless the directory you are changing to is a sub-directory of the current one, usually you should type the full path name to the directory. To change to the directory immediately above the present one, type "`cd ..'" (two periods). 5.4.2. Reading the Contents of Directories ------------------------------------------ Type ls options directory . By carefully selecting your options, you can use the ls (list command to help you locate files. For example, the -S option lists files in order of size, while the -t option lists files by when they were modified. Another trick is to set an alias, so that typing list results in ls -- color , which prints files in different colors, depending on what kind they are. See Section 5.5.4.1, `Creating an Alias'. 5.4.2.1. The ls Command (List) ------------------------------ +-------------------------------------------------------------------+ | Option | Action | Comments | |-----------------+----------------------------+--------------------| |-a |Includes hidden files in the|Most hidden files | | |list. |start with a period.| |-----------------+----------------------------+--------------------| | * --color |Displays types of files in | | | * --colour |color. | | |-----------------+----------------------------+--------------------| | | |Common symbols are: | | | | | | * -F |Displays types of files | * /: Directories. | | * --classify |using symbols. | * *: Executable | | | | files. | | | | * @: Symbolic | | | | links. | |-----------------+----------------------------+--------------------| |--full-time |Prints complete file | | | |attributes. | | |-----------------+----------------------------+--------------------| | * -l |Displays file attributes. | | | * format=long | | | |-----------------+----------------------------+--------------------| | * -L |Lists the files referenced |See Working With | | * --dereference|by symbolic links instead of|Symbolic Links. | | |the links themselves. |(***) | |-----------------+----------------------------+--------------------| | * -R |Includes sub-directories. | | | * --recursive | | | |-----------------+----------------------------+--------------------| | * -S |Sorts files by size. |Largest files are | | * sort=size | |displayed first. | |-----------------+----------------------------+--------------------| | * -t |Displays files in the order |The most recently | | * --sort=time |in which they were modified.|modified files are | | | |displayed first. | |-----------------+----------------------------+--------------------| | * -X | |Not all files may | | * --sort= |Sorts by file extensions. |have extensions. | | extension | | | |-----------------+----------------------------+--------------------| | * -x |Lists files in multiple | | | * --format= |columns. | | | across | | | +-------------------------------------------------------------------+ ***) See Section 9.16, `Working With Symbolic Links'. 5.4.3. Identifying Types of Directory Listings ---------------------------------------------- Type: file options file . To see the types of all the listings in a directory, type the directory name followed by the asterisk wild card. For example: file /root/* . _[Note]_ The file command does not read compressed files or symbolic links unless the -z option is chosen. _[Note]_ Another way to identify directory listing is to use the ls command with the --color option. See Section 5.4.2, `Reading the Contents of Directories'. 5.4.3.1. The file Command (Identifies File Types) ------------------------------------------------- +-------------------------------------------------------------------+ |Option| Action | Comment | |------+---------------------------------------------+--------------| |-L |Lists the files referenced by symbolic links,|Traces the | | |rather than the links themselves. |original file.| |------+---------------------------------------------+--------------| |-z |Reads compressed files. | | +-------------------------------------------------------------------+ 5.4.4. Finding Your Current Location ------------------------------------ Type pwd . The current or working direction displays on the screen. 5.4.5. Clearing the Screen -------------------------- Type clear . Only the screen display is affected. The command history is still usable. 5.5. Using Command Line Shortcuts --------------------------------- Linux has several shortcuts for entering commands: * Tab completion. * History. * Command pasting. * Aliases. * Abbreviating file paths. * Redirecting inputs and outputs. * Environment variables. 5.5.1. Using Tab Completion --------------------------- By pressing the Tab key, you can have the shell complete the command you are typing. You can also use Tab completion as a guide to commands if you are unsure of which command you want. If only one command completes what you have typed, then the full command is entered automatically. However, you still need to add any options, arguments and files, and press the Enter key. If more than one command completes what you typed, then a list of possible completions displays. You can use the list as a guide to commands. Or you can type another letter, press the Tab key, and display another list of completions. For example, if you type chg then press the Tab key, the command chgrp is entered at the prompt. No other command completes chg . On the other hand, if you type cha , you get the following list: chage chat chattr This time, these three command complete what you have typed. 5.5.2. Using Command History ---------------------------- The .bash_history file in your home directory lists all the commands that you have entered from the command line. You can use this file to re-enter commands that you have already used. This ability is useful if you are doing repetitive work, or if you have made a mistake and want to correct it without re-typing. To move through the command history, use the up arrow key to repeat the previous command in the history. Use the down arrow key to repeat the next command. If you are at the last command, then using the arrow key deletes what you have entered at the command prompt. If you change user accounts, you cannot use the command history of the original account. 5.5.3. Using Text Pasting ------------------------- You can use the mouse to copy and paste text that still displays on the screen. To paste a command: 1. Press the left mouse button, and drag the cursor over the text that you want to paste. The text is highlighted. 2. Release the mouse button. 3. Place the cursor at the spot where you want to paste the text. Then click the middle mouse button. The text is pasted. If you selected an entire line with a command, then the command runs automatically. 5.5.4. Using Command Aliases ---------------------------- An alias is a shorter name for a command. Aliases are especially useful if you want a shortcut for a command with a set of commonly used options. You can: * Create an alias. * Delete an alias. * View existing aliases. 5.5.4.1. Creating an Alias -------------------------- Type alias alias = command option . If the original command includes options and arguments, enter it as a string in single quotation marks For example, if you regularly printed three copies of everything to a printer called progeny, you could create an alias by typing alias p3= 'lpr -3 -P progeny' . Once the alias is created, you can use the alias instead of the original command. For example, to send the file contactlist.txt to the printer, you would type p3 contact.txt . 5.5.4.2. Deleting an Alias -------------------------- Type unalias alias . 5.5.4.3. Viewing Aliases ------------------------ Type alias . A list of aliases displays. 5.5.5. Abbreviating File Path Names ----------------------------------- One of the biggest drawbacks to the command line is that typing file names can be cumbersome. You can reduce the amount of typing by using: * Shortcut symbols. * Relative paths. 5.5.5.1. Using Special Symbols ------------------------------ You can use the following special symbols to reduce the amount of typing you need to do in file names. Special Symbols for the Command Line +-------------------------------------------------------------------+ |Symbol| What it stands for | |------+------------------------------------------------------------| |. |The directory that you are now in (the working directory). | |------+------------------------------------------------------------| |.. |The directory above the one you are in now (the parent | | |directory). | |------+------------------------------------------------------------| |~ |Your home directory. | |------+------------------------------------------------------------| |~user |The home directory for the user account listed. | |------+------------------------------------------------------------| |/ |The root directory | +-------------------------------------------------------------------+ 5.5.5.2. Using Relative Path Names ---------------------------------- A file's complete path name starts with the root directory. For example, the path for the file ToDo in the January folder of the home directory for jgill would be /home/jgill/January/ToDo . A complete path is generally known as the absolute path. Instead of typing the absolute path, you can save time by typing the relative path. A relative path: * Is traced from the current directory, instead of the root directory. * Must be to a sub-directory of the current directory. * Does not start with a forward slash. For example, if you were in the /jgill/January directory, the relative path to ToDo would be January/ToDo . In the home directory, the relative path would be jgill/January/ToDo . 5.5.6. Redirecting Input and Output for Commands ------------------------------------------------ In most cases, you enter a command from the keyboard, and the results and any error messages display on the screen. In other words, the keyboard is the standard input, and the screen is the standard output and standard error. By changing these standards, you can often save time and effort. Uses for redirection include: * Writing the results or errors to a file to keep a permanent record. * Writing the results or errors to the printer, to have a hardcopy record. * Using a file for input, instead of typing the input. * Combining two commands so that they work together. As you learn the command line, you may find other uses for redirection. To redirect a command's input, output, or error, you use a small set of characters known as redirection operators. 5.5.6.1. Redirection Operators ------------------------------ +-------------------------------------------------------------------+ |Characters| What it does | |----------+--------------------------------------------------------| | |Redirects the output to a file or a piece of hardware, | |> |such as the printer. If the file already exists, the | | |older file is automatically overwritten. | |----------+--------------------------------------------------------| | |Redirects the output, but if the output is a file that | | |already exists, adds the output to the end of the | |>> |existing file. | | | | | |Usually, this character is safer to use than >, since it| | |does not overwrite existing files. | |----------+--------------------------------------------------------| |2> |Redirects the error output to a file or a piece of | | |hardware, such as the printer. | |----------+--------------------------------------------------------| |2>&1 |Redirects the error output to a standard output | |----------+--------------------------------------------------------| |< |Redirects the input of the command from a file or | | |device. | +-------------------------------------------------------------------+ The format for using redirection is: command operator target For example, if you wanted to save a copy of a search for the keyword "expenses" in a file, you could type grep 'expenses' January2001> expenses.txt . In this example: * grep is the search command. * expenses is the argument string you are searching for. * January2001 is the file to search. * expenses.txt is the file that the results are printed to. If the file does not exist, it is created. 5.5.7. Using Environment Variables ---------------------------------- Environment variables define different aspects of the way that you interact with the system. Some, like $home (the variable for your home directory) are set for you. However, you can also create your own variables to use in scripts or for saving time when you use the command line. Variables that you create are stored in the .bash_profile file in your home directory. 5.5.7.1. Adding a Variable -------------------------- Type: export variable=value . For example, if you wanted to create the variable $ income to refer to the directory /home/jsmith/Expenses, you would type export $ income /home/jsmith/Expenses . 5.5.7.2. Using a Variable ------------------------- To use a variable, type its name with a dollar sign in front of it where you would ordinarily type the value. For example, if you create the variable $ income to refer to the directory /home/jsmith/ Expenses, you can view the file /Expenses/january, by typing less $ income /January . 5.6. Finding Help for Commands ------------------------------ This manual lists only a few basic commands. A thorough guide to commands would require well over 1000 pages. To find more information about Linux commands, you can use either the man or texinfo help systems. For quick help, you can use whatis . 5.6.1. Using man Pages ---------------------- Man ("manual") pages are the traditional help files of unix and Linux. Man pages exist for both commands and configuration files. Man pages are summaries rather than how-tos. In addition, many are no longer being updated. For this reason, man pages are often hard to use. To open a man page, type man command or man file . 5.6.1.1. Searching man Pages ---------------------------- You can search man pages for all entries on a particular topic by typing: apropos keyword . The one drawback to this command is that common topics can list an overwhelming number of entries. 5.6.2. Using Info Documents --------------------------- Info documents are gnu help. Usually, info files are more current and more thorough than man pages. Most people find them easier to use. To open an info document, type command --help . 5.6.3. Using whatis ------------------- The whatis command gives a short summary of the topic entered. Type: whatis keyword . ------------------------------------------------------------------------------- 6. Getting to Know the Desktop ------------------------------ Most operating systems offer two ways to interact with your computer: a desktop and a command line. In popular operating systems, the command line is usually de-emphasized. Progeny suggests that you take a mixed approach to Linux. For routine work, the desktop is convenient and easy to learn. However, consider using the command line for complex work. The Linux command line takes longer to learn than a graphical interface, but in many circumstances it is easier and quicker to use. The default graphical interface for Debian is gnome (gnu Network Object Model Environment). This chapter describes the features of gnome. However, you may also install kde (The K Desktop Environment) from the Extras CD. The two desktops have similar features and functionality. Most modern computer users (at least those installing Linux) know the basics of using a desktop. For this reason, this chapter is written more to point out features than to explain them. Its main focuses are: * Where to find features that you already know. * What features new Linux users may not know. For more detail, see the gnome on-line help. 6.1. Understanding Graphical Interfaces --------------------------------------- Unlike other popular operating systems, Linux lets you customize all the parts of your graphical interface. Linux uses the X Window System (also called "X," but "X Windows"is considered insulting by many) to display graphics. The X Window System uses three parts to provide a graphical interface: * The X server: The program that provides basic graphical support. The default X server for most versions of Linux is XFree86. * The window manager: A program that controls the placement and movement of windows on the interface. A few window managers have so many features that they are almost desktops in their own right. Debian uses Sawfish, currently the most popular gnome window manager. * The desktop: A program that includes a set of features that works with the windows manager to provide a complete graphical environment. You can choose each of these parts separately. Only a few Linux users change the X server, but many change the window manager and desktop regularly. Some users prefer a window manager, but no desktop. In addition, you can also change the look of a window manager or desktop by changing themes, the default colors and designs. Entire web sites are devoted to themes, notably www.themes.org. 6.2. Getting to Know the Parts of the Default Desktop ----------------------------------------------------- The gnome desktop is similar to desktops on other operating systems. However, take the time to find where the parts of the desktop are. Some features may not be in the position you expect, while. others can be reached in more than one way. You can add many features to the gnome desktop. However, the default desktop consists of: * The Menus. * The Panel. * The File Manager. * Workspaces. 6.2.1. The Menus ---------------- You can select a program to run by opening one of two menus: * The gnome main menu at the top left of the screen. img/Desktop-1.png * The Programs item in the pop-up menu for the work space. _[Note]_ To have a menu or sub-menu stay open, double-click on the top part above the dotted line. The menu becomes a regular window. This feature is sometimes called a "tear-off menu." 6.2.2. The Panel ---------------- The panel runs across the top of the desktop. It contains the menu, icons (or launchers), and commonly used tools. The default panel contains: * The gnome menu on the left. img/Desktop-3.png * The gnome Help icon for on-line help. img/Desktop-4.png * The browser icon for your internet connection. img/Desktop-5.png * The gnome Control Center for configuring the desktop. See Chapter 7, `Making the Desktop Your Own'. img/Desktop-6.png * The Add/Remove Software icon. img/Desktop-7.png * The terminal icon for opening a command line. img/Desktop-8.png * The gnome Desktop Guide, or pager, beside the task list. The pager opens a list of currently running processes and shows where windows are open on the work space. Select the pager to open or close it. img/Desktop-9.png * The status dock for showing the windows on each workspace. img/Desktop-10.png * The task list for displaying minimized windows on the right. img/Desktop-11.png Notice, too, the arrows on each side of the panel. Selecting an arrow slides the panel shut to give more room in the workspace. Selecting an arrow again slides the panel back into position. _[Warning]_ You can add other panels, or other items to the default panel as you need. Useful items include: * Drawers: Pull-down menus of icons (launchers), which group icons and save space. * Applets: Various small tools and monitors, including one for laptop batteries. * Clocks: Several different styles time-pieces. See Chapter 7, `Making the Desktop Your Own'. 6.2.3. The File Manager ----------------------- img/Desktop-13.png The default file manager is the gnome Midnight Commander. You can start it by: * Selecting Program > File Manager from the main menu. * Selecting New Window from the pop-up menu that starts when you right-click on the desktop. * Typing gmc at a command line. * Selecting the Home directory icon. 6.2.4. The Workspaces --------------------- Using gnome , you can create multiple or virtual desktops called workspaces. Each workspace can have columns or rows that help to position windows. See Chapter 7, `Making the Desktop Your Own'. Multiple workspaces require more memory to run. However, they can be useful if: * You have a small monitor. * You want a different set of launchers for different tasks. * You work with many windows open, so that you have a hard time keeping track of them. * You want to keep a window open for use, but do not want it always taking up room on your main workspace. If necessary, you can turn off multiple workspaces to save memory. 6.2.4.1. Moving Between Workspaces ---------------------------------- To move between workspaces, do one of the following: * Select a workspace on the pager. img/Desktop-14.png or * Middle-click on the current workspace and select another one. img/Desktop-15.png From the Workspace sub-menu, you can: * Select a workspace. * Select the next or previous workspace. * Customize how the workspace functions. 6.3. Finding Your Way Around the Desktop ---------------------------------------- The gnome desktop works in much the same way as other desktops: * You start programs by left-clicking on an icon or a menu item, * You set properties by right-clicking on a desktop element. * Windows are minimized or maximized using either their menus or the icons in the upper right corner. * Windows become active (or come into focus, as gnome puts it) by clicking with the mouse on any part of them. * Minimized (also called "iconified") windows display in the task list. * The Trash can stores deleted files in case you want to restore them. img/Desktop-16.png However, if you are new to Linux, some of its functions may be unfamiliar to you. Instead of repeating what you already know, this section concentrates on these unfamiliar functions. 6.3.1. Using A Three Button Mouse --------------------------------- Like other Linux desktops, gnome is designed for a three button mouse. If your mouse only has two buttons, then you can choose during the install to emulate a three-button mouse by pressing both buttons at the same time is the same as using the middle mouse button. In most circumstances: * The left mouse button selects an icon or menu item to start. * The right mouse button displays a pop-up menu. Often, this menu is used for setting the properties of a desktop element, such as an icon. * The middle button is used for other functions, if they exist. To see other functions for the mouse buttons, roll the mouse over a part of the desktop to see a pop-up list. img/Desktop-17.png 6.3.2. Using the Desktop Pop-Up Menus ------------------------------------- The panel, the menus, launchers, and the work space all have pop-up menus, However, the work space has two pop-up menus: * Clicking with the right mouse button on a blank space on the desktop opens the desktop pop-up menu. From this menu, you can create launchers (icons), rescan the desktop to update it, and set other desktop properties. img/Desktop-18.png * Clicking with the middle mouse button on a blank space opens a general pop-up menu. From this menu, you can see a list of opened tasks, navigate between virtual desktops, select a program to run, or customize the desktop. img/Desktop-19.png 6.3.3. Using Keyboard Shortcuts ------------------------------- To save time, you can add keyboard shortcuts for basic desktop tasks by selecting Sawfish Window Manager, then Shortcuts from the Control Center. Only a few shortcuts are defined by default. However, you can add a long list of keyboard shortcuts, or edit existing ones. See Chapter 7, `Making the Desktop Your Own'. 6.3.4. Manipulating Windows --------------------------- img/Desktop-20.png An open window in the default Debian theme has : * An "X" icon in the upper right corner to close the window * An up arrow icon in the upper left corner to maximize the window. * A down arrow icon in the upper left corner to minimize the windows. * A menu that you can open by right clicking on the title bar. From the menu, you can minimize, maximize, or close the window, and manipulate it in other ways as well. In addition, a window appears in the task list and the pager on the panel if it is on the current work space. However, the window menu and the pop-up menu in the task list also let you manipulate an open window in ways that may be unfamiliar to you. Ways to Manipulate Windows from the Menu +-------------------------------------------------------------------+ | To | Select from the window menu | |-----------------------+-------------------------------------------| | |Toggle > Focusable | |Allow a window to be | | |active when cycling |If the window is already focusable, then | |through windows |selecting this item again sets it to | | |Ignored. | |-----------------------+-------------------------------------------| | |Stacking | |Change a window's | | |position in a stack of |You can position the window behind or above| |windows |other open windows, depending on your | | |choice from the sub-menu. | |-----------------------+-------------------------------------------| | |Close. | | | | |Close a window |Any process that was displayed in the | | |window still runs. You can also close a | | |window from the pop-up menu of the task | | |list. | |-----------------------+-------------------------------------------| | |Toggle > Shaded | | | | | |If the window is already shaded, this menu | | |item restores the window. | |Display only the title | | |bar |You can also: | | | | | | * Left-click twice on the title bar. | | | * Selected Shaded from the pop-up menu on| | | the task list. | |-----------------------+-------------------------------------------| | |Toggle > Ignored | |Ignore window when | | |cycling through windows|If the window is already Ignored, selecting| | |this menu item again sets it to Focusable. | |-----------------------+-------------------------------------------| | |Maximize. | |Maximize a window | | | |You can also chose Restore from the pop-up | | |menu of the task list. | |-----------------------+-------------------------------------------| | |Minimize. | |Minimize a window | | | |You can also choose iconify from the pop-up| | |menu of the task list. | |-----------------------+-------------------------------------------| | |Send window to | |Move or copy a window | | |in a workspace |You can position the window or a copy of it| | |in a workspace, or in a cell of its current| | |workspace. | |-----------------------+-------------------------------------------| |Position the window in |Toggle > Sticky | |the same place on every| | |work space |If a window is already sticky, this menu | | |item makes it unsticky. | +-------------------------------------------------------------------+ 6.3.5. Reading Icon Properties ------------------------------ You can add three main types of icons to the desktop: * Directory: A folder on the desktop. img/Desktop-21.png * url Link: A web page link. img/Desktop-22.png * Application: An icon to start a program. This icon is also the default. img/Desktop-23.png No matter where they are - the work space, the menu, or the panel - all icons have the same properties. You can read an icon's properties by selecting Properties from its pop-up menu to open the Properties window. img/Desktop-24.png The Properties window includes three tabs: * Statistics: The file's path, name, and size, as well as the dates on which the file was created, last modified, and last accessed. Using the Properties window, you can change the file name. * Options: Sets the icon to use for the file. If you do not want to use the default icon for the file type, you can select a custom icon by clicking on the icon pane. * Permissions: Sets who owns the file, who can use the file, and how they can use it. You can only adjust these settings if you own the file or if you are logged in as root user. See Section 9.19, `Changing Permissions'. _[Note]_ On the desktop, you can also select Directory or url Link by right-clicking on the work space and making a selection from the New menu. Icon Properties Tabs +------------------------------------------------------------------+ | Tab | Editable Information | |-----------+------------------------------------------------------| | |Basic information about the icon. | |Statistics | | | |You can change the icon text by editing the File Name.| |-----------+------------------------------------------------------| | |The icon image. | |Options | | | |Select the icon to change the icon. | |-----------+------------------------------------------------------| | |Lists information about: | | | | |Permissions| * Who can use the file. | | (***) | * How the file can be used. | | | * Who owns the file. | +------------------------------------------------------------------+ (***) See Section 9.19, `Changing Permissions'. 6.3.6. Opening A Command Line ----------------------------- Early Linux development centered on the command line, and the graphical desktops are still being improved. As a result, you will find that your need for a command line increases as you gain in expertise. You can open a command line in a number of ways: * Select the gnome terminal icon from the panel. img/Desktop-25.png * Select Alt-F2 or Run from the main menu to enter a single command, then close the command line. img/Desktop-26.png * From the menu, select Programs > System > Eterm, gnome Terminal or Regular xt erm. A command line window opens. img/Desktop-27.png * Right-click on the work space. Then select New > Terminal from the pop-up menu. ------------------------------------------------------------------------------- 7. Making the Desktop Your Own ------------------------------ gnome is famous for being highly customizable. You can customize almost every feature globally or individually. For example, you can customize all the panels on the desktop, or just one. Customization controls are scattered throughout the desktop. However, most of them are available from: * The gnome Control Center icon on the panel. * The Settings menu. * Pop-up menus for different parts of the desktop. This chapter mentions only the most common customization features. It directs you to where you can customize: * Display settings. * General settings for the gnome desktop and the Sawfish window manager. * Program launchers (icons). * General desktop behavior, including confirmation dialogs. * The panel. * The menu. * Individual windows. * The program launched when a type of file is selected (mime Type ) For complete information about the features that you can customize, see the on-line gnome help. If a feature are unfamiliar to you, whenever possible, many customization settings let you use the Try and Revert buttons. Use the Try button to test the new settings, then the Revert button to reverse the changes. Some changes may have no effect until you reboot or restart the X server. img/Desktop_cu.png If you change window managers, some of your configuration options may change. This chapter assumes that you are working with a default desktop using the Sawfish window manager. 7.1. Configuring Monitor Color Display -------------------------------------- If you are doing graphics work, or need to adjust your monitor's display, select Settings > Imlib Configuration Options from the main menu. img/Desktop_cu.png You can edit: * Color palettes: The colors used for the desktop display. * Rendering: The technical aspects of displaying images, such as dithering and the cache size reserved by the desktop. * Display: Forcing selections if they are not used by your hardware. Otherwise, this tab is blank. * rgb Color correction: The calibration of basic colors for the display: Red, Green and Blue. You can save configurations for the current user or, if you are logged in as root, for the entire system. img/Desktop_cu.png Changing these settings can worsen your display if you do not know what you are doing. Make changes carefully, and record original settings so that you can restore them. 7.2. Customizing General Settings for GNOME and Sawfish ------------------------------------------------------- You can customize settings for the behavior of gnome , the Sawfish window manager, and your themes from the Control Center. To customize general settings: * 1 Do one of the following: * Select the Control Center icon from the panel. * From the menu, select Settings > gnome Control Center. * Middle-click on the workspace area to display a pop-up window, then select an item from the Customize menu. In all cases, the Control Center window opens. img/Desktop_cu.png * 2 Select the item to customize in the list in the left pane. Use the scroll bar to move up and down the list. Click on a top level item to see sub-items. img/Desktop_cu.png img/Desktop_cu.png When an item is selected, you can open the Help topic for it from the menu bar of the window. Context help appears at the bottom of the window. * 3 Make your changes using the controls in the right pane of the Control Center window. * 4 Select the Try button to test your changes. If you change your mind, select the Revert button to return to the previous settings. img/Desktop_cu.png * 5 Select the ok button to save any changes, or the Cancel button to discard them. Setting Global Options from the Control Center +---------------------------------------------------------------+ | Item to Customize |Menu Item in the Control | | | Center | |-------------------------------------+-------------------------| |Autostart programs |Session > Startup | | |Programs | |-------------------------------------+-------------------------| |Dialog windows |User Interface > Dialogs | |-------------------------------------+-------------------------| |Keyboard |Peripherals > Keyboard | |-------------------------------------+-------------------------| |Keyboard shortcuts |Sawfish window manager > | | |Shortcuts | |-------------------------------------+-------------------------| |mime Types |Document Handler > mime | | |Types | |-------------------------------------+-------------------------| |Mouse |Peripherals > Mouse | |-------------------------------------+-------------------------| |Panel |Desktop > Panel | |-------------------------------------+-------------------------| |Power management use |Desktop > Screensaver | |-------------------------------------+-------------------------| |Screensaver |Desktop > Screensaver | |-------------------------------------+-------------------------| |Sound, enabling support |Sawfish window manager > | | |Sound | |-------------------------------------+-------------------------| |Sounds |Multimedia > Sound | |-------------------------------------+-------------------------| |Text editor |Document Handler > | | |Default Editor | |-------------------------------------+-------------------------| |Themes (colors, window frames, and |Desktop > Themes | |other desktop appearances) | | |-------------------------------------+-------------------------| |Virtual desktops |Sawfish window manager > | | |Workspaces | |-------------------------------------+-------------------------| |Wallpaper for desktop |Desktop > Background | |-------------------------------------+-------------------------| |Web page display |Document Handler > url | | |Handlers | |-------------------------------------+-------------------------| |Window managers, installing and |Desktop > Window Manager | |selecting | | |-------------------------------------+-------------------------| |Windows, behavior and look |Sawfish window manager | | |(various sub-menus) | +---------------------------------------------------------------+ 7.3. Customizing Program Launchers ---------------------------------- A program launcher is a link to a file represented by an icon. Launchers can be added, deleted, or repositioned. You can also restore the default launchers that appear the first time that you start the system. In most cases, the process for customizing launchers is the same, regardless of whether they are on the panel, a menu, or the desktop work space. 7.3.1. Adding Launchers ----------------------- Adding a program launcher is the same process if you are adding it to the desktop workspace, the panel, or a menu. To add an icon for a launcher: * 1 Right click to display the pop-up menu for the part of the desktop: * On the desktop, select New > Launcher. * On the panel, select Panel > Add to Panel > Launcher. * On the main menus, select Add New Item to this menu (available only to the root user. In each case, the Desktop entry properties window opens. img/Desktop_cu.png * 2 Enter the information on the Basics tab. All except Comment are required fields: * Name: The text that displays below the icon. * Comment: Notes about the program that appears in tool tips. Not a required field. * Command: The file to which the launcher links. * Type: The type of launcher. Choices are Directory and Application. * 3 Select the icon box and choose an icon. img/Desktop_cu.png By default, custom icons do not display in a directory on the desktop. To use custom icons, select from the desktop pop-up menu Desktop Properties > Caching > Allow customization of icons in icon view. * 4 If the program is not designed to run in the X Window System, select the Run in terminal box. img/Desktop_cu.png You do not need to set anything on the Advanced tab for the launcher to work. Advanced tab settings matter mainly to makers of distributions or to system administrators working with multiple languages. 7.3.2. Deleting Launchers ------------------------- Deleting an program launcher is the same process, regardless of whether you are adding it to the desktop workspace, the panel, or a menu. To delete an icon for a launcher: * 1 Right click to display the pop-up menu for the launcher: * On the desktop, do one of the following: * Select Delete. The launcher is permanently removed. * Select Move to Trash. The launcher is removed, but you may restore it later. * On the panel, select Remove from panel. * On the main menus, select Remove this item. In each case, a confirmation window opens. img/Desktop_cu.png * 2 Select the Yes button to continue deleting. img/Desktop_cu.png Deleting a launcher does not delete the file or directory associated with it. Launchers are links. They point to the files with which they are associated, but otherwise have no direct connection with them. 7.3.3. Recreating Default Launchers ----------------------------------- The desktop installs with a number of default icons. To restore these defaults, right-click on the workspace and select Recreate Default Icons. 7.3.4. Positioning Desktop Launchers Automatically -------------------------------------------------- * 1 Right-click on the workspace and select Desktop Properties. The Desktop Properties window opens. img/Desktop_cu.png * 2 Select the Desktop tab. The Icon position pane shows the automatic placement of icons. Icons can be arranged in vertical or horizontal rows. * 3 To change the automatic positioning, click on the icon in the diagram that will be closest to the corner of the side of the desktop that the icons will be aligned to. This icon is always one at the end of a row in the diagram. However, it may be in the first or second row in the pane. Using this method, you can align icons to any side of the desktop. img/Desktop_cu.png * 4 Select Automatic icon placement or Snap icons to grid if you want either of these features. These features let you tidy the icons, but limit where you can place them. * 5 Select the Apply button, then the ok button. 7.4. Customizing General Desktop Behavior ----------------------------------------- * 1 From the desktop pop-up menu, select Desktop Properties. The Desktop Properties window opens. img/Desktop_cu.png * 2 Edit the desktop behaviors. You can edit: * File display: Which files display, and how. * Confirmations: Which warnings to display when you are using files. * vfs (Virtual File system): Settings that affect how you manipulate remote files, especially on ftp sites. * Caching: How the desktop uses memory. This tab includes Allows customization of icons in icon view, which allows customs icons in sub-directories. * Desktop: How icons are positioned on the desktop. See Section 7.3.4, `Positioning Desktop Launchers Automatically'. 7.5. Customizing the Panel -------------------------- Panels may contain icons, draws, applets, and other features, such as the task bar. Right-clicking on the panel selects the pop-up menu. This menu includes items for the nearest panel item as well as for the panel. img/Desktop_cu.png From the pop-up menu, you can: * Remove from panel: Delete the closest item from the panel. * Move: Change the position of the closest item on the panel. The mouse cursor changes to a four way arrow, and the icon slides along the panel following the cursor's movements. Left-click on the desktop when the panel is repositioned. * Properties: The icon's settings. These icons are the same as those for an icon on the desktop or the main menus. See Section 7.3, `Customizing Program Launchers'. * Global Preferences: Sets the default for all panel settings. in the gnome Control Center. * Panel: Options for customizing the panel. img/Desktop_cu.png The panel options are: * Add to panel: Items that can be added to the panel, including applets, drawers, launchers, and icons for such desktop functions as Logout, Lock and Run. * Create panel: Add a new panel. Several types are available. * Remove this panel: Delete the panel from the desktop * Properties: How the panel opens and behaves. Options include the panel type, the hiding policy, the buttons to hide, the buttons to hide, the panel's size, and background. img/Desktop_cu.png 7.5.1. Adding Applets to the Panel ---------------------------------- Applets are small gnome programs that can be added to the panel. They range from the serious to the frivolous. You can also add a launcher to the panel from the main menu. From the menu item's pop-up menu, select Add this launcher to panel, or select it from the Applets sub-menu in the gnome main menu. When the applet is selected, it displays on the panel. 7.6. Customizing the Menu ------------------------- * 1 Log in as root user. * 2 From the menu bar, select Settings > Menu editor. The Menu editor opens. img/Desktop_cu.png img/Desktop_cu.png If you want to add a launcher to a menu, you can also select Add new item to this menu on the pop-up menu. if you are logged in as the root user. * 3 Enter the information for the icon. See Section 7.3.1, `Adding Launchers'. * 4 If you highlight an item in the tree in the left pane, you can also: * Add a new sub-menu. * Add a new menu item. * Delete an item or menu. * Move an item up in a menu. * Move an item down in a menu. * Sort a sub-menu in alphabetical order. 7.7. Customizing Individual Windows ----------------------------------- * 1 Right-click on the title bar to open the window menu. * 2 Select from the following items: * Frame type: Sets which sides have a border or if a title bar displays. * Frame style: Apply an installed theme only to the open window. * History: Set whether the window's position, size, or attributes (frame type and frame style) are remembered. * 3 Select History > Remember attributes to keep the new settings the next time you open the window. 7.8. Starting Files With Programs: Setting MIME Types ----------------------------------------------------- You can configure your desktop so that you can start a program by clicking on a file associated with it. This association is known as a mime Type. Setting up a mime type requires two steps. First, you must add the mime type. Then you must edit it. 7.8.1. Adding MIME Types ------------------------ * 1 Do one of the following: * From the Control Center, select mime types. * From the menu, select Settings > Document Handlers > mime types. * From the menu of the file manager, select Commands > Edit mime types. In all cases, the mime type window of the Control Center opens. img/Desktop_cu.png * 2 Select the Add button. The Add new Mime Type window opens. img/Desktop_cu.png * 3 Enter the mime Type. All types have a two-part name, with a forward slash separating the parts. The first part is the general category of file. Pre-defined general categories include application, audio, font, image, text, video and x-url. The second part is the specific file type. For example, image/ tiff is the type for the tiff graphic format. * 4 Enter the extensions normally associated with the type. Separate each extension by a comma. * 5 If you choose, add two regular expressions associated with the type. Select the ok button. The type now opens in the alphabetical list of mime types. See Section 5.3.6, `Using Metacharacters or Wild Cards'. Now, you must edit the type to use it. 7.8.2. Editing a MIME Type -------------------------- * 1 Select a type from the mime Type panel in the Control Center. * 2 Select the Edit button. The setting window for the type opens. img/Desktop_cu.png * 3 Click on the icon box to select an icon for all files of the type. * 4 Select the programs in which to open, view, and edit the type. For each field, an entry must include a program, followed by %f . If necessary, you can use the Browse button to select a program. * 5 Select the ok button. The mime Type is now ready for use. 7.8.3. Deleting a MIME Type --------------------------- * 1 Select a type from the mime Type panel in the Control Center. * 2 Select the Delete button. img/Desktop_cu.png No confirmation is asked. The type is deleted as soon as you select the Delete button. img/Desktop_cu.png Pre-defined mime types cannot be deleted. ------------------------------------------------------------------------------- 8. Searching for Files and Text ------------------------------- Debian includes many tools for locating files. This chapter describes the tools for: * Searching for files and text. * Viewing files and text. * Comparing files. From the desktop, you can search with most common options and view files. However, you need to use the command line for: * Advanced searching, especially for text. * Selected viewing of parts of files. * Comparing files. First, however, you need to know something about how the Linux directory structure. 8.1. Understanding Linux Files ------------------------------ Linux treats everything on your hard drives and disks as a file. In practice, however, Linux uses three main types of object to store information: * Files: Containers of information. Files that start a program are called executables or binaries. Binaries are often stored in a / bin directory (short for binary), or in an /sbin directory (short for system binaries). * Links: Pointers to another file. Links are useful for saving space when you need a file in more than one place. * Directories: Collections of files, links and/or other directories. A directory within a directory is called a sub-directory. _[Note]_ Strictly speaking, links and directories are specialized files. You can copy them or change their permissions exactly as you would with any other file. 8.1.1. Understanding Linux Names -------------------------------- The names of Linux files, links and directories follow certain rules: * Their names cannot be longer than 256 characters, and the complete path cannot be longer than 4096. * They are case sensitive, distinguishing between lower and upper case letters. Jsmith , jsmith , and JSMITH could all be files in the same directory. * They can use any letter or number. However, to avoid potential problems, do not include characters used metacharacters, or for some other purpose, such as the hash mark( # ) that indicates a comment. * They use a forward slash ( / ) at the start to indicate a directory. Windows, by contrast, uses a backward slash ( ). _[Note]_ A forward slash by itself is shorthand for the root directory. You can use this shorthand on both the command line and the desktop. 8.1.2. Understanding File Extensions in Linux --------------------------------------------- Extensions are file name suffixes that start with a period. Usually, they are two or three letters long. Linux can read many file extensions used by other platforms, such as * jpg for a graphic file, or .html for a web file. It can also use them for mime types. However, Linux does not always use extensions to identify file types. Often, the directory where a file is placed is a better indication of what type of file it is. See Section 8.2.1, `Using Directories to Find Files'. However, Linux does use a few regular extensions. Extensions Used in Linux +-------------------------------------------------------------------+ |Extension| File Type | |---------+---------------------------------------------------------| |.bz2 |A file compressed using bzip2 . | |---------+---------------------------------------------------------| |.c |A file written in the C programming language. | |---------+---------------------------------------------------------| |.conf |A configuration file. In some cases, "conf" is used in a | | |file name, but not as an extension. | |---------+---------------------------------------------------------| |.deb |A Debian package for installing software. | |---------+---------------------------------------------------------| |.lock |A lock file that prevents the use of another file. | |---------+---------------------------------------------------------| | |A Red Hat package file. Although you can sometimes use | |.rpm |.rpm s in Debian, doing so can have unexpected | | |results and is not generally recommended. You can also | | |convert packages using the alien utility . | |---------+---------------------------------------------------------| |.so |A shared object (a library or module). | |---------+---------------------------------------------------------| |.src |A source code file. Written in plain text, a source file | | |must be compiled to be used. | |---------+---------------------------------------------------------| |.tar |A single file made of a collection of files archived | | |using the tar command. | |---------+---------------------------------------------------------| | |A single file made of a collection of files archived | |.tar.gz |using the tar command, then compressed used the gzip | | |command. | |---------+---------------------------------------------------------| | |A single file made of a collection of files archived | |.tgz |using the tar command, then compressed used the gzip | | |command. | |---------+---------------------------------------------------------| |.gz |A file compressed using the gzip command. | +-------------------------------------------------------------------+ 8.2. Introducing the Linux Directory Structure ---------------------------------------------- Linux's directory structure is based on unix 's. Like other operating systems, Linux arranges directories in a tree-like hierarchy, in which any directory may contain other-directories or files. However, Linux's directory structure has several differences from those in other popular operating systems: * Linux systems are deeper. That is, Linux tends to have more sub-directories. * Linux systems all start with the root directory. The root directory is denoted by a forward slash (/), All other directories, even those on other partitions, are sub-directories of the root directory. _[Note]_ Do not confuse the root directory (/) with the root user, the root user's home directory(/root), or the root partition (the hard drive partition which the root directory is on). * You cannot always tell from a directory's position whether it is on a separate partition from the root directory. For example, the /usr directory could be on the same partition as the root directory. It could just as easily be on another hard drive altogether. _[Note]_ To see which directory a partition is mounted on, view /etc/fstab in a text editor. On each line, the first column is the partition, and the second column is its mount point. The advantage of this system is that you can position a partition almost anywhere on the system. 8.2.1. Using Directories to Find Files -------------------------------------- Linux directories are consistent in their contents. The result is that a file's directory is usually a clue to what type of file it is. For example, if you are looking for an executable program, it is probably in a /bin (short for "binary)" if it is a general or third party application or /usr/bin ("system binary") if it is a program that is an essential part of the operating system, or a maintenance utility. The following table shows the directories where certain types of files are likely to be located. This structure is very similar in all Linux distributions, although small differences exist. The Linux Directory Structure +-------------------------------------------------------------------+ |Directory | What's In It | |----------+--------------------------------------------------------| | |The root directory. Contains all other files and | | |directories. | |/ | | | |The complete or absolute path to other directories | | |starts from the root directory. | |----------+--------------------------------------------------------| | |Binary or executable files that can be used by both the | | |root user and normal user. | |/bin | | | |Look in other /bin directories for other executable | | |files. | |----------+--------------------------------------------------------| | |Files needed to start Linux, including the kernel. Most | |/boot |files in /boot generally cannot be configured using a | | |text editor. | |----------+--------------------------------------------------------| | |The usual mount point for the cd drive. If the system | |/cdrom |has a second cd drive, its mount point is usually / | | |cdrom2. | |----------+--------------------------------------------------------| | |Definitions for drives, partitions, and other devices. /| |/dev |dev also includes the makedev tool to create new | | |devices. | |----------+--------------------------------------------------------| | |Most of the system's configuration files. Including /etc| |/etc |/X11 for the X Window system and /etc/opt for third | | |party applications. | |----------+--------------------------------------------------------| | |The usual mount point for the first floppy drive. If the| |/floppy |system has a second floppy drive, its mount point is | | |usually /floppy2. | |----------+--------------------------------------------------------| | |Home directories for all regular users. The root user's | | |home directory is /root. | | | | | |Subdirectories of /home are named for the user name of | |/home |each account. | | | | | |Personal configuration files that start with a . (a | | |period) are in each home directory. These configuration | | |files are not displayed by many commands unless you | | |select an option to display them. | |----------+--------------------------------------------------------| |/initrd |Files for Linux's ram disk. | |----------+--------------------------------------------------------| | |Programming libraries needed to start the system and run| | |basic commands. | |/lib | | | |Look for other lib directories scattered throughout the | | |system. | |----------+--------------------------------------------------------| |/ |Files recovered when a check is run on a damaged file | |lost+found|system. | |----------+--------------------------------------------------------| | |A folder for other mount points, usually other | | |partitions not used directly by Linux, including those | | |for other operating systems. | |/mnt | | | |On some Linux distributions, /mnt includes /cdrom and / | | |floppy directories, but this is not standard Debian | | |practice. | |----------+--------------------------------------------------------| | |Process and system information. | | | | |/proc |Be extremely careful of changes to /proc while you are | | |logged in as the root user, because they can easily | | |bring the system down. | |----------+--------------------------------------------------------| | |The home directory for the root user. | |/root | | | |Home directories for other users are generally | | |sub-directories of /home. | |----------+--------------------------------------------------------| | |Executable files that are used only by the root user, | |/sbin |including general management and networking commands. | | | | | |Other executables are in /bin. | |----------+--------------------------------------------------------| | |Programs and system files that are shared by all users. | | | | |/usr |A common location for free software or for third-party | | |software. Important sub-directories include /usr/local | | |and /usr/share. | |----------+--------------------------------------------------------| |/var |Data files whose content changes frequently, such as | | |caches, spools, log files and user mailbox files. | |----------+--------------------------------------------------------| |/var/lock |Lock files that prevent another user from opening or | | |saving particular files. | |----------+--------------------------------------------------------| |/var/log |Log files for different programs. These logs are | | |invaluable for solving problems. | +-------------------------------------------------------------------+ 8.2.2. Understanding Absolute and Relative File Paths ----------------------------------------------------- A file path is a list of the directories above the file, ending with the file name. Linux uses two types of paths: absolute and relative paths: * An absolute path always starts with the root directory. It includes all directories and sub-directories above the file. For example, the absolute path to a file in a sub-directory in a user's home directory might be /home/kchong/ToDo/january.txt . This path can take a long time to type, but is completely clear. * A relative path starts in your present working directory. For example, if you were in the /home/kchong directory, the relative path to a file in a sub-directory might be ToDo/ january.tx t. You can display your present working directory by using the pwd ("present working directory") command. In addition, ./ indicates the present working directory and the path to your home directory. 8.3. Searching from the Desktop ------------------------------- You can search for files or text from the desktop using: * The gnome search tool (gsearchtool): A graphical interface for the find and locate commands that includes the most common options for the commands. * The gnome Midnight Commander: Useful for simple searches. If you want a more elaborate search, See Section 8.4, `Searching From the Command Line'. 8.3.1. Using the find Command From the Desktop ---------------------------------------------- The find command is a tool for locating files. It can also do basic searches using strings and regular expressions. * At a command line, type: gsearchtool. The gnome search tool opens, with the Full find (find) tab selected. img/Finding-2.png * Enter the directory in which to start the search. You can type the directory, choose it from the drop-down list of recent choices, or use the browse button to make a selection. * Choose the options to use from the drop-down list beside the Add button. These options correspond to the most common ones in the find command. img/Finding-3.png The default choice is the File name. Select the option. When it displays, select the Add button to display the option in the window. You can disable an option temporarily by de-selecting the Enable button beside it or remove it from the display by selecting the Remove button. * When you have chosen the options to use, enter any information needed to use each option. * If you want, select the Show Command button to see what the command would look like at the command line. * Select the Start button to search. Search results display in a separate window. _[Note]_ This window stays open so that the results of other searches can be added to it. img/Finding-4.png * From the Search Results window, you can: * Select a result to open the file in gedit . * Clear the window of results. * Save the results to a file. 8.3.2. Using the locate Command From the Desktop ------------------------------------------------ The locate command searches a database of file names and prints results that match the string that is entered for a command. * At a command line, type: gsearchtool. The gnome search tool opens, with the Full find (find) tab selected. * Select the Quick Find (locate tab). img/Finding-5.png * Enter a string, with or without metacharacters. * Select the Start button to search. Search results display in a separate window. This window stays open so that the results of other searches can be added to it. img/Finding-6.png * From the Search Results window, you can: * Select a result to open the file in gedit . * Clear the window of results. * Save the results to a file. 8.3.3. Searching From the GNOME Midnight Commander -------------------------------------------------- * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. In both cases, the gnome Midnight Commander opens, displaying your home directory. img/Finding-7.png * From the gnome Midnight Commander menu, select Commands > Find File. The Find File window displays. img/Finding-8.png * In the Start at field, type the directory from which to start the search. The default is the current directory. * In the Filename field, type the file name to search for. You can use wild cards. * In the Content field, type a text string to search for. This field is optional. * Start the search. Select the ok button. The search results display in a separate window. They may take some time to display. img/Finding-9.png _[Note]_ You can only search for results in directories in which you have read permission. Using the buttons in the results window, you can: * Select a result and change to its directory. * Start a new search. * Close the search tool. 8.4. Searching From the Command Line ------------------------------------ The Linux command line includes many tools for locating files or information in them. These tools can be divided into two main categories: * File-Locating Tool: find , locate . * Text-Locating Tools: grep , egrep , and fgrep . Some of these commands, including grep , egrep and find can use variable text patterns (metacharacters or regular expressions) to extend their search abilities. See Section 5.3.6, `Using Metacharacters or Wild Cards'. 8.4.1. Searching for Files: Using the find Command -------------------------------------------------- The basic tool for finding files is find . The find command is useful for locating files by their attributes or by their position in the directory tree. You can search by a wide variety of criteria, including: * When the file was last accessed. * When the file was last changed. * The file's owner or the owner's group. * A text string, including one that uses metacharacters. See Section 5.3.6, `Using Metacharacters or Wild Cards'. * The type of file. * The file's age relative to another file. * The file's permissions. Usually, find starts with the current directory, then searches its sub-directories. However, you can specify the starting directory. You can also specify how many levels of sub-directories down to search. Type: find directory options argument . The find Command +-------------------------------------------------------------------+ | Option | Action | Comments | |-----------+----------------------+--------------------------------| | | |Arguments include: | | | | | | |Searches by minutes | * +number: More than the given| |-amin |since files were | number of minutes ago. | |argument |accessed. | * -number: Less than the given| | | | number of minutes ago. | | | | * number: Exactly the given | | | | number of minutes ago. | |-----------+----------------------+--------------------------------| | | |Arguments are: | | | | | | | | * +number: More than the given| |-atime |Searches by days since| number of days ago. | |argument |files were accessed. | * - number: Less than the | | | | given number of days ago. | | | | * number: Exactly the number | | | | of days ago. | |-----------+----------------------+--------------------------------| | | |Arguments include: | | | | | | |Searches by minutes | * +number: More than the given| |-cmin |since files were | number of minutes ago, | |argument |changed. | * -number: Less than the given| | | | number of minutes ago. | | | | * number: Exactly the given | | | | number of minutes ago. | |-----------+----------------------+--------------------------------| | | |Arguments are: | | | | | | | | * +number: More than the given| | |Searches by the number| number of days ago. | |-ctime |of days since file | * -number: Less than the given| |argument |attributes were | number of days ago. | | |changed. | * number: Exactly the number | | | | of days ago. | | | | | | | | | |-----------+----------------------+--------------------------------| |-follow |Traces symbolic links | | | |to original files. | | |-----------+----------------------+--------------------------------| | | |The group can be identified by | | |Searches for files |name or by group id . | |-group |that belong to a | | |group |particular group of |This option is best used as root| | |users. |user. Otherwise, you can only | | | |find files to which you have | | | |read permission. | |-----------+----------------------+--------------------------------| |-maxdepth |Sets the maximum level| | |number |of sub-directories to | | | |search. | | |-----------+----------------------+--------------------------------| |-mindepth |Sets the minimum level| | |number |of sub-directories to | | | |search. | | |-----------+----------------------+--------------------------------| |-name |Searches for files |Put a string in quotation marks | |string |that match the string.|to use shell metacharacters. | |-----------+----------------------+--------------------------------| | |Finds files newer than| | |-newer file|one included in the |. | | |command. | | |-----------+----------------------+--------------------------------| |-perm |Searches with | | |permissions|permissions in | | | |absolute mode. | | |-----------+----------------------+--------------------------------| | | |Arguments include: | |-type |Searches for types of | | |argument |files. | * d: Directory. | | | | * l: Symbolic link. | | | | * f: Regular file. | |-----------+----------------------+--------------------------------| | | |Users can be identified by | | |Searches for files |account name or by user id. | | |that belong to the | | |-user user |user included in the |This option is best used as root| | |command. |user. Otherwise, you can only | | | |find files for which you have | | | |read permission. | +-------------------------------------------------------------------+ 8.4.2. Searching for Files From the Command Line Using the locate Command ------------------------------------------------------------------------- The locate command searches a database for files. It is often the quickest way to find a file. Type: locate string . If you want to specify the database, add the -d path or --database = path option. _[Note]_ You may want to install slocate ("secure locate"), a replacement for locate . 8.4.3. Searching for Text From the Command Line: Using grep Commands -------------------------------------------------------------------- Linux uses the grep command line tools to search for text in files. This family of tools contains three commands: * grep : A general purpose search tool that uses text strings, sometimes with metacharacters. The grep command contains most of the functionality of the other tools, but has fewer options for customizing the search. * fgrep : A specialized search tool for locating literal text strings - that is, text strings without metacharacters. Because fgrep uses literal text strings, it does not require you to remember any special characters in your search. * egrep : A specialized search tool that uses metacharacters. The command uses more metacharacters than grep . In addition, the egrep command is often said to be the fastest of the three tools. All three commands use a similar format. Type: * grep options string files . * egrep options string files . * fgrep options string files . _[Note]_ To use grep or egrep as fully as possible, you should familiarize yourself with metacharacters. See Section 8.4.4, `Using Metacharacters With grep Commands'. _[Note]_ To save or print search results, use redirection operators. See Section 5.5.6, `Redirecting Input and Output for Commands'. The grep, egrep, and fgrep Commands (Find Text) +-------------------------------------------------------------------+ | Option | Action | Comment | |-------------------------+------------------+----------------------| | |Treats the string |Used only with grep . | |-E |as an extended |Similar to using egrep| | |regular |. | | |expression. | | |-------------------------+------------------+----------------------| | |Treats strings as |Used only with grep . | |-F |regular text. |Similar to using fgrep| | | |. | |-------------------------+------------------+----------------------| | |Searches using a | | | * -f file |text file |Strings must be listed| | * --file= file |containing a list |one per line in the | | |of patterns to |file. | | |match. | | |-------------------------+------------------+----------------------| | |Ignores the |If this option is not | | * -i |distinction |used, lower case | | * --ignore-case |between upper and |letters are | | |lower case |distinguished from | | |letters. |upper case ones. | |-------------------------+------------------+----------------------| | * -l |Lists files with |Individual lines are | | * --files-with-matches |matches. |not listed. | |-------------------------+------------------+----------------------| | * -L |Searches for files| | | * --files-without-match|that do not match | | | |the string. | | |-------------------------+------------------+----------------------| | * -n |Displays lines | | | * --line-number |numbered. | | |-------------------------+------------------+----------------------| | |Sets the number of| | |-number |lines to display |Sometimes referred to | | |before and after |as "context." | | |each match. | | |-------------------------+------------------+----------------------| | * -q |Stops at the first|Whether other matches | | * --quiet |match. |are available is not | | | |listed. | |-------------------------+------------------+----------------------| | * -r |Searches | | | * --recursive |sub-directories. | | |-------------------------+------------------+----------------------| | * -v |Searches for lines| | | * --invert-match |that do not match | | | |the string. | | |-------------------------+------------------+----------------------| | * -x |Displays lines | | | * --line-regexp |that match the | | | |entire string. | | +-------------------------------------------------------------------+ 8.4.4. Using Metacharacters With grep Commands ---------------------------------------------- Metacharacters are characters that can be used to set special conditions for searching. They are also known as wild cards. See Section 5.5.5.1, `Using Special Symbols'. Metacharacters are added to a text string. A text string that includes metacharacters is called a regular expression. Regular expressions are useful for finding variations in wording or in the positioning of the string on a line. Metacharacters can be used with both grep and egrep . However, grep can use fewer metacharacters than egrep . Whenever you want to use metacharacters, egrep is usually the tool to use. If you do not want to use any metacharacters at all, or do not have the characters memorized for use, use fgrep . Metacharacters can be extremely powerful, especially when used in combination. However, when you are using search tools, little is likely to go wrong unless you combine a grep command with another one that makes changes to files. _[Note]_ If you want to search for a character that is usually used as a metacharacter, place a backward slash ( ) in front of it. For example, ? searches for a question mark, instead of any character. Metacharacters are especially powerful when used together. For example: * ^contacts$ searches for matches in which contacts is the only word on a line. * [Cc]ontacts matches Contacts or contacts . * ^...$ searches for any line of three characters. * compan (y|ies) searches for company or companies . * [A-Za-z] searches for any upper or lowercase letter. Similarly, [0-9A-Za-z] searches for any number or any letter. 8.5. Viewing Files From the Desktop ----------------------------------- The desktop offers only limited choices for viewing files. For selective viewing of parts of files, use the command line instead. See Section 8.6, `Viewing Files From the Command Line'. To view a file from the desktop: * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. In both cases, the gnome Midnight Commander opens, displaying your home directory. img/Finding-10.png * Use the directory tree and the Back, Up, and Forward icons to display the directory you want. * Right click on the icon for the file that you want. A pop-up menu appears. img/Finding-11.png * Select Open or Open With from the menu. One of two things happens: * If the file's type is associated with a program, selecting Open displays the file. See Section 7.8.1, `Adding MIME Types'. or * If the file's type is not associated, selecting Open or Open With displays a window to choose a viewer from. img/Finding-12.png * If you are choosing a viewer, do one of three things: * Select an application from the directory tree. or * Use the Browse button to find a viewer. or * Type the path of a viewer. If the chosen browser is capable of displaying the file, then the file displays. 8.6. Viewing Files From the Command Line ---------------------------------------- Linux includes so many tools for viewing files from the command line that some are widely considered obsolete. For example, cat is less commonly used than it once was, probably because it has few options and does not allow scrolling. However, cat is still useful for a quick, no-frills view of a short file. Similarly, although more is still a functional tool, for most people it has been replaced by less , whose name is a play on the saying that "less is more." In general, less is the standard tool for viewing files. However, specialized commands also exist: * tac : Displays files from the end backwards. * head : Displays the first lines of a file. * tail : Displays the last lines of a file. 8.6.1. Viewing Short Files: Using the cat Command ------------------------------------------------- The cat command is useful for viewing files that are less than a screen in length. For longer files that you want to scroll back and forth in, use less instead. Type: cat options file. The cat Command (View) +-------------------------------------------------------------------+ | Option | Action | Comments | |----------------------+-----------------------+--------------------| | * -E |Displays line ends. |Line ends are marked| | * --show-ends | |with $. | |----------------------+-----------------------+--------------------| | * -b |Displays line numbers. | | | * --number-nonblank | | | |----------------------+-----------------------+--------------------| | * -T |Displays tabs. |Tabs are marked with| | * --show-tabs | |^I. | |----------------------+-----------------------+--------------------| | * -v |Displays non-printing | | | * --show-nonprinting|characters. | | +-------------------------------------------------------------------+ 8.6.2. Viewing Files with Scrolling: Using the less Command ----------------------------------------------------------- The less command is the most common tool for viewing files from the command line. In this category, it replaces cat and more , offering more options than either. The less command displays the designated file one screen at a time. In addition to displaying files, less can also be used for simple searches. However, for most searches, you probably want to use one of the search commands. See Section 8.3, `Searching from the Desktop' See Searching From the Command Line. Type: less options file . The less Command (View) +-------------------------------------------------------------------+ |Option| Topic | Comments | |------+-----------------------------+------------------------------| |-h |Sets maximum number of lines | | |number|to scroll back at one time. | | |------+-----------------------------+------------------------------| | |Ignores the distinction |If this command is not used, | |-i |between upper and lower case |lower case letters are | | |letters when a string is |distinguished from upper case | | |used. |ones. | |------+-----------------------------+------------------------------| |-p |Displays file starting with | | |string|the first occurrence of the | | | |string. | | |------+-----------------------------+------------------------------| |-s |Prints multiple blank lines | | | |as a single blanks line. | | |------+-----------------------------+------------------------------| |-y |Sets the maximum number of | | |number|lines to scroll forward at | | | |one time. | | +-------------------------------------------------------------------+ 8.6.3. Viewing Files Backwards: Using the tac Command ----------------------------------------------------- The tac command's name comes from the fact that it was intended as the opposite of cat . However, tac remains useful after less has replaced cat . Type: tac file. Although a few options exist, they are not often used. 8.6.4. Viewing the Start of Files: Using the head Command --------------------------------------------------------- head has a companion tool called tail , which views the end of files. The options for both tools are similar, but have some important differences. For example, head ordinarily displays the name of the file, while tail has more options. Type: head options file . The head Command (View) +-------------------------------------------------------------------+ | Option | Action | Comments | |------------+---------------------------------------+--------------| | | |Units are: | | |Sets the size of the display, and, | | | |optionally, the units. | * b : | |-c number | | Blocks. | |units |If no unit is specified, the size is in| * k : | | |bytes. | Kilobyes. | | | | * m : | | | | Megabytes.| |------------+---------------------------------------+--------------| | * -n | | | | number | | | | * --lines |Sets the number of lines to display. |The default is| | number | |10. | | | | | | | | | |------------+---------------------------------------+--------------| | * -q |Prevents display of the file name | | | * --quiet |header. | | +-------------------------------------------------------------------+ 8.6.5. Viewing the End of Files: Using the tail Command ------------------------------------------------------- tail has a companion tool called head , which views the start of files. The options for both tools are similar, but have some important differences. For example, tail has more options, while head ordinarily displays the name of the file. Type: tail options file . The tail Command (View) +-------------------------------------------------------------------+ | Option | Action | Comments | |-----------+-----------------------+-------------------------------| | |Sets the size of the | | | |display, and, |Units are: | |-c number |optionally, the units. | | |unit | | * b : blocks | | |If no unit is | * k: Kilobyes | | |specified, the size is | * m: megabytes | | |shown in bytes. | | |-----------+-----------------------+-------------------------------| | | |Press Ctrl-C to end. | | |Continues to display | | |-f |the last lines of a |This option is especially | | |file as it grows. |useful if you have a log file | | | |open as you try to debug. | |-----------+-----------------------+-------------------------------| | * -n |Sets lines to display, | | | number |measured from the end |The default is 10. | | * --lines|of the file. | | | number | | | |-----------+-----------------------+-------------------------------| | * -q |Prevents the display of| | | * --quiet|the file name header. | | |-----------+-----------------------+-------------------------------| | | |Arguments are: | |-number |Sets how much displays,| | |argument |measured from the end | * l: Lines. | | |of the file. | * b: Blocks. | | | | * c: Characters. | |-----------+-----------------------+-------------------------------| | | |Arguments are: | |+number |Sets how much displays,| | |argument |measured from the start| * l: Lines. | | |of the file. | * b: Blocks. | | | | * c: Characters. | +-------------------------------------------------------------------+ 8.7. Comparing Files from the Command Line ------------------------------------------ Linux includes three tools for comparing files automatically: * comm : Displays similar and different lines in two text files. * diff : Displays differences between files or directories, with a wide variety of options. * diff3 : Reports on three files, telling which ones are different. _[Note]_ To save the results of a comparison to a file, or to print a copy, use redirection pipes. See Section 5.5.6, `Redirecting Input and Output for Commands' 8.7.1. Making Simple Comparisons of Files: Using the comm Command ----------------------------------------------------------------- Use the comm command for a basic comparison of text files. For more advanced comparisons, use diff . Type: comm options 1st_file 2nd_file . The results are printed in three columns. From left to right, they are: * Lines unique to the first file. * Lines unique to the second file. * Lines common to both files. Use the - number option to keep a column from displaying. Arguments are 1 , 2 or 3 . If you want to block two columns, enter them without any comma or space between them. For example, if you want to display only lines common to both files, enter -12 . The comm command has no other options. 8.7.2. Making Complex Comparisons: Using the diff Command --------------------------------------------------------- Use the diff command if you want to: * Compare two directories, including their sub-directories. * Show lines before and after differences. * Use metacharacters. Type: diff options 1st_ file 2nd_file . In the results, text from the first file is marked with a lesser-than symbol ( < ), while text from the second file is marked with a greater-than symbol ( > ). The diff Command (Comparing) +-------------------------------------------------------------------+ | Option | Action | Comments | |---------------------------+--------------------+------------------| | |Ignores changes in | | | * -b |the amount of empty | | | |space. | | |---------------------------+--------------------+------------------| | * -B |Ignores blank lines.| | | * --ignore-blank-lines | | | |---------------------------+--------------------+------------------| | |Ignores the |If this command is| | |distinction between |not used, lower | |-i |upper and lower case|case letters are | | |letters when a |distinguished from| | |string is used. |upper case ones. | |---------------------------+--------------------+------------------| | |When comparing | | | * -x string |directories, |Metacharacters can| | * --exclude string |excludes directories|be used. | | |that match the | | | |string. | | |---------------------------+--------------------+------------------| | |When comparing | | | |directories, | | | * -X file |excludes files and | | | * --exclude-from = file |directories that | | | |match the pattern | | | |listed in file . | | |---------------------------+--------------------+------------------| | |Displays 3 lines | | |-c |before or after each| | | |result. | | |---------------------------+--------------------+------------------| | * -y |Displays results in | | | * --side-by-side |two columns. | | |---------------------------+--------------------+------------------| | |Includes | | | * -r |sub-directories when| | | * --recursive |comparing | | | |directories. | | |---------------------------+--------------------+------------------| | * -q |Only displays | | | * --brief |whether files | | | |differ. | | |---------------------------+--------------------+------------------| | * -s file |Only displays when | | | * --report-identical-file|files do not differ.| | +-------------------------------------------------------------------+ 8.7.3. Comparing Three Files: Using the diff3 Command ----------------------------------------------------- The diff3 command compares three files, and reports on the differences between them. It does not give detailed information about the differences, the way that diff does. diff3 can also be used to merge files using a simple script (see the man pages for more detail). Type: diff3 options 1st_ file 2nd_file 3rd_file. Two results may display: * === All three files differ * === file is different The diff3 Command (Comparing and Merging) +-------------------------------------------------------------------+ | Option | Topic | Comments | |-----------+----------------------------+--------------------------| |-a |Compares binary files |Binary files are treated | | | |as text files. | |-----------+----------------------------+--------------------------| | * -m |Displays merged differences |Output can also be | | * --merge|on the screen. |redirected to a file | +-------------------------------------------------------------------+ ------------------------------------------------------------------------------- 9. Working with Directories, Files, and Links --------------------------------------------- In general, all information on your Linux system is stored in files. Although you often use separate commands to manipulate directories and links, both are basically specialized types of files. This chapter covers the basic tasks, such as creating, selecting, copying and deleting directories and files. It also explains how to view and create links, and how to change file attributes. _[Note]_ You cannot manipulate files unless you have permission to do so. This limitation is one of the major differences between Linux and many popular operating systems. See Section 9.19, `Changing Permissions'. On the desktop, you can use the gnome Midnight Commander for the most common file functions. However, for a complete set of options, you must use the command line. In fact, a few tasks, such as merging files can only be done from the command line. 9.1. Creating New Files From the Desktop ---------------------------------------- * Open a program, such as a text editor. * From the menu, select File > Save. The Save dialogue window opens. * Use the directory tree to select a directory. * Enter the file name. Then select the Save button. 9.2. Creating New Files From the Command Line --------------------------------------------- Type: touch file. If no path is entered, then the files are created in the present directory. 9.3. Creating New Directories From the Desktop ---------------------------------------------- * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. * Right-click on the directory pane. A pop-up menu displays. * From the menu, select New Directory. The Create a new directory window opens. img/Files-2.png * Enter a name for the new directory. Select the ok button when you are finished. _[Note]_ You may need to select Edit > Rescan directory before the new directory displays in the gnome Midnight Commander. 9.4. Creating New Directories From the Command Line --------------------------------------------------- Type: mkdir options directory . The mkdir Command (Make Directory) +-------------------------------------------------------------------+ | Option | Action | Comment | |-------------+------------------------------+----------------------| | |Sets permissions for new |See Changing | |-m mode |directory in absolute mode. |Permissions in | | | |Absolute Mode. (***) | |-------------+------------------------------+----------------------| | * -p |Creates any parent directories| | | * --parents|if they do not already exist. | | +-------------------------------------------------------------------+ ***) Section 9.19.4.2, `Changing Permissions in Absolute Mode'. 9.5. Selecting Files From the Desktop ------------------------------------- * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. In both cases, the gnome Midnight Commander opens, displaying your home directory. img/Files-3.png * Select a file. Do one of the following: * Left-click on an icon with the mouse. If you want to select another file, left-click on its icon while pressing the Ctrl key. * Hold down the left mouse button, and drag the cursor across the files you want to select. A box displays around the files as they are selected. img/Files-4.png * Select an item from the menu: * Edit > Select All: Selects all files in the current window. * Edit > Select Files: Selects files that match the regular expression that you enter in a dialogue. Section 5.3.6, `Using Metacharacters or Wild Cards'. * Edit > Invert Selection: Deselects files that are currently selected and selects files that are currently deselected. No matter how you choose files, their icon text is highlighted when selected. 9.6. Selecting Multiple Files From the Command Line --------------------------------------------------- Either: * Enter file names after a command. Put a space between them. or * Use metacharacters in regular expressions. For example, *.jpg selects all files in the directory with a .jpg extension. See Section 5.3.6, `Using Metacharacters or Wild Cards'. Be careful when using moving or deleting files with metacharacters. 9.7. Copying Files From the Desktop ----------------------------------- * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. * Select the files to copy. See Section 9.5, `Selecting Files From the Desktop'. * Right-click on one of the selected files. A pop-up menu displays. * Select Copy from the pop-up menu. The Copy window displays. img/Files-5.png * Enter the folder to copy the files to. You can type the folder's path or select it using the Browse button. * If you wish, select Copy options from the Advanced tab. The Advanced options are: * Preserve Symlinks: If a link is copied, it points to the original file. * Follow links: The original file is copied, instead of the link. The original file is probably larger than the link. * Preserve file attributes: Information from the original is transferred to the copy. Permissions are transferred even if this option is not selected. * Recursively copy subdirectories: If a directory is being copied, then all sub-directories in it are also copied. By default, only Preserve file attributes is selected. * Select the ok button to copy the file. _[Note]_ If you cannot copy, then you do not have write permission to the target directory or file name. See Section 9.19, `Changing Permissions'. _[Note]_ You can also drag selected files with the left mouse button to any folder in any open Midnight Commander window. 9.8. Copying From the Command Line ---------------------------------- Type: cp options source target . The cp Command (Copy) +-------------------------------------------------------------------+ | Option | Action | Comments | |-------------------+-----------------------+-----------------------| | * -a |Gives target files the | | | * --archive |same attributes as the | | | |source files. | | |-------------------+-----------------------+-----------------------| | * -b |Backs up files that | | | * --backup |will be over written. | | |-------------------+-----------------------+-----------------------| | | |No confirmation is | | * -f |Over writes any |asked. Consider using | | * --force |existing files with the|with -i or -b to avoid | | |copy. |over writing files by | | | |accident. | |-------------------+-----------------------+-----------------------| | * -i |Asks for confirmation | | | * --interactive |before over writing any| | | |files. | | |-------------------+-----------------------+-----------------------| | * -p |Includes the original |Attributes include the | | * --preserve |file's attributes. |owner, group, | | | |permissions and dates. | |-------------------+-----------------------+-----------------------| | |Copies parent | | | * -P |directories to | | | * --parents |sub-directories of the | | | |target directory. | | |-------------------+-----------------------+-----------------------| | * -r, -R |Copies sub-directories | | | * --recursive |and their contents. | | |-------------------+-----------------------+-----------------------| | |Makes the target a | | | * -s |symbolic link to the |See Working With | | * --symbolic-link|source file, instead of|Symbolic Links. (***) | | |a copy. | | |-------------------+-----------------------+-----------------------| | |Copies only files whose| | | * -u |date are the same or | | | * --update |newer than similarly | | | |named ones in the | | | |target directory. | | |-------------------+-----------------------+-----------------------| | * -v |Displays file names as | | | * --verbose |they are copied. | | +-------------------------------------------------------------------+ Section 9.16, `Working With Symbolic Links'. 9.9. Moving Files From the Desktop ---------------------------------- * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. * Select the files to move. See Section 9.5, `Selecting Files From the Desktop'. _[Warning]_ Paths, aliases, links, and other features may be affected by moving a file. * Right-click on one of the selected files. A pop-up menu displays * Select Move from the pop-up menu.The Move window opens. img/Files-7.png * Select the folder to copy the files to. You can enter the folder or select it using the Browse button. * If you wish, select Preserve symlinks from the Advanced tab. With this option, symbolic links are automatically updated. * Select the ok button to move the file. _[Note]_ If you cannot move a file, then you do not have write permission in the target directory. See Section 9.19, `Changing Permissions'. _[Note]_ You can also drag selected files with the left mouse button to the desktop or to folders. 9.10. Moving Files From the Command Line ---------------------------------------- Type: mv options source target . The target can be a file or a directory. This command can have three possible results: * If the target file or directory does not already exist, the source file or directory is renamed. * If the target file or directory already exists, then it is over written by the source. The original file is deleted unless the -b option is used to back it up. * If the target is a directory, then the source files are moved to the directory. The mv Command (Move) +-------------------------------------------------------------------+ | Option | Action | Comments | |-----------------+----------------------------+--------------------| | * -b |Backs up target files that | | | * --backup |will be over written. | | |-----------------+----------------------------+--------------------| | | |No confirmation is | | | |asked. | | * -f |Over writes any existing | | | * --force |files with the copy. |Consider using with | | | |-i or -b to prevent | | | |over writing by | | | |mistake. | |-----------------+----------------------------+--------------------| | * -i |Asks for confirmation before| | | * --interactive|over writing any file. | | |-----------------+----------------------------+--------------------| | |Moves only files whose date | | | * -u |are the same or newer than | | | * --update |similarly named ones in the | | | |target directory. | | |-----------------+----------------------------+--------------------| | * -v |Displays file names as they | | | * --verbose |are moved. | | +-------------------------------------------------------------------+ 9.11. Renaming Files From the Desktop ------------------------------------- * Select Properties from an icon's pop-up menu. The Properties window displays. img/Files-8.png * Enter the new name in the File Name field. _[Warning]_ Paths, aliases, links, and other features may be disabled if a file is renamed. * Select the ok button to rename the files. 9.12. Renaming Files From the Command Line ------------------------------------------ To rename files, use the `mv' (move) command. See Section 9.10, `Moving Files From the Command Line'. Type: mv options source target . To keep the renamed file in its original directory, keep the destination's path name the same as the original, except for the file name. 9.13. Deleting Files From the Desktop ------------------------------------- You can permanently delete a file or sent it to the Trash in case you want to restore it later. 9.13.1. Deleting Files Permanently ---------------------------------- * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. * Select the files to delete. * Do one of the following: * Select Delete from one of the selected file's pop-up menu. * Select Delete from the File menu of the Midnight Commander. In both cases, the Delete window displays. img/Files-9.png * Select the Yes button to delete the selected files. 9.13.2. Moving To the Trash --------------------------- img/Files-10.png The trash bin is a directory (.gnome-desktop/Trash in your home directory) for storing deleted files that you might want to restore again. All users have their own trash bins. * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. * Select the files to move to the Trash. * Do one of the following: * Select Move to Trash from the pop-up menu of one of the selected files. * Drag the selected files to the Trash icon on the desktop. * Move the selected files to Desktop/Trash in the same way that you would move any files anywhere. See Section 9.9, `Moving Files From the Desktop' _[Note]_ From the desktop, you cannot set the gnome Trash to empty when it reaches a certain size. However, you could use the cron command to delete its contents at a regular time. . 9.13.3. Restoring From the Trash -------------------------------- Your Trash folder behaves exactly the same as any other folder on your desktop. To restore files, move them from the Trash folder to another folder. See Section 9.9, `Moving Files From the Desktop'. 9.14. Deleting Files From the Command Line ------------------------------------------ Type: rm file . If you want the option to recover files, move them to a storage directory. You can use the.gnome-desktop/Trash directory in your home directory. This is the directory in which files are stored when you send them to the Trash on the desktop. _[Note]_ You can also use rmdir to remove empty directories. However, in most cases, you can use rm -r as an alternative and save yourself the trouble of learning another command. The rm Command (Remove) +-------------------------------------------------------------------+ | Option | Action | Comments | |-----------------+--------------------------+----------------------| | * -d |Removes any |Only the root user can| | * --directory |sub-directories and their |use this option. | | |contents. | | |-----------------+--------------------------+----------------------| | * -f |Removes all files without | | | * --force |confirmation. | | |-----------------+--------------------------+----------------------| | * -i |Asks for confirmation | | | * --interactive|before removing each file.| | |-----------------+--------------------------+----------------------| | * -r, -R |Removes sub-directories |May cause accidental | | * --recursive |and their contents. |deletion of files. | |-----------------+--------------------------+----------------------| | * -v |Displays file names as | | | * --verbose |they are removed. | | +-------------------------------------------------------------------+ 9.15. Merging Files ------------------- Files cannot be merged from the desktop. From the command line, you can use a viewing command with a redirection operator or diff3 . 9.15.1. Merging Using a Viewing Command --------------------------------------- You can a viewing command with redirection operator to merge files. For example, if you are using `cat' : * To merge separate files into a new file, type: cat files > merged_file . * To add files to an existing file, type: cat sources >> target . Separate file names by a space. You could also use `less' or `more' to merge files. Section 8.6, `Viewing Files From the Command Line'. 9.15.2. Merging Files Using the diff3 Command --------------------------------------------- The diff3 command can be used for comparing files. However, you can also use the command to merge files. This function is especially useful when two versions of a file have been worked on separately. Type: diff3 target original version . Note: * The original file is the one that the other two are based on. * The version file is the first modified version of the original file. * The target file is the second modified version of the original file. * The contents of each file displays on the screen. * The order of the files is important. The command compares the original and the version file, then the target and the version file. * A change in the target file always over rides a change in the version file. 9.16. Working With Symbolic Links --------------------------------- A link is a small file that points to another file. When a command is used by a link, it is passed on directly to the original file. A link is useful when you need a file in two places and/ or when you want to save disk space. However, if the original file is moved or deleted, the symbolic link no longer works. Links are also used to create launchers on the desktop. Because the launchers are links, deleting them does not delete the file to which they point. Linux uses two types of links: * Absolute links (also called hard links) get their name because of how they are stored on the filesystem. For the average user, hard links are more limited than symbolic links. An absolute link must be on the same filesystem as the original file, and is not recognized by ls and other commands. * Symbolic links (also called soft links) are copied, moved, or deleted like other files. Deleting a link does not affect the original file. However, the creation of symbolic links and administering the connections between them requires a little more care than with other files. 9.16.1. Viewing Symbolic Links From the Desktop ----------------------------------------------- * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. * Do one of the following: * Select the Custom icon from the tool bar. * Select Layout > Custom View from the menu. In all cases, files that are links have an l as the first character in the Permissions column. 9.16.2. Viewing Symbolic Links From the Command Line ---------------------------------------------------- The ls command displays the contents of the working directory. To display the symbolic links in the current directory, open a command line and type: ls -l . The attributes of each file are displayed on a separate line. If a file is a link, then the first character is an l . In addition, any symbolic link is displayed with the original file beside it. For example, if the original file was ToDo and the link was Monday, then the entry for the link would be: Monday -> ToDo. You can also use the --color option to display symbolic links and other file types in their own color, and -F to display symbolic links with the at sign (@) at the end of them, 9.16.3. Adding Links From the Desktop ------------------------------------- * Open the gnome Midnight Commander. Do one of the following: * From the workspace, select the Home directory launcher. * From the menu, select Programs > File Manager. * Select the files to link. See Section 9.5, `Selecting Files From the Desktop'. * Right-click on one of the selected files. The pop-up menu opens * Select Symlink from the pop-up menu. A dialogue window opens. img/Files-11.png * If necessary, enter the name of the original file. In most cases, the name is entered for you. * Enter the file name for the symbolic link. If the file name already exists, a confirmation window opens. Select the Cancel button to avoid over writing the file. If the file name entered does not conflict with an existing one, then the symbolic link is created. The icon for the link has an arrow in the lower right corner. img/Files-12.png 9.16.4. Adding Links From the Command Line ------------------------------------------ You can use the cp -l command to create an absolute link or the ln -s command to create a symbolic link. Usually, you will want to create a symbolic link instead of an absolute link. To add a single link with a different name from the original file, type: ln -s options file link . To add a link with the same file name as the original file but in a different directory, type: ln -s options file directory . If you enter more than one original file name, leave a space between the names. The ln Command (Link) +-------------------------------------------------------------------+ | Option | Action | Comments | |-----------------+------------------+------------------------------| | * -b |Backs up files | | | * --backup |before over |Useful with the -S option. | | |writing. | | |-----------------+------------------+------------------------------| | * -f |Over writes files |Use with the -b option to | | * --force |if necessary. |avoid accidentally over | | | |writing important files. | |-----------------+------------------+------------------------------| | * -i |Prompts for | | | * --interactive|permission before | | | |each action. | | |-----------------+------------------+------------------------------| | * -S suffix |Adds a suffix to | | | * --suffix |backup files. |The default suffix is . | | suffix | | | |-----------------+------------------+------------------------------| | * -s |Creates a symbolic|Without this option, a hard | | * --symbolic |link. |link is created. | |-----------------+------------------+------------------------------| | * -v |Displays actions | | | * --verbose |on screen. | | +-------------------------------------------------------------------+ 9.17. Changing Owners --------------------- Each file in Linux has an owner. This attribute gives users some privacy. It can also be used by the root owner to protect files from casual use or accidental damage. The owner of a file is usually the user who created the file. However, the owner may be changed by either the present owner or the root user. Valid owners are listed in the /etc/passwd file. An owner is identified by the user account or a user id . 9.17.1. Changing Owners From the Desktop ---------------------------------------- * From the file's pop-up menu, select Properties. The Properties window displays. * Select the Permissions tab. img/Files-13.png * Edit the Owner field. You must enter a valid user. If you do not, an error message displays and the Properties window closes. * Select the ok button to change the settings and close the window. 9.17.2. Changing Owners From the Command Line --------------------------------------------- Type: chown options owner files . The owner can be identified by the user account or the user id . To copy the owner from another file, type: chown options --reference= source target . The chown Command (Change Owner) +-------------------------------------------------------------------+ | Option | Action |Comments| |--------------------+-------------------------------------+--------| | * -c |Displays information about files that| | | * --changes |are changed. | | |--------------------+-------------------------------------+--------| | |Changes the ownership of both | | |--dereference |symbolic links and the files to which| | | |they point. | | |--------------------+-------------------------------------+--------| | * -h |Changes the ownership of a symbolic | | | * --no-dereference|link, but not of the file to which it| | | |points. | | |--------------------+-------------------------------------+--------| |--reference= file |Copies owner from the file listed. | | |--------------------+-------------------------------------+--------| | * -r |Changes ownership of sub-directories | | | * --recursive |and their contents. | | |--------------------+-------------------------------------+--------| | * -v |Displays actions on screen. | | | * --verbose | | | +-------------------------------------------------------------------+ 9.18. Changing Groups --------------------- A group is a collection of users who have the same access to devices and files on the system. Each file in Linux is assigned to a group. In most cases, a file is assigned to its owner's main group, which is usually the same as the owner's account name. However, users may belong to more than one group. Valid owners are listed in the /etc/group file. The group may be changed by either the present owner or the root user. The group attribute lets the owner define whether other users can work with the file, and what they can do with it. It can also be used by the root owner to protect files from casual use or accidental damage. 9.18.1. Changing Groups From the Desktop ---------------------------------------- * From the file's pop-up menu, select Properties. The Properties window displays. * Select the Permissions tab. img/Files-14.png * Edit the Group field. You type in a group, or select one from the pull-down list. You must enter a valid group. If you do not, an error message displays and the Properties window closes. * Select the ok button to change the settings and close the window. 9.18.2. Changing Groups From the Command Line --------------------------------------------- Use the chgrp (change group) command. Only the owner of a file or the root user can change the group. Valid groups are listed in /etc/ group. Type: chgrp options group files . The group can be identified by name or group id . To copy the group from another file, type: chgrp options --reference= source target . The chgrp Command (Change Group) +-------------------------------------------------------------------+ | Option | Action |Comments| |---------------+------------------------------------------+--------| | * -c |Displays information about changed files. | | | * --changes | | | |---------------+------------------------------------------+--------| |--reference= |Copies the group from the file listed. | | |file | | | |---------------+------------------------------------------+--------| | * -r |Changes the group for sub-directories and | | | * --recursive|their contents. | | |---------------+------------------------------------------+--------| | * -v |Displays actions on screen. | | | * --verbose | | | +-------------------------------------------------------------------+ 9.19. Changing Permissions -------------------------- Permissions define how users can work with a file or directory - or whether they can work with it at all. Permissions are also called access rights, or file or access permissions. The three types of permissions are: * Read: Permission to view. For a directory, this permissions means that you can view the contents. Abbreviated to r in file attributes. * Write: Permission to change. For a directory, this permission means that you can add or remove files form it. Abbreviated to w in file attributes. * Execute: Permission to run if the file is a binary. For a directory, this permission means that you can view the file attributes and change into the directory or its sub-directories. Abbreviated to x in file attributes. A hyphen ( - ) in the list of file attributes indicates that no permission is set. In addition, a file may be set as Sticky. That means that only the user or root user can delete it. Permissions are set for three categories of users: * The owner: Usually, the owner can read, write and execute. However, you may, for example, choose not to give yourself write permission to prevent the accidental overwriting of a file. The owner can be identified by either his or her user account, or by the user account id ( uid ). _[Warning]_ Depending on the file, setting the user id to the root user can create security problems. * The group: A group that the owner belongs to. The group can be identified by its name or by the group id ( uid ). Usually, it is the owner's main group, which has the same name as the owner's user account. * Other: Other users on the system. On many systems, other users have read permission for system files, but cannot read files in other users' home directories. _[Note]_ The root user can read, write, and execute all files on the system. Occasionally, you may find some graphic tools that do not allow the root user complete access. However, the root user can always access all files from the command line. 9.19.1. Viewing Permissions From the Desktop -------------------------------------------- * From the file's pop-up menu, select Properties. The Properties window displays. * Select the Permissions tab. img/Files-15.png 9.19.2. Viewing Permissions From the Command Line ------------------------------------------------- Type: ls -l file . The first attributes on each line are the type of file and the permissions. For example, a typical file might display: -rwxr-xr-- : * The first character shows the type of file, using * - for a file. * d for directory. * l for link. The other nine characters are the permissions: * The first three are for the owner, the second three for the group, and the third three for other users. * Starting from the left, the order of permissions in each group are read, write and execute permissions. 9.19.3. Changing Permissions from the Desktop --------------------------------------------- * From the file's pop-up menu, select Properties. The Properties window displays. * Select the Permissions tab. img/Files-16.png * Set read, write, and execute permissions by selecting them for each category of user with the mouse. You can view the current owner and group in the File Ownership pane. Continually select the button for the user or group id to cycle through valid settings. The changes display in the Current mode line at the top of the Permissions tab. * Select the ok button to change the settings and close the window. 9.19.4. Changing Permissions From the Command Line -------------------------------------------------- The chmod command has two modes: the symbolic (or character) and the absolute (or octal) mode. As well as the usual options in any command, the symbolic mode uses a series of individual arguments. Use the symbolic mode if you want to assign the permissions carefully, and in full. By contrast, the absolute mode uses octal notation to reduce the arguments in the commands to three characters. Despite its name, absolute mode is quick and efficient once you learn it. 9.19.4.1. Changing Permissions in Symbolic Mode ----------------------------------------------- Type: chmod options group action permissions file . The possible entries for each part of this command is explained in one of the tables below. The group and permissions arguments can use more than one entry. For example, you could use ug in the group argument to set permissions for both the user and the group. The chmod Command (Change Permissions): Options +-------------------------------------------------------------------+ | Option | Action |Comments| |---------------+------------------------------------------+--------| | * -c |Displays information about changed files. | | | * --changes | | | |---------------+------------------------------------------+--------| |--reference= |Copies permissions from the file listed. | | |file | | | |---------------+------------------------------------------+--------| | * -R |Applies changes to sub-directories and | | | * --recursive|their contents. | | |---------------+------------------------------------------+--------| | * -v |Displays information about all files. | | | * --verbose | | | +-------------------------------------------------------------------+ The chmod Command (Change Permissions): Group Settings for Symbolic Mode +-------------------------------------------------------------------+ | Group |Argument| |----------------------------------------------------------+--------| |All. User, Group and Others. |a | |----------------------------------------------------------+--------| |Group. |g | |----------------------------------------------------------+--------| |Other users on the system who do not belong to the user's |o | |group. | | |----------------------------------------------------------+--------| |User. The owner of the file. |u | +-------------------------------------------------------------------+ The chmod Command (Change Permissions): Action Settings for Symbolic Mode +-------------------------------------------------------------------+ | Action |Argument| |----------------------------------------------------------+--------| |Adds permission. |+ | |----------------------------------------------------------+--------| |Removes permission. |- | |----------------------------------------------------------+--------| |Sets only the permissions specified and removes all other |= | |permissions. | | +-------------------------------------------------------------------+ The chmod Command (Change Permissions): Permission Settings for Symbolic Mode +-------------------------------------------------------------------+ | Action |Argument| |----------------------------------------------------------+--------| |Do not give permission. Use as a place holder when setting|- | |multiple permissions. | | |----------------------------------------------------------+--------| |Set to group's current permissions. |g | |----------------------------------------------------------+--------| |Set to other's current permissions. |o | |----------------------------------------------------------+--------| |Set read permission. |r | |----------------------------------------------------------+--------| |Set user or group id . |s | |----------------------------------------------------------+--------| |Set sticky. |t | |----------------------------------------------------------+--------| |Set to user's current permissions. |u | |----------------------------------------------------------+--------| |Set write permission. |w | |----------------------------------------------------------+--------| |Set execute permission. |x | +-------------------------------------------------------------------+ 9.19.4.2. Changing Permissions in Absolute Mode ----------------------------------------------- Type: chmod number . The number is usually three digits. From left to write, the digits stand for the permissions for the user, the group, and other users. You can calculate the digit to use by adding the octal number for each permission. Section 9.19.4.3, `Calculating Numbers for the chmod Command Absolute Mode'. You must use at least three digits in Absolute Mode. A fourth number is sometimes added as a prefix to set user or group id or to set sticky. See Section 9.19.4.5, `The chmod Command (Change Permissions): The 4th Digit in Absolute Mode'. "The chown Command (Change Permissions): The 4th Digit in Absolute Mode," page 200. 9.19.4.3. Calculating Numbers for the chmod Command Absolute Mode ----------------------------------------------------------------- To calculate each digit in Absolute Mode (See Section 9.19.4.4, `The chmod Command (Permissions): Absolute Mode'), add the octal numbers for the permissions you want to set. For example, the number to set read and execute permission is 5 (4+1). The first three digits are for the user, group, and others. For example, 754 gives: * The user read, write, and execute permission. * The group read and execute permission. * Others read permission. You may also use a fourth digit. See Section 9.19.4.5, `The chmod Command (Change Permissions): The 4th Digit in Absolute Mode'. 9.19.4.4. The chmod Command (Permissions): Absolute Mode -------------------------------------------------------- +--------------------------------+ | Permission |Octal Number| |-------------------+------------| |Read permission. |4 | |-------------------+------------| |Write permission. |2 | |-------------------+------------| |Execute permission.|1 | |-------------------+------------| |No permissions. |0 | +--------------------------------+ 9.19.4.5. The chmod Command (Change Permissions): The 4th Digit in Absolute Mode ---------------------------------------------------------------------------- +------------------------+ |Permission |Octal Number| |-----------+------------| |User id . |4 | |-----------+------------| |Group id . |2 | |-----------+------------| |Set sticky.|1 | +------------------------+ _[Note]_ The fourth digit in Absolute Mode is optional. 9.19.5. Changing File Date and Time Attributes ---------------------------------------------- All files include: * A creation time: The date and time that the file was created. * An access time: The date and time that the file was last used. * A modification time: The date and time that the file was last changed. To change the creation time, use the cp command without the -a or --archive options. To change the other times, type: touch options file . The Touch Command (Changing Date Attributes) +-------------------------------------------------------------------+ | Option | Action | Comments | |-----------------+--------------------------------+----------------| | * -a |Changes the access time to the | | | * --time-access|current time. | | |-----------------+--------------------------------+----------------| | * -m |Changes the modification time to| | | * --time-mtime |the current time. | | |-----------------+--------------------------------+----------------| | |Uses the time specified instead |Use the format: | |-t time |of the current time. | | | | |ccyymmddhhmm.ss.| +-------------------------------------------------------------------+ 9.19.6. Setting Special File Attributes --------------------------------------- You can set special file attributes on a native Linux (ext2) filesystem. These attributes affect how the file can be edited, deleted, or backed up. These special attributes are in addition to the usual set of ownership, permissions and dates. They are not automatically assigned to a file. Type: chattr options actions attributes files . Do not put a space between the action and attribute argument. The chattr Command (Change Attributes): Options +-------------------------------------------------------------------+ |Option| Action |Comments| |------+---------------------------------------------------+--------| |-R |Changes attributes of sub-directories and their | | | |contents. | | |------+---------------------------------------------------+--------| |-V |Displays actions on screen. | | +-------------------------------------------------------------------+ The chattr Command (Change Attributes): Actions +-------------------------------------------------------------------+ | Action |Argument| |----------------------------------------------------------+--------| |Adds the attribute. |+ | |----------------------------------------------------------+--------| |Removes the attribute. |- | |----------------------------------------------------------+--------| |Sets only the attribute specified. Removes other |= | |attributes. | | +-------------------------------------------------------------------+ The chattr Command (Change Attributes): Attributes +-------------------------------------------------------------------+ | Attribute |Argument| |----------------------------------------------------------+--------| |Date and time are not updated when the file is modified. |A | |----------------------------------------------------------+--------| |Material can only be added to the end of the file. |a | |Existing contents cannot be changed. | | |----------------------------------------------------------+--------| |File can only be modified by the root user. |i | |----------------------------------------------------------+--------| |File cannot be recovered when deleted. |s | |----------------------------------------------------------+--------| |File cannot be deleted. |u | |----------------------------------------------------------+--------| |Do not include in backup using dump. |d | +-------------------------------------------------------------------+ 9.19.6.1. Viewing Attributes Set by the chattr Command ------------------------------------------------------ Type: lsattr options files . Files are displayed one line at a time. Options for the lsattr Command (List Attributes) +----------------------------------------------------------+ |Option| Action |Comments| |------+------------------------------------------+--------| |-a |Shows all files in the directory listed. | | |------+------------------------------------------+--------| |-d |Lists directories' attributes, not files'.| | +----------------------------------------------------------+ ------------------------------------------------------------------------------- 10. Reading System Information ------------------------------ Linux is built by users who have a hands-on approach to computing. As a result, your system includes many command line tools for displaying information. You can view information about: * The operating system and hardware. * Processes running on the system. * Memory being used and memory available. * Users. You can gather information by: * Using command line tools. * Viewing files in the /proc directory. * Reading log files. Graphical tools have been made for some of the command line tools, but they are generally less complete and flexible than the command line tools. 10.1. Reading System Information From the Desktop ------------------------------------------------- Debian installs with three basic desktop information tools: * System Info: Basic information about your system. * gtop : Processes, memory and filesystems. * gw : Information about users. In addition, the Applets menu includes several useful monitors that display graphs of how the system is being used. In particular, laptop users might want to install the battery charge applet on the panel. 10.1.1. Using System Information from the Desktop: Using the System Info Tool ---------------------------------------------------------------------------- The System Info tool is the graphical equivalent of the uname -a and w commands. * From the main menu, select Applications > System > System Info. The System Info window opens. img/Sysinfo-1.png * If you want to save the information select either: * Save Information to File. * Email Information. A dialogue box opens for you to select or enter a file name or e-mail address. 10.1.2. Viewing Process Information from the Desktop: Using the gtop Command ---------------------------------------------------------------------------- * Start the command: * Type gtop from a command line, or * Select gtop from the pop-up menu of some Monitor applets. In either case, the gnome System Monitor window opens. _[Note]_ If you use the command regularly, add it to the workspace, panel, or menu. * Select the statistics to display. Select Settings > Preferences from the menu. * Select a tab to display. Either click on the tab with the mouse, or select a tab from the View menu. By default, the tab displays are: * Processes: Processes that are currently running on the system. The statistics to display can be altered in the Settings> Preference menu. The tab includes graphs for cpu, memory, swap and average loads. This tab is the desktop equivalent of the top or ps command. img/Sysinfo-3.png * Memory usage: The amount of memory used by each process in relation to each other. This figure does not represent an absolute amount of ram. This tab is the desktop equivalent of part of the top command. img/Sysinfo-4.png * Filesystems: The amount of hard drive space that is free on each partition or hard drive. This tab is the desktop equivalent of the df command . img/Sysinfo-5.png 10.1.3. Viewing User Information from the Desktop: Using the gw Command ----------------------------------------------------------------------- img/Sysinfo-6.png The gw utility is the desktop equivalent of the w command. It displays informations about users. If you are logged in as root user, gw displays information about all users currently logged in. If you are logged in as a regular user, then only information about the current account displays. Type gw from a command line. The Active User screen opens. _[Note]_ If you use the command regularly, add it to the workspace, panel, or menu. From the Active User screen, you can read such information about where users logged in from (local or remote), how long they have been logged in, and the processes they are currently running. 10.1.4. Using the Monitor Applets --------------------------------- The Applets are small programs that are a standard part of the gnome desktop. When selected, an applet displays in the panel. The Monitor manuals are among the most useful applets. Each gives a graphic display of some aspect of the system. To add one to the panel, go to Applets > Monitors on the main menu. 10.1.4.1. Monitor Applets ------------------------- +-------------------------------------------------------------------+ | Monitor | What It Shows | |------------+------------------------------------------------------| |cpu/mem |The cpu, memory, and swap load. | |usage | | |------------+------------------------------------------------------| |Battery |The battery charge for laptops. Warns when the charge | |charge |is low. | |------------+------------------------------------------------------| |Disk usage |The amount of hard drive space used and free. | |------------+------------------------------------------------------| |cpu load |The cpu resources being used. | |------------+------------------------------------------------------| |Memload |The amount of memory being used. | |------------+------------------------------------------------------| |Swapload |The amount of swapping done by the system. | |------------+------------------------------------------------------| |Netload |The load on different network interfaces. | |------------+------------------------------------------------------| |Load Average|The average amount of activity on the system. | +-------------------------------------------------------------------+ 10.2. Using Command Line Tools ------------------------------ Linux includes many commands for gathering information. The following table summarizes some of the more common and more useful ones. To read a complete list of options for each command, see its man or texinfo pages. See Section 5.6, `Finding Help for Commands'. The following tables are divided into four categories: * System information commands. * Memory information commands. * Processes information commands. * User information commands. 10.2.1. Commands for Reading System Information ----------------------------------------------- +---------------------------------------------------------------+ | Command |Information| Comments | |-------------+-----------+-------------------------------------| | | |i586 is a Pentium, i686 a Pentium II.| | | | | |arch |cpu |Compatible processors, such as | | | |Celerons, are listed as the Intel | | | |processor to which they are | | | |compatible. | |-------------+-----------+-------------------------------------| | | | * The date command gives the system| | | | date, It can also be used to | | | | reset the date. | | | | * The cal command displays a | | * date |Date | calendar for the month and year | | * cal mm yy| | given. | | | | | | | | If no month or year is given then| | | | the calendar for the current | | | | month displays. | |-------------+-----------+-------------------------------------| |dnsdomainname|Domain name|Any user can use for viewing the | | | |domain name, but not for changing it.| |-------------+-----------+-------------------------------------| |env |Environment|Can also be used to set an | | | |environment variable. | |-------------+-----------+-------------------------------------| | | |The fdisk command can also be used to| | | |make and delete partitions. | |fdisk -l |Partitions | | | | |However, the parted utility is more | | | |versatile for these purposes. See | | | |Partitioning a Hard Drive. (***) | |-------------+-----------+-------------------------------------| |hostname -i |Host Name |Displays host name and ip address. | |-------------+-----------+-------------------------------------| | | | * Useful options include: | | | | * -l : Permissions, owners, sizes, | |ls |Files | modification time. | | | | * -i : Inodes. | | | | * -s : Sizes. | |-------------+-----------+-------------------------------------| | | |Usable only from the root account. | | |Kernel |For each loaded module, lists: | |lsmod |modules | | | |loaded | * Name. | | | | * Size. | | | | * Referring modules (if any). | |-------------+-----------+-------------------------------------| |nslookup |Domain name|Displays the domain name and address.| |host-server |server | | |-------------+-----------+-------------------------------------| | |Present | | |pwd |working | | | |directory | | |-------------+-----------+-------------------------------------| | | |With different options, the same | |swapon -s |Swap file |command can also be used for turning | | | |on a swap partition. | |-------------+-----------+-------------------------------------| | | |Information is given in a single | | | |line, in the following order: | | |cpu and o | | |uname -a |perating | * Operating system. | | |system | * Local host. | | | | * Kernel release. | | | | * Kernel build information. | | | | * Processor type. | |-------------+-----------+-------------------------------------| | | |For a report on all current users of | | | |the system, do not specifiy a user. | | |Current | | |w user |system |Displays summaries of: | | |state | | | | | * System usage. | | | | * Users who are logged in. | | | | * Current activities of each user. | +---------------------------------------------------------------+ ***) See Section 13.3.1, `Partitioning a Hard Drive'. 10.2.2. Commands for Reading Memory Information ----------------------------------------------- +---------------------------------------------------------------+ | Command | Topic | Comments | |-----------+----------------------+----------------------------| |du |Disk space used by the|You must have read | |directories|contents of a |permission for each | | |directory |directory. | |-----------+----------------------+----------------------------| | | |The name can be: a | | | |partition, a mount point, or| | | |a directory. | | | | | | | |For each file system, the | | | |following information is | | | |given: | |df -hiT |Memory used by file | | |name |systems | * Size. | | | | * Space Used. | | | | * Space Available. | | | | * Percentage of space | | | | used. | | | | * Mount point. | | | | * Inodes. | | | | * Filesystem type. | |-----------+----------------------+----------------------------| | | |Statistic displayed are: | | | | | | | | * Total memory free. | | | | * Total memory used. | |free -m |Total system memory | * Amount of ram and swap | | | | memory. | | | | * Buffers used by the | | | | kernel. | | | | | | | |Statistics are in megabytes.| +---------------------------------------------------------------+ 10.2.3. Commands for Reading Process Information ------------------------------------------------ +---------------------------------------------------------------+ | Command | Topic | Comments | |----------+----------------+-----------------------------------| | | |Unlike most commands, ps does not | |ps auS |Active processes|use hyphens needed in front of | | | |options. | |----------+----------------+-----------------------------------| | | |A parent process is one that starts| | |Parent and child|another process. | |pstree |processes | | | | |A child process is one that is | | | |started by another process. | |----------+----------------+-----------------------------------| | | |Usable only from the root account. | | | | | | | |Does not work on nfs files. | | | | | | | |Displays process id s followed by a| |fuser -a |Processes using |code to identify how each process | |files |a file or |is using the specified files: | |filesystem|filesystem | | | | | * c : As a directory. | | | | * e : As an executable. | | | | * f : As an open file. | | | | * m : As a shared library. | | | | * r : As the root directory. | |----------+----------------+-----------------------------------| | |Processes that |The figures given are relative to | |top |use the most |each other. They are not the actual| | |system resources|resources used. | +---------------------------------------------------------------+ 10.2.4. Commands for Reading User Information --------------------------------------------- +---------------------------------------------------------------+ |Commands| Topic | Comments | |--------+--------------+---------------------------------------| | | |Displays information from the psswd | | | |file. | |finger | | | |users |A user |If no user is specified, information | | | |about the current user is displayed. | | | | | | | |Use as root user. | |--------+--------------+---------------------------------------| | | |Displays the groups that a user belongs| | | |to. | |groups |Groups that | | |user |users belong |If no user is specified, information | | |to |about the current user is displayed. | | | | | | | |Use as root user. | |--------+--------------+---------------------------------------| |id user |Users and |Displays the user's groups, user id and| | |Groups |group id s. | |--------+--------------+---------------------------------------| | | |Displays: | | | | | | |Users | * Users. | |who |currently | * The time each user has have been | | |logged on | logged in. | | | | * Each user's remote host (if on a | | | | network). | |--------+--------------+---------------------------------------| |whoami |Current user | | +---------------------------------------------------------------+ 10.2.5. Reading /proc Files --------------------------- The /proc directory contains several files that are useful when you are configuring or troubleshooting your system. Information Files in the /proc Directory +-------------------------------------------------------------------+ | File | Information | |----------+--------------------------------------------------------| |/proc/ |General information about the system, including the | |cpuinfo |processor type, its speed, and cache size. | |----------+--------------------------------------------------------| |/proc/ |Maps irq addresses to devices. | |interrupts| | |----------+--------------------------------------------------------| |/proc/ |Information about parallel ports and the devices | |parport |attached to them. | |----------+--------------------------------------------------------| |/proc/ |The system's sound configuration, including the drivers | |sound |installed. | +-------------------------------------------------------------------+ _[Warning]_ Changing these files can damage your system. Regular users should not have write permission to these files, and the root user should be careful about changing them. 10.3. Reading Log Files ----------------------- Log files record messages about all activities on your system. Some can be viewed by regular users, but many can only be viewed by the root user. Logs are generally found in the /var/log directory. Their purposes are usually obvious: cron.log lists messages from crontab, daemon.log lists messages from daemons, and so on. The general log file is /var/ log/messages. See Section 10.3.2.2, `Standard Log Files'. Logs are controlled by syslogd daemon. This daemon starts almost as soon as your computer starts, and records most events that happen on the system. It is configured in the /etc/syslog.conf file. You can view logs from either the desktop or the command line. Information is in four column in standard log files. A few log files are not in the standard format. They cannot be read by using desktop tools, nor, in several cases, by using the standard command line viewing tools. See Non-Standard Log Files. 10.3.1. Reading Standard Log Files From the Desktop --------------------------------------------------- * From the menu, select Programs > System log monitor. The System log viewer window opens. img/Sysinfo-8.png * Choose a log to display. Select File > Open log. The default is / var/log/messages. * If necessary, select an item from the View menu: * Calendar: A monthly calendar. img/Sysinfo-9.png * Log stats: Information about the file itself, such as its path, size and when it was started and last modified. img/Sysinfo-10.png * Zoom: Details about the currently selected message, along with a brief explanation of the message. img/Sysinfo-11.png 10.3.2. Reading Standard Log Files From the Command Line -------------------------------------------------------- Standard logs are plain text files. You can use any viewing tools or text editors to view logs from the command line. The most useful tools are less, head, and tail. See Section 8.6, `Viewing Files From the Command Line'. 10.3.2.1. Keeping a Log File Open Using the tail Command -------------------------------------------------------- If you are troubleshooting, you may want to keep a log file open so that you can constantly refer to it: * Log in as root user and open a command line. * Type: tail -f log . The -f option keeps the tail viewing command open as new messages are added to it. 10.3.2.2. Standard Log Files ---------------------------- +---------------------------------------------------------------+ | Log | Contains messages about or from ... | |----------+----------------------------------------------------| |auth.log |Attempts to log on and log off the system. | |----------+----------------------------------------------------| |daemon.log|Daemons and attempts to use modprobe. | |----------+----------------------------------------------------| |debug |All parts of the system that might be useful for | | |trouble-shooting. | |----------+----------------------------------------------------| |kern.log |The kernel. | |----------+----------------------------------------------------| |lpr.log |The printer. | |----------+----------------------------------------------------| |mail.err |Problems with the e-mail subsystem. Duplicates much | | |of the information in mail.warn. | |----------+----------------------------------------------------| |mail.info |General mail information. | |----------+----------------------------------------------------| |mail.warn |Problems with the e-mail subsystem. Duplicates much | | |of the information in mail.err. | |----------+----------------------------------------------------| |messages |The entire system. | |----------+----------------------------------------------------| |syslog |The log daemon. | |----------+----------------------------------------------------| |user.log |User activity. | +---------------------------------------------------------------+ 10.3.2.3. Columns in Standard Log Files --------------------------------------- +---------------------------------------------------------------+ | Column | Information | |---------+-----------------------------------------------------| |Timestamp|The date and time that the message was written to the| | |log. | |---------+-----------------------------------------------------| |Hostname |The machine that generated the message | |---------+-----------------------------------------------------| | |The subsystem that generated the message. The | | |subsystem can be the kernel or a process. | |Name | | | |If the subsystem is a process, then its id is | | |included. | |---------+-----------------------------------------------------| |Message |What the log entry is about. | +---------------------------------------------------------------+ 10.3.3. Reading Non-Standard Log Files -------------------------------------- Several useful log files are not in standard format. As a result, they cannot be read by the System log monitor tool on the desktop. Several must be read using unique command line tools. 10.3.3.1. Non-Standard Log Files -------------------------------- +-------------------------------------------------------------------+ | File | What It Contains and How to View It | |-------------+-----------------------------------------------------| | |Contains information about the most recent starting | |dmesg |of the system. | | | | | |View by using the dmesg command. | |-------------+-----------------------------------------------------| | |Contains information about the last time users tried | | |to log in, including the number of failures, the | |faillog |maximum allowed, and the latest failure. | | | | | |View by typing: faillog -u user . | |-------------+-----------------------------------------------------| | |Contains a list of users and the last time they | |lastlog |logged in. | | | | | |View by using the lastlog command. | |-------------+-----------------------------------------------------| | |Contains information about the X Window System. | |XFree86.0.log| | | |View using the standard command line viewers. | +-------------------------------------------------------------------+ 10.3.4. Creating Custom Logs Using Redirection ---------------------------------------------- Error messages for Linux commands display by default in the command line. However, you can redirect messages to a file to create a custom log for a particular command or script. Type: command 2> file. ------------------------------------------------------------------------------- 11. Installing, Removing, and Upgrading Software ------------------------------------------------ Some of the contents here are "Progeny Debian" specific. Especially: * gnome-apt-pkgset * apt-pkgset _Be warned_. Software in Debian is usually arranged in packages: collections of programs, scripts, and help files. If a program requires a library or other program not on your machine, the package offers to install these other files - or dependencies - for you. You can install software in Debian in several ways: * Using a Progeny package set: The easiest way to install common, related packages. * Using a Debian package: The easiest and most common method for installing packages in general. * Compiling and installing source code from a tar file: A method used when a Debian package does not exist. * Converting a package from another format: This method is not commonly used, because it is not always reliable. * Using a third party installer: Some developers of commercial or Open Source software have developed their own installers. Many third party installers are graphical, and easy to use. However, they vary so widely that discussing any of them is beyond the scope of this manual. _[Note]_ No matter what method you use, in almost every case, you must be logged in as root user to install or remove software. 11.1. Understanding Packages ---------------------------- A Linux packages is an archive of files for installing software easily. Each package contains a program and the scripts needed to install, configure, and remove it. In most cases, it also includes the on-line help files. Linux has two main package systems: * The Red Hat Package manager is used by Red Hat and other distributions derived from it, such as Mandrake and s u se . Its packages have an .rpm extension. * Debian uses the Debian package system. Its packages end with a .deb extension. The Debian package system is widely known for its sophistication and reliability. Unlike rpm packages, Debian packages resolve any dependency problems, providing the necessary libraries instead of simply reporting the need for them. You can even upgrade your system while it is running with a single command. You can sometimes use an .rpm package on a Debian system, or a .deb package on a Red Hat-based system. However, because of differeces in file locations and other problems, this practice is not recommended. Depending on the package, you could even cripple an essential part of the operating system. Instead, try a conversion tool such as alien . However, these conversion programs do not always work, either. If all else fails, a static tar file should generally install without trouble. Debian packages are available from a Debian cd , or from www.debian.org. Static tar files are available from the web sites for specific projects or program maintainers. _[Note]_ Progeny Linux Systems cannot guarantee that a package designed for a Debian-based distribution can work with Debian. 11.2. Understanding Package Management Tools -------------------------------------------- Debian offers several tools for package management, including: * gnome-apt-pkgset : Progeny's desktop tool for installation and removal of sets of common packages. * apt-pkgset : Progeny's command line tool for installation and removal of sets of common packages. * apt-get : An advanced package management utility. * apt-setup : A tool for editing the sources list for gnome-apt-pkgset and apt . * dpkg : A package management utility, not as advanced as apt , but capable of complex searches for packages and their contents. * dpkg-deb : A utility for managing packages. Other tools available include dselect and capt, two text-based interfaces. However, because new users often find these tools confusing, they are only mentioned here without any further documentation. All these tools work with a list of sources. These sources may be cd s or internet sites. Packages are transferred from a source to your hard drive. They can then be installed, either immediately or later. Once you know something about the structure of Debian packages, you can use these tools quickly and easily. 11.3. Understanding Debian Package Management --------------------------------------------- Before installing, removing, or upgrading software, you may want to learn more about: * The life cycle of a package * Information in packages, including: * The contents of packages. * Package names. * Priorities. * Dependencies. * Package management files. * Statuses. * Package flags. _[Note]_ If this information seems too overwhelming just now, you can skip this section, especially if you are using Progeny's gnome apt-pkgset tool. However, refer back to this section if you are ready to know more than the basics. 11.3.1. Understanding the Life Cycle of a Package ------------------------------------------------- Debian package management uses very specific terms to describe what is done with a package: * 1 Downloaded: The package has been put on to the system from a cd or from the internet. * 2 Unpacked: The files for the package have been unarchived, but are not ready for use. * 3 Compiled: A binary has been made from the source package has been made into a binary. * 4 Configured: The package is ready for your system, but not installed. * 5 Installed: The package can be used. * 6 Deinstalled: The package is removed, except for its configuration files. * 7 Purged: The entire package is removed, including its configuration files. 11.3.2. Understanding Package Information ----------------------------------------- Packages contain a wealth of information. You can install a program without reading this information, but, reading it often saves you wasted effort. For example, you generally do not want to install a package that conflicts with another, or to start the installation of a package whose installed size is greater than the free space on your hard disk. This section explains: * The contents of packages. * Package names. * Important files for packages. * Priorities. * Dependencies. 11.3.2.1. Understanding the Contents of Packages ------------------------------------------------ Debian packages are either binary or source. A binary package contains a compiled program that can be run after installation. A source package must be compiled before it can be installed. A Debian binary package contains: * A binary or executable file: The program itself. * The conffiles file: Lists the configuration files for the package. * Configuration files: Files need to install or remove the package. * Installation scripts: Scripts that run automatically when a package tool is used. Some may require input from the user. Scripts are in the /var/lib/dpkg/info directory. Usually, there are four: * preinst : Runs before installation of the package. * postinst : Runs after installation of the package. * prerm : Runs before removal of the package * postrm : Runs after removal of the package. * man and/or info pages: Help for the program. * The control file: A summary of the libraries required by the package, the name and version of the package, its priority, its installed size, its maintainer, and other basic information. _[Note]_ Look at the control file for basic information about the package before you install it. 11.3.2.2. Understanding Package Names ------------------------------------- Depending on the tools, you may just need the program name to install or remove it. In other cases, however, you need the entire package name. Debian packages have a consistent naming convention: program_version-revision_processor .deb In other words, the name consists of: * 1 The program name, sometimes an abbreviation. * 2 The version number, usually a sequential number. * 3 The revision number, usually or sequential number. * 4 The processor type, such as i386 for Intel machines. This part of the convention is the least likely to be included. * 5 The .deb extension, which identifies a Debian or Debian package. Debian-based distributions may also use this extension. _[Note]_ Debian packages are named in the same way as a standard Debian package. 11.3.2.3. Understanding Package Priorities ------------------------------------------ A package's priority is listed in the control file. The priority describes how important it is to the operating system: * Requires: The system must have the package to operate properly. In other words, the package is a basic part of the operating system. * Important: The system does not strictly need the package, but having it adds to the basic functionality. Many Important packages are routinely installed as part of the operating system. * Standard: The system benefits from having the package. * Optional: Most systems include this package. * Extra: Either the system does not need this package, or else the package may conflict with a package that has higher priority. In other words, Extra packages should only be used after you learn more about the risks of using them. For absolute safety, check the package dependencies, or search the Progeny or Debian sites for information before using a package with a priority of Extra. 11.3.2.4. Understanding Dependencies ------------------------------------ A package's dependencies are listed in the control file. The dependencies describe how a package interacts with other packages or programming libraries: * Depends: The package needs another package to work. It may need a particular version of another program. This dependency is extremely common for programming libraries. * Recommends: The package works better with another package, but does not strictly need it. * Suggests: For most purposes, the package works better with another package. * Conflicts: The package does not work with another package. The two programs should not be run together. Consider removing one of the packages or restricting the execute permissions on one of the packages. * Replaces: The package over writes or removes another package. Be sure that you know what will happen if a package has a Replaces dependency. * Provides: The package includes another package, or at least provides the same functionality. * Predepends: The package requires another package to run.You may have to install the other package first. 11.3.3. Finding Package Management Files ---------------------------------------- Important files for package management are: * /etc/apt/sources.list: The internet sources of packages for use with apt and gnome-apt-pkgset . * /var/state/apt/cdroms.list: The list of cd sources for use with apt . * /etc/apt/apt.conf: The configuration file for apt . * /usr/share/package-sets: The directory that lists the contents and the description of a Progeny package set. * /var/lib/dpkg/available: Lists packages on the system. * /var/lib/dpkg/status: Lists the status of packages on the system. See Section 11.3.4, `Understanding Package Statuses'. 11.3.4. Understanding Package Statuses -------------------------------------- As you use the package management tools, a package may be in several different states: * Config-files: Only the configuration files for the package are on the system. * Half-configured: Configuration was started, but interrupted. * Half-installed: Installation was started, but interrupted. * Installed: The package is unpacked, configured, and installed. * Not-installed: No part of the package is installed. * Unpacked: The package is unpacked, but not configured. 11.4. Understanding Selection States ------------------------------------ As you decide what to do with a package, it can be in one of several states. You can view the selection state using the dpkg command: * Install: The package is selected for configuration and installation. * Deinstall: All package files have been selected for removal except the configuration files. * Purge: All package files have been selected for removal, including the configuration files. * Hold: The current version of the package will not be over-written. * Unknown: The package has not been unpacked. 11.4.1. Understanding Package Flags ----------------------------------- Packages may be flagged with two options. You can view package flags using the dpkg command: * Hold: Nothing is done with the package unless the -- force-hold option is used with apt . * Reinst-required: The package is broken and needs to be reinstalled. The package can only be removed with the --force-reinstreq option for apt . 11.5. Installing and Removing Package Sets With gnome-apt-pkgset ---------------------------------------------------------------- _This section is Progeny specific and does not apply for the standard Debian system. Rewrite desirable._ Debian simplifies package selection by grouping commonly-used related packages into sets. If a program requires more than one package, you can install all the packages at the same time using Progeny's gnome-apt-pkgset utility. Alternately, you can double-click on the package set and select individual packages from it. As the name indicates, gnome-apt-pkgset is based on the apt utility. It is also the tool that you use during installation to select software. It includes much of the functionality of apt , and uses the same commands. Experienced users may find gnome-apt-pkgset limiting and prefer to use apt . See Section 11.7, `Installing and Removing Packages With the apt-get Command'. _[Note]_ For a list of package sets, see /usr/share/package-sets. Each package set includes a file with an extension of .contents , which lists the packages in the set, and a file with an extension of * description , which displays in gnome-apt-pkgset . _[Note]_ Currently, package sets are supported only by Debian cd s or download sites. You cannot use gnome-apt-pkgset with an ordinary Debian source. * 1 Log in as the root user. * 2 Start gnome apt-pkgset. Either: * Select Programs > System > Add/Remove Software from the main menu. or * Type gnome-apt-pkgset at the command line. or * Select the Add/Remove Software icon from the panel. In all cases, the Add/Remove Package Set window opens. img/packages-2.png The window consists of four sections: * Available Software: A list of package sets. A package set with a check in the box is installed. A package set with a box that is unselected is not installed. * Description: A summary of what is in the package set. * Buttons: The possible functions. The equivalent of apt 's commands. * Details: The current status of the package set and the amount of hard drive space it occupies once installed. The installed space is sometimes less than the memory required during installation. * 3 Select the packages to work with. A package set is highlighted when selected. _[Note]_ A package set may be selected regardless of whether it is installed or not. However, all you would want to do with an uninstalled package set is install it. * 4 Select a function from the buttons on the right of the window: * Apply: Install the selected package. * Revert: Undo the previous action and restore the package set to its original status. * Update: Update the list of package sets available from the sources. * Upgrade: Upgrade the selected package set if a newer version is available. * 5 When you are finished, select the Close button to close the Add /Remove Software window. 11.6. Installing and Removing Packages With the apt-pkgset Command ------------------------------------------------------------------ _This section is Progeny specific and does not apply for the standard Debian system. Rewrite desirable._ Debian simplifies package selection by grouping related packages into sets. If a program requires more than one package, you can install all the packages at the same time using Progeny's apt-pkgset utility. As the name implies, apt-pkgset is the command line version of gnome apt-pkgset , Progeny's desktop tool. Both are based on the apt utility. Both include much of the functionality of apt , and works in much the same way. For example, like apt, both depend on a sources list. However, experienced users may find apt-pkgset limiting and prefer to use apt . See Section 11.7, `Installing and Removing Packages With the apt-get Command'. Type: apt-pkgset command packageset . No hyphen is placed in front of a command. _[Note]_ For a list of package sets, see /usr/share/package-sets. Each package set includes a file with an extension of .contents , which lists the packages in the set, and a file with an extension of .description , which displays in gnome-apt-pkgset . The apt-pkgset Command (Progeny specific) +-------------------------------------------------------------------+ |Command| Action | |-------+-----------------------------------------------------------| |install|Adds the package set to your system. | |-------+-----------------------------------------------------------| |remove |Removes the package set from your system. | |-------+-----------------------------------------------------------| |status |Reports on the package set's status. | |-------+-----------------------------------------------------------| |purge |Removes the package set from your system and all files and | | |associated with it. | +-------------------------------------------------------------------+ 11.7. Installing and Removing Packages With the apt-get Command --------------------------------------------------------------- The apt-get ("A Package Tool" or "Advanced Package Tool") utility is widely considered one of the most sophisticated package tools available. Although still in development, apt-get can reliably upgrade your system over the internet or upgrade all packages on your system in a single operation. The apt-get command can run from the command line, or be selected as a source in dselect , the old text-based package management tool in Debian. The apt-get utility is not so much a command, but a collection of commands. This fact is reflected in its format, which can include not only options, but a specific command as well. Type: apt-get options command package_name . The most commonly used options are: * apt-get install package-name : Retrieves, unpacks and installs the package. * apt-get remove package-name : Removes the package from your system. Note that: * You may be asked questions during the install. Many can be answered with a y ("yes") or n ("no"). * Some commands can be entered without specifying package names. If no packages are mentioned, commands like upgrade affect the entire system. Others commands, such as install , require that a package is specified. * Options can be entered as part of the command or set in /etc/apt/ apt.conf. Options set in the configuration file can be overridden from the command line by using the option - option_name =no . The apt-get Command (Manage Packages): Options +---------------------------------------------------------------+ | Option | Action | Comment | |--------------------+-----------------+------------------------| | * -b |Compiles source | | | * --compile |packages after | | | * --build |they are | | | |downloaded. | | |--------------------+-----------------+------------------------| | |Downloads |The option for the | | * -d |packages, but |configuration file is: | | * --download-only |does not unpack |apt::Get:: Download-only| | |them. | | |--------------------+-----------------+------------------------| | * -f |Adds missing |The option for the | | * --fix-broken |dependencies. |configuration file is: | | | |apt::Get: :Fix-Broken | |--------------------+-----------------+------------------------| | | |No prompts for actions | | | |are given. | | | | | | | |In some cases, this | | * --force-yes |Forces an action.|option could make your | | | |system unusable. | | | | | | | |The option for the | | | |configuration file is: | | | |apt::Get: :force-yes. | |--------------------+-----------------+------------------------| | | |Use with the | | | |dist-upgrade command for| | |Ignores hold |efficiency. | |--ignore-hold |flags on a | | | |package. |The option for the | | | |configuration file is: | | | |apt::Get: :ignore-hold. | |--------------------+-----------------+------------------------| | * -m |Ignores missing |Do not use with -f or | | * --ignore-missing|or corrupted |--fix-broken . | | * --fix-missing |packages. | | |--------------------+-----------------+------------------------| | | |Only packages already | | * --no-download |Prevents |downloaded are affected | | |downloading. |by other commands or | | | |options. | |--------------------+-----------------+------------------------| | |To prevent the |The option for the | |--no-upgrade |upgrading of |configuration file is: | | |packages |apt::Get: :no-upgrade. | |--------------------+-----------------+------------------------| | |Displays a list |The option for the | | * -u |of all packages |configuration file is: | | * --show-upgraded |to be upgraded. |apt::Get: : | | | |Show-Upgraded. | |--------------------+-----------------+------------------------| | | |The option for the | | * -y |Automatically |configuration file is: | | * --yes |replies "yes" to |apt::Get: :Assume-Yes. | | * --assume-yes |all prompts. | | | | |If an error occurs, then| | | |apt-get stops. | +---------------------------------------------------------------+ The apt-get Command (Manage Packages): Commands +---------------------------------------------------------------+ | Option | Action | Option | |------------+----------------------------+---------------------| | |Removes package files that | | | |can no longer be downloaded | | |autoclean |from the sources. | | | | | | | | | | |------------+----------------------------+---------------------| | |Updates listings of packages| | |check |and check for broken | | | |packages. | | |------------+----------------------------+---------------------| |clean |Clear the local listings of | | | |retrieved package files. | | |------------+----------------------------+---------------------| | |Installs the latest versions| | |dist-upgrade|of all packages currently | | | |installed, as well as any | | | |necessary dependencies. | | |------------+----------------------------+---------------------| |install | |Enter only the | |package |Installs packages. |package name, not the| | | |full file name. | |------------+----------------------------+---------------------| |remove | |Enter only the | |package |Removes packages. |package name, not the| | | |full file name. | |------------+----------------------------+---------------------| | | |Use the --compile | | | |option to convert the| | | |source packages to | |source |Finds and downloads source |binary packages. | |package |packages | | | | |Use the | | | |--download-only | | | |option to download, | | | |but not unpack. | |------------+----------------------------+---------------------| |source |Updates package overview | | |package |files with information from | | | |the source. | | |------------+----------------------------+---------------------| | |Installs the latest versions|Run the update | |upgrade |of all packages currently |command first to | | |installed. |ensure that you have | | | |the latest sources. | +---------------------------------------------------------------+ 11.8. Editing Source Lists -------------------------- Source lists are essential to the use of apt-get . Without at least one valid source, apt-get is not usable. _[Note]_ When installing, apt tries the sources in the order that they are listed in the file. You can edit sources in at least three ways: * apt-setup : A text-based interface that guides you through the process. Manu users consider this tool obsolete, but it is useful for new users. * A text editor: Edit the source files directly, modelling entries on existing ones. This is the preferred method of most Debian users. * apt-cdrom : A command line utility that automatically detects cd s in the drives and mounts and unmounts cd s as necessary. 11.8.1. Adding a New Source Using an Interface ---------------------------------------------- * 1 Type apt-setup . The Apt Configuration window opens. img/packages-3.png _[Note]_ apt-setup removes all comments from /etc/apt/sources.list. * 2 Select the type of source from the list. Then select the ok button. * 3 Follow the on-line instructions. Depending on the type of source you select, you may be asked: * Whether you want to use a site that includes software restricted in the United States. * Whether you want to use non-free software. Before you continue, you are given the choices of whether to use each of these categories of software. If you are an American citizen or prefer to use only free software, consider your choices carefully before continuing. If you choose to edit a source file directly, then the file opens in the vim editor. * 4 Enter the path to the source. Depending on the type of source, you may be able to choose from a list. Otherwise, enter the path to the list. * 5 If necessary, answer any other questions that display. Select the ok button to move between screens and to close the program after making your choices. 11.8.2. Adding a New Source from a Text Editor ---------------------------------------------- * 1 Log in as root user. * 2 Open a text editor. * 3 Open: * /etc/apt/sources.list: Any source. * /var/state/apt/cdroms.list: cd sources. 11.8.3. Adding a New CD to the List of Sources ---------------------------------------------- Type: apt-cdrom options command. Currently, the only command available is add . This utility maintains the database of cd s in /var/state/apt/ cdroms.list. Options can be entered as part of the command or set in /etc/apt/ apt.conf. Options set in the configuration file can be overridden from the command line by using the option - option =no .d _[Note]_ You can also use the apt-set command to set a cd source. The apt-cdrom Command (Sets Sources) +-------------------------------------------------------------------+ | Option | Action | Comment | |-------------+---------------------+-------------------------------| | * -a |Scan for packages. |May not be needed for all cd s.| | * --through| | | |-------------+---------------------+-------------------------------| | | |The mount point must be listed | | | |in /etc/fstab. | | * -d |Sets the cd mount | | | * --cdrom |point. |The equivalent option in the | | | |configuration file is: | | | | | | | |Acquire:: cd ::mount | |-------------+---------------------+-------------------------------| | |Copies files to your |The equivalent option in the | | * -f |system without |configuration file is: | | * --fast |checking them. | | | | |APT:: cd ::Fast | |-------------+---------------------+-------------------------------| | | |The configuration file is /etc/| | |Edits an option in |apt/apt.conf. | |-o group tool|the configuration | | |= option |file. |See the configuration file and | | | |on-line help for information | | | |about options. | |-------------+---------------------+-------------------------------| | |Over rides a setting |The configuration file is /etc/| |- option = no|in the configuration |apt/apt.conf. | | |file. | | |-------------+---------------------+-------------------------------| | * -r |Gives a cd a new |You are prompted for the new | | * --rename |label. |label. | +-------------------------------------------------------------------+ 11.9. Managing Packages With the dpkg Command --------------------------------------------- The dpkg command is used for general package management. It includes many of the functions of dpkg-deb , a tool for managing and building Debian packages, and is usually used in preference to it. Although dpkg can be used to install a package, on the whole it is less powerful and less convenient than apt-get . For ordinary user, the real strength of dpkg is its ability to retrieve information about packages on their systems. It is especially useful if you need to search packages or their contents. For more advanced users, dpkg is also useful for building Debian packages. For information about building packages, see the on-line help for dpkg and dpkg-deb . Type: dpkg options argument action package . Depending on the option, the package may be identified by its file name or by the name of the package. 11.9.1. The dpkg Command (Package Management): Options ------------------------------------------------------ +-------------------------------------------------------------------+ | Options | Action | Comments | |-----------------------+-----------------------+-------------------| | |Automatically | | | * - B |deconfigures any | | | * --auto-deconfigure |dependent packages when| | | |a package is removed. | | |-----------------------+-----------------------+-------------------| | |Does not install the | | | * -E |package if the current | | | * --skip-same-version|version is already | | | |installed. | | |-----------------------+-----------------------+-------------------| | |Includes any packages |Use with the -A , | | * -R |in the subdirectories |--install , | | * --recursive |listed in the action. |--unpack or -avail | | | |actions. | |-----------------------+-----------------------+-------------------| | | |A warning displays,| | | |but the command | | | |continues to be | | |Forces the command to |processed. | | * --force argument |complete even though a | | | |problem occurs. |See The dpkg | | | |Command (Package | | | |Management): | | | |Argument. (***) | |-----------------------+-----------------------+-------------------| | | |The command stops | | | |with an error | | |Stops the command from |message. | | * --no-force argument|completing if a problem| | | * --refuse argument |occurs. |See The dpkg | | | |Command (Package | | | |Management): | | | |Argument. (***) | +-------------------------------------------------------------------+ ***) See Section 11.9.2, `The dpkg Command (Package Management): Argument'. 11.9.2. The dpkg Command (Package Management): Argument ------------------------------------------------------- +-------------------------------------------------------------------+ | Argument | Action | |----------------+--------------------------------------------------| |auto-select |Selects or de-selects packages to install or | | |remove. | |----------------+--------------------------------------------------| |configure-any |If necessary, configures any unconfigured packages| | |that the package depends on. | |----------------+--------------------------------------------------| | |Installs even if the package conflicts with | |conflicts |another one. This option could cause some files to| | |be over-written. | |----------------+--------------------------------------------------| |depends |Warns about dependency problems display, but do | | |not stop the command. | |----------------+--------------------------------------------------| |depends-version |Warngs about version problems display. | |----------------+--------------------------------------------------| |downgrade |Installs even if a newer version is already | | |installed. | |----------------+--------------------------------------------------| |hold |Processes packages with a hold flag. | |----------------+--------------------------------------------------| |overwrite |Over writes a file from one package with the same | | |file from another package. | |----------------+--------------------------------------------------| |remove-reinstreq|Removes broken packages. | +-------------------------------------------------------------------+ 11.9.3. The dpkg Command (Package Management): Actions ------------------------------------------------------ +-------------------------------------------------------------------+ | Actions | Action | Comments | |------------------+------------------+-----------------------------| | * -A |Updates package | | | * --record-avail|information on | | | |your system. | | |------------------+------------------+-----------------------------| | * -C |Searches for |If possible, what is missing | | * --audit |partly installed |is explained. | | |packages. | | |------------------+------------------+-----------------------------| | * -c package |Displays files in | | | * --control |a Debian package. | | | package | | | |------------------+------------------+-----------------------------| | | |Note that the package names, | | | |not the package files are | | | |entered. | |--configure |Configures an | | |packages |unpacked package. |Instead of listing packages, | | | |you can use -a or --pending | | | |to configure all unpacked | | | |packages. | |------------------+------------------+-----------------------------| | * -e package |Extracts control | | | directory |information into | | | * -- control |the directory | | | package |specified. | | | directory | | | |------------------+------------------+-----------------------------| |- -get-selections |Displays package |If no string is given, all | |string |selections. |selected packages display. | |------------------+------------------+-----------------------------| | * -X package | | | | directory |Extracts files |Useful for examining a | | * --extract |from the package |package's contents. | | package |into a directory. | | | directory | | | |------------------+------------------+-----------------------------| | | |To install all packages in a | | * -i package | |directory, use this options | | name |Installs a |with -R or --recursive and, | | * --install |package. |complete with a directory | | package file | |name instead of a single | | | |package name. | |------------------+------------------+-----------------------------| | * -l string |Lists packages |If no pattern is listed, all | | * --list string |that match the |packages are listed. | | |string. | | |------------------+------------------+-----------------------------| | * -L package |Lists files that | | | * --listfiles |come from a | | | package |particular | | | |package. | | |------------------+------------------+-----------------------------| | | |Note that the package names, | | | |not the package files are | |--print-avail |Displays package |entered. | |package |information. | | | | |The information is form /var/| | | |lib/dpkg/available. | |------------------+------------------+-----------------------------| | | |Note that the package names, | | | |not the package files are | | | |entered. | |--purge package |Purges a package. | | | | |Instead of listing packages, | | | |you can use -a or --pending | | | |to configure all packages | | | |marked for purging. | |------------------+------------------+-----------------------------| | | |Note that the package names, | | | |not the package files are | | * -r package | |entered. | | * --remove |Removes a package.| | | package | |Instead of listing packages, | | | |you can use -a or --pending | | | |to remove all packages marked| | | |for removal | |------------------+------------------+-----------------------------| | * -S filename |Searches installed| | | * --search |packages for a | | | filename - |file name | | | pattern | | | |------------------+------------------+-----------------------------| | * -s packages |Display a | | | * --status |package's status. | | | package | | | |------------------+------------------+-----------------------------| | | |To unpack all packages in a | | |Uploads a file, |directory, use this options | | * --unpack |b.ut does not |with -R or --recursive and, | | |configure it |complete with a directory | | | |name instead of a single | | | |package name. | |------------------+------------------+-----------------------------| | * --update-avail|Updates list of | | | * --merge-avail |available files | | |------------------+------------------+-----------------------------| | |Searches for | | | |uninstalled | | |--yet-to-unpack |packages that have| | | |been selected for | | | |installation. | | +-------------------------------------------------------------------+ 11.10. Installing Unpackaged Software ------------------------------------- Linux developers often offer programs as tar files of uncompiled source code instead of in a package format. While a program is in early development, cotinually remaking packages would be a waste of effort, so most programmers do not bother. The source code is, after all, what most programmers are interested in. In many cases, too developers are not working with a specific distribution or package management system in mind. A tar file of unpackaged software may be listed as being dynamically linked or static. A dynamically linked piece of software calls on programming libraries as it needs them. This tactic saves space, and is the one most commonly used. However, it has two major drawbacks: * You may need to backtrack and install other software before you can use dynamically linked software. * Because the Red Hat Package Management System is so widely used, dynamically linked software may look for the links it requires on the wrong place on a Debian system. By contrast, static software includes the necessary functions within itself. As a result, it may duplicate existing functions on your hard drive, and take up more space than the same program dynamically linked. However, because it is self-contained, it should not have any dependency problems. For this reason, always install the static version of unpackaged software whenever you have the choice. Exact instructions vary with each piece of unpackaged software. However, the following instructions give a general overview. * 1 Download a tar file. Choose the static binary whenever possible. * 2 If the site that you download from specifies that any dependencies are needed, download and install them before you install the software. * 3 Log in as root user. _[Note]_ Do not use the internet while root user. Doing so makes your system vulnerable to attacks. * 4 Place the tar file in the root directory and unarchive it. A directory structure is created for the program. * 5 Change to the sub-directory that contains the program. Since there is no standard, you may have to search a while. Often, however, it is the /src (source) directory. * 6 Find and read the file that contains installation instructions. Usually it is called Install or Readme. * 7 Type: ./configure . During the configuration process: * Variables in the program are defined to suit your system * Install scripts are created for your system * Make files (the files needed for installation) are created. During configuration, a long list of information scrolls. If the last few lines contain no messages about errors, you can continue. * 8 Type: ./make . The software is compiled - that is, converted from source code to the binary format in which you use it. While the software is compiled, information scrolls by in the command line. If no error messages display, you can continue. * 9 Type: ./install . The software is installed. Generally, the program is added to the /us/local directory structure. These last three steps may take several minutes apiece. In each case, watch the display on the screen for errors. You may have to install a programming library on your system to get past these steps without errors. At the end of this process, the software should be ready for use. You may want to: * Clean up after installing unpackaged software, you can conclude by typing ./make clean. * Add an icon or a menu item for it to your desktop. See Section 7.3.1, `Adding Launchers'. _[Note]_ The most likely error when installing unpackaged software is a missing dependency. However, because unpackaged software is often in development, it may not work on all systems or with all Linux-based operating systems, especially in the earliest stages of development. 11.11. Making Debian Packages From Other Formats ------------------------------------------------ Often, you can make a Debian package from another format using the alien utility. However, because of the complexities of converting from one format to another, alien does not always work. For this reason, you may prefer to use a static tar file instead. See Section 11.10, `Installing Unpackaged Software'. * 1 Obtain the package you want to install. You can convert from the following formats: * .rpm : Red Hat Package Management format. * .slp : Stampede Linux format. * .tgz : Slackware format (archives made using tar and gzip ). * 2 Type: alien -i source_format target_format options package . The package is converted and installed. If you want to examine the package before installing it, do not include the -i option. * 3 Test the converted package by entering the binary file's name at the command line. The alien Command (Convert Packages): Formats +---------------------------------------------------------------+ | Format | Action | Comment | |------------+----------------------+---------------------------| | * -d |Converts to or from |This is the default if no | | * --to-deb|Debian format. |target format is mentioned.| |------------+----------------------+---------------------------| | * -r |Converts to or from |The Red Hat utility rpm | | * --to-rpm|Red Hat format. |must be installed. | |------------+----------------------+---------------------------| |--to-slp |Converts to or from | | | |Stampede Linux format.| | |------------+----------------------+---------------------------| | * -t |Converts to or from |Does not work on tarred | | * --to-tgz|Slackware Linux |source code files. | | |format. | | +---------------------------------------------------------------+ The alien Command (Convert Packages): Options +---------------------------------------------------------------+ | Format | Action | Comment | |-------------+---------------------+---------------------------| | * -c |Converts scripts for |Use with caution. Examine | | * --scripts|the package. |scripts before using this | | | |option. | |-------------+---------------------+---------------------------| | * -i |Installs newly |After installation, the | | * --install|generated package |package file is removed. | | |automatically. | | +---------------------------------------------------------------+ ------------------------------------------------------------------------------- 12. Doing Everyday Administration --------------------------------- To keep your Debian system running smoothly, you need to do some routine tasks. These tasks usually need to be done more frequently on a network, but they are also important on standalone desktop machines. The basic administration tasks are: * Managing Users. * Managing Groups. * Managing Printing and Print Jobs. * Managing Processes. * Backing up and Compressing Files. * Scheduling Tasks. * Checking Filesystems. Only the root user can do all these tasks. Regular users can only do some of these tasks for their own accounts. These tasks are generally done from the command line. Although desktop tools exist for some of them, few are as useful or as versatile as the commands that they are based on. 12.1. Managing User Accounts ---------------------------- Linux is designed for multiple users. To use the system, you must log in with a user account. A user account consists of a user name, a password, and a number of saved settings. User accounts are organized into groups of accounts with similar access to the system. The software and the hardware you can use depends on your user accounts and the groups that it is in. See Section 12.1.4, `Changing Individual Passwords'. 12.1.1. Adding a User Account ----------------------------- New users can be added by the root user. Setting up a new user means: * Adding the user to the list in /etc/passwd. * Assigning an initial password. The user may change this password later. * Creating a home directory, a mail file, and startup files. While you can configure files in a text editor, the easiest way to add a user is to use the useradd and passwd tools. Log in as the root user. Then: * 1 Create the new user. Type: useradd options user . The new user is added to the end of the /etc/passwd file. _[Note]_ To fully set up a typical new account, type useradd -mk user . * 2 Create an initial password. Type: passwd user . The password is now added to the /etc/shadow file. The useradd Command (Sets Up New User) +-------------------------------------------------------------------+ | Option | Action | Comments | |---------+-----------------------+---------------------------------| | |Adds a home directory | | | |that: | | | | | | | | * Does not the same |If you do not want a home | | | name as the user |directory with these features, | |-d | name. |use the -m option . | |directory| | | | | and/or |If -d or -m is not used, then no | | | |home directory is created. | | | * Is not a | | | | sub-directory of / | | | | home. | | |---------+-----------------------+---------------------------------| |-e date |Adds an expiry date for| | | |the user account | | |---------+-----------------------+---------------------------------| | | |Enter multiple groups by name or | | |Adds groups in addition|group id ( gid) . | |-G groups|to the default one. | | | | |Separate the names with a comma | | | |and leave no blank spaces. | |---------+-----------------------+---------------------------------| | |Copies default files to|Use with the -m or -d option. | |-k |the user's home | | |directory|directory. |By default, files are copied from| | | |/etc/skel. | |---------+-----------------------+---------------------------------| | | |The default features are: | | | | | | | | * That has the same name as the| | | | user name. | | |Creates a home | | |-m |directory with the | and | | |default features. | | | | | * Is a sub-directory of /home. | | | | | | | |If you do not want both these | | | |features, then use the -d option.| |---------+-----------------------+---------------------------------| | |Disables the account |Use with the -e option, which | |-f number|after the number of |sets an expiry date. | | |days has passed. | | |---------+-----------------------+---------------------------------| | |Changes the default |If no group is specified, then a | |-g group |group. |group with the same name as the | | | |user name is created. | |---------+-----------------------+---------------------------------| |-s shell |Sets the users' shell. |If no shell is specified, then | | | |the default bash is used. | +-------------------------------------------------------------------+ 12.1.2. Deleting a User Account ------------------------------- * 1 Log in as the root user. * 2 Type: userdel -r user . _[Warning]_ The -r option removes the user's home directory and the files in it. If you want to keep the home directory, omit the -r option. 12.1.3. Editing a User Account ------------------------------ Log in as the root user. Then type: usermod options user . The options are the features to edit. The options are similar to those of the useradd command. The usermod Command (Edits User Accounts) +-------------------------------------------------------------------+ | Option | Action | Comment | |---------+-------------------------+-------------------------------| | | |Enter multiple groups by name | |-G groups|Adds groups in addition |or gid . Separate the names | | |to the initial one. |with a comma and leave no blank| | | |spaces. | |---------+-------------------------+-------------------------------| | | |Enter multiple groups by name | |-g group |Changes the default |or gid . Separate the names | | |group. |with a comma and leave no blank| | | |spaces. | |---------+-------------------------+-------------------------------| |-d |Changes the home | | |directory|directory. | | |---------+-------------------------+-------------------------------| |-l new_ |Changes the user name. |The user must be logged out | |name | |when this option is used. | |---------+-------------------------+-------------------------------| |-e date |Sets an expiry date for | | | |the user account. | | |---------+-------------------------+-------------------------------| | |Sets the number of days | | |-f number|after the expiry date |Use with the -e option, which | | |that the account is |sets an expiry date. | | |disabled. | | |---------+-------------------------+-------------------------------| | | |The user should not be | | | |executing any command when this| | | |option is used. | | | | | |-u uid |Sets the user id . |Must be a unique id . | | | | | | | |Files in the user's home | | | |directory are changed, but not | | | |files elsewhere. | |---------+-------------------------+-------------------------------| |-s shell |Sets the users' shell. |If no shell is specified, then | | | |the default bash is used. | +-------------------------------------------------------------------+ 12.1.4. Changing Individual Passwords ------------------------------------- * 1 Type passwd user . You are prompted for (current) UNIX password * You do not need to enter the user for the current account. For information about selecting a password, * 2 Enter your current password. You are prompted for your New UNIX password . * 3 Enter your new password. You are prompted to retype new UNIX password . * 4 Enter your new password again. A message displays: All authentication tokens updated successfully. The next time you log in to the account whose password you have changed, you must use the new password. 12.1.5. Choosing a Password --------------------------- A good password is one that is hard to crack. That is, it is: * A mixture of letters, numbers, symbols, and of upper and lower case. * At least six characters long. * Not based on anything associated with you, such as a birthday, a spouse's name, a pet, or a favorite sports team or movie. * Not a common word found in a dictionary. * Different from your passwords on other machines. * Different to your user account. * Not written down anywhere. 12.2. Managing Groups --------------------- User groups can define: * How users can access the system. * What files, directories, and services uses can work with. * What hardware users can work with. Some of these features are defined when the group is created. Others are created by using permissions or configuration settings. Groups are listed in the /etc/group file. Each group has a unique id ( gid ). 12.2.1. Reading the /etc/group File ----------------------------------- The /etc/group file lists all existing groups. By default, any user can view this file, but you must be logged in as the root user to edit it. Each group is defined in a line in /etc/group. Columns are separated by a colon. Information is given in the following order: group: encrypted password: group_id: users_in_group Note: * The group name generally reflects what access the group has to the system. For example, the lp group defines who can use the printer. * The encrypted password is rarely used any more. Usually, an x is added as a placeholder. * The group id is usually a number from 1 to 50. * The list of users in the group only needs to contain those who are not in the group by default. You can edit /etc/group directly in a text editor. However, often, the command line tools are easier to use. 12.2.2. Adding a Group ---------------------- * 1 Log in as root user. * 2 Type: groupadd -g gid group . You can create a group without a group id by leaving out the option. 12.2.3. Deleting a Group ------------------------ * 1 Delete the group. Logged in as root user, type: groupdel group * 2 Find files that belong to the group. Type: find -l -group group Chapter 8, `Searching for Files and Text' * 3 Change the group ownership on the files. Section 12.2, `Managing Groups' To save effort, select multiple files. 12.2.4. Editing a Group ----------------------- * 1 Select the group. Logged in as root user, type: groupmod -g gid * 2 Find files that belong to the group. Type: find -l -group group Chapter 8, `Searching for Files and Text' * 3 Change the group ownership on the files. Section 12.2, `Managing Groups' To save effort, select multiple files. 12.3. Managing Printing ----------------------- Linux includes a number of command line tools for administering printing. These commands are useful on networks, or for troubleshooting and managing printing on any system. Each printer on a Linux system has its own spool or queue in the /var /spool/lpd directory. This spool uses the short name of the printer, which is created when the printer is first configured. When a file is printed, it becomes a job in the spool. Each job is stored in a spool until it is printed. Printing tools generally start with lp (short for "line printer"). If you are familiar with other Linux commands, you can usually make a good guess at what the rest of the command should be. For example, lprm removes a print job from the spool You can use the following tools for managing printing: * lpq : Checks the status of print jobs. * lprm : Removes a print job from a spool. * lpstat : Reads the status of a spool. 12.3.1. Checking the Status of Print Jobs ----------------------------------------- Type: lpq options user . The command's name comes from the fact that a spool is sometimes called a "queue." The lpq Command (Print Jobs) +-------------------------------------------------------------------+ |Option | Action | Comments | |-------+----------------------------------+------------------------| |-l |Prints information for each file | | | |in the printer queue. | | |-------+----------------------------------+------------------------| |number |Checks the status of a job number.| | |-------+----------------------------------+------------------------| |-P |Sets the printer that a job should|Not needed to use the | |printer|use. |default printer. | +-------------------------------------------------------------------+ 12.3.2. Removing Jobs From a Printer Spool ------------------------------------------ Type: lprm options job user . The command's name comes from the fact that it removes (rm) a job from a line printer (lp). Only the root user can remove a job sent by another user. Regular users can remove their own print jobs. Use lpstat to find job numbers. See Section 12.3.3, `Reading the Status of a Printer Spool'. The lprm Command (Remove Print Jobs) +-------------------------------------------------------------------+ |Option | Action | Comments | |-------+---------------------------------+-------------------------| |-P |Sets the printer to use. |Not needed if the default| |printer| |is used. | |-------+---------------------------------+-------------------------| |- user |Removes all jobs sent by the user| | | |specified. | | +-------------------------------------------------------------------+ 12.3.3. Reading the Status of a Printer Spool --------------------------------------------- Type: lpstat -t options . 12.3.4. Printing From the Command Line -------------------------------------- Type: lpr options files . The lpr Command (Print) +-------------------------------------------------------------------+ |Option | Action | Comments | |-------+-----------------------+-----------------------------------| |-P |Selects the printer to |Otherwise, the system default is | |printer|use. |used. | |-------+-----------------------+-----------------------------------| | |Sends a symbolic link |This option saves time and disk | |-s |to the printer instead |space for large files, but may | | |of the file. |cause printing to be slower. | +-------------------------------------------------------------------+ 12.4. Managing Processes ------------------------ A process is a running program to which the Linux kernel has assigned a share of your system's resources or computing power. A process that starts when the system starts and runs in the backgrounduntil needed is a daemon. Because Linux is a multi-tasking operating system, dozens of processes of all sorts can be running at any one time. Some of the reasons that you may want to check the processes that are running include: * To Troubleshoot: Your system is not responding properly. The processes, the combination of processes, and the resources used by processes should all be examined as a routine part of troubleshooting. * To check system security: If you suspect an intruder on the system, the processes used may provide a clue. You should also check what user or group id a process is running under. In particular, check programs running by the root user and see if anything is out of the ordinary. * To close a frozen or strangely behaving program: While Linux itself is stable, the desktop has developed rapidly, and some programs that run under the X Window System behave erratically. You may also need to close a program while testing it. 12.4.1. Understanding Processes ------------------------------- Linux uses three basic types of processes: * Interactive: An ordinary program started by a user. Many commands entered from the command line are interactive processes. So is each new window opened in the X Window system. * Batch: Any process run without a command line terminal. * Daemon: A process that runs continuously. Usually, they are started when the system starts, but they can also be started by the root user. Daemons generally run in the background. You should also know: * A major characteristic of each process is its priority. If system resources are short, the priority determines what share of the resources the process uses. In extreme cases of resource shortages, the priority determines the order in which processes can use system resources. * Processes can be hierarchal. For example, the printing daemon is always running, but a new copy of it is started for an individual print job, then closed after the job is printed. The same thing happens when you open a command line, then enter a command. In both cases, the original process is called the parent, and the secondary process is called the child. Because of this type of relation, you may sometimes hear about process trees. * The opening of a secondary process is also called forking. Linux includes a number of tools for working with processes. See Section 12.4.4, `Viewing Intensive Processes'. _[Warning]_ Be careful about killing a process or changing its priority. Unless you know what you are doing, you can easily crash your system. Be especially careful of daemons, which often manage important system services and resources. Understanding Process Statistics +-------------------------------------------------------------------+ |Statistics| What It Means | |----------+--------------------------------------------------------| |command |The command used to start the process | |----------+--------------------------------------------------------| |%cpu |The percentage of processing power used by the process. | |----------+--------------------------------------------------------| |% mem |The percentage of system memory used by the process. | |----------+--------------------------------------------------------| | |The process's nice scheduling priority. The higher the | |ni |number, the lower the priority. | | | | | |Negative numbers are highest of all. | |----------+--------------------------------------------------------| |pid |Process id . Useful for killing a process. | |----------+--------------------------------------------------------| | |The process's scheduling priority. The higher the | |pri |number, the lower the priority. | | | | | |Negative numbers are highest of all. | |----------+--------------------------------------------------------| |rss |The amount of ram memory in kilobytes. | |----------+--------------------------------------------------------| |shared |The amount of shared memory used. | |----------+--------------------------------------------------------| |size |The size of the virtual image. | |----------+--------------------------------------------------------| |start |The date that the process was started. | |----------+--------------------------------------------------------| | |The state that the process is in. Common states are: | | | | | | * S: Sleep. | |stat | * T: Suspended, but running. | | | * R: Running | | | * D: Asleep and not interruptible. | | | * Z: Zombie | |----------+--------------------------------------------------------| |swap |The amount of swap memory used, in kilobytes. | |----------+--------------------------------------------------------| |time |How much cpu time the process is using. | |----------+--------------------------------------------------------| |tty |Controlling Terminal. Daemons do not have a terminal. | |----------+--------------------------------------------------------| |user |The user running the process | |----------+--------------------------------------------------------| |wchan |The kernel function which controls the process. | +-------------------------------------------------------------------+ 12.4.2. Viewing Active Processes From the Desktop ------------------------------------------------- * 1 Type: gtop . The gnome System Monitor opens. img/admin-3.png * 2 To view the details of a process in a separate window, right-click on it and select Details from the pop-up menu. * 3 To select the characteristics to display, select from the menu Settings > Preferences > Process Fields. 12.4.3. Viewing Active Processes From the Command Line ------------------------------------------------------ Type: ps options . _[Note]_ Unlike most commands, ps does not require one or two hyphens before the options. For a complete view, you must be root user. Once the display is running, you can use the O+ or O- options to add or subtract statistics from the display. The display you set by the keyboard is used in the terminal in which you are running the command as long as the terminal is open, or until you change it. The ps Command (Process Screen) +-------------------------------------------------------------------+ |Option | Action | Comment | |-------+--------------------+--------------------------------------| |l |Displays in long | | | |format | | |-------+--------------------+--------------------------------------| |u |Displays user name | | | |and start time | | |-------+--------------------+--------------------------------------| | |Does not display of | | |r |processes that are | | | |not running | | |-------+--------------------+--------------------------------------| | | |A plus sign adds a column the next | | * O +| |time you use the command in the same | | key| |terminal. | | | | | | or |Adjusts displays |A minus sign makes the column not | | | |display the next time that the command| | * O -| |is used in the same terminal. | | key| | | | | |See Display Options for the ps | | | |Command below. | +-------------------------------------------------------------------+ Display Options for the ps Command +-------------------------------------------------------------------+ | Option | To display | Comment | |---------+-------------------------------+-------------------------| | * k |The cpu time taken by the | | | * stime|process | | |---------+-------------------------------+-------------------------| | * U |The id of the process's user | | | * uid | | | |---------+-------------------------------+-------------------------| | * c |The name of the processes' | | | * cmd |binary file | | |---------+-------------------------------+-------------------------| | * g |The process's group | | | * pgrp | | | |---------+-------------------------------+-------------------------| | * p |The process's id | | | * if | | | |---------+-------------------------------+-------------------------| | * p |The process's parent's id | | | * ppid | | | |---------+-------------------------------+-------------------------| | * s |The process's size |The size is given in | | * size | |kilobytes | +-------------------------------------------------------------------+ 12.4.4. Viewing Intensive Processes ----------------------------------- The top command shows a constantly updated summary of the processes that are using the most system resources. The figures given are relative to each other, rather than representing the actual amount of ram used. Type: top options . Once the display is running, you can use keyboard commands to: * Change the details of the display, including the time between updates and the statistics shown. * Change the process or number of processes shown. * Sort the display according to different criteria. * Set a priority, as with the nice command. See Section 12.4.8, `Setting the Priority for a Process From the Command Line'. * Stop a process as with the kill command. See Section 12.4.5, `Stopping a Process From the Desktop' The top Command (Views Intensive Processes) +---------------------------------------------------------------+ | Option | Action | |------------+--------------------------------------------------| |-d seconds |To set the interval between updatings of the | | |display. | |------------+--------------------------------------------------| |-p |To display only processes with a particular id . | |process_id | | +---------------------------------------------------------------+ Keyboard Shortcuts for the top Command +---------------------------------------------------------------+ |Press.| To. . . | | . . | | |------+--------------------------------------------------------| |c |Toggle the display of the command name or full command | | |line. | |------+--------------------------------------------------------| |f |Select fields to display. | |------+--------------------------------------------------------| | |Open a prompt to enter a process id to kill and send a | |k |signal to kill it. Unless you are the root user, you can| | |only kill processes you started. | |------+--------------------------------------------------------| |l |Toggle the display of load average and uptime | | |information. | |------+--------------------------------------------------------| |m |Toggle the display of memory information. | |------+--------------------------------------------------------| |M |Sort by the use of resident memory. | |------+--------------------------------------------------------| |N |Sort by process id . | |------+--------------------------------------------------------| |n |Set the number of processes to show. Selecting 0 | |number|displays a screenful. | |------+--------------------------------------------------------| |q |Exit the display. | |------+--------------------------------------------------------| | |Set priority, as with the nice command. | |r | | | |See Setting the Priority for a Process From the Command | | |Line. (***) | |------+--------------------------------------------------------| |space |Update the display. | |bar | | |------+--------------------------------------------------------| |t |Toggle display of processes and cpu states. | +---------------------------------------------------------------+ ***) See Section 12.4.8, `Setting the Priority for a Process From the Command Line'. 12.4.5. Stopping a Process From the Desktop ------------------------------------------- * 1 Type: gtop. The gnome System Monitor opens. img/admin-4.png * 2 Select a process. A process is highlighted when selected. * 3 Right-click on the process and select Kill Nicely ( Sigterm ) from the pop-up menu. The process is killed without any confirmation dialog. _[Warning]_ Closing some proceses can crash your system or cause other problems. 12.4.6. Stopping a Process From the Command Line ------------------------------------------------ You can stop a process from the command line in three ways: * Identifying it by id . * Identifying it by the command that starts it. * Identifying it by a file that uses it. 12.4.6.1. Stopping a Process Identified by ID --------------------------------------------- Type: kill process_ids . Unless you are root user, you can only kill processes that you started. _[Warning]_ Closing a process can crash your system or cause other problems. 12.4.6.2. Stopping a Process Identified by Name or Files -------------------------------------------------------- Type: killall options command . Unless you are root user, you can only kill processes that you started. _[Warning]_ Closing some processes can crash your system or cause other problems. 12.4.6.3. Stopping a Process Identified a File Using It ------------------------------------------------------- Type: killall options file . A name with a forward slash in it is read as a file name. All processes that use that file are closed. Unless you are root user, you can only kill processes that you started. _[Warning]_ Closing some processes can crash your system or cause other problems. The killall Command (Stops Processes) +-------------------------------------------------------------------+ |Option| Action | Comment | |------+-------------------------+----------------------------------| | |Stops only processes that|If this option is not used, all | |-e |are an exact match of |processes are killed that match | | |what you enter. |the first 15 characters. | |------+-------------------------+----------------------------------| |-g |Stops all parent | | | |processes as well. | | |------+-------------------------+----------------------------------| | |Enters a confirmation | | |-i |before each process is | | | |stopped. | | |------+-------------------------+----------------------------------| |-v |Displays progress | | | |on-screen. | | +-------------------------------------------------------------------+ 12.4.7. Setting the Priority for a Process From the Desktop ----------------------------------------------------------- Linux assigns priorities for processes. However, you can set your own priorities: * 1 Type: gtop . The gnome System Monitor opens. img/admin-5.png * 2 Select a process. The process is highlighted when selected. * 3 Right-click on the process and select Renice from the pop-up menu. The Renice window opens. img/admin-6.png * 4 Drag the slider bar with the mouse cursor to set the priority. The priority is a number with a range from -20 (highest priority) to 19 (lowest priority). Only the root user can use a negative priority (-1 to -20). * 5 Select the Apply button to change the priority, then the ok button to close the window. 12.4.8. Setting the Priority for a Process From the Command Line ---------------------------------------------------------------- Linux assigns priorities for processes. However, you can set your own priorities. Type: nice -n adjustment command . In this structure: * The adjustment is a number with a range from -20 (highest priority) to 19 (lowest priority). Only the root user can use a negative priority (-1 to -20). * The command includes any options or arguments. _[Warning]_ Changing a process's priority may cause problems on your system, especially on systems with limited hardware resources or a large number of users. 12.5. Backing Up and Compressing Files -------------------------------------- Regular back ups are a basic precaution against lost of date due to security leaks, power loss, or user carelessness. _[Note]_ Use back up commands with crontab to have automatic, regularly scheduled backups. See Section 12.5, `Backing Up and Compressing Files'. Debian supports most backup devices that use ide , scsi or usb standards, or use a parallel port. These devices include tape, zip and iomega drives, as well as removable hard drives. However, for some of these devices, you may need to install a package that is not installed by default. Be prepared to do some research before backing up to such devices. 12.5.1. Planning a Backup ------------------------- Before doing a backup, plan it carefully. Consider: * Which files are irreplaceable without a back up. Irreplaceable files probably include those in users' home directories (including /root), and configuration files, such as those in the /etc/ directory. * Which files are on removable drives, such as cd s or floppies. Since you probably do not need to back up removable drives, you might unmount them before doing a complete system backup. * Which files can be easily replaced by installing a package or doing a selective install or upgrade of the operating system. You can save time and storage space by not including these files in a backup. * Which files are unnecessary or dangerous to backup. For example, files in /tmp are probably unnecessary, while restoring some files that are in the /proc directory could crash the system. * Whether to compress files using gzip or bzip2 . Compressing saves space, but adds another step to the backup. Also, while compression is generally reliable, it creates another stage at which the process can fail. * Whether users are responsible for backing up their own files. Since only the root user has full permissions for all files on the system, usually backups are best done by the root user. However, if users back up their own files, you might omit backing up the home directory, or at least not back it up regularly. 12.5.2. Choosing a Backup Tool ------------------------------ Linux has several tools for backing up and restoring files: * dump / restore : Old tools that work with filesystems, rather than files, and can back up unmounted devices. Although you can easyly control what is backed up with dump by editing a single column in the /etc/fstab file, for some reason these utilities have fallen into disuse. Today, many distributions of Linux, including Debian, do not even include them by default. If you want to use dump and restore , you must install them yourself. * tar : A standard backup tool, and by far the easiest to use. It is especially useful for backing up over multiple removable devices using the -M option. See Section 12.7, `Archiving and Compressing From the Desktop'. * cpio : A very flexible command, but one that is hard to use because of the unusual way in which the command must be entered. Many commercial or free software back up tools are also available. 12.5.3. Backing Up and Restoring Using the cpio Command ------------------------------------------------------- The cpio command is one of the most commonly used Linux back up tools. The cpio command has two unusual features: * Unlike tar , in which the files to back up are typed in as part of the command, cpio reads the files to work with from the standard input (in other words, the screen). This feature means that cpio must be used as part of a multiple command or with a redirection pipe. Examples of this usage are shown in the tables below. * cpio must always be used with one of three flags. Flags are options that set the mode in which the command runs. Only one flag can be used at a time, and it must come before any other options. In addition, the choice of flags limits the options that can be used. Each flag also has a gnu option that can used in its place. The gnu option gives a convenient name for each flag: extract, create, and pass- through. The cpio Command (Backup and Restore) +---------------------------------------------------------------+ | Flag | GNU Option | What it does | |---------+--------------+--------------------------------------| | | |Restores files from an archive that | | | |match the string. | | | | | |-i | |Metacharacters can be used in the | |options |--extract |string. See Using Metacharacters or | |string | |Wild Cards. (***) | | | | | | | |Strings should be surrounded by double| | | |quotation marks. | |---------+--------------+--------------------------------------| |-o |--create |Backs up files to an archive file. | |options | | | |---------+--------------+--------------------------------------| | | |Copies files to another directory on | |-p | |the same system. | |options |--pass-through| | |directory| |This option is useful for repeating a | | | |backup that is later burned to a cd . | +---------------------------------------------------------------+ ***) See Section 5.3.6, `Using Metacharacters or Wild Cards'. 12.5.3.1. Backing Up using the cpio Command ------------------------------------------- To do a backup, use cpio with a search command, such as find . See Section 8.4.1, `Searching for Files: Using the find Command'. The basic structure is: find -name string -print | cpio -o options > directory . In this example: * The -name option for find lets you search for a string enclosed in double quotation marks. Metacharacters can be used. See Section 5.3.6, `Using Metacharacters or Wild Cards'. The bar character ( | ) redirects the output of find to cpio . * The -o flag sets cpio to create an archive file for backing up. * The target is a directory. * The > redirection operator redirects files to the location for the back up. Typically, this location is on a removable device. The -o Flag in the cpio Command (Backup) +---------------------------------------------------------+ | Option | Action |Comments| |-------------+----------------------------------+--------| | * -A |Adds files to an existing archive.| | | * --append | | | |-------------+----------------------------------+--------| | * -v |Displays progress on-screen. | | | * --verbose| | | +---------------------------------------------------------+ 12.5.3.2. Restoring Files Using the cpio Command ------------------------------------------------ To restore files from an archive file, use cpio with a redirection pipe. Type: cpio -i options string < target . In this example: * The -i flag sets cpio to restore files. * The string describes the files to restore. Metacharacters can be used. See Section 5.3.6, `Using Metacharacters or Wild Cards'. * The < pipe redirects the files described by the string to the target. * The target is the directory to which to restore files. The -i Flag for the cpio Command (Restore) +---------------------------------------------------------------+ | Option | Action | Comments | |----------------------+-------------------+--------------------| | * -f |Copies all files | | | * --non-matching |except those that | | | |match the string. | | |----------------------+-------------------+--------------------| | |Keeps previous | | |-m |modification time | | | |on restored files. | | |----------------------+-------------------+--------------------| | * -d |Makes needed | | | * --make-directories|directories. | | |----------------------+-------------------+--------------------| | * -u |Over writes old | | | * --unconditional |files. | | |----------------------+-------------------+--------------------| | | |This option can only| | | |be used by the root | | | |user. | | * -R user group |Reassigns file | | | * --owner user group|ownership. |If no user is | | | |specified, the root | | | |user becomes the | | | |owner. | |----------------------+-------------------+--------------------| |-r |Renames files. |Provide new file | | | |names when prompted.| |----------------------+-------------------+--------------------| | * -t |Displays files in |Use with the -v | | * --list |the archive. |option to display | | | |file attributes | |----------------------+-------------------+--------------------| | * -v |Displays progress | | | * --verbose |on-screen. | | +---------------------------------------------------------------+ 12.5.3.3. Copying Files for Later Backup ---------------------------------------- The -p option for cpio is useful when you do not want to copy files immediately to the backup device. You might want to prepare the backup first in order to see its size, or to compress the files before backup. Similarly, if you are creating a cd , copying the files directly to the cd is unreliable or difficult with some cd burning software. To do a copy for later backup, use cpio with a search command, such as find . See Section 8.4.1, `Searching for Files: Using the find Command' . The basic pattern is: find -name string -print | cpio -p options > target . In this example: * The -name option for find lets you search for a string enclosed in double quotation marks. Metacharacters can be used. See Section 5.3.6, `Using Metacharacters or Wild Cards'. * The bar character ( | ) redirects the output of find to cpio . * The -o flag sets cpio to create an archive file for backing up. * The target is a directory. * The > redirection operator redirects files to the location for the back up. Typically, this location is on a removable device. The -o Flag in the cpio Command (Backup) +---------------------------------------------------------+ | Option | Action |Comments| |-------------+----------------------------------+--------| | * -A |Adds files to an existing archive.| | | * --append | | | |-------------+----------------------------------+--------| | * -v |Displays progress on-screen. | | | * --verbose| | | +---------------------------------------------------------+ The -p Flag for the cpio Command (Delayed Backup) +---------------------------------------------------------------+ | Option | Action | Comment | |-----------------------+------------------+--------------------| | * -a |Resets | | | * --reset-access-time|modificationtimes.| | |-----------------------+------------------+--------------------| | * -d |Makes directories | | | * --make-directories |as needed. | | |-----------------------+------------------+--------------------| | * -f |Keeps previous | | | * --non-matching |modification time | | | |on restored files.| | |-----------------------+------------------+--------------------| | |Keeps original | | |-m |modification | | | |times. | | |-----------------------+------------------+--------------------| | | |Use as root user. | | |Reassigns | | | * -R user group |ownership of the |If no user is | | * -- owner user group|file. |specified, then the | | | |owner becomes the | | | |root user. | |-----------------------+------------------+--------------------| | * -u |Overwrites old | | | * --unconditional |files. | | |-----------------------+------------------+--------------------| | * -v |Displays progress | | | * --verbose |on-screen. | | +---------------------------------------------------------------+ 12.6. Scheduling Jobs --------------------- You can schedule a command or a script using two tools: * crontab : Schedules tasks once or repeatedly. * at : Schedules tasks once. 12.6.1. Scheduling With the crontab Command ------------------------------------------- You can use the crontab command to run commands at regular times. For example, you could schedule a backup of your files every Friday. Commands can be scheduled to the minute. _[Note]_ If you want to schedule a command to run only once, look into the at command. The crontab command works by reading a crontab file. A crontab file is a plain text file that lists all the jobs you have scheduled. Each line of the crontab file consists of the command with all its options and arguments, and the date and time to run it. By default, all users can set up their own crontab files. However, the root user can use two files to control access: * /etc/cron.allow: If this file exists, only users listed in it can use crontab. * /etc/cron.deny: If this file exists, users listed in it cannot use crontab. All crontab files are stored in the /var/spool/cron/crontabs/ directory. However, since regular users do not have read or write permission to this directory, they must use the crontab command to schedule jobs. In addition, many system administrators use three files to schedule jobs: etc/cron.daily, /etc/cron.weekly, and /etc/cron.monthly. As the names suggest, these directories contain regularly scheduled jobs that run at daily, weekly or monthly intervals. To use a crontab file: * 1 Type: crontab options user or crontab -e . Only the root user can specify another user's crontab file. The crontab file opens in the vim editor. The first time that you use a file, it is blank. * 2 Enter the file, and save it. See Section 12.6.1.1, `Editing and Reading a crontab File'. The crontab Command (Scheduling) +---------------------------------------------------------------+ |Option| Action | Comment | |------+-----------------------+--------------------------------| | |Opens a user's crontab |If no user is specified, the | |-e |file in the vi text |crontab file opened is the | | |editor. |current user's. | |------+-----------------------+--------------------------------| |file |Creates a crontab file.|Mostly useful for placing the | | | |file in a non-standard location.| |------+-----------------------+--------------------------------| |-l |Views a user's crontab |Usable only by the root user. | |user |file. | | |------+-----------------------+--------------------------------| |-r |Removes a user's |Usable only by the root user. | |user |crontab file. | | |------+-----------------------+--------------------------------| |-u |Sets which user's | | |user |crontab file is |Usable only by the root user. | | |affected. | | +---------------------------------------------------------------+ 12.6.1.1. Editing and Reading a crontab File -------------------------------------------- To edit a crontab, type crontab -e user . The file opens in the default editor for the current user. Each line in a crontab file schedules a single task. _[Note]_ If you need to use a percentage sign, put a back slash in front of it: % . Otherwise, it is read as the start of a new line, and the command does not run. Each line consists of six columns, each one separated by a line or a tab. Each of the first five columns is an option for setting the date and time. Each of the first five columns can specify: * A particular date or time. * A series of dates or times, with a comma between them. * A range of dates or time, beginning with the start, with a hyphen between them. See Section 12.6.1.2, `Column Entries in a Crontab File'. The sixth column is the command to run, including options and arguments. No quotation marks are need to enclose the command. For example, 0 12 * * * /usr/share/bin/alarm would run a script called alarm every day at noon. _[Note]_ Jobs only run if the time and date match all column settings. Setting column 3 to 1 and column 5 to 1 would only run a job when the first of the month falls on a Monday. _[Note]_ No validity check is made. Nothing stops yo, for example, from setting column 3 to 31 and column 4 to 2, setting the time to February 31. 12.6.1.2. Column Entries in a Crontab File ------------------------------------------ +-------------------------------------------------------------------+ | Column or Option |Argument | Comments | | | | | | (from left to | | | | right) | | | |------------------+---------+--------------------------------------| | 1. 1 Minute |0-59 | | |------------------+---------+--------------------------------------| | 1. 2 Hour |0-23 |0 is midnight. | |------------------+---------+--------------------------------------| | 1. 3 Day of the |1-31 | | | month | | | |------------------+---------+--------------------------------------| | 1. 4 Month |1-12 | | |------------------+---------+--------------------------------------| | 1. 5 Day of the |0-6 |0 is Sunday. | | week | | | |------------------+---------+--------------------------------------| | | |Options or arguments can be included. | | 1. 6 Job |any | | | |command |No quotation marks are needed around | | | |the string. | |------------------+---------+--------------------------------------| | | |All possible entries. | |Any column |* | | | | |Use in the first five columns. | |------------------+---------+--------------------------------------| | | |No entry. | |Any column |- | | | | |Use in the first five columns. | +-------------------------------------------------------------------+ 12.6.2. Scheduling With the at Command -------------------------------------- You can use the at command to schedule a command or script to run a single time. The command includes several utilities. See Section 12.6.2.1, `Using the at Utilities'. _[Note]_ If you want to schedule a command more than once, look into the crontab command. By default, only the root user can use the at command. However, the root user can use two files to allow regular users the command: * /etc/at.allow: If this file exists, only users listed in it can use the command. * /etc/at.deny: If this file exists, users listed in it cannot use the command. The at command depends on a plain text file. This file lists commands or scripts, one per line. The end of the file must be marked by on a line by itself. The time for a task can be set using several formats. The simplest is a 24 hour clock in the hh:mm format, followed by the date in the mm: dd:yyyy format. You can enter commands by entering: * The name of a plain text file in which commands or scripts are listed, one per line. Type: at -f file command time date . * By entering the time and entering the commands at an at prompt, one per line. The end of the file must be marked by on a line by itself. Type: at time date . This method is especially useful if you are entering multiple commands. The at Command (Scheduling): Options +---------------------------------------------------------------+ |Option | Action |Comment| |-------+-----------------------------------------------+-------| |-c task|Displays listed tasks. | | |-------+-----------------------------------------------+-------| |-d task|Deletes the specified tasks. | | |-------+-----------------------------------------------+-------| |-f file|Read tasks from the file entered. | | |-------+-----------------------------------------------+-------| |-l |Lists all tasks scheduled for the current user.| | |-------+-----------------------------------------------+-------| |-m |Sends mail to the user when the task is run. | | +---------------------------------------------------------------+ The at Command (Scheduling): Time Formats +---------------------------------------------------------------+ | Option | Action | Comment | |--------+---------------------------+--------------------------| | | |The day can be spelled out| |day |Sets the day of the week. |or abbreviated to its | | | |first three letters. | |--------+---------------------------+--------------------------| |hh:mm | |Use either a 24 hour clock| |modifier|Sets the time. |or a 12 hour clock, | | | |modified by am or pm . | |--------+---------------------------+--------------------------| |midnight|Sets the time to 12:00 am .| | |--------+---------------------------+--------------------------| | | |If the month is before the| |mmddyyyy|Sets the date. |current month, the command| | | |runs next year. | |--------+---------------------------+--------------------------| |noon |Sets the time to 12:00 pm .| | |--------+---------------------------+--------------------------| | |Runs the command | | |now |immediately or at the same | | | |time on the specified day. | | |--------+---------------------------+--------------------------| |teatime |Sets the time to 4:00 pm . | | |--------+---------------------------+--------------------------| |today |Runs the command today. | | |--------+---------------------------+--------------------------| |tomorrow|Runs the command tomorrow. | | +---------------------------------------------------------------+ 12.6.2.1. Using the at Utilities -------------------------------- The at command can be controlled by two utilities: * atrm : Deletes tasks. Type: atrm job . * atq : Lists tasks for the current user, or all jobs if used by the root user. Type: atq . 12.7. Archiving and Compressing From the Desktop ------------------------------------------------ By default, Debian installs the gui tar program in the main menu. Despite the name, guitar uses the tar, gzip, and gzip2 utilities, as well as several others. * 1 From the main menu, select Programs > Utilities > gui tar . The gui tar window opens. img/admin-7.png * 2 Select a task from the tool bar: * New: Create a new archive. You can select: * The tool to use. * The level of compression. * The files to add to the archive. * Open: Open an existing archive. * Close: Close the display of an existing archive. * Add: Add files to an existing archive. You can select the archive from a file manager. * View: Browse an existing archive. * Extract: Choose an archive, and the files to extract from it. * Delete: Choose an archive, and the files to delete from it. 12.8. Compressing and Archiving Files From the Command Line ----------------------------------------------------------- Compressing and archiving files are useful for making backups and e-mail attachments. Compression reduces the size of files and places them in a single file. Archving creates a single file in which to store multiple files. In both cases, the individual files cannot be accessed by file managers or normal commands for manipulating files. Instead, you must use special tools designed for the utility that you used for compression. The processes of decompressing and unarchiving are both referred to as extracting. You can use special commands for extracting, or options in the same tools that you use for compressing or archiving. Archived files are called tar files, tarred files, or tarballs. Linux includes several tools for compressing and archiving: * tar : mainly an archive tool, but also compresses files. Many long time users prefer tar to the alternatives. * gzip : a compression tool. Sometimes, gzip can decompress a zip file from another operating system, but do not confuse the two formats or expect them to be always interchangeable. * bzip2 : another compression tool, The bzip2 tool is capable of greater compression than gzip , and includes a recovery tool, but less widely used. In addition, Linux includes tools for viewing, searching, and comparing files compressed using gzip . 12.8.1. Archiving and Compressing Using the tar Command ------------------------------------------------------- The tar command can compress as well as archive files. Its -z option is equivalent to using the gzip command. An archive file has a .tar extension. An archive file that is also compressed has a .tgz extension. At times, an archived and compressed file will have a tar.gz extension The tar command is some times used for back ups. However, cpio is often used instead, because it offers more control over back ups. See Section 12.9, `Checking or Repairing a File System'. Type: tar options archive files . The archive is the tar file to create or extract from. If it does not exist, it is created by the command. Separate each file name by a space. The tar Command (Archive) +-------------------------------------------------------------------+ | Option | Action | Comment | |--------------------------+----------------+-----------------------| | |Keep original | | | * --atime-preserve |time stamps on | | | |extracted files.| | |--------------------------+----------------+-----------------------| | * -c |Creates a new | | | * --create |archive file. | | |--------------------------+----------------+-----------------------| | * -d tarfile files |Compare the |Missing files, sizes | | * --compares tarfile |files in a tar |and attributes are | | files |file with other |reported on. | | |files. | | |--------------------------+----------------+-----------------------| | |Excludes a file | | | * --exclude file |from archiving | | | |or extracting. | | |--------------------------+----------------+-----------------------| | |Extracts files | | | * -k |without |An error message | | * --keep-old-files |overwriting |displays if there are | | |files with the |conflicts. | | |same name. | | |--------------------------+----------------+-----------------------| | |Splits over | | | * -M |multiple |Works with tapes or | | * --multivolume |removable |floppies. | | |devices. | | |--------------------------+----------------+-----------------------| | |Excludes files | | | * -N date |older than the | | | * --after-date date |date entered | | | |from the | | | |archive. | | |--------------------------+----------------+-----------------------| | * -P |Keeps absolute |See Understanding | | * --absolute-paths |paths. |Absolute and Relative | | | |File Paths. (***1) | |--------------------------+----------------+-----------------------| | |Keeps | | | * -p |permissions of |See Changing | | * --same-permissions |files unchanged |Permissions. (***2) | | * --preserve-permissions|when they are | | | |archived. | | |--------------------------+----------------+-----------------------| | |Adds a tar file |The second file listed | | * -r |to the end of |in the command is added| | * --append |another one. |to the end of the | | | |first. | |--------------------------+----------------+-----------------------| | |Removes files | | | * --remove-files |after they are | | | |added to a tar | | | |file. | | |--------------------------+----------------+-----------------------| | * -t |Displays files | | | * --list |in an archive. | | |--------------------------+----------------+-----------------------| | | |Files are only added if| | * -u |Updates an |they are new than files| | * --update |archive. |of the same name that | | | |are already in the | | | |archive. | |--------------------------+----------------+-----------------------| | * -v |Displays actions| | | * --verbose |on-screen. | | |--------------------------+----------------+-----------------------| | |Asks | | | * -w |confirmation |Enter y for Yes, and n | | * --interactive |before working |for No. | | |with each file. | | |--------------------------+----------------+-----------------------| | |Checks for | | | * -W |errors in | | | * --verify |archiving or | | | |extracting. | | |--------------------------+----------------+-----------------------| | * -x |Extracts files | | | * --extract |from an archive.| | | * --get | | | |--------------------------+----------------+-----------------------| | * -z |Compress or |--compress can also be | | * -Z |uncopresses |used to compress. | | |using gzip. | | +-------------------------------------------------------------------+ ***1) See Section 8.2.2, `Understanding Absolute and Relative File Paths'. ***2) See Section 9.19, `Changing Permissions'. 12.8.2. Compressing and decompressing Files With the gzip Command ----------------------------------------------------------------- The gzip command is one of the two Linux tools for compressing and decompressing files. The other is bzip2 . The bzip2 command can compress files more, but gzip is more common, and can sometimes read zipped files, or compressed files created with the obsolete tool compress . A file compressed using gzip has a .gz extension. Type: gzip options files . Separate file names with a space. The gzip command has several related utilities: * zcat : Displays files in a gzip archive. * zcmp : Compares files in a gzip archive. * zdiff : Compares files in a gzip archive. * zgrep, zegrep, zfgrep : Search for text patterns in files in a gzip archive. * gunzip : decompresses files. However, gzip -d also decompresses. All these commands have the same format as gzip . They can use the same options as the versions of the commands used for uncompressed files. The gzip Command (Compress) +-------------------------------------------------------------------+ | Option | Action | Comment | |----------------+------------------------+-------------------------| | |Sets the amount of |The default setting is 6.| | |compression to greatest | | |--best |setting (on a scale of 1|When the compression is | | |to 9). |greatest, the speed of | | | |compression is slowest. | |----------------+------------------------+-------------------------| | * -d |Extracts compressed | | | * --decompress|files. | | | * --decompress| | | |----------------+------------------------+-------------------------| | |Sets the compression to |When the speed of | |--fastest |the fastest setting (1 |compression is greatest, | | |on a scale of 1 to 9). |the amount of compression| | | |is least. | |----------------+------------------------+-------------------------| | * -f |Forces compression. | | | * --force | | | |----------------+------------------------+-------------------------| | * -N |Keeps original name and | | | * --name |time stamp. | | |----------------+------------------------+-------------------------| | * -n |Discards original name |This is the default | | * --no-name |and time stamp. |setting for | | | |decompressing. | |----------------+------------------------+-------------------------| | |Sets the speed and |1 is the fastest, 9 the | |-number |amount of compression on|most compressed. | | |a scale of 1 t0 9. | | | | |The default setting is 6.| |----------------+------------------------+-------------------------| | * -r |Includes sub-directories| | | * --recursive |and their contents. | | |----------------+------------------------+-------------------------| | * -v |Displays progress |The file and the amount | | * --verbose |on-screen. |of compression display. | +-------------------------------------------------------------------+ 12.8.3. Compressing and decompressing With the bzip2 Command ------------------------------------------------------------ The bzip2 command is one of two tools for compressing and decompressing files. The other is gzip . The gzip command is more common, but bzip2 's compression is 10 to 20 percent greater, depending on the file. Compressed files made with bzip2 have a .bz2 extension. Type: bzip2 options files . Separate each name with a space. The bzip2 command has three related utilities: * bzipcat : Displays the contents of a file in a bzip compressed file. Uses the same options as the cat command. * bziprecover : Helps to recover damaged compressed files. * bunzip2 : decompresses files. However, many users prefer bzip2 -d for decompressing files. All these utilities have the same command format as bzip2 . The bzip2 Command (Compress) +-------------------------------------------------------------------+ | Option | Action |Comments| |----------------+-----------------------------------------+--------| | * -d |Decompresses files. | | | * --decompress| | | |----------------+-----------------------------------------+--------| | * -f |Over writes existing files. | | | * --force | | | |----------------+-----------------------------------------+--------| | * -k |Keeps original files once a compressed | | | * --keep |file is made. | | |----------------+-----------------------------------------+--------| | * -v |Displays progress on screen. | | | * --verbose | | | |----------------+-----------------------------------------+--------| | * -z |Compresses files. | | | * --compress | | | +-------------------------------------------------------------------+ 12.9. Checking or Repairing a File System ----------------------------------------- The native Linux filesystem (ext2) does not need to be defragmented. However, occasionally, you may need to check a partition's file allocation and make repairs. Type: fsck options filesystem or fsck options mountpoint . Note that: * By default, repairs are done without prompting. * Two ways of specifying a filesystem exist. You do not need to specify a filesystem if you use the -t or -A options. * This check is also run when the system starts if it was not shut down gracefully or after a predefined number or reboots. _[Note]_ Linux partitions do not need defragmenting. fat 16 and fat 32 filesystems can be defragmented under another operating system. The fsck Command (Checks Filesystems) +-------------------------------------------------------------------+ |Option| Action | Comment | |------+----------------------------+-------------------------------| |-A |Checks all filesystems | | | |listed in /etc/fstab. | | |------+----------------------------+-------------------------------| |-r |Prompts before each repairs | | | |is done. | | |------+----------------------------+-------------------------------| | |Checks all filesystems | | |-R |listed in /etc/fstab except |Use with -A. | | |the root partition. | | |------+----------------------------+-------------------------------| | | |Common types are: | | | | | | | | * ext2 : The native Linux | | | | format. | |-t |To only check filesystems of| * swap : Linux swap file. Use| |type |a certain type | only for the swap file. | | | | * vfat :The format for | | | | Windows 98, me , and the | | | | second release of Windows | | | | 95. | | | | * iso9660: cd drive | +-------------------------------------------------------------------+ ------------------------------------------------------------------------------- 13. Configuring the System -------------------------- Debian automatically configures your system during installation. However, you may need to use other configuration methods if: * Your system works, but some settings can be improved. * Your system works, but you want to lower the settings to save system resources or improve speed. * You want to make adjustments based on personal preferences. * A device is not detected. This chapter explains how to set up basic hardware, as well as many parts of your everyday working environment. It covers: * Hardware. * Partitions. * Networks and internet connections * Graphical displays. * Other settings you might want to customize. 13.1. Understanding Configuration Methods ----------------------------------------- Linux includes dozens of configuration tools, from command line utilities that ask you questions to graphical interfaces. However, the most common in Debian are: * dpkg-reconfigure , which configures using simple question and answer dialogues. Two useful tools are etherconf and pppconf . * The System tools in the gnome Control Center. These are similar to the tools that you used during installation. * Text editors for manual editing of configuration files. This method requires exact knowledge, but allows complex configuration and is always available so long as you have a text editor. For expert users, this is often the tool of choice. _[Note]_ Hardware connected with the graphical display including the monitor, video card, and pointer can be configured by editing the profiles in the /etc/X11/Xf86Config-4 file. In each section of the file, the first profile is used by default. * The kernel, which can be customized and recompiled. This method requires exact knowledge, and can be intimidating to new users. However, it may be necessary, especially if hardware is undetected. 13.1.1. Understanding the System Settings ----------------------------------------- Debian includes the tools used to configure during the install as part of the gnome Control Center. 1. Do one of the following: * From the panel, select the Control Center icon from the panel. * From the menu, select Settings > System. * From the menu, select Programs > Settings > System. 2. Select the configuration tool to use. Choice are: * Date and Time. * Electronic Mail. * Network. * Printer. * X Configuration (Display). 13.1.2. Understanding Manual Configuration ------------------------------------------ Most configuration files are found in the /etc/ directory. Configuration file can be changed in a text editor. Dozens of text editors are available, but you should learn either a variant of vi or emacs . At least one of these editors should be available on any Linux system. By default, Debian uses vim (" vi improved") editor. Manual configuration is especially useful if you are using single-user mode, or do not have the X Window System running. For more information on your preferred text editor, see its on-line help. 1. Prepare an emergency disk if you do not already have one. 2. Log in as root. 3. Make an extra copy of the file you are editing. 4. Edit and save the file in a text editor. _[Note]_ As an extra precaution, write down the changes you have made. 5. In some cases, you may have to restart the X Window System or your computer for the changes to take effect. 13.1.2.1. Recovering from Errors While Manually Reconfiguring ------------------------------------------------------------- If changing settings may make your system unusable, you can recover by following these steps: 1. Start your machine with a boot disk or select single-user mode from the boot manager. 2. Type: cp -f backup file . The backup the configuration file overwrites the damaged file. 3. Restart your system. The damage to your system is now repaired. _[Note]_ If you wrote down the changes you made, you can also edit the configuration file in a text editor. 13.1.2.2. Using the vim Text Editor ----------------------------------- The vim editor is an enhanced version of vi, one of the standard text editors. Like vi, vim has two modes: * Command mode: For entering keyboard commands about the program or the file being edited. * Insert mode: For editing a file. Type vim to start. To open vim with a file, type vim file. _[Note]_ Using these two modes may be confusing if you are unfamiliar with them, so practice using vim enough so that you are comfortable enough to use it in an emergency. 13.1.2.3. Basic vim Commands ---------------------------- +-------------------------------------------------------------------+ | Key | What it Does | |Strokes | | |--------+----------------------------------------------------------| |/ text |Searches for the text entered. The search starts from the | | |cursor's position. | |--------+----------------------------------------------------------| |: file |Opens the file named. | |--------+----------------------------------------------------------| |:q |Quits vim without saving. | |--------+----------------------------------------------------------| |:w |Saves open file. | |--------+----------------------------------------------------------| |^r |Redo an action that was undone. | |--------+----------------------------------------------------------| |Esc |Starts command mode. | |--------+----------------------------------------------------------| |h |Moves the cursor one character to the left. | |--------+----------------------------------------------------------| |i |Starts insert mode. | |--------+----------------------------------------------------------| |j |Move the cursor down to the next line. | |--------+----------------------------------------------------------| |k |Moves the cursor up to the next line. | |--------+----------------------------------------------------------| |l |Moves the cursor one character to the right. | |--------+----------------------------------------------------------| |p |Pastes to the clipboard. | |--------+----------------------------------------------------------| |R |Starts over writing. | |--------+----------------------------------------------------------| |u |Undo last action. | |--------+----------------------------------------------------------| |x |Deletes the character at the cursor. | |--------+----------------------------------------------------------| |yw |Moves the current word to the clipboard. | |--------+----------------------------------------------------------| |yy |Moves the current line to the clipboard. | +-------------------------------------------------------------------+ 13.1.3. Recompiling a Kernel ---------------------------- The Linux kernel contains the drivers for hardware, filesystems, and other features of the operating system. Since each piece of hardware or feature has its own module, you can make your operating system quicker and more efficient by only loading support for what is actually on your system. You may need to reconfigure the kernel when you add or remove hardware or other features. You can also temporarily enable a module, with the modprobe command. However, if you reboot the system, you will need to use the command again. Making permanent changes to the kernel consists of three steps: 1. Editing the kernel. 2. Building or compiling the kernel. 3. Installing the kernel. However, before configuring the kernel, you should gather information about the present configuration, and prepare carefully so that you can recover from accidents. 13.1.3.1. Finding Kernel and Module Information ----------------------------------------------- * For a list of currently loaded kernel modules, type: modprobe -l * To see the version of the kernel you are currently using, type: uname -r . 13.1.3.2. Preparing to Build a Kernel ------------------------------------- * Prepare a usable rescue disk. If the kernel does not work after you build it, the rescue disk gives you a way to start your system and correct the problem. See Section 13.3.5, `Making a Bootable Recovery Disk'. * Make a copy of your current kernel and give it a different name. Usually, your kernel is /boot/vmlinuz*. The kernel number usually follows the file name - for example, vmlinuz-2.2.18 or vmlinuz-2.4.2. If you are unsure of your kernel's name, check the boot manager entries. * Add a stanza for your newly-named current kernel to the boot manager. By adding this entry, you ensure that you can start your system if the kernel does not work after you build it. See Section 13.3.4, `Configuring the Boot Loader'. * Gather information about any hardware whose settings you are enabling or changing. Use the manuals, the system's bios settings, and Linux's information commands to find the information you need. See Chapter 10, `Reading System Information'. 13.1.3.3. Selecting Modules --------------------------- The first step in configuring the kernel is to select the modules to enable: 1. While logged in as root user, type cd /usr/src/linux . 2. Open one of the kernel editing tools: * make menuconfig : a command line tool with a basic interface. * make xconfig : a desktop tool. The easiest tool to use is xconfig . However, it is not always current. _[Note]_ To use one of these tools, unarchive /usr/src/kernel-source-2.2.18. tar.bz2. 3. Follow the on-screen instructions to edit the kernel. Refer to the information you gathered beforehand as necessary. 4. Exit the editing tool. The file /usr/src/linux/.config is created. It contains a list of your selections that is used to build the kernel. 13.1.3.4. Building the Kernel ----------------------------- Building or compiling the kernel is the second step in configuring the kernel. 1. Select the modules to enable. See Section 13.1.3.3, `Selecting Modules'. 2. Regenerate dependency files. Type: make dep clean . 3. Create the kernel image. Depending on whether you want the file is compressed using gzip or bzip2, type either make zImage or make bzImage . The file /usr/src/linux/arch/i386/boot/zImage (or bzImage) is created. The name of the directory below /arch may change, depending on what processor you enabled in the kernel. 4. Build and install modules. Type: make modules modules_install . This string includes two commands, make modules and make modules_install. _[Note]_ You can install automate kernel building by installing the package called kernel-package . Once it is installed, you only need to type: make -kpkg kernel_image 13.1.3.5. Installing a Kernel ----------------------------- Installing a kernel is third step in configuring a kernel. 1. Build the kernel. See Section 13.1.3.4, `Building the Kernel'. 2. Move zImage (or bzImage) to the root partition, renaming it. The /boot directory is the conventional location. Traditionally, the kernel is vmlinuz . If you have several versions of a kernel, add a suffix identifying the kernel version or some unique aspect of the kernel. For instance, if only one kernel has scsi support, you could name it vmlinuz-scsi . 3. If necessary, add the new kernel to the boot manager. See Section 13.3.4, `Configuring the Boot Loader'. 4. Create a new boot disk. See Section 13.3.5, `Making a Bootable Recovery Disk'. You can now start your system with the new kernel by selecting it from the boot manager when you start your computer. If you have any problems, you can use the older kernel to start your system. 13.2. Configuring Hardware -------------------------- Linux hardware support is rapidly improving. However, Linux still cannot run as much hardware as some popular operating systems. Before buying hardware for your Progeny Linux System, check that it runs under Linux. If the hardware is supported, Debian should generally detect it once it is added. As a general rule, if Linux supports your scsi controller card, then you should be able to use any scsi software, including scanners, cd drives, and removable drives, including Iomega Bernoulli and Zip drives, and Syquest drives. Support for ide hardware is more varied. In some cases, you need to install a driver or recompile the kernel before an ide device is usable. usb support is just starting to become commonplace for Linux. For this reason, check compatibility before purchasing new software. You can check the support for a particular piece of hardware by: * Contacting the manufacturer. * Doing an internet search on the manufacturer and model. Look for hardware compatibility lists, how-tos, and discussion groups in which people describe their experiences. * Contacting Progeny Linux Systems or posting to the Debian mailing lists. Once you add the hardware to your system, it should generally be detected automatically. However, in some cases, you may need to configure it. This section outlines some of the more common hardware issues: * Configuring a printer. * Configuring a sound card. * Setting up Palm synchronization. * Setting up a scanner. 13.2.1. Configuring a Printer ----------------------------- img/System-2.png _[Note]_ Because of the complexities of the Linux printing system manual configuration of printers is recommended only for experienced users. In particular, because Debian uses magicfilter , direct editing of the /etc/printcap file could cause problems. 1. Select Systems > Printer from the gnome Control Center. _[Note]_ If you are using the kde desktop, type /usr/bin/ printer-configlet-capplet at a command line. 2. Select the Printer definition to create or edit. If you have not created a Printer definition already, you can only select New. 3. Enter a short name and a long name for the printer definition. These names can help you identify the printer. The short name appears on the printer spool,which stores files before they are sent to the printer, and in configuration files. The long name is used mainly to help you identify the printer. At some companies, printers are named with a theme, such as animals or famous people. However, names based on some combination of the manufacturer, model, and or path name of the printer may be easier to work with. 4. Select the location of the printer: * Local: the printer is attached to the machine on which you are installing. You need to enter the device to which the local printer is attached. Usually, the device will be the first parallel port, /dev/lp0. * Remote: The printer is on a network to which your machine is attached. You need to enter: * The hostname: The machine to which the printer is attached. * The printer name: The name of the printer on the system to which it is attached. If you do not have this information, consult your system administrator. 5. Select the printer driver from the list. Printers are listed by manufacturer, then by model. If your printer is not listed, it may be able to emulate one that is. Hewlett-Packard Laserjet drivers for both postscript and non-postscript printers work for many other makes and models of printers. 6. Select the Apply button to enter the printer definition. 7. Select the default printer. If you entered only one printer definition in the previous screen, then it is already listed as default. 8. Select the default paper size. If you are North American, you can use the default Letter. If not, you probably want A4. 13.2.2. Configuring a Sound Card -------------------------------- Debian detects most sound cards automatically. However, in some cases, you may need to configure sound support in the kernel. See Section 13.1.3, `Recompiling a Kernel'. Before editing the kernel, you need to know your card's: * irq numbers. * dma channels. * Port addresses. If your card is already installed, you can find information about it: * In /proc/sound. * The computer's bios settings. * The sound card's manual, which may list defaults. * From the tools of another operating system on which the card is already installed. 13.2.2.1. Installing Plug and Play Sound Cards ---------------------------------------------- Instead of configuring the kernel, you can use a command tool to enable cards that support the Plug and Play standard: 1. Type: pnpdump> /etc/isanp.conf . 2. Open isapnp.conf in a text editor. 3. Uncomment the settings you want to try. Remove the hash marks (#) from the lines on which the settings are listed. 4. Save the file, and then reboot your system. 5. To check whether sound is enabled, start a program that uses sound. If you have none, enable sound for the desktop in the Control Center. 13.2.3. Setting Up Personal Information Devices ----------------------------------------------- Debian is not installed with support for personal information devicess. However, you can add this support by installing some packages. 1. Install the cradle for the device. Follow the instructions that accompany it. 2. If the device is connected to a serial port, add the user account from which the device is to be used to the dialout group. Type: adduser user dialout . 3. Install the pilot-link and pilot-link-perl packages. See Chapter 11, `Installing, Removing, and Upgrading Software'. 4. Install synchronization packages. Many are available, including: * pilot-manager : A basic synchronization package. * gnome-pilot and gnome-pilot-conduits : Synchronization packages for the gnome desktop. They are accessible from the gnome Control Center under Peripherals. You must setup gnome-pilot before using any of the conduits. * jpilot : A synchronization tool not specific to a desktop. 5. Continue by following the instructions included with the packages you install. 13.2.4. Setting Up a Scanner ---------------------------- Debian is not installed with the software needed for scanners. However, you can add support by installing one of several packages. Linux supports most scsi scanners. More recently, support for many usb scanners is also available. 1. Install the scanner. Follow the instructions that accompany it. 2. Install one of the following packages: * sane : A basic set of utilities for use with scanners. * sane-gimp : A set of scanner utilities that can be run separately or used within the gimp , the graphics tool included in most Linux distributions. * xsane : An alternative set of utilities for scanners. * xsane-gimp : An alternative set of scanner utilities that can be run separately or used within the gimp , the graphics tool included in most Linux distributions. See Chapter 11, `Installing, Removing, and Upgrading Software'. _[Note]_ To run the gimp , right-click on the workspace, then select New > The gimp . 3. Continue by following the instructions that come with the package 13.3. Configuring Partitions ---------------------------- Linux users often spend more time configuring partitions than the users of other operating systems. Many users prefer to mount important directories on different partitions, either to control the space used by certain files, or to make recovery from disaster easier. Even more have multiple operating systems on the same machine, and not only have to divide their hard drives into more partitions, but also need to use a boot loader to select a operating system when their computers start. This section covers: * Partitioning a hard drive. * Mounting and unmounting partitions. * Creating swap partitions. * Configuring the boot loader. 13.3.1. Partitioning a Hard Drive --------------------------------- The fdisk and cfdisk commands are standard Linux utilities. However, these commands are limited by the fact that they cannot manipulate a partition while preserving data. Instead, Progeny recommends that you use the parted ("partition editor") utility for manipulating partitions whenever possible. Although a command line utility, parted has much of the functionality of commercial on-the-fly partitioning tools. The utility allows you to create, delete, resize, and move partitions. You can use it with a Linux native (ext2) partition, a swap partition, or a fat 32 partition. 1. Back up all important information. While parted is generally safe to use, interruptions to your computer's problems or other accidents could destroy information. 2. At a command line, type: parted. The parted command line starts. At any time, you can type help for a list of available commands. 3. Type select drive to move to the hard drive you want to partition. By default, parted uses the first hard drive it finds. 4. Type print to see a list of partitions on the current hard drive. This information is especially useful when you need to know the start and end point of a partition that you are creating. 5. Enter the commands you want to use. _[Warning]_ If you are creating partitions, wait at least five minutes per partition to ensure that the partition is created. The parted utility does not indicate when it is finished. 6. Type quit to exit the parted command line for the general bash shell. _[Note]_ For information on how Linux names devices, See Section 2.2.5, `Reading Linux Device Names'. 13.3.1.1. The parted Command (Partitioning): Commands ----------------------------------------------------- +-------------------------------------------------------------------+ | Command | Action | |-------------+-----------------------------------------------------| |check |Checks for bad blocks on the partition. | |partition | | |-------------+-----------------------------------------------------| |mklabel |Give an existing partition a label. | |partition | | |-------------+-----------------------------------------------------| | |Formats an existing partition. | | | | | |Values for the filesystem are: | |mkfs | | |partition | * ext2: The native Linux filesystem. | |filesystem | * linux-swap : The Linux swap filesystem. | | | * fat : fat 32, the Windows filesystem. | | | | | |These values are different from the ones used in | | |mounting and unmounting filesystems. | |-------------+-----------------------------------------------------| | |Creates a partition, and formats it. If you do not | | |specify the filesystem, then you create an | | |unformatted partition. | | | | | |Values for the type are: | | | | | | * ext2 : The native Linux filesystem. | | | * linux-swap : The Linux swap filesystem. | | | * fat : fat 32, the Windows filesystem. | | | | |mkpart |These values are different from the ones used in | |filesystem |mounting and unmounting filesystems. | |type start | | |end |Values for the type are logical or extended. | | | | | |The start and end values are in megabytes measured | | |from the start of the partition. Refer to print for | | |the values for the start and end points of the | | |partition. | | | | | |When parted creates the partitions, the values may | | |differ slightly from the ones you enter. These | | |differences are generally small enough that they are | | |unimportant and can be ignored. | |-------------+-----------------------------------------------------| |move | | |partition |Moves the partition to a new location. | |start end | | |-------------+-----------------------------------------------------| |print |Displays information about the current hard drive. | |-------------+-----------------------------------------------------| |resize |Resizes the partition. | |partition | | |start end |The start and end values are in megabytes measured | | |from the start of the partition. | |-------------+-----------------------------------------------------| |rm partition |Removes partition. | |-------------+-----------------------------------------------------| | |Set the hard drive to partition. By default, parted | |select device|starts with the first hard drive located, usually hda| | |. | +-------------------------------------------------------------------+ 13.3.2. Mounting and Unmounting Filesystems ------------------------------------------- Mounting is the process of associating a filesystem with a directory on your system. A filesystem is a formatted partition or removable drive. Filesystems listed in the /etc/fstab file are generally mounted when the system starts. The settings in fstab also control how users can access each filesystem. You can also mount or unmount filesystems not listed in fstab. Removable drives must usually be mounted or unmounted each time you use them. However you can also set the automounter feature for removable drives. You must always mount a floppy or cd drive before using it, and unmount it before switching to another floppy or cd . At any time, you can see a list of currently mounted filesystems by opening /etc/mtab or by typing mount at a command line. 13.3.2.1. Mounting Drives When the System Starts ------------------------------------------------ The /etc/fstab ("filesystem table") file lists filesystems that are mounted when your computer starts. You may choose to add other filesystems to fstab, but not mount them. You need to edit fstab when: * You want permanent access to non-Linux partitions. * You add another drive, including any type of removable drive, such as a zip drive or cd drive. * You repartition a hard drive. Information about each filesystem is listed in six columns. For convenience, you can often copy and paste an existing filesystem definition and modify it for another one. _[Warning]_ Do not edit the swap partition or /proc filesystem entries in /etc/ fstab. The swap partition enables virtual memory, while the /proc filesystem is used to gather information for commands such as ps, which reports on active processes. Most users should have no need to edit either entry. 13.3.2.2. Column Settings in /etc/fstab (Mounting Filesystems) -------------------------------------------------------------- +-------------------------------------------------------------------+ |Column| Contents | Choices | |------+-----------------------+------------------------------------| |1 |The partition that the |See Understanding Device Names. | | |filesystem is on. | (***) | |------+-----------------------+------------------------------------| | | |Many users prefer to put /home/, / | | | |usr, and /var on separate | | | |partitions. | | | | | | | |Other partitions are usually mounted| | | |as a sub-directory of /mnt. | | |The directory on which | | |2 |the filesystem is |However, you can use any directory | | |mounted. |for a mount point. | | | | | | | |If you are running an operating | | | |system that uses a Windows-like | | | |naming convention, you might create | | | |directories that use the convention,| | | |such as /mnt/C. | |------+-----------------------+------------------------------------| | | |Predefined choices are | | | | | | | | * ext2 : The native Linux format. | | | | * sw : Linux swap file. Use only | | |The filesystem's | for the swap file. | | |format. | * vfat : fat 32. The format of | | | | Windows 98, me , and the second | | |Support for the format | release of Windows 95. | |3 |must be enabled in the | * iso9660 : cd s. | | |kernel. | * nfs : network file system. | | | | | | | |You can recompile the kernel to | | | |support other file systems. | | | | | | | |Network filesystems and several | | | |journalistic filesystems are also | | | |supported. | |------+-----------------------+------------------------------------| | | | * auto : The filesystem is mounted| | | | when the computer starts or when| | | | mount -a is typed. | | | | * noauto : The filesystem is not | | | | mounted when the computer starts| | | | or when or when mount -a is | | | | typed. | | | | * exec : Users can run executable | | | | files. | | | | * no exec : Users cannot run | | |How the filesystem can | executable files. | |4 |be used, and by whom. | * nouser : Only the root user can | | | | access the filesystem. | | | | * ro : Users can only view the | | | | filesystem. | | | | * rw : Users can read and write to| | | | the filesystem. | | | | * user : Any user can mount the | | | | file system | | | | | | | |For unlimited access to the | | | |filesystem, use: user, auto, dev, | | | |exec, user, rw . | |------+-----------------------+------------------------------------| | |Whether the filesystem | * O : The device is not backed up | | |should be backed up | * 1 : The device is backed up. | |5 |when the dump command | | | |is used. |Since dump is not often used today, | | | |most filesystems can be set to 0. | |------+-----------------------+------------------------------------| | | | * 0: No check is done. This option| | |The order in which | can start the system faster. | | |filesystems are checked| * 1: The device is checked first. | |6 |for errors when the | The root partition should always| | |system starts. | use this setting. | | | | * 2: The device is checked after | | | | any filesystems set to 1. | +-------------------------------------------------------------------+ ***) See Section 2.2.1, `Understanding Device Names'. 13.3.2.3. Mounting Filesystems Temporarily ------------------------------------------ 1. If necessary, log in as root. 2. If necessary, create the directory needed for the mount point using the mkdir command. 3. If the kernel does not currently support the type of filesystem, enable support. Type: modprobe -t type . See the options for the 3rd column of /etc/fstab for common filesystems. See Section 13.3.2.2, `Column Settings in /etc/fstab (Mounting Filesystems)'. For permanent support of a filesystem, you may need to recompile your kernel. 4. Type: mount -t type options filesystem partition mountpoint . 13.3.2.4. The mount Command --------------------------- +---------------------------------------------------------------+ |Option| Action | Comment | |------+-----------------+--------------------------------------| | |Mounts all |The only exception is that filesystems| |-a |filesystems |set to noauto in the fourth column of | | |listed in /fstab.|fstab are not mounted. | |------+-----------------+--------------------------------------| | | |Options are mostly the same as for the| | | |fourth column of fstab. See Column | | |Controls access |Settings in /etc/fstab (Mounting | |-o |to the |Filesystems). (***) | |option|filesystem. | | | | |You may want to use remount, | | | |especially if you are using more than | | | |one removable drive. | |------+-----------------+--------------------------------------| | |To mount the | | |-r |filesystem as | | | |read-only. | | |------+-----------------+--------------------------------------| | | |Debian requires this option. | | |To mount all | | |-t |filesystems of |You must either use modprobe before | |type |one type. |the mount command, or else have | | | |support for the filesystem type | | | |compiled in the kernel. | |------+-----------------+--------------------------------------| | |Displays progress| | |-v |while filesystems| | | |are mounted. | | |------+-----------------+--------------------------------------| | |Lets all users | | |-w |read and write to| | | |the filesystem. | | +---------------------------------------------------------------+ See Section 13.3.2.2, `Column Settings in /etc/fstab (Mounting Filesystems)'. 13.3.2.5. Unmounting a Filesystem --------------------------------- Unmounting makes a filesystem inaccessible until the mount command is used again. Only filesystems that are not currently in use can be unmounted. Unless you boot from a floppy, cd or other removable device, you cannot unmount: * The root partition. * The swap partition (unless you use the swapoff command first). * Any filesystem that has a binary that is currently in use on the system. You must unmount a removable filesystem before changing it. Type: umount options mountpoint. _[Note]_ The command is spelled umount , not unmount (no first "n"). For convenience, set up an alias so you can type "unmount." 13.3.2.6. The umount Command ---------------------------- +-------------------------------------------------------------------+ |Option| Action | Comment | |------+----------------------+-------------------------------------| | |To unmount all |Filesystems set to noauto in the | |-a |filesystems listed in |fourth column of fstab are not | | |/fstab |unmounted. | |------+----------------------+-------------------------------------| |-t |To unmount all | | |type |filesystems of one | | | |type. | | +-------------------------------------------------------------------+ 13.3.2.7. Changing a Mount Point -------------------------------- You may want to change a filesystem's mount point for several reasons: * You are running out of space. * You have changed the sizes of partitions. * You have added another hard drive. * You want to place a very large directory such as /home or /user on its own partition. To change a partition: 1. If necessary, create and format a new partition. See Section 13.3.1, `Partitioning a Hard Drive'. _[Warning]_ Always back up information before re-partitioning and choose your tools carefully. While parted can resize a partition without destroying data, fdisk cannot. 2. For safety, start your machine in single user mode. 3. Create a temporary mount point for the new partition. To avoid confusion, give the new partition's mount point a name that relates to the partition that it is replacing. For example, if you are moving /var, call the new partition /var_new. 4. Mount the new partition. 5. Copy information on the old partition to the new one. 6. Boot from a cd or floppy. 7. Add the new partition to /etc/fstab/. Give it the mount point for the old partition. 8. Remove the directory for the old partition. 9. Reboot the computer normally. The mount point has changed. 13.3.3. Creating a Swap Partition or File ----------------------------------------- Debian creates a swap partition during installation. However, you may want to add another partition or change the partition. You may also choose to create a swap file, although a swap partition is usually more stable. 1. Do one of the following. * Create the partition or file. See Section 13.3.1, `Partitioning a Hard Drive' See Section 9.2, `Creating New Files From the Command Line'. * Create a file by typing: dd if=/dev/zero of= file bs= size count= size . The size is in bytes. 2. Set the partition or file for swapping. Type: mkswap partition or mkswap file size . 3. Active the partition or file. To activate swapping temporarily, type: swapon partition or swapon file . To use a swap partition permanently, add an entry to /etc/fstab. You can copy the existing swap file entry. See Section 13.3.2.2, `Column Settings in /etc/fstab (Mounting Filesystems)'. _[Note]_ If you ever need to deactivate a swap partition or file, type: swapoff partition or swapoff file . 13.3.4. Configuring the Boot Loader ----------------------------------- Debian can use the Grand Unified Boot Manager ( grub ). The boot manager is a program that lets you choose which operating system to use when you start your computer. You can also use a boot manager to run different Linux kernels. In fact, if you recompile the kernel, you can guarantee that your system remains workable by making a copy of your kernel and adding an entry for the copy to the boot manager. 13.3.4.1. Understanding the GRUB Naming Conventions --------------------------------------------------- grub uses its own naming convention for hard drives and partitions. This convention is different from either the Linux or Windows conventions: * All numbering starts at 0, so that (hd0) is the first hard drive. * No distinction is made between ide and scsi devices. (hd0) could be either type of hard drive. * Primary and extended partitions are numbered from 0 to 3. * Logical partitions are numbered from 4. * All hard drive and partition numbers are enclosed in parentheses. For example: (hd0) is the first hard drive. * The partition number follows the hard drive number, with a comma between them. For example, (hd1,2) is the third partition on the second hard drive. * The root partition is the one that grub is installed on, not necessarily the root partition for Linux. You can find complete information about grub by typing info grub at a command line. 13.3.4.2. Editing the Boot Manager Configuration File ----------------------------------------------------- grub files are in /boot/grub. You can edit the boot manager in three ways: * By opening the grub shell with /sbin/grub. * By highlighting an item in the menu as your computer starts and pressing the E key. This method is useful only for editing existing entries. * By opening /boot/grub/menu.lst in a text editor. This method is the easiest, and is the one covered here. The configuration file for the boot manager is /boot/grub/menu.lst. menu.lst is divided into groups of options, or stanzas. The first stanza contains global settings for grub . Each of the other stanzas contains the settings for one operating system or kernel. Unless the default option is used in the global stanza, the default operating system is the first one after the global stanza. Options are generally placed one per line, but this convention is not necessary. It exists only to make the file easier for people to read. Enter options as they appear in the following table, filling in specific values for the variables. 13.3.4.3. The GRUB Boot Manager: Global Settings ------------------------------------------------ +-------------------------------------------------------------------+ | Option | Setting | |----------------------------+--------------------------------------| | |Sets the colors that menu items and | | |selected menu items display in. | | | | | |The available colors are: black, blue,| | |green, cyan, red, magenta, brown, and | |color menu_foreground/ |light gray. | |menu_background selected_ | | |foreground/ selected_ |The foregrounds can also use | |background |dark-gray, light-blue, light-green, | | |light-cyan, light-red, light-magenta, | | |yellow and white. | | | | | |You can also add blink to make the | | |foreground flash. | |----------------------------+--------------------------------------| | |Sets the default operating system. | | | | | |0 is the operating system defined in | | |the first stanza after the global one.| | | | |default number |If the default option is not used, | | |then this stanza is automatically the | | |default. | | | | | |If this stanza is not configured | | |correctly, then the next corrected | | |stanza is the default. | |----------------------------+--------------------------------------| | |Sets the second default operating | | |system. | | | | |fallback number |The fallback starts only if the | | |default cannot. | | | | | |There is no default fallback. | |----------------------------+--------------------------------------| |timeout seconds |Sets the time before the default | | |operating system starts. | +-------------------------------------------------------------------+ 13.3.4.4. Basic Settings for Linux Entries in the GRUB Boot Manager ------------------------------------------------------------------- +-------------------------------------------------------------------+ | Setting | Comments | |------------------+------------------------------------------------| |initrd partition /|A symbolic link to the initrd file used by | |boot/initrd.img |Linux. | |------------------+------------------------------------------------| | |The name that appears in the grub menu. | |title name | | | |The distribution and version number is usually a| | |good choice. | |------------------+------------------------------------------------| | |The Linux root partition, named using Linux's | | |naming conventions. | |root = partition | | | |Do not confuse with grub 's root partition or | | |use grub 's naming convention. | |------------------+------------------------------------------------| | |Use grub 's naming convention for the partition.| | | | |kernel partition |In Debian, a kernel is /boot/vmlinuz*, | |kernel |with a suffix that gives the version number. | | | | | | | +-------------------------------------------------------------------+ 13.3.4.5. Basic Settings for a Windows OS in the GRUB Boot Manager ------------------------------------------------------------------ +-------------------------------------------------------------------+ | Setting | Comments | |-----------+-------------------------------------------------------| | |The name that appears in the grub menu. | |title name | | | |The operating system and version number is usually a | | |good choice. | |-----------+-------------------------------------------------------| |root |The partition that the operating system is on, named | |partition |using grub 's conventions. | |-----------+-------------------------------------------------------| | |Makes the partition bootable. | |makeactive | | | |The partition must be a primary one. | |-----------+-------------------------------------------------------| | |Needed to use Window's own loader together with grub. | |chainloader| | |+1 |grub installs at the start of the first sector of the | | |hard drive. When installed, it displaces the Windows | | |loader one sector from the start of the hard drive. | +-------------------------------------------------------------------+ 13.3.4.6. Basic Settings for a Floppy Drive in the GRUB Boot Manager -------------------------------------------------------------------- +-------------------------------------------------------------------+ | Setting | Comments | |-----------+-------------------------------------------------------| |title name |The name that appears in the grub menu. | |-----------+-------------------------------------------------------| | |The device that the operating system is on: generally, | |root fd0 |the first floppy drive. Use fd1 for the second floppy | | |drive. | |-----------+-------------------------------------------------------| | |Needed to use a non- grub loader. The +1 looks for the | |chainloader|loader one sector from the start of the hard drive. | |+1 |grub itself appears in the first sector of the hard | | |drive. | +-------------------------------------------------------------------+ 13.3.4.7. Loading an Operating System Not on the First Hard Drive ----------------------------------------------------------------- grub generally reads from the first hard drive. For this reason, you sometimes need to temporarily remap additional hard drives to the first hard drive. Add the following lines to each stanza that refers to an operating system on another hard drive: map (hd0) other_hard_drive map other_hard_drive (hd0) Place these lines before the root or chainloader +1 options. 13.3.5. Making a Bootable Recovery Disk --------------------------------------- A boot disk is a basic recovery tool. To create a boot disk: * Copy the boot image on the cd . This image is called install-1.44, and is in a directory below /dists/progeny/main/ disks-i386/ on the cd . Mount a floppy disk, then type: dd: if= path of=/dev/fd0 bs=1474560. * A floppy to use with a grub entry: 1. 1 Mount the floppy. 2. 2 Copy the kernel image to a floppy. Type: dd if=/boot/ vmlinuz-2.2.18 0f=/dev/fd0 bs=8192 . 3. 3 Make an entry for the floppy in /boot/grub/menu.lst. See Section 13.3.4.6, `Basic Settings for a Floppy Drive in the GRUB Boot Manager'. * The utilities in the /tools directory of the cd to create a boot disk under Windows or dos using rawrite1 or rawrite2. 13.4. Configuring Networks -------------------------- In Linux terms, the subject of networking includes not only a network of individual machines, but also internet connections. This section covers the basics of Linux networking in Debian, starting with the hardware and how to configure a connection, and ending with how to configure e-mail: * Configuring an ethernet card. * Checking a modem connection. * Configuring a Network connection. * Configuring a Dialup connection. * Setting up electronic mail. 13.4.1. Configuring an Ethernet Card ------------------------------------ img/System-4.png 1. At a command line, type: dpkg-reconfigure etherconf. The Ethernet Networking Configuration screen opens. If your card is detected, the first screen notes the fact. If it is not, See Section 13.4.1.1, `Troubleshooting With a Network Card'. 2. Follow the instructions on each screen. You may need to know: * Whether the network card is removable. * Whether the card can be configured with dhcp . * Your computer's ip Address. * The network's netmask. * The gateway. * The hostname. * The domain name. * The name server. If you do not know this information, consult your system administrator or Internet Provider. 3. When you are finished configuring, select Exit. etherconf then attempts to connect to the network. Watch the command line for messages about this effort. If the connection is unsuccessful after several minutes, press Ctrl-Z, then Ctrl-C to stop the effort. Then check the network card. 13.4.1.1. Troubleshooting With a Network Card --------------------------------------------- Post-woody Debian should detect most network cards automatically. However, if you are having trouble establishing a connection: * Check that the card is properly installed. * Check that your ethernet card or other network interface card is supported by Linux. * Check that your network card is working. Type: ifconfig -a . A list of active interfaces displays. Your network card is probably /dev/eth0. * Check that your network card is active. Type: ifconfig device up * The card is probably /dev/eth0. 13.4.2. Checking a Modem Connection ----------------------------------- Modems are useful for dialup connections to the internet, or for receiving faxes on your system. Modems are probably the most difficult piece of hardware to work with under Linux. The problem is that many modems today, especially internal ones, are winmodems. That is, most of them require a running copy of Windows to work. While a few winmodems have Linux drivers available, these drivers are usually written for a specific kernel, and may not work if you upgrade the kernel. An external modem or a pcmcia card should generally work. However, research brands on the internet to see if they are Linux compatible before you buy. To check that Linux recognizes your modem, type dpkg-reconfigure pppconf at the command line. pppconf is a tool for setting up a dialup connection. It starts by detecting the modem, then going on to configure a dialup connection. If your modem does not respond: * Check that it is not a winmodem. * Check that it is properly connected to your system and to a live phone jack. * To ensure that your system can find the modem, create a symbolic between the serial port to the /dev/modem device. Type : ln -sf / dev/port /dev/modem. 13.4.2.1. Setting up a Fax Modem -------------------------------- Debian does not automatically configure a fax modem for you. However, you can use the Debian package hylafax-server to receive faxes via a fax-modem. If you are a desktop user, then you might also install tkhylafax so that you have a graphical interface. Other fax packages are also available. _[Note]_ Check that your modem is usable under Linux. See Section 13.2.2, `Configuring a Sound Card'. 13.4.3. Configuring a Network Connection ---------------------------------------- A Dynamic Host Configuration Protocol (DHCP) connection is the most common network connection today. In addition, a dhcp connection is also used for an adsl or cable internet connection. Nowadays, the connection is generally through an ethernet card. However, another type of network interface card may also be used. 13.4.4. Preparing to Configure a Network Connection --------------------------------------------------- Before you start to configure the network, you need to know the type of card you use to connect to the internet. On most modern computers, the card should be an ethernet card. If you are on a laptop, you are probably using an ethernet interface with a pcmcia card. Consult the documentation that comes with the card. In addition, consult your system administrator or internet provider for: * Your user account. * Your domain name. * Your computer's ip address and hostname. * The ip address of your network. * The netmask to use with your network. * The broadcast address to use on your network. * The ip address of the default gateway system i(f your network has a gateway). * The router for your connection. 13.4.4.1. Configuring a Network Connection From the Desktop ----------------------------------------------------------- img/System-5.png Network configuration is used not only for a network, but also for a cable or dsl internet connection. If you are an end-user, ask your system administrator or internet provider for the settings you need. 1. From the gnome Control Center, select System > Network. _[Note]_ If you are using the kde desktop, type /usr/bin/ network-configlet-capplet at the command line. 2. Enter a hostname for your machine. 3. Select one of the following: * No network configuration: Continue the install without setting up a network. If you want to add network support later, you can do so after the install. * Configure with dhcp: Network information is assigned automatically by the dhcp server. The dhcp hostname is assigned by an isp to your machine. This setting is optional. In most cases, it can be ignored. * Use manual settings: Enter the settings needed for the network: * Domain name: The name of the machine on which you are installing Debian. * ip address: The address of the machine on which you are installing Debian. * Netmask: The bitmask that defines the part of the system's network address that identifies the network. * Gateway: The address of the machine that is the default route to machines not on the network. * Name Servers: The address of the system that provide hostname lookup services to your system. _[Note]_ Check with your system administrator or Internet Server Production for the entries that you need. 4. If your network connection is through a pcmcia or Cardbus network card, select the box beside Main network device is removable . 13.4.4.2. Configuring a Network Connection From the Command Line ---------------------------------------------------------------- 1. Logged in as root user, add your hostname to /etc/hostname. 2. Add your hostname and ip address to /etc/hosts. 3. Add at least your ip address, and netmask to /etc/init.d/ network. You may need to add other information to enable your connection. 4. If necessary, add your nameserver to /etc/host.conf and /etc/ resolv.conf. 13.4.4.3. Configuring a Temporary Network Connection ---------------------------------------------------- You can use Linux commands to set up a temporary connection without editing files. This type of on-the-fly configuration is especially useful for testing configurations. To setup a temporary connection: 1. Logged in as root user, type: ifconfig device ipaddress netmask 2. Add the route. Type: route add default gw route . 3. If necessary, add your nameserver to /etc/resolv.conf . If you log out, re-do the first two steps to re-create the temporary connection. 13.4.5. Configuring a Dialup Internet Connection ------------------------------------------------ A dialup connection uses a modem and an unmodified telephone line. A dialup connection is also known as a Point-to-Point Protocol (ppp) connection. Debian installs with a Group called dialout. Only members of this group can use the serial ports, or any device such as a modem that is attached to a serial port. _[Warning]_ For greater security, use a regular user account for your connection. Never use the internet when logged in as root user. 1. Add the accounts which are to use the dialup connection to the dialout group so that they can use the serial ports. From the command line, type: adduser user dialout . 2. At the command line, type dpkg-reconfigure pppconf . The pppconf tool opens. img/System-6.png 3. Select the Yes button to have your modem detected. A button is blue when selected. If your modem is not connected, See Section 13.4.5.1, `Troubleshooting a Dialup Connection'. 4. Enter the phone number that you use to connect to your Internet Service Provider. Then select the Yes button. 5. Enter the log in name for your internet account. 6. Enter the password for your internet account. 13.4.5.1. Troubleshooting a Dialup Connection --------------------------------------------- If you are having trouble making a dial-up connection: * Make sure that you are not trying to use a winmodem or host-based modem. * Check the port to which your modem is connected. Usually, it will be on ttyS0 ( com1 ). * Make sure that your modem is properly setup and turned on. * To ensure that your system can find the modem, create a symbolic between the serial port to the /dev/modem device. Type: ln -sf / dev/ serialport /dev/modem. * Check the pppd man page for more options. 13.4.6. Setting Up E-Mail ------------------------- img/System-7.png Unless set to local only, e-mail requires a network or dialup connection. You can configure a network during the install process or after. A dialup connection is not part of the install program, but you can set up one after the install process. If you need help with the choices on this screen, consult your system administrator or Internet service provider. 1. 1 From the gnome Control Center, select System > Electronic Mail. _[Note]_ If you are using the kde desktop, type /usr/bin/ mail-configlet-capplet at the command line. 2. Select the General mail setup. Choices are: * Internet Site: The same machine that originates the mail sends it and receives any incoming mail. * Internet with smarthost: A dedicated server delivers mail. This setting is often used when you are connecting to an Internet service provider. * Satellite system: No mail is delivered locally. Mail is delivered only through the smarthost. * Local only: E-mail can only be sent and received by users on the present machine. * No configuration: No e-mail is configured. 3. Enter the outgoing mail hostname. Consult your system administrator or isp provider for the hostname needed. 4. Enter the incoming mail hostname. Consult your system administrator or isp provider for the hostname needed. 5. Enter the smtp relay host. Consult your system administrator or isp provider for the hostname needed. 6. Check the appropriate box if you want a world-writable mail drop. A world-writable mail drop allows users to receive mail directly, instead of only through your network's mail system. It is faster, but can be a security risk. If in doubt, do not select world writable mail drop. 7. Check the appropriate box if you want to use "procmail" for local mail delivery. Procmail lets you filter incoming messages and deliver them to folders other than your Inbox. You can use other tools to filter, so, if in doubt, do not use procmail. 8. Configure the mail program you want to use. 13.4.6.1. Directing E-Mail Using procmail ----------------------------------------- You can use procmail to arrange your e-mail so that messages from a sources go into a particular directory. 1. In the gnome Control Center, select the box beside Use "procmail" for local delivery on the System > Electronic Mail pane. 2. Create a text file called .procmailrc in your home directory. See Section 13.4.6.2, `Lines in the .procmail File'. 3. If necessary, create the directory in which to filter mail. This directory can be one created and used by another mailreader. 4. Create a sub-directory in your home directory called .procmail to hold procmail files. 5. Create filters. Place each filter in a file called rc. filter in the .procmail directory. See Section 13.4.6.3, `Filters for procmail'. 6. Create a file called .forward in your home directory. This file activates procmail when new mail arrives. In the .forward file, enter: "IIFS=' ' && exec /usr/bin/procmail -f || exit 75 #user" _[Note]_ For examples of .procmail files and more ideas of what you can do with them, see the sample files in the /usr/share/docs/procmail/ examples directory. 13.4.6.2. Lines in the .procmail File ------------------------------------- +-------------------------------------------------------------------+ | Line | What It Does | |-------------------------+-----------------------------------------| |path= usr/bin |Defines the location of the utility. | |-------------------------+-----------------------------------------| | |Defines the directory to which mail is | | |sent. | |maildir = directory | | | |If this directory does not already exist,| | |be sure to create it. | |-------------------------+-----------------------------------------| |pmdir =/ home /.procmail |Defines the directory in which procmail | | |files are stored. | |-------------------------+-----------------------------------------| |logfile =/ home |Defines the procmail log file. | |/.procmail/log | | |-------------------------+-----------------------------------------| | |Defines the default location for mail. | |default = maildirectory/ | | |directory |This setting is overridden by any | | |includerc line. | |-------------------------+-----------------------------------------| | |Defines a sender whose mail you want to | |includerc =/ home |filter. | |/.procmail/rc. filter | | | |Include one line for each sender. | +-------------------------------------------------------------------+ 13.4.6.3. Filters for procmail ------------------------------ +-------------------------------------------------------------------+ | Filter | What It Does | |-------------+-----------------------------------------------------| |:0: | | | | | |^Sender:.* |Sends a message that contains the keyword to the | |keyword |specified directory. | | | | |directory | | |-------------+-----------------------------------------------------| |:0: | | | | | |^From:. |Sends a message from the e-mail address to the | |address |specified directory. | | | | |directory | | |-------------+-----------------------------------------------------| |:0: | | | | | |^Subject:.* |Sends a message whose subject contains the keyword to| |keyword |the specified directory. | | | | |directory | | +-------------------------------------------------------------------+ 13.5. Configuring the Graphical Display --------------------------------------- You can configure basic display settings using Debian's tools, or by editing /etc/X11/XF86Config-4 in a text editor. You can also change the look of the display by changing desktops or window-managers. This section discusses: * Configuring a video card. * Configuring a monitor. * Configuring the graphical display (screen color depth and resolution). * Configuring a pointer. * Changing the keyboard mapping. * Changing desktops. * Changing window-managers. 13.5.1. Configuring a Video Card From the Desktop ------------------------------------------------- img/System-8.png Information about your video card is detected automatically by the system. However, you can change this information if necessary. _[Warning]_ Choosing settings that are not supported by your video card could damage it or the monitor. 1. Select Systems > X Configuration from the gnome Control Center. _[Note]_ If you are using the kde desktop, type /usr/bin/ xserver-configlet-capplet at a command line. 2. From the X Configuration pane, select the Video Card tab. 3. Enter a name or identifier for your video card configuration. After the install, you can see this name in the XFree86Config-4 file. 4. If necessary, select the X server package (graphic display driver) to use. In most cases, you can use the one suggested by the install program. If you have trouble choosing an X server package that works, try xserver-xfree86 or xserver-vga. 5. If necessary, select the manufacturer and driver to use. In most cases, you can select the one suggested by the install program. If you have trouble configuring the video card, use one of the generic settings at the bottom of the list. Generic vga or Generic vesa should work with most cards. 6. If necessary, enter the amount of video memory for the card. In most cases, you can leave it blank. _[Note]_ This setting is provided for older cards and for trouble shooting. Under most circumstances, Debian detects the video memory available. 7. Select the ok button. 8. Restart the desktop or reboot the computer for the changes to take effect. 13.5.2. Configuring a Video Card Manually ----------------------------------------- You can configure your video card in the Screen section of /etc/X11/ XF86Config-4. Entries consist of a series of settings. Below each entry is a list of resolutions and color depths that can be used with the video card. See Section 13.5.6, `Setting Display Settings Manually'. 13.5.2.1. Video Card Settings ----------------------------- +-------------------------------------------------------------------+ | Setting | Comments | |----------+--------------------------------------------------------| |Identifier|The label for the video card profile. | |----------+--------------------------------------------------------| |Device |The card's manufacturer and model. | |----------+--------------------------------------------------------| |Monitor |The monitor profile used with the card, placed in double| | |quotation marks. | |----------+--------------------------------------------------------| |Default |The color depth used by preference. | |Depth | | +-------------------------------------------------------------------+ 13.5.3. Configuring a Monitor From the Desktop ---------------------------------------------- img/System-9.png Information about your monitor is automatically detected. However, you can change these settings if necessary. _[Warning]_ Choosing settings that are not supported by your monitor could damage it or the video card. Consult the monitor documentation for the correct settings. 1. Select Systems > X Configuration from the gnome Control Center. _[Note]_ If you are using the kde desktop, type /usr/bin/ xserver-configlet-capplet at a command line. 2. From the X Configuration pane, select the Monitor tab. 3. Select a name for your monitor setting. You can find this name after the install in the XFree86Config file. 4. Select the Simple, Medium, or Expert button to choose the means of configuring your monitor: * Simple: Select the monitor size from the drop-down list. Then select the ok button. * Medium: Select the resolution that you want to use from the drop down list. Then select the ok button. Your choice should not exceed the highest resolution supported by both your monitor and your video card. * Expert: Enter the Horizontal Sync Range and Vertical Refresh Rate for your monitor. If you do not know these statistics, 30-130 for the Horizontal Sync and 60-160 for the Vertical Refresh should work for most monitors. _[Note]_ Simple and Medium modes or the suggested Horizontal Sync Range and Vertical Refresh Rate may not always give the best settings for your monitor. If necessary, you can change the settings after the install. 5. Select the ok button. 6. Restart the desktop or reboot the computer for the changes to take effect. 13.5.4. Configuring a Monitor Profile Manually ---------------------------------------------- You can configure your monitor in the Monitor section of /etc/X11/ XF86Config-4. Entries are in two columns, with the option in the first column and the setting in the second column. The first three entries should always be the Identifier, Horizsync, and VertRefresh. For a complete list of settings, see the man page for the XF86Config. _[Warning]_ Never edit a monitor profile without consulting the monitor's documentation. Settings that are too high for the monitor can damage it or prevent it from working. 13.5.4.1. Monitor Settings -------------------------- +-------------------------------------------------------------------+ | Setting | Comments | |-----------+-------------------------------------------------------| |Identifier |The name for this monitor profile. | |-----------+-------------------------------------------------------| | |The horizontal scanning frequency. | |HorizSync | | | |Usually, this is a range. 30-130 should work for most | | |monitors. | |-----------+-------------------------------------------------------| | |The vertical scanning frequency. | |VertRefresh| | | |Usually, this is a range. 60-160 should work for most | | |monitors | |-----------+-------------------------------------------------------| | |Set the gamma correction for the monitor. | |Gamma | | | |In order, settings are listed for red, green and blue, | | |using rgb values. | |-----------+-------------------------------------------------------| |dpms |Add when using a flat or lcd screen. | |-----------+-------------------------------------------------------| | |A display setting that your monitor can support. | | | | |Modeline |Generally, you should not need to add a modeline. | | | | | |However, you may want to comment one or more out so | | |that ordinary users cannot change the system settings. | +-------------------------------------------------------------------+ _[Warning]_ Choosing settings not supported by your monitor may damage it. Refer to the monitor's manual when configuring and only choose settings that are within the range supported by your monitor. 13.5.5. Setting Display Settings from the Desktop ------------------------------------------------- img/System-10.png From the Desktop screen, you can set the resolution and color depth for the graphical display on your system. Settings for the graphic display depend on the capabilities of your video card and monitor. If you did not collect this information before installing, See Section 2.1.2, `Gathering Hardware Information'. _[Warning]_ Choosing settings that are not supported by both your video card and monitor could damage either piece of hardware. 1. Select Systems > X Configuration from the gnome Control Center. _[Note]_ If you are using the kde desktop, type /usr/bin/ xserver-configlet-capplet at a command line. 2. From the X Configuration pane, select the Desktop tab. _[Warning]_ Choosing settings that are not supported by both your video card and monitor may damage them. 3. Select the resolutions to support. By default, your desktop starts in the highest resolution supported, but you can change the resolution: * Temporarily, by pressing Alt-Ctrl-keypad+ to cycle through the available resolutions. * Permanently, by editing the XFree86Config-4 file. 4. From the drop-down list, select the color depth, or the number of colors that your desktop will use. Fewer colors mean a less realistic display of graphics, but a faster redraw time. However, if you have a video card with more than 4 megabytes of memory, for most purposes you can use the highest available color depth without any trouble. _[Warning]_ Choosing settings that are not supported by both your video card and monitor could damage either piece of hardware. 5. Select the resolutions to support. By default, your desktop starts in the highest resolution supported. 6. From the drop-down list, select the color depth, or the number of colors that your desktop will use. Fewer colors mean a less realistic display of graphics, but a faster response time. However, if you have 128 megabytes of ram and/or a video card with more than 4 megabytes of memory, for most purposes you can use the highest available color depth without any trouble. 7. Select the X configuration tab for advanced display options. img/System-11.png From the X Server screen, you can set advanced options for your graphical display. If you are unsure what these settings mean, use the defaults. 8. Select who can use a graphic display from the drop-down list: * Root Only: Only the root user. * Anybody: All users, whether local or remote. * Console Users Only: Users can only start the graphical display at the local keyboard and monitor. 9. Select the process priority. This setting determines what share of your system's resources are given to the graphic display at any given time. _[Warning]_ Changing the priority for your graphical display can seriously affect system performance. Do not change this setting from -10 unless you are sure what you are doing. 13.5.6. Setting Display Settings Manually ----------------------------------------- Settings for the graphical display are stored in the Display subsection of /etc/X11/XF86Config-4 in the main section Screen. Entries in the Display subsection are arranged by color depth (Depth). Below each Depth are the resolutions (Modes) that can be used by each color depth. When the video card profile defined in the Screen section is used, the system defaults to the highest color depth and resolution listed. You can change the default by: * Commenting out or deleting depths that you do not want to use. * Adding or deleting modes. * Placing the mode you want to be the default first in the horizontal list of modes. From the desktop, you can toggle through the other resolution available by pressing Ctrl-Alt-+ (on the number pad). _[Warning]_ Selecting color depths or resolutions unsupported by your monitor and video card can damage them. Refer to the hardware manuals while configuring the screen display. 13.5.6.1. Screen Display Depths and Modes ----------------------------------------- +-------------------------------------------------------------------+ |Setting| Comments | |-------+-----------------------------------------------------------| |Depth |The color depth, in bits. This setting ranges from 1 to 24 | | |bits (up to 4 billion colors):. | |-------+-----------------------------------------------------------| | |The screen resolution. | | | | | |All resolutions supported by the driver and color depth are| | |listed in the line, with the default one first. | | | | |Mode |Resolutions usually range from 640 x 480 to 1600 x 1200. | | |Each resolution is surrounded by double quotation marks. | | | | | |If you are in doubt, virtually all systems made in the last| | |five years should support 640 x 480, no matter what the | | |difficulties. | +-------------------------------------------------------------------+ 13.5.7. Configuring a Pointer From the Desktop ---------------------------------------------- img/System-12.png The pointer is usually a mouse. However, it can also be a trackball, a palette, or any other device that replaces a mouse. If you have been using the mouse during the install, you can accept the settings listed. However, if your mouse is not working, you adjust the settings. 1. Select Systems > X Configuration from the gnome Control Center. _[Note]_ If you are using the kde desktop, type /usr/bin/ xserver-configlet-capplet at a command line. 2. From the X Configuration pane, select the Pointer tab. 3. Select the port to use. In most cases, it is /dev/ttyS0 (com1) or /dev/ttyS1 (com2) for a serial mouse, or /dev/psaux for a ps2 mouse. 4. Select the protocol or driver to use. If you are using a serial mouse, then select the name of the manufacturer from the drop-down list. Use ps2 for a generic ps2 mouse. If you cannot find a protocol for your mouse or pointing device, select Auto to have it detected automatically. You can also try different protocols to see if your mouse can use them. 5. Select Emulate 3-button mouse if you have a 2 button one. With three button emulation, pressing both buttons on the pointer is the same as pressing the middle button on a three-button pointer. Linux is designed for use with a three button mouse, so most users of two-button mouses should choose this option. 6. Select Enable scroll-wheel event to use a scroll wheel. If your mouse has a scroll wheel, you probably want this option. 13.5.8. Configuring a Pointer Manually -------------------------------------- A pointer is usually a mouse, but can include trackballs and other devices used instead of a mouse. To edit the pointer manually, edit the Input Device Section of the / etc/X11/XF86Config-4 file. Existing entries can help you make your own. Entries are in three columns: * First Column: The general listing category. The first two must be "Identifier," "Driver." The rest are "Option." * Second Column: The exact listing. The first two must be the identifier and the driver. The rest are specific options, and must include "Device" and "Protocol." _[Note]_ All entries in all columns must be in straight, double quotation marks. * Third Column: The setting for any options. Neither the Identifier nor Driver have a third column entry. All entries must be in double quotation marks. There must be an entry for the "Device" and "Protocol" option. 13.5.8.1. Pointer Settings in XF86Config-4 ------------------------------------------ +---------------------------------------------------------------+ | Setting | Comments | |--------------+------------------------------------------------| | |The label for this pointer configuration. By | |Identifer |default, it is "Configured Mouse" or "Generic | | |Mouse." | |--------------+------------------------------------------------| |Driver |Usually, just "mouse." | |--------------+------------------------------------------------| | |The port that the mouse is connected to. In most| |Device |cases, this setting is /dev/psaux or /dev/ttyS0 | | |or /dev/ttyS1. | |--------------+------------------------------------------------| | |The driver for the pointer. The name of the | |Protocol |protocol is usually based on the manufacturer, | | |or on the type of mouse. See the man page for | | |the file for a complete set of options. | |--------------+------------------------------------------------| |Emulate3Button|Set to "true" to enable three-button emulation. | |--------------+------------------------------------------------| | |Makes the entry the primary pointer. Useful for | | |laptops, which may have a built-in pointer, but | |Corepointer |are also capable of using a plug-in mouse. | | | | | |No entry is needed for this option in the third | | |column. | |--------------+------------------------------------------------| | |Use for a secondary pointer, such as a plug-in | |SendCoreEvents|mouse on a laptop. | | | | | |Set to "true" to the third column. | |--------------+------------------------------------------------| | |Enables the use of a scroll wheel. | |ZAxisMapping | | | |Set to "4 5" in the third column. | +---------------------------------------------------------------+ 13.6. Changing Desktops ----------------------- Debian installs the gnome desktop by default. You can also install the kde desktop using the Extras cd . See Section 3.5, `Installing Software From the Extras CD'. When either desktop is installed, you can choose which desktop to run by selecting it from the Sessions menu of the log in screen. _[Note]_ When both are installed, you can run applications written for one desktop on the other. 13.6.1. Changing Window Managers From a Desktop ----------------------------------------------- 1. Install the window manager packages. You can use the Progeny Debian Window managers package set listed in the Add/Remove Software utility, or install the packages individually. Installed window manager files are generally in a sub-directory of /usr/share, with the executable in /usr/bin or /usr/X11R6. 2. From the gnome Control Center, select Desktop > Window Manager. 3. If necessary, select the Add button to add a window manager to the list. Enter its name and executable. 4. Highlight a window manager in the list. Then select the Try button. 5. A message window offers you the chance to save the change. If you decide to save the change later, check the Save current setup box as you log out. 6. Do one of the following: * Select the Revert button to return to your original window manager. * Select the ok button to continue using the new window manager. If you lose the desktop background image, select Desktop > Background to restore it. 13.6.2. Changing the Keyboard Mapping ------------------------------------- The default keyboard for Debian is the qwerty layout for the us language. However, you can change the keyboard to a different layout or a different language. For a complete change, you must change the keyboard mapping for both the command line and the desktop. 13.6.2.1. Changing the Command Line Keyboard Mapping ---------------------------------------------------- 1. Logged in as root user, type: dpkg-reconfigure console-data. 2. Answer the questions on the screen as they appear. 13.6.2.2. Changing the Desktop Keyboard Mapping ----------------------------------------------- 1. Check that the keyboard mapping that you want is installed in / usr/shre/keymaps/i386. If it is not, then install the package before remapping. 2. Open /etc/X11/XF86Config-4 in a text editor. 3. Find the "Input Device" Section, then the Identifier "Generic Keyboard." 4. Edit the option "XkbLayout". The default setting for "XkbLayout" is "us". However, you can change this setting using any layout listed in / usr/share/keymap/i386. The setting must be enclosed in double quotation marks. 5. Restart your system, or restart the X Window System. The X Window System is now configured to use the new keyboard mapping. 13.6.3. Changing Window Managers From the Command Line ------------------------------------------------------ 1. Install the window manager packages. You can use the Progeny Debian Window managers package set listed in the Add/Remove Software utility, or install the packages individually. Installed window manager files are generally in a sub-directory of /usr/share, with the executable in /usr/bin or /usr/X11R6. 2. Type update-alternatives --config x-window-manager . A list of installed window manager displays. 3. Type the number of the window manager you want to use. Then press the Enter key. 13.6.4. Adding Window Managers to the Login Screen -------------------------------------------------- When most of the window managers that come with Debian are installed, an entry for them is created in the Session menu of the login screen. If the entry is not created, or if you install another window manager, you can create a Sessions menu item manually: 1. Install the window manager. 2. As root user, open a new file in a text editor. 3. Type the following lines in the file: #!/bin/sh exec / windowmanager Identify the file with its absolute path. Usually, a window manager is installed in the /usr/bin directory. 4. Save the file as /etc/gdm/Sessions/ file. The name of the file is the item that appears in the Sessions menu. Generally, the file should have the name of the window manager. 5. Change the permission on the file so that all users can choose the window manager. Type: chmod +x windowmanager . The next time that a user logs in, the window manager is available as an item in the Sessions menu of the log in screen. 13.7. Changing Other Settings ----------------------------- This section explains how to: * Change the date and time on your system. * Change command line shells. * Add fonts to your system. 13.7.1. Setting Date and Time From the Desktop ---------------------------------------------- img/System-13.png 1. Select Systems > Date and Time from the gnome Control Center. _[Note]_ If you are using the kde desktop, type /usr/bin/ time-configlet-capplet at the command line. 2. Under Time Zone, select your Region and Time Zone from the drop-down lists. The Time Zone list varies with the Region that you select. 3. Select: * The System set to utc box to set the system to Greenwich Mean Time. * The path to your Network Time Server, if you have one. 4. Under Date and Time, select the month and yer. The arrows on the left of the month and year display move the month or year backward, while the arrow on the right moves it forward. If you move the month from December to January, the year changes automatically. 5. Select the day by highlighting it on the calendar. 6. Enter the hour, minute and seconds. In each field, you can either enter highlight the current entry and over write it or else use the arrow keys to change it. 7. Set the time to am or pm . _[Note]_ If you prefer a 24 hour clock or to use Greenwich Mean Time, you can reset the date once you install. 8. Select the Set Date and Time button to apply your changes. 9. Select the ok button. 13.7.2. Setting Date and Time From the Command Line --------------------------------------------------- As the root user, type date mm ddhhmmyy at the command line. MM is the month given as a two digit number, and mm is minutes. Hours should be in 24-hour format. To set the time to Greenwich Mean Time, use the -u option. _[Note]_ A desktop clock may take a moment to update. For more information about the date command, see its on-line help. 13.7.3. Setting the Command Shell --------------------------------- Linux has many command line interfaces. These interfaces are called shells. The default shell is bash (the Bourne Again Shell). This manual assumes that you are using it. To change a shell temporarily, enter its name as a command. The next time you open a command line, you will be using bash again. To change your default shell permanently: 1. Type chsh at the command line. 2. When prompted, type the path to the shell's executable. Executables for shells are usually in the /bin directory. They have the same name as the shell. 13.7.3.1. Additional Linux Command Shells ----------------------------------------- +---------------------------------------------------------------+ |Shell| Description | |-----+---------------------------------------------------------| |ash |A smaller shell than bash, very popular for writing | | |scripts. | |-----+---------------------------------------------------------| |csh |The C shell. Popular with programmers because of its | | |familiar syntax. | |-----+---------------------------------------------------------| |tcsh |An enhanced version of the csh shell. In addition to the | | |features of other shells, it includes a spell checker. | +---------------------------------------------------------------+ 13.7.4. Adding Fonts -------------------- Linux can support a number of different font formats. The most commonly used are postscript (also called Type1 or Adobe) and TrueType font formats. Each format must be set up separately. You can also setup fonts separately for programs that use their own printing systems, such as StarOffice or WordPerfect. However, when you do, the fonts are available only for the individual programs. Consult the documentation for these programs for more information. 13.7.4.1. Adding Postscript (Type1) Fonts ----------------------------------------- Postscript is a printer language created by Adobe. Postscript fonts are ones that can be used by postscript without conversion. Postscript fonts are also called Type1 or Adobe fonts. Each postscript font has several files associated with it. The files have the same name, but a different extension: * .afm (short for "Adobe Font Metrics"): Contain the proportions for each letter in the font. Necessary for displaying or printing the font. * .pfb (short for "Printer Binary Font"): Contain instructions on how to print the font. * .inf and .pfm extensions: Not needed for use under Linux. 1. Install the type1inst package. Type: apt-get install type1inst 2. Add the .pfb and .afm files for each font to a directory accessible to Linux. Common choices are /usr/X11R6/lib/X11/fonts/ Type1 or /usr/share/fonts/type1. _[Note]_ Because installing fonts is so involved, install as many fonts as you can at one time. 3. If necessary, add the directory to the Font Paths listed in XF86Config-4. 4. Change to the directory in which the fonts are installed. 5. Install the fonts. Type: type1inst . If you receive a message that the foundry (the distributor of the font) is unknown, you can ignore it. It does not affect whether you can use the font. A file called Fontmap is created in the directory. You need this file later during the installation of the fonts. 6. Type: mkfontdir . Fonts are now ready for on-screen use. 7. Make the fonts available to ghostscript so that you can print them. Type: cat fontdirectory /Fontmap >> /etc/gs.Fontmap. 8. Either: * Restart type1inst. Type: /etc/init.d/type1inst force-reload. * Restart your system. In either case, the postscript fonts are now available for on-screen use. 9. Restart your system. The newly installed fonts are now available for both screen display and printing. If you want to add more fonts later, follow steps 2 to 7. _[Note]_ Some fonts do not display or print properly in Linux, or in some Linux applications. Dingbats and decorated initials are especially unlikely to work. 13.7.4.2. Adding TrueType Fonts ------------------------------- TrueType is a popular format for fonts, first introduced on Macinotosh computers, and later popularized by Windows. Originally, the postscript printing language did not support them, although that is no longer true. TrueType fonts have the potential to display and print better than postscript fonts. In practice, however, they do not. Aside from the fact that many free TrueType fonts are clumsy conversions from postscript, current printing and display technologies cannot take advantage of TrueType's potential. Although many users believe that TrueType fonts display better than postscript fonts, really there is no reason to prefer either format over the other. TrueType fonts include information about displaying and printing in a single file with a .ttf extension. 1. Install the xfs and xfstt packages. Log in as the root user and type: apt-get install xfs xfstt . 2. At the top of the list of font paths in the /etc/X11/ XF86Config-4 file, add the following lines: Fontpath "unix/:7100" Fontpath "unix/:7101" 3. Add the TrueType fonts to the /usr/share/fonts/truetype directory. _[Note]_ Because installing fonts is so involved, install as many fonts as you can at one time. 4. Either: * Restart xfs and xfstt. Type: /etc/init.d/xfs force-reload, followed by: /etc/init.d/xfstt force-reload. * Restart your system. In either case, the TrueType fonts are now available for on-screen use. 5. Make the fonts available to ghostview for printing. Type: xfstt --gslist --sync >> /etc/gs.Fontmap . 6. Open /etc/gs.Fontmap and add TT- as a prefix to all TrueType fonts listed. This step is not necessary, but helps you to tell the postscript and TrueType versions of a font apart when they appear in a menu. If you want to add more fonts later, follow steps 2-6. _[Note]_ Some fonts do not display or print properly in Linux, or in some Linux applications. Dingbats and decorated initials are especially unlikely to work. ------------------------------------------------------------------------------- A. Automating Multiple Installs ------------------------------- This portion is specific to the Progeny Installer. Install `pgi' and `autoinstall'. Once you have installed Debian on a single system, you can automate other installs by creating an automated install floppy. The automated install floppy is inserted in the floppy drive when you start an install. Making the automated install floppy consists of two steps: * 1 Creating the configuration files. * 2 Creating the automated installer floppy. A.1. Creating Configuration Files --------------------------------- The configuration files are created on an existing Debian system, then copied to the floppy for use during the install. You should know that: * scsimod .lst, netmod.lst, and sources.lst can be blank, but must be in the /conf directory with the other configuration files. * postinst is not required. Place all finished configuration files in a directory named /conf. This directory can be a sub-directory any place on the system. Commands to create the automated install floppy are run from this directory. Examples of configuration files are available in /usr/share/doc/ autoinstall/. A.1.1. Creating the Global Configuration File (global.cfg) ---------------------------------------------------------- The global.cfg file contains the master information for the automated install. One option is entered per line. When an option requires a value, leave a space between the option and the value. Options for the global.cfg File +-------------------------------------------------------------------+ |Option | What It Does | |-------+-----------------------------------------------------------| | |The url for the minimal system's tar file. | | | | |baseurl|The url can be a cd (cdrom:) or a web address (http://). | | | | | |This option is required. | |-------+-----------------------------------------------------------| | |The password hash for the root user. | |rootpwd| | | |This option is required. | |-------+-----------------------------------------------------------| |nosafe |Continues the install, even if a filesystem exists on the | | |target machine. | |-------+-----------------------------------------------------------| | |Allows the automated installer to configure the network. | | |Possible values are: | |network| | | | * dhcp: Use dhcp . | | | * netdb: configure using the network.cfg file. | | | * none: do not configure the network. | |-------+-----------------------------------------------------------| |cdinst |Install using a cd , instead of a network. | |-------+-----------------------------------------------------------| |nfscd |The path to an nfs -mounted cd image that will be used for | | |the installation. | +-------------------------------------------------------------------+ A.1.2. Creating the debconf Configuration File (debconf.cfg) ------------------------------------------------------------ Make a copy of the debconf database. Type: /usr/sbin/autoinst-read-debconf /conf/debconf.cfg. A.1.3. Creating the Network Modules File (netmod.lst) ----------------------------------------------------- The netmod.lst file lists the scsi kernel modules to load. Modules are listed one per line. Look at the example provided. Type: less /usr/share/doc/autoinstall/ examples/netmode.lst on an existing Debian System. The file must be configured to fit your hardware. A.1.4. Creating the SCSI Module File (scsimod.lst) -------------------------------------------------- The scsimod.lst file lists the scsi kernel modules to load. Modules are listed one per line. Look at the example provided. Type: less /usr/share/doc/autoinstall/ examples/scsimod.lst on an existing Debian System. The file must be configured to fit your hardware. A.1.5. Creating the Network Configuration Database (network.cfg) ---------------------------------------------------------------- The network.cfg file describes the network and all machines on it. The file consists of pairs of stanzas. The first stanza in a pair is the global stanza. Global stanzas may be added for any network or routers. Global stanzas contain the following entries, with one characteristic per line: * 1 gateway * 2 network * 3 netmask * 4 name server * 5 broadcast * 6 domain name Leave a space after each characteristic, then add the value for characteristic. The second stanza in each pair is a local stanza. It defines local machines attached to the network or to the router. Each line defines a single machine. Each machine is defined by three columns: * 1 mac address (ethernet card id ) * 2 ip address * 3 host name Columns are separated by a single space At the bottom of a local stanza, you can add a default entry. The default entry is used if a machine cannot be otherwise connected to the machine. The default entry uses default for the mac address and unassigned for the host name. A.1.6. Creating the Partitioning Information File (partinfo.cfg) ---------------------------------------------------------------- The partinfo.cfg file describes how the install program should partition each system during an automated install. One line is used for each partition. Each line has the same format: partitiontype filesystem size mountpoint size The size is either m (megabytes) or % (percentage of total disk space). In most cases, you want at least a root partition and a swap partition. Entries in partinfo.cfg +-------------------------------------------------------------------+ | Entry | Choices | |-----------+-------------------------------------------------------| |partition | * primary. | |type | * logical. | |-----------+-------------------------------------------------------| |filesystem | * ext2: Linux native. | | | * swap: Linux swap. | |-----------+-------------------------------------------------------| |size |Any size, given in megabytes. | |-----------+-------------------------------------------------------| | |The file should include at least one partition mounted | | |as root (/). | |mountpoint | | | |A swap file has no mount point, but is entered as swap | | |. | +-------------------------------------------------------------------+ A.1.7. Creating the Package Selection List (select.cfg) ------------------------------------------------------- The select.cfg file lists the packages to install. To create the file, type: dpkg --get-selections > /conf /select.cfg on an existing Debian System, then edit if desired. A.1.8. Creating the Post Installation Script (postinst) ------------------------------------------------------- The post installation script is a series of commands that are run after installation is complete. The script can be written any language supported by the fully installed system. The post installation script is optional. It is not needed for an automated install. A.1.9. Creating the Sources List File (sources.lst) --------------------------------------------------- This file is a list of sources for apt . It can be copied from any sources list for apt . You can create it by: * Typing cp /etc/apt/sources.lst /conf /sources.lst. * Creating a plain text file called sources.lst in the target directory with the following line: deb http://archive.progeny.com /progeny progeny main contrib non-free. A.2. Creating the Automated Installer Floppy -------------------------------------------- Before creating the floppy for the automated installer, you must create all configuration files and place them in the /conf directory. Only the postinst file is optional. * 1 From the /conf directory, type: make-autoinst-initrd kernel_version . The kernel version is the version of the kernel that you want to use on the floppy to create the initial ram disk that is used to start the system. The kernel must be installed on the system that you are currently using. * 2 Place a floppy disk in the drive. The drive is mounted automatically in the next step. * 3 From the /conf directory, type: make-autoinst-disk kernel_version . img/appendix-a.png Enter the same kernel version as you did in the first step. The automated install floppy is created. A.3. Starting an Automated Install ---------------------------------- * 1 Check that you have an install source. The install source can be: * A cd. * A cd image available over an nfs -mounted cd image. * An url . In this case, sources.lst must point to a valid Progeny mirror. Whatever the source, it must be specified in the global.cfg file. * 2 Place the automated install floppy in the floppy drive. * 3 Start the machine. The install proceeds, drawing information from the auto-install floppy as needed. ------------------------------------------------------------------------------- B. Acknowledgements and Thanks ------------------------------ Ian Murdock Bruce Byfield C. Stephen Gunn Pat Ouellette John Daily John Hartman Doug Porter Dean Esmay Keith Hartman Branden Robinson Bern Galvin Steve Hunger Steve Schafer Aaron Stenhoff Eric Gillespie Andrew J. Korty John Goerzen Jeff Licquia Michael Schultheiss Adam Lazur Kevin Mathews With special thanks to Frank Belew, Ben Collins, Jason Gunthorpe, Johan Hanson, Joey Hess, Cory Lueninghoener, Grant Taylor, and anyone else whom we might have missed for their contributions to Debian The staff of Progeny would also like to thank their friends and family who provided their support, love, and understanding through the development process. Your patience and encouragement helped make Progeny Debian possible. ------------------------------------------------------------------------------- C. Contacting Progeny Linux Systems ----------------------------------- Please send questions about Debian and User's Guide directly to the debian-user@lists.debian.org or debian-doc@lists.debian.org mailing list. Out of courtesy to the Progeny Linux Systems who offered this document as GPLed guide, the editor requests that users do not ask questions about Debian and User's Guide to Progeny Linux Systems. Progeny Linux Systems as a Linux business company can be reached at: Progeny Linux Systems, Inc. 8605 Allisonville Rd. #363 Indianapolis, Indiana 46250-1552 u.s.a. www.progeny.com support@progeny.com Support Line: 1.317.833.0400 General Inquiries: 1.317.833.0313 Fax: 1.317.833.0315 ------------------------------------------------------------------------------- D. GNU General Public License ----------------------------- Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc.59 Temple Place, Suite 330, Boston, MA 02111-1307 usa . Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the gnu General Public License is intended to guarantee your freedom to share and change free software - to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the gnu Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION * This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. * You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. * You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. * You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. * You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. * You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. * Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. * If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. * If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. * The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. * If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY * because the program is licensed free of charge, there is no warranty for the program, to the extent permitted by applicable law. except when otherwise stated in writing the copyright holders and/or other parties provide the program "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. the entire risk as to the quality and performance of the program is with you. should the program prove defective, you assume the cost of all necessary servicing, repair or correction. * in no event unless required by applicable law or agreed to in writing will any copyright holder, or any other party who may modify and/or redistribute the program as permitted above, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the program (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the program to operate with any other programs), even if such holder or other party has been advised of the possibility of such damages. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the gnu General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the gnu General Public License for more details. You should have received a copy of the gnu General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 usa . Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with absolutely no warranty; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items - whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the gnu Library General Public License instead of this License. ------------------------------------------------------------------------------- User's Guide Progeny Linux Systems, Inc. Version: 1.00p00, 2003.02.14-15:11