第三章 Debian系统安装提示

安装Debian的官方文档位于http://www.debian.org/releases/stable/,以及http://www.debian.org/releases/stable/installmanual。

开发版文档位于http://www.debian.org/releases/testing/,以及http://www.debian.org/releases/testing/installmanual(处于写作中,有时可能无法访问)。

尽管“Debian参考手册”写于Potato发布期间,但其中的绝大部分内部均更新至Debian Woody(3.0r0)和Debian Sarge。

3.1 常规Linux安装提示

为将使用“testing”和“unstable”软件包造成的风险减至最小,可将你的Linux系统设置为双引导,其中包含一个小巧且稳定的Linux系统。

3.1.1 硬件兼容性

Linux兼容绝大多数PC硬件,而且几乎可以安装在任何系统架构上。对我而言它的安装过程和Windwos 95/98/Me一样简单。可兼容的硬件列表也在不断增加。

如果你有一部笔记本电脑,可以去http://www.linux-laptop.net/查找对应品牌和型号的安装指导。

推荐的台式机硬件通常“比较保守”:

·用于工作目的时最好选SCSI而不选IDE,IDE/ATAPI HD适于个人使用。

·IDE/ATAPI CD-ROM (或CD-RW)。

·最好选PCI而不选ISA, 特别是网卡(NIC)。

·选用便宜的NIC。Tulip for PCI、NE2000 for ISA都不错。

·初学Linux安装时避免使用PCMCIA (笔记本电脑)。

·别使用USB键盘、鼠标......除非你想证明自己的实力。

如果你的机器特别慢,最好把硬盘插到另一个速度快些的机器上安装。

3.1.2 确定PC硬件和芯片组

在安装过程中,可能会要你确定电脑的硬件或芯片组等。有时了解这些信息并非易事,这儿有个方法:

  1. 打开机箱亲自看看。
  2. 记下显卡芯片、网卡芯片、串口和IDE端口周围的芯片上印的数字。

3.记下印在PCI和ISA插卡背面的名称。

3.1.3 在Debian下确定PC硬件

在Linux系统中使用下列命令,可获得机器当前使用的硬件及配置的相关信息。

$ /sbin/lspci -v |pager

$ pager /proc/pci

$ pager /proc/interrupts

$ pager /proc/ioports

在安装过程中按ALT-F2进入控制台,可运行这些命令获得帮助。

3.1.4 在其它OS下确定PC硬件

还可从其它操作系统中获取硬件信息。

安装其它商业版Linux,当前它们在硬件侦测方面做得比Debian好,不过一但Sarge中加入了debian-installer,情况就会改变。

安装Windows。用鼠标右键点“我的电脑”在菜单中选属性/设备管理,可获得硬件配置信息。记下所有的资源信息如IRQ、I/O端口地址和DMA。有些旧的ISA卡可能要在DOS下配置。

3.1.5 Lilo神话

加载Lilo受限于1024柱面。——错!

Debian Potato之后使用的新版lilo支持lba32。只要主板的BIOS版本支持lba32,lilo就可以冲破1024柱面的限制。

如果你使用的是旧版lilo.conf,请确定在你的lilo.conf文件开头的某处加了一行命令指示系统读取“lba32”。参阅/usr/share/doc/lilo/Manual.txt.gz。

3.1.6 GRUB

GNU HURD项目组提供的新的系统引导工具grub可使用于Debian Woody系统。

# apt-get update

# apt-get install grub-doc

# mc /usr/share/doc/grub-doc/html/

... read contents

# apt-get install grub

# pager /usr/share/doc/grub/README.Debian

... read it :)

要编辑GRUB选单,可编辑/boot/grub/menu.1st文件。参阅〖8.1.6 该如何设置启动参数(GRUB)〗获取有关启动参数设置信息,它和lilo的设置方法不太一样。

3.1.7 选择引导软盘

Potato时期,在进行普通台式机安装时我喜欢用IDEPCI磁盘套件。到了Woody,我爱用bf2.4启动盘套件。两者都使用同一版本的boot-floppies来创建引导软盘。

如果你有一张PCMCIA网卡,你就得使用标准启动盘套件(使用的软盘数最多,但可用的驱动模块最全)并在PCMCIA设置中配置NIC;别在标准网络设置对话框中设置网卡

对于特殊系统,需要创建一张自制急救盘,可以用别的机器上编译好的内核压缩镜像替换Debian急救盘中名为“linux”的内核镜像。详情参阅急救盘中的readme.txt文件。急救盘使用MS-DOS文件系统,所以你可以在任何系统下编辑它。这将为那些使用特殊网卡的人造福。

到了Sarge,可用debian-installer或pgi来创建引导软盘。

3.1.8 安装系统

这方面的官方文档见于http://www.debian.org/releases/stable/installmanual或http://www.debian.org/releases/testing/installmanual(处于写作中,有时可能无法访问)

如果你是用引导软盘安装testing发行版,你需要在安装过程中按ALT-F2打开一个控制台,手工编辑/etc/sources.list文件,将软件包下载入口从stable改为testing。

在安装/dev/hda的mbr时,我喜欢将lilo装在诸如/dev/hda3的位置,这样做可以减小引导信息被覆盖的风险。

下面是我在安装过程中所做的选择。

·MD5 passwords "yes"

·shadow passwords "yes"

·Install "advanced" (dselect **) and select

·取消emacs (如果它被选中了), nvi, tex, telnet, talk(d);

·选上mc, vim,nano-tiny或elvis-tiny任选一个。

参阅〖6.3.8 dselect——全面配置〗。即使你是个Emacs迷也不要在安装阶段使用它,nano可满足你的需要。也不要安装其它庞大的软件包如TEX(Potato曾在此阶段设置它为默认安装)。参阅〖11.2 应急编辑器〗了解此时安装nano-tiny或elvis-tiny的原因。

·在每个软件包安装对话框中,回答所有的配置提问均=“y”(替换当前值)

·exim:选第2项,因为我使用ISP的SMTP服务器发送邮件。

有关dselect的更多信息,参阅〖6.3.8 dselect——全面配置〗

3.1.9 网络所需的主机名和IP地址

LAN配置的例子(C subnet: 192.168.1.0/24):

Internet

+--- 外部ISP提供POP服务(使用fetchmail访问)

Access point ISP提供DHCP服务和SMTP中继服务

| :

Cable modem (Dial-up)

| :

LAN网关外部端口: eth0 (IP由ISP的DHCP提供

使用老式笔记本电脑(IBM Thinkpad, 486 DX2 50 MHz, 20 MB RAM)

运行Linux 2.4内核,提供ext3文件系统支持

运行"ipmasq"软件包(安装它的NAT和firewall加强包)

运行"dhcp-client"软件包配置eth0 (覆盖DNS的设定)

运行"dhcp"软件包配置eth1

运行"exim"作为smarthost (mode 2)

运行"fetchmail"设一个较长的时间值(fallback)

运行"bind" 作为高速域名服务器,在从LAN连入Internet时

作为认证域名服务器,在从LAN中连入网中某个域时

运行"ssh"使用端口22和8080(从任何地点连接)

运行"squid"作为缓存服务器连接Debian包文档服务器(APT需要连接它)

LAN网关内部端口: eth1 (IP = 192.168.1.1, 固定)

+--- LAN Switch (10 base T) ---+

| |
LAN中一些固定IP客户端 LAN中一些DHCP客户端

(IP = 192.168.1.2-127, 固定) (IP = 192.168.1.128-200, 动态)

参阅〖10. 使用Debian系统架设网关〗了解更多LAN网关服务器设置方面的信息。

3.1.10 用户帐号

为了让机器访问起来有一致的感觉,我的系统中开头几个帐号通常是不变的。

我首先创建的用户帐号名是“admin”(uid=100)。我通过该帐号转发所有的root email。该帐号加入到adm用户组(参阅〖9.2.2 “为什么GNU su命令不支持wheel组”〗),这个用户组为成员提供大量root特权的命令,通过su或sudo命令就能使用PAM。详情参阅〖4.2.2 添加用户帐号〗。

3.1.11 创建文件系统

3.1.11.1 硬盘分区

我更喜欢将不同的目录树分别装在不同的分区下,这样可以将系统崩溃造成的损失减到最小。例如:

/ == (/ + /boot + /bin + /sbin)

== 50MB+

/tmp == 100MB+

/var == 100MB+

/home == 100MB+

/usr == 700MB+ with X

/usr/local == 100MB

/usr目录的尺寸很大程度上取决于X-window应用程序和文档的数目。如果只运行控制台终端/usr可以小到300MB,但如果你装了大量Gnome应用程序2GB-3GB也很正常。当/usr增长得太大,将/usr/share移到别的分区是最有效的解救方法。对新的Linux2.4内核包,/目录的大小可能要超过200MB。

例如,当前我的Internet网关服务器的硬盘使用情况如下(由df -h命令输出):

Filesystem Size Used Avail Use% Mounted on

/dev/hda3 300M 106M 179M 38% /

/dev/hda7 100M 12M 82M 13% /home

/dev/hda8 596M 53M 513M 10% /var

/dev/hda6 100M 834k 94M 1% /var/lib/cvs

/dev/hda9 596M 222M 343M 40% /usr

/dev/hda10 596M 130M 436M 23% /var/cache/apt/archives

/dev/hda11 1.5G 204M 1.2G 14% /var/spool/squid

(有块大空间留给/var/spool/squid作为下载软件包时代理服务器的缓冲区)

下面的fdisk -l输出提供了一个分区分配方案:

# fdisk -l /dev/hda # comment

/dev/hda1 1 41 309928+ 6 FAT16 # DOS

/dev/hda2 42 84 325080 83 Linux # (not used)

/dev/hda3 * 85 126 317520 83 Linux # Main

/dev/hda4 127 629 3802680 5 Extended

/dev/hda5 127 143 128488+ 82 Linux swap

/dev/hda6 144 157 105808+ 83 Linux

/dev/hda7 158 171 105808+ 83 Linux

/dev/hda8 172 253 619888+ 83 Linux

/dev/hda9 254 335 619888+ 83 Linux

/dev/hda10 336 417 619888+ 83 Linux

/dev/hda11 418 629 1602688+ 83 Linux

里面有一个未使用的分区。留作安装第二个Linux或为增长的目录树提供扩充余地。

3.1.11.2 挂载文件系统

下面的/etc/fstab文件可完成上述分区的挂载工作:

# /etc/fstab: static file system information.

#

# file system mount point type options dump pass

/dev/hda3 / ext2 defaults,errors=remount-ro 0 1

/dev/hda5 none swap sw 0 0

proc /proc proc defaults 0 0

/dev/fd0 /floppy auto defaults,user,noauto 0 0

/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0 0

#

# keep partition separate

/dev/hda7 /home ext2 rw 0 2

/dev/hda8 /var ext2 rw 0 2

/dev/hda6 /var/lib/cvs ext2 rw 0 2

/dev/hda9 /usr ext2 rw 0 2

/dev/hda10 /var/cache/apt/archives ext2 rw 0 2

# very big partition for proxy cache

/dev/hda11 /var/spool/squid ext2 rw 0 2

# backup bootable DOS

/dev/hda1 /mnt/dos vfat rw,noauto 0 0

# backup bootable Linux system (not done)

/dev/hda2 /mnt/linux ext2 rw,noauto 0 0

#

# nfs mounts

mickey:/ /mnt/mickey nfs ro,noauto,intr 0 0

goofy:/ /mnt/goofy nfs ro,noauto,intr 0 0

# minnie:/ /mnt/minnie smbfs ro,soft,intr,credentials={filename} 0 2

对于NFS,我使用noauto、intr以及默认的hard项。如果有死连接,挂载进程可能会死掉,可以使用Control-C恢复。

对于使用Samba连接的Windows机器(smbfs),rw,auto,soft,intr是个好方案,参阅〖3.5 配置Samba〗。

对于软驱,使用noauto,rw,sync,user,exec可以防止因退盘前未执行卸载命令而造成文件损坏,但它会降低写盘速度。

3.1.11.3 自动挂载

自动挂载的要点:

·加载vfat模块,从而/etc/auto.misc可使用-fstype=auto参数:

# modprobe vfat # prior to the floppy access attempt

... or to automate this settings,

# cat >>/etc/modules

vfat

^D

... 重启系统。

·设置/etc/auto.misc如下:

floppy -fstype=auto,sync,nodev,nosuid,gid=100,umask=000 :/dev/fd0

... 此处gid=100表示“users”。

·在/home/usrer中创建链接文件cdrom和floppy,分别指向/var/autofs/misc/cdrom和/var/autofs/misc/floppy。

·将user加入“users”用户组。

3.1.11.4 挂载NFS

外部Linux NFS服务器(goofy)处于防火墙(gateway)之后。在我的LAN内部,安全策略非常宽松,因为只有我自己一个用户。为了访问NFS,NFS服务器端要按如下方式加上/etc/exports:

# /etc/exports: the access control list for file systems which may be

# exported to NFS clients. See exports(5).

/ (rw,no_root_squash)

除安装和激活NFS服务器及客户机外,这一步对激活NFS服务器也是必要的。

我通常创建一个单独的2GB分区,有时想玩玩别的Linux系统,就可以装在这儿。两个系统可共享swap和/tmp分区。多分区方案很难满足这种需求。如果只想装一个运行简单控制台模式的系统,分区留500MB就绰绰有余了。

3.1.12 DRAM内存指导

下列是有关DRAM的简单指导

4 MB: Linux内核运行的最低配置。

16 MB: 控制台系统运行的最低配置。

32 MB: 简单X系统运行的最低配置。

64 MB: GNOME/KDE系统运行最低配置。

128 MB: 流畅运行GNOME/KDE。

256+MB: 如果你银子充裕干嘛不呢?DRAM很便宜了。

使用启动选项mem=4m(或lilo append="mem=4m")可以看看只用4MB内存时系统如何运行。如果机器的BIOS比较旧且内存数大于64MB启动时就得加lilo启动参数。

3.1.13 Swap空间

我按下面的指导原则来划分swap空间:

·每个swap分区均<128MB(使用旧版2.0内核),<2GB(使用最新内核)

·总容量=(机器内存大小的1到2倍)或(128MB到2GB之间)

·将它们分散于不同的硬盘,在/etc/fstab中可使用sw,pri=1选项挂载它们。这样可确保内核以RAID方式使用swap分区,最大限度地发挥swap的性能。

·如果可能,使用硬盘中间的扇区。

尽管你不一定真的需要,但为系统设置多一些swap空间(128MB)总要好点,至少运行有内存漏洞的坏程序,系统会先慢下来而不是马上死机。

3.2 Bash设置

我按自己的喜好修改shell启动脚本:

/etc/bash.bashrc 换成你的喜好

/etc/profile 保持发布版设定 ( /w -> /W)

/etc/skel/.bashrc 换成你的喜好

/etc/skel/.profile 换成你的喜好

/etc/skel/.bash_profile 换成你的喜好

~/.bashrc 换成你的喜好,会改变所有用户的设置

~/.profile 换成你的喜好,会改变所有用户的设置

~/.bash_profile 换成你的喜好,会改变所有用户的设置

可以参考我提供的脚本样例。我喜欢系统看起来清清楚楚,所以将umask设为002或022。

PATH依次由以下配置文件设定:

/etc/login.defs - 在shell之前设定PATH

/etc/profile (会调用/etc/bash.bashrc)

~/.bash_profile (会调用~/.bashrc)

3.3 鼠标设置

3.3.1 PS/2鼠标

对于ATX主板上使用PS/2接口的鼠标,信号通路如下:

mouse -> /dev/psaux -> gpm -> /dev/gpmdata = /dev/mouse -> X

这里,创建指向/dev/gpmdata的符号链接/dev/mouse,有助于简化配置操作。(例如,如果你决定不再使用gpm daemon,只需在删掉gpm daemon后,将符号链接/dev/mouse指向/dev/psaux。)

信号通路使得对键盘和鼠标插拔操作,只要重启gpm就可以生效,不必重启X!

处于gpm输出与X输入之间的信号通路协议有两种执行方式,“ms3”(使用Microsoft 3-button serial mouse协议)和“raw”(对于已连接的鼠标使用相同的协议),此处选择的协议将决定X配置中使用的协议。

下面我将示范一下如何配置Logitech 3-button(传统Unix风格的鼠标)PS/2鼠标:

如果新版X4不支持你的显卡则需要使用旧版X3(如某些ATI 64位卡),请配置/etc/X11/X86Config而不是/etc/X11/X86Config-4,下面的示例中使用的是X4:

3.3.1.1 使用ms3协议方式

/etc/gpm.conf | /etc/X11/X86Config-4

=========================+======================================

device=/dev/psaux | Section "InputDevice"

responsiveness= | Identifier "Configured Mouse"

repeat_type=ms3 | Driver "mouse"

type=autops2 | Option "CorePointer"

append="" | Option "Device" "/dev/mouse"

sample_rate= | Option "Protocol" "IntelliMouse"

| EndSection

如果使用这种方式,设置鼠标类型只需编辑gpm.conf,X的设置将保持不变。参阅我的样例脚本。

3.3.1.2 使用raw协议方式

/etc/gpm.conf | /etc/X11/X86Config-4

=========================+======================================

device=/dev/psaux | Section "InputDevice"

responsiveness= | Identifier "Configured Mouse"

repeat_type=raw | Driver "mouse"

type=autops2 | Option "CorePointer"

append="" | Option "Device" "/dev/mouse"

sample_rate= | Option "Protocol" "MouseManPlusPS/2"

| EndSection

如果使用这种方式,设置鼠标类型可编辑gpm.conf,同时也会改变X的设置。

3.3.1.3 如何设置不同的鼠标

gpm的设备类型autops2可以自动检测出市面上大多数PS/2鼠标。不幸的是它也不是万能的,而且Woody之前的发布版中并不包括它,这时可在gpm.conf中试试ps2,或者imps2。想看看gpm支持哪些类型的鼠标可输入:gpm -t help。参阅gpm(8)。

如果使用的是2键PS/2鼠标,可选上X协议的Emulate3Buttons项。协议中2键鼠标和3键鼠标的区别在于每次按下中间键时,是自动检测还是自动模拟信号传给gpm。

对于在X协议使用raw协议方式或不使用gpm,可使用下面的设置:

·IntelliMouse: 串口鼠标(gpm转换器使用"ms3")

·PS/2: PS/2鼠标(通常首先试试这项)

·IMPS/2: 任何PS/2鼠标(2键、3键或滚轴鼠标)

·MouseManPlusPS/2: Logitech PS/2鼠标

更多信息可浏览http://www.xfree86.org/current/mouse.html。

对于典型的Microsoft滚轴鼠标,有报导说这样设置最好:

/etc/gpm.conf | /etc/X11/X86Config-4

=========================+======================================

device=/dev/psaux | Section "InputDevice"

responsiveness= | Identifier "Configured Mouse"

repeat_type=raw | Driver "mouse"

type=autops2 | Option "CorePointer"

append="" | Option "Device" "/dev/mouse"

sample_rate= | Option "Protocol" "IMPS/2"

| Option "Buttons" "5"

| Option "ZAxisMapping" "4 5"

| EndSection

对于某些最新的Toshiba超薄笔记本,在System-V init脚本中设置gpm先于PCMCIA激活可防止系统锁死。听起来古怪不过是真的。

3.3.2 USB鼠标

请确定你完成了:

·在内核中打开了“Input Core Support”和“Input Core Support/Mouse Support”或作为模块加载。

·在内核中打开了“Support for USB”、“Preliminary USB device filesystem”、“UHCI or OHCI”和“USB HID Support”或作为模块加载。

如果你没使用devfs,则需按下面的方法创建一个设备节点/dev/input/mice:

# cd /dev

# mkdir input

# mknod input/mice c 13 63

对于典型的3键USB鼠标,配置如下:

/etc/gpm.conf | /etc/X11/X86Config-4

=========================+======================================

device=/dev/input/mice | Section "InputDevice"

responsiveness= | Identifier "Generic Mouse"

repeat_type=raw | Driver "mouse"

type=autops2 | Option "SendCoreEvents" "true"

append="" | Option "Device" "/dev/input/mice"

sample_rate= | Option "Protocol" "IMPS/2"

| Option "Buttons" "5"

| Option "ZAxisMapping" "4 5"

| EndSection

更多信息可浏览http://www.linux-usb.org/。

3.4 NFS设置

安装NFS要设置/etc/exprots。

# echo "/ *.domainname-for-lan-hosts(rw,no_root_squash,nohide)" /

>> /etc/exports

详情见我的样例脚本。

3.5 Samba设置

参考资料:

·http://www.samba.org/

·samba-doc package

以“share”方式安装Samba比较容易,因为安装过程会创建WfW-type共享驱动器。但最好使用“user”模式来配置它。

可以用debconf或vi来设置Samba:

# dpkg-reconfigure --priority=low samba # in Woody

# vi /etc/samba/smb.conf

详情参阅我的脚本样例。

可通过smbpasswd向smbpasswd文件添加一个新用户:

$su -c "smbpasswd -a username"

确保使用的加密密码有恰当的兼容性。

按下表中相应的值设定os level(数字越大,服务器的优先级越高)

0: Samba with a loose attitude (will never become a master browser)

1: Wfw 3.1, Win95, Win98, Win/me?

16: Win NT WS 3.51

17: Win NT WS 4.0

32: Win NT SVR 3.51

33: Win NT SVR 4.0

255: Samba with mighty power

确认用户是共享目录所有组的成员,and that the directory path has its execution bit set to access. (该句何意?望高手指导。译者注)

3.6 打印机设置

传统打印方法是lpr/lpd。新的CUPS系统(Common UNIX Pinting System)提供了另一方法PDQ,详情参阅〖Linux Pringing HOWTO〗 http://www.tldp.org/HOWTO/Printing-HOWTO.html。

3.6.1 lpr/lpd

对于lpr/lpd的打印缓冲池(type spoolers)(lpr,lprng和gnulpr),如果它们连接的是PostScript或text-only打印机(最基本的打印机)可按如下方式设置/etc/printcap:

lp|alias:/

:sd=/var/spool/lpd/lp:/

:mx#0:/

:sh:/

:lp=/dev/lp0:

上述各行的意思是:

·Head line: lp — spool名称, alias = alias

·mx#0 — 不限最大文件尺寸

·sh — 不打印页眉

·lp=/dev/lp0 — 本地机印机,或port@host远程打印机

如果连接的是台PostScript打印机,上述设置就够用了。如果是Windows机器通过Samba打印,上述设置也适用于任何Windows支持的打印机(不支持双向通信)。你必须在Windows环境中对打印机做相应的配置。

如果你没有PostScript打印机,就得用gs安装过滤系统。有很多自动配置工具可用于配置/etc/printcap,可选择下列任何一组:

·gnulpr, (lpr-ppd)和printtool — 我用这种

·lpr和apsfilter

·lpr和magicfilter

·lprng和lprngtool

·lprng和apsfilter

·lprng和magicfilter

想运行GUI配置工具如printtool,需要root权限,参阅〖9.4.11 X下获取root权限〗。printtool可创建打印缓冲池,它使用gs模拟PostScript打印机,所以要使用PostScript打印驱动来访问它们。在Windows端,“Apple LaserWriter”是标准件。

3.6.2 CUPS

首先安装Common UNIX Printing System(或CUPS):

# apt-get install cupsys cupsomatic-ppd

# apt-get install cupsys-bsd cupsys-driver-gimpprint

接着用浏览器来配置系统:

$ mybrowser http://localhost:631

举个例子,将你的打印机联接到可访问打印机列表中:

·在主页面上点击“Printers”,然后点“Add Printer”,

·输入用户名和密码,进入“root”,

·按提示添加打印机,

·返回“Printers”页面,点“Configure Printer”,

·设定打印纸尺寸、分辨率和其它参数。

更多信息可浏览http://localhost:631/documentation....ups-help.html。

对于2.4内核,参见〖7.2.6 并行端口支持〗。

3.7 其它主机安装提示

3.7.1 初始化安装完成后再装些什么

到现在,你已经拥有一个小巧但功能颇强的Debian系统。接下来,可以安装那些较大的软件包了。

·运行tasksel。参阅〖6.2.1 使用tasksel安装任务〗。

可按需选择

·End-user — X window system

·Development — C and C++

·Development — Python

·Development — Tcl/Tk

·Miscellaneous — TeX/LaTeX environment

·For others — 我把tasksel作为安装指导,查看<Task Info>了解有关任务的安装列表 然后用dselect来选择安装。

·运行dselect。

在此,你最想做的事就是选择钟爱的编辑器和其它需要的程序。你可以同时安装Emacs的多个变种。参阅〖6.3.8 dselect——全面配置〗和〖11.1 流行的编辑器〗。

你也可以将某些默认的软件包替换成特定版本。

·lynx-ssh (而不是lynx)
·...

·...

我通常会编辑/etc/inittab简化关机步骤。

...

# What to do when CTRL-ALT-DEL is pressed.

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now

...

3.7.2 模块

在初始安装期间可进行设备驱动模块配置。以后还可使用modconf进行配置,它是基于菜单界面的工具,可用来配置那些在初始安装时未曾配置的模块或完成新内核安装后的配置工作。

所有预加载(preloading)模块的名称要加入到/etc/modules列表。也可以使用lsmod和depmod进行手工操控。

对于2.4版内核别忘了在/etc/modules中加上几行来处理IP伪装(ftp等)。参阅〖7.2 模块化的2.4内核〗,特别是〖7.2.3 网络功能〗。

3.7.3 CD-RW基本步骤

编辑下列文件:

/etc/lilo.conf (添加append="hdc=ide-scsi ignore=hdc",

执行lilo激活)

/dev/cdrom (创建链接# cd /dev; ln -sf scd0 cdrom)

/etc/modules (添加"ide-scsi"和"sg"。如果需要可再加上"sr"。)

详情参阅〖9.3 刻录机〗。

3.7.4 多内存和关机自动断电

编辑/etc/lilo.conf,设置启动提示参数如下,实现识别大内存(适用于2.2版内核)和关机自动断电(适用于APM):

append="mem=128M apm=on apm=power-off noapic"

执行lilo完成上述设置。对称多处理器内核(SMP-kernel)需要apm=power-off,而对我那堆糟糕的SMP硬件而言noapic几乎没什么用处。系统启动时,在启动提示符后直接输入这些参数效果也一样。参阅〖8.1.5 启动提示符使用技巧〗。

在Debian的2.4版内核中apm是作为模块编译的,对于这种情况,可在系统启动后运行

# insmod apm power_off=1

或设置/etc/modules:

# echo "apm power_off=1" >>/etc/modules

还可以这样:编译新版内核时加入ACPI支持可达到同样的效果,而且这种方式更适合SMP(只有较新的主板才支持ACPI)。对于较新的主板2.4版内核可以直接检测到大内存。

CONFIG_PM=y

CONFIG_ACPI=y

..

CONFIG_ACPI_BUSMGR=m

CONFIG_ACPI_SYS=m

在/etc/modules中按如下顺序添加参数:

ospm_busmgr

ospm_system

或者重新编译内核,在配置时将上述内核选项均设为“y”。总之,有了ACPI支持就不再需要任何启动提示参数。

3.7.5 无法访问某此站点的怪问题

新的Linux内核默认开启ECN,对于某些使用劣质路由器的站点,会出现无法访问的问题。检查ECN状态可使用:

# cat /proc/sys/net/ipv4/tcp_ecn

... 或

# sysctl net.ipv4.tcp_ecn

将它关闭:

# echo "0" > /proc/sys/net/ipv4/tcp_ecn

... 或

# sysctl -w net.ipv4.tcp_ecn=0

每次启动时禁止TCP ECN,可编辑/etc/sysctl.conf,加上:

net.ipv4.tcp_ecn = 0

3.7.6 PPP拔号设置

安装pppconfig软件包,设置PPP拨号访问。

# apt-get install pppconfig

# pppconfig
... 按提示配置PPP拨号

# adduser user_name dip

... 允许user_name进行PPP拨号访问

用户(user_name)进行PPP拨号访问:

$ pon ISP_name #开始PPP访问,接通你的ISP

... 享受Internet

$ poff ISP_name #停止PPP访问, ISP_name可选

另外,wvdial软件包可以用来设置PPP拨号访问。

3.7.7 /etc中的其它配置文件

Debian标准安装不包含/etc/cron.deny文件,想添加可拷贝/etc/at.deny。

第四章 Debian指南

本章为那些初涉Linux世界的新手指出了基本方向。如果你接触Linux已有一段时间,可以当成是一次实战测验。

4.1 信息资源

到http://www.debian.org/doc/(Debian Documentation Project (DDP))看看,那儿有最权威的Debian参考资料。其中的许多文档都安装在/usr/share/doc/下。还可以到/usr/share/doc-base看看,那儿有这些文档的打印文件。在~/.bash_profile中添加export CDPATH=.:/usr/share/doc:/usr/src/local,这样更容易访问这些文档目录。

到http://www.tldp.org/(Linux Documentation Project (LDP))看看,那儿有最权威的通用Linux参考资料。LDP资料通常安装在/usr/share/doc/HOWTO/目录下。

浏览本地或远程FTP站点的文档,可在Midnight Commander中按下F9(参阅〖4.3 午夜指挥官(Midnight Commander)〗)。

4.2 Linux控制台

4.2.1 登录

在普通Linux系统中,有6个独立的伪终端(pseudo-terminals)。同时按下Left-Alt键和F1-F6键可在这些伪终端间切换。每个伪终端均需单独登录。多用户环境是Unix最鲜明的特征,而且一用就上瘾。

我通常使用一个普通用户帐号,在其中可使用sudo、super或su -c来获得有限的root访问权限。

4.2.2 添加用户

系统安装完毕,我通常会添加一个普通用户帐号,如果用户名为“penguin”,

# adduser penguin

就会创建一个这样帐号。

使用vigr命令编辑/etc/group:

src:x:40:admin, debian, ...

staff:x:50:admin

...

对于那些执行系统管理任务并且独享su特权、CVS src特权的用户,我将它们纳入staff用户组(参阅〖9.2.2 “为什么GNU su命令不支持wheel组”〗)。

在系统默认安装状态下,staff用户组属于/home,用来存放那些完成用户帐号维护工作的用户,而src用户组属于/usr/src,用来存放那些完成内核编译等工作的用户。

用adduser,addgroup,vipw,vipw -s,vigr,以及vigr -s检查一下用户及用户组是否配置得当。

4.2.3 如何关机

和其它现代操作系统一样,系统的工作文件均缓存于内存,所以在切断电源之前Linux需要完成特别的关机程序。下面就是多用户模式下使用的关机命令:

# shutdown -h now

这是单用户模式下使用的关机命令:

# poweroff -i –f

等待屏幕上显示“System halted”字样之后切断电源。如果在BIOS和Linux中开启了apm,系统会自动切断电源。详情参阅〖3.7.4 多内存和自动关机〗。

4.2.4 命令行编辑

bash是默认shell,它能记住使用过的命令。只需按up-arrow键就能进入记忆模式,使用上下箭头找你想输入的命令。其它需要牢记的重要击键有:

Ctrl-C: 中止程序

Ctrl-D: 中止输入

Ctrl-S: 停止屏幕输出

Ctrl-Q: 恢复屏幕输出

Ctrl-Alt-Del: 重启/关闭系统(参阅/etc/inittab)

Lt-click-and-drag-mouse: 选择并拷贝到剪贴板(gpm)

Ctrl-click-mouse: 将剪贴板内容粘贴到光标处(gpm)

对于常规Linux系统控制台,上述命令中通常指的是左边的Ctrl和Alt键。

4.2.5 需要牢记的基本命令

下列是最基本的Unix命令:

ls, ls -al, ls -d, pwd, cd, cd ~user, cd -,

cat /etc/passwd, less, bg, fg, kill, killall,

uname -a, type commandname, sync, netstat,

ping, traceroute, top, vi, ps aux, tar, zcat,

grep, ifconfig, ...

在命令提示符后输入man或info加相关命令名,可查看该命令的意思。许多Linux命令可使用下列调用获得简要帮助信息:

$ commandname –help

$ commandname –h

whatis commandname可以显示任何命令的单行概述,这些内容来自于相关帮助文件的开头。

4.2.6 X Window系统

从控制台启动X Window系统:

# exec startx

右键点击root窗口可以唤出选择菜单。

4.2.7 重要键盘命令

可在Linux控制台中使用的重要击键:

Alt-F1 thru F6: 切换到其它伪终端

Ctrl-Alt-F1 thru F6: 切换到其它伪终端

(在X-window、DOSEMU等运行环境中)

Alt-F7: 切换回X-window

Ctrl-Alt-minus: 降低X-window的显示分辩率

Ctrl-Alt-plus: 提高X-window的显示分辩率

Ctrl-Alt-Backspace: 中止X-windows

Alt-X, Alt-C, Alt-V: 通用的Windows/Mac剪切、拷贝、粘贴键

在某些程序如Netscape Composer中,组合键中的Ctrl键换成了Alt键。

4.3 午夜指挥官(Midnight Commander)

午夜指挥官是Linux控制台和其它终端环境中的GNU“瑞士军刀”。

4.3.1 安装MC

# apt-get install mc

接着在~/.bashrc(或/etc/bash.bashrc,.bashrc会调用它)中加上函数:

mc ()

{

mkdir -p ~/.mc/tmp 2> /dev/null

chmod 700 ~/.mc/tmp

MC=~/.mc/tmp/mc-$$

/usr/bin/mc -P "$@" > "$MC"

cd "$(cat $MC)"

rm -f "$MC"

unset MC;

}

该函数使MC可以改变工作目录直至退出。

如果处于kon或Kterm for Japanese等使用某些图形特性的终端,MC运行会出一些问题,可在MC命令行中加上-a加以预防。

4.3.2 启动MC

$ mc

在MC中用户可轻而易举使用菜单完成所有的文件操作。

4.3.3 文件管理器

默认状态下,所有文件列于两个目录面板。一种实用的方式是将右边窗口设定为“information”,用来查看文件访问权限等信息。下面是一些基本的击键。如果gpm daemon在运行,你还可以使用鼠标。(在MC中进行剪切和粘贴操作时另忘了按下shift键。)

·F1: 帮助菜单

·F3: 内置文件阅读器

·F4: 内置编辑器

·F9: 激活折叠菜单

·F10: 退出MC

·Tab: 在两个窗口间移动

·Insert: 为多文件操作生成文件如拷贝

·Del: 删除文件(小心——请设置MC为安装删除模式)

·Cursor keys: 与各自的名字一致

4.3.4 命令行技巧

·cd命令可改变焦点屏幕中的目录位置。

·Control-Enter或Alt-Enter可以将文件名拷贝到命令行。在编辑命令行时可与cp或mv命令结合使用。

·Alt-Tab 显示shell命令名供用户选择。

·可指定MC两个目录窗口的起始目录;例如mc /etc /root。

·Esc + numberkey == Fn (例如Esc + 1 = F1, etc;Esc + 0 = F10)

·Esc key == Alt key (= Meta, M-);例如Esc + c等价于Alt-c。

4.3.5 编辑器

内置编辑器的剪切-粘贴方式很有意思。按F3在起始处做标记,再次按F3在终止处做标记,这时中间的选中部分会高亮显示。然后你可以移动光标到某处按下F6,被选中部分就会移到该处。如果你按下的是F5,选中部分就会拷贝到该处。F2用来存盘,F10退出,所有方向键的作为和它们的名字一样直观。

该编辑器可直接打开某个文件:

$ mc -e filename_to_edit

$ mcedit filename_to_edit

虽然它不是多窗口编辑器,但你可利用Linux多控制台的特性达到相同的效果。要在窗口间进行拷贝操作,可使用Alt-Fn切换虚拟控制台,然后使用“File->Instert file”或“File->Copy to file”将一个文件中的内容拷贝到另一个文件。

可指定任何外部编辑器作为内置编辑器。

许多程序使用环境变量EDITOR或VISUAL来决定使用哪个编辑器。如果你用不惯vim,可在~/.bashrc中加上几行来指定新的mcedit:

..

export EDITOR=mcedit

export VISUAL=mcedit

...

我强烈推荐将它们设定为vim。在Linux/Unix世界里就该使用vi(m)命令。

4.3.6 阅读器

非常精巧的阅读器。它是在文档中搜索单词的利器。在/usr/share/doc目录下我总是用它,面对大量的Linux资料用它浏览是最快的方法。阅读器可以直接找开文件:

$ mc -v filename_to_view

(注意,有些不规范的软件包仍将它们的文档放在/usr/doc目录下。)

4.3.7 自动启动特性

在文件上按Enter,会激活相关的程序操作该文件。这是MC的一个极方便的特点。

executable: 执行命令

man, html file: 将文件内容传入阅读器程序

tar, gz, rpm file: 象浏览子目录一要浏览它的内容

为了使这些文件特性生效,不要将可阅读文件设成可执行文件。可在MC文件菜单中改变文件属性或使用chmod命令。

4.3.8 FTP虚拟文件系统

MC可通过FTP访问文件。按F9转到菜单栏,输入p激活FTP虚拟文件系统。按username:passwd@hostname.domainname格式输入URL,远程文件目录就会以本地目录的方式显示出来。

4.4 进一步学习

许多Unix入门级参考书出自在O'Reilly,在计算机的各个领域,想买到优秀的指导书,O'Reilly不会让你失望。LDP的文档Tips-HOWTO(http://www.tldp.org/HOWTO/Tips-HOWTO.html)是另一个极好的资源。更多资源参阅〖15. Debian技术支持〗。

Debian参考手册(3-4)相关推荐

  1. Debian参考手册读书摘要

    Debian参考手册笔记 第1章 GNU/Linux教程 1.1.1 欢迎提示 /etc/motd中保存非GUI登录时的欢迎提示信息 Debian GNU/Linux jessie/sid foo t ...

  2. linux获取完整的man(manpages)linux参考手册/中文man的下载和使用/获取buildin 命令的完整帮助文档/多种man手册/man着色colorful man

    文章目录 获取完整的man(manpages)linux参考手册/中文man的下载和使用/获取buildin 命令的完整帮助文档 搜索manpages 相关package 安装扩展man手册 refe ...

  3. Sphinx 0.9.9/Coreseek 3.2 参考手册

    Sphinx 0.9.9/Coreseek 3.2 参考手册 Sphinx--强大的开源全文检索引擎,Coreseek--免费开源的中文全文检索引擎 Copyright © 2006-2010 (co ...

  4. Spring Boot 2.0.0参考手册_中文版

    Spring Boot参考文档 第一部分:Spring Boot文档 1. 关于文档 Sring参考文档可以通过html,pdf和epub 三种形式得到.最新的文档可以从docs.spring.io/ ...

  5. 嵌入式Linux图形系统快速参考手册

    嵌入式Linux图形系统快速参考手册 (Embedded Linux Graphics Quick Reference Guide) 译自:http://www.linuxdevices.com/ 原 ...

  6. html iso标准文档,HTML ISO-8859-1 参考手册

    # HTML ISO-8859-1 参考手册 HTML 4.01 支持 ISO 8859-1 (Latin-1) 字符集. ISO-8859-1 的较低部分(从 1 到 127 之间的代码)是最初的 ...

  7. 陈长沙:学习者参考手册

    学习者参考手册 组队学习的核心是"和一群有意思的人在一起学感兴趣的知识的过程,这个过程充满了人与人之间的交流互动,是融入社交属性和学习属性的过程".作为参与组队学习活动的学习者,一 ...

  8. 组队学习:学习者参考手册

    学习者参考手册 作为希望参与组队学习活动的学习者,一定想了解有关本次活动的各种环节.我就通过这份手册来给大家介绍一下. 本手册一共分为四个部分,分别是活动角色划分,活动流程介绍.打卡环节介绍.角色职责 ...

  9. GDB 命令参考手册

    GDB 命令参考手册                                                                                           ...

  10. CSS选择器和参考手册

    CSS的基本语法 选择器:通过选择器可以选中页面中的指定元素.声明块:通过声明块来指定元素设置样式.声明块由一个一个的声明组成声明是由一个名值对结构:一个样式名对应一个样式值,名和值之间以:连接,以; ...

最新文章

  1. java 给窗口加菜单_程序求助:如何给窗口添加菜单?
  2. 使用webpack、vue来开发一个todo项目
  3. Hive Fetch Task
  4. 字符“23.00”转成int型!Input string was not in a correct format.
  5. 图综合练习--拓扑排序_03 数据结构与算法 - 排序
  6. 飞桨领航团邀你出战!黑客松线下48H Coding Party等你来
  7. java设计模式组合模式详解_《JAVA设计模式》之组合模式(Composite)
  8. HTML只言片语网站导航模板
  9. 关于SQL的Group By
  10. ajaxSubmit
  11. mbedtls交换服务器证书,mbedtls | 07 - DH秘钥协商算法的配置与使用
  12. Unity 游戏数据的存档读档,数据加密与解密
  13. android 亮度调节 接口,Android亮度调节的几种实现方法
  14. GraphTrans:Representing Long-Range Context for Graph Neural Networks with Global Attention
  15. c/c++ 洛谷 P1428 小鱼比可爱
  16. MarkMan – 马克鳗 IU好伙伴啊
  17. python读取dat数据_dat文件读写_c语言读写dat文件_c语言读dat文件 - 云+社区 - 腾讯云...
  18. HDMI EDID详细解析——C代码实现
  19. 杰理之提示音配置【篇】
  20. GParted图文磁盘分区教程

热门文章

  1. [PHP] 新浪企业邮箱登录功能难点梳理
  2. 随手写的一个小程序,将gz压缩文件读取到内存中 并用base64编码 及相关解码
  3. Qt 及QT VS Tools插件官方下载及安装
  4. hrbust 1865人类希望——kokoⅡ【思维】
  5. Xcel Energy与D.E.Shaw签署100MW光伏电站购电协议
  6. [转]库存那些事儿_4_收货
  7. maximum.accumulate函数及ndarray和list比较
  8. 计算机二级考试vb试题,2016计算机二级考试《VB》真题练习
  9. calipso是什么意思_porridge是什么意思_porridge的翻译_音标_读音_用法_例句_爱词霸在线词典...
  10. 微信小程序之头像裁剪,添加字幕,生成新图片下载等 解决真机调试和开发者工具 图片不显示等问题