I tossed together a very unpolished possible outline, on the principle that having something concrete to talk about will make it easier to get started. Apologies if one of you guys also made an outline; perhaps it would actually be nice to have a couple anyway to compare possible approaches.
This should also give a sense of the "Debian Tutorial" idea and whether it will work. It's in Emacs outline-mode, so the number of * indicates level of topic nesting, and lines with no * are explanations of the preceding topic. It's much easier to read in Emacs with font-lock on, and you can collapse the explanations to look at only the table of contents, etc. Probably this should be in SGML but I'm feeling lazy. So, anyway, here it is: * Title, copyright, authors * About this manual This is the Debian Tutorial. It is aimed at readers who are new to GNU/Linux and Debian. It assumes no prior knowledge of Unix and Unix-like systems, but it does assume very basic general knowledge about computers and hardware. This manual is meant to be read in order; each chapter assumes knowledge of prior chapters. There is also a Debian Reference Guide, which is more comprehensive but less introductory. This tutorial assumes that you have already installed Debian GNU/Linux (and have read the Debian FAQ ?). If you have not yet installed the system, you may still find this tutorial useful to get a sense of what Debian is like. Please send comments about this manual to <email address>. We're especially interested in whether it was helpful to you, and how we could make it better. If you get confused while reading, or notice that we use a term without explaining it first, please email us. (or should we ask for bug reports?) DO NOT send the authors technical questions about Debian, as there are other forums for that. See <insert reference to appropriate chapter> To find the latest version of this manual, go <wherever> * Introduction (Much of this can be stolen from the Debian FAQ, or perhaps it should remain only in the FAQ and we just refer to it here. That might make sense since we're assuming installation.) ** What is Debian? A group of volunteers, a GNU/Linux distribution, etc. ** What's free software? Pointer to DFSG and info on free software. ** What's an operating system ** What's GNU/Linux mean Kernel vs. system software. ** Some history Origins of Debian, origins of GNU, origins of Unix; what is Unix (relationship of Unix to single-user home OS's). ** Why should I use Debian? What Debian is good for, and what it isn't good for. * Getting started ** Booting the system Depending on how you installed, booting may happen automatically, require action at the LILO prompt, or require a floppy disk. ** A multiuser, multitasking operating system Designed for many people to work at once; designed to keep users from breaking/crashing the system. This relates to the original purpose of Unix (above). ** Accounts: root vs. users Must identify yourself to the system, so it knows who you are and what you have permission to do. Purpose of "root" account ** Logging in Log on as yourself. You see the shell prompt $. This is where you type commands - more about it later. whoami and logout/exit commands. For the rest of the manual, when we say to enter a command, you should enter it at the shell prompt and press enter. ** Command history and editing the command line What's the command line. A brief thing on up-arrow and Ctrl-A. This is here because it saves much retyping of mistyped commands, and we want to define command line. ** Logging in as root Flip to another VC. Log on as root. whoami. Flip back to original VC. There are 6 VC's - try flipping to each! Logout. Also become root with "su". ** Special instructions if you're using X How to get a shell prompt if you're using X. X is on VC 7 (first available VC). Have to use Ctrl-Alt not just Alt to escape X. ** Shutting down You can't just hit the power switch, since the system needs advance notice to finish what it's doing. How to shut down. How to reboot. * The Basics ** The command line Consists of a command, plus options/arguments. For example, the "man" command. command = man, argument = command to give documentation on command = man, option = -k, argument = word to search for. Explain a line like: man -k [-M path] keyword from the "man man" page. ** Files What files are. Organized in a hierarchy, in directories. What full-path filenames look like. The "ls", "cd", "pwd" commands. ** Processes (Earlier I was saying this should go later, but now I'm liking it here.) Simply using ps to list processes on the system. How the system works, by starting an original process (init) and launching others after that. When you run a program, it starts one or more processes. Processes = means of multitasking. ** What's the shell The shell is a program that allows you to start, stop, and interact with other programs. It's sort of a way to talk to processes. (OK, that may be a cheesy way to explain what a shell is. Ideas?) Tutorial here which starts a process (man?), suspends it with Ctrl-Z, does something else, uses "jobs" command, returns to process, suspends it, starts one in background, "jobs" again, back to both processes and quit them? Maybe a "kill" in there? also a return to "ps" to show the relationship with shell jobs? * Reading documentation and getting help ** man, info, /usr/doc/<package>, /usr/doc/HOWTO, dwww Why there are all these things, and where to go first for what. Also mention the --help or -h option to many commands. ** Using info A brief keystroke summary/tutorial, mention TkInfo, apologize for ridiculous keystrokes. ** Viewing text files with more and less Use these to view some docs. Mention zless and when to use it. ** Getting help from a person Directions to web site, IRC, debian-user, newsgroups. Mention that there are also paid consultants. Guidelines on what to include in your post, and what to do before posting. * More on files ** Basic file operations: mv, cp, rm, rmdir, mkdir ** Permissions An introduction to permissions. groups, rwx ** Tour of the filesystem What the main directories are. Specialness of /home/username .rc files ** Using a filemanager Using Midnight Commander or the like instead of manipulating files by hand. Not a thorough tutorial, just a mention of the possibility. * Using the shell ** More on job control Fill in job control details not covered earlier, kill -9. ** Environment variables What they are, how they're inherited. Setting them. Maybe PAGER as an example, or changing the prompt ** Where commands live builtins vs. program names, PATH, "type", "whereis" ** Controlling input and output Stdin, stdout, pipelines, and redirection ** Specifying how and when to run commands "modifiers" like batch, at, nohup, nice ** Filename expansion ? * [] ** Quoting When to quote and why * Creating and editing text files ** What's a text file What's a text file, what they're used for. Mention that we've already seen some using "less". ** Text editors Used to create and make changes to a text file. There are lots. We'll be using <some editor, which one?> in this tutorial ** Creating and editing a text file A little tutorial on this. * Customizing the shell ** aliases and shell functions How to make shortcuts ** .rc files and ls -a What they're for, why they're hidden, etc. ** Login shell vs. non-login shell The difference, which files to edit for each ** Editing .bash_profile A little tutorial, perhaps set up some common environment variables or handy aliases. Use some neat text-editing tricks. ** Setting system-wide defaults How to edit shell config files in /etc, and the difference between doing that and doing it in one's own directory. ** Changing your shell Just mention the possibility, and why one might want to do it. * The X Window System (Should this pick a single wm and use it to explain things?) (I'm putting X here because it seems like people will be eager to get to a GUI - ???) ** Intro: What is X Define briefly: Server vs. clients. Window manager. Display. xdm ** What happens when you start X /etc/X11/Xsession and .xsession. Sequence of events. Customizing .xsession to change window managers. ls /usr/bin/X11/*wm gives a list of available wm Mention .xsession-errors ** Basic X operation More or less depends on your wm, but cover the constants like cut and paste; common wm features like desktops and iconification. ** Customizing X How to customize keymap, concept of X resources What's in /etc/X11/config (or perhaps just a reference to the /usr/doc/ file on this). ** Customizing the window manager A little tutorial. Pretty much have to pick a particular one to discuss for this section. * Text tools head, tail, grep, wc and so on (I think this should include "Basic Regular Expressions", as they are hard to learn from a man page.) * File tools ** Backup tools tar, cpio, dump (Perhaps something on how to back up only /home and /etc if you only have a floppy drive, since many home users won't have a tape drive) ** File compression gzip and gunzip ** Finding files find and locate * Using disks ** Concepts: filesystems, mounting, etc. ** mount (mechanics of it) ** LILO How to configure it, just the basics * Using printers ** lpr and friends lprm, lpq ** Setting up printers * Setting up networking (single-user dialup or single-user office machine. any other possibilities we should cover?) ** Relevant files in /etc ** ethernet ** ppp * Terminals Somewhere in the manual we should have "what to do if you accidentally try to read a binary file and trash your screen". Not sure it's worth a whole chapter. We could also mention: What to do if you have a mono display A little of the theory behind terminals, terminfo, etc. * Removing and installing software (This is in danger of becoming obsolete due to Deity. Will Deity be in the next release or can we ignore it for now?) ** The dpkg system How it works, how to get info about a package, how to see what packages you've installed. ** Where to get packages Mention non-us packages. Describe stable vs. unstable distributions. ** Adding software with dselect ** Adding a single package manually ** Compiling software yourself You'll have to have -dev packages installed. Put it in /usr/local, /opt, or your home directory. The configure --prefix; make; make install routine. ** Proprietary software not in .deb format What to do with this annoying stuff (wrapper packages, /usr/local) * Contributing to Debian: How can I help? ** Submit bug reports How to do that with the "bug" package ** Other things Whatever we want to say here. * Advanced topics (Should advanced topics be here? I think it would be nice to have some of these, just to show people the possibilities and give some conceptual explanation that won't really be in a reference manual. Also it always feels nice to make it to a chapter called "advanced topics." Self-esteem booster for the newbie. :) ** Introduction to shell scripting *** What and why Automate simple tasks. *** A simple example Ideas? ** Advanced files *** More on permissions Whatever was left out of the earlier discussion. Probably setting them numerically, etc. *** Hard links and symbolic links Can be pulled out of the already-written files stuff. *** chattr A useful tip? *** Large-scale copying cp -a and variants on the theme. how to copy an old system to a new one. ** Compiling the kernel How, what, and why * Where to from here? ** Other Debian manuals to read ** Other resources A few good URLs, directions to meta-documents. * Appendix A: A brief survey of available applications (Would this be useful? Or does dselect really do the job? It seems like there are a significant number of debian-user and newsgroup questions to the effect of "I'm looking for an application that does X". We could just list what exists, more or less, maybe recommend one option over another when there's an obvious choice.) ** (Subheadings could copy the structure of the menu system) -- TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to [EMAIL PROTECTED] . Trouble? e-mail to [EMAIL PROTECTED] .

