%commondata; ]> Debian GNU open-use logo Hands-on Guide to the Debian GNU Operating System debguide Davor Ocelic
docelic@spinlocksolutions.com SPINLOCK - Advanced Linux-based networks for commercial and education sectors. Last update: Apr 2017 — Maintain sections up to date, document new developments Copyright (C) 2002-2017 Davor Ocelic, Spinlock Solutions This documentation is free; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You can find a copy of the GNU General Public License in the common-licenses directory on your system. If not, visit the GNU website. The latest copy of this Guide can be found at . This article is part of &SL;'s practical 4-piece introductory series containing the &DKLAR-DEB;, &DKLAR-KRB;, &DKLAR-LDA; and &DKLAR-AFS;. Preface</> <mediaobject> <imageobject><imagedata fileref="images/audience.eps" format="EPS" depth="120px" scalefit="1"></> <imageobject><imagedata fileref="images/audience.eps.jpg" format="JPG" depth="120px" scalefit="1" ></> </> <para> Welcome. The following Guide should help you make the first steps with &DEB;, an Unix-like operating system. </para><para> If you encounter any unexpected problems in using Debian, have patience. Unix is a colorful collection of more than 50 years of professional research and development applied to computer hardware and software and there's a certain learning curve involved. </para><para> You need to learn the basics of Unix architectures and operating systems properly and efficiently, so that you can easily chew on a broad range of advanced Unix topics. </para><para> Linux has been progressing with an ever-increasing pace over the years, both technically and in widespread adoption, and it is easier than ever to download, install and start using a Linux-based operating system. Many underlying technologies have been successfully wrapped into graphical control panels, obscuring the technical workings of the system. Our aim here is to show the technical aspects of a Linux system that will give you a level of understanding beyond graphical screens and management interfaces. </para><para> The Linux kernel and almost all other software are free ("free" as in freedom). This has allowed many projects or companies to package the Linux kernel and tens of thousands of applications in easily-installable and functional wholes called "distributions". Our distribution of choice will be Debian GNU/Linux. </para><para> And of all Linux, why exactly Debian? Well, the technical solutions, immediate brain-power available and community organization in &DEB; outperform all competition by a wide margin. There <emphasis>are</emphasis> some Linux distributions, Unix operating systems (such as Sun <ulink url="http://www.sun.com/">Solaris</ulink>/<ulink url="http://www.opensolaris.org/">OpenSolaris</ulink>, SGI <ulink url="http://www.sgi.com/">IRIX</ulink>, <ulink url="http://www.qnx.com/">QNX</ulink>...) or kernels that do some <emphasis>specific</emphasis> tasks better, but &DEB; is definitely a general-purpose winner with an enormous customization potential. </para><para> (In addition to &DEB;, there are also two Debian derivatives available — &UBU; and &DEV;. &UBU; is a more desktop- or enterprise-oriented distribution, while &DEV; is a fork of &DEB; without systemd.) </para><para> Also, we see that all interesting and exciting new developments are happening in the GNU/Linux arena; just focusing on Linux and the popular technologies (i.e. the LAMP -- Linux, Apache or nginx, MySQL or PostgreSQL, Ruby on Rails or Grails, and Git) may turn out your cool steady job and source of income. </para> <para> You should read this Guide <emphasis/after/ you successfully install some variant of the Debian GNU system to your computer (with or without the help from the &LNK18;). </> <para> The Guide is a balanced mix bewteen the administrator's and the user's guide; it is probably too broad for those who belong to either of the two extreme categories. The approach used should fit home users best — people who do have a Debian installation at hand, and want to learn and experiment. </> <para> Our end goal is that you develop the mindset to solve further problems on your own; the basic understanding and general logic matter, not the exact implementation or usage details. In most general terms, we could say we'll try to explain the principles of Unix system design, and how they work in practice using command line and text processing utilities; we will not bother describing point-and-click GUIs and menus; such documentation is available elsewhere (on say, <ulink url="http://www.gnome.org">Gnome</>, <ulink url="http://www.xfce.org">XFCE</ulink>, <ulink url="http://www.opengroup.org/cde/">CDE</ulink> or <ulink url="http://www.kde.org">KDE</> websites). </> <para> In a Debian guide, we will not hesitate to use Debian-specific features and commands, but note that most of our discussion will, at least generally, apply to other Linux or Unix systems as well. Additionally, by saying this is a beginner's guide, we definitely won't restrict ourselves to system basics; this Guide is hiding many details even experienced users would find useful or amusing. </> <para> Please read the following two sections (<xref linkend='conventions'> and <xref linkend="prereq">) carefully, as they explain some basic ideas and assumptions followed throughout the Guide. </> <!-- <para> Please note that most of the fine information presented here can also be found in respective packages' documentation, and is usually more detailed there. <command>It is implicitly suggested to read the official software and system documentation in combination with this Guide</command>. (the <citerefentry><refentrytitle>dpkg</><manvolnum>8</></> and <citerefentry><refentrytitle>apt</><manvolnum>8</></> manual pages are perfect to show there's much more to it than we mention here). In general, <ulink url="http://www.tldp.org/">www.tldp.org</> (former LinuxDoc), <ulink url="http://www.debian.org/doc/">www.debian.org/doc/</> and <ulink url="http://www.debian.org/devel/">www.debian.org/devel/</> websites, <ulink url="file:///usr/doc/">/usr/doc/</> and <ulink url="file:///usr/share/doc/">/usr/share/doc/</> directories, and the man and info pages on your system, are valuable information sources (but more on this later, don't worry now). </> <para> You can always find the latest releases of this guide in <ulink url="http://www.debian.org/doc/manuals/hands-on/">http://www.debian.org/doc/manuals/hands-on/</ulink>. My my repository hosted at <ulink url="http://www.sarovar.org/projects/debguide">Sarovar</ulink>. <ulink url="http://debguide.sarovar.org/">Sarovar</ulink>. </> <para> After you finish reading this Guide, you'll probably want to read other, on-topic manuals available from the <ulink url="http://www.debian.org/doc/manuals">Debian documentation directory</>. </> --> <section id="conventions"> <title>Conventions Application names are specified in "command mode (such as " style, such as . All file and directory names are given in "/etc/syslog.conf, ~/.bash_profile, or /etc/init.d/). Although not mandated by system behavior, we consistently include "/" at the end of every directory name to make directories clearly distinguishable from regular files. Also, this notation helps eliminate ambiguity in commands that accept both a filename and a directory name as an argument. Symbols that need to be replaced with your specific value use the kill -9 , "PID" should be substituted with an appropriate value. User session examples (consisting of user input and the corresponding system output) use the "screen" mode. User input is visually prefixed with "$" for user, and "#" for administrator commands. Program output is edited for brevity and has no prefix. Unix, GNU, Debian and Linux are words that can sometimes, depending on a context, be used interchangeably. Throughout the Guide, we are consistent and, on each occasion, use the word with the broadest scope. For instance, we would talk about the Unix command line, GNU development tools, the Debian infrastructure, and Linux process management. When a concrete system username will be needed to illustrate an example, mirko will play the role of an innocent user. You'll notice that the Guide contains many links to external resources. This can make you unhappy if you find a lot of them interesting and get distracted from this Guide. Therefore: We will always include the minimum of text, the part that is crucial to understanding the subject, directly in the Guide. External links will only provide more detailed information. As a result, it will be possible to read the Guide without following any external links. We will group all links appearing in the Guide in a separate appendix, along with proper descriptions. As a result, it will allow you to focus on the Guide exclusively, and think about all the additional resources later.
Pre-requisites To make sure you can successfully follow this guide, there are few key points we need to agree upon. Let's assume that you: installed Debian from have the network properly configured. This is important if you have a decent Internet link and want to install software directly from the Debian repositories on the Internet or your local LAN. You were given the choice to do that at the installation phase have just the base system installed (around 150 megabytes in total). To get a system like this, don't run start working with the system by logging in to the superuser account (your login name is
&overview; &first; &basic; &hw; &concepts; &procmgmt;