,debian ,,gnu_/,linux3 ,guide to ,installation and ,usage by ,john ,goerzen and ,ossama ,othman ,april #bc1 #bjja 7c7 #aiih1 #aiii ,software in the ,public ,interest1 ,inc4 ,permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies4 ,permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying1 provided also that the sections that reprint 8,the ,,gnu ,general ,public ,license0 and other clearly marked sections held under separate copyright are reproduced under the conditions given within them1 and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one4 ,permission is granted to copy and distribute translations of this manual into another language under the conditions for modified versions4 8,the ,,gnu ,general ,public ,license0 may be included in a translation approved by the ,free ,software ,foundation instead of in the original ,english4 ,at your option1 you may distribute verbatim and modified versions of this document under the terms of the ,,gnu ,general ,public ,license1 excepting the clearly marked sections held under separate copyright4 ,contents ,list of ,figures ,list of ,tables ,acknowledgments ,preface ,i4 ,guide #a4 ,introduction #a4a ,what ,is ,debian8 #a4b ,a ,multiuser1 ,multitasking ,operating ,system #a4c ,what ,is ,free ,software8 #a4d ,about ,this ,book #b4 ,getting ,started #b4a ,supported ,hardware #b4b ,before ,you ,start #b4c ,partitioning ,your ,hard ,drive #b4d ,choosing ,your ,installation ,media #b4e ,booting the ,installation ,system #c4 ,step-by-,step ,installation #c4a ,select ,color or ,monochrome ,display #c4b ,debian ,,gnu_/,linux ,installation ,main ,menu #c4c ,configure the ,keyboard #c4d ,last ,chance to ,back ,up6 #c4e ,partition a ,hard ,disk #c4f ,initialize and ,activate a ,swap ,partition #c4g ,initialize a ,linux ,partition #c4h ,install ,operating ,system ,kernel and ,modules #c4i ,configure ,,pcmcia ,support #c4aj ,configure ,device ,driver ,modules #c4aa ,configure the ,network #c4ab ,install the ,base ,system #c4ac ,make a ,boot ,floppy #c4ad ,the ,moment of ,truth #c4ae ,set the ,root ,password #c4af ,create an ,ordinary ,user #c4ag ,shadow ,password ,support #c1ah ,remove ,,pcmcia #c4ai ,select and ,install ,profiles #c4bj ,package ,installation with dselect #c4ba ,glossary #d4 ,logging ,in #d4a ,first ,steps #d4b ,command ,history and ,editing the ,command ,line #d4c ,working as ,root #d4d ,virtual ,consoles #d4e ,shutting ,down #e4 ,the ,basics #e4a ,the ,command ,line and ,man ,pages #e4b ,files and ,directories #e4c ,processes #e4d ,the ,shell #e4e ,managing ,processes with bash #e4f ,a ,few bash ,features #e4g ,managing ,your ,identity #f4 ,using the ,shell #f4a ,environment ,variables #f4b ,where ,commands ,reside3 ,the ,,path ,variable #f4c ,configuration ,files #f4d ,aliases #f4e ,controlling ,input and ,output #f4f ,filename ,expansion #g4 ,more on ,files #g4a ,permissions #g4b ,files ,present and ,their ,locations #g4c ,file ,compression with gzip #g4d ,finding ,files #g4e ,determining a ,file's ,contents #g4f ,using a ,file ,manager #h4 ,working with ,text ,files #h4a ,viewing ,text ,files #h4b ,text ,editors #h4c ,using ae #i4 ,the ,x ,window ,system #i4a ,introduction to ,x #i4b ,starting the ,x ,environment #i4c ,basic ,x ,operations #i4d ,customizing ,your ,x ,startup #aj4 ,filesystems #aj4a ,concepts #aj4b mount and _/etc_/fstab #aj4c ,backup ,tools #aa ,networking #aa4a ,,ppp #aa4b ,ethernet #ab ,removing and ,installing ,software #ab4a ,what a ,package ,maintenance ,utility ,does #ab4b dpkg #ab4c dselect #ab4d ,compiling ,software #ac ,advanced ,topics #ac4a ,regular ,expressions #ac4b ,advanced ,files #ac4c ,security #ac4d ,software ,development with ,debian ,,ii4 ,reference ,a ,reading ,documentation and ,getting ,help ,a4#a ,kinds of ,documentation ,b ,troubleshooting ,b4#a ,common ,difficulties ,b4#b ,troubleshooting the ,boot ,process ,c ,booting the ,system ,d ,the ,,gnu ,general ,public ,license ,list of ,figures #a4 cfdisk screenshot #b4 dselect ,access screen #c4 ,sample session with su #d4 ,sample printenv output #e4 ,changing the prompt #f4 ,redirecting output ,list of ,tables #a4 ,linux ,device ,names #b4 ,special dselect keys #c4 dselect ,package ,states #d4 ,expected ,package ,category ,states #e4 ,permissions in ,linux ,acknowledgments ,many people have helped with this manual4 ,we'd like to thank everyone involved1 and we try to do that here4 ,thanks to ,havoc ,pennington1 ,ardo van ,rangelrooij1 ,larry ,greenfield1 ,thalia ,hooker1 ,day ,irmiter1 ,james ,treacy1 ,craig ,sawyer1 ,oliver ,elphick1 ,ivan ,e4 ,moore ,,ii1 ,eric ,fischer1 ,mike ,touloumtzis1 and the ,linux ,documentation ,project for their work on what became the ,debian ,tutorial document4 ,thanks to ,richard ,stallman of the ,free ,software ,foundation for advice and editing4 ,thanks to ,bruce ,perens1 ,sven ,rudolph1 ,igor ,grobman1 ,james ,treacy1 ,adam ,di ,carlo1 ,tapio ,lehtonen1 and ,stephane ,bortzmeyer for their work on what became a collection of installation documents4 ,of course1 it's impossible to thank the hundreds of ,debian developers and thousands of free software authors who gave us something to write about and use4 ,preface 8,freedom is still the most radical idea of all40 ,this quote1 penned by ,nathaniel ,branden1 seems fitting nowhere moreso than with the freewheeling computing industry4 ,in the space of just a few decades1 lives the world over have been changed by computing technology4 ,we1 the people behind the ,free ,software movement1 are seeking to continue this trend by truly opening up software to everyone--not just the few people working for the companies that write it--but everyone4 ,as part of this goal1 this book and ,,cd contain a treasure chest of ,free ,software4 ,over one thousand packages1 including things such as the world's most popular web server1 can be found here4 ,you can use this software for everything from graphic design to ,,sql databases4 ,the ,free ,software revolution has taken the industry by storm4 ,linux1 started from scratch not even #aj years ago1 has been the favorite kernel of the ,free ,software world4 ,the ideas and experience gained from ,free ,software have truly sent ,linux and the ,free ,software ,foundation's ,,gnu tools all over the world4 ,free systems such as ,debian ,,gnu_/,linux ship with literally thousands of applications1 and they have more power and stability1 and outperform some of the industry's traditional best-selling proprietary operating systems4 ,today1 ,,gnu_/,linux plays a dominant role in ,internet servers and among ,i,s,ps1 in academia1 among computer hobbyists1 and in computer science research4 ,debian ,,gnu_/,linux has brought the power of ,free ,software to everything from laptops to flights aboard the ,space ,shuttle4 ,as ,i write this1 companies the world over are experiencing the joy and benefits that are ,free ,software4 ,the unprecedented power1 the ability to speak directly to the people who write the software you use1 the capability to modify programs at will1 and the phenomenal expertise of the online support mechanism all combine to make ,free ,software a vibrant and wonderful way to use your computing resources4 ,starting with a ,free ,software such as ,debian ,,gnu_/,linux can be the best thing you've done with your computer in a long time4 ,it's fast1 powerful1 stable1 versatile1 and fun6 ,welcome to the revolution6 -- ,john ,goerzen ,i4 ,guide #a4 ,introduction ,we're glad to have this opportunity to introduce you to ,debian6 ,as we begin our journey down the road of ,,gnu_/,linux1 we'd like to first talk a bit about what exactly ,debian is--what it does1 and how it fits in with the vast world of ,free ,software4 ,then1 we talk a bit about the phenomenon that is ,free ,software and what it means for ,debian and you4 ,finally1 we close the chapter with a bit of information about this book itself4 #a4a ,what ,is ,debian8 ,debian is a free operating system 7,,os7 for your computer4 ,an operating system is the set of basic programs and utilities that make your computer run4 ,at the core of an operating system is the kernel4 ,the kernel is the most fundamental program on the computer3 ,it does all the basic housekeeping and lets you start other programs4 ,debian uses the ,linux kernel1 a completely free piece of software started by ,linus ,torvalds and supported by thousands of programmers worldwide4 ,a large part of the basic tools that fill out the operating system come from the ,,gnu ,project#a1 and these tools are also free4 #a http3_/_/www4gnu4org_/ ,another facet of an operating system is application software3 programs that help get work done1 from editing documents to running a business to playing games to writing more software4 ,debian comes with more than #a1ejj packages 7precompiled software bundled up in a nice format for easy installation on your machine7--all for free4 ,the ,debian system is a bit like a pyramid4 ,at the base is ,linux4 ,on top of that are all the basic tools1 mostly from ,,gnu4 ,next is all the application software that you run on the computer2 many of these are also from ,,gnu4 ,the ,debian developers act as architects and coordinators--carefully organizing the system and fitting everything together into an integrated1 stable operating system3 ,debian ,,gnu_/,linux4 ,the design philosophy of ,,gnu_/,linux is to distribute its functionality into small1 multipurpose parts4 ,that way1 you can easily achieve new functionality and new features by combining the small parts 7programs7 in new ways4 ,debian is like an erector set3 ,you can build all sorts of things with it4 ,when you're using an operating system1 you want to minimize the amount of work you put into getting your job done4 ,debian supplies many tools that can help1 but only if you know what these tools do4 ,spending an hour trying to get something to work and then finally giving up isn't very productive4 ,this guide will teach you about the core tools that make up ,debian3 what tools to use in certain situations and how to tie these various tools together4 #a4a4a ,who ,creates ,debian8 ,debian is an all-volunteer ,internet-based development project4 ,there are hundreds of volunteers working on it4 ,most are in charge of a small number of software packages and are very familiar with the software they package4 ,these volunteers work together by following a strict set of guidelines governing how packages are assembled4 ,these guidelines are developed cooperatively in discussions on ,internet mailing lists4 #a4b ,a ,multiuser1 ,multitasking ,operating ,system ,as we mentioned earlier in section #a4a1 the design of ,debian ,,gnu_/,linux comes from the ,unix operating system4 ,unlike common desktop operating systems such as ,,dos1 ,windows1 and ,mac,o,s1 ,,gnu_/,linux is usually found on large servers and multiuser systems4 ,this means that ,debian has features those other operating systems lack4 ,it allows a large number of people to use the same computer at once1 as long as each user has his or her own terminal4#b ,to permit many users to work at once1 ,debian must allow many programs and applications to run simultaneously4 ,this feature is called multitasking4 #b ,a terminal is just a keyboard and a screen that are connected to the computer through the network1 over a modem1 or directly4 ,you keyboard and monitor form a terminal that is directly attached to the computer3 ,this special terminal is often called the console4 ,much of the power 7and complexity7 of ,,gnu_/,linux systems stems from these two features4 ,for example1 the system must have a way to keep users from accidentally deleting each other's files4 ,the operating system also must coordinate the many programs running at once to ensure that they don't all use the same resource1 such as a hard drive1 at the same time4 ,if you keep in mind what ,debian was originally designed to do1 many aspects of it will make a lot more sense4 ,you'll learn to take advantage of the power of these features4 #a4c ,what ,is ,free ,software8 ,when ,debian developers and users speak of 8,free ,software10 they refer to freedom rather than price4 ,debian is free in this sense3 ,you are free to modify and redistribute it and will always have access to the source code for this purpose4 ,the ,debian ,free ,software ,guidelines#c describe in more detail exactly what is meant by 8free40 ,the ,free ,software ,foundation#d1 originator of the ,,gnu ,project1 is another excellent source of information4 ,you can find a more detailed discussion of free software on the ,debian web site#e4 ,one of the most well-known works in this field is ,richard ,m4 ,stallman's essay1 ,why ,software ,should ,be ,free#f2 take a look at it for some insight into why we support ,free ,software as we do4 ,recently1 some people have started calling ,free ,software 8,open ,source ,software02 the two terms are interchangable4 #c http3_/_/www4debian4org_/socialcontractg uidelines #d http3_/_/www4fsf4org_/ #e http3_/_/www4debian4org_/ #f http3_/_/www4fsf4org_/philosophy_/should befree4html ,you may wonder why would people spend hours of their own time writing software and carefully packaging it1 only to give it all away4 ,the answers are as varied as the people who contribute4 ,many believe in sharing information and having the freedom to cooperate with one another1 and they feel that free software encourages this4 ,a long tradition that upholds these values1 sometimes called the ,hacker#g ,ethic1 started in the #aiejs4 ,the ,debian ,,gnu_/,linux ,project was founded based on these ,free ,software ethics of freedom1 sharing1 and cooperation4 #g ,note that the term 8hacker0 should not be confused with the term 8cracker40 ,in short1 a hacker is benevolent1 whereas a cracker is generally considered malevolent4 ,movies and other forms of media many times incorrectly use the term 8hacker0 instead of 8cracker40 ,others want to learn more about computers4 ,more and more people are looking for ways to avoid the inflated price of proprietary software4 ,a growing community contributes in appreciation for all the great free software they've received from others4 ,many in academia create free software to help get the results of their research into wider use4 ,businesses help maintain free software so they can have a say in how it develops--there's no quicker way to get a new feature than to implement it yourself or hire a consultant to do so6 ,business is also interested in greater reliability and the ability to choose between support vendors4 ,still others see free software as a social good1 democratizing access to information and preventing excessive centralization of the world's information infrastructure4 ,of course1 a lot of us just find it great fun4 ,debian is so committed to free software that we thought it would be useful if it was formalized in a document of some sort4 ,our ,social ,contract#h promises that ,debian will always be #ajj free software4 ,when you install a package from the ,debian main distribution1 you can be sure it meets our ,free ,software ,guidelines4 #h http3_/_/www4debian4org_/socialcontract ,although ,debian believes in free software1 there are cases where people want to put proprietary software on their machine4 ,whenever possible ,debian will support this2 though proprietary software is not included in the main distribution1 it is sometimes available on the ,,ftp site in the non-free directory1 and there is a growing number of packages whose sole job is to install proprietary software we are not allowed to distribute ourselves4 ,it is important to distinguish commercial software from proprietary software4 ,proprietary software is non-free software2 commercial software is software sold for money4 ,debian permits commercial software1 but not proprietary software1 to be a part of the main distribution4 ,remember that the phrase 8free software0 does not refer to price2 it is quite possible to sell free software4 ,for more clarification of the terminology1 see http3_/_/www4opensource4org_/or http3_/_/www4fsf4org_/philosophy_/catego ries4html4 #a4d ,about ,this ,book ,this book is aimed at readers who are new to ,debian ,,gnu_/,linux4 ,it assumes no prior knowledge of ,,gnu_/,linux or other ,unix-like systems1 but it does assume very basic general knowledge about computers and hardware2 you should know what the basic parts of a computer are1 and what one might use a computer to do4 ,in general1 this tutorial tries to help you understand what happens inside a ,debian system4 ,the idea is to empower you to solve new problems and get the most out of your computer4 ,thus there's plenty of theory and fun facts thrown in with the 8,how ,to0 aspects of the manual4 ,we'd love to hear your comments about this book6 ,you can reach the authors at debian-guidecomplete4org4 ,we're especially interested in whether it was helpful to you and how we could make it better4 ,whether you have a comment or think this book is the greatest thing since sliced bread1 please send us e-mail4 ,please do not send the authors technical questions about ,debian1 because there are other forums for that2 see ,appendix ,a on page 99 for more information on the documentation and getting help4 ,only send mail regarding the book itself to the above address4 #a4d4a ,how to ,read ,this ,book ,the best way to learn about almost any computer program is by using it4 ,most people find that reading a book without using the program isn't beneficial4 ,the best way to learn about ,unix and ,,gnu_/,linux is by using them4 ,use ,,gnu_/,linux for everything you can4 ,feel free to experiment6 ,debian isn't as intuitively obvious as some other operating systems4 ,you will probably end up reading at least the first few chapters of this book4 ,,gnu_/,linux's power and complexity make it difficult to approach at first1 but far more rewarding in the long run4 ,the suggested way to learn is to read a little1 and then play a little4 ,keep playing until you're comfortable with the concepts1 and then start skipping around in the book4 ,you'll find a variety of topics are covered1 some of which you might find interesting4 ,after a while1 you should feel confident enough to start using commands without knowing exactly what they do4 ,this is a good thing4 ,tip3 ,if you ever mistakenly type a command or don't know how to exit a program1 press ,,ctrl-c 7the ,ctrl key and the lowercase letter c pressed simultaneously74 ,this will often stop the program4 #a4d4b ,conventions ,before going on1 it's important to be familiar with the typographical conventions used in this book4 ,when you should simultaneously hold down multiple keys1 a notation like ,,ctrl-a will be used4 ,this means 8press the ,ctrl key and press lowercase letter a40 ,some keyboards have both ,alt and ,meta2 most home computers have only ,alt1 but the ,alt key behaves like a ,meta key4 ,so if you have no ,meta key1 try the ,alt key instead4 ,keys like ,alt and ,meta are called modifier keys because they change the meaning of standard keys like the letter ,a4 ,sometimes you need to hold down more than one modifier2 for example1 ,meta-,ctrl-a means to simultaneously press ,meta1 ,ctrl1 and lowercase a4 ,some keys have a special notation--for example1 ,ret 7,return_/,enter71 ,del 7,delete or sometimes ,backspace71 ,esc 7,escape74 ,these should be fairly self-explanatory4 ,spaces used instead of hyphens mean to press the keys in sequential order4 ,for example1 ,,ctrl-a x ,,ret means to simultaneously type ,ctrl and lowercase a1 followed by the letter x1 followed by pressing ,return4 7,on some keyboards1 this key is labeled ,enter4 ,same key1 different name47 ,in sample sessions1 bold face text denotes characters typed by the user1 italicized text denotes comments about a given part of the sample session1 and all other text is output from entering a command4 ,for shorter commands1 you'll sometimes find that the command can be found within other text1 highlighed with a monospace font4 #b4 ,getting ,started 8,a journey of a thousand miles must begin with a single step40 --,lao-,tsu ,now that you've read about the ideas and philosophy behind ,linux and ,debian1 it's time to start putting it on your computer6 ,we start by talking about how to prepare for a ,debian install1 then about partitioning your disk1 and finally1 how to start up the installation system4 #b4a ,supported ,hardware ,debian does not impose hardware requirements beyond the requirements of the ,linux kernel and the ,,gnu tools4 ,rather than attempting to describe all the different hardware configurations that are supported for the ,,pc platform1 this section contains general information and pointers to where additional information can be found4 ,there are two excellent places to check for detailed information3 the ,debian ,system ,requirements#a list and the ,linux ,documentation ,project ,hardware ,compatibility ,,howto#b4 ,for information on video card support1 you may also want to look at the ,x,free#hfc ,project web site4 #a http3_/_/www4debian4org_/releases_/slink _/i#chf_/;ch-hardware-req4en4html #b http3_/_/metalab4unc4edu_/,,ldp_/,,howto _/,hardware-,,howto4html #c http3_/_/www4xfree#hf4org_/ #b4a4a ,memory and ,disk ,space ,requirements ,you must have at least #d,,mb of memory and #ce,,mb of available hard disk space4 ,if you want to install a reasonable amount of software1 including the ,x ,window system1 and some development programs and libraries1 you'll need at least #cjj,,mb4 ,for an essentially full installation1 you'll need around #hjj,,mb4 ,to install everything available in ,debian1 you'll probably need around #b;,,gb4 ,actually1 installing everything doesn't make sense because some packages provide the same services4 #b4b ,before ,you ,start ,before you start1 make sure to back up every file that is now on your system4 ,the installation procedure can wipe out all of the data on a hard disk6 ,the programs used in installation are quite reliable and most have seen years of use2 still1 a false move can cost you4 ,even after backing up1 be careful and think about your answers and actions4 ,two minutes of thinking can save hours of unnecessary work4 ,debian makes it possible to have both ,debian ,,gnu_/,linux and another operating system installed on the same system4 ,if you plan to use this option1 make sure that you have on hand the original ,,cd-,,rom or floppies of the other installed operating systems4 ,if you repartition your boot drive1 you may find that you have to reinstall your existing operating system's boot loader#d or the entire operating system itself4 #d ,a boot loader is responsible starting an operating system's boot procedure4 #b4b4a ,information ,you ,will ,need ,if your computer is connected to a network #bd hours a day 7i4e41 an ,ethernet or similar ,,lan connection--not a ,,ppp connection71 you should ask your network's system administrator for the following information3 ,your host name 7you may be able to decide this on your own7 ,your domain name ,your computer's ,,ip address ,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 you should route to1 if your network has a gateway ,the system on your network that you should use as a ,,dns server ,whether you connect to the network using ,ethernet ,whether your ,ethernet interface is a ,,pcmcia card1 and if so1 the type of ,,pcmcia controller you have ,if your only network connection is a telephone line using ,,ppp or an equivalent dialup connection1 you don't need to worry about getting your network set up until your system is already installed4 ,see section #aa4a on page #ii for information on setting up ,,ppp under ,debian4 #b4c ,partitioning ,your ,hard ,drive ,before you install ,debian on your computer1 it is generally a good idea to plan how the contents of your hard drive will be arranged4 ,one part of this process involves partitioning your hard drive4 #b4c4a ,background ,partitioning your disk simply refers to the act of breaking up your disk into sections4 ,each section is then independent of the others4 ,it's roughly equivalent to putting up walls in a house2 after that1 adding furniture to one room doesn't affect any other room4 ,if you already have an operating system on your system 7,windows #ie1 ,windows ,,nt1 ,,dos1 etc47 and you want to install ,debian ,,gnu_/,linux on the same disk1 you will probably need to repartition the disk4 ,in general1 changing a partition that already has a filesystem on it will destroy any information in that filesystem4 ,therefore1 you should always make backups before doing any repartitioning4 ,using the analogy of the house1 you would probably want to move all the furniture out of the way before moving a wall or you risk destroying your furniture4 ,luckily1 there is an alternative for some users2 see section #b4c4f on page 99 for more information4 ,at a bare minimum1 ,,gnu_/,linux needs one partition for itself4 ,you can have a single partition containing the entire operating system1 applications1 and your personal files4 ,most people choose to give ,,gnu_/,linux more than the minimum number of partitions1 however4 ,there are two reasons you might want to break up the filesystem into a number of smaller partitions4 ,the first is for safety4 ,if something happens to corrupt the filesystem1 generally only one partition is affected4 ,thus1 you only have to replace 7from the backups you've been carefully keeping7 a portion of your system4 ,at the very least1 you should consider creating what is commonly called a 8root partition40 ,this contains the most essential components of the system4 ,if any other partitions get corrupted1 you can still boot into ,,gnu_/,linux to fix the system4 ,this can save you the trouble of having to reinstall the system from scratch4 ,the second reason is generally more important in a business setting1 but it really depends on your use of the machine4 ,suppose something runs out of control and starts eating disk space4 ,if the process causing the problem happens to have root privileges 7the system keeps a percentage of the disk away from users71 you could suddenly find yourself out of disk space4 ,this is not good since the operating system needs to use real files 7besides swap space7 for many things4 ,it may not even be a problem of local origin4 ,for example1 unsolicited e-mail 78spam07 can easily fill a partition4 ,by using more partitions1 you protect the system from many of these problems4 ,using e-mail as an example again1 by putting the directory _/var_/spool_/mail on its own partition1 the bulk of the system will _/work even if unsolicited e-mail fills that partition4 ,another reason applies only if you have a large ,,ide disk drive and are using neither ,,lba addressing nor overlay drivers#e4 ,in this case1 you will have to put the root partition into the first #a1jbd cylinders of your hard drive1 usually around #ebd megabytes4 ,see section #b4c4c on page 99 for more information on this issue4 #e ,see your hard drive manual for a description of these features4 ,most people feel that a swap partition is also a necessity1 although this isn't strictly true4 8,swap0 is scratch space for an operating system1 which allows the system to use disk storage as 8virtual memory0 in addition to physical memory4 ,putting swap on a separate partition allows ,linux to make much more efficient use of it4 ,it is possible to force ,linux to use a regular file as swap1 but this is not recommended4 ,the only real drawback to using more partitions is that it is often difficult to know in advance what your needs will be4 ,if you make a partition too small1 either you will have to reinstall the system1 or you will be constantly moving things around to make room in the undersized partition4 ,on the other hand1 if you make the partition too big1 you may be wasting space that could be used elsewhere4 #b4c4b ,planning ,use of the ,system ,disk space requirements and your partitioning scheme are influenced by the type of installation you decide to create4 ,for your convenience1 ,debian offers a number of default 8profiles0 some of which are listed later in this section4 ,profiles are simply preselected sets of packages designed to provide certain desired capabilities on your system4 ,installation is easier since packages that fit your desired profile are automatically marked for installation4 ,each given profile lists the size of the resulting system after installation is complete4 ,even if you don't use these profiles1 this discussion is important for planning1 since it will give you a sense of how large your partition or partitions need to be4 ,the following are some of the available profiles and their sizes3 ,serverstd4 ,this is a small server profile1 useful for a stripped-down server1 that does not have a lot of niceties for shell users4 ,it basically has an ,,ftp server1 a web server1 ,,dns1 ,,nis1 and ,,pop4 ,it will take up around #ej,,mb4 ,of course1 this is just the size of the software2 any data you serve would be additional4 ,dialup4 ,this profile would be good for a standard desktop box1 including the ,x ,window system1 graphics applications1 sound1 editors1 etc4 ,the size of the packages will be around #ejj,,mb4 ,workstd4 ,this profile is suitable for a stripped-down user machine without the ,x ,window system or ,x applications4 ,it is also suitable for a laptop or mobile computer4 ,the size is around #adj,,mb4 ,it is possible to have a simple laptop setup including ,x with less than #ajj,,mb4 ,develcomp4 ,this is a desktop setup profile with all the popular development packages1 such as ,perl1 ,c1 and ,c4 ,it requires around #dge,,mb4 ,assuming you are adding ,x and some additional packages for other uses1 you should plan for approximately #hjj,,mb of disk space for this type of installation4 ,remember that these sizes don't include all the other materials that are normally found1 such as user files1 mail1 and data4 ,it is always best to be generous when considering the space for your own files and data4 ,notably1 the ,debian _/var directory contains a lot of state information4 ,the installed package management files can easily consume #bj,,mb of disk space4 ,in general1 you should allocate at least #ej,,mb for the _/var directory because system log files are also stored there4 #b4c4c ,,pc ,disk ,limitations ,a ,,pc ,,bios generally adds additional constraints for disk partitioning4 ,there is a limit to how many 8primary0 and 8logical0 partitions a drive can contain4 ,additionally1 there are limits to where on the drive the ,,bios looks for boot information4 ,more information can be found in the ,linux ,partition mini-,,howto#f4 ,this section will include a brief overview to help you plan most situations4 #f http3_/_/metalab4unc4edu_/,,ldp_/,,howto _/mini_/,partition4html 8,primary0 partitions are the original partitioning scheme for ,,pc hard disks4 ,however1 there can be only four of them4 ,to get past this limitation1 8extended0 or 8logical0 partitions were invented4 ,by setting one of your primary partitions as an extended partition1 you can subdivide all the space allocated to that partition into logical partitions4 ,the number of logical partitions you can create is much less limited than the number of primary partitions you can create2 however1 you can have only one extended partition per drive4 ,linux limits the number of partitions per drive to #ae partitions for ,,scsi drives 7#c usable primary partitions1 #ab logical partitions71 and #fc partitions for ,,ide drives 7#c usable primary partitions1 #fj logical partitions74 ,the last issue you need to know about a ,,pc ,,bios is that your boot partition--that is1 the partition containing your kernel image--needs to be contained within the first #a1jbd cylinders of the drive4 ,because the root partition is usually your boot partition1 you need to make sure your root partition fits into the first #a1jbd cylinders4 ,if you have a large disk1 you may have to use cylinder translation techniques1 which you can set in your ,,bios1 such as ,,lba translation mode4 7,more information about large disks can be found in the ,large ,disk mini-,,howto#g47 ,if you are using a cylinder translation scheme1 your boot partition must fit within the translated representation of cylinder #a1jbd4 #g http3_/_/metalab4unc4edu_/,,ldp_/,,howto _/mini_/,large-,disk4html #b4c4d ,device ,names in ,linux ,linux disks and partition names may be different from those in other operating systems4 ,you should know the names that ,linux uses when you create and mount partitions4 ,the basic scheme can be found in ,table #b4a on page 994 ,table #b4a3 ,linux ,device ,names ---------------------------------------- -------------------------------------- ,device ,linux ,name ---------------------------------------- ------------------------------------- ,first floppy drive _/dev_/fd#j ---------------------------------------- ------------------------------------- ,second floppy drive _/dev_/fd#a ---------------------------------------- ------------------------------------- ,first partition on _/dev_/hda 7typically ,c3 in _/dev_/hda#a other ,o,ss7 ---------------------------------------- ------------------------------------- ,fifth partition on _/dev_/hdc _/dev_/hdc#e ---------------------------------------- ------------------------------------- ,second partition on _/dev_/sdb _/dev_/sdb#b ---------------------------------------- ------------------------------------- ,entire ,primary-,master ,,ide hard disk or ,,cd-,,rom _/dev_/hda ---------------------------------------- ------------------------------------- ,entire ,primary-,slave ,,ide hard disk or ,,cd-,,rom _/dev_/hdb ---------------------------------------- ------------------------------------- ,entire ,secondary-,master ,,ide hard disk or _/dev_/hdc ,,cd-,,rom ---------------------------------------- ------------------------------------- ,entire ,secondary-,slave ,,ide hard disk or _/dev_/hdd ,,cd-,,rom ---------------------------------------- ------------------------------------- ,first ,,scsi disk _/dev_/sda ---------------------------------------- ------------------------------------- ,second and remaining ,,scsi disks _/dev_/sdb and so forth ---------------------------------------- ------------------------------------- ,first serial port 7,,com#a in other ,o,ss7 _/dev_/tty,s#j ---------------------------------------- ------------------------------------- ,second1 third1 etc4 serial ports _/dev_/tty,s#a1 _/dev_/tty,s#b1 etc4 ---------------------------------------- ------------------------------------- ,,scsi tape units 7automatic rewind7 _/dev_/st#j1 _/dev_/st#a1 etc4 ---------------------------------------- ------------------------------------- ,,scsi tape units 7no automatic rewind7 _/dev_/nst#j1 _/dev_/nst#a1 etc4 ---------------------------------------- ------------------------------------- ,,scsi ,,cd-,r,o,ms _/dev_/scd#j1 _/dev_/scd#a1 etc4 ---------------------------------------- -------------------------------------- ,the partitions on each disk are represented by appending a number to the disk name4 ,for example1 the names hda#a and hda#b represent the first and second partitions of the first ,,ide disk drive in your system4 ,linux represents the primary partitions with the drive name plus the numbers #a through #d4 ,for example1 the first primary partition on the first ,,ide drive is _/dev_/hda#a4 ,the logical partitions are numbered starting at #e1 so the first logical partition on that same drive is _/dev_/hda#e4 ,remember that the extended partition--that is1 the primary partition holding the logical partitions--is not usable by itself4 ,this applies to ,,scsi drives as well as ,,ide drives4 ,let's assume you have a system with two ,,scsi disks1 one at ,,scsi address #b and the other at ,,scsi address #d4 ,the first disk 7at address #b7 is then named sda and the second sdb4 ,if the sda drive has three partitions on it1 these will be named sda#a1 sda#b1 and sda#c4 ,the same applies to the sdb disk and its partitions4 ,note that if you have two ,,scsi host bus adapters 7i4e41 controllers71 the order of the drives can get confusing4 ,the best solution in this case is to watch the boot messages1 assuming you know the drive models4 #b4c4e ,recommended ,partitioning ,scheme ,as described above1 you should have a separate smaller root partition and a larger _/usr partition if you have the space4 ,for most users1 the two partitions initially mentioned are sufficient4 ,this is especially appropriate when you have a single small disk1 because creating lots of partitions can waste space4 ,in some cases1 you might need a separate _/usr_/local partition if you plan to install many programs that are not part of the ,debian distribution4 ,if your machine will be a mail server1 you may need to make _/var_/spool_/mail a separate partition4 ,putting _/tmp on its own #bj to #cb,,mb partition1 for instance1 is a good idea4 ,if you are setting up a server with lots of user accounts1 it's generally good to have a separate1 large _/home partition to store user home directories4 ,in general1 the partitioning situation varies from computer to computer depending on its uses4 ,for very complex systems1 you should see the ,multi ,disk ,,howto#h4 ,it contains in-depth information1 mostly of interest to people setting up servers4 #h http3_/_/metalab4unc4edu_/,,ldp_/,,howto _/,multi-,disk-,,howto4html ,swap partition sizes should also be considered4 ,there are many views about swap partition sizes4 ,one rule of thumb that works well is to use as much swap as you have system memory1 although there probably isn't much point in going over #fd,,mb of swap for most users4 ,it also shouldn't be smaller than #af,,mb1 in most cases4 ,of course1 there are exceptions to these rules4 ,if you are trying to solve #aj1jjj simultaneous equations on a machine with #bef,,mb of memory1 you may need a gigabyte 7or more7 of swap space4 ,as an example1 consider a machine that has #cb,,mb of ,,ram and a #a4g;,,gb ,,ide drive on _/dev_/hda4 ,there is a #ejj,,mb partition for another operating system on _/dev_/hda#a4 ,a #cb,,mb swap partition is used on _/dev_/hda#c and the rest1 about #a4b;,,gb1 on _/dev_/hda#b is the ,linux partition4 #b4c4f ,partitioning ,prior to ,installation ,there are two different times that you can partition3 prior to or during the installation of ,debian4 ,if your computer will be solely dedicated to ,debian you should partition during installation as described in section #c4e on page 994 ,if you have a machine with more than one operating system on it1 you should generally let the other operating system create its own partitions4 ,the following sections contain information regarding partitioning in your native operating system prior to ,debian installation4 ,note that you'll have to map between how the other operating system names partitions and how ,linux names partitions2 see ,table #b4a on page 994 ,partitioning from ,,dos or ,windows ,if you are manipulating existing ,,fat or ,,ntfs partitions1 it is recommended that you use either the scheme below or native ,windows or ,,dos tools4 ,otherwise1 it is not really necessary to partition from ,,dos or ,windows2 the ,linux partitioning tools will generally do a better job4 ,lossless ,repartitioning ,one of the most common installations is onto a system that already contains ,,dos 7including ,windows #c4a71 ,win#cb 7such as ,windows #ie1 #ih1 ,,nt71 or ,,os_/#b and it is desired to put ,debian onto the same disk without destroying the previous system4 ,as explained in section #b4c4a on page 991 decreasing the size of an existing partition will almost certainly damage the data on that partition unless certain precautions are taken4 ,the method described here1 while not guaranteed to protect your data1 works extremely well in practice4 ,as a precaution1 you should make a backup4 ,before going any further1 you should have decided how you will divide up the disk4 ,the method in this section will only split a partition into two pieces4 ,one will contain the original operating system1 and the other will be used for ,debian4 ,during the installation of ,debian1 you will be given the opportunity to use the ,debian portion of the disk as you see fit1 i4e41 as swap or as a filesystem4 ,the idea is to move all the data on the partition to the beginning before changing the partition information1 so that nothing will be lost4 ,it is important that you do as little as possible between the data movement and repartitioning to minimize the chance of a file being written near the end of the partition as this will decrease the amount of space you can take from the partition4 ,the first thing you need is a copy of ,,fips1 which is available in the tools directory on your ,debian ,,cd-,,rom4 ,this disk must be bootable4 ,under ,,dos1 a bootable floppy can be created using the command sys a3 for a previously formatted floppy or format a3 _/s for an unformatted floppy4 ,unzip the archive and copy the files ,,restorrb4,,exe1 ,,fips4,,exe and ,,errors4,,txt to the bootable floppy4 ,,fips comes with very good documentation that you may want to read4 ,you should definitely read the documentation if you use a disk compression driver or a disk manager4 ,create the disk and read the documentation before you continue4 ,the next thing to be done is to move all the data to the beginning of the partition4 ,,defrag1 which comes standard with ,,dos #f4j and later1 can easily do the job4 ,see the ,,fips documentation for a list of other software that may also work4 ,note that if you have ,windows #ie or higher1 you must run ,,defrag from there1 because ,,dos doesn't understand ,,vfat1 which is used to support long filenames in ,windows #ie and higher4 ,after running the defragmenter 7which can take a while on a large disk71 reboot with the ,,fips floppy disk you created4 ,simply type a3 fips and follow the directions4 ,note that there are many other other partition managers out there1 in case ,,fips doesn't work for you4 #b4c4g ,debian ,installation ,steps ,as you initially install ,debian1 you will proceed through several different steps3 #a4 ,boot the installation system #b4 ,initial system configuration #c4 ,install the base system #d4 ,boot the newly installed base system #e4 ,install the rest of the system ,booting the ,debian installation system1 the first step1 is generally done with the ,rescue ,floppy or from the ,,cd-,,rom4 ,once you've booted into ,linux1 the dbootstrap program will launch and guide you through the second step1 the initial system configuration4 ,this step is described in detail in section #c on page 994 ,the 8,debian base system0 is a core set of packages that are required to run ,debian in a minimal1 stand-alone fashion4 dbootstrap will install it from your ,,cd-,,rom1 as described in section #c4ab on page 994 ,once you have configured and installed the base system1 your machine can 8stand on its own40 ,the final step is the installation of the remainder of the ,debian system4 ,this would include the applications and documents that you actually use on your computer1 such as the ,x ,window system1 editors1 shells1 and development environments4 ,the rest of the ,debian system can be installed from ,,cd-,,rom4 ,at this point1 you'll be using the standard ,debian package management tools1 such as dselect4 ,this step is described in section #c4bj on page 994 #b4d ,choosing ,your ,installation ,media ,first1 choose the boot media for the installation system4 ,next1 choose the method you will use to install the base system4 ,to boot the installation system1 you have the following choices3 bootable ,,cd-,,rom1 floppies1 or a non-,linux boot loader4 ,,cd-,,rom booting is one of the easiest ways to install4 ,not all machines can boot directly from the ,,cd-,,rom so you may still need to use floppies4 ,booting from floppies is supported for most platforms4 ,floppy booting is described in section #b4d4b on page 994 #b4d4a ,installing from a ,,cd-,,rom ,if your system supports booting from a ,,cd-,,rom1 you don't need any floppies4 ,put the ,,cd-,,rom into the drive1 turn your computer off1 and then turn it back on4 ,you should see a ,welcome screen with a boot prompt at the bottom4 ,now you can skip down to section #b4e4 ,if your computer didn't 8see0 the ,debian ,,cd-,,rom1 the easiest option is to make two floppies for booting 7described in section #b4d4b7 and then use them to start ,debian4 ,don't worry2 after ,debian is finished with those two floppies1 it will find your ,,cd-,,rom with no trouble4 #b4d4b ,booting from ,floppies ,it's not hard at all to boot from floppies4 ,in fact1 your ,,cd-,,rom contains all the information necessary to create boot disks for you4 ,for these instructions1 you will need to get two disks4 ,label the first one 8,debian #b4a ,install_/,rescue ,disk0 and the second 8,debian #b4a ,modules_/,drivers ,disk40 ,creating ,floppies from ,disk ,images ,disk images are files containing the complete contents of a floppy disk in raw form4 ,disk images1 such as resc#addj4;bin1 cannot simply be copied to floppy drives4 ,a special program is used to write the image files to floppy disk in raw mode4 ,first1 you need to get to a ,,dos prompt4 ,in ,windows #ie and above1 you can do this by double-clicking on an ,,ms-,,dos icon or by going to ,start7 rightarrow 7,programs7 rightarrow 7,,ms-,,dos prompt4 ,then1 insert your ,debian ,,gnu_/,linux ,,cd-,,rom into your ,,cd-,,rom drive4 ,first1 you change to your ,,cd-,,rom drive4 ,in most cases1 this is ,d34 ,c3,,windows,d3 ,now1 change to the directory containing the disk images4 ,d3,,cd ,,dists,,slink,,main,,disks-,i#chfb4a4h- aiii-jb-bb ,if you get an error1 double-check what you're typing4 ,if the error persists1 manually issue ,,cd ,,dists,,slink,,main,,disks-,i#chf1 then run ,,dir1 and then ,,cd into the directory indicated4 ,note that the above commands1 and some other examples below1 may appear as a single line on your display even if they are wrapped here4 ,now1 you're ready to create the first of two disks4 ,start the program to write them out1 rawrite#b3 ,d3,,dists,,slink,,main,,disks-,i#chf #b4a4h-aiii-jb-bbrawrite#b ,ra,write #b4j - ,write disk file to raw floppy diskette ,rawrite#b starts and displays its welcome message4 ,next1 it asks for the filename and diskette drive4 ,you tell it to write resc#addj4;bin to a3 ,enter disk image source file name3 resc#addj4;bin ,enter target diskette drive3 a3 ,rawrite#b now asks you to insert a disk into the floppy drive4 ,do so and press ,enter4 ,plese insert a formatted diskette into drive ,a3 and press -,,enter- 3 ,at this point1 rawrite#b will create the first of the two disks4 ,now1 you need to repeat the process for the second disk3 ,d3,,dists,,slink,,main,,disks-,i#chf #b4a4h-aiii-jb-bbrawrite#b ,ra,write #b4j - ,write disk file to raw floppy diskette ,enter disk image source file name3 drv#addj4;bin ,enter target diskette drive3 a3 ,please insert a formatted diskette into drive ,a3 and press -,,enter- 3 ,by now1 your disks are created4 ,you can now use the first one to boot4 ,booting ,debian ,you are now ready to boot into ,debian6 ,shut down your existing operating system1 turn off your computer1 and place the ,install_/,rescue ,disk into the floppy drive4 ,now turn your computer back on4 ,you should get a ,welcome screen with a boot prompt at the bottom4 #b4e ,booting the ,installation ,system ,you should now have the boot prompt4 ,simply press ,enter at this point4 ,once you press ,enter1 you should see the message ,loading4441 and then ,uncompressing ,linux4441 and then a screenful or so of information about the hardware in your system4 ,in general1 you can ignore these messages4 ,linux will look for various hardware devices and will tell you what it finds and doesn't find4 ,don't worry about messages at this point4 ,just wait until you see the ,color ,selection screen4 ,if you have trouble1 see section ,b4#b on page 994 #c4 ,step-by-,step ,installation dbootstrap is the name of the program that is run after you have booted into the installation system4 ,it is responsible for initial system configuration and the installation of the 8base system40 ,the main job of dbootstrap and the main purpose of your initial system configuration is to configure certain core elements of your system4 ,for instance1 this includes your ,,ip address1 host name1 and other aspects of your networking setup1 if any4 ,this also includes the configuration of 8kernel modules10 which are drivers that are loaded into the kernel4 ,these modules include storage hardware drivers1 network drivers1 special language support1 and support for other peripherals4 ,configuring these fundamental things is done first1 because it is often necessary for the system to function properly for the next steps of installation4 dbootstrap is a simple1 character-based application4 ,it is very easy to use2 generally1 it will guide you through each step of the installation process in a linear fashion4 ,you can also go back and repeat steps if you made a mistake4 ,navigation within dbootstrap is accomplished with the arrow keys1 ,enter1 and ,tab4 #c4a ,select ,color or ,monochrome ,display ,once the system has finished booting1 dbootstrap is invoked4 ,the first thing that dbootstrap asks about is your display4 ,you should see the 8,select ,color or ,monochrome display0 dialog box4 ,if your monitor is capable of displaying color1 press ,enter4 ,the display should change from black-and-white to color4 ,then press ,enter again1 on the 8,next0 item1 to continue with the installation4 ,if your monitor can display only black and white1 use the arrow keys to move the cursor to the 8,next0 menu item1 and then press ,enter to continue with the installation4 #c4b ,debian ,,gnu_/,linux ,installation ,main ,menu ,you may see a dialog box that says 8,the installation program is determining the current state of your system and the next installation step that should be performed40 ,this is a phase in which the installation program automatically figures out what you probably need to do next4 ,in some cases1 you may not even see this box4 ,during the entire installation process1 you will be presented with the main menu1 titled 8,debian ,,gnu_/,linux ,installation ,main ,menu40 ,the choices at the top of the menu will change to indicate your progress in installing the system4 ,phil ,hughes wrote in the ,linux ,journal#a that you could teach a chicken to install ,debian6 ,he meant that the installation process was mostly just pecking at the ,enter key4 ,the first choice on the installation menu is the next action that you should perform according to what the system detects you have already done4 ,it should say 8,next10 and at this point the next step in installing the system will be taken4 #a http3_/_/www4linuxjournal4com #c4c ,configure the ,keyboard ,make sure the highlight is on the 8,next0 item and press ,enter to go to the keyboard configuration menu4 ,move the highlight to the keyboard selection you desire and press ,enter4 ,use the arrow keys to move the highlight4 ,in most cases1 you can just use the default ,u4,s4 layout4 #c4d ,last ,chance to ,back ,up6 ,did we tell you to back up your disks8 ,here's your first chance to wipe out all of the data on your disks and your last chance to save your old system4 ,if you haven't backed up all of your disks1 remove the floppy from the drive1 reset the system1 and run backups4 #c4e ,partition a ,hard ,disk ,whatever the 8,next0 menu selection is1 you can use the down-arrow key to select 8,partition a ,hard ,disk40 ,go ahead and do this now1 then press ,enter4 ,the 8,partition a ,hard ,disk0 menu item presents you with a list of disk drives you can partition and runs a partitioning application called cfdisk4 ,you must create at least one 8,linux native0 7type #hc7 disk partition1 and you probably want at least one 8,linux swap0 7type #hb7 partition1 as explained in later in this section4 ,you will now create the partitions that you need to install ,debian4 ,for this example1 the assumption is that you are partitioning an empty hard disk4 ,the boot partition must reside within the first #a1jbd of cylinders of your hard disk 7see section #b4c4c on page 9974 ,keeping that in mind1 use the right-arrow key to highlight the 8,new0 menu selection1 and then press ,enter4 ,you will be presented with the choice of creating a primary partition or a logical partition4 ,to help ensure that the partition containing the boot information is within the first #a1jbd cylinders1 create a primary partition first4 ,this primary partition will be your 8,linux native0 partition4 ,highlight the 8,primary0 menu selection and press ,enter4 ,next you will need to enter how large you want that partition to be4 ,review section #b4c4b on page 99 if you're not sure how large it should be4 ,remember to leave enough space for your swap partition 7see section #b4c4e on page 9974 ,enter the parition size you want and then press ,enter4 ,next you will be asked if you want to place the partition at the beginning of free space or at the end4 ,place it at the beginning to help ensure that it lies within the first #a1jbd cylinders4 ,highlight 8,beginning0 and press ,enter4 ,at this point you will be brought back to the main screen4 ,notice that the partition you created is listed4 ,by default1 a ,linux native partition was created4 ,this partition must now be made bootable4 ,make sure that the 8,bootable0 menu selection is highlighted and press ,enter4 ,the partition should now have the word 8,boot0 listed under the 8,flags0 column4 ,with the remaining space1 create another primary partition4 ,using the down-arrow key1 highlight the free space entry in the partition list4 ,now highlight the 8,new0 menu selection and proceed just as you did when you created the first primary partition4 ,notice that the partition is listed as a ,linux native partition4 ,because this partition will be your swap partition1 it must be denoted as such4 ,make sure the partition you just created 7your swap partition7 is highlighted and then press the left-arrow key until the 8,type0 menu selection is highlighted1 then press ,enter4 ,you will be presented with a list of supported partition types4 ,the ,linux swap partition type should already be selected4 ,if it is not1 enter the number from the list that corresponds to the ,linux swap partition 7#hb71 and then press ,enter4 ,your swap partition should now be listed as a ,linux swap partition under the 8,,fs ,type0 column in the main screen4 ,illustration3 ,figure #c4a3 cfdisk screenshot ,your cfdisk screen should look something like the screenshot in ,figure #c4a on page 994 ,the numbers may not be the same1 but the ,flags and ,,fs ,type column shoulds be similar4 ,until now1 nothing on your disk has been altered4 ,if you are satisfied that the partition scheme you created is what you want1 press the left-arrow key until 8,write0 is highlighted1 and press ,enter4 ,your hard disk has now been partitioned4 ,quit the cfdisk application by selecting the 8,quit0 menu selection4 ,once you have left cfdisk1 you should be back in ,debian's dbootstrap installation application4 #c4f ,initialize and ,activate a ,swap ,partition ,this will be the 8,next0 menu item once you have created one disk partition4 ,you have the choice of initializing and activating a new swap partition1 activating a previously-initialized one1 or doing without a swap partition4 ,a swap partition is strongly recommended1 but you can do without one if you insist and if your system has more than #d,,mb ,,ram4 ,if you wish to do this1 select the 8,do ,without a ,swap ,partition0 item from the menu and move on to the next section4 ,it's always permissible to reinitialize a swap partition1 so select 8,initialize and ,activate a ,swap ,partition0 unless you are sure you know what you are doing4 ,this menu choice will first present you with a dialog box reading 8,please select the partition to activate as a swap device40 ,the default device presented should be the swap partition you've already set up2 if so1 just press ,enter4 ,next you have the option to scan the entire partition for unreadable disk blocks caused by defects on the surface of the hard disk platters4 ,this is useful if you have ,,mfm1 ,,rll1 or older ,,scsi disks1 and it never hurts 7although it can be time-consuming74 ,properly working disks in most modern systems don't require this step1 because they have their own internal mechanisms for mapping out bad disk blocks4 ,finally1 there is a confirmation message because initialization will destroy any data previously on the partition4 ,if all is well1 select 8,yes40 ,the screen will flash as the initialization program runs4 #c4g ,initialize a ,linux ,partition ,at this point1 the next menu item presented should be 8,initialize a ,linux ,partition40 ,if it isn't1 either you haven't completed the disk partitioning process1 or you haven't made one of the menu choices dealing with your swap partition4 ,you can initialize a ,linux partition1 or alternately you can mount a previously initialized one4 ,note that dbootstrap will not upgrade an old system without destroying it4 ,if you're upgrading1 ,debian can usually upgrade itself1 and you won't need to use dbootstrap4 ,the ,debian #b4a release notes contain upgrade instructions#b4 #b http3_/_/www4debian4org_/releases_/slink _/i#chf_/release-notes_/ch-upgrading- req4en4html ,if you are using old disk partitions that are not empty1 i4e41 if you want to just throw away what is on them1 you should initialize them 7which erases all files74 ,moreover1 you must initialize any partitions that you created in the disk partitioning step4 ,about the only reason to mount a partition without initializing it at this point would be to mount a partition upon which you have already performed some part of the installation process using this same set of installation floppies4 ,select the 8,next0 menu item to initialize and mount the _/ disk partition4 ,the first partition that you mount or initialize will be the one mounted as _/ 7pronounced 8root074 ,you will be offered the choice to scan the disk partition for bad blocks1 as you were when you initialized the swap partition4 ,it never hurts to scan for bad blocks1 but it could take #aj minutes or more to do so if you have a large disk4 ,once you've mounted the _/ partition1 the 8,next0 menu item will be 8,install ,operating ,system ,kernel and ,modules0 unless you've already performed some of the installation steps4 ,you can use the arrow keys to select the menu items to initialize or to mount disk partitions if you have any more partitions to set up4 ,if you have created separate partitions for _/var1 _/usr1 or other filesystems1 you should initialize or mount them now4 #c4g4a ,mount a ,previously-,initialized ,partition ,an alternative to the 8,initialize a ,partition0 step is the 8,mount a ,previously-,initialized ,partition0 step4 ,use this if you are resuming an installation that was interrupted or if you want to mount partitions that have already been initialized4 #c4h ,install ,operating ,system ,kernel and ,modules ,this should be the next menu step after you've mounted your root partition1 unless you've already performed this step in a previous run of dbootstrap4 ,first1 you will be asked to confirm that the device you have mounted on root is the proper one4 ,next1 you will be offered a menu of devices from which you can install the kernel4 ,choose the appropriate device from which to install the kernel and modules2 this will either be a ,,cd-,,rom device or the first floppy device4 ,if you're installing from floppies1 you'll need to feed in the ,rescue ,floppy 7which is probably already in the drive71 followed by the ,drivers ,floppy4 #c4i ,configure ,,pcmcia ,support ,there is an alternate step1 before the 8,configure ,device ,driver ,modules0 menu selection1 called 8,configure ,,pcmcia ,support40 ,this menu is used to enable ,,pcmcia support4 ,if you do have ,,pcmcia but are not installing your ,debian system using it 7i4e41 installation with a ,,pcmcia ,ethernet card71 you need not configure ,,pcmcia at this point4 ,you can easily configure and enable ,,pcmcia at a later point1 after installation is complete4 ,however1 if you are installing by way of a ,,pcmcia network device1 this alternate must be selected1 and ,,pcmcia support must be configured prior to configuring the network4 ,if you need to install ,,pcmcia1 select the alternate below 8,configure ,device ,driver ,modules40 ,you will be asked which ,,pcmcia controller your system contains4 ,in most cases1 this will be i#hbcfe4 ,in some cases1 it will be tcic2 your laptop's vendor-supplied specifications should provide the information4 ,you can generally leave the next few sets of options blank4 ,again1 certain hardware has special needs2 the ,linux ,,pcmcia ,,howto#c contains plenty of information in case the default doesn't work4 #c http3_/_/metalab4unc4edu_/,,ldp_/,,howto _/,,pcmcia-,,howto4html ,in some unusual cases1 you may also need to modify the file _/etc_/pcmcia_/config4opts4 ,you can open your second virtual terminal 7,left ,alt-,f#b7 and edit the file there and then reconfigure your ,,pcmcia1 or you can manually force a reload of the modules using insmod and rmmod4 ,once ,,pcmcia is properly configured and installed1 you should configure your device drivers as described in the next section4 #c4aj ,configure ,device ,driver ,modules ,select the 8,configure ,device ,driver ,modules0 menu item and look for devices that are on your system4 ,configure those device drivers1 and they will be loaded whenever your system boots4 ,you don't have to configure all your devices at this point2 what is crucial is that any device configuration required for the installation of the base system is done here4 ,at any point after the system is installed1 you can reconfigure your modules with the modconf program4 #c4aa ,configure the ,network ,you'll have to configure the network even if you don't have a network1 but you'll only have to answer the first two questions--8,choose the ,host name10 and 8,is your system connected to a network80 ,if you are connected to a network1 you'll need the information you collected from #b4b4a4 ,however1 if your primary connection to the network will be ,,ppp1 you should choose ,,not to configure the network4 dbootstrap will ask you a number of questions about your network2 fill in the answers from #b4b4a4 ,the system will also summarize your network information and ask you for confirmation4 ,next1 you need to specify the network device that your primary network connection uses4 ,usually1 this will be eth#j 7the first ,ethernet device74 ,on a laptop1 it's more likely that your primary network device is pcmcia4 ,here are some technical details you may find handy3 ,the program assumes the network ,,ip address is the bitwise ,,and of your system's ,,ip address and your netmask4 ,it will guess the broadcast address is the bitwise ,,or of your system's ,,ip address with the bitwise negation of the netmask4 ,it will guess that your gateway system is also your ,,dns server4 ,if you can't find any of these answers1 use the system's guesses4 ,you can change them once the system has been installed1 if necessary1 by editing _/etc_/init4d_/network4 7,on a ,debian system1 daemons are started by _/scripts in the directory _/etc_/init4d_/47 #c4ab ,install the ,base ,system ,during the 8,install the ,base ,system0 step1 you'll be offered a menu of devices from which you may install the base system4 ,here1 you need to select your ,,cd-,,rom device4 ,you will be prompted to specify the path to the base#ba4tgz file4 ,if you have official ,debian media1 the default value should be correct4 ,otherwise1 enter the path where the base system can be found1 relative to the media's mount point4 ,as with the 8,install ,operating ,system ,kernel and ,modules0 step1 you can either let dbootstrap find the file itself or type in the path at the prompt4 #c4ab4a ,configure the ,base ,system ,at this point you've read in all of the files that make up a minimal ,debian system1 but you must perform some configuration before the system will run4 ,you'll be asked to select your time zone4 ,there are many ways to specify your time zone2 we suggest you go to the 8,directories30 pane and select your country 7or continent74 ,that will change the available time zones1 so go ahead and select your geographic locality 7i4e41 country1 province1 state1 or city7 in the 8,timezones30 pane4 ,next1 you'll be asked if your system clock is to be set to ,,gmt or local time4 ,select ,,gmt 7i4e41 8,yes07 if you will only be running ,linux on your computer2 select local time 7i4e41 8,no07 if you will be running another operating system as well as ,debian4 ,unix 7and ,linux is no exception7 generally keeps ,,gmt time on the system clock and converts visible time to the local time zone4 ,this allows the system to keep track of daylight savings time and leap years1 and even allows a user who is logged in from another time zone to individually set the time zone used on his or her terminal4 #c4ab4b ,make ,linux ,bootable ,directly from the ,hard ,disk ,if you elect to make the hard disk boot directly to ,linux1 you will be asked to install a master boot record4 ,if you aren't using a boot manager 7and this is probably the case if you don't know what a boot manager is7 and you don't have another different operating system on the same machine1 answer 8,yes0 to this question4 ,note that if you answer 8,yes10 you won't be able to boot into ,,dos normally on your machine1 for instance4 ,be careful4 ,if you answer 8,yes10 the next question will be whether you want to boot ,linux automatically from the hard disk when you turn on your system4 ,this sets ,linux to be the bootable partition--the one that will be loaded from the hard disk4 ,note that multiple operating system booting on a single machine is still something of a black art4 ,this book does not even attempt to document the various boot managers1 which vary by architecture and even by sub-architecture4 ,you should see your boot manager's documentation for more information4 ,remember3 ,when working with the boot manager1 you can never be too careful4 ,the standard i#chf boot loader is called 8,,lilo40 ,it is a complex program that offers lots of functionality1 including ,,dos1 ,,nt1 and ,,os_/#b boot management4 ,to find out more about this functionality1 you can read the documentation in _/usr_/doc_/lilo after your system is set up4 #c4ac ,make a ,boot ,floppy ,you should make a boot floppy even if you intend to boot the system from the hard disk4 ,the reason is that it's possible for the hard disk bootstrap to be mis-installed1 but a boot floppy will almost always work4 ,select 8,make a ,boot ,floppy0 from the menu and feed the system a blank floppy as directed4 ,make sure the floppy isn't write-protected1 because the software will format and write it4 ,mark this the 8,custom ,boot0 floppy and write-protect it once it has been written4 #c4ad ,the ,moment of ,truth ,you system's first boot on its own power is what electrical engineers call the 8smoke test40 ,if you have any floppies in your floppy drive1 remove them4 ,select the 8,reboot the ,system0 menu item4 ,if are booting directly into ,debian and the system doesn't start up1 either use your original installation boot media 7for instance1 the ,rescue ,floppy7 or insert the ,custom ,boot floppy if you created one1 and then reset your system4 ,if you are not using the ,custom ,boot floppy1 you will probably need to add some boot arguments4 ,if booting with the ,rescue ,floppy or similar technique1 you need to specify rescue rootrootfs1 where rootfs is your root partition1 such as _/dev_/sda#a4 ,debian should boot1 and you should see the same messages as when you first booted the installation system1 followed by some new messages4 #c4ae ,set the ,root ,password ,the root account is also called the superuser2 it is a login that bypasses all security protection on your system4 ,the root account should be used only to perform system administration and for as short a time as possible4 ,any password you create should contain from six to eight characters1 and it should contain both uppercase and lowercase characters1 as well as punctuation characters4 ,take extra care when setting your root password1 since it is such a powerful account4 ,avoid dictionary words or use of any personal information that could be guessed4 ,if anyone ever tells you he needs your root password1 be extremely wary4 ,you should normally never give out your root account1 unless you are administering a machine with more than one system administrator4 #c4af ,create an ,ordinary ,user ,the system will ask you to create an ordinary user account4 ,this account should be your main personal login4 ,you should not use the root account for daily use or as your personal login4 ,why not8 ,it's a lot harder to do damage to the system as an ordinary user than as root2 system files are protected4 ,another reason is that you might be tricked into running a ,trojan horse program--that is1 a program that takes advantage of your superuser powers to compromise the security of your system behind your back4 ,any good book on ,unix system administration will cover this topic in more detail4 ,consider reading one if this topic is new to you4 ,name the user account anything you like4 ,if your name is ,john ,smith1 you might use 8smith10 8john10 8jsmith10 or 8js40 #c4ag ,shadow ,password ,support ,next1 the system will ask whether you want to enable shadow passwords4 ,this is an authentication system that makes your ,linux system a bit more secure4 ,therefore1 we recommend that you enable shadow passwords4 ,reconfiguration of the shadow password system can also be done later with the shadowconfig program4 #c4ah ,remove ,,pcmcia ,if you have no use for ,,pcmcia1 you can choose to remove it at this point4 ,this will make your startup cleaner2 also1 it will make it easier to replace your kernel 7,,pcmcia requires a lot of correlation between the version of the ,,pcmcia drivers1 the kernel modules1 and the kernel itself74 ,in general1 you will not need ,,pcmcia unless you're using a laptop4 #c4ai ,select and ,install ,profiles ,the system will now ask you if you want to use the pre-rolled software configurations offered by ,debian4 ,you can always choose package-by-package what you want to install on your new machine4 ,this is the purpose of the dselect program1 described below4 ,but this can be a long task with the thousands of packages available in ,debian6 ,so1 you have the ability to choose tasks or profiles instead4 ,a task is work you will do with the machine1 such as 8,perl programming0 or 8,,html authoring0 or 8,chinese word processing40 ,you can choose several tasks4 ,a profile is a category your machine will be a member of1 such as 8,network server0 or 8,personal workstation40 ,unlike with tasks1 you can choose only one profile4 ,to summarize1 if you are in a hurry1 choose one profile4 ,if you have more time1 choose the ,custom profile and select a set of tasks4 ,if you have plenty of time and want very precise control on what is or is not installed1 skip this step and use the full power of dselect4 ,soon1 you will enter into dselect4 ,if you selected tasks or profiles1 remember to skip the 8,select0 step of dselect1 because the selections have already been made4 ,a word of warning about the size of the tasks as they are displayed3 ,the size shown for each task is the sum of the sizes of its packages4 ,if you choose two tasks that share some packages1 the actual disk requirement will be less than the sum of the sizes for the two tasks4 ,once you've added both logins 7root and personal71 you'll be dropped into the dselect program4 dselect allows you to select packages to be installed on your system4 ,if you have a ,,cd-,,rom or hard disk containing the additional ,debian packages that you want to install on your system1 or if you are connected to the ,internet1 this will be useful to you right away4 ,otherwise1 you may want to quit dselect and start it later after you have transported the ,debian package files to your system4 ,you must be the superuser 7root7 when you run dselect4 ,information on how to use dselect is given in section #c4bj4 #c4bj ,package ,installation with dselect ,it is now time to install the software packages of your choice on your ,debian system4 ,this is done using ,debian's package management tool1 dselect4 #c4bj4a ,introduction ,this section documents dselect for first-time users4 ,it makes no attempt to explain everything1 so when you first meet dselect1 work through the help screens4 dselect is used to select which packages you wish to install 7there are currently about #b1bej packages in ,debian #b4a74 ,it will be run for you during the installation4 ,it is a very powerful and somewhat complex tool4 ,as such1 having some knowledge of it beforehand is highly recommended4 ,careless use of dselect can wreak havoc on your system4 dselect will step you through the package installation process outlined here3 #a4 ,choose the access method to use4 #b4 ,update list of available packages1 if possible4 #c4 ,select the packages you want on your system4 #d4 ,install and upgrade wanted packages4 #e4 ,configure any packages that are unconfigured4 #f4 ,remove unwanted software4 ,as each step is completed successfully1 dselect will lead you on to the next4 ,go through them in order without skipping any steps4 ,here and there in this document we talk of starting another shell4 ,linux has six console sessions or shells available at any one time4 ,you switch between them by pressing ,left ,alt-,f#a through ,left ,alt-,f#f1 after which you log in on your new shell and go ahead4 ,the console used by the install process is the first one1 a4k4a4 tty#a1 so press ,left ,alt-,f#a when you want to return to that process4 #c4bj4b ,once dselect ,is ,launched ,once in dselect1 you will get this screen3 ,debian ,linux #8dselect' package handling frontend4 #j4 ,access ,choose the access method to use4 #a4 ,update ,update list of available packages1 if possible4 #b4 ,select ,request which packages you want on your system4 #c4 ,install ,install and upgrade wanted packages4 #d4 ,config ,configure any packages that are unconfigured4 #e4 ,remove ,remove unwanted software4 #f4 ,quit ,quit dselect4 ,let's look at these one by one4 ,access ,illustration3 ,figure #c4b3 dselect ,access screen ,here we tell dselect where our packages are4 ,ignore the order that these appear in4 ,it is very important that you select the proper method for installation4 ,you may have a few more methods listed1 or a few less1 or you may see them listed in a different order2 just don't worry about it4 ,in the following list1 we describe the different methods4 multicd4 ,quite large and powerful1 this complex method is the recommended way of installing a recent version of ,debian from a set of multiple binary ,c,ds4 ,each of these ,c,ds should contain information about the packages in itself and all prior ,c,ds 7in the file ,packages4cd74 ,when you first select this method1 be sure the ,,cd-,,rom you will be using is not mounted4 ,place the last binary disk of the set 7we don't need the source ,c,ds7 in the drive and answer the questions you are asked3 ,,cd-,,rom drive location ,confirmation that you are using a multi-cd set ,the location of the ,debian distribution on the disk7s7 ,possibly the location7s7 of the ,packages file7s7 ,once you have updated the available list and selected the packages to be installed1 the multicd method diverges from normal procedure4 ,you will need to run an 8install0 step for each of the ,c,ds you have1 in turn4 ,unfortunately1 due to the limitations of dselect1 it will not be able to prompt you for a new disk at each stage2 the way to work for each disk is outlined here3 #a4 ,insert the ,,cd in your ,,cd-,,rom drive4 #b4 ,from the main dselect menu1 select 8,install40 #c4 ,wait until dpkg finishes installing from this ,,cd4 7,it may report installation successful1 or possibly installation errors4 ,don't worry about these until later47 #d4 ,press ,return to go back to the main dselect menu4 #e4 ,repeat with the next ,,cd in the set4 ,it may be necessary to run the installation step more than once to cover the order of package installation2 some packages installed early may need to have later packages installed before they will configure properly4 ,running a 8,configure0 step is recommended to help fix any packages that may end up in this state4 multinfs1 multimount4 ,these are similar to the multicd method and are refinements on the theme of coping with changing media--for example1 installing from a multicd set exported via ,,nfs from another machine's ,,cd-,,rom drive4 indexdselect6multi-,,nfs1 multi-mount installation apt4 ,one of the best options for installation from a local mirror of the ,debian archive or from the network4 ,this method uses the 8apt0 system to do complete dependency analysis and ordering1 so it's most likely to install packages in the optimal order4 ,configuration of this method is straightforward4 ,you may select any number of different locations1 mixing and matching file3 ,u,r,ls 7local disks or ,,nfs mounted disks71 http3 ,u,r,ls1 or ftp3 ,u,r,ls4 ,note1 however1 that the ,,http and ,,ftp options do not support local authenticating proxies4 ,if you have proxy server for either ,,http or ,,ftp 7or both71 make sure you set the httpproxy and ftpproxy environment variables1 respectively4 ,set them from your shell before starting dselect by using the following command3 export httpproxyhttp3_/_/gateway3#cabh_/ dselect ,update dselect will read the ,packages or ,packages4gz files from the mirror and create a database on your system of all available packages4 ,this may take a while as it downloads and processes the files4 ,select ,hang on to your hat4 ,this is where it all happens4 ,the object of the exercise is to select just which packages you wish to have installed4 ,press ,enter4 ,if you have a slow machine1 be aware that the screen will clear and can remain blank for #ae seconds4 ,so don't start bashing keys at this point4 ,the first thing that comes up on the screen is page #a of the ,help file4 ,you can get to this help by pressing 8 at any point in the 8,select0 screens1 and you can page through the help screens by hitting the 4 7full stop7 key4 ,before you dive in1 note these points3 ,to exit the 8,select0 screen after all selections are complete1 press ,enter4 ,this will return you to the main screen if there is no problem with your selection4 ,otherwise1 you will be asked to deal with that problem4 ,when you are happy with any given screen1 press ,enter to get out4 ,problems are quite normal and are to be expected4 ,if you select package ,a and that package requires package ,b to run1 dselect will warn you of the problem and will most likely suggest a solution4 ,if package ,a conflicts with package ,b 7i4e41 if they are mutually exclusive71 you will be asked to decide between them4 ,let's look at the top two lines of the ,select screen4 ,this header reminds us of some of the special keys listed in ,table #c4a4 ,table #c4a3 ,special dselect keys ---------------------------------------- -------------- ,key ,description ---------------------------------------- ------------- ,select a package for installation4 ---------------------------------------- ------------- ,place a package on hold ---------------------------------------- ------------- - ,remove a package4 ---------------------------------------- ------------- ,remove a package and its configuration files4 ---------------------------------------- ------------- i1 ,i ,toggle_/cycle information displays4 ---------------------------------------- ------------- o1 ,o ,cycle through the sort options4 ---------------------------------------- ------------- v1 ,v ,a terse_/verbose toggle4 ---------------------------------------- -------------- ,table #c4b lists the states that dselect uses to denote the status of each package it is aware of4 ,table #c4b3 dselect ,package ,states ---------------------------------------- ------- ,flag ,meaning ,possible values ---------------------------------------- ----- ,e ,error ,space1 ,r1 ,i ---------------------------------------- ----- ,i ,installed ,state ,space1 991 -1 ,u1 ,c1 ,i ---------------------------------------- ----- ,o ,old ,mark 991 -1 1 1 n ---------------------------------------- ----- ,m ,mark 991 -1 1 1 n ---------------------------------------- ------- ,rather than spell all this out here1 ,i refer you to the ,help screens where all is revealed4 ,one example1 though4 ,you enter dselect and find a line like this3 ,,eiom ,pri ,section ,package ,description 9999 ,opt misc loadlin a loader 7running under ,,dos7 for ,,linux ,this is saying that loadlin was selected when you last ran dselect and that it is still selected1 but it is not installed4 ,why not8 ,the answer must be that the loadlin package is not physically available4 ,it is missing from your mirror4 ,the information that dselect uses to get all the right packages installed is buried in the packages themselves4 ,nothing in this world is perfect1 and it does sometimes happen that the dependencies built into a package are incorrect1 which means that dselect simply cannot resolve the situation4 ,a way out is provided where the user can regain control2 it takes the form of the commands ,q and ,x1 which are available in the ,select screen4 ,q ,an override4 ,forces dselect to ignore the built-in dependencies and to do what you have specified4 ,the results1 of course1 will be on your own head4 ,x ,use ,x if you get totally lost4 ,it puts things back the way they were and exits4 ,select screen 7dselect7 ,keys that help you not to get lost 767 are ,r1 ,u1 and ,d4 ,r ,cancels all selections at this level4 ,does not affect selections made at the previous level4 ,u ,if dselect has proposed changes and you have made further changes ,u will restore dselect's selections4 ,d ,removes the selections made by dselect1 leaving only yours4 ,an example follows4 ,the boot-floppies package 7not an example for beginners1 ,i know1 but it was chosen because it has a lot of dependencies7 depends on these packages3 libc#f-pic slang#a-pic sysutils makedev newt#j4be newt#j4be-;dev popt zlib#a;g zlib#a;g-dev recode ,the person maintaining boot-floppies also thinks that the following packages should be installed4 ,these are not1 however1 essential3 lynx debiandoc-sgml unzip ,when you select boot-floppies1 dselect brings up the conflict resolution screen4 ,you'll notice that all the required packages have been selected4 ,pressing the ,r key puts things back to the starting point4 ,,eiom ,pri ,section ,package ,description ,opt admin boot-floppie ,scripts to create the ,debian ,opt devel newt#j4be-;dev ,developer's toolkit for newt ,opt devel slang#a-;dev ,the ,s-,lang programming library ,opt devel slang#a-pic ,the ,s-,lang programming library ,if you decide now that you don't want boot-floppies1 just press ,enter4 ,pressing the ,d key puts things the way ,i selected them in the first place3 ,,eiom ,pri ,section ,package ,description 99 ,opt admin boot-floppie ,scripts to create the ,debian ,opt devel newt#j4be-;dev ,developer's toolkit for newt ,opt devel slang#a-;dev ,the ,s-,lang programming library ,opt devel slang#a-pic ,the ,s-,lang programming library ,pressing the ,u key restores dselect's selections3 ,,eiom ,pri ,section ,package ,description 99 ,opt admin boot-floppie ,scripts to create the ,debian installation 99 ,opt devel newt#j4be-;dev ,developer's toolkit for newt 99 ,opt devel slang#a-;dev ,the ,s-,lang programming library 99 ,opt devel slang#a-pic ,the ,s-,lang programming library ,i suggest running with the defaults for now2 you will have ample opportunities to add more later4 ,whatever you decide1 press ,enter to accept and return to the main screen4 ,if this results in unresolved problems1 you will be bounced right back to another problem resolution screen4 ,the ,r1 ,u1 and ,d keys are very useful in 8what if0 situations4 ,you can experiment at will and then restore everything and start again4 ,don't look on them as being in a glass box labeled 8,break in ,case of ,emergency40 ,after making your selections in the ,select screen1 press ,i to give you a big window1 press t to take you to the beginning1 and then use the ,page ,down key to look quickly through the settings4 ,this way you can check the results of your work and spot glaring errors4 ,some people have deselected whole groups of packages by mistake and not noticed the error until too late4 dselect is a very powerful tool2 don't misuse it4 ,you should now have the situation shown in ,table #c4c4 ,table #c4c3 ,expected ,package ,category ,states -------------------------------------- ,package category ,status ------------------------------------- ,required all selected ------------------------------------- ,important all selected ------------------------------------- ,standard mostly selected ------------------------------------- ,optional mostly deselected ------------------------------------- ,extra mostly deselected -------------------------------------- ,happy8 ,press ,enter to exit the ,select process4 ,you can come back and run ,select again if you wish4 ,install dselect runs through the entire set of packages and installs those selected4 ,expect to be asked to make decisions as you go4 ,it is often useful to switch to a different shell to compare1 say1 an old configuration with a new one4 ,if the old file is conf4modules1 the new one will be conf4modules4dpkg-dist4 ,the screen scrolls past fairly quickly on a fast machine4 ,you can stop and start it with ,ctrl-s and ,ctrl-q1 respectively1 and at the end of the run1 you will get a list of any uninstalled packages4 ,it can happen that a package does not get installed because it depends on some other package that is listed for installation but is not yet installed4 ,the answer here is to run ,install again4 ,cases have been reported where it was necessary to run it four times before everything slipped into place4 ,this will vary by your acquisition method4 ,configure ,most packages get configured in step #c1 but anything left hanging can be configured here4 ,remove ,removes packages that are installed but no longer required4 ,quit ,i suggest running _/etc_/cron4daily_/find at this point1 because you have a lot of new files on your system4 ,then you can use locate to get the location of any given file4 #c4bj4c ,a ,few ,hints in ,conclusion ,when the install process runs dselect for you1 you will doubtless be eager to get ,debian running as soon as possible4 ,well1 please be prepared to take an hour or so to learn your way around and then get it right4 ,when you enter the ,select screen for the first time1 don't make any selections at all--just press ,enter and see what dependency problems there are4 ,try fixing them4 ,if you find yourself back at the main screen1 run ,select again4 ,you can get an idea of the size of a package by pressing i twice and looking for the 8,size0 figure4 ,this is the size of the compressed package1 so the uncompressed files will be a lot bigger 7see 8,installed-,size10 which is in kilobytes1 to know it74 ,installing a new ,debian system is a complex thing1 but dselect can do it for you as easy as can be4 ,so take the time to learn how to drive it4 ,read the help screens and experiment with i1 ,i1 o1 and ,o4 ,use the ,r key4 ,it's all there1 but it's up to you to use it effectively4 #c4ba ,glossary ,the following terms will be useful to you throughout this book and in general when you're talking about ,debian4 ,package4 ,a file that contains everything needed to install1 de-install1 and run a particular program4 ,the program that handles packages is dpkg4 dselect is a front-end to dpkg4 ,experienced users often use dpkg to install or remove a package4 ,package names4 ,all package names have the form xxxxxxxxxxx4deb4 ,sample package names include the following3 efax#jh;a-#a4;deb lrzsz#j4ab;b-#a4;deb mgetty#j4ii4b-f4;deb minicom#a4ge-a4;deb term#b4c4e-e4;deb uucp#a4jf4a-b4;deb uutraf#a4a-a4;deb xringd#a4aj-b4;deb xtel#c4a-b4;deb #d4 ,logging ,in ,your system is now installed6 ,pat yourself on the back for a job well done6 ,now it's time to start using the system4 ,in this chapter1 we introduce you to the ,debian command line1 some security principles1 and how to exit the system4 ,in later chapters1 we'll go into more detail on these topics and introduce you to the ,debian graphical interface1 ,x#aa4 #d4a ,first ,steps ,after you quit dselect1 you'll be presented with the login3 prompt4 ,you can now log in using the personal login and password you selected2 your system is now ready to use4 ,let's examine what it means to log in and how this process works4 ,to use ,debian1 you must identify yourself to the system4 ,this is so it knows who you are1 what you have permission to do1 and what your preferences are4 ,to this end1 you have a username or login4 ,if you installed ,debian yourself1 you should have been asked to give such a name during installation4 ,if you are logging on to a system administered by someone else1 you'll have to ask him for an account on the system and a corresponding username4 ,you also have a password1 so no one else can pretend to be you4 ,if you don't have a password1 anyone can log on to your computer from the ,internet and do bad things4 ,if you're worried about security1 you should have a password4 ,many people prefer to trust others not to do anything malicious with their account2 hopefully your work environment doesn't encourage paranoia4 ,this is a perfectly reasonable attitude2 it depends on your personal priorities and your environment4 ,obviously a home system does not need to be as secure as a military installation4 ,debian allows you to be as secure or as insecure as you like4 ,when you start ,debian1 you'll see a prompt3 a request from the computer for some information4 ,in this case1 the prompt is login34 ,you should type your username and1 when requested1 your password4 ,the password does not appear on the screen as you type it4 ,press ,enter after both the username and the password4 ,if you type your username or password incorrectly1 you'll have to start over4 ,if you do it correctly1 you'll see a brief message and then a prompt4 ,the is printed by a special program called the shell and is thus called a shell prompt4 ,this is where you give commands to the system4 ,try entering the command whoami now4 ,there is a cursor to the right of the shell prompt4 ,your cursor is a small underscore or rectangle that indicates where you're typing2 it should move as you type4 ,always press ,enter when you're done typing a shell command4 whoami tells your username4 ,you'll then get a new shell prompt4 ,for the rest of the book1 when we say to enter a command1 you should type it at the shell prompt and press the ,enter key4 ,when you're done working1 you may want to log out of the system4 ,to exit the shell1 enter the exit command4 ,keep in mind that if you remain logged in1 someone could come along and use your account4 ,hopefully you can trust those in your office or home not to do this2 but if you do not trust your environment1 you should be certain to log out when you leave4 #d4b ,command ,history and ,editing the ,command ,line ,whatever you type after the shell prompt and before pressing ,enter is called a command line4 ,it's a line of text that commands the computer to do something4 ,the ,debian default shell offers several features to make entering command lines easy4 ,you can scroll up to previous commands to run them again1 or you can modify them slightly and then run them again4 ,try this3 ,enter any command1 such as whoami2 then press the ,up ,arrow key4 ,the whoami command will reappear at the prompt4 ,you can then press ,enter to run whoami a second time4 ,if you've entered several commands1 you can keep pressing the ,up ,arrow key to go back through them4 ,this feature is handy if you're doing the same thing several times1 or if you type a command incorrectly and want to go back to fix it4 ,you can press the ,down ,arrow key to move in the other direction1 toward your more recent commands4 ,if there are no more commands to move to1 the computer will beep4 ,you can also move around on the command line to make changes4 ,the easiest way is with the ,left and ,right ,arrow keys4 ,try typing whoasmi instead of whoami1 and then use the ,left ,arrow key to move back to the s4 ,you can erase the s with the ,backspace or ,delete keys4 ,there are more advanced features as well 7no need to memorize them all now1 though74 ,try pressing ,ctrl-a4 ,this moves you to the beginning of the line4 ,ctrl-k 7the k stands for 8kill07 deletes all characters until the end of the line2 try it from the middle of the command line4 ,using ,ctrl-a followed by ,ctrl-k1 you can delete the entire command line4 ,ctrl-y pastes the last thing you killed1 reinserting it at the current cursor position 7y stands for 8yank10 as in 8yank it back074 ,ctrl-e will move the cursor to the end of the command line4 ,go ahead and play around with command-line editing to get a feel for it4 ,experiment4 #d4c ,working as ,root ,because ,debian is a multiuser system1 it's designed to keep any one user or program from breaking the entire system4 ,the kernel will not allow normal users to change important system files4 ,this means that things stay the way they're supposed to1 safe from accidents1 viruses1 and even malicious pranks4 ,unlike other operating systems1 ,debian is safe from these threats4 ,you won't need an anti-virus program4 ,however1 sometimes you need to change important system files2 for example1 you might want to install new software or configure your network connection4 ,to do so1 you have to have greater powers than a normal user2 you must become the root user 7also called the superuser74 ,to become root1 just log on with the username root and the root password2 this was set during installation1 as described in section #c4ae on page 994 ,at many sites1 only the system administrator has the root password1 and only the system administrator can do the things that one must be root to do4 ,if you're using your own personal computer1 you are the system administrator1 of course4 ,if you don't have root privileges1 you will have to rely on your system administrator to perform any tasks that require root privileges4 ,sometimes you'll have the root password even on a shared corporate or educational server1 because the system administrator trusts you to use it properly4 ,in that case1 you'll be able to help administer the system and customize it for your needs4 ,but you should be sure to use the password responsibly1 respecting other users at all times4 ,if you have the password1 try logging on as root now4 ,enter the whoami command to verify your identity4 ,then log out immediately4 ,when you're root1 the kernel will not protect you from yourself1 because root has permission to do anything at all to the system4 ,don't experiment while you're root4 ,in fact1 don't do anything as root unless absolutely necessary4 ,this isn't a matter of security1 but rather of stability4 ,your system will run much better if it can keep you from making mistakes4 ,you may find the su command more convenient than logging in as root4 su allows you to assume the identity of another user1 usually root unless you specify someone else4 7,you can remember that su stands for ,super ,user1 though some say it stands for ,set ,user,i,d47 ,here's something to try4 ,log on as yourself--that is1 not as root4 ,then your session will look something like the one in ,figure #d4a4 ,illustration3 ,figure #d4a3 ,sample session with su ,when you're doing system administration tasks1 you should do as much as possible as yourself4 ,then use su1 do the part that requires root privileges1 and use the exit command to turn off privileges so you can no longer harm anything4 ,you can use su to assume the identity of any user on the system1 not just root4 ,to do this1 type su user where user is the user you want to become4 ,you'll have to know the user's password1 of course1 unless you're root at the time or the user has no password4 #d4d ,virtual ,consoles ,the ,linux kernel supports virtual consoles4 ,these provide a way of making your single screen and keyboard seem like multiple terminals that are connected to the same system4 ,thankfully1 using virtual consoles is one of the simplest things about ,debian3 ,there are 8hot keys0 for switching among the consoles quickly4 ,to try it1 log in to your system and press ,alt-,f#b 7simultaneously press the left ,alt key1 and ,f#b1 that is1 function key number #b74 ,you should find yourself at another login prompt4 ,don't panic3 ,you are now on virtual console 7,,vc7 number #b6 ,log in here and do some things--more whoami commands or whatever--to confirm that this is a real login shell4 ,now you can return to virtual console number #a by pressing ,alt-,f#a4 ,or you can move on to a third virtual console1 in the obvious way 7,alt-,f#c74 ,debian comes with six virtual consoles enabled by default1 which you access with the ,alt key and function keys ,f#a through ,f#f4 7,technically1 there are more virtual consoles enabled1 but only six of them allow you to log in4 ,the others are used for the ,x ,window system or other special purposes47 ,if you're using the ,x ,window system1 it will generally start up on the first unused virtual console--probably ,,vc #g4 ,also1 to switch from the ,x virtual console to one of the first six1 you'll have to add ,ctrl to the key sequence4 ,so that's ,ctrl-,alt-,f#a to get to ,,vc #a4 ,but you can go from a text ,,vc to the ,x virtual console using only ,alt4 ,if you never leave ,x1 you won't have to worry about this2 ,x automatically switches you to its virtual console when it starts up4 ,once you get used to them1 virtual consoles will probably become an indispensable tool for getting many things done at once4 7,the ,x ,window system serves much the same purpose1 providing multiple windows rather than multiple consoles47 ,you can run a different program on each ,,vc or log on as root on one ,,vc and as yourself on another4 ,or everyone in the family can use his or her own ,,vc2 this is especially handy if you use ,x1 in which case you can run several ,x sessions at once on different virtual consoles4 #d4e ,shutting ,down ,do not just turn off the computer6 ,you risk losing valuable data6 ,if you are the only user of your computer1 you might want to turn the computer off when you're done with it4 ,to avoid possibly weakening some hardware components1 only turn off the computer when you're done for the day4 ,power up and power down are the two greatest contributors to wear and tear on computer components4 ,turning the computer on and off once a day is probably the best compromise between your electric bill and your computer's lifespan4 ,it's a bad thing to just press the power switch when you're done using the computer4 ,it is also bad to reboot the machine 7with the ,reset button7 without first taking proper precautions4 ,the ,linux kernel1 in order to improve performance1 has a disk cache4 ,this means it temporarily stores information meant for permanent storage in ,,ram4 ,because memory is thousands of times faster than a disk1 this makes many file operations move more quickly4 ,periodically1 the information ,linux has in memory is actually written to the disk4 ,this is called syncing4 ,in order to turn off or reboot the computer safely1 you'll have to tell the computer to clear everything out of memory and put it in permanent storage4 ,to reboot1 just type reboot or press ,ctrl-,alt-,del 7that's ,ctrl1 ,alt1 and ,delete74 ,to shut down1 you'll have to log in as root4 ,as root1 just type the command shutdown -h now4 ,the sytem will go through the entire shutdown procedure1 including the sync command1 which clears the disk cache as described above4 ,when you see ,system halted1 it's safe to turn off the computer4 ,if you have ,advanced ,power ,management 7,,apm7 support in your kernel and ,,bios1 the computer might shut itself off and save you the trouble4 ,,apm is common in laptops and is also found in certain desktop mainboards4 #e4 ,the ,basics ,it's now time to explore the system in more detail4 ,you've seen how to log in and shut down the system4 ,in this chapter1 we explore the ,linux comand line1 how ,linux deals with files and directories1 and some basics on identifying yourself to others4 #e4a ,the ,command ,line and ,man ,pages ,we've already discussed the command line--that is1 commands you type after the shell prompt4 ,this section describes the structure of more complicated command lines4 ,a minimal command line contains just a command name1 such as whoami4 ,but other things are possible4 ,for example1 you might type3 man whoami4 ,this command requests the online manual for the whoami program 7you may have to press the space bar to scroll through the documentation or press q to quit74 ,a more complicated example is man -k ,post,script4 ,this command line has three parts4 ,it begins with the command name1 man4 ,then it has an option or switch1 -k1 followed by an argument1 ,post,script4 ,some people refer to everything except the command name as the parameters of the command4 ,so1 options and arguments are both parameters4 ,options change the behavior of a command1 switching on particular features or functionality4 ,they usually have a - before them4 ,the ,,gnu utilities also have 8long forms0 for the options2 the long form of -k is -apropos4 ,you can enter man -h or man -help to get a full list of options for the man command4 ,every command will have its own set of options1 though most have -help and -version options4 ,some commands1 such as tar1 do not require the 8-0 before their options for historical reasons4 ,anything that isn't an option and isn't the command name is an argument 7in this case1 ,post,script74 ,arguments can serve many purposes2 most commonly1 they are filenames that the command should operate on4 ,in this case1 ,post,script is the word you want man to search for4 ,in the case of man whoami1 the argument was the command you wanted information about4 ,here's a breakdown of the man -k ,post,script command line3 man4 ,the command name1 tells the computer to look at the manual pages4 ,these provide documentation for commands4 ,for example1 man whoami will give you documentation on the whoami command4 -k4 ,the option1 changes the behavior of man4 ,normally man expects a command name1 such as whoami1 for an argument and looks for documentation of that command4 ,but with the -k or -apropos option1 it expects the argument to be a keyword4 ,it then gives a list of all manual pages with that keyword in their description4 ,post,script4 is the argument2 because we used the -k option1 it's the keyword to search for4 -k and ,post,script are both parameters4 ,go ahead and type man -k ,post,script1 and you will see a list of all the manual pages on your system that have something to do with ,post,script4 ,if you haven't installed much software1 you might see the message ,post,script3 nothing appropriate instead4 #e4a4a ,describing the ,command ,line ,note3 ,you can skip this section if you want to move on4 ,there's a traditional1 concise way of describing command syntax4 ,syntax means the correct ways to combine various options and arguments4 ,for example1 if you type man man to get the manual page about man1 you'll see several syntax descriptions beginning with the command name man4 ,one of them will look like this3 man -k -,m path keyword 444 ,anything in brackets 77 is an optional unit4 ,in this case you don't have to use the -,m option1 but if you do1 you must use a path argument4 ,you must use the -k option and the keyword argument4 ,the 444 means that you could have more of whatever came before it1 so you could look up several keywords4 ,let's look at one of the more complex descriptions from the man manual page3 man -c-w-t,z,t device -adhu#g,v -m system1444 -,l locale -p string -,m path -,p pager -r prompt -,s list -e extension section page 444 444 ,there's no need to go through all of this 7and don't worry about what it all means71 but do pay attention to the organization of the description4 ,first1 clusters of options usually mean you can use one or more of them in different combinations1 so -adhu#g,v means you can also use -h4 ,however1 you can't always use all combinations2 this description doesn't make that clear4 ,for example1 -h is incompatible with other options1 but you could do man -du4 ,unfortunately1 the description's format does not make this clear4 ,second1 the symbol means 8or40 ,so you can use the -c1 the -w1 or the -t,z,t option1 followed by a device argument4 ,third1 notice that you can nest the brackets1 because they indicate optional units4 ,so if you have a section1 you must also have a page1 because e page is not optional within the section page unit4 ,there's no need to memorize any of this1 just refer to this section as you read documentation4 #e4b ,files and ,directories ,files are a facility for storing and organizing information1 analogous to paper documents4 ,they're organized into directories1 which are called folders on some other systems4 ,let's look at the organization of files on a ,debian system3 _/4 ,a simple _/ represents the root directory4 ,all other files and directories are contained in the root directory4 ,if you are coming from the ,,dos_/,windows world1 _/ is very similar to what ,c3is for ,,dos1 that is the root of the filesystem4 ,a notable difference between ,,dos and ,linux however1 is that ,,dos keeps several filesystems3 ,c3 7first hard disk71 ,a3 7first floppy disk71 and ,d3 7either ,,cd-,,rom or second hard disk71 whereas ,linux has all its files organized above the same _/ root4 _/home_/janeq4 ,this is the home directory of user 8janeq40 ,reading left to right1 to get to this directory you start in the root directory1 enter directory home1 and then enter directory janeq4 _/etc_/,x#aa_/,,xf#hf;,config4 ,this is the configuration file for the ,x ,window system4 ,it resides in the ,x#aa subdirectory of the _/etc directory4 _/etc is in turn a subdirectory of the root directory1 _/4 ,things to note3 ,filenames are case-sensitive4 ,that is1 ,,myfile and ,my,file are different files4 ,the root directory is referred to as simply _/4 ,don't confuse this 8root0 with the root user1 the user on your system with 8super powers40 ,every directory has a name1 which can contain any letters or symbols except _/4 ,the root directory is an exception2 its name is _/ 7pronounced 8slash0 or 8the root directory071 and it cannot be renamed4 ,while you can use almost any letters or symbols in a filename1 in practice it's a bad idea4 ,it is better to avoid characters that often have special meanings on the command line1 including3 7 7 ' #8 _/ 2 6 99 ,also avoid putting spaces in filenames4 ,if you want to separate words in a name1 good choices are the period1 hyphen1 and underscore4 ,you could also capitalize each word1 ,like,this4 ,each file or directory is designated by a fully-qualified filename1 absolute filename1 or path1 giving the sequence of directories which must be passed through to reach it4 ,the three terms are synonymous4 ,all absolute filenames begin with the _/ directory1 and there's a _/ before each directory or file in the filename4 ,the first _/ is the name of a directory1 but the others are simply separators to distinguish the parts of the filename4 ,the words used here can be confusing4 ,take the following example3 _/usr_/share_/keytables_/us4map4gz4 ,this is a fully-qualified _/filename2 some people call it a path4 ,however1 people will also refer to us4map4gz alone as a filename4 ,there is also another use for the word 8path40 ,the intended meaning is usually clear from the context4 ,directories are arranged in a tree structure4 ,all absolute filenames start with the root directory4 ,the root directory has a number of branches1 such as _/etc and _/usr4 ,these subdirectories in turn branch into still more subdirectories1 such as _/etc_/init4d and _/usr_/local4 ,the whole thing together is called the 8directory tree40 ,you can think of an absolute filename as a route from the base of the tree 7_/7 to the end of some branch 7a file74 ,you'll also hear people talk about the directory tree as if it were a family tree3 ,thus subdirectories have 8parent10 and a path shows the complete ancestry of a file4 ,there are also relative paths that begin somewhere other than the root directory4 ,more on this later4 ,no directory corresponds to a physical device1 such as your hard disk4 ,this differs from ,,dos and ,windows1 in which all paths begin with a device name such as ,c34 ,the directory tree is meant to be an abstraction of the physical hardware1 so you can use the system without knowing what the hardware is4 ,all your files could be on one disk--or you could have #bj disks1 some of them connected to a different computer elsewhere on the network4 ,you can't tell just by looking at the directory tree1 and nearly all commands work just the same way no matter what physical device7s7 your files are really on4 ,don't worry if all this isn't completely clear yet4 ,there are many examples to come4 #e4b4a ,using ,files3 ,a ,tutorial ,to use your system1 you'll have to know how to create1 move1 rename1 and delete files and directories4 ,this section describes how to do so with the standard ,debian commands4 ,the best way to learn is to try things4 ,as long as you aren't root 7and haven't yet created any important personal files71 you cannot mess up too seriously4 ,jump in--type each of these commands at the prompt and press ,enter4 pwd ,one directory is always considered the current working directory for the shell you're using4 ,you can view this directory with the pwd command1 which stands for ,print ,working ,directory4 pwd prints the name of the directory you're working in--probably _/home_/yourname4 ls ls stands for 8list10 as in 8list files40 ,when you type ls1 the system displays a list of all the files in your current working directory4 ,if you've just installed ,debian1 your home directory may well be empty4 ,if your working directory is empty1 ls produces no output1 because there are no files to list4 cd _/ cd means 8change directory40 ,in this case1 you've asked to change to the root directory4 pwd ,this verifies that you're working in the root directory4 ls ,lets you see what's in _/4 cd ,typing cd with no arguments selects your home directory-- _/home_/ yourname --as the current working directory4 ,try pwd to verify this4 ,before continuing1 you should know that there are actually two different kinds of filenames4 ,some of them begin with _/1 the root directory1 such as _/etc_/profile4 ,these are called absolute filenames because they _/refer to the same file no matter what your current directory is4 ,the other kind of filename is relative4 ,two directory names are used only in relative filenames3 4 and 444 ,the directory 4 refers to the current directory1 and 44 is the parent directory4 ,these are 8shortcut0 directories4 ,they exist in every directory4 ,even the root directory has a parent directory--it's its own parent6 ,so filenames that include 4 or 44 are relative1 because their meaning depends on the current directory4 ,if ,i'm in _/usr_/bin and type 44_/etc1 ,i'm referring to _/usr_/etc4 ,if ,i'm in _/var and type 44_/etc1 ,i'm referring to _/etc4 ,note that a filename without the root directory at the front implicitly has 4_/ at the front4 ,so you can type local_/bin1 or 4_/local_/bin and it means the same thing4 ,a final handy tip3 ,the tilde is equivalent to your home directory4 ,so typing cd is the same as typing cd with no arguments4 ,also1 you can type things like cd _/practice_/mysubdirectory to change to the directory _/home_/yourname_/practice_/mysubdirecto ry4 ,in a similar way1 myuser is equivalent to the home directory of the user 8myuser10 which is probably something like _/home_/myuser2 so myuser_/docs_/debian4ps is equivalent to _/home_/myuser_/doc_/debian4ps4 _/ _/ _/ ,here are some more file commands to try out1 now that you know about relative filenames4 cd to your home directory before you begin4 mkdir practice ,in your home directory1 make a directory called practice4 ,you'll use this directory to try out some other commands4 ,you might type ls to verify that your new directory exists4 cd practice ,changes the directory to practice4 mkdir mysubdirectory ,creates a subdirectory of practice4 cp _/etc_/profile 4 cp is short for 8copy40 _/etc_/profile is just a random file on your system1 don't worry about what it is for now4 ,we've copied it to 4 7recall that 4 just means 8the directory ,i'm in now10 or the current working directory74 ,so this creates a copy of _/etc_/profile and puts it in your practice directory4 ,try typing ls to verify that there's indeed a file called profile in your working directory1 alongside the new mysubdirectory4 more profile ,this lets you view the contents of the file profile4 more is used to view the contents of text files4 ,it's called more because it shows one screenful of the file at a time1 and you press the space bar to see more4 more will exit when you get to the end of the file1 or when you press q 7quit74 more _/etc_/profile ,verifies that the original looks just like the copy you made4 mv profile mysubdirectory mv stands for 8move40 ,you've moved the file profile from the current directory into the subdirectory you created earlier4 ls ,verifies that profile is no longer in the current directory4 ls mysubdirectory ,verifies that profile has moved to mysubdirectory4 cd mysubdirectory ,changes to the subdirectory4 mv profile myprofile ,note that unlike some operating systems1 there is no difference between moving a file and renaming it4 ,thus there's no separate rename command4 ,note that the second argument to mv can be a directory to move the file or directory into1 or it can be a new filename4 cp works the same way4 ,as usual1 you can type ls to see the result of mv4 mv myprofile 44 ,just as 4 means 8the directory ,i'm in now10 44 means 8parent of the current directory10 in this case the practice directory you created earlier4 ,use ls to verify that that's where myprofile is now4 cd 44 ,changes directories to the parent directory--in this case practice1 where you just put myprofile4 rm myprofile rm means 8remove10 so this deletes myprofile4 ,be careful6 ,deleting a file on a ,,gnu_/,linux system is permanent--there is no undelete4 ,if you rm it1 it's gone1 forever4 ,be careful6 ,to repeat1 deleting a file on a ,,gnu_/,linux system is permanent--there is no undelete4 ,if you rm it1 it's gone1 forever4 rmdir mysubdirectory rmdir is just like rm1 only it's for directories4 ,notice that rmdir only works on empty directories4 ,if the directory contains files1 you must delete those files first1 or alternatively you can use rm -r in place of rmdir4 cd 44 ,this moves out of the current directory1 and into its parent directory4 ,now you can type the following3 rmdir practice ,this will delete the last remnants of your practice session4 ,so now you know how to create1 copy1 move1 rename1 and delete files and directories4 ,you also learned some shortcuts1 like typing simply cd to jump to your home directory1 and how 4 and 44 refer to the current directory and its parent1 respectively4 ,you should also remember the concept of the root directory1 or _/1 and the alias for your home directory4 #e4b4b ,dot ,files and ls -a ,when you type ls1 files beginning with a dot are not listed4 ,traditionally1 files that contain configuration information1 user preferences1 and so on begin with a dot2 these are hidden and out of your way while you do your day-to-day work4 ,sample dot files are _/4emacs1 _/4newsrc1 _/4bashrc1 _/4xsession1 and _/4fvwmrc4 ,these are used by ,emacs1 news readers1 the ,bash shell1 the ,x ,window system1 and the fvwm window manager1 respectively4 ,it is conventional to end the dot filename with rc1 but some programs don't4 ,there are also directories beginning with a dot1 such as _/4gimp and _/4netscape1 which store preferences for the ,gimp and ,netscape4 ,sometimes a program will create a dot file automatically2 for example1 ,netscape allows you to edit your preferences with a graphical dialog box and then it saves your choices4 ,other times you will create them yourself using a text editor2 this is the traditional way to do it1 but you have to learn the peculiar format of each file--inconvenient at first1 but it can give you a lot of power4 ,to see dot files1 you must use the -a option to ls4 ,the long form of -a is -all1 if you find that easier to remember4 ,you can also use -,a or -almost-all1 which displays all dot files except 4 and 444 ,remember that 4 is the current directory1 and 44 is the parent of the current directory2 because these are guaranteed to be in every directory1 there is no real reason to list them with ls4 ,you already know they are there4 #e4c ,processes ,we mentioned before that ,,gnu_/,linux is a multitasking system4 ,it can do many tasks at once4 ,each of these tasks is called a process4 ,the best way to get a sense of this is to type top at the shell prompt4 ,you'll get a list of processes1 sorted according to how much of the computer's processing time they're using4 ,the order will continuously change before your eyes4 ,at the top of the display1 there's some information about the system3 how many users are logged in1 how many total processes there are1 how much memory you have and how much you're using4 ,in the far left column1 you'll see the user owning each process4 ,the far right column shows which command invoked the process4 ,you'll probably notice that top itself1 invoked by you1 is near the top of the list 7because anytime top checks on ,,cpu usage1 it will be active and using ,,cpu to do the check74 ,note that in all the commands ending in 8d0 --such as kflushd and inetd --the 8d0 stands for daemon4 ,daemon originally meant ,disks ,and ,extensions ,m,o,nitor4 ,a daemon is a non-interactive process1 that is1 it's run by the system and users never have to worry about it4 ,daemons provide services like ,internet connectivity1 printing1 or e-mail4 ,now press u and give top your username when it asks4 ,the u command asks to see only those processes belonging to you2 it allows you to ignore all the daemons and whatever other people are doing4 ,you might notice bash1 the name of your shell4 ,you'll pretty much always be running bash4 ,note that column two of the top display shows you the ,,pid1 or ,process ,i,dentification number4 ,each process is assigned a unique ,,pid4 ,you can use the ,,pid to control individual processes 7more on that later74 ,another useful trick is to press 8 to get a list of top commands4 ,you may wonder about the difference between a 8process0 and a 8program40 ,in practice1 people use the terms interchangeably4 ,technically1 the program is the set of instructions written by a programmer and kept on disk4 ,the process is the working instantiation of the program kept in memory by ,linux4 ,but it's not that important to keep the terms straight4 ,much of your interaction with a computer involves controlling processes4 ,you'll want to start them1 stop them1 and see what they're up to4 ,your primary tool for this is the shell4 #e4d ,the ,shell ,the shell is a program that allows you to interact with your computer4 ,it's called a shell because it provides an environment for you to work in--sort of a little electronic home for you as you compute4 7,think hermit crab47 ,the simplest function of the shell is to launch other programs4 ,you type the name of the program you want to run1 followed by the arguments you want1 and the shell asks the system to run the program for you4 ,of course1 graphical windowing systems also fill this need4 ,technically1 ,windows #ie provides a graphical shell1 and the ,x ,window system is another kind of graphical shell4 ,but 8shell0 is commonly used to mean 8command-line shell40 ,needless to say1 the hackers who work on shells aren't satisfied with simply launching commands4 ,your shell has a bewildering number of convenient and powerful features if you would like to take advantage of them4 ,there are countless different shells available2 most are based on either the ,bourne shell or the ,c shell1 two of the oldest shells4 ,the original ,bourne shell's program name is sh1 while csh is the ,c shell4 ,bourne shell variants include the ,bourne ,again ,shell from the ,,gnu project 7bash1 the ,debian default71 the ,korn shell 7ksh71 and the ,z shell 7zsh74 ,there is also ash1 a traditional implementation of the ,bourne shell4 ,the most common ,c shell variant is tcsh 7the t pays tribute to the ,,tenex and ,,tops-#bj operating systems1 which inspired some of tcsh's improvements over csh74 bash is probably the best choice for new users4 ,it is the default and has all the features you're likely to need4 ,but all the shells have loyal followings2 if you want to experiment1 install some different shell packages and change your shell with the chsh command4 ,just type chsh1 supply a password when asked1 and choose a shell4 ,when you next log in1 you'll be using the new shell4 #e4e ,managing ,processes with bash ,debian is a multitasking system1 so you need a way to do more than one thing at once4 ,graphical environments like ,x provide a natural way to do this2 they allow multiple windows on the screen at any one time4 ,naturally1 bash 7or any other shell7 provides similar facilities4 ,earlier you used top to look at the different processes on the system4 ,your shell provides some convenient ways to keep track of only those processes you've started from the command line4 ,each command line starts a job 7also called a process group7 to be carried out by the shell4 ,a job can consist of a single process or a set of processes in a pipeline 7more on pipelines later74 ,entering a command line will start a job4 ,try typing man cp1 and the cp manual page will appear on the screen4 ,the shell will go into the background and return when you finish reading the manual page 7or you can press q to quit rather than scrolling through the whole thing74 ,but say you're reading the manual page1 and you want to do something else for a minute4 ,no problem4 ,press ,ctrl-z while you're reading to suspend the current foreground job and put the shell in the foreground4 ,when you suspend a job1 bash will first give you some information on it1 followed by a shell prompt4 ,you will see something like this on the screen3 ,,name cp - copy files ,,synopsis cp options source --,more-- #a ,stopped man cp ,note the last two lines4 ,the next to last is the job information1 and then you have a shell prompt4 bash assigns a job number to each command line you run from the shell4 ,this allows you to refer to the process easily4 ,in this case1 man cp is job number #a1 displayed as #a4 ,the means that this is the last job you had in the foreground4 bash also tells you the current state of the job--,stopped--and the job's command line4 ,there are many things you can do with jobs4 ,with man cp still suspended1 try the following commands3 man ls ,starts a new job4 ,ctrl-z ,suspends the man ls job2 you should see its job information4 man mv ,starts yet another job4 ,ctrl-z ,suspends it4 jobs ,asks bash for a display of current jobs4 ,the result looks like this3 jobs #a ,stopped man cp #b- ,stopped man ls #c ,stopped man mv ,notice the - and 1 denoting respectively the next to last and last foreground jobs4 fg ,places the last foreground job 7man mv1 the one with the 7 in the foreground again4 ,if you press the space bar1 the man page will continue scrolling4 ,ctrl-z ,re-suspends man mv4 fg #a ,you can refer to any job by placing a in front of its number4 ,if you use fg without specifying a job1 the last active one is assumed4 ,ctrl-z ,re-suspends man cp4 kill #a ,kills off job #a4 bash will report the job information1 which will look like this3 kill #a #a- ,terminated man cp bash is only asking the job to quit1 and sometimes a job will not want to do so4 ,if the job doesn't terminate1 you can add the -,,kill#a option to kill to stop asking and start demanding4 ,for example3 #a ,many people use the signal number -#i instead of the signal name -,,kill4 ,however1 it's technically more portable to use the signal name4 kill -,,kill #a #a- ,killed man mv ,the -,,kill option forcibly and unconditionally kills off the job4 ,in technical terms1 kill simply sends a signal4 ,by default1 it sends a signal that requests termination 7,,term1 or signal #ae7 but you can also specify a signal1 and signal #i 7,,kill7 is the signal that forces termination4 ,the command name kill is not necessarily appropriate to the signal sent2 for example1 sending the ,,tstp 7terminal stop7 signal suspends the process but allows it to be continued later4 top ,this brings the top display back up4 ,give the u command in top to see only your processes4 ,look in the right-hand column for the man ls and man mv commands4 man cp won't be there because you killed it4 top is showing you the system processes corresponding to your jobs2 notice that the ,,pid on the left of the screen does not correspond to the job number4 ,you may not be able to find your processes because they're off the bottom of the screen2 if you're using ,x 7see ,chapter #i on page 9971 you can resize the xterm to solve this problem4 ,even these simple jobs actually consist of multiple processes1 including the man process and the pager more1 which handles scrolling one page at a time4 ,you may notice the more processes are also visible in top4 ,you can probably figure out how to clean up the remaining two jobs4 ,you can either kill them 7with the kill command7 or foreground each one 7with fg7 and exit it4 ,remember that the jobs command gives you a list of existing jobs and their status4 ,one final note3 ,the documentation for bash is quite good1 but it is found in the ,info help system rather than the man pages4 ,to read it1 type info bash4 ,see section ,a4#a4a for instructions on using the info program4 bash also contains a very good summary of its commands accessible by the help command4 help displays a list of available topics2 more information about each of them is accessible with the command help topic name4 ,try typing help cd1 for example4 ,this will give you details on the -,p and -,l arguments recognized by cd4 #e4f ,a ,few bash ,features ,this section mentions just a few of the most commonly used ,bash features2 for a more complete discussion see ,chapter #f4 #e4f4a ,tab ,completion ,the bash shell can guess what filename or command you are trying to type and automatically finish typing it for you4 ,just type the beginning of a command or filename and press ,tab4 ,if bash finds a single unique completion1 it will finish the word and put a space after it4 ,if it finds multiple possible completions1 it will fill out the part all completions have in common and beep4 ,you can then enter enough of the word to make it unique and press ,tab again4 ,if it finds no completions1 it will simply beep4 #e4g ,managing ,your ,identity ,unix-like systems are multiuser1 and so you have your own electronic identity as a user on the system4 ,type finger yourusername to look at some of the information about you that's publically available4 ,to change the name and shell listed there1 you can use the commands chfn and chsh4 ,only the superuser can change your login 7username7 and directory4 ,you'll notice that it says 8,no plan40 ,a 8plan0 is just some information you can make available to others4 ,to create a plan1 you put whatever information you want people to see in a file called 4plan4 ,to do this you'll use a text editor2 see section #h4b on page 994 ,then finger yourself to see your plan4 ,others can finger you to see your plan and to check whether you've received new mail or read your mail4 ,note that this finger information is available to the entire ,internet by default4 ,if you don't want this1 read about configuring inetd and the file _/etc_/services4 ,eventually the installation manual will describe this configuration1 but for now you might try the man pages or just put nonsense in for your finger information4 #f4 ,using the ,shell ,as you have been reading this book1 you've been interacting with the shell already4 ,the shell is the program that reads your commands and then does what you ask it to4 ,in this chapter1 you explore the shell in greater detail1 with a special eye towards customizing the shell to work as you want it to4 #f4a ,environment ,variables ,every process has an environment associated with it4 ,an environment is a collection of environment variables4 ,a variable is a changeable value with a fixed name4 ,for example1 the name ,,email could refer to the value joenowhere4com4 ,the value can vary2 ,,email could also refer to janesomewhere4com4 ,because your shell is a process like any other1 it has an environment4 ,you can view your shell's environment by entering the printenv command4 ,figure #f4a has some sample output from printenv4 ,on your system1 the output will be different but similar4 ,illustration3 ,figure #f4a3 ,sample printenv output ,environment variables are one way to configure the system4 ,for example1 the ,,editor variable lets you select your preferred editor for posting news1 writing e-mail1 and so on4 ,setting environment variables is simple4 ,for practice1 try customizing your shell's prompt and your text file viewer with environment variables4 ,first1 let's get a bit of background information4 man less ,this command lets you view the online manual for the less command4 ,in order to show you the text one screenful at a time1 man invokes a pager that shows you a new page of text each time you press the space bar4 ,by default1 it uses the pager called more4 ,go ahead and glance over the man page for less1 which is an enhanced pager4 ,scroll to a new page by pressing space2 press q to quit4 more will also quit automatically when you reach the end of the man page4 export ,,pagerless ,after reading about the advantages of less1 you might want to use it to read man pages4 ,to do this1 you set the environment variable ,,pager4 ,the command to set an environment variable within bash always has this format3 ,illustration3 ,figure #f4b3 ,changing the prompt export ,,namevalue export means to move the variable from the shell into the environment4 ,this means that programs other than the shell 7for instance1 a file viewer7 will be able to access it4 echo ,,pager ,this is the easiest way to see the value of a variable4 ,,pager tells the shell to insert the value of the ,,pager variable before invoking the command4 echo echoes back its argument3 in this case1 it echoes the current ,,pager value1 less4 man more ,displays the more manual4 ,this time1 man should have invoked the less pager4 less has lots of features that more lacks4 ,for example1 you can scroll backward with the b key4 ,you can also move up and down 7even sideways7 with the arrow keys4 less won't exit when it reaches the end of the man page2 it will wait for you to press q4 ,you can try out some less-specific commands1 like b1 to verify that they don't work with more and that you are indeed using more4 unset ,,pager ,if you don't want to specify a pager anymore1 you can unset the variable4 man will then use more by default1 just as it did before you set the variable4 echo ,,pager ,because ,,pager has been unset1 echo won't print anything4 ,,ps#a;hello3 ,just for fun1 change your shell prompt4 should now change2 see ,figure #f4b for details4 export is not necessary1 because you're changing the shell's own behavior4 ,there's no reason to export the variable into the environment for other programs to see4 ,technically1 ,,ps#a is a shell variable rather than an environment variable4 ,if you wanted to1 you could export the shell variable1 transforming it into an environment variable4 ,if you do this1 programs you run from the shell can see it4 #f4b ,where ,commands ,reside3 ,the ,,path ,variable ,when you type a command into the shell1 it has to find the program on your hard disk before executing it4 ,if the shell had to look all over the disk1 it would be very slow2 instead1 it looks in a list of directories contained in the ,,path environment variable4 ,this list of directories makes up the shell's search path2 when you enter a command1 it goes through each one in turn looking for the program you asked to run4 ,you may need to change the ,,path variable if you install programs yourself in a non-standard location4 ,the value of ,,path is a colon-separated list of directories4 ,the default value on ,debian systems is as follows3 _/usr_/local_/bin3_/usr_/bin3_/bin3_/usr _/bin_/,x#aa3_/usr_/games _/ _/ _/ _/ ,this value is defined in the file _/etc_/profile and applies to all users4 ,you can easily change the value1 just as you can change any environment variable4 ,if you type the command ls1 the shell will first look in _/usr_/local_/bin2 ls isn't there1 so it will try _/usr_/bin2 when that _/fails1 it will check _/bin4 ,there it will discover _/bin_/ls1 stop its search1 and execute the program _/bin_/ls4 ,if _/usr_/bin_/,x#aa_/ls existed 7it doesn't1 but pretend71 it would be ignored4 ,you can see which ls the shell is going to use with the type command4 type ls will give you the answer _/bin_/ls4 ,try it yourself4 ,try asking where type itself resides3 type type type is a shell builtin type isn't actually a program2 it's a function provided by the shell4 ,however1 you use it just like an external program4 ,there are a number of commands like this2 type man builtins to read the man page describing them4 ,in general1 you don't need to know whether a command is a builtin or a real program2 however1 builtins will not show up in the output of ps or top because they aren't separate processes4 ,they're just part of the shell4 #f4c ,configuration ,files ,many applications on ,linux systems allow you to alter how they behave at certain times by altering files containing configuration information4 ,these configuration files may contain application start-up information1 run-time settings and application shutdown settings4 ,in general1 a configuration filename is based on the name of the application for which it contains settings4 ,such a naming convention allows you to more readily determine which configuration file contains settings for a given application4 #f4c4a ,system-,wide ,versus ,user-,specific ,configuration ,it's important to remember that there are two different kinds of configurations on a ,debian system4 ,system-wide configuration affects all users4 ,system-wide settings are made in the _/etc directory1 so you generally must be root in order to change system-wide settings4 ,you might configure the way the system connects to the ,internet1 for example1 or have web browsers on the system always start on the company home page4 ,since you want these settings to apply to all users1 you make the changes in _/etc4 ,sample configuration files in _/etc include _/etc_/,x#aa_/,,xf#hf;,config1 _/etc_/lynx4cfg1 and _/etc_/ppp_/options4 ,in fact1 nearly all the files _/in _/etc are configuration files4 ,user configuration affects only a single user4 ,dotfiles are used for user configuration4 ,for example1 the file _/4newsrc stores a list of which ,,usenet 7discussion group7 articles you have read and which groups you subscribe to4 ,this allows news readers such as trn or ,,gnus to display unread articles in the groups you're interested in4 ,this information will be different for every user on the system1 so each user has his own 4newsrc file in his home directory4 #f4d ,aliases ,if you use the same command often1 you might get tired of typing it4 bash lets you write shorter aliases for your commands4 ,say you always use the -almost-all and -colorauto options to ls4 ,you quickly get tired of typing ls -almost-all -colorauto4 ,so you make an alias3 alias myls'ls -almost-all -colorauto' ,now you can type myls instead of the full command4 ,to see what myls really is1 run the command type myls4 ,to see a list of aliases you've defined1 simply type alias on a line by itself4 ,illustration3 ,figure #f4c3 ,redirecting output #f4e ,controlling ,input and ,output ,throughout your experiences with ,linux1 you will most likely find that manipulating application input and output can be a very powerful thing to do4 ,this section describes some of the things that controlling input and output can do for you4 #f4e4a stdin1 stdout1 ,pipelines1 and ,redirection ,every process has at least three connections to the outside world4 ,the standard input is one source of the process's data2 the standard output is one place the process sends data2 and the standard error is a place the process can send error messages4 7,these are often abbreviated stdin1 stdout1 and stderr47 ,the words 8source0 and 8place0 are intentionally vague4 ,these standard input and output locations can be changed by the user2 they could be the screen1 the keyboard1 a file1 even a network connection4 ,you can specify which locations to use4 ,when you run a program from the shell1 usually standard input comes from your keyboard1 and standard output and error both go to your screen4 ,however1 you can ask the shell to change these defaults4 ,for example1 the echo command sends it output to standard output1 normally the screen4 ,but you can send it to a file instead with the output redirection operator1 4 ,for example1 to put the word 8,hello0 in the file myfile1 use this command3 echo ,hello myfile ,use cat or your text file pager 7more or less7 to view myfile's contents2 see ,figure #f4c4 ,you can change the standard input of a command with the input redirection operator1 4 ,for example1 cat myfile will display the contents of myfile4 ,this is not useful in practice2 for convenience1 the cat command accepts a filename argument4 ,so you can simply say cat myfile1 and the effect will be the same4 redirection operators ,under the hood1 cat myfile means that the shell opens myfile and then feeds its contents to the standard input of cat4 cat myfile1 without the redirection operator1 means that the cat command receives one argument 7myfile7 opens the file itself1 and then displays the file4 ,there's a reason for the double functionality1 however4 ,for example1 you can connect the standard output of one command to the standard input of another4 ,this is called a pipeline1 and it uses the pipe operator#a1 4 #a ,depending on your keyboard1 this may either appear as a vertical bar or a broken vertical bar1 but it can almost always be found above the backslash 774 ,perhaps you want to see the ,,gnu ,general ,public ,license in reverse4 ,to do this1 you use the tac command 7it's cat1 only backward74 ,try it out3 tac _/usr_/doc_/copyright_/,,gpl ,unfortunately1 it goes by too quickly to read4 ,so you only get to see a couple of paragraphs4 ,the solution is a pipeline3 tac _/usr_/doc_/copyright_/,,gpl less ,this takes the standard output of tac1 which is the ,,gpl in reverse1 and sends it to the standard input of less4 ,you can chain as many commands together as you like4 ,say you have an inexplicable desire to replace every ,g with ,q4 ,for this you use the command tr ,g ,q1 like this3 tac _/usr_/doc_/copyright_/,,gpl tr ,g ,q less ,you could get the same effect using temporary files and redirection1 for example3 tac _/usr_/doc_/copyright_/,,gpl tmpfile tr ,g ,q tmpfile tmpfile#b less tmpfile#b rm tmpfile tmpfile#b ,clearly a pipeline is more convenient4 #f4f ,filename ,expansion ,often you want a command to work with a group of files4 ,wildcards are used to create a filename expansion pattern3 a series of characters and wildcards that expands to a list of filenames4 ,for example1 the pattern _/etc_/99 expands to a list of all#b the files in _/etc4 #b ,actually1 files beginning with 4 are not included in the expansion of 994 99 is a wildcard that can stand for any series of characters1 so the pattern _/etc_/99 will expand to a list of all the filenames beginning with _/etc_/4 _/ _/ _/ ,this filename list is most useful as a set of arguments for a command4 ,for example1 the _/etc directory contains a series of subdirectories called rc#j4;d1 rc#a4;d1 etc4 ,normally to view the contents of these1 you would type the following3 ls _/etc_/rc#j4;d _/etc_/rc#a4;d _/etc_/rc#b4;d _/etc_/rc#c4;d ls _/etc_/rc#d4;d _/etc_/rc#e4;d _/etc_/rc#f4;d _/etc_/rc,s4d ,this is tedious4 ,instead1 you can use the 8 wildcard as shown here3 ls _/etc_/rc84d _/etc_/rc84d expands to a list of filenames that begin with rc1 _/followed by any single character1 followed by 4d4 ,available wildcards include the following3 99 ,matches any group of #j or more characters4 8 ,matches exactly one character4 444 ,if you enclose some characters in brackets1 the result is a wildcard that matches those characters4 ,for example1 abc matches either a1 or b1 or c4 ,if you add a after the first bracket1 the sense is reversed2 so abc matches any character that is not a1 b1 or c4 ,you can include a range1 such as a-j1 which matches anything between a and j4 ,the match is case sensitive1 so to allow any letter1 you must use a-z,a-,z4 ,expansion patterns are simple once you see some concrete examples3 994txt ,this will give you a list of all filenames that end in 4txt1 since the 99 matches anything at all4 994hc ,this gives a list of filenames that end in either 4h or 4c4 a88 ,this gives you all three-letter filenames that begin with a4 a88 ,this gives you all three-letter filenames that do not begin with a4 a99 ,this gives you every filename that starts with a1 regardless of how many letters it has4 #g4 ,more on ,files ,in section #e4b on page 991 we covered moving and renaming files with mv1 copying them with cp1 removing them with rm1 removing directories with rmdir1 and creating directories with mkdir4 ,this chapter will cover some more aspects of working with files4 ,permissions ,,gnu and ,unix systems are set up to allow many people to use the same computer1 while keeping certain files private or keeping certain people from modifying certain files4 ,you can verify this for yourself4 ,log in as yourself1 i4e4 ,,not as root4 whoami ,this verifies that you are not root4 ,then enter the following command3 rm _/etc_/resolv4conf ,you should be told ,permission denied4 _/etc_/resolv4conf is an essential system configuration file2 you aren't allowed to change or remove it unless you're root4 ,this keeps you from accidentally messing up the system1 and if the computer is a public one 7such as at an office or school71 it keeps users from messing up the system on purpose4 ,now type ls -l _/etc_/resolv4conf4 ,this will give you output that looks something like this3 -rw-r-r- #a root root #aai ,feb #bc #aiig _/etc_/resolv4conf ,the -l option to ls requests all that additional information4 ,the info on the right is easy3 ,the size of the file is #aai bytes2 the date the file was last changed is ,february #bc1 #aiig2 and the file's name is _/etc_/resolv4conf4 ,on the left side of the screen1 things are a _/little more complicated4 ,first1 the brief1 technical explanation3 ,the -rw-r-r- is the mode of the file1 the #a is the number of hard links to this file 7or the number of files in a directory71 and the two roots are the user and group owning the file1 respectively4 ,so that was cryptic4 ,let's go through it slowly4 #g4a4a ,file ,ownership ,every file has two owners3 a user and a group4 ,the above case is a little confusing because there's a group called root in addition to the root user4 ,groups are just collections of users who are collectively permitted access to some part of the system4 ,a good example is a games group4 ,just to be mean1 you might create a group called games on your computer and then set up your system so that only people in a games group are allowed to play games4 ,here's a more practical example4 ,consider a case in which you're setting up a computer for a school4 ,you might want certain files to be accessible only to teachers1 not students1 so you put all the teachers in a single group4 ,then you can tell the system that certain files belong to members of the group teachers1 and that no one else can access those files4 ,let's explore groups on the system4 ,first1 you can use the groups command at the shell prompt4 ,this will show you a list of the groups to which you belong4 ,here's an example3 groups system-wide configuration6permissions6file ownershipusername dialout cdrom floppy audio ,it's likely that you're a member of only one group1 which is identical to your username4 ,however1 root can add you to other groups4 ,the above example shows a person that is a member of five groups4 less _/etc_/group ,this file lists the groups that exist on your system4 ,notice the root group 7the only member of this group is the root user71 and the group that corresponds to your username4 ,there are also groups like dialout 7users who are allowed to dial out on the modem7 and floppy 7users who can use the floppy drive74 ,however1 your system is probably not configured to make use of these groups4 ,it's likely that only root can use the floppy or the modem right now4 ,for details about this file1 try reading man group4 ls -l _/home ,this command shows you that every user's directory is owned by that user and that user's personal group4 ,tip3 ,if you just installed ,debian1 you may be the only user4 ,you can use the adduser command to add more users to the system4 #g4a4b ,mode ,in addition to being owned by one user and one group1 every file and directory also has a mode1 which determines who's allowed to read1 write1 and execute the file 7and run it1 if it's a program74 ,there are a few other things also determined by the mode1 but they're advanced topics so we'll skip them for now4 ,the mode looks like this in the ls output3 -rw-r-r-4 ,for now1 we'll consider nine of these parts3 those that control read1 write1 and execute permissions for the user owning the file1 the group owning the file1 and others 7everyone on the system1 sometimes called world74 ,in the mode line1 the first 8element0 gives the file type4 ,the - in this case means it's a regular file4 ,if it was d1 we'd be looking at a directory4 ,there are also other possibilities too complex to go into here2 for details1 see section #ac4b4b on page 994 ,the remaining nine elements are used to display the file's mode4 ,the basic #i bits 7read1 write1 and execute for user1 group1 and other7 are displayed as three blocks of rwx4 ,so if all permissions are turned on and this is a regular file1 the mode will look like this3 -rwxrwxrwx4 ,if it was a directory with all permissions turned off for others and full permissions for user and group1 it would be drwxrwx--4 ,table #g4a3 ,permissions in ,linux ---------------------------------------- -------------------------------------- ,code ,name ,allows for ,files ,allows for ,directories ---------------------------------------- ----------------------------------- r read ,examine contents of file ,list contents of directory ---------------------------------------- ----------------------------------- w write ,modify file ,add or remove files in directory ---------------------------------------- ----------------------------------- x execute ,run as a command ,access files in directory ---------------------------------------- -------------------------------------- ,table #g4a describes the meaning of the read1 write1 and execute permissions for both files and directories4 ,directory modes can be a little confusing1 so here are some examples of the effects of various combinations3 r- ,the user1 group1 or other with these permissions may list the contents of the directory1 but can do nothing else4 ,the files in the directory can't be read1 changed1 deleted1 or manipulated in any way4 ,the only permitted action is reading the directory itself1 that is1 seeing what files it contains4 rw- ,write permission has no effect in the absence of execute permission1 so this mode behaves just like the above mode4 r-x ,this mode permits the files in a directory to be listed and permits access to those files4 ,however1 files can't be created or deleted4 ,access means that you can view1 change1 or execute the files as permitted by the files' own permissions4 -x ,files in this directory can be accessed1 but the contents of the directory can't be listed1 so you have to know what filename you're looking for in advance 7unless you're exceptionally good at guessing74 ,files can't be created or deleted4 rwx ,you can do anything you want with the files in this directory1 as long as it's permitted by the permissions on the files themselves4 ,directory write permission determines whether you can delete files in a directory4 ,a read-only file can be deleted if you have permission to write to the directory containing it4 ,you can't delete a file from a read-only directory even if you're allowed to make changes to the file4 ,this also means that if you own a directory you can always delete files from it1 even if those files belong to root4 ,directory execute permission determines whether you have access to files - and thus whether file permissions come into play4 ,if you have execute permissions to a directory1 file permissions for that directory become relevant4 ,otherwise1 file permissions just don't matter2 you can't access the files anyway4 #g4a4c ,permissions in ,practice ,this section goes through a short example session to demonstrate how permissions are used4 ,to change permissions1 we'll use the chmod command4 cd2 touch myfile ,there are a couple of new tricks here4 ,first1 you can use 2 to put two commands on one line4 ,you can type the above as3 cd touch myfile or as3 cd2 touch myfile ,either way the same thing will end up happening4 ,recall that cd by itself returns you to your home directory4 touch is normally used to change the modification time of the file to the current time4 ,but it has another interesting feature3 ,if the file doesn't exist1 touch creates the file4 ,so you're using it to create a file to practice with4 ,use ls -l to confirm that the file has been created and notice the permissions mode3 ls -l -rw-r-r- #a user user #j ,nov #ah #bb3jd myfile ,obviously the time and user_/group names will be different when you try it4 ,the size of the file is #j1 because touch creates an empty file4 -rw-r-r- is the default permissions mode on ,debian4 chmod ux myfile ,this command means to add 77 execute 7x7 permissions for the user 7u7 who owns the file4 ,use ls -l to see the effects4 chmod go-r myfile ,here you've subtracted 7-7 read permission 7r7 from the group 7g7 owning the file and from everyone else 7others1 o74 ,again1 use ls -l to verify the effects4 chmod ugorx myfile ,here you've set 77 user1 group1 and other permissions to read and execute4 ,this sets permissions to exactly what you've specified and unsets any other permissions4 ,so all rx should be set1 and all w should be unset4 ,now1 no one can write to the file4 chmod a-x myfile a is a shortcut for ugo1 or 8all40 ,so all the x permissions should now be unset4 rm myfile ,with this command1 you're removing the file1 but without write permissions4 rm will ask if you're sure by displaying the following message3 rm3 remove #8myfile'1 overriding mode #jddd8 ,you should respond by typing y and pressing ,enter4 ,this is a feature of rm1 not a fact of permissions4 ,permission to delete a file comes from the directory permissions1 and you have write permission in the directory4 ,however1 rm tries to be helpful1 figuring that if you didn't want to change the file 7and thus remove write permission71 you don't want to delete it either1 so it asks you4 ,what was that #jddd business in the question from rm8 ,the permissions mode is a twelve-digit binary number1 like this3 #jjjajjajjajj4 #jddd is this binary number represented as an octal 7base #h7 number1 which is the conventional way to write a mode4 ,so you can type chmod #ddd myfile instead of chmod ugor myfile4 #g4b ,files ,present and ,their ,locations ,now that you can navigate the directory tree1 let's take a guided tour of the files and directories you created when you installed ,debian4 ,if you're curious1 cd to each directory and type ls to see its contents4 ,if the listing doesn't fit on the screen1 try ls less1 where is the 8pipe0 character1 generally found on the same key with backslash4 _/ ,as already mentioned1 this is the root directory1 which contains _/ every other directory4 _/root ,but don't get _/confused with _/root6 _/root is the home directory of the root user1 or superuser4 ,it's a directory called _/root1 but it isn't the root directory _/4 _/home ,this is where all normal users--that is1 all users except root--have their home directories4 ,each home directory is named after the user who owns it1 for example1 _/home_/jane4 ,if you're using a large system at a school or business1 your system administrator may create additional directories to contain home directories3 _/home#a and _/home#b for example4 ,on some other systems1 you'll see an additional level of subdirectories3 _/home_/students_/username1 _/home_/staff_/username1 etc4 ,your home directory is where you put all your personal work1 e-mail and other documents1 and personal configuration preferences4 ,it's your home on the system4 _/bin ,this directory contains 8binaries10 executable files that are essential to the operation of the system4 ,examples are the shell 7bash7 and file commands such as cp4 _/sbin ,this directory contains 8system binaries10 utilities that the root user or system administrator might want to use1 but that you probably won't want to use in your day-to-day activities4 _/usr _/usr contains most of the files you'll be interested in4 ,it _/has many subdirectories4 _/usr_/bin and _/usr_/sbin are pretty much like _/bin and _/sbin1 except that the directories in _/usr are not considered 8essential to the operation of the system40 ,while not essential to getting the computer working1 _/usr does contain the applications you'll use to get real work done4 ,also in _/usr1 you'll find the _/usr_/man1 _/usr_/info1 and _/usr_/doc directories4 ,these contain manual pages1 info pages1 and other documentation1 respectively4 ,and don't forget _/usr_/games6 _/usr_/local ,the ,debian system doesn't install anything in this directory4 ,you should use it if you want to install software that you compile yourself or any software not contained in a ,debian package4 ,you can also install software in your home directory if you'll be the only one using it4 _/etc _/etc contains all the system-wide configuration files4 _/,whenever you want to change something that affects all users of your computer--such as how you connect to the ,internet or what kind of video card you have--you'll probably have to log on as root and change a file in _/etc4 _/tmp ,here you'll find temporary files1 most of them created by the system4 ,this directory is generally erased on a regular basis or every time you reboot the system4 ,you can create files here if you want1 just be aware that they might get deleted automatically4 _/var _/var contains 8variable0 files that the system changes automatically4 ,for example1 incoming mail is stored here4 ,the system keeps a log of its actions here4 ,there are a number of other automatically generated files here as well4 ,you'll mostly be interested in the contents of _/var_/log1 where you can find error messages that can help you figure out what you're system's up to if something goes wrong4 ,clearly there are many more directories on the system--far too many to describe every one4 ,for changing things1 you'll usually want to confine yourself to your home directory and _/etc4 ,on a ,debian system1 there's rarely an occasion to change anything else1 because everything else is automatically installed for you4 _/etc is used to configure the system as a whole4 ,you'll use your _/own home directory1 a subdirectory of _/home1 for configuring your own preferences and storing your personal data4 ,the idea is that on a day-to-day basis1 you confine yourself to _/home_/yourname1 so there's no way you can break anything4 ,occasionally you log in as root to change something in a system-wide directory1 but only when it's absolutely necessary4 ,of course1 if you're using ,debian at a school or business and someone else is the system administrator1 you won't have root access and will be able to change only your home directory and any other directory that you own4 ,this limits what you can do with the system4 #g4c ,file ,compression with gzip ,often it would be nice to make a file smaller--say1 to download it faster1 or so it takes up less space on your disk4 ,the program to do this is called gzip 7,,gnu zip74 ,here's how it works3 cd2 cp _/etc_/profile 4_/mysamplefile ,this switches to your home directory and copies an arbitrarily chosen file 7_/etc_/profile7 to your current directory1 in the process renaming it mysamplefile4 ,this gives you a file to play with when using gzip4 ls -l ,lists the contents of the current directory4 ,note the size of mysamplefile4 gzip mysamplefile ,compresses mysamplefile4 ls -l ,observe the results of this command3 mysamplefile is now called mysamplefile4gz 4 ,it's also a good bit smaller4 gunzip mysamplefile4gz2 ls -l ,this uncompresses the file4 ,observe that mysamplefile has returned to its original state4 ,notice that to uncompress1 one uses gunzip1 not gzip4 rm mysamplefile ,use this command to remove the file1 since it was just to practice with4 #g4d ,finding ,files ,there are two different facilities for finding files3 find and locate4 find searches the actual files in their present state4 locate searches an index generated by the system every morning at #f3db a4m4 7this is a cron job1 explained elsewhere in this book74 locate won't find any files that were created after the index was generated4 ,however1 because locate searches an index1 it's much faster--like using the index of a book rather than looking through the whole thing4 ,to compare the two ways of finding files1 pretend you can't remember where the ,x configuration file ,,xf#hf;,config resides4 locate ,,xf#hf;,config ,this should be pretty fast4 ,you'll get a list of filenames that contain ,,xf#hf;,config1 something like this3 _/etc_/,x#aa_/,,xf#hf;,config _/ _/usr_/,x#aa,r#f_/lib_/,x#aa_/,,xf#hf;,c onfig _/ _/usr_/,x#aa,r#f_/lib_/,x#aa_/,,xf#hf;,c onfig4eg _/ _/usr_/,x#aa,r#f_/man_/man#e_/,,xf#hf;,c onfig4#ex4gz _/ _/ _/ _/ ,now try the find command3 find _/ -name ,,xf#hf;,config ,you will hear a lot of disk activity1 and this will take a lot longer4 ,results will look something like this3 _/etc_/,x#aa_/,,xf#hf;,config _/ _/usr_/,x#aa,r#f_/lib_/,x#aa_/,,xf#hf;,c onfig _/ find3 _/var_/spool_/cron_/atjobs3 ,permission denied find3 _/var_/spool_/cron_/atspool3 ,permission denied find3 _/var_/lib_/xdm_/authdir3 ,permission denied ,notice that find found only files that were named exactly ,,xf#hf;,config1 rather than any files containing that string of letters4 ,also1 find actually tried to look in every directory on the system--including some where you didn't have read permissions4 ,that's why you got the ,permission denied messages4 ,the syntax is different as well4 ,with find1 you had to specify what directory to search in1 whereas locate automatically chose the root directory4 ,and you had to specify a search by name using the -name option4 ,you could also have searched for files using many other criteria1 such as modification date or owner4 ,to have find search for files whose names match ,,xf#hf;,config1 you'd have to use a wildcard3 find _/ -name '99,,xf#hf;,config99' ,like most of the command line tools1 find accepts wildcards as arguments4 ,in general1 find is a more powerful utility1 and locate is faster for everyday quick searches4 ,the full range of possible searches would take a long time to explain2 for more details 1 type info find1 which will bring up the very thorough info pages on find and locate4 #g4e ,determining a ,file's ,contents ,debian comes with a utility that can guess at the contents of a file for you4 ,although it is not #ajj accurate1 you can use the following command to explore your system3 file _/bin_/cp ,you should see something like this3 _/bin_/cp3 ,,elf #cb-;bit ,,lsb executable1 ,intel #chf1 version #a _/ _/ _/ _/ ,skipping the technical parts1 this is an executable file for ,intel machines4 file _/etc_/init4d_/boot ,the preceding command gives this response3 _/etc_/init4d_/boot3 ,bourne shell script text _/ _/ _/ _/ meaning that this is a text file containing a ,bourne shell script4 #g4f ,using a ,file ,manager ,instead of moving files around by hand1 you can use a file manager4 ,if you move a lot of files around1 a file manager can make your work more efficient4 ,there are text-based file managers1 such as ,,gnu ,midnight ,commander 7mc71 and a number of file managers for the ,x ,window system 7for example gmc for the ,x ,window version of ,,gnu ,midnight ,commander74 ,describing each of these is outside the scope of this book1 but you may want to try them out if the command line doesn't meet your needs4 #h4 ,working with ,text ,files ,text files are prevelant on a ,,gnu_/,linux system4 ,they hold everything from documentation to configuration files4 ,fortunately1 it's easy to work with them4 #h4a ,viewing ,text ,files ,a text file is simply a normal file that happens to contain human-readable text4 ,there's nothing special about it otherwise4 ,the other kind of file1 a binary file1 is meant to be interpreted by the computer4 ,you can view either kind of file with the less file pager if you have it installed 7install it if you haven't1 it's quite useful74 ,type less _/etc_/profile to view a sample text file4 ,notice that you can read _/the characters even if their meaning is obscure4 ,type less _/bin_/ls to view a binary file4 ,as you can see1 the ls program is not meant to be read by humans4 ,sometimes1 you'll find files that end with 4gz4 ,these files may be viewed with zless2 you can run it like so3 zless _/usr_/doc_/ae_/changelog4,debian4gz ,tip3 zless is great for viewing documentation1 which is often shipped in 4gz form4 ,the difference between the two kinds of files is purely a matter of what they contain1 unlike in some other systems 7such as ,,dos and ,mac,o,s71 which actually treat the files differently4 ,text files can contain shell scripts1 documentation1 copyright notices1 or any other human-readable text4 ,incidentally1 this illustrates the difference between source code and binary executables4 _/bin_/ls is a binary executable you can download from ,debian1 but you can also download a text file that tells the computer how to create _/bin_/ls4 ,this text file is the source code4 ,comparing _/bin_/ls to _/etc_/profile illustrates how important source code is if someone wants to understand and modify a piece of software4 ,free software provides you or your consultants with this all-important source code4 #h4b ,text ,editors ,a text editor is a program used to create and change the contents of text files4 ,most operating systems have a text editor3 ,,dos has edit1 ,windows has ,notepad1 ,mac,o,s has ,simple,text4 ,debian provides a large variety of text editors4 vi and ,emacs are the classic two1 which are probably both the most powerful and the most widely used4 ,both vi and ,emacs are quite complex and require some practice1 but they can make editing text extremely efficient4 ,emacs runs both in a terminal and under the ,x ,window system2 vi normally runs in a terminal but the vim variant has a -g option that allows it to work with ,x4 text editors ,simpler editors include nedit1 ae1 jed1 and xcoral4 nedit and xcoral provide easy-to-use ,x ,window system graphical interfaces4 ,there are also several vi variants4 ,additionally1 you can find and a ,,gnu ,emacs variant called ,x,emacs4 ,this book does not cover the use of any particular editor in detail1 though we will briefly introduce ae since it is small1 fast1 and can be found even on the ,debian rescue disks1 so it pays to know a bit about it for usage in a pinch4 ,when you need to do more serious editing1 check out vim or ,,gnu ,emacs4 ,emacs provides an excellent interactive tutorial of its own2 to read it1 load ,emacs with the emacs command and type ,f#a t4 ,emacs is an excellent choice for new users interested in a general-purpose or programming editor4 #h4c ,using ae ,you can start ae by giving it the name of a file to edit1 like so3 ae filename4txt ,this will bring up an editor screen4 ,the top part of this screen provides some quick help2 the bottom shows the file you're editing4 ,moving around in this editor is simple2 just use the arrow keys4 ,you can save the file by pressing ,c-x ,c-s and then exit the editor by pressing ,c-x ,c-c4 ,once you feel comfortable with the editor1 you can press ,c-x ,c-h to turn off the help4 ,that's it6 ,knowing this will let you do basic editing4 ,for programming or more detailed editing work1 you'll want to investigate other editors as discussed earlier4 #i4 ,the ,x ,window ,system ,this chapter describes the ,x ,window system graphical user interface4 ,it assumes that you have already successfully configured ,x as described in the ,installation ,manual 7again1 the install manual is not yet written2 for now you will need to use the ,x,free#hf ,,howto1 the contents of _/usr_/doc_/,x#aa1 and this chapter74 ,once you install ,x1 you can enter the ,x environment by typing startx or via xdm1 depending on your choice during configuration4 #i4a ,introduction to ,x ,a ,,gui 7,graphical ,user ,interface7 is part and parcel of the ,windows and ,mac operating systems4 ,it's basically impossible to write an application for those systems that does not use the ,,gui1 and the systems can't be used effectively from the command line4 ,,gnu_/,linux is more modular1 that is1 it's made up of many small1 independent components that can be used or not according to one's needs and preferences4 ,one of these components is the ,x ,window system1 or simply ,x4 ,this component is also sometimes called ,x#aa4 ,please note that 8,x ,windows0 is not correct4 ,x itself is a means for programs to talk to your mouse and video card without knowing what kind of mouse and video card you have4 ,that is1 it's an abstraction of the graphics hardware4 ,user applications talk to ,x in ,x's language2 ,x then translates into the language of your particular hardware4 ,this means that programs only have to be written once1 and they work on everyone's computer4 ,in ,x jargon1 the program that speaks to the hardware is known as an ,x server4 ,user applications that ask the ,x server to show windows or graphics on the screen are called ,x clients4 ,the ,x server includes a video driver1 so you must have an ,x server that matches your video card4 ,the ,x server doesn't provide any of the features one might expect from a ,,gui1 such as resizing and rearranging windows4 ,a special ,x client1 called a window manager1 draws borders and title bars for windows1 resizes and arranges windows1 and provides facilities for starting other ,x clients from a menu4 ,specific window managers may have additional features4 ,window managers available on a ,debian system include fvwm1 fvwm#b1 icewm1 afterstep1 olvwm1 wmaker1 twm1 and enlightenment4 ,you'll probably want to try them all and pick your favorite4 ,neither the ,x server nor the window manager provide a file manager2 that is1 there aren't any windows containing icons for your files and directories4 ,you can launch a file manager as a separate application1 and there are many of them available4 ,the ,,gnome desktop project is developing an icon-based file manager and other ,,gui facilities4 ,see the ,,gnome homepage#a for the latest news on this4 #a http3_/_/www4gnome4org_/ ,a final feature of ,x is its network transparency1 meaning that ,x clients don't care if they're talking to an ,x server on the same machine or an ,x server somewhere on the network4 ,in practical terms1 this means you can run a program on a more powerful remote machine but display it on your desktop computer4 #i4b ,starting the ,x ,environment ,there are two ways to start ,x4 ,the first is to start ,x manually when you feel like using it4 ,to do so1 log in to one of the text consoles and type startx4 ,this will start ,x and switch you to its virtual console4 ,the second 7and recommended7 way to use ,x is with xdm or ,x ,display ,manager4 ,basically1 xdm gives you a nice graphical login prompt on the ,x virtual console 7probably ,,vc #g71 and you log in there4 ,by default1 either method will also start an xterm1 which is a small window containing a shell prompt4 ,at the shell prompt1 you can type any commands just as you would on a text ,,vc4 ,so you can follow all the examples in this book using xterm2 the only difference between an xterm and the text console is that you don't have to log on to the xterm because you already logged on to ,x4 ,there are also a lot of things you can do only in ,x1 which are covered in this chapter4 ,one note3 ,the default xterm window has a smallish font4 ,if you have a small monitor or very high resolution or bad eyesight1 you may want to fix this4 ,follow these steps3 #a4 ,move the mouse pointer into the center of the xterm window4 #b4 ,hold down the ,control key and the right mouse button simultaneously4 ,this will give you a font menu4 #c4 ,point to the font you want and release the mouse button4 #i4c ,basic ,x ,operations ,there are certain commonly used operations in ,x that you should familiarize yourself with4 ,this section describes some of the basic operations that you may find useful4 #i4c4a ,the ,mouse ,the mouse in ,x works pretty much the same as the mouse on other systems1 except that it has three buttons4 ,if your mouse has only two1 you can simulate the middle button by clicking both buttons simultaneously4 ,this is kind of tricky and annoying1 so investing in a #ae three-button mouse probably isn't a bad idea4 ,these are available from most computer retailers4 ,the buttons are numbered from left to right assuming you have a right-handed mouse4 ,so button one is on the left1 two is in the middle1 and three is on the right4 ,you may see either the numbers or the locations in documentation4 ,x has a simple built-in copy-and-paste facility4 ,to select text to copy1 you click and drag with the left mouse button4 ,this should select the text to copy1 assuming the application you're using has copy-and-paste support4 ,to paste the text1 you click the middle mouse button in a different ,x application4 ,for example1 if you receive an e-mail containing an ,,url1 you can select the ,,url with the left button and then click in your web browser's 8,location0 field with the middle button to paste it in4 #i4c4b ,x ,clients ,programs that communicate with the ,x server are called ,x clients4 ,most of these programs will ask the ,x server to display windows on the screen4 ,you start an ,x client the same way you start any other ,debian program4 ,simply type the name of the client on the command line4 ,try typing xterm into an existing xterm window1 and a new xterm client will appear on the screen4 ,you may notice that the original xterm is now useless1 because your shell is waiting for the second xterm to finish4 ,to avoid this problem1 you can run the ,x client in the backgroundby adding a after the command name like this3 xterm 4 ,if you forget1 you can place a running process in the background4 ,first suspend the process with ,,ctrl-z1 and then place it in the background with the bg command4 ,if you use a program often1 your window manager will generally provide a way to put that program on a convenient graphical menu4 #i4c4c ,troubleshooting ,sometimes when you launch an ,x client from a graphical menu1 you won't be able to see any error messages if it fails4 ,you can find any error messages in the file _/4xsession-errors4 #i4c4d ,leaving the ,x ,environment ,to leave ,x1 you need to use a menu4 ,unfortunately for beginners1 this is different for every window manager1 and for most window managers1 it can be configured in many ways4 ,if there's an obvious menu1 look for an entry like 8,exit0 or 8,close ,window ,manager40 ,if you don't see a menu1 try clicking each of the mouse buttons on the background of the screen4 ,if all else fails1 you can forcibly kill the ,x server by pressing ,,ctrl-,,alt-,backspace4 ,forcibly killing the server destroys any unsaved data in open applications4 #i4d ,customizing ,your ,x ,startup ,when you start ,x1 ,debian runs some shell scripts that start your window manager and other ,x clients4 ,by default1 a window manager1 an xconsole1 and an xterm are started for you4 ,to customize your ,x startup1 the file _/etc_/,x#aa_/;config must contain the line allow-user-xsession4 ,if it does not1 log in as root and add the line now4 ,then log back in as yourself and continue the tutorial4 ,you can see how ,debian's ,x startup works in the file _/etc_/,x#aa_/ ,xsession4 ,note that you can change the behavior of _/etc_/,x#aa_/,xsession by modifying the file _/etc_/,x#aa_/;config1 which specifies a few system-wide preferences4 ,to run the clients of your choice when ,x starts1 you create an executable shell script called 4xsession in your home directory4 touch _/4xsession ,this creates the file4 chmod ux _/4xsession ,this makes the file executable4 ,once 4xsession is created1 you need to edit it to do something useful with your favorite text editor4 ,you can do anything you want to in this script4 ,however1 when the script's process terminates1 ,x also terminates4 ,in practical terms1 this means that you often end the script with a call to exec4 ,whatever program you exec will replace the script process with itself1 so commands found after the exec line will be ignored4 ,the program you exec will become the new owner of the script process1 which means that ,x will terminate when this new program's process terminates4 ,say you end your 4xsession with the line exec fvwm4 ,this means that the fvwm window manager will be run when ,x starts4 ,when you quit the fvwm window manager1 your ,x session will end1 and all other clients will be shut down4 ,you do not have to use a window manager here2 you could exec xterm1 in which case typing exit in that particular xterm would cause the entire ,x session to end4 ,if you want to run other clients before you use exec1 you will need to run them in the background4 ,otherwise 4xsession will pause until each client exits and then continue to the next line4 ,see the previous section on running jobs in the background 7basically you want to put an ampersand at the end1 as in xterm 74 ,you can take advantage of this behavior1 though4 ,if you want to run commands at the end of your ,x session1 you can have your 4xsession run a window manager or the like and wait for it to finish4 ,that is1 leave off the exec and the 2 just enter fvwm by itself4 ,then put the commands of your choice after fvwm4 ,it would probably help to look at a few sample 4xsession files4 ,in all the examples1 replace fvwm with the window manager of your choice4 ,the simplest 4xsession just runs a window manager3 exec fvwm ,this will run fvwm1 and the ,x session will end when fvwm exits4 ,if you do it without the exec1 everything will appear to behave the same way1 but behind the scenes 4xsession will hang around waiting for fvwm1 and 4xsession will exit after fvwm does4 ,using exec is slightly better because fvwm replaces 4xsession instead of leaving it waiting4 ,you can use the ps or top command to verify this4 ,a more useful 4xsession runs a few clients before starting the window manager4 ,for example1 you might want some xterms and an xclock whenever you start ,x4 ,no problem2 just enter xterm xterm xclock exec fvwm4 ,two xterms and an xclock start up in the background1 and then the window manager is launched4 ,when you quit the window manager1 you'll also quit ,x4 ,you might try it without the backgrounding just to see what happens4 ,enter this command3 xterm xclock exec fvwm4 xterm will start1 and wait for you to exit it4 ,then xclock will start2 you'll have to exit xclock before fvwm will start4 ,the commands are run in sequence1 since the script waits for each one to exit4 ,you can use sequential execution to your advantage4 ,perhaps you want to keep track of when you stop working every day3 xterm xclock fvwm date _/logout-time ,this will fork off an xterm and an xclock and then run fvwm and wait for it to finish4 ,when you exit fvwm1 it will move on to the last line1 which appends the current date and time to the file _/logout-time4 ,finally1 you can have a program other than the window manager determine when ,x exits3 xclock fvwm exec xterm ,this script will run xclock and fvwm in the background and then replace itself with xterm4 ,when you exit the xterm1 your ,x session will end4 ,the best way to learn how to use 4xsession is to try some of these things out4 ,again1 be sure you use chmod to make it executable2 failure to do so is a common error4 #aj4 ,filesystems ,a ,debian system uses a filesystem to store and manage your data4 ,this chapter introduces you to the filesystem1 describes how to add and remove filesystems1 and shows you how to back up your system4 #aj4a ,concepts ,it's probably a good idea to explain a little theory before discussing the mechanics of using disks4 ,in particular1 you must understand the concept of a filesystem4 ,this can be a bit confusing because it has several meanings4 ,the filesystem refers to the whole directory tree1 starting with the root directory _/1 as described in earlier chapters4 ,a filesystem in general means any organization of files and directories on a particular physical device4 8,organization0 means the hierarchical directory structure and any other information about files one might want to keep track of3 their size1 who has permission to change them1 etc4 ,so you might have one filesystem on your hard disk1 and another one on each floppy disk4 8,filesystem0 is also used to mean a type of filesystem4 ,for example1 ,,ms-,,dos and ,windows #c4a organize files in a particular way1 with particular rules3 ,filenames can have only eight characters1 for example1 and no permission information is stored4 ,linux calls this the msdos filesystem4 ,linux also has its own filesystem1 called the ext#b filesystem 7version two of the ext filesystem74 ,you'll use the ext#b filesystem most of the time unless you're accessing files from another operating system or have other special needs4 ,any physical device you wish to use for storing files must have at least one filesystem on it4 ,this means a filesystem in the second sense--a hierarchy of files and directories1 along with information about them4 ,of course1 any filesystem has a type1 so the third sense will come into play as well4 ,if you have more than one filesystem on a single device1 each filesystem can have a different type--for example1 you might have both a ,,dos partition and a ,linux partition on your hard disk4 #aj4b mount and _/etc_/fstab ,this section describes how to mount a floppy or ,zip disk1 discusses the _/dev directory1 and addresses distributing the directory tree over multiple physical devices or partitions4 #aj4b4a ,mounting a ,filesystem ,on a ,,gnu_/,linux system there's no necessary correspondence between directories and physical devices as there is in ,windows1 in which each drive has its own directory tree beginning with a letter 7such as ,c374 ,instead1 each physical device such as a hard disk or floppy disk has one or more filesystems on it4 ,in order to make a filesystem accessible1 it's assigned to a particular directory in another filesystem4 ,to avoid circularity1 the root filesystem 7which contains the root directory _/7 is not stored within any other filesystem4 ,you have access to it automatically when you boot ,debian4 ,a directory in one filesystem that contains another filesystem is known as a mount point4 ,a mount point is a directory in a first filesystem on one device 7such as your hard disk7 that 8contains0 a second filesystem1 perhaps on another device 7such as a floppy disk74 ,to access a filesystem1 you must mount it at some mount point4 ,so1 for example1 you might mount a ,,cd at the mount point _/cdrom4 ,this means that if you look in the directory _/cdrom1 you'll see the contents of the ,,cd4 ,the _/cdrom directory itself is actually on your hard disk4 ,for all practical purposes1 the contents of the ,,cd become a part of the root filesystem1 and when you type commands and use programs1 it doesn't make any difference what the actual physical location of the files is4 ,you could have created a directory on your hard disk called _/cdrom and put some files in it1 and everything would behave in exactly the same way4 ,once you mount a filesystem1 there's no need to pay any attention to physical devices4 ,however1 before you can mount a filesystem or actually create a filesystem on a disk that doesn't have one yet1 it's necessary to refer to the devices themselves4 ,all devices have names1 which are located in the _/dev directory4 ,if you type ls _/dev now1 you'll see a pretty lengthy list of every possible device you could have on your ,debian system4 ,for a summary of some devices1 see ,table #b4a on page 994 ,a more thorough list can be found on your system in the file _/usr_/src_/linux_/,documentation_/devic es4txt4 ,to mount a filesystem1 we want to tell ,linux to associate whatever filesystem it finds on a particular device with a particular mount point4 ,in the process1 we might have to tell ,linux what kind of filesystem to look for4 #aj4b4b ,example3 ,mounting a ,,cd-,,rom ,as a simple demonstration1 we'll go through mounting a ,,cd-,,rom1 such as the one you may have used to install ,debian4 ,you'll need to be root to do this1 so be careful2 whenever you're root1 you have the power to manipulate the whole system1 not just your own files4 ,also1 these commands assume there's a ,,cd in your drive2 you should put one in the drive now4 ,then start with the following command3 su ,if you haven't already1 you need to either log in as root or gain root privileges with the su 7super user7 command4 ,if you use su1 enter the root password when prompted4 ls _/cdrom ,use this command to see what's in the _/cdrom directory before you start4 ,if you don't have a _/cdrom directory1 you may have to make one using mkdir _/cdrom4 mount ,simply typing mount with no arguments lists the currently mounted filesystems4 mount -t iso#iffj ,,cd-device _/cdrom ,for this command1 you should substitute the name of your ,,cd-,,rom device for ,,cd-device in the above command line4 ,if you aren't sure1 _/dev_/cdrom is a good guess because the install process should have created this symbolic link on the system4 ,if that fails1 try the different ,,ide devices3 _/dev_/hdc1 etc4 ,you should see a message like this3 mount3 block _/device dev_/hdc is write-protected1 mounting read-only4 _/ _/ _/ ,the -t option specifies the type of the filesystem1 in this case iso#iffj4 ,most ,c,ds are iso#iffj4 ,the next argument is the name of the device to mount1 and the final argument is the mount point4 ,there are many other arguments for mount2 see the manual page for details4 ,once a ,,cd is mounted1 you may find that your drive tray will not open4 ,you must unmount the ,,cd before removing it4 ls _/cdrom ,confirms that _/cdrom now contains whatever is on the ,,cd in your drive4 mount ,displays the list of filesystems again2 notice that your ,,cd drive is now mounted4 umount _/cdrom ,this unmounts the ,,cd4 ,it's now safe to remove the ,,cd from the drive4 ,notice that the command is umount with no 8n10 even though it's used to unmount the filesystem4 exit ,don't leave yourself logged on as root4 ,log out immediately1 just to be safe4 #aj4b4c _/etc_/fstab3 ,automating the ,mount ,process ,the file _/etc_/fstab 7it stands for 8filesystem table07 contains descriptions of filesystems that you mount often4 ,these filesystems can then be mounted with a shorter command1 such as mount _/cdrom4 ,you can also configure filesystems to mount automatically when the system boots4 ,you'll probably want to mount all of your hard disk filesystems when you boot1 so ,debian automatically adds entries to fstab to do this for you4 ,look at this file now by typing more _/etc_/fstab4 ,it will have two or more entries that were configured automatically when you installed the system4 ,it probably looks something like this3 _/etc_/fstab3 static file system information4 _/ _/ _/ file system mount point type options dump pass _/dev_/hda#a _/ ext#b defaults #j #a _/ _/dev_/hda#c none swap sw #j #j _/ proc _/proc proc defaults #j #j _/dev_/hda#e _/tmp ext#b defaults #j #b _/ _/dev_/hda#f _/home ext#b defaults #j #b _/ _/dev_/hda#g _/usr ext#b defaults #j #b _/ _/dev_/hdc _/cdrom iso#iffj ro1noauto #j #j _/ _/dev_/fd#j _/floppy auto noauto1sync #j #j _/ _/ _/ _/ _/ ,the first column lists the device the filesystem resides on4 ,the second lists the mount point1 the third indicates the filesystem type4 ,the line beginning by proc is a special filesystem4 ,notice that the swap partition 7_/dev_/hda#c in the example7 has no mount point1 so the mount point column contains none4 ,the last three columns may require some explanation4 ,the fifth column is used by the dump utility to decide when to back up the filesystem4 ,in most cases1 you can put #j here4 ,the sixth column is used by fsck to decide in what order to check filesystems when you boot the system4 ,the root filesystem should have a #a in this field1 filesystems that don't need to be checked 7such as the swap partition7 should have a #j1 and all other filesystems should have a #b4 ,it's worth noting that the swap partition isn't exactly a filesystem in the sense that it does not contain files and directories but is just used by the ,linux kernel as secondary memory4 ,however1 for historical reasons1 the swap partitions are still listed in the same file as the filesystems4 ,column four contains one or more options to use when mounting the filesystem4 ,you can check the mount manpage for a summary2 see section #e4a on page 994 #aj4b4d ,removable ,disks 7,floppies1 ,zip ,disks1 ,etc47 ,add the following lines to your _/etc_/fstab file3 _/dev_/sda#a _/mnt_/zip ext#b noauto1user #j #j _/ _/dev_/sda#d _/mnt_/dos msdos noauto1user #j #j _/ _/ _/ _/ ,from now on1 you'll be able to mount the ,,dos-formatted ,zip disks with the command mount _/mnt_/dos1 and you be able to mount ,linux-formatted ,zip disks with the command mount _/mnt_/zip4 ,if you have ,,scsi hard disks in your system1 you'll have to change sda to sdb or sdc in the example above4 #aj4c ,backup ,tools ,backups are important under any operating system4 ,debian ,,gnu_/,linux provides several different utilities that you might want to use4 ,additionally1 while many of these utilities were aimed at tape backups originally1 you'll find that they are now being used for other things4 ,for instance1 tar is being used for distributing programs over the ,internet4 ,some of the utilities that you'll find include the following3 ,taper is a menu-driven1 easy-to-learn backup program that can back up to a variety of media4 ,its limitation is that it doesn't handle large 7#d;,,gb or larger7 backups4 dump is designed specifically for tapes2 its main strengths are its interface for file restores1 low-level filesystem backups1 and incremental backup scheduling4 ,its limitations include the inability to back up ,,nfs or other non-ext#b filesystems and some rather arcane defaults4 ,,gnu tar 7short for ,tape ,a,rchiver7 is an implementation of what is probably the most widely used backup or archiving utility in ,linux today4 ,it makes a good general purpose tool and can deal with the widest variety of target media4 ,additionally1 many different systems can read tar files1 making them highly portable4 tar's weaknesses include a weaker incremental backup system than dump and no interactive restore selection screen4 #aj4c4a tar ,because tar is used so much1 and for quite a bit in addition to backups1 it is being described here4 ,for more details1 see the tar manual page2 instructions for viewing manual pages can be found in section #e4a on page 994 tar is an archiver4 ,this means that tar can take many files and combine them all into one large file or write them out to a backup device such as a tape drive4 ,once you have this one large file1 you will often want to compress it2 the -z option is great for this4 ,hence1 tar offers a great way to distribute programs and data on the ,internet1 and you'll find that it is used extensively for this purpose4 ,here's a sample tar command line3 tar -zcvf myfiles4tar4gz _/usr_/local_/bin ,let's take a look at how this command can be broken down3 tar ,name of the command4--,tells tar that options will follow4 z ,tells tar to use gzip compression automatically2 if you use this1 it's good to add a 4gz extension as well4 c ,tells tar to create a new archive4 v ,this says to be verbose2 that is1 it tells tar to let you know what it's doing while it creates the archive4 f ,this indicates that the next thing on the command line is the name of the file to be created or the device to be used4 ,if ,i used _/dev_/st#j here1 for instance1 it would write the backup to the tape drive4 myfiles4tar4gz ,this is the name of the file to be created4 _/usr_/local_/bi _/ _/ _/ _/ ,this is the name of the file or directory to store in the archive4 ,it's also possible to specify several items here4 ,you may often find tar4gz files 7or simply tgz files7 on the ,internet4 ,you can unpack these with a command like3 tar -zxvf filename4tar4gz #aa4 ,networking ,one of the key benefits of ,,gnu_/,linux over other systems lies in its networking support4 ,few systems can rival the networking features present in ,,gnu_/,linux4 ,in this chapter1 we tell you how to configure your network devices4 #aa4a ,,ppp ,this section is a quick-start guide to setting up ,,ppp on ,debian4 ,if it turns out that you need more details1 see the excellent ,,ppp ,,howto from the ,linux ,documentation ,project4 ,the ,,howto goes into much more detail if you're interested or have unique needs4 #aa4a4a ,introduction ,if you connect to the ,internet over a phone line1 you'll want to use ,,ppp 7,point-to-,point ,protocol74 ,this is the standard connection method offered by ,i,s,ps 7,internet service providers74 ,in addition to using ,,ppp to dial your ,,isp1 you can have your computer listen for incoming connections - this lets you dial your computer from a remote location4 #aa4a4b ,preparation ,configuring ,,ppp on ,debian ,,gnu_/,linux is straightforward once you have all the information you'll need4 ,debian makes things even easier with its simple configuration tools4 ,before you start1 be sure you have all the information provided by your ,,isp4 ,this might include3 ,username or login ,password ,your static ,,ip 7,internet ,protocol7 address1 if any 7these look like #bji4ha4h4bdb74 ,this information isn't needed for most ,i,s,ps4 ,bitmask 7this will look something like #bee4bee4bee4bdh74 ,this information isn't needed for most ,i,s,ps4 ,the ,,ip addresses of your ,,isp's name servers 7or ,,dns74 ,any special login procedure required by the ,,isp4 ,next1 you'll want to investigate your hardware setup3 whether your modem works with ,,gnu_/,linux and which serial port it's connected to4 ,a simple rule determines whether your modem will work4 ,if it's a 8winmodem0 or 8host-based modem10 it won't work4 ,these modems are cheap because they have very little functionality1 and they require the computer to make up for their shortcomings4 ,unfortunately1 this means they are complex to program1 and manufacturers generally do not make the specifications available for developers4 ,if you have a modem with its own on-board circuitry or an external modem1 you should have no trouble at all4 ,on ,,gnu_/,linux systems1 the serial ports are referred to as _/dev_/tty,s#j1 _/dev_/tty,s#a1 and so on4 ,your modem is almost certainly connected to _/either port #j or port #a1 equivalent to ,,com#a3 and ,,com#b3 under ,windows4 ,if you don't know which your modem is connected to1 run the program wvdialconf to try to detect it 7see below72 otherwise1 just try both and see which works4 ,if you want to talk to your modem or dial your ,,isp without using ,,ppp1 you can use the minicom program4 ,you may need to install the minicom package to make the program available4 #aa4a4c ,the ,easy ,way3 wvdial ,the simplest way to get ,,ppp running is with the wvdial program4 ,it makes some reasonable guesses and tries to set things up for you4 ,if it works1 you're in luck4 ,if it guesses wrong1 you'll have to do things manually4 ,be sure you have the following packages installed3 ppp ppp-pam wvdial ,when you install the wvdial package1 you may be given the opportunity to configure it4 ,otherwise1 to set up wvdial1 follow these simple steps3 ,log in as root1 using su 7as described in an earlier chapter74 touch _/etc_/wvdial4conf touch will create the following file if the file doesn't exist2 the configuration program requires an existing file4 wvdialconf _/etc_/wvdial4conf ,this means you're creating a configuration file1 _/etc_/wvdial4conf4 ,answer any questions that appear on the screen4 wvdialconf will also scan for your modem and tell you which serial port it's on2 you may want to make a note of this for future reference4 #aa4b ,ethernet ,another popular way to connect to the ,internet is via a ,,lan that uses ,ethernet4 ,this gives you a high-speed local network in addition to ,internet access4 ,fortunately1 though1 you should have already configured ,ethernet networking during installation so there isn't much you need to do now4 ,if you ever need to modify your configuration1 here are the files that you will be interested in3 _/etc_/init4d_/network has things such as your ,,ip address1 netmask1 and default route4 _/etc_/hostname records your hostname4 _/etc_/hosts also records your hostname and ,,ip address4 #ab4 ,removing and ,installing ,software ,this chapter describes ways of installing and removing software packages4 ,there are several ways of doing both4 ,here we discuss installation and removal of pre-built software1 such as ,debian packages1 and installation of source that must be built by you4 #ab4a ,what a ,package ,maintenance ,utility ,does ,an application or utility program usually involves quite a few files4 ,it might include libraries1 data files like game scenarios or icons1 configuration files1 manual pages1 and documentation4 ,when you install the program1 you want to make sure you have all the files you need in the right places4 ,you'd also like to be able to uninstall the program4 ,when you uninstall1 you want to be sure all the associated files are deleted4 ,however1 if a program you still have on the system needs those files1 you want to be sure you keep them4 ,finally1 you'd like to be able to upgrade a program4 ,when you upgrade1 you want to delete obsolete files and add new ones1 without breaking any part of the system4 ,the ,debian package system solves these problems4 ,it allows you to install1 remove1 and upgrade software packages1 which are neat little bundles containing the program files and information that helps the computer manage them properly4 ,debian packages have filenames ending in the extension 4deb1 and they're available on the ,,ftp site or on your official ,debian ,,cd-,,rom4 #ab4b dpkg ,the simplest way to install a single package you've downloaded is with the command dpkg -i 7short for dpkg -install74 ,say you've downloaded the package icewm#j4h4ab-a4;deb and you'd like to install it4 ,first log on as root1 and then type dpkg -i icewm#j4h4ab-a4;deb1 and icewm version #j4h4ab will be installed4 ,if you already had an older version1 dpkg will upgrade it rather than installing both versions at once4 ,if you want to remove a package1 you have two options4 ,the first is most intuitive3 dpkg -r icewm4 ,this will remove the icewm package 7-r is short for -remove74 ,note that you give only the icewm for -remove1 whereas -install requires the entire 4deb filename4 -remove will leave configuration files for the package on your system4 ,a configuration file is defined as any file you might have edited in order to customize the program for your system or your preferences4 ,this way1 if you later reinstall the package1 you won't have to set everything up a second time4 ,however1 you might want to erase the configuration files too1 so dpkg also provides a -purge option4 dpkg -purge icewm will permanently delete every last file associated with the icewm package4 #ab4c dselect dselect is a great front-end for dpkg4 dselect provides a menu interface for dpkg1 and can automatically fetch the appropriate files from a ,,cd-,,rom or ,internet ,,ftp site4 ,for details on using dselect1 see section #c4bj on page 994 #ab4d ,compiling ,software ,many programs come in source format1 often in tar4gz form4 ,first1 you must unpack the tar4gz file2 for details on doing this1 see section #aj4c4a on page 994 ,before you can compile the package1 you'll need to have gcc1 libc#f-;dev1 and other relevant 8-dev0 packages installed2 most of these are listed in the devel area in dselect4 ,with the appropriate packages installed1 cd into the directory that tar created for you4 ,at this point1 you'll need to read the installation instructions4 ,most programs provide an ,,install or ,,readme file that will tell you how to proceed4 #ac4 ,advanced ,topics ,by now1 you should have a strong base for which to build your ,,gnu_/,linux skills on4 ,in this chapter we cover some very useful information regarding some advanced ,,gnu_/,linux features4 #ac4a ,regular ,expressions ,a regular expression is a description of a set of characters4 ,this description can be used to search through a file by looking for text that matches the regular expression4 ,regular expressions are analogous to shell wildcards 7see section #f4f on page 9971 but they are both more complicated and more powerful4 ,a regular expression is made up of text and metacharacters4 ,a metacharacter is just a character with a special meaning4 ,metacharacters include the following3 4 99 - 4 ,if a regular expression contains only text 7no metacharacters71 it matches that text4 ,for example1 the regular expression 8my regular expression0 matches the text 8my regular expression10 and nothing else4 ,regular expressions are usually case sensitive4 ,you can use the egrep command to display all lines in a file that contain a regular expression4 ,its syntax is as follows3 egrep 'regexp' filename#a 444 ,the single quotation marks are not always needed1 but they never hurt4 ,for example1 to find all lines in the ,,gpl that contain the word ,,gnu1 you type egrep ',,gnu' _/usr_/doc_/copyright_/,,gpl egrep will print the lines to standard output4 ,if you want all lines that contain freedom followed by some indeterminate text1 followed by ,,gnu1 you can do this3 egrep 'freedom499,,gnu' _/usr_/doc_/copyright_/,,gpl ,the 4 means 8any character10 and the 99 means 8zero or more of the preceding thing10 in this case 8zero or more of any character40 ,so 499 matches pretty much any text at all4 egrep only matches on a line-by-line basis1 so freedom and ,,gnu have to be on the same line4 ,here's a summary of regular expression metacharacters3 4 ,matches any single character except newline4 99 ,matches zero or more occurrences of the preceding thing4 ,so the expression a99 matches zero or more lowercase a1 and 499 matches zero or more characters4 characters ,the brackets must contain one or more characters2 the whole bracketed expression matches exactly one character out of the set4 ,so abcmatches one a1 one b1 or one c2 it does not match zero characters1 and it does not match a character other than these three4 ,anchors your search at the beginning of the line4 ,the expression ,the matches ,the when it appears at the beginning of a line2 there can't be spaces or other text before ,the4 ,if you want to allow spaces1 you can permit #j or more space characters like this3 99,the4 ,anchors at the end of the line4 end requires the text end to be at the end of the line1 with no intervening spaces or text4 characters ,this reverses the sense of a bracketed character list4 ,so abc matches any single character1 except a1 b1 or c4 character-character ,you can include ranges in a bracketed character list4 ,to match any lowercase letter1 use a-z4 ,you can have more than one range2 so to match the first three or last three letters of the alphabet1 try a-cx-z4 ,to get any letter1 any case1 try a-z,a-,z4 ,you can mix ranges with single characters and with the metacharacter2 for example1 a-z,b,zmeans 8anything except a lowercase letter1 capital ,b1 or capital ,z40 77 ,you can use parentheses to group parts of the regular expression1 just as you do in a mathematical expression4 means 8or40 ,you can use it to provide a series of alternative expressions4 ,usually you want to put the alternatives in parentheses1 like this3 c7adabat7matches cad or cab or cat4 ,without the parentheses1 it would match cad or ab or at instead ,escapes any special characters2 if you want to find a literal 991 you type 994 ,the slash means to ignore 99's usual special meaning4 ,here are some more examples to help you get a feel for things3 c4pe matches cope1 cape1 caper4 c 4pe matches c4pe1 c4per4 sto99p matches stp1 stop1 stoop4 car499n matches carton1 cartoon1 carmen4 xyz499 matches xyz and anything after it2 some tools1 like egrep1 only match until the end of the line4 ,the matches ,the at the beginning of a line4 atime matches atime at the end of a line4 ,only matches a line that consists solely of the word ,only--no spaces1 no other characters1 nothing4 ,only ,only is allowed4 baourn matches barn1 born1 burn4 ,ver,d-,f matches ,ver,d1 ,ver,e1 ,ver,f4 ,ver#j-i matches ,ver followed by any non-digit4 theirre matches their1 therr1 there1 theie4 ,a-,za-z,a-,za-z99 matches any word which consists of only letters1 and at least one letter4 ,it will not match numbers or spaces4 #ac4b ,advanced ,files ,now that you have a basic understanding of files1 it is time to learn more advanced things about them4 #ac4b4a ,the ,real ,nature of ,files3 ,hard ,links and ,inodes ,each file on your system is represented by an inode 7for ,information ,node2 pronounced 8eye-node074 ,an inode contains all the information about the file4 ,however1 the inode is not directly visible4 ,instead1 each inode is linked into the filesystem by one or more hard links4 ,hard links contain the name of the file and the inode number4 ,the inode contains the file itself1 i4e41 the location of the information being stored on disk1 its access permissions1 the file type1 and so on4 ,the system can find any inode if it has the inode number4 ,a single file can have more than one hard link4 ,what this means is that multiple filenames refer to the same file 7that is1 they are associated with the same inode number74 ,however1 you can't make hard links across filesystems3 ,all hard references to a particular file 7inode7 must be on the same filesystem4 ,this is because each filesystem has its own set of inodes1 and there can be duplicate inode numbers on different filesystems4 ,because all hard links to a given inode refer to the same file1 you can make changes to the file1 referring to it by one name1 and then see those changes when referring to it by a different name4 ,try this3 cd2 echo hello firstlink cd to your home directory and create a file called firstlink containing the word 8hello40 ,what you've actually done is redirect the output of echo 7echo just echoes back what you give to it71 placing the output in firstlink4 ,see the chapter on shells for a full explanation4 cat firstlink ,confirms the contents of firstlink4 ln firstlink secondlink ,creates a hard link3 secondlink now points to the same inode as firstlink4 cat secondlink ,confirms that secondlink is the same as firstlink4 ls -l ,notice that the number of hard links listed for firstlink and secondlinkfiles6inodes is #b4 echo change secondlink ,this is another shell redirection trick 7don't worry about the details74 ,you've appended the word 8change0 to secondlink4 ,confirm this with cat secondlink4 cat firstlink firstlink also has the word 8change0 appended6 ,that's because firstlink and secondlink refer to the same file4 ,it doesn't matter what you call it when you change it4 chmod arwx firstlink ,changes permissions on firstlink4 ,enter the command ls -l to confirm that permissions on secondlink were also changed4 ,this means that permissions information is stored in the inode1 not in links4 rm firstlink ,deletes this link4 ,this is a subtlety of rm4 ,it really removes links1 not files4 ,now type ls -l and notice that secondlink is still there4 ,also notice that the number of hard links for secondlink has been reduced to one4 rm secondlink ,deletes the other link4 ,when there are no more links to a file1 ,linux deletes the file itself1 that is1 its inode4 ,all files work like this--even special types of files such as devices 7e4g4 _/dev_/hda74 ,a directory is simply a list of filenames and inode numbers1 that is1 a list of hard links4 ,when you create a hard link1 you're just adding a name-number pair to a directory4 ,when you delete a file1 you're just removing a hard link from a directory4 #ac4b4b ,types of ,files ,one detail we've been concealing up to now is that the ,linux kernel considers nearly everything to be a file4 ,that includes directories and devices3 ,they're just special kinds of files4 ,as you may remember1 the first character of an ls -l display represents the type of the file4 ,for an ordinary file1 this will be simply -4 ,other possibilities include the following3 ddirectory lsymbolic link bblock device ccharacter device pnamed pipe ssocket ,symbolic ,links ,symbolic links 7also called 8symlinks0 or 8soft links07 are the other kind of link besides hard links4 ,a symlink is a special file that 8points to0 a hard link on any mounted filesystem4 ,when you try to read the contents of a symlink1 it gives the contents of the file it's pointing to rather than the contents of the symlink itself4 ,because directories1 devices1 and other symlinks are types of files1 you can point a symlink at any of those things4 ,so a hard link is a filename and an inode number4 ,a file is really an inode3 a location on disk1 file type1 permissions mode1 etc4 ,a symlink is an inode that contains the name of a hard link4 ,a symlink pairs one filename with a second filename1 whereas a hard link pairs a filename with an inode number4 ,all hard links to the same file have equal status4 ,that is1 one is as good as another2 if you perform any operation on one1 it's just the same as performing that operation on any of the others4 ,this is because the hard links all refer to the same inode4 ,operations on symlinks1 on the other hand1 sometimes affect the symlink's own inode 7the one containing the name of a hard link7 and sometimes affect the hard link being pointed to4 ,there are a number of important differences between symlinks and hard links4 ,symlinks can cross filesystems4 ,this is because they contain complete filenames1 starting with the root directory1 and all complete filenames are unique4 ,because hard links point to inode numbers1 and inode numbers are unique only within a single filesystem1 they would be ambiguous if the filesystem wasn't known4 ,you can make symlinks to directories1 but you can't make hard links to them4 ,each directory has hard links--its listing in its parent directory1 its 4 entry1 and the 44 entry in each of its subdirectories--but to impose order on the filesystem1 no other hard links to directories are allowed4 ,consequently1 the number of files in a directory is equal to the number of hard links to that directory minus two 7you subtract the directory's name and the 4 link74 comparing6hard links and symlinks ,you can only make a hard link to a file that exists1 because there must be an inode number to refer to4 ,however1 you can make a symlink to any filename1 whether or not there actually is such a filename4 ,removing a symlink removes only the link4 ,it has no effect on the linked-to file4 ,removing the only hard link to a file removes the file4 ,try this3 cd2 ln -s _/tmp_/me ,my,tmp cd to your home directory4 ln with the -s option makes a symbolic link - in this case1 one called ,my,tmp that points to the filename _/tmp_/me4 ls -l ,my,tmp ,output should look like this3 lrwxrwxrwx #a havoc havoc #g ,dec #f #ab3ej ,my,tmp - _/tmp_/me ,the date and user_/group names will be different for you1 of course4 ,notice that the file type is l1 indicating that this is a symbolic link4 ,also notice the permissions3 ,symbolic links always have these permissions4 ,if you attempt to chmod a symlink1 you'll actually change the permissions on the file being pointed to4 chmod #gjj ,my,tmp ,you will get a ,no such file or directory error1 because the file _/tmp_/me doesn't exist4 ,notice that you could create a symlink to it anyway4 mkdir _/tmp_/me ,creates the directory _/tmp_/me4 chmod #gjj ,my,tmp ,should work now4 touch ,my,tmp_/myfile ,creates a file in ,my,tmp4 ls _/tmp_/me ,the file is actually created in _/tmp_/me4 rm ,my,tmp ,removes the symbolic link4 ,notice that this removes the link1 not what it points to4 ,thus you use rm not rmdir4 rm _/tmp_/me_/myfile2 rmdir _/tmp_/me ,lets you clean up after yourself4 symlinks6removing ,device ,files ,device files refer to physical or virtual devices on your system1 such as your hard disk1 video card1 screen1 and keyboard4 ,an example of a virtual device is the console1 represented by _/dev_/console4 ,there are two kinds of devices3character and block4 ,character devices can be accessed one character at a time4 ,remember the smallest unit of data that can be written to or read from the device is a character 7byte74 ,block devices must be accessed in larger units called blocks1 which contain a number of characters4 ,your hard disk is a block device4 ,you can read and write device files just as you can from other kinds of files1 though the file may well contain some strange incomprehensible-to-humans gibberish4 ,writing random data to these files is probably a bad idea4 ,sometimes it's useful1 though4 ,for example1 you can dump a postscript file into the printer device _/dev_/lp#j or send modem commands to the device file for the appropriate serial port4 _/dev_/null _/ _/ _/ _/dev_/null is a special device file that discards anything you write _/to it4 ,if you don't want something1 throw it in _/dev_/null4 ,it's essentially a bottomless pit4 ,if you read _/dev_/null1 you'll get an end-of-file 7,,eof7 character immediately4 _/dev_/zero is similar1 except that you read from it you get the #j character 7not the same as the number zero74 ,named ,pipes 7,f,i,f,os7 ,a named pipe is a file that acts like a pipe4 ,you put something into the file1 and it comes out the other end4 ,thus it's called a ,,fifo1 or ,first-,in-,first-,out1 because the first thing you put in the pipe is the first thing to come out the other end4 ,if you write to a named pipe1 the process that is writing to the pipe doesn't terminate until the information being written is read from the pipe4 ,if you read from a named pipe1 the reading process waits until there's something to read before terminating4 ,the size of the pipe is always zero3 ,it doesn't store data1 it just links two processes like the shell 4 ,however1 because this pipe has a name1 the two processes don't have to be on the same command line or even be run by the same user4 ,you can try it by doing the following3 cd2 mkfifo mypipe ,makes the pipe4 echo hello mypipe ,puts a process in the background that tries to write 8hello0 to the pipe4 ,notice that the process doesn't return from the background2 it is waiting for someone to read from the pipe4 cat mypipe ,at this point1 the echo process should return1 because cat read from the pipe1 and the cat process will print hello4 rm mypipe ,you can delete pipes just like any other file4 ,sockets ,sockets are similar to pipes1 only they work over the network4 ,this is how your computer does networking4 ,you may have heard of 8,win,sock10 which is sockets for ,windows4 ,we won't go into these further because you probably won't have occasion to use them unless you're programming4 ,however1 if you see a file marked with type son your computer1 you know what it is4 #ac4b4c ,the proc ,filesystem ,the ,linux kernel makes a special filesystem available1 which is mounted under _/proc on ,debian systems4 ,this is a 8pseudo-filesystem0 because it doesn't really exist on any of your physical devices4 ,the proc filesystem contains information about the system and running processes4 ,some of the 8files0 in _/proc are reasonably understandable to humans 7try typing cat _/proc_/meminfo or cat _/proc_/cpuinfo72 others are arcane collections of numbers4 ,often1 system utilities use these to gather information and present it to you in a more understandable way4 ,people frequently panic when they notice one file in particular-- _/proc_/kcore --which is generally huge4 ,this is 7more or less7 a copy _/of the contents of your computer's memory4 ,it's used to debug the kernel4 ,it doesn't actually exist anywhere1 so don't worry about its size4 ,if you want to know about all the things in _/proc1 type man #e proc4 #ac4b4d ,large-,scale ,copying ,sometimes you may want to copy one directory to another location4 ,maybe you're adding a new hard disk and you want to copy _/usr_/local to it4 ,there are several ways you can do this4 ,the first is to use cp4 ,the command cp -a will tell cp to do a copy preserving all the information it can4 ,so1 you might use cp -a _/usr_/local _/destination ,however1 there are some things that cp -a won't catch#a4 ,so1 the best way to do a large copy job is to chain two tar commands together1 like so3 #a ,sparse files and hard links are two examples4 tar -c,spf - _/usr_/local tar -xv,spf - -,c _/destination ,the first tar command will archive the existing directory and pipe it to the second4 ,the second command will unpack the archive into the location you specify with -,c4 #ac4c ,security ,back in section #g4a on page 991 we discussed file permissions in ,linux4 ,this is a fundamental way to keep your system secure4 ,if you are running a multi-user system or a server1 it is important to make sure that permissions are correct4 ,a good rule of thumb is to set files to have the minimum permissions necessary for use4 ,if you are running a network server1 there are some other things to be aware of as well4 ,first1 you ought to uninstall or turn off any network services you're not using4 ,a good place to start is the file _/etc_/inetd4conf2 you can probably disable some of these4 ,for most _/network services1 it's also possible to control who has access to them2 the _/etc_/hosts4allow and _/etc_/hosts4deny files 7documented in man #e hostsaccess7 can control who has access to which services4 ,you also ought to keep up-to-date with patches or updates to ,debian2 these can be found on your nearest ,debian ,,ftp mirror4 ,some other commonsense rules apply3 ,never tell anyone your password4 ,never send your password in cleartext across the ,internet by using something like telnet or ,,ftp4 ,instead1 use encrypted protocols or avoid logging in remotely4 ,avoid using root as much as possible4 ,don't install untrusted software1 and don't install it as root4 ,avoid making things world-writable whenever possible4 _/tmp is one exception to this rule4 ,while this is probably not of as much use to somebody not running a server1 it is still pays to know a bit about security4 ,debian's security mechanism is what protects your system from many viruses4 #ac4d ,software ,development with ,debian ,debian makes a great platform for software development and programming4 ,among the languages and near-languages it supports are3 ,c1 ,c1 ,objective-,c1 ,perl1 ,python1 m#d1 ,ada1 ,pascal1 ,java1 awk1 ,tcl_/,tk1 ,,sql1 assembler1 ,bourne shell1 csh1 and more4 ,writing programs is beyond the scope of this book1 but here are some of the more popular development programs in ,debian3 gcc ,the ,,gnu ,c ,compiler1 a modern optimizing ,c compiler4 g ,the ,c compiler from the gcc line4 cpp ,the ,c preprocessor from gcc4 perl ,the ,perl interpreter4 ,perl is a great 8glue0 language4 gdb ,,gnu ,debugger1 used to debug programs in many different languages4 gprof ,used for profiling1 this program helps you to find ways to improve the performance of your programs4 emacs ,,gnu ,emacs is a programmers' editor and ,,ide4 as ,the ,,gnu ,assembler4 ,,ii4 ,reference ,a4 ,reading ,documentation and ,getting ,help ,a4#a ,kinds of ,documentation ,on ,debian systems1 you can find documentation in at least the following places3 man pages1 read with the man command4 info pages1 read with the info command4 ,the _/usr_/doc_/package directories1 where package is the name of the ,debian package4 ,tip3 zless is useful for reading the files in _/usr_/doc2 see section #h4a on page 99 for details4 _/usr_/doc_/,,howto_/contains the ,linux ,documentation ,project's ,,howto documents1 if you've installed the ,debian packages containing them4 ,many commands have an -h or -help option4 ,type the command name followed by one of these options to try it4 ,the ,debian ,documentation ,project#a has written some manuals4 ,the ,debian support page#b has a ,,faq and other resources4 ,you can also try the ,linux web site#c4 #a http3_/_/www4debian4org_/elphick_/ddp_/ #b http3_/_/www4debian4org_/support_/ #c http3_/_/www4linux4org ,the confusing variety of documentation sources exists for many reasons4 ,for example1 info is supposed to replace man1 but man hasn't disappeared yet4 ,however1 it's nice to know that so much documentation exists6 ,so where to look for help8 ,here are some suggestions3 ,use the man pages and the -help or -h option to get a quick summary of a command's syntax and options4 ,also use man if a program doesn't yet have an info page4 ,use info if a program has info documentation4 ,if neither of those works1 look in _/usr_/doc_/packagename4 _/usr_/doc_/packagename often has ,debian-specific information1 even if there's a man page or info page4 ,use the ,h,o,w,t,os for instructions on how to set up a particular thing or for information on your particular hardware4 ,for example1 the ,ethernet ,,howto has a wealth of information on ,ethernet cards1 and the ,,ppp ,,howto explains in detail how to set up ,,ppp4 ,use the ,debian ,documentation ,project manuals for conceptual explanations and ,debian-specific information4 ,if all else fails1 ask someone4 ,see section ,a4#a4c on page 994 ,using man pages is discussed above in section #e4a on page 994 ,it's very simple3 press the space bar to go to the next page1 and press q to quit reading4 ,using info1 viewing files in _/usr_/doc1 and asking for help from a person are all discussed in the remainder of this chapter4 ,a4#a4a ,using info info is the ,,gnu documentation viewer4 ,some programs provide documentationin info format1 and you can use info to view that documentation4 ,you can start up the viewer by simply typing info1 or by supplying a topic as well3 info emacs ,you can also bring up the information on info itself1 which includes a tutorial1 like so3 info info ,now1 you may navigate with these keys3 arrows ,move the cursor around the document m ,,ret ,select the menu item that's at the cursor u ,move 8up0 in the document n ,move to the next page p ,move to the previous page s ,search for something g ,go to a specific page q ,quit info ,you might notice that the top line of the screen indicates the next1 previous1 and 8up0 pages1 corresponding nicely to the actions for the n1 p1 and u keys4 ,a4#a4b ,h,o,w,t,os ,in addition to their books1 the ,linux ,documentation ,project has made a series of short documents describing how to set up particular aspects of ,,gnu_/,linux4 ,for instance1 the ,,scsi-,,howto describes some of the complications of using ,,scsi--a standard way of talking to devices--with ,,gnu_/,linux4 ,in general1 the ,h,o,w,t,os have more specific information about particular hardware configurations and will be more up to date than this manual4 ,there are ,debian packages for the ,h,o,w,t,os4 doc-linux-text contains the various ,h,o,w,t,os in text form2 the doc-linux-html package contains the ,h,o,w,t,os in 7surprise67 browsable ,,html format4 ,note also that ,debian has packaged translations of the ,h,o,w,t,os in various languages that you may prefer if ,english is not your native language4 ,debian has packages for the ,german1 ,french1 ,spanish1 ,italian1 ,japanese1 ,korean1 ,polish1 ,swedish and ,chinese versions of the ,h,o,w,t,os4 ,these are usually available in the package doc-linux-languagecode1 where languagecode is fr for ,french1 es for ,spanish1 etc4 ,if you've installed one of these1 you should have them in _/usr_/doc_/,,howto4 ,however1 you may be able to find more recent _/versions on the ,net at the ,,ldp homepage#d4 #d http3_/_/www4metalab4unc4edu_/,,ldp_/ ,a4#a4c ,personal ,help ,the correct place to ask for help with ,debian is the debian-user mailing list at debian-userlists4debian4org4 ,if you know how to use ,,irc 7,internet ,relay ,chat71 you can use the debian channel on irc4debian4org4 ,you can find general ,,gnu_/,linux help on the comp4os4linux499 ,,usenet hierarchy4 ,it is also possible to hire paid consultants to provide guaranteed support services4 ,the ,debian website#e has more information on many of these resources4 #e http3_/_/www4debian4org_/ ,again1 please do not ask the authors of this book for help4 ,we probably don't know the answer to your specific problem anyway2 if you mail debian-user1 you will get higher-quality responses1 and more quickly4 ,always be polite and make an effort to help yourself by reading the documentation4 ,remember1 ,debian is a volunteer effort and people are doing you a favor by giving their time to help you4 ,many of them charge hundreds of dollars for the same services during the day4 ,tips for asking questions ,read the obvious documentation first4 ,things like command options and what a command does will be covered there4 ,this includes manpages and info documentation4 ,check the ,,howto documents if your question is about setting up something such as ,,ppp or ,ethernet4 ,try to be sure the answer isn't in this book4 ,don't be afraid to ask1 after you've made a basic effort to look it up4 ,don't be afraid to ask for conceptual explanations1 advice1 and other things not often found in the documentation4 ,include any information that seems relevant4 ,you'll almost always want to mention the version of ,debian you're using4 ,you may also want to mention the version of any pertinent packages3 ,the command dpkg -l packagename will tell you this4 ,it's also useful to say what you've tried so far and what happened4 ,please include the exact error messages1 if any4 ,don't apologize for being new to ,linux4 ,there's no reason everyone should be a ,,gnu_/,linux expert to use it1 any more than everyone should be a mechanic to use a car4 ,don't post or mail in ,,html4 ,some versions of ,netscape and ,internet ,explorer will post in ,,html rather than plain text4 ,most people will not even read these posts because the posts are difficult to read in most mail programs4 ,there should be a setting somewhere in the preferences to disable ,,html4 ,be polite4 ,remember that ,debian is an all-volunteer effort1 and anyone who helps you is doing so on his or her time out of kindness4 ,re-mail your question to the list if you've gotten no responses after several days4 ,perhaps there were lots of messages and it was overlooked4 ,or perhaps no one knows the answer--if no one answers the second time1 this is a good bet4 ,you might want to try including more information the second time4 ,answer questions yourself when you know the answer4 ,debian depends on everyone doing his or her part4 ,if you ask a question1 and later on someone else asks the same question1 you'll know how to answer it4 ,do so6 ,a4#a4d ,getting ,information from the ,system ,when diagnosing problems or asking for help1 you'll need to get information about your system4 ,here are some ways to do so3 ,examine the files in _/var_/log_/4 ,examine the output of the dmesg command4 ,run uname -a4 ,b4 ,troubleshooting ,in ,debian1 as in life1 things don't always work as you might expect or want them to4 ,while ,debian has a well-deserved reputation for being rock-solid and stable1 sometimes its reaction to your commands may be unexpected4 ,here1 we try to shed some light on the most common problems that people encounter4 ,b4#a ,common ,difficulties ,this section provides some tips for handling some of the most frequently experienced difficulties users have encountered4 ,b4#a4a ,working with ,strangely-,named ,files ,occasionally1 you may find that you have accidentally created a file that contains a character not normally found in a filename4 ,examples of this could include a space1 a leading hyphen1 or maybe a quotation mark4 ,you may find that accessing1 removing1 or renaming these files can be difficult4 ,here are some tips to help you3 ,try enclosing the filename in single quotation marks1 like this3 less ',file ,with ,spaces4txt' ,insert a 4_/ before the filename3 less '4_/-a strange file4txt' ,use wildcards3 less ,file8,with8,spaces4txt ,use a backslash before each unusual character3 less ,file ,with ,spaces4txt ,b4#a4b ,printing ,one common source of trouble is the printing system in ,debian4 ,traditionally1 printing has been a powerful but complex aspect of ,unix4 ,however1 ,debian makes it easier4 ,an easy way to print is with the package called magicfilter4 magicfilter will ask you a few questions about your printer and then configure it for you4 ,if you are having troubles printing1 give magicfilter a try4 ,b4#a4c ,x ,problems ,many questions revolve around ,x4 ,here are some general tips for things to try if you are having difficulties setting up the ,x ,window system3 ,for mouse problems1 run ,,xf#hf,setup and try the ,,ps_/#b1 ,microsoft1 ,mouse,systems1 and ,logitech options4 ,most mice will fit under one of these4 ,also1 the device for your mouse is _/dev_/psaux for ,,ps_/#b mice and a serial port such as _/dev_/tty,s#j for serial mice4 ,if you don't know what video chipset you have1 try running ,super,probe2 it can often figure this out for you4 ,if your screen doesn't have a lot of color1 try selecting a different video card or tell ,x how much video ,,ram you have4 ,if your screen goes blank or has unreadable text when you start ,x1 you probably selected an incorrect refresh rate4 ,go back to ,,xf#hf,setup or xf#hf;config and double-check those settings4 xvidtune can help if the image on the screen is shifted too far to the left or right1 is too high or low1 or is too narrow or wide4 xdpyinfo can give information about a running ,x session4 ,,xf#hf,setup can set your default color depth4 ,you can select your default window manager by editing _/etc_/,x#aa_/window-managers4 _/ _/var_/log_/xdm-errors can contain useful information if you are having trouble getting xdm to start properly4 ,as a final reminder1 try the ,,xf#hf,setup or xf#hf;config tools for configuring or reconfiguring ,x for your hardware4 ,b4#b ,troubleshooting the ,boot ,process ,if you have problems during the boot process1 such as the kernel hangs during the boot process1 the kernel doesn't recognize peripherals you actually have1 or drives are not recognized properly1 the first things to check are the boot parameters4 ,they can be found by pressing ,f#a when booting from the rescue disk4 ,often1 problems can be solved by removing add-ons and peripherals and then booting again4 ,internal modems1 sound cards1 and ,plug-n-,play devices are especially problematic4 ,tecras and other notebooks1 and some non-portables fail to flush the cache when switching on the ,a#bj gate1 which is provoked by bz,image kernels but not by z,image kernels4 ,if your computer suffers from this problem1 you'll see a message during boot saying ,a#bj gating failed4 ,in this case1 you'll have to use the #8tecra' boot images4 ,if you still have problems1 please submit a bug report4 ,send an email to submitbugs4debian4org4 ,you must include the following as the first lines of the email3 ,package3 boot-floppies ,version3 version ,make sure you fill in version with the version of the boot-floppies set that you used4 ,if you don't know the version1 use the date you downloaded the floppies1 and include the distribution you got them from 7e4g41 8stable0 or 8frozen074 ,you should also include the following information in your bug report3 architecture i#chf model your general hardware vendor and model memory amount of ,,ram scsi ,,scsi host adapter1 if any cd-rom ,,cd-,,rom model and interface type1 i4e41 ,,atapi network card network interface card1 if any pcmcia details of any ,,pcmcia devices ,depending on the nature of the bug1 it also might be useful to report the disk model1 the disk capacity1 and the model of video card4 ,in the bug report1 describe what the problem is1 including the last visible kernel messages in the event of a kernel hang4 ,describe the steps you performed that put the system into the problem state4 ,c4 ,booting the ,system ,this appendix describes what happens during the ,,gnu_/,linux boot process4 ,how you boot your system depends on how you set things up when you installed ,debian4 ,most likely1 you just turn the computer on4 ,but you may have to insert a floppy disk first4 ,linux is loaded by a program called ,,lilo1 or ,l,inux ,l,oader4 ,,lilo can also load other operating systems and ask you which system you'd like to load4 ,the first thing that happens when you turn on an ,intel ,,pc is that the ,,bios executes4 ,,bios stands for ,basic ,input ,output ,system4 ,it's a program permanently stored in the computer on read-only chips4 ,it performs some minimal tests and then looks for a floppy disk in the first disk drive4 ,if it finds one1 it looks for a 8boot sector0 on that disk and starts executing code from it1 if there is any4 ,if there is a disk but no boot sector1 the ,,bios will print a message like this3 ,non-system disk or disk error4 ,removing the disk and pressing a key will cause the boot process to resume4 ,if there isn't a floppy disk in the drive1 the ,,bios looks for a master boot record 7,,mbr7 on the hard disk4 ,it will start executing the code found there1 which loads the operating system4 ,on ,,gnu_/,linux systems1 ,,lilo can occupy the ,,mbr and will load ,,gnu_/,linux4 ,thus1 if you opted to install ,,lilo on your hard drive1 you should see the word ,,lilo as your computer starts up4 ,at that point1 you can press the left ,shift key to select which operating system to load or press ,tab to see a list of options4 ,type in one of those options and press ,enter4 ,,lilo will boot the requested operating system4 ,if you don't press the ,shift key1 ,,lilo will automatically load the default operating system after about #e seconds4 ,if you like1 you can change what system ,,lilo loads automatically1 which systems it knows how to load1 and how long it waits before loading one automatically4 ,if you didn't install ,,lilo on your hard drive1 you probably created a boot disk4 ,the boot disk will have ,,lilo on it4 ,all you have to do is insert the disk before you turn on your computer1 and the ,,bios will find it before it checks the ,,mbr on the hard drive4 ,to return to a non-,linux ,,os1 take out the boot disk and restart the computer4 ,from ,linux1 be sure you follow the proper procedure for restarting2 see section #d4e on page 99 for details4 ,,lilo loads the ,linux kernel from disk and then lets the kernel take over4 7,the kernel is the central program of the operating system1 which is in control of all other programs47 ,the kernel discards the ,,bios and ,,lilo4 ,on non-,intel platforms1 things work a little differently4 ,but once you boot1 everything is more or less the same4 ,linux looks at the type of hardware it's running on4 ,it wants to know what type of hard disks you have1 whether or not you have a bus mouse1 whether or not you're on a network1 and other bits of trivia like that4 ,linux can't remember things between boots1 so it has to ask these questions each time it starts up4 ,luckily1 it isn't asking you these questions--it's asking the hardware6 ,while it boots1 the ,linux kernel will print messages on the screen describing what it's doing4 ,the query process can cause problems with your system1 but if it was going to1 it probably would have when you first installed ,,gnu_/,linux4 ,if you're having problems1 consult the installation instructions or ask questions on a mailing list4 ,the kernel merely manages other programs1 so once it is satisfied everything is okay1 it must start another program to do anything useful4 ,the program the kernel starts is called init4 ,after the kernel starts init1 it never starts another program4 ,the kernel becomes a manager and a provider of services4 ,once init is started1 it runs a number of scripts 7files containing commands71 which prepare the system to be used4 ,they do some routine maintenance and start up a lot of programs that do things like display a login prompt1 listen for network connections1 and keep a log of the computer's activities4 ,d4 ,the ,,gnu ,general ,public ,license ,,gnu ,,general ,,public ,,license ,version #b1 ,june #aiia ,copyright 7,c7 #aihi1 #aiia ,free ,software ,foundation1 ,inc4 #ei ,temple ,place1 ,suite #ccj1 ,boston1 ,,ma #jbaaa-acjg ,,usa ,everyone is permitted to copy and distribute verbatim copies of this license document1 but changing it is not allowed4 ,preamble ,the licenses for most software are designed to take away your freedom to share and change it4 ,by contrast1 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 users4 ,this ,general ,public ,license applies to most of the ,free ,software ,foundation's software and to any other program whose authors commit to using it4 7,some other ,free ,software ,foundation software is covered by the ,,gnu ,library ,general ,public ,license instead47 ,you can apply it to your programs1 too4 ,when we speak of free software1 we are referring to freedom1 not price4 ,our ,general ,public ,licenses are designed to make sure that you have the freedom to distribute copies of free software 7and charge for this service if you wish71 that you receive source code or can get it if you want it1 that you can change the software or use pieces of it in new free programs2 and that you know you can do these things4 ,to protect your rights1 we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights4 ,these restrictions translate to certain responsibilities for you if you distribute copies of the software1 or if you modify it4 ,for example1 if you distribute copies of such a program1 whether gratis or for a fee1 you must give the recipients all the rights that you have4 ,you must make sure that they1 too1 receive or can get the source code4 ,and you must show them these terms so they know their rights4 ,we protect your rights with two steps3 7#a7 copyright the software1 and 7#b7 offer you this license which gives you legal permission to copy1 distribute and_/or modify the software4 ,also1 for each author's protection and ours1 we want to make certain that everyone understands that there is no warranty for this free software4 ,if the software is modified by someone else and passed on1 we want its recipients to know that what they have is not the original1 so that any problems introduced by others will not reflect on the original authors' reputations4 ,finally1 any free program is threatened constantly by software patents4 ,we wish to avoid the danger that redistributors of a free program will individually obtain patent licenses1 in effect making the program proprietary4 ,to prevent this1 we have made it clear that any patent must be licensed for everyone's free use or not licensed at all4 ,the precise terms and conditions for copying1 distribution and modification follow4 ,,gnu ,,general ,,public ,,license ,,terms ,,and ,,conditions ,,for ,,copying1 ,,distribution ,,and ,,modification #j4 ,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 ,license4 ,the ,program1 below1 refers to any such program or work1 and a work based on the ,program means either the ,program or any derivative work under copyright law3 that is to say1 a work containing the ,program or a portion of it1 either verbatim or with modifications and_/or translated into another language4 7,hereinafter1 translation is included without limitation in the term modification47 ,each licensee is addressed as you4 ,activities other than copying1 distribution and modification are not covered by this ,license2 they are outside its scope4 ,the act of running the ,program is not restricted1 and the output from the ,program is covered only if its contents constitute a work based on the ,program 7independent of having been made by running the ,program74 ,whether that is true depends on what the ,program does4 #a4 ,you may copy and distribute verbatim copies of the ,program's source code as you receive it1 in any medium1 provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty2 keep intact all the notices that refer to this ,license and to the absence of any warranty2 and give any other recipients of the ,program a copy of this ,license along with the ,program4 ,you may charge a fee for the physical act of transferring a copy1 and you may at your option offer warranty protection in exchange for a fee4 #b4 ,you may modify your copy or copies of the ,program or any portion of it1 thus forming a work based on the ,program1 and copy and distribute such modifications or work under the terms of ,section #a above1 provided that you also meet all of these conditions3 a7 ,you must cause the modified files to carry prominent notices stating that you changed the files and the date of any change4 b7 ,you must cause any work that you distribute or publish1 that in whole or in part contains or is derived from the ,program or any part thereof1 to be licensed as a whole at no charge to all third parties under the terms of this ,license4 c7 ,if the modified program normally reads commands interactively when run1 you must cause it1 when started running for such interactive use in the most ordinary way1 to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty 7or else1 saying that you provide a warranty7 and that users may redistribute the program under these conditions1 and telling the user how to view a copy of this ,license4 7,exception3 if the ,program itself is interactive but does not normally print such an announcement1 your work based on the ,program is not required to print an announcement47 ,these requirements apply to the modified work as a whole4 ,if identifiable sections of that work are not derived from the ,program1 and can be reasonably considered independent and separate works in themselves1 then this ,license1 and its terms1 do not apply to those sections when you distribute them as separate works4 ,but when you distribute the same sections as part of a whole which is a work based on the ,program1 the distribution of the whole must be on the terms of this ,license1 whose permissions for other licensees extend to the entire whole1 and thus to each and every part regardless of who wrote it4 ,thus1 it is not the intent of this section to claim rights or contest your rights to work written entirely by you2 rather1 the intent is to exercise the right to control the distribution of derivative or collective works based on the ,program4 ,in addition1 mere aggregation of another work not based on the ,program with the ,program 7or with a work based on the ,program7 on a volume of a storage or distribution medium does not bring the other work under the scope of this ,license4 #c4 ,you may copy and distribute the ,program 7or a work based on it1 under ,section #b7 in object code or executable form under the terms of ,sections #a and #b above provided that you also do one of the following3 a7 ,accompany it with the complete corresponding machine-readable source code1 which must be distributed under the terms of ,sections #a and #b above on a medium customarily used for software interchange2 or1 b7 ,accompany it with a written offer1 valid for at least three years1 to give any third party1 for a charge no more than your cost of physically performing source distribution1 a complete machine-readable copy of the corresponding source code1 to be distributed under the terms of ,sections #a and #b above on a medium customarily used for software interchange2 or1 c7 ,accompany it with the information you received as to the offer to distribute corresponding source code4 7,this alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer1 in accord with ,subsection b above47 ,the source code for a work means the preferred form of the work for making modifications to it4 ,for an executable work1 complete source code means all the source code for all modules it contains1 plus any associated interface definition files1 plus the scripts used to control compilation and installation of the executable4 ,however1 as a special exception1 the source code distributed need not include anything that is normally distributed 7in either source or binary form7 with the major components 7compiler1 kernel1 and so on7 of the operating system on which the executable runs1 unless that component itself accompanies the executable4 ,if distribution of executable or object code is made by offering access to copy from a designated place1 then offering equivalent access to copy the source code from the same place counts as distribution of the source code1 even though third parties are not compelled to copy the source along with the object code4 #d4 ,you may not copy1 modify1 sublicense1 or distribute the ,program except as expressly provided under this ,license4 ,any attempt otherwise to copy1 modify1 sublicense or distribute the ,program is void1 and will automatically terminate your rights under this ,license4 ,however1 parties who have received copies1 or rights1 from you under this ,license will not have their licenses terminated so long as such parties remain in full compliance4 #e4 ,you are not required to accept this ,license1 since you have not signed it4 ,however1 nothing else grants you permission to modify or distribute the ,program or its derivative works4 ,these actions are prohibited by law if you do not accept this ,license4 ,therefore1 by modifying or distributing the ,program 7or any work based on the ,program71 you indicate your acceptance of this ,license to do so1 and all its terms and conditions for copying1 distributing or modifying the ,program or works based on it4 #f4 ,each time you redistribute the ,program 7or any work based on the ,program71 the recipient automatically receives a license from the original licensor to copy1 distribute or modify the ,program subject to these terms and conditions4 ,you may not impose any further restrictions on the recipients' exercise of the rights granted herein4 ,you are not responsible for enforcing compliance by third parties to this ,license4 #g4 ,if1 as a consequence of a court judgment or allegation of patent infringement or for any other reason 7not limited to patent issues71 conditions are imposed on you 7whether by court order1 agreement or otherwise7 that contradict the conditions of this ,license1 they do not excuse you from the conditions of this ,license4 ,if you cannot distribute so as to satisfy simultaneously your obligations under this ,license and any other pertinent obligations1 then as a consequence you may not distribute the ,program at all4 ,for example1 if a patent license would not permit royalty-free redistribution of the ,program by all those who receive copies directly or indirectly through you1 then the only way you could satisfy both it and this ,license would be to refrain entirely from distribution of the ,program4 ,if any portion of this section is held invalid or unenforceable under any particular circumstance1 the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances4 ,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 claims2 this section has the sole purpose of protecting the integrity of the free software distribution system1 which is implemented by public license practices4 ,many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system2 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 choice4 ,this section is intended to make thoroughly clear what is believed to be a consequence of the rest of this ,license4 #h4 ,if the distribution and_/or use of the ,program is restricted in certain countries either by patents or by copyrighted interfaces1 the original copyright holder who places the ,program under this ,license may add an explicit geographical distribution limitation excluding those countries1 so that distribution is permitted only in or among countries not thus excluded4 ,in such case1 this ,license incorporates the limitation as if written in the body of this ,license4 #i4 ,the ,free ,software ,foundation may publish revised and_/or new versions of the ,general ,public ,license from time to time4 ,such new versions will be similar in spirit to the present version1 but may differ in detail to address new problems or concerns4 ,each version is given a distinguishing version number4 ,if the ,program specifies a version number of this ,license which applies to it and any later version1 you have the option of following the terms and conditions either of that version or of any later version published by the ,free ,software ,foundation4 ,if the ,program does not specify a version number of this ,license1 you may choose any version ever published by the ,free ,software ,foundation4 #aj4 ,if you wish to incorporate parts of the ,program into other free programs whose distribution conditions are different1 write to the author to ask for permission4 ,for software which is copyrighted by the ,free ,software ,foundation1 write to the ,free ,software ,foundation2 we sometimes make exceptions for this4 ,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 generally4 ,,no ,,warranty #aa4 ,,because ,,the ,,program ,,is ,,licensed ,,free ,,of ,,charge1 ,,there ,,is ,,no ,,warranty ,,for ,,the ,,program1 ,,to ,,the ,,extent ,,permitted ,,by ,,applicable ,,law4 ,,except ,,when ,,otherwise ,,stated ,,in ,,writing ,,the ,,copyright ,,holders ,,and_/,,or ,,other ,,parties ,,provide ,,the ,,program ,,as ,,is ,,without ,,warranty ,,of ,,any ,,kind1 ,,either ,,expressed ,,or ,,implied1 ,,including1 ,,but ,,not ,,limited ,,to1 ,,the ,,implied ,,warranties ,,of ,,merchantability ,,and ,,fitness ,,for ,a ,,particular ,,purpose4 ,,the ,,entire ,,risk ,,as ,,to ,,the ,,quality ,,and ,,performance ,,of ,,the ,,program ,,is ,,with ,,you4 ,,should ,,the ,,program ,,prove ,,defective1 ,,you ,,assume ,,the ,,cost ,,of ,,all ,,necessary ,,servicing1 ,,repair ,,or ,,correction4 #ab4 ,,in ,,no ,,event ,,unless ,,required ,,by ,,applicable ,,law ,,or ,,agreed ,,to ,,in ,,writing ,,will ,,any ,,copyright ,,holder1 ,,or ,,any ,,other ,,party ,,who ,,may ,,modify ,,and_/ ,,or ,,redistribute ,,the ,,program ,,as ,,permitted ,,above1 ,,be ,,liable ,,to ,,you ,,for ,,damages1 ,,including ,,any ,,general1 ,,special1 ,,incidental ,,or ,,consequential ,,damages ,,arising ,,out ,,of ,,the ,,use ,,or ,,inability ,,to ,,use ,,the ,,program 7,,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 ,,programs71 ,,even ,,if ,,such ,,holder ,,or ,,other ,,party ,,has ,,been ,,advised ,,of ,,the ,,possibility ,,of ,,such ,,damages4 ,,end ,,of ,,terms ,,and ,,conditions ,how to ,apply ,these ,terms to ,your ,new ,programs ,if you develop a new program1 and you want it to be of the greatest possible use to the public1 the best way to achieve this is to make it free software which everyone can redistribute and change under these terms4 ,to do so1 attach the following notices to the program4 ,it is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty2 and each file should have at least the copyright line and a pointer to where the full notice is found4 one line to give the program's name and a brief idea of what it does4 ,copyright 7,c7 #aiyy name of author ,this program is free software2 you can redistribute it and_/or modify it under the terms of the ,,gnu ,general ,public ,license as published by the ,free ,software ,foundation2 either version #b of the ,license1 or 7at your option7 any later version4 ,this program is distributed in the hope that it will be useful1 but ,,without ,,any ,,warranty2 without even the implied warranty of ,,merchantability or ,,fitness ,,for ,a ,,particular ,,purpose4 ,see the ,,gnu ,general ,public ,license for more details4 ,you should have received a copy of the ,,gnu ,general ,public ,license along with this program2 if not1 write to the ,free ,software ,foundation1 ,inc41 #ei ,temple ,place1 ,suite #ccj1 ,boston1 ,,ma #jbaaa-acjg ,,usa ,also add information on how to contact you by electronic and paper mail4 ,if the program is interactive1 make it output a short notice like this when it starts in an interactive mode3 ,gnomovision version #fi1 ,copyright 7,c7 #aiyy name of author ,gnomovision comes with ,,absolutely ,,no ,,warranty2 for details type #8show w'4 ,this is free software1 and you are welcome to redistribute it under certain conditions2 type #8show c' for details4 ,the hypothetical commands #8show w' and #8show c' should show the appropriate parts of the ,general ,public ,license4 ,of course1 the commands you use may be called something other than #8show w' and #8show c'2 they could even be mouse-clicks or menu items-whatever suits your program4 ,you should also get your employer 7if you work as a programmer7 or your school1 if any1 to sign a copyright disclaimer for the program1 if necessary4 ,here is a sample2 alter the names3 ,yoyodyne1 ,inc41 hereby disclaims all copyright interest in the program #8,gnomovision' 7which makes passes at compilers7 written by ,james ,hacker4 signature of ,ty ,coon1 #a ,april #aihi ,ty ,coon1 ,president of ,vice ,this ,general ,public ,license does not permit incorporating your program into proprietary programs4 ,if your program is a subroutine library1 you may consider it more useful to permit linking proprietary applications with the library4 ,if this is what you want to do1 use the ,,gnu ,library ,general ,public ,license instead of this ,license4 ,index 7dollar sign7 regular expression ,regular ,expressions 77 7parentheses7 regular expression ,regular ,expressions 7caret7 regular expression ,regular ,expressions 99 7regular expression7 ,regular ,expressions 99 7wildcard7 ,filename ,expansion 4 7regular expression7 ,regular ,expressions _/ 7slash7 root directory ,files and ,directories ,files and ,directories _/bin directory ,files ,present and ,their _/etc 7directory7 system-wide configuration ,system-,wide ,versus ,user-,specific ,configuration ,system-,wide ,versus ,user-,specific ,configuration _/etc directory ,files ,present and ,their ,files ,present and ,their ,files ,present and ,their _/etc_/,x#aa_/,xsession modifying ,customizing ,your ,x ,startup _/root directory ,files ,present and ,their _/sbin directory ,files ,present and ,their _/user directory ,files ,present and ,their _/var directory ,files ,present and ,their _/tmp directory ,files ,present and ,their 8 wildcard ,filename ,expansion 7brackets7 regular expression ,regular ,expressions 7tilde7 ,using ,files3 ,a ,tutorial absolute filenames ,files and ,directories ,using ,files3 ,a ,tutorial abstractions ,introduction to ,x ,access screen dselect ,access accessing files ,mode filesystems ,mounting a ,filesystem ,help file 7installation7 ,select accounts ordinary user ,create an ,ordinary ,user ,create an ,ordinary ,user permissions ,permissions ,permissions example sessions ,permissions in ,practice ,permissions in ,practice ,permissions in ,practice file mode ,mode ,mode ,mode file ownership ,file ,ownership ,file ,ownership root user ,working as ,root ,working as ,root superuser ,set the ,root ,password user logging in ,first ,steps ,first ,steps plans ,managing ,your ,identity ,managing ,your ,identity ,acknowledgments no title activating swap partition ,initialize and ,activate a ,initialize and ,activate a ae no title ae 7text editor7 ,text ,editors ,using ae alias ,aliases aliases ,aliases ,alt key ,conventions ,conventions ,,apm ,shutting ,down ,,apm 7,advanced ,power ,management7 ,shutting ,down application software ,what ,is ,debian8 applications cfdisk ,partition a ,hard ,disk ,partition a ,hard ,disk configuration files ,configuration ,files dbootstrap ,step-by-,step ,installation network configuration ,configure the ,network dselect ,select and ,install ,profiles ,introduction ,introduction ,access screen ,access multi-,,cd installation ,access multi-,,nfs1 multi-mount installation ,access package states ,select ,select ,update screen ,update ,select ,select ,select ,select exiting ,how to ,read ,this file managers ,introduction to ,x ,,gnu documentation viewer ,using info ,using info gzip ,file ,compression with gzip ,file ,compression with gzip multitasking ,a ,multiuser1 ,multitasking ,operating system binaries ,files ,present and ,their tasks ,select and ,install ,profiles ,select and ,install ,profiles text editores ,text ,editors ,text ,editors text editors ae ,using ae archiving utilities ,backup ,tools arguments ,the ,command ,line and arranging hard drive ,partitioning ,your ,hard ,drive ,background ,background asking technical questions ,personal ,help ,tips for asking questions assigning job numbers to command lines ,managing ,processes with bash authentication shadow passwords ,shadow ,password ,support automatic filesystem mounting _/etc_/fstab3 ,automating the ,mount _/etc_/fstab3 ,automating the ,mount backing up disks ,last ,chance to ,back backups performing ,before ,you ,start utilities ,backup ,tools ,,gnu tar tar base system no title no title configuring ,debian ,installation ,steps ,choosing ,your ,installation ,media installation ,install the ,base ,system ,configure the ,base ,system bash ,managing ,processes with bash ,managing ,processes with bash commands aliases ,aliases environment variables setting ,environment ,variables ,environment ,variables ,info help system displaying ,managing ,processes with bash binary executables comparing to source code ,viewing ,text ,files binary files ,working with ,text ,files viewing ,viewing ,text ,files ,,bios 7,basic ,input_/,output ,system7 ,booting the ,system black-and-white display selecting ,select ,color or ,monochrome block devices ,device ,files _/dev_/null blocks ,device ,files bold face typographical conventions ,conventions boot floppies creating ,make a ,boot ,floppy boot loaders ,before ,you ,start ,,lilo ,make ,linux ,bootable ,directly boot partition ,,pc ,disk ,limitations boot process ,,lilo 7,linux ,loader7 ,booting the ,system query process ,booting the ,system troubleshooting ,troubleshooting the ,boot ,process booting ,debian ,booting ,debian from ,,cd-,,rom ,choosing ,your ,installation ,media from floppies ,booting from ,floppies operating systems multiple ,make ,linux ,bootable ,directly smoke test ,the ,moment of ,truth ,bourne shell ,the ,shell bug reports submitting ,troubleshooting the ,boot ,process built-in dependencies packages ,select ,select built-in programs ,where ,commands ,reside3 ,the buttons mouse operation ,the ,mouse ,c shell ,the ,shell canceling selections 7dselect7 ,select cd ,using ,files3 ,a ,tutorial cd command ,using ,files3 ,a ,tutorial ,using ,files3 ,a ,tutorial ,,cd-,,rom booting from ,choosing ,your ,installation ,media ,,cd-,r,o,ms mounting ,example3 ,mounting a ,,cd-,,rom ,example3 ,mounting a ,,cd-,,rom unmounting ,example3 ,mounting a ,,cd-,,rom ,c,ds multi-,,cd installation ,access ,access multi-,,nfs1 multi-mount installation ,access cfdisk ,partition a ,hard ,disk ,partition a ,hard ,disk ,partition a ,hard ,disk ,change ,directory see cd character devices ,device ,files _/dev_/null characters metacharacters ,regular ,expressions clients ,x clients ,introduction to ,x network transparency ,introduction to ,x ,x windows system ,x ,clients ,x ,clients selecting ,customizing ,your ,x ,startup ,customizing ,your ,x ,startup closing programs ,how to ,read ,this color display selecting ,select ,color or ,monochrome ,comand ,line ,history no title command history ,command ,history and ,editing command line ,command ,history and ,editing ,command ,history and ,editing no title ,describing the ,command ,line ,describing the ,command ,line structure ,the ,command ,line and command lines job numbers assigning ,managing ,processes with bash command-line shell ,the ,shell ,the ,shell commands aliases ,aliases arguments ,the ,command ,line and ,bash wildcards ,tab ,completion cd ,using ,files3 ,a ,tutorial ,using ,files3 ,a ,tutorial documentation ,kinds of ,documentation ,kinds of ,documentation info ,using info ,using info egrep ,regular ,expressions ls ,using ,files3 ,a ,tutorial ,using ,files3 ,a ,tutorial ,dot ,files and ls -a man less ,environment ,variables mkdir ,using ,files3 ,a ,tutorial more ,using ,files3 ,a ,tutorial parameters ,the ,command ,line and shell commands typing ,first ,steps su ,working as ,root whoami ,working as ,root commercial software comparing to proprietary ,what ,is ,free ,software8 comparing binary and text files ,viewing ,text ,files crackers and hackers ,what ,is ,free ,software8 hard links and symlinks ,symbolic ,links programs and processes ,processes software commercial and proprietary ,what ,is ,free ,software8 system-wide and user-specific configuration ,system-,wide ,versus ,user-,specific ,configuration ,system-,wide ,versus ,user-,specific ,configuration compiling packages ,compiling ,software compressing files ,file ,compression with gzip ,file ,compression with gzip ,configuration ,base system no title comparing system-wide and user-specific ,system-,wide ,versus ,user-,specific ,configuration ,system-,wide ,versus ,user-,specific ,configuration ,device drivers no title ,modules no title networking ,ethernet ,ethernet ,,ppp ,the ,easy ,way3 wvdial ,the ,easy ,way3 wvdial ,,pcmcia no title ,configure ,,pcmcia ,support system-wide _/etc directory ,files ,present and ,their automatic filesystem mounting _/etc_/fstab3 ,automating the ,mount _/etc_/fstab3 ,automating the ,mount networking ,networking ,,ppp ,preparation user-specific dotfiles ,system-,wide ,versus ,user-,specific ,configuration configuring base system ,debian ,installation ,steps ,choosing ,your ,installation ,media device drivers ,configure ,device ,driver ,modules keyboard ,configure the ,keyboard network ,configure the ,network packages ,configure connections networking ,ethernet ,ethernet ,,ppp ,,ppp ,preparation ,the ,easy ,way3 wvdial ,the ,easy ,way3 wvdial consoles ,a ,multiuser1 ,multitasking ,operating virtual consoles ,virtual ,consoles ,virtual ,consoles controllers ,,scsi partitions1 naming ,device ,names in ,linux controlling processes ,the ,shell ,the ,shell conventions typographical ,conventions ,conventions spaces ,conventions copy-and-paste mouse operation 7,x7 ,the ,mouse copying large-scale ,large-,scale ,copying ,large-,scale ,copying crackers comparing to hackers ,what ,is ,free ,software8 creating accounts ordinary user ,create an ,ordinary ,user ,create an ,ordinary ,user superuser ,set the ,root ,password directories ,using ,files3 ,a ,tutorial disk images ,creating ,floppies from ,disk ,creating ,floppies from ,disk plans ,managing ,your ,identity ,managing ,your ,identity csh 7,c shell7 ,the ,shell current working directories ,using ,files3 ,a ,tutorial ,current ,working ,directory ,using ,files3 ,a ,tutorial customizing ,x windows system ,customizing ,your ,x ,startup cylinder translation ,,pc ,disk ,limitations daemon ,processes dbootstrap ,step-by-,step ,installation network configuration ,configure the ,network ,debian booting ,booting ,debian from ,,cd-,,rom ,choosing ,your ,installation ,media ,web site ,what ,is ,free ,software8 ,debian base system ,debian ,installation ,steps ,choosing ,your ,installation ,media ,debian mailing list ,personal ,help ,personal ,help deleting directories ,using ,files3 ,a ,tutorial files ,using ,files3 ,a ,tutorial hard links ,the ,real ,nature of named pipes ,named ,pipes 7,f,i,f,os7 symlinks ,symbolic ,links ,symbolic ,links ,deleting ,files see rm dependencies packages ,select ,select deselect package maintenance dselect ,develcomp 7profile7 ,planning ,use of the developing ,free ,software ,social ,contract ,what ,is ,free ,software8 software free software ,what ,is ,free ,software8 ,what ,is ,free ,software8 development ,who ,creates ,debian8 device drivers configuring ,configure ,device ,driver ,modules device files ,device ,files _/dev_/null ,device ,names no title devices ,device ,names in ,linux ,device ,names in ,linux abstractions ,introduction to ,x base system installing ,install the ,base ,system ,configure the ,base ,system block devices ,device ,files _/dev_/null character devices ,device ,files _/dev_/null daemons ,processes files symlinks ,symbolic ,links filesystems ,concepts automatic mounting _/etc_/fstab3 ,automating the ,mount _/etc_/fstab3 ,automating the ,mount hard links ,the ,real ,nature of ,the ,real ,nature of mount points ,mounting a ,filesystem mounting ,mounting a ,filesystem ,mounting a ,filesystem ,example3 ,mounting a ,,cd-,,rom ,example3 ,mounting a ,,cd-,,rom ,removable ,disks 7,floppies1 ,zip proc ,the proc ,filesystem symlinks ,symbolic ,links ,symbolic ,links ,symbolic ,links naming ,device ,names in ,linux output redirecting stdin1 stdout1 ,pipelines1 and stdin1 stdout1 ,pipelines1 and ,,pcmcia configuring ,configure ,,pcmcia ,support printers troubleshooting ,printing ,,scsi drives partitions ,device ,names in ,linux swap partitions ,recommended ,partitioning ,scheme ,recommended ,partitioning ,scheme ,dialup profile ,planning ,use of the ,directories no title ,files and ,directories ,files and ,directories ,files and ,directories ,files ,present and ,their _/etc ,files ,present and ,their ,files ,present and ,their ,files ,present and ,their system-wide configuration ,system-,wide ,versus ,user-,specific ,configuration ,system-,wide ,versus ,user-,specific ,configuration _/root ,files ,present and ,their _/tmp ,files ,present and ,their _/user ,files ,present and ,their _/var ,files ,present and ,their contents1 displaying ,files ,present and ,their ,files ,present and ,their copying ,large-,scale ,copying ,large-,scale ,copying creating ,using ,files3 ,a ,tutorial current working directory ,using ,files3 ,a ,tutorial file systems mount points ,mounting a ,filesystem filename expansion patterns ,filename ,expansion ,filename ,expansion files hard links ,the ,real ,nature of ,the ,real ,nature of inodes ,the ,real ,nature of ,the ,real ,nature of locating ,finding ,files ,finding ,files symlinks ,symbolic ,links filesystems ,concepts mounting ,mounting a ,filesystem ,mounting a ,filesystem ,example3 ,mounting a ,,cd-,,rom ,example3 ,mounting a ,,cd-,,rom ,removable ,disks 7,floppies1 ,zip hard links removing ,the ,real ,nature of home directory ,files ,present and ,their modes ,mode parent directories ,using ,files3 ,a ,tutorial paths ,files and ,directories permissions example session ,permissions in ,practice ,permissions in ,practice ,permissions in ,practice removing ,using ,files3 ,a ,tutorial search path 7shell7 ,where ,commands ,reside3 ,the ,where ,commands ,reside3 ,the shortcut directories ,using ,files3 ,a ,tutorial symlinks ,symbolic ,links system-wide files1 modifying ,files ,present and ,their disk blocks scanning ,initialize and ,activate a disk cache ,shutting ,down disk space installation requirements ,memory and ,disk ,space disks backing up ,last ,chance to ,back boot disks ,,lilo ,booting the ,system boot floppies creating ,make a ,boot ,floppy filesystems mount points ,mounting a ,filesystem mounting ,mounting a ,filesystem ,mounting a ,filesystem ,example3 ,mounting a ,,cd-,,rom ,example3 ,mounting a ,,cd-,,rom ,removable ,disks 7,floppies1 ,zip floppies booting from ,booting from ,floppies images writing to floppies ,creating ,floppies from ,disk ,creating ,floppies from ,disk removable mounting filesystem ,removable ,disks 7,floppies1 ,zip displaying directory contents ,files ,present and ,their ,files ,present and ,their file contents ,determining a ,file's ,contents files filename expansion pattern ,filename ,expansion ,info help system ,managing ,processes with bash mounted filesystems ,example3 ,mounting a ,,cd-,,rom text files ,viewing ,text ,files displays ae 7text editor7 ,using ae dselect ,access screen ,access ,x windows system windows manager ,introduction to ,x dividing partitions ,lossless ,repartitioning documentation ,kinds of ,documentation ,kinds of ,documentation ,,gnu ,general ,public ,license ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,h,o,w,t,os ,h,o,w,t,os info ,using info ,using info ,,dos 7,disk ,operating ,system7 partitioning ,partitioning from ,,dos or ,lossless ,repartitioning ,debian ,installation ,steps ,dotfiles no title ,dot ,files and ls -a ,system-,wide ,versus ,user-,specific ,configuration dpkg no title package maintenance dpkg dselect ,select and ,install ,profiles no title ,introduction ,introduction ,access no title ,access menu no title ,access screen ,access multi-,,cd installation ,access package states ,select ,select packages configuring ,configure installing ,install ,install ,select no title ,select screen ,select ,select ,select ,select ,select exiting ,select ,update no title ,update screen ,update dump ,backup ,tools dump 7backup utility ,backup ,tools editing text ,text ,editors ,text ,editors ,editors no title egrep command ,regular ,expressions ,emacs 7text editor7 ,text ,editors ,text ,editors email bug reports troubleshooting ,troubleshooting the ,boot ,process ,debian mailing list ,personal ,help ,personal ,help environment variables importing ,environment ,variables environment variables no title ,environment ,variables bash setting ,environment ,variables ,environment ,variables ,,path ,where ,commands ,reside3 ,the ,where ,commands ,reside3 ,the proxy servers setting ,access environments ,environment ,variables error messages standard error stdin1 stdout1 ,pipelines1 and ,x windows system troubleshooting ,troubleshooting ,ethernet configuration ,ethernet example session permissions ,permissions in ,practice ,permissions in ,practice ,permissions in ,practice execute permission ,mode executing programs search path ,where ,commands ,reside3 ,the ,where ,commands ,reside3 ,the exiting ae 7text editor7 ,using ae programs ,how to ,read ,this ,select screen 7dselect7 ,select ,x windows system ,leaving the ,x ,environment ,customizing ,your ,x ,startup ,customizing ,your ,x ,startup expansion patterns ,filename ,expansion ,filename ,expansion see also wildcards ,filename ,expansion exporting shell variables ,environment ,variables variables to environment ,environment ,variables ext#b filesystem ,concepts extended partitions ,,pc ,disk ,limitations ,device ,names in ,linux ,,fifo 7first-in-first-out7 ,named ,pipes 7,f,i,f,os7 file manager ,using a ,file ,manager file managers icon-based ,introduction to ,x file pagers text files viewing ,viewing ,text ,files file systems ,partitioning ,your ,hard ,drive ,background ,background filename expansion pattern ,filename ,expansion filename expansion patterns ,filename ,expansion files no title ,files and ,directories ,files and ,directories ,files and ,directories _/etc_/,x#aa_/,xsession modifying ,customizing ,your ,x ,startup access ,mode binary ,working with ,text ,files viewing ,viewing ,text ,files compressing ,file ,compression with gzip ,file ,compression with gzip configuration files ,configuration ,files contents displaying ,determining a ,file's ,contents current working directory ,using ,files3 ,a ,tutorial deleting ,using ,files3 ,a ,tutorial device files ,device ,files _/dev_/null disk images ,creating ,floppies from ,disk ,creating ,floppies from ,disk dotfiles ,dot ,files and ls -a ,system-,wide ,versus ,user-,specific ,configuration ,editors no title hard links ,the ,real ,nature of ,the ,real ,nature of inodes ,the ,real ,nature of large-scale copying ,large-,scale ,copying ,large-,scale ,copying locating ,finding ,files ,finding ,files moving ,using ,files3 ,a ,tutorial named pipes ,named ,pipes 7,f,i,f,os7 naming conventions troubleshooting ,working with ,strangely-,named ,files permissions ,permissions ,permissions ,security example sessions ,permissions in ,practice ,permissions in ,practice ,permissions in ,practice mode ,mode ,mode ,mode ownership ,file ,ownership ,file ,ownership plans creating ,managing ,your ,identity ,managing ,your ,identity regular expressions ,regular ,expressions ,regular ,expressions ,regular ,expressions sockets ,sockets symlinks ,symbolic ,links removing ,symbolic ,links ,symbolic ,links temporary ,files ,present and ,their ,text no title editing ,text ,editors ,text ,editors ,using ae viewing ,viewing ,text ,files text files ,working with ,text ,files uncompressing ,file ,compression with gzip filesystems ,filesystems automatic mounting _/etc_/fstab3 ,automating the ,mount _/etc_/fstab3 ,automating the ,mount backing up ,backup ,tools ,,gnu tar tar ext#b ,concepts hard links ,the ,real ,nature of ,the ,real ,nature of deleting ,the ,real ,nature of listing ,example3 ,mounting a ,,cd-,,rom mount points ,mounting a ,filesystem mounting ,mounting a ,filesystem ,mounting a ,filesystem ,example3 ,mounting a ,,cd-,,rom ,example3 ,mounting a ,,cd-,,rom ,removable ,disks 7,floppies1 ,zip proc ,the proc ,filesystem symlinks ,symbolic ,links finding documentation ,kinds of ,documentation ,kinds of ,documentation files ,finding ,files ,finding ,files system information ,getting ,information from the finger information plans creating ,managing ,your ,identity ,,fips ,lossless ,repartitioning ,lossless ,repartitioning floppies boot floppies creating ,make a ,boot ,floppy booting from ,booting from ,floppies disk images writing ,creating ,floppies from ,disk ,creating ,floppies from ,disk filesystem mounting ,removable ,disks 7,floppies1 ,zip filesystems ,mounting a ,filesystem ,floppy ,disks no title fonts selecting ,starting the ,x ,environment xterm increasing size ,starting the ,x ,environment ,free ,software ,what ,is ,free ,software8 developing ,what ,is ,free ,software8 ,social ,contract ,what ,is ,free ,software8 ,free ,software ,foundation ,what ,is ,free ,software8 fully-qualified filenames ,files and ,directories functionality ,what ,is ,debian8 ,general ,public ,license ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public glossary ,glossary ,,gnome desktop project ,introduction to ,x ,,gnu documentation viewer ,using info ,using info ,,gnu ,general ,public ,license ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,,gnu ,midnight ,commander ,using a ,file ,manager ,,gnu ,project ,what ,is ,debian8 ,,gnu tar tar ,,gnu tar 7backup utility ,backup ,tools ,,gnu_/,linux multiuser environment ,a ,multiuser1 ,multitasking ,operating graphical user interfaces see ,g,u,is ,the ,x ,window ,system ,introduction to ,x ,g,u,is abstractions ,introduction to ,x icon-based file managers ,introduction to ,x ,x ,window ,the ,x ,window ,system ,introduction to ,x ,x windows system clients ,x ,clients ,x ,clients clients1 selecting ,customizing ,your ,x ,startup ,customizing ,your ,x ,startup customizing ,customizing ,your ,x ,startup exiting ,leaving the ,x ,environment ,customizing ,your ,x ,startup ,customizing ,your ,x ,startup mouse operation ,the ,mouse starting ,starting the ,x ,environment troubleshooting ,troubleshooting ,x ,problems xdm ,starting the ,x ,environment gzip ,file ,compression with gzip ,file ,compression with gzip ,hacker ,ethic ,what ,is ,free ,software8 hackers ,what ,is ,free ,software8 hard disk ,linux partition initializing ,initialize a ,linux ,partition ,initialize a ,linux ,partition partitioning ,,pc ,,bios ,,pc ,disk ,limitations swap partition initializing ,initialize and ,activate a ,initialize and ,activate a hard disks partitioning ,lossless ,repartitioning ,debian ,installation ,steps ,partition a ,hard ,disk ,partition a ,hard ,disk partitions mounting ,initialize a ,linux ,partition scanning ,initialize and ,activate a hard drive organizing ,partitioning ,your ,hard ,drive ,background ,background partition boot partition ,,pc ,disk ,limitations partitioning ,partitioning ,your ,hard ,drive ,background ,background cylinder translation ,,pc ,disk ,limitations root partition ,background swap partition ,background hard drives filesystems ,mounting a ,filesystem ,,lilo operating system1 booting ,booting the ,system partitioning swap partitions ,recommended ,partitioning ,scheme ,recommended ,partitioning ,scheme partitions mounting ,mount a ,previously-,initialized ,partition hard links ,the ,real ,nature of ,the ,real ,nature of comparing to symlinks ,symbolic ,links ,symbolic ,links deleting ,the ,real ,nature of symlinks ,symbolic ,links hardware abstractions ,introduction to ,x device files ,device ,files _/dev_/null video cards support for ,supported ,hardware ,hardware1 supported no title ,help file 7installation7 accessing ,select help system ,h,o,w,t,os ,h,o,w,t,os hierarchies ,concepts filesystems ,concepts mount points ,mounting a ,filesystem mounting ,mounting a ,filesystem ,mounting a ,filesystem ,example3 ,mounting a ,,cd-,,rom ,example3 ,mounting a ,,cd-,,rom ,removable ,disks 7,floppies1 ,zip ,history see ,command ,line ,history home directories ,files ,present and ,their home directory ,using ,files3 ,a ,tutorial ,h,o,w,t,os ,h,o,w,t,os icon-based file managers ,introduction to ,x images 7disk7 writing to floppies ,creating ,floppies from ,disk ,creating ,floppies from ,disk importing variables to environment ,environment ,variables info no title ,using info ,using info ,info help system ,managing ,processes with bash initializing ,linux partition ,initialize a ,linux ,partition ,initialize a ,linux ,partition swap partition ,initialize and ,activate a ,initialize and ,activate a inodes ,the ,real ,nature of ,the ,real ,nature of hard links removing ,the ,real ,nature of ,installation backups1 performing ,before ,you ,start base system ,install the ,base ,system ,configure the ,base ,system base system1 configuring ,debian ,installation ,steps ,choosing ,your ,installation ,media boot floppies creating ,make a ,boot ,floppy ,,cd-,,rom no title device drivers configuring ,configure ,device ,driver ,modules disks backing up ,last ,chance to ,back dselect ,introduction ,access screen ,access ,floppies no title hard disks partitioning ,partition a ,hard ,disk ,partition a ,hard ,disk hard drive partitioning ,background ,background partitioning ,partitioning ,your ,hard ,drive ,help file accessing ,select kernel ,install ,operating ,system ,kernel keyboard configuration ,configure the ,keyboard ,linux partition initialization ,initialize a ,linux ,partition ,initialize a ,linux ,partition main menu ,debian ,,gnu_/,linux ,installation ,main master boot record ,make ,linux ,bootable ,directly ,media no title memory requirements ,memory and ,disk ,space ,menu no title monitor display color1 selecting ,select ,color or ,monochrome multi-,,nfs1 multi-mount ,access multicd ,access ,access network configuring ,configure the ,network packages ,package ,installation with dselect partitioning ,partitioning ,prior to ,installation ,partitioning from ,,dos or ,lossless ,repartitioning ,debian ,installation ,steps ,,pcmcia support configuring ,configure ,,pcmcia ,support ,prerequisites no title profiles ,planning ,use of the selecting ,select and ,install ,profiles root password setting ,set the ,root ,password smoke test ,the ,moment of ,truth swap partition initialization ,initialize and ,activate a ,initialize and ,activate a tasks selecting ,select and ,install ,profiles time zone specifying ,configure the ,base ,system installations network workstations ,information ,you ,will ,need operating systems1 multiple ,before ,you ,start installing packages ,install ,install ,internet ,debian mailing list ,personal ,help ,personal ,help online manual viewing ,environment ,variables ,,irc 7,internet ,relay ,chat7 ,debian mailing list ,personal ,help ,personal ,help ,i,s,ps ,,ppp ,,ppp ,preparation italics typographical conventions ,conventions job ,managing ,processes with bash job numbers assigning to command lines ,managing ,processes with bash jobs ,managing ,processes with bash ,managing ,processes with bash listing ,managing ,processes with bash starting ,managing ,processes with bash status displaying ,managing ,processes with bash suspending ,managing ,processes with bash ,managing ,processes with bash terminating ,managing ,processes with bash ,managing ,processes with bash kernel boot process troubleshooting ,troubleshooting the ,boot ,process installing ,install ,operating ,system ,kernel ,,pcmcia removing ,remove ,,pcmcia virtual consoles ,virtual ,consoles ,virtual ,consoles kernel3,,lilo 7,linux ,loader7 ,booting the ,system ,booting the ,system key combinations dselect ,select keyboard configuring ,configure the ,keyboard killing jobs ,managing ,processes with bash ,managing ,processes with bash ,x server ,leaving the ,x ,environment ,korn shell ,the ,shell languages programming ,software ,development with ,debian ,software ,development with ,debian ,l,a,ns ,ethernet configuration ,ethernet large-scale copying ,large-,scale ,copying ,large-,scale ,copying legal documentation ,,gnu ,general ,public ,license ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public licenses ,,gnu ,general ,public ,license ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,,lilo ,make ,linux ,bootable ,directly ,,lilo 7,linux ,loader7 ,booting the ,system ,booting the ,system limitations partitions ,,pc ,disk ,limitations ,linux devices ,device ,names in ,linux ,device ,names in ,linux ,device ,names in ,linux ,,gnu ,general ,public ,license ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public ,the ,,gnu ,general ,public kernel command line ,describing the ,command ,line ,describing the ,command ,line disk cache ,shutting ,down virtual console ,virtual ,consoles ,virtual ,consoles ,linux ,documentation ,project ,supported ,hardware ,h,o,w,t,os ,h,o,w,t,os ,linux native partition creating ,partition a ,hard ,disk ,partition a ,hard ,disk ,linux partition initializing ,initialize a ,linux ,partition ,initialize a ,linux ,partition ,linux partitions mounting ,initialize a ,linux ,partition ,initialize a ,linux ,partition ,linux swap partition creating ,partition a ,hard ,disk ,partition a ,hard ,disk listing aliases ,aliases jobs ,managing ,processes with bash mounted filesystems ,example3 ,mounting a ,,cd-,,rom processes ,processes locating documentation ,kinds of ,documentation ,kinds of ,documentation files ,finding ,files ,finding ,files system information ,getting ,information from the logging in ,first ,steps ,first ,steps logical partitions ,,pc ,disk ,limitations ,device ,names in ,linux long form options ,the ,command ,line and ls ,using ,files3 ,a ,tutorial no title ls command ,using ,files3 ,a ,tutorial ,using ,files3 ,a ,tutorial ,dot ,files and ls -a mailing list ,debian ,personal ,help ,personal ,help main menu installation ,debian ,,gnu_/,linux ,installation ,main mainenance packages ,what a ,package ,maintenance ,what a ,package ,maintenance deselect dselect dpkg dpkg man less command ,environment ,variables man pages ,the ,command ,line and managing files ,using a ,file ,manager manual startup ,x windows system ,starting the ,x ,environment master boot record installation ,make ,linux ,bootable ,directly memory disk cache ,shutting ,down installation requirements ,memory and ,disk ,space swap partitions ,recommended ,partitioning ,scheme ,recommended ,partitioning ,scheme menus installation ,debian ,,gnu_/,linux ,installation ,main ,partition a ,hard ,disk ,partition a ,hard ,disk ,partition a ,hard ,disk messages error standard error stdin1 stdout1 ,pipelines1 and metacharacters regular expressions ,regular ,expressions ,regular ,expressions ,regular ,expressions mkdir command ,using ,files3 ,a ,tutorial mode 7files7 ,mode ,mode ,mode modifier keys ,conventions ,conventions modifying files hard links ,the ,real ,nature of modularity ,introduction to ,x modules device drivers configuring ,configure ,device ,driver ,modules installation ,install ,operating ,system ,kernel monitor display color selecting ,select ,color or ,monochrome monochrome display selecting ,select ,color or ,monochrome more command ,using ,files3 ,a ,tutorial mount points ,mounting a ,filesystem mounting ,,cd-,,rom ,example3 ,mounting a ,,cd-,,rom ,example3 ,mounting a ,,cd-,,rom filesystems ,mounting a ,filesystem ,mounting a ,filesystem ,example3 ,mounting a ,,cd-,,rom ,example3 ,mounting a ,,cd-,,rom ,removable ,disks 7,floppies1 ,zip automatic _/etc_/fstab3 ,automating the ,mount _/etc_/fstab3 ,automating the ,mount floppy disks ,removable ,disks 7,floppies1 ,zip initialized partitions ,mount a ,previously-,initialized ,partition partitions ,initialize a ,linux ,partition ,initialize a ,linux ,partition mouse operation ,x windows system ,the ,mouse moving files ,using ,files3 ,a ,tutorial msdos filesystem ,concepts multi-,,nfs1 multi-mount installation ,access multicd installation ,access ,access multiple operating systems booting ,make ,linux ,bootable ,directly multitasking ,a ,multiuser1 ,multitasking ,operating ,a ,multiuser1 ,multitasking ,operating processes ,processes ,multiuser ,a ,multiuser1 ,multitasking ,operating multiuser environment ,,gnu_/,linux ,a ,multiuser1 ,multitasking ,operating multiuser environments virtual console ,virtual ,consoles ,virtual ,consoles mv command ,using ,files3 ,a ,tutorial named pipes ,named ,pipes 7,f,i,f,os7 naming devices ,device ,names in ,linux ,device ,names in ,linux ,device ,names in ,linux naming conventions files troubleshooting ,working with ,strangely-,named ,files navigating dbootstrap ,step-by-,step ,installation nedit 7text editor ,text ,editors netowrks devices output1 redirecting stdin1 stdout1 ,pipelines1 and stdin1 stdout1 ,pipelines1 and network configuring ,configure the ,network ,network ,configuration no title network transparency ,introduction to ,x networking ,networking ,ethernet configuration ,ethernet ,,ppp ,,ppp ,preparation configuration ,the ,easy ,way3 wvdial ,the ,easy ,way3 wvdial sockets ,sockets networks servers partitioning ,recommended ,partitioning ,scheme terminals ,a ,multiuser1 ,multitasking ,operating virtual console ,virtual ,consoles ,virtual ,consoles workstations installation ,information ,you ,will ,need ,x servers ,introduction to ,x online manual builtin programs ,where ,commands ,reside3 ,the text1 paging ,environment ,variables viewing ,environment ,variables ,open ,source ,software ,what ,is ,free ,software8 operating system booting ,,lilo 7,linux ,loader7 ,booting the ,system kernel installing ,install ,operating ,system ,kernel operating systems ,what ,is ,debian8 backup tools ,backup ,tools ,,gnu tar tar boot loaders ,before ,you ,start ,debian booting ,booting ,debian functionality ,what ,is ,debian8 ,,gnu ,linux multiuser environment ,a ,multiuser1 ,multitasking ,operating installation partitioning ,partitioning ,prior to ,installation ,partitioning from ,,dos or ,lossless ,repartitioning ,debian ,installation ,steps ,,lilo ,make ,linux ,bootable ,directly modularity ,introduction to ,x multiple installations ,before ,you ,start multiple1 booting ,make ,linux ,bootable ,directly root password setting ,set the ,root ,password swap partitions ,background ,x windows system troubleshooting ,x ,problems options 7commands7 ,the ,command ,line and ordinary user accounts ,create an ,ordinary ,user ,create an ,ordinary ,user organization files ,files and ,directories ,files and ,directories organizing files ,concepts hard drive ,partitioning ,your ,hard ,drive ,background ,background ouput redirecting pipelines stdin1 stdout1 ,pipelines1 and output redirecting stdin1 stdout1 ,pipelines1 and stdin1 stdout1 ,pipelines1 and stdin1 stdout1 ,pipelines1 and reversing stdin1 stdout1 ,pipelines1 and overriding package dependencies ,select ownership 7files7 ,file ,ownership ,file ,ownership packages ,glossary canceling selection 7dselect7 ,select compiling ,compiling ,software configuring ,configure ,debian base system ,debian ,installation ,steps ,choosing ,your ,installation ,media dependencies ,select ,select development ,who ,creates ,debian8 installation ,package ,installation with dselect multi-,,cd ,access ,access multi-,,nfs1 multi-mount ,access installing ,install ,install maintenance utilities ,what a ,package ,maintenance ,what a ,package ,maintenance deselect dselect dpkg dpkg profiles ,planning ,use of the see also dselect ,introduction ,introduction selecting ,select and ,install ,profiles ,select ,select ,select states 7dselect7 ,select ,select ,,pager environment variable ,environment ,variables parameters ,the ,command ,line and parent directories ,using ,files3 ,a ,tutorial partition boot partition ,,pc ,disk ,limitations ,initialization no title ,swap no title ,lossless no title ,partitioning no title ,device ,names in ,linux cylinder translation ,,pc ,disk ,limitations hard disks ,partition a ,hard ,disk ,partition a ,hard ,disk hard drive ,partitioning ,your ,hard ,drive ,background ,background root partition ,background swap partition ,background ,linux partition initializing ,initialize a ,linux ,partition ,initialize a ,linux ,partition ,,pc ,,bios ,,pc ,disk ,limitations ,,scsi drives ,,pc ,disk ,limitations servers ,recommended ,partitioning ,scheme swap partition initializing ,initialize and ,activate a ,initialize and ,activate a swap partitions ,recommended ,partitioning ,scheme ,recommended ,partitioning ,scheme partitions mounting ,initialize a ,linux ,partition ,initialize a ,linux ,partition ,mount a ,previously-,initialized ,partition surface scanning ,initialize and ,activate a passwords logging in ,first ,steps ,first ,steps root password setting ,set the ,root ,password shadow passwords ,shadow ,password ,support superuser ,working as ,root ,,path no title paths ,files and ,directories ,,pc ,,bios ,,pc ,disk ,limitations ,,pcmcia no title configuring ,configure ,,pcmcia ,support removing ,remove ,,pcmcia ,permissions no title ,permissions ,permissions ,security access ,mode example session ,permissions in ,practice ,permissions in ,practice ,permissions in ,practice file ownership ,file ,ownership ,file ,ownership hard links ,the ,real ,nature of mode ,mode ,mode ,mode ,,pid ,processes ,,pid 7,process ,identification ,number7 ,processes pipe operators stdin1 stdout1 ,pipelines1 and pipeline ,managing ,processes with bash pipelines stdin1 stdout1 ,pipelines1 and output reversing stdin1 stdout1 ,pipelines1 and pipes named pipes ,named ,pipes 7,f,i,f,os7 plans ,managing ,your ,identity ,managing ,your ,identity ,,ppp configuration ,,ppp ,preparation wvdial ,the ,easy ,way3 wvdial ,the ,easy ,way3 wvdial primary partitions ,,pc ,disk ,limitations printenv ,environment ,variables ,environment ,variables ,printing no title troubleshooting ,printing proc filesystem ,the proc ,filesystem process groups ,managing ,processes with bash ,managing ,processes with bash ,process ,management no title ,processes no title ,processes boot process troubleshooting ,troubleshooting the ,boot ,process comparing to programs ,processes controlling ,the ,shell ,the ,shell daemons ,processes environments ,environment ,variables jobs listing ,managing ,processes with bash starting ,managing ,processes with bash suspending ,managing ,processes with bash ,managing ,processes with bash terminating ,managing ,processes with bash ,managing ,processes with bash named pipes ,named ,pipes 7,f,i,f,os7 ,,pid 7,process ,identification ,number7 ,processes redirection operators stdin1 stdout1 ,pipelines1 and stdin1 stdout1 ,pipelines1 and standard input stdin1 stdout1 ,pipelines1 and standard output stdin1 stdout1 ,pipelines1 and profiles ,planning ,use of the ,planning ,use of the selecting ,select and ,install ,profiles ,select and ,install ,profiles programming ,software ,development with ,debian ,software ,development with ,debian programs bash aliases ,aliases ,,bios 7,basic ,input_/,output ,system7 ,booting the ,system built-in ,where ,commands ,reside3 ,the cfdisk ,partition a ,hard ,disk ,partition a ,hard ,disk comparing to processes ,processes dbootstrap ,step-by-,step ,installation network configuration ,configure the ,network dselect ,select and ,install ,profiles ,introduction ,introduction ,access screen ,access multi-,,cd installation ,access multi-,,nfs1 multi-mount installation ,access package states ,select ,select packages1 configuring ,configure packages1 installing ,install ,install ,update screen ,update ,select ,select ,select ,select executing search path ,where ,commands ,reside3 ,the ,where ,commands ,reside3 ,the exiting ,how to ,read ,this file managers ,introduction to ,x functionality ,what ,is ,debian8 gzip ,file ,compression with gzip ,file ,compression with gzip multitasking ,a ,multiuser1 ,multitasking ,operating packages maintenance utilities ,what a ,package ,maintenance ,what a ,package ,maintenance dpkg dselect shell ,the ,shell ,the ,shell software development ,software ,development with ,debian ,software ,development with ,debian tasks ,select and ,install ,profiles ,select and ,install ,profiles text editors ,text ,editors ,text ,editors ae ,using ae wvdial ,,ppp configuration ,the ,easy ,way3 wvdial ,the ,easy ,way3 wvdial ,x clients ,x ,clients ,x ,clients ,prompt1 ,changing ,environment ,variables ,environment ,variables prompts shell prompts ,first ,steps proprietary software comparing to commercial ,what ,is ,free ,software8 proxy servers environment variables setting ,access ,,ps#a ,environment ,variables ,environment ,variables pwd ,using ,files3 ,a ,tutorial pwd command ,using ,files3 ,a ,tutorial ,using ,files3 ,a ,tutorial query process ,booting the ,system questions technical support ,personal ,help ,tips for asking questions quitting ae 7text editor7 ,using ae ,x windows system ,customizing ,your ,x ,startup ,customizing ,your ,x ,startup ,,ram disk cache ,shutting ,down ,,ram 7,random ,access ,memory7 installation requirements ,memory and ,disk ,space reading device files ,device ,files redirecting output stdin1 stdout1 ,pipelines1 and pipelines stdin1 stdout1 ,pipelines1 and ,redirection no title redirection operators stdin1 stdout1 ,pipelines1 and hard links ,the ,real ,nature of output reversing stdin1 stdout1 ,pipelines1 and regular expressions ,regular ,expressions ,regular ,expressions ,regular ,expressions reinitializing swap partition ,initialize and ,activate a removable disks mounting filesystem ,removable ,disks 7,floppies1 ,zip removing directories ,using ,files3 ,a ,tutorial hard links ,the ,real ,nature of ,,pcmcia ,remove ,,pcmcia symlinks ,symbolic ,links ,symbolic ,links repartitioning from ,windows ,partitioning from ,,dos or ,lossless ,repartitioning hard drive ,partitioning ,your ,hard ,drive ,background ,background requirements installation memory ,memory and ,disk ,space restrictions partitions ,,pc ,disk ,limitations reversing output stdin1 stdout1 ,pipelines1 and rm ,using ,files3 ,a ,tutorial root directory ,files and ,directories ,files and ,directories root partition ,background root password setting ,set the ,root ,password root user ,working as ,root ,working as ,root see also superuser ,files ,present and ,their saving edited files 7ae7 ,using ae scanning hard disk ,initialize and ,activate a screen display color selecting ,select ,color or ,monochrome screens ae 7text editor7 ,using ae dselect ,select ,select ,select ,select ,select ,select ,update ,update ,x windows system windows manager ,introduction to ,x scrolling commands ,command ,history and ,editing ,,scsi drives partitioning ,,pc ,disk ,limitations partitions ,device ,names in ,linux search path ,where ,commands ,reside3 ,the ,where ,commands ,reside3 ,the security backups1 performing ,before ,you ,start passwords logging in ,first ,steps ,first ,steps shadow passwords ,shadow ,password ,support permissions ,permissions ,permissions ,security example session ,permissions in ,practice ,permissions in ,practice ,permissions in ,practice file mode ,mode ,mode ,mode file ownership ,file ,ownership ,file ,ownership root password setting ,set the ,root ,password root user ,working as ,root ,working as ,root ,select screen 7dselect7 ,select ,select ,select ,select selecting color display ,select ,color or ,monochrome fonts1 xterm ,starting the ,x ,environment monochrome display ,select ,color or ,monochrome packages ,select and ,install ,profiles ,select ,select ,select see also dselect ,introduction ,introduction profiles ,select and ,install ,profiles ,select and ,install ,profiles ,x clients ,customizing ,your ,x ,startup ,customizing ,your ,x ,startup ,server profile ,planning ,use of the servers partitioning ,recommended ,partitioning ,scheme proxy servers environment variables1 setting ,access ,x server killing ,leaving the ,x ,environment ,x servers ,introduction to ,x clients ,x ,clients ,x ,clients network transparency ,introduction to ,x sh 7,bourne shell7 ,the ,shell shadow passwords ,shadow ,password ,support sharing software ,what ,is ,free ,software8 ,what ,is ,free ,software8 ,shell no title ,the ,shell ,the ,shell no title built-in programs ,where ,commands ,reside3 ,the filename expansion patterns ,filename ,expansion output reversing stdin1 stdout1 ,pipelines1 and redirection operator stdin1 stdout1 ,pipelines1 and stdin1 stdout1 ,pipelines1 and search path ,where ,commands ,reside3 ,the ,where ,commands ,reside3 ,the shell commands typing ,first ,steps shell prompt command history ,command ,history and ,editing command line ,command ,history and ,editing ,command ,history and ,editing shells ,bourne shell ,the ,shell ,c shell ,the ,shell command lines job numbers1 assigning ,managing ,processes with bash current working directory ,using ,files3 ,a ,tutorial environments ,environment ,variables jobs suspending ,managing ,processes with bash pipelines stdin1 stdout1 ,pipelines1 and process groups ,managing ,processes with bash ,managing ,processes with bash redirection operators hard links ,the ,real ,nature of variables exporting ,environment ,variables xterms ,starting the ,x ,environment shortcut directories ,using ,files3 ,a ,tutorial shortcuts aliases ,aliases ,shutdown no title shutting down ,shutting ,down sites ,web ,debian ,what ,is ,free ,software8 ,free ,software ,foundation ,what ,is ,free ,software8 ,multi ,disk ,,howto ,recommended ,partitioning ,scheme video cards1 support for ,supported ,hardware smoke test ,the ,moment of ,truth ,social ,contract ,what ,is ,free ,software8 ,what ,is ,free ,software8 ,what ,is ,free ,software8 sockets ,sockets soft links ,symbolic ,links software applications ,what ,is ,debian8 development ,who ,creates ,debian8 free developing ,what ,is ,free ,software8 ,social ,contract ,what ,is ,free ,software8 ,free ,software ,what ,is ,free ,software8 ,open ,source ,what ,is ,free ,software8 packages mainenance utilities ,what a ,package ,maintenance dpkg dselect sofware development ,software ,development with ,debian ,software ,development with ,debian ,source code ,viewing ,text ,files comparing to binary executables ,viewing ,text ,files spaces typographical convention ,conventions specifying time zone ,configure the ,base ,system splitting partitions ,lossless ,repartitioning ,stallman1 ,richard ,m4 ,why ,software ,should be ,free ,what ,is ,free ,software8 standard error stdin1 stdout1 ,pipelines1 and standard input stdin1 stdout1 ,pipelines1 and standard output stdin1 stdout1 ,pipelines1 and starting ae 7text editor7 ,using ae jobs ,managing ,processes with bash ,managing ,processes with bash ,managing ,processes with bash ,x windows system ,starting the ,x ,environment startup boot process ,,bios ,booting the ,system query process ,booting the ,system ,x windows system customizing ,customizing ,your ,x ,startup states packages 7dselect7 ,select ,select status jobs displaying ,managing ,processes with bash stdin no title stdout no title structure command line ,the ,command ,line and directories ,files and ,directories su command ,working as ,root subdirectories filename expansion patterns ,filename ,expansion ,filename ,expansion submitting bug reports ,troubleshooting the ,boot ,process superuser ,working as ,root ,working as ,root home directory ,files ,present and ,their superuser account ,set the ,root ,password surface scanning hard disks ,initialize and ,activate a suspending jobs ,managing ,processes with bash ,managing ,processes with bash swap partition ,background initializing ,initialize and ,activate a ,initialize and ,activate a swap partitions ,recommended ,partitioning ,scheme ,recommended ,partitioning ,scheme ,linux swap partition creating ,partition a ,hard ,disk ,partition a ,hard ,disk symlinks ,symbolic ,links comparing to hard links ,symbolic ,links ,symbolic ,links removing ,symbolic ,links syntax commands ,the ,command ,line and ,describing the ,command ,line ,describing the ,command ,line file searches ,finding ,files system binaries ,files ,present and ,their system clock setting ,configure the ,base ,system system configuration ,debian ,installation ,steps ,choosing ,your ,installation ,media dbootstrap ,step-by-,step ,installation system-wide configuration ,system-,wide ,versus ,user-,specific ,configuration _/etc directory ,files ,present and ,their automatic filesystem mounting _/etc_/fstab3 ,automating the ,mount _/etc_/fstab3 ,automating the ,mount networking ,networking ,ethernet ,ethernet ,,ppp ,,ppp ,preparation ,the ,easy ,way3 wvdial ,the ,easy ,way3 wvdial packages selecting ,select ,select ,select permissions file mode ,mode ,mode ,mode file ownership ,file ,ownership ,x windows system customizing ,customizing ,your ,x ,startup system-wide configuratoin ,system-,wide ,versus ,user-,specific ,configuration ,taper ,backup ,tools taper 7backup utility7 ,backup ,tools tar ,backup ,tools no title tar 7tape archiver tar tasks ,select and ,install ,profiles ,select and ,install ,profiles tcsh ,the ,shell technical support asking questions ,personal ,help ,tips for asking questions temporary files ,files ,present and ,their ,terminal ,a ,multiuser1 ,multitasking ,operating terminals ,a ,multiuser1 ,multitasking ,operating consoles ,a ,multiuser1 ,multitasking ,operating terminating jobs ,managing ,processes with bash ,managing ,processes with bash testing installation smoke test ,the ,moment of ,truth text bold face typographical conventions ,conventions fonts xterm1 selecting ,starting the ,x ,environment italicized typographical conventions ,conventions online manual paging ,environment ,variables output reversing stdin1 stdout1 ,pipelines1 and regular expressions ,regular ,expressions ,regular ,expressions ,regular ,expressions wildcards - ,filename ,expansion 8 ,filename ,expansion file searches ,finding ,files filename expansion patterns ,filename ,expansion text editors ,text ,editors ae ,using ae text files ,working with ,text ,files no title viewing ,viewing ,text ,files time zone specifying ,configure the ,base ,system tools backups ,backup ,tools ,,gnu tar tar ,,fips ,lossless ,repartitioning ,lossless ,repartitioning troubleshooting boot process ,troubleshooting the ,boot ,process files naming conventions ,working with ,strangely-,named ,files printing ,printing ,x windows system ,troubleshooting ,x ,problems type ,where ,commands ,reside3 ,the typing ,bash commands wildcards ,tab ,completion command line ,command ,history and ,editing ,command ,history and ,editing commands aliases ,aliases modifier keys ,conventions ,conventions shell commands ,first ,steps wildcards 8 ,filename ,expansion filename expansion pattern ,filename ,expansion typographical conventions ,conventions ,conventions bold face ,conventions italics ,conventions modifier keys ,conventions ,conventions spaces ,conventions uncompressing files ,file ,compression with gzip unmounting ,,cd-,r,o,ms ,example3 ,mounting a ,,cd-,,rom ,update screen 7dselect7 ,update user accounts logging in ,first ,steps ,first ,steps ordinary user ,create an ,ordinary ,user ,create an ,ordinary ,user permission ,permissions ,permissions permissions example session ,permissions in ,practice ,permissions in ,practice ,permissions in ,practice file ownership ,file ,ownership ,file ,ownership mode ,mode ,mode ,mode plans ,managing ,your ,identity ,managing ,your ,identity root user ,working as ,root ,working as ,root superuser ,set the ,root ,password user-specific configuration ,system-,wide ,versus ,user-,specific ,configuration ,system-,wide ,versus ,user-,specific ,configuration dotfiles ,system-,wide ,versus ,user-,specific ,configuration utilities archiving ,backup ,tools backup tools ,backup ,tools ,,gnu tar tar dbootstrap network configuration ,configure the ,network dselect ,select and ,install ,profiles ,introduction ,introduction ,access screen ,access multi-,,cd installation ,access multi-,,nfs1 multi-mount installation ,access package states ,select ,select packages1 configuring ,configure packages1 installing ,install ,install ,update screen ,update ,select ,select ,select ,select file manager ,using a ,file ,manager ,,fips ,lossless ,repartitioning ,lossless ,repartitioning ,,gnu documentation viewer ,using info ,using info gzip ,file ,compression with gzip ,file ,compression with gzip package maintenance ,what a ,package ,maintenance ,what a ,package ,maintenance deselect dselect dpkg dpkg system binaries ,files ,present and ,their tasks ,select and ,install ,profiles ,select and ,install ,profiles text editors ,text ,editors ,text ,editors ae ,using ae variables ,environment ,variables exporting ,environment ,variables shell exporting ,environment ,variables vi 7text editor7 ,text ,editors ,text ,editors video cards support for ,supported ,hardware viewing directory contents ,files ,present and ,their ,files ,present and ,their file contents ,using ,files3 ,a ,tutorial ,determining a ,file's ,contents files filename expansion pattern ,filename ,expansion ,info help system ,managing ,processes with bash job status ,managing ,processes with bash mounted filesystems ,example3 ,mounting a ,,cd-,,rom online manual ,environment ,variables text files ,viewing ,text ,files ,virtual ,consoles no title ,virtual ,consoles ,virtual ,consoles virtual devices ,device ,files _/dev_/null web sites ,debian ,what ,is ,free ,software8 ,personal ,help ,personal ,help ,free ,software ,foundation ,what ,is ,free ,software8 ,multi ,disk ,,howto ,recommended ,partitioning ,scheme ,web sites3video cards1 support for ,supported ,hardware whoami command ,working as ,root ,why ,software ,should be ,free 7,stallman1 ,richard ,m47 ,what ,is ,free ,software8 wildcards no title ,filename ,expansion 99 ,filename ,expansion 8 ,filename ,expansion ,bash commands ,tab ,completion file searches ,finding ,files filename expansion pattens ,filename ,expansion regular expressions ,regular ,expressions ,regular ,expressions ,regular ,expressions window managers ,introduction to ,x ,windows partitioning ,partitioning from ,,dos or ,lossless ,repartitioning ,debian ,installation ,steps ,work profile ,planning ,use of the workstations installation ,information ,you ,will ,need write permission ,mode writing disk images to floppies ,creating ,floppies from ,disk ,creating ,floppies from ,disk to device files ,device ,files to named pipes ,named ,pipes 7,f,i,f,os7 wvdial ,,ppp configuration ,the ,easy ,way3 wvdial ,the ,easy ,way3 wvdial ,x clients ,introduction to ,x network transparency ,introduction to ,x selecting ,customizing ,your ,x ,startup ,customizing ,your ,x ,startup ,x servers ,introduction to ,x ,x ,window ,the ,x ,window ,system ,introduction to ,x ,x windows system clients ,x ,clients ,x ,clients selecting ,customizing ,your ,x ,startup ,customizing ,your ,x ,startup customizing ,customizing ,your ,x ,startup exiting ,leaving the ,x ,environment ,customizing ,your ,x ,startup ,customizing ,your ,x ,startup mouse operation ,the ,mouse network transparency ,introduction to ,x starting ,starting the ,x ,environment troubleshooting ,troubleshooting ,x ,problems xdm ,starting the ,x ,environment ,x1 troubleshooting no title xcoral 7text editor7 ,text ,editors xdm 7,x ,display ,manager7 ,starting the ,x ,environment xterm font size1 increasing ,starting the ,x ,environment fonts selecting ,starting the ,x ,environment xterms ,starting the ,x ,environment ,zip ,disks no title ,about this document 444 ,debian ,,gnu_/,linux3 ,guide to ,installation and ,usage ,this document was generated using the ,la,te,x#b;,,html translator ,version #b,k4#a;beta 7#a4dh7 ,copyright 7c7 #aiic1 #aiid1 #aiie1 #aiif1 ,nikos ,drakos1 ,computer ,based ,learning ,unit1 ,university of ,leeds4 ,copyright 7c7 #aiig1 #aiih1 #aiii1 ,ross ,moore1 ,mathematics ,department1 ,macquarie ,university1 ,sydney4 ,the command line arguments were3 latex#b;html -htmlversion #d4j1table -split #j -t #8,debian ,,gnu_/,linux3 ,guide to ,installation and ,usage' -tocstars -localicons -address #8,john ,goerzen _/ ,ossama ,othman' debian-tutorial4tex ,the translation was initiated by ,john ,goerzen on #bjjb-ab-ab ,john ,goerzen _/ ,ossama ,othman