`
weiyinchao88
  • 浏览: 1180559 次
文章分类
社区版块
存档分类
最新评论

Slackware官方用户手册

 
阅读更多


题目:Slackware概要---Slackware官方用户手册目录
作者:Perl_Kid
创建日期:2004年10月4日
最后修改:2004年10月4日
版权声明:GNU GPL

Slackware概要
Slackware官方用户手册
原作者:David Cantrell
Logan Johnson
Chris Lumens
这份文档是在GNU GPL版权下授权的。
这份版权声明包含在附录A里。
本节翻译chendy来自linuxsir

Linux是属于Linus Torvalds的注册商标。Slackware是属于BSDi和Patrick Volkerding的注册商标。
================================================================

目录
前言
本书中使用的约定
I.介绍
1.介绍Slackware Linux
什么是Linux?
什么是Slackware?
开放源代码和自由软件
2.帮助
系统帮助
在线帮助
II.安装
3.安装
获得Slackware
系统需求
小结
III.配置
4.系统配置
系统纵览
选择一个内核
小结
5.网络配置
网络硬件
网络工具
/etc文件系统
rc.inet1
rc.inet2
NFS(网络文件系统)
tcp_wrappers
小结
6.X窗体系统
xf86config
XF86Setup
对话配置文件
服务器和窗体管理器
选择一个桌面
输出显示
小结
7.启动
LILO
LOADLIN
多系统引导
小结
IV.使用Slackware Linux
8.Shell
用户
命令行
Bourne Again Shell(bash)
虚拟终端
小结
9.文件系统结构
所有权
权限
连接
mount设备
NFS Mounts
小结
10.管理文件和目录
ls
cd
more
less
cat
touch
... ...
小结
11.进程控制
后台操作
前台操作
ps
kill
top
小结
12.系统管理概要
用户和组
正确关闭系统
小结
13.基本网络命令
ping
finger
telnet
FTP客户端
email
lynx
wget
traceroute
和其他人交谈
小结
14.文件归档
gzip
bzip2
tar
zip
小结
15.vi
启动vi
模式
打开文件
保存文件
退出vi
vi的配置
vi技巧
小结
16.Slackware软件包管理
简介包格式
软件包工具
制作软件包
制作Tags和Tagfiles(用于安装)
小结
17.ZipSlack和BigSlack
什么是ZipSlack/BigSlack?
获得ZipSlack/BigSlack
安装
启动ZipSlack/BigSlack
添加、删除和升级软件
常见问题
获得帮助
小结
术语表
A.GNU通用公共授权
导言
条款和拷贝、发布和修改的情况
如何添加这些条款到你的新程序中
(The End)

题目:Preface——前言
翻译:chendy来自linuxsir
创建日期:2004年12月27日
最后更新:2004年12月27日
版权:GPL
正文:
【前言】
Slackware Linux操作系统是一个基于Intel构架计算机上的强大平台。它的设计目标是稳定、安全,同时可作为高端服务器和强大的

工作站。
这本书的目的是指导如何你开始使用Slackware Linux操作系统。这并不意味着简单面面具到地覆盖该发行版的所有细节,而是显示

它能作什么并告诉你操作该系统的基本知识。
在你有了Slackware Linux的使用经历后,我们希望你能将本书作为手边的参考。我们同样希望当你的朋友们问到“你所运行着的酷

毙了的Slackware Linux操作系统”时你会将本书借给他们。
然而这部书也许不是符合你口味的小说,我们依然会试着尽量使它有趣。运气好的话,我们也许会理出一个电影主题,当然我们也希

望你能从中学到东西并觉得它有用。
好了,请看下文。
【书中使用的约定】
这本书是用SGML用DocBook 4.0 DTD写成的。因此,我们使用内建DocBook元素来表示文件参考,命令参考,以及文件内容参考。这为

书中的所有方面提供了统一的形式。在你继续以前你需要熟悉一下一些我们的约定。
任何时候我们提到你要运行一条命令时,它将看起来像这样:
引用:
command

在很少见的场合,一条命令可能会超过本书一行的长度。当那种情况发生时,我们将该命令换行到下一行并使用一个反斜杠标明命令

继续。这是一个例子,来自书中稍后的内容:
引用:
ifconfig eth0 192.168.1.10 broadast 192.168.1.255 /
netmask 255.255.255.0

文件名和目录将被提及贯穿于全书。它们将看起来像这样:
引用:
filename
directory

许多屏幕的命令输出和配置文件的内容也同样在书中使用到。它们将以这样的形式出现:
引用:
command output

许多时候当我们列出你将运行的命令时,我们会以一个示例命令符来显示它们。当一个命令需要以普通用户的身份来运行,我们将显

示美元符($)为命令提示符。当一个命令需要以根用户的身份来运行,我们将显示井号(#)为命令提示符。

(正文完)

Slackware Linux Essentials
本节翻译 kill_ads来自linuxsir

一,
1)软件系列
A 最基本的系统,包含一些必要的程序,一个文本编辑器和基本的通信工具
AP 不需要x-window环境的各种程序
D 程序开发工具,编译器,调试器,解释器和帮助文档
DES 包含一些GNU libc crypt() 函数
E GNU emacs
F FAQs, HOWTOs和各种文档
GTK GNOME桌面环境,GTK库和GIMP
K Linux内核源代码
KDE K桌面环境,和MacOS,windows很像的一个x环境,KDE需要Qt库的也包含了
N 网络程序,Daemons,邮件程序,telnet,新闻阅读器等等
T teTeX文档格式系统
TCL 工具支配语言,Tk, TclX, TkDesk.
X 基本的x-window系统
XAP x应用程序,不属于主要的x-window桌面环境,例如:Ghostscript和Netscape
XD X11程序开发,库,服务器连接包和PEX支持
XV XView库,开放的虚拟的和非虚拟的window管理器,还有其他的Xview应用程序
Y 游戏

2)几种安装模式的选择:(SELECT PROMPTING MODE)
引用:
FULL
此选项将安装"PACKAGE SERIES SELECTION"中选择的所有软件包.没有任何提示.这是最简单的安装方法,此过程中你不需要做任何选择.当然,这个选项会占用大量硬盘空间.
引用:
NEWBIE
此选项将安装所有你选择的系列中的必须的包.对于其他包,它会在提示你选择YES NO或者SKIP,YES和NO是显而易见的,SKIP将继续下一个软件包.此外,你还会看到每一个软件包的描述和大小,帮助你作出选择.我们推荐新用户使用此选项,因为它可以确保所有必须的包都被安装.但是,由于有提示的原因速度会比较慢.
引用:
MENU
这是一个更快更高级的NEWBIE的版本.对于每一个系列都会有显示,你可以选择你想安装的不必要的包.必要的包将不会被显示.
引用:
EXPERT
对于很多高级用户,可使用此选项.它允许你自由选择安装包.如果取消必要的包,会导致系统瘫痪.换句话说,你可以完全控制.从每个系列中选择你要安装的包.这个选项不推荐新手使用,因为它太容易给自己找麻烦了.
引用:
CUSTOM & TAG PATH
此选项也是面向高级用户,它允许你安装基于custom tag文件.这对于批量安装很有用,很快捷.更多的信息参考第16章

二,主要目录
/sbin
用户的一些基本的应用程序都存放在这里,包括了一个用户使用系统时最基本的程序,例如:shell,文件
系统命令(ls,cp等)。/sbin目录在系统安装后一般就不再会被修改,如果修改了,通常是我们在进行包
升级

/boot
系统加载器LILO的文件,这个目录在系统安装好后一般也不会被修改

/cdrom
记住,每个驱动器都将被挂载为一个目录放在根目录下,/cdrom就是你的光驱的一个挂载点

/dev
linux中所有东西都将被认为是一个个文件,甚至是串口,硬盘,扫描仪这样的硬件。为了访问这些设备
,要使用一个特殊的被称为device node的文件,所有的device node都存储在/dev目录中,当接触许多
UNIX类的系统后,你就会发现这是真的。

/etc
这个目录存放着系统配置文件,x-window配置文件,用户数据库,启动脚本。系统管理员对这个目录十分
熟悉。

/home
linux是一个多用户的操作系统,每一个用户都会被给予一个账户和唯一个存放个人文件的目录,这个目
录被称为是用户的家。

/lib
这里存放着基本的系统需要的库文件,C库,dynamic loader,ncurses库,还有内核模块

/lost+found
系统启动的时候会检查错误,如果发现错误,fsck程序将会查看是否有错误被修正,修正的部分将会被写
入/lost+found目录里

/mnt
这个目录被临时提供给挂载硬盘或者移动存储器

/opt
可选择的软件包,建立/opt的想法是把每一个软件包都安装到/opt/<软件包>,
这将有利于以后删除,slackware分发了一些东西到/opt/(例如kde安装到/opt/kde)不过你也可以把任何
东西放到里边

/proc
这是一个特殊的目录,他不属于真正的文件系统,是一个虚拟的用来访问linux内核信息的文件系统,你可
以在/proc里输入files来获取内核的很多信息;你也可以通过他来向内核发送信息,可以尝试一下
cat /proc/cpuinfo

/root
系统管理员对这个目录很熟悉,/root替代了/home/root,原因很简单:如果/home和/在不同的分区,并且
没有被加载,root会很自然的登陆并修复问题,那如果/home在损坏的文件系统上,那root就无法登陆了

/sbin
这里存放着系统启动过程中root使用的一些基本程序,正常情况下用户不能在这个目录中运行程序

/tmp
临时存储单元,任何用户都可以读写此目录

/usr
这是linux系统中很大的一个目录,几乎大多数东西都在这里,程序,文档,内核源代码,x-window系统,
这是你安装程序的目录

/var
系统日志,缓存数据,程序锁文件都存放在这里,这里的数据会经常改变

三,系统启动
slackware在内核被加载后第一个运行的程序是init,此程序会读/etc/inittab文件,然后执行/etc/rc.d/rc.S脚本在进入runlevel前准备系统.rc.S会激活你的虚拟内存,挂载文件系统,清空某些日志目录,初始化即插即用设备,加载内核,配置PCMCIA设备,设置串口,然后运行System V init脚本.rc.S还会调用/etc/rc.d中部分脚本来完成任务.

rc.S 系统初始化脚本
rc.modules 加载内核模块,例如:网卡,ppp支持等,如果此脚本找到了rc.netdevice,就会执行它
rc.pcmcia 用户pcmcia设备,例如:笔记本用户的pcmcia调制解调器,网卡
rc.serial 使用setserial命令来配置你的串口设备
rc.sysvinit 用户运行期望的runlevel,下面有详细介绍

四,Runlevel初始化脚本
rc.0 关闭系统(runlevel 0)
rc.4 多用户启动(runlevel 4),但是在X11中使用KDM, GDM, 或 XDM作为登陆管理器
rc.6 重启系统(runlevel 6)
rc.K 以单用户模式启动(runlevel 1)
rc.M 多用户模式(runlevel 2和3),使用标准文本登陆方式,在slackware中这是默认的runlevel

五,网络初始化
rc.inet1 由netconfig生成,这个文件用户配置网络
rc.inet2 在rc.inet1之后运行,启动基本网络服务
rc.atalk 启动AppleTalk服务
rc.httpd 启动Apache服务器
rc.samba 启动windows文件和打印共享服务
rc.news 启动新闻服务器

六,其他文件
rc.cdrom 开启后,这个脚本会扫描光盘驱动器并且挂载为/cdrom
rc.gpm 开启鼠标服务,允许你在linux控制台里拷贝和粘贴
rc.ibcs2 开启Intel Binary Compatibility支持,如果你要运行从SCO UNIX或其他商业UNIX上编译来的程序,可以使用此功能,但这不是运行Linux程序所必须的
rc.fonts 为控制台加载自定义字体
rc.local 含有很多特殊的启动命令,这个文件本来是空的,留给系统管理员使用。这个脚本将在最后运行

七,/etc里的文件
/etc/inetd.conf inetd的配置文件
/etc/resolv.conf DNS配置信息
/etc/hosts 本机域名解析host文件

第四章 系统配置
本节翻译kobe0208
目录
系统纵览
选择内核
概要

在你可以配置系统更高级的部分之前,最好先学习一下系统是如何组织起来的,以及我们可以使用什么命令来搜寻文件和程序。学习一下如何编译一个定制的内核以及有哪些步骤。这一章将使你熟悉系统组织结构和配置文件。然后你可以继续配置系统更高级的部分。

系统纵览
在钻研各方面的配置之前,理解一个Linux系统是如何整合起来的是很重要的事情。Linux系统与Dos或者Windows系统(乃至Macintosh)有着很大的区别,但是这些部分将可以帮助你了解布局以便你可以更轻松的根据你自己的需要配置系统。

文件系统布局
首先在Slackware Linux和Dos或者Windows系统之间,最值得注意的不同点是-文件系统。我们不需要使用驱动器号表示不同的分区。在Linux下,只有一个主目录。你可以联想成Dos下的C盘。你系统上的每一个分区都被挂载成主目录下的一个目录。这有点像一个不断扩容的硬盘。

我们把主目录称作根目录,将它表示成一个斜线(/)。这个概念可能看起来很奇怪,但事实上它使你增加更多的空间时更简单。例如,我们假设你已经把/home分区的空间使用完了。很多用户安装Slackware时使用一个大的根分区。那么,当一个分区可以挂载到任何目录上时,你可以很简单的接上一块新硬盘,挂载到/home下。现在你可以给你的系统“移植”更多的空间。并且不必移动任何数据。

下面,你可以看到Slackware下主要的目录描述:

/bin
必要的用户程序都储存在这儿。这是一个用户使用系统所必须的最小化的程序。像shell和文件系统命令(ls,cp等等)都存储在这。/bin目录在安装后一般不会改变。修改时,常以我们提供的包升级的形式。

/boot
Linux装入程序(LILO)使用的文件。此目录安装后可以进行小部分改动。

/cdrom
还记得所有的驱动器都被挂载到一个根目录下的目录么?好,/cdrom为你的光驱提供了一个挂载点。

/dev
在Linux中每样东西都被看作文件,甚至硬件设备,如串口,硬盘和扫描仪。为了访问这些设备,给出了一个叫设备节点的特殊文件。所有的设备节点文件都被储存在/dev目录下。你将会在很多类UNIX系统中发现这个目录。

/etc
这个目录存储着系统配置文件。X Window的配置文件,用户数据库,系统启动脚本的所有文件。系统管理员将会很熟悉这个目录。

/home
Linux是一个多用户操作系统。系统中的每个用户都为其个人文件被给予一个帐户和单独的目录,用以储存个人文件。这个目录被称为用户的“home”目录。/home目录是系统为用户主目录提供的缺省的位置。

/lib
基本操作所需要的库文件储存在这。C库,动态装入程序,ncurses库和内核模块就在其中。

/lost+found
当系统启动时,文件系统查找错误。如果发现错误,fsck程序运行查看是否可以修复。修复的文件系统部分将写入/lost+found目录下。

/mnt
这个目录为硬盘或可移动磁盘提供临时挂载点。

/opt
可选择的软件包。每个软件包安装到/opt/<软件包名称>,使以后移除更方便。Slackware发行版本有很多东西在/opt目录下(如KDE在/opt/kde目录下),你同样可以增加软件到/opt目录下。

/proc
这是一个独特的目录,它不是文件系统真正的一部分,而是一个虚拟的文件系统提供访问内核信息。内核想要你知道的各种信息通过/proc目录下的文件传送给你。你同样可以通过这些文件发送信息给内核。试试使用命令
cat /proc/cpuinfo。

/root
系统管理员被称为"root"。root的主目录在/root而不是/home/root。原因很简单。如果/home与/不在同一分区,就无法被挂载?root自然应该进入系统修复错误。如果它的主目录在被损坏的文件系统上,就很难进入系统。

/sbin
root所运行的和在系统启动过程所用到的核心程序都在这儿。普通用户不能执行这个目录下的程序。

/tmp
临时储存单元。所有的用户对这个目录都有读写的权力。

/usr
这是Linux系统中的一个大目录。别的任何东西几乎都在这,程序,文档,内核源代码和X Window系统。你所安装的程序很有可能都在这个目录里。

/var
系统日志文件,缓冲数据和程序锁定文件储存在这儿。这是一个经常变换数据的目录。

你现在应该对文件系统中哪一个目录包含什么有了很好的认识。下一章节将帮助你更容易查找特殊文件,这样以来你可以不必手工查找了。

第五章 网络配置
本节翻译bood来自linuxsir

内容
网络硬件
网络工具
/etc目录的文件
rc.inet1
rc.inet2
NFS(Network File System 网络文件系统)
tcp_wrappers
总结

一、网络硬件

  就像用计算机做其他大多数有趣的事情一样,要让计算机连接到网络上,你就必须使用一些特殊的硬件。

  你需要一个NIC(Network Interface Card 网卡)来连接到一个LAN上,或者一个Modem来连接到Internet供应商那里,或者你两者都需要(也可能每种都要几个,甚至都不需要)。

  为了配置的目的,我们将这些硬件分成两类:PCMCIA(本本族专用的)和非PCMCIA。使用这样不对称的分类的是有原因的,因为目前发布的内核都不支持PCMCIA,你只能通过一个另外的包(比如内核模块)来支持它,其中包含必要驱动程序和一些配置管理软件。而其他的硬件则可以由发布的内核来直接支持。

1. netmods

  内核支持的网络设备的驱动在netmods包中(slackware/n3/netmods.tgz)。如果你没有安装这个包,那你现在就应该把它装上。(关于包的安装请参见第十六章)

  开机时要装载的内核模块保存在/etc/rc.d目录下的rc.modules中。默认的rc.modules文件包含有一个“Network device support”的部分。如果你打开这个文件察看这一部分内容,你就会发现代码首先检查/etc/rc.d下的rc.netdevice文件。如果 setup在安装过程中成功的检测到了你的网络设备,这个文件就会被创建。一般如果它存在,那么你很可能不会来读这不分内容(呵呵,有没有悖论的感觉?);反之,继续读吧。

  在那个“if”块下面是一系列的网络设备和modprobe命令,但是每个都被注释掉了。找到你的设备,然后去掉相应的modprobe的注释,最后保存文件。现在用root运行rc.modules就会装载你的网络设备的驱动程序了(当然同时也会加载其他没有被注释掉的模块)。注意有些模块(比如 ne2000的驱动)需要参数,你必须选择好有正确参数的那行。

2. PCMCIA网络设备

  PCMCIA网络设备应该比其他设备更加简单。首先你必须确保安装了pcmcia包(slackware/all/pcmcia.tgz)。(关于安装可以参见第十六章。)安装过程中,pcmcia包会在/etc/rc.d下创建一个rc.pcmcia文件,同时创建一个/etc/pcmcia目录,并且把驱动安装到/lib/modules/<kernel version>/pcmcia目录。pcmcia包Cool的地方在于它会自动检测设备的插入和卸载。你应该可以在插入设备的时候听到系统发出 “滴”的一声,这表明需要的模块被载入了。如果你卸载了这个设备,则相应的模块也会被自动的释放。

  不幸的是,如果你编译了一个新版本的内核,你很可能需要重新编译pcmcia-cs来更新这些驱动。当然,源代码是包含了的;在source/a/pcmcia目录下有源代码,脚本以及相关的帮助文档。

二、网络工具

1. ifconfig

  现在你的内核总算可以和你的网络硬件对话了,剩下的就是软件需要一种方法告诉内核把信息传过来,如此等等。我们需要对接口进行配置。我们需要ifconfig(8)。

  学习ifconfig的最好方法恐怕莫过于实例。你可以看看rc.inet1文件(在rc.inet1节中有介绍)来学习一下。下面举个最简单的例子:
引用:

  # ifconfig eth0 192.168.1.10 broadcast 192.168.1.255 /
  netmask 255.255.255.0

  该行命令启动了eth0(第一个网卡,对于令牌网使用tr0,ppp使用ppp0,……),并设置其IP为192.168.1.10,其广播地址为 192.168.1.255(整个192.168.1子网),其网络掩码为255.255.255.0(表示IP前面三个部分用来标识网络,最后一个部分,即.10,用来标识主机)。除非你要做一些特别的事情,你通常都可以使用IP的前三个部分加上一个255来表示广播地址。通常掩码设置成 255.255.255.0都是没错的。其实如果你要做一些特别的事情,你基本上在这方面已经有足够的知识了,于是这些话就基本上成了废话。

  ifconfig也可以用来查看当前的网络配置。当你不带参数的运行这个程序,你就能得到你当前所有的网络接口及其配置。

2. route

  内核通过维护一个路由表来决定网络数据该发向哪里。这里我不打算仔细探讨细节方面的内容,只是告诉你可以使用/sbin/route(8)来查看当前的路由表。route -n将会用IP地址代替所有的主机名称,这在DNS服务器出故障或者你对主机名不感兴趣的时候很有用。幸运的是,如果你进行了一个简单的网络安装过程(大多数人都做过),那么2.2的内核自动帮你创建一个必要的路由表项。

3. netconfig

  netconfig是Slackware安装程序的一部分,但就像大多数安装程序的组件一样,它可以单独运行。netconfig很直观,它会引导你建立一个基本的网络连接。当你对网络配置的那些rc文件不熟悉的时候,这个工具非常有用。运行netconfig的时候,你会看到下面的屏幕提示:

netconfig.gif

  下一步,netconfig会提示你输入计算机的主机名和域名。一般你可以随便设置这两个名字,除非你设置的机器是一台服务器或者是一台很多人都会访问的机器。然后,netconfig会问你如何分配IP:使用静态IP(static IP),DHCP或者仅仅环路(loopback)就可以了。

netconfig.setupip.gif

  如果你的机器不与网络连接,那么直接选择环路就可以了。如果你的计算机要和一个大学或者一个大的办公网络相连,一般你应当选择DHCP。其他情况则选择静态IP。如果你没有选择静态IP,那么设置工作到现在已经完成了。否则你还要接着输入计算机的IP地址、网络掩码、广播地址以及DNS服务器地址。 netconfig会告诉你如何得到所有的这些数字的。

4. pppsetup

  Slackware包含了配置拨号连接用的pppsetup。该软件包位于N软件系列中的ppp.tgz中。pppsetup使用的界面和setup 程序相同。如果你不记得怎么使用这个界面,你可以参考前面第三章的“setup程序”一节。pppsetup通过一系列的问题来为你配置好 /etc/ppp目录下的几个配置文件。以root运行pppsetup,我们来看一下这些问题:

pppsetup.gif

电话号码

  第一个问题是ISP电话号码,你同时应该将拨号方式写在前面。大多数人使用音频拨号(tone)。如果你ISP的号码是555-1013并且使用音频拨号,那么你就应该在对话框输入atdt5551013。

pppsetup.phonenumber.gif

  如果你的电话线需要接电话,而你希望在上网的时候屏蔽掉外来的电话,那就应该输入类似atdt*70,5551013的东西。

  注意逗号不可省略,它会在*70后维持一个1.5秒的停顿,然后再拨号。没有逗号是不行的。(译注:不知道在国内到底有没有用)

调制解调器(Modem)

  下一步,选择Modem的位置。如果你知道在Windows下使用的是哪个COM接口,你在这里选择同样的就可以了。否则你可能要做些尝试。推荐的办法是从ttyS0开始往下逐个尝试。

pppsetup.modem.gif

Modem的波特率(baud rate)

  下一步,选择最与你的Modem最接近波特率。如果你不知道,你可以在Modem的盒子或者所带的文档中找到它。每个选项都有几个例子,所以应该不难找出正确的那个。

pppsetup.baudrate.gif

回拨

  现在你应该用上你的ISP给你的信息了。其实很少有ISP使用回拨,所以你一般都可以选择“NO”。回拨是指你拨了ISP以后,他们拨你的号码让你登陆。(译注:电信就不指望了,真这样的话电话费可以省了:P)

pppsetup.callback.gif

  如果你确实要使用回拨,那你就应该选择“YES”。然后配置程序会提示你输入你的电话号码、登陆的用户名以及密码。你可以先不输入用户名和密码。最后,你还要输入你的ISP使用的认证方式。如果他们使用CHAP或者PAP,那么选择“YES”。你以后还会需要配置他们,这个一会再说。如果ISP不用这两个,那么选择“NO”,然后参考下面的“Chat脚本”那个部分。

Modem的初始串

  除非你使用的是一个很另类的Modem,你一般都可以直接按回车来选择默认的初始串(“AT&FH0”)。不然你就得翻出你的Modem的说明书了。

pppsetup.initstring.gif

域名

  现在你需要输入你的ISP的域名了。这部分内容一般类似于“example.net”,“slackware.com”等等。(好吧,肯定不是slackware.com)

pppsetup.domain.gif

DNS的IP地址

  你的ISP应该会给你提供他们的DNS服务器的地址。你如果已经有了的话直接填到方框里就行了,否则你应该去ISP那里问一下。

pppsetup.dns.gif

认证方式

  这个问题可能也需要一些尝试才能完全搞定。你需要搞清楚你的ISP到底使用的是哪种认证方式:CHAP?PAP?还是其他?最简单的办法就是直接给他们打电话。然而如果你连接以后出现了login和password的提示,一般你应当选择“SCRIPT”,否则还得去问ISP。

pppsetup.authentication.gif

PAP或者CHAP

  如果你的认证方式选择了“PAP”或者“CHAP”,程序会提示你输入用户名。你的ISP应该已经给了你一个用户名,如果还没有,那赶快去找他们,肯定是什么地方出问题了。

  然后你应该在接着的一个对话框输入ISP给你的密码。

Chat脚本

  如果你选择的是“SCRIPT”,你将会看到一个相当长的关于chat脚本的说明。仔细阅读,因为它把所有的东西都说的很清楚了。基本上来说,脚本要求你描述的是ISP将会发给你的信息内容以及你的计算机应当回应的信息内容。

  然后你会进入一个循环,你将不断的输入ISP将会传过来的信息以及你的计算机应该发回的信息。一旦你完成了,只要在一个空的输入框直接按回车,程序就会结束输入。

结束

  终于,你将看到最终生成的ppp配置文件了。其实现在你并不能对这些文件做什么修改,但是你至少可以大致察看一下是不是所有的内容都对了。最后按回车保存配置并退出pppsetup。

  这个屏幕其实也包含了很多关于如何建立和断开连接的信息。最基本的原则是这样的:在root下运行ppp-go是建立连接,一旦你看到了一个本地IP和一个远程IP,那么连接就已经建立了。而ppp-off则会断开连接。

pppsetup.done.gif

三、/etc目录的文件

1. /etc/inetd.conf

  在网络中心的一个操作系统上,同时运行许多服务是不明智的。一般来说对于每个服务,都要有一个对应的程序在某处监听外来的连接,这对一个支持很多服务的服务器来说是一个沉重的负担。而inetd正是为了减少这种负载而创造出来的。inetd其实就是一个“互联网超级服务器(internet superserver)”,它同时监听多个服务,每当收到某个服务的连接请求,inetd就运行相应的服务程序来处理。这样,本来的很多等待连接的服务程序就减少到了一个。

  /etc/inetd.conf是inetd的配置文件。其中指定了连接和服务程序的对应关系。inetd(8)的man文档对此做了详细的描述,但我们还是要来看一下基本的内容:
引用:

  ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -l -i -a

  这行指定了ftp服务器的配置。注意行的开头是协议名称(“ftp”),行末则是要响应这个连接而运行的命令。在这里,这个对应的服务程序是 /usr/sbin/tcpd。这是一个“包装”程序,用来为被包装的程序提供一些基本的安全措施。wu.ftpd则是我们真正的ftp服务程序,只不过被tcpd包装过了,真正的调用由tcpd来进行。关于tcpd的更多信息可以在“tcp包装器”一节中找到。

  就像许多其他系统文件一样,inetd.conf中的注释行以#字符开头。你可以简单的以此来加入或者取消某些服务,然后重新运行inetd就可以了。

2. /etc/resolv.conf

  这个文件用来告诉系统到哪里进行DNS查询。机器用到的所有的DNS服务器都在这里列了出来,同时主机的域名也是在这里指定的。下面是resolv.conf的一个例子(这是从我正在用的笔记本上弄下来的,主机名和域名是ninja.tdn):
引用:

  domain tdn
  nameserver 192.168.1.1
  search tdn. slackware.com

  第一行指定了ninja的域名,这是紧跟在主机名后面的东西。第二行就是我们局域网的DNS服务器。在这里你可以同时指定多个DNS服务器,需要域名解析的时候系统会逐个尝试。

  最后一行比较有趣。它假设了我的系统中默认的域名。举个例子,我有两台机器分别叫做zuul.tdn和hejaz.slackware.com,那么我可以直接ping zuul和ping hejaz来ping这两台机器。对于“zuul”,ping程序会首先尝试在后面加一个域名“.tdn”,然后就找到了这台机器。而对于 “hejaz”,ping程序在尝试“hejaz.tdn”失败后,就会继续尝试“hejaz.slackware.com”。注意在search这一行上,所有的域名(除了最后一个)都要以一个“.”结尾。如果只有一个,因为它是最后一个,所以不必加“.”。

3. /etc/hosts

  hosts文件是一种简单的域名解析机制。该文件列出了主机名和它们对应的IP。这在小型网络(没有必要使用DNS)或者DNS出问题的时候都很有用。在系统启动的时候,由于DNS不可用,系统对域名解析采用的就是这种机制。我机器上的hosts文件是这样的:
引用:

  127.0.0.1 localhost
  192.168.1.32 ninja.tdn ninja

  第一行是本机地址(译注:这就是为什么localhost可以用来代表本机的原因)。实际上你可以给一个IP地址对应多个名称,用空格隔开它们就可以了。因此,在第二行,我就把“ninja.tdn”对应成了192.168.1.32,同时我还把“ninja”也写上了,这样在我偷懒直接输入 “ninja”的时候该条就会被用到。

四、rc.inet1

  /etc/rc.d/rc.inet1文件用于设置网络的一些底层方面的内容——初始化设备、设置地址和路又表。Slackware中的rc.inet1有很详细的注释,这里不在赘述。

五、rc.inet2

  /etc/rc.d/rc.inet2用于设置网络的其他内容:运行服务和守护进程,并处理所感兴趣的网络选项。下面列出一块代码作例子:
引用:

  # Start the NAMED/BIND name server:
  if [ -f ${NET}/named ]; then
   echo -n " named"
   ${NET}/named -u daemon -g daemon
  fi

  这里重要的一行是第四行,用于运行named(8)程序。其余部分格式基本是固定的:“if”语句检查named程序是否存在,echo那一行在系统启动的时候把要运行named程序的这个消息打印到屏幕上。你会发现rc.inet2中的大多数服务都是以这样的语句块运行的:检查是否有明显的不该运行该程序的原因,然后显示一个运行该程序的消息,最后是运行该程序的实际命令。rc.inet2也被详细的注释过,你可以马上打开看一会。

六、NFS(网络文件系统)

  网络文件系统的目的显然是要在网络上共享不同机器上的文件。NFS最酷的部分在于它能够使用户在一台机器上直接mount另一台机器的共享文件夹,然后用户可以直接把它看作本地的文件。

  这种透明性的实现建立在以下两个基础上。第一,服务器上必须有相关的服务运行:portmap(8)、nfsd(8)和mountd(8)。第二,服务器必须显式的指出准备把哪些文件共享,这一步通过/etc目录下的exports(5)文件完成。

  对于第一个部分,只要安装好tcpip1.tgz,rc.inet2就会帮你搞定剩下的事情。/etc/exports则比较有趣。

  假设在battlecat.tdn上有一个图片目录,而我想把它mount到ninja.tdn。在battlecat上,我们需要在/etc/exports里加上类似这样的一行:
引用:

  /var/media/images ninja.tdn(ro)

  于是在ninja上,我只要输入如下命令就可以把这个图片目录mount到本地的/mnt了:
引用:

  # mount -t nfs battlecat.tdn:/var/media/images /mnt

  不幸的是,这样一来我就没有了对这个共享目录的写权限——battlecat的/etc/exports中有“(ro)”选项,表示只读。所有类似的选项都应该放在客户端的名称后面,并且放置在一个括号里,不同选项间用逗号隔开。比如:
引用:

  /var/media/images ninja.tdn(rw,no_root_squash)

  “rw”显然是可读可写的意思——根据用户和组的映射(详细解释见exports(5)相应的man页面),ninja上的用户可以得到写权限。我不喜欢squash,所以留到man里面解释吧。如果你想用NFS做很多事情,exports(5)会给你带来很大的方便。

七、tcp_wrapper(TCP包装器)

  tcp_wrapper是这样一套基本系统,它可以用来禁止(或者显式的允许)特定的主机对某些服务的访问。简单的说,它的工作原理是这样的:

  inetd(internet super-server)运行很多的服务,其中很多都是由tcpd包装好的。换句话说,tcpd是真正运行这些服务的程序,但是inetd不知道这些(其实它根本不关心)。tcpd根据/etc/hosts.allow和/etc/hosts.deny来判断是否允许传来的连接请求。

  这些文件中的规则可以很复杂,我们假设pyramid.tdn确实很讨厌,根本不让我们可怜的mojo.tdn安静一下。于是mojo.tdn可以这样设置/etc/hosts.deny:
引用:
  ALL: pyramid.tdn

  这行的意思很清楚:通过tcpd的保护阻止pyramid使用mojo上的所有服务。除此之外,如果你还想禁止某个域名的所有主机,那么应该这样写:
引用:
  ALL: pyramid.tdn, .annoying.domain

  但是等等!我哥们儿Hobbes的机器域名也是.annoying.domain,我不想让他被阻止(我只是不想他之外的那些烦人的人来访问)。这也很简单,我们不动前面的hosts.deny,而是把Hobbes加到hosts.allow中:
引用:

  ALL: hobbes.annoying.domain

  更多的细节可以察看tcpd(8)、hosts_access(5)和hosts_options(5)。实际上tcp_wrapper系统比上面所说的更加灵活,并且很值得进一步的研究。

八、总结

  在本章中,你学到了如何配置你的系统,使之连接到网络上,如何配置文件,以及一些基本的安全原则。除此之外,你知道了什么是NFS以及如何配置它。一旦你的系统成为了网络的一部分,你就可以访问网络上的各种资源:邮件、新闻和网页。如果你想知道基本网络程序的更多知识,请参见第十三章。

题目:第七章.引导
翻译:chendy来自linuxsir
创建日期:2005年4月19日
最后修改:2005年4月20日
正文:
第七章 引导
目录:
LILO
LOADLIN
双重引导
小结

引导你的Linux系统的过程有时候简单,有时候复杂。很多用户在他们的计算机上安装Linux仅此而已。他们只需打开电源,系统就准备好并开始使用。然而,对于其他人会因为特定的任务而使用另外的操作系统,因此他们需要机器上两个操作系统均可访问。
这一节包含了使用LILO和Loadlin,Slackware包含的两个引导器。同时也说明了某些典型双系统引导情况和如何开始设置。

LILO
Linux Loader或LILO,是在Linux系统中使用的最流行的引导器。它易于配置并很容易地用于引导其他操作系统。
Slackware Linux自带了一个称为liloconfig的菜单驱动配置工具。这个程序在安装过程中首次运行,但你可以随后通过在命令提示符下输入liloconfig来调用它。
LILO从/etc/lilo.conf文件读取它的设置。不是每次启动都会读取它,而是每回在你安装LILO的时候读取。每次你对配置做了修改都必须重新安装LILO到引导区块。liloconfig将帮助你生成配置文件这样你就可以为你的系统安装LILO。如果你偏好手动编辑 /etc/lilo.conf,那重新安装LILO只需在命令提示符下输入/sbin/lilo。
你首次调用liloconfig时,他看起来将会像是这样:
插图 7-1.liloconfig初始屏幕
如果这是你第一次设置LILO,你最好选择“simple”。另外或许你会发现“expert”会更快如果你熟悉LILO和Linux的话。选择“simple”将开始LILO的配置。
如果内核帧缓冲支持已编译到你的内核中,liloconfig将询问你想使用哪一种视频解析度。该解析度也会被XFree86帧缓冲服务器使用。如果你不想让控制台运行于一个特定的视频模式,选择normal将继续使用标准的 80x25 文本模式。
插图 7-2.Liloconfig询问使用哪种视频模式的帧缓冲
LILO的配置的下一部分是选择它的安装位置。这或许是最重要的步骤。下面的列表说明了安装位置:
Root
这个选项安装LILO到你Linux根分区的开始。这是最安全的选项如果你在你的计算机上安装了其他操作系统。它确保任何其他引导器不被覆盖。缺点是如果你的Linux驱动器是你系统里的第一个驱动器的话LILO将只能从这里引导。
Floppy
该方法甚至比前面的更安全。它创建一个引导软盘用于引导你的Linux系统。这将使引导器完全与硬盘隔离,所以当你想使用Slackware时你只需从这个软盘引导。
MBR
你可以使用这种方式如果Slackware是你计算机上唯一的操作系统,或者如果你想用LILO选择在你的计算机上的多个操作系统。
注意:该选项将覆盖任何在MBR上其他的引导器。
在选择安装位置后,liloconfig将写入配置文件并安装LILO。就是这样。如果你选择了"expert"模式你会看到一个特别的菜单。这个菜单允许你改变/etc/lilo.conf文件,添加其他操作系统到你的引导菜单。expert菜单看起来像这样:
插图 7-3.liloconfig "expert"模式
无论你的系统(软件)配置如何,安装一个可工作的引导器是简单的。liloconfig让它的安装简单易行。可是,仍然有LILO无法在系统上工作的实例。幸运的是,还有其他选择。
Loadlin
由Slackware Linux自带的另一个引导选择是LOADLIN。LOADLIN是一个

DOS可执行程序可以用来从一个正在运行中的DOS系统启动Linux。它要求Linux内

核存在于DOS分区这样LOADLIN就可以装载它并正确引导系统。
在安装过程中,LOADLIN将以一个.ZIP文件的形式拷贝到root的家目录

。没有LOADLIN的自动安装过程。你将需要拷贝Linux内核(/vmlinuz)和root的家

目录的LOADLIN文件到DOS分区。
LOADLIN很有用如果你希望在你的DOS分区创建一个引导菜单。一个菜单

会被添加到你的AUTOEXEC.BAT文件那将允许你在Linux和DOS中做选择。选择

Linux将运行LOADLIN,从而引导你的Slackware系统。Windows 95下的

AUTOEXEC.BAT文件将提供一个足够(满足需要)的引导菜单:

引用:
@ECHO OFF
SET PROMPT=$P$G
SET PATH=C:/WINDOWS;C:/WINDOWS/COMMAND;C:/
CLS
ECHO Please Select Your Operating System:
ECHO.
ECHO [1] Slackware Linux
ECHO [2] Windows 95
ECHO.
CHOICE /C:12 "Selection? -> "
IF ERRORLEVEL 2 GOTO WIN
IF ERRORLEVEL 1 GOTO LINUX
:WIN
CLS
ECHO Starting Windows 95...
WIN
GOTO END
:LINUX
ECHO Starting Slackware Linux...
CD /LINUX
LOADLIN C:/LINUX/VMLINUZ ROOT=<root partition device> RO
GOTO END
:END

你需要以Linux设备名来指定你的根分区,就像/dev/hda2或其他的。你

始终都可以在命令行使用LOADLIN。你可以以上述例子中相同的形式简单地使用

它。LOADLIN文档包含了很多关于如何使用它的例子。
双重引导
许多使用者设定他们的计算机来引导Slackware Linux和其他操作系统。我们

描述了个别典型双重引导情况如下,以免在你设定你的系统时遇到困难。
Windows 9x/DOS
设定计算机同时有Windows 9x和Linux或许是最常见的双重引导情况。有许许

多多方法你可以设置引导,但本小节仅提及两种。
许多时候当设定一个双重引导系统时,人们总会制定一个完美的计划决定所有

的东西应该位于哪里却胡乱安排安装顺序。理解操作系统需要以一种确定的顺序以设定

双重启动工作非常重要。Linux总是提供任何需要重写主引导记录(的系统)之上的控

制。因此,总是建议最后安装Linux。Windows应该最先安装,因为他总是回把他的引导

器写到主引导记录。
使用LILO
多数人希望使用LILO在Linux和Windows间做出选择。依上所述,你最好先安装

Windows然后Linux。
让我们假设你有一个47GB的IDE硬盘作为你系统中唯一的驱动器。我们再假设

你想分配一半的空间个Windows另一半给Linux。这将在试图引导Linux引发一个问题。

我不知道驱动器空间映射的细节,但猜想碰巧那驱动器余下的23.5GB刚好会超过1024柱

面。一个给这个驱动器好点的布局会是:

引用:
1GB Windows boot (C:)
1GB Linux root (/)
22.5 Windows misc (D:)
22.5 Linux /usr (/usr)

同时你也会想在旁边划分出合适大小的空间作为Linux交换分区。不成文的规

定是在你的磁盘空间里使用两倍RAM大小的容量。一个64MB系统应该有128MB的交换空间

,依此类推。
依照你的分区布局,你会开始安装Windows。然后设定好并生效,你该安装

Linux。LILO的安装需要特别注意。你要选择“expert”模式来安装LILO。
开始一个新的LILO配置。你要把它安装到主引导记录以使它用于在两个操作系

统做出选择。从菜单中,添加你的Linux分区和你的Windows(或DOS)分区。完成后,你

就可以安装LILO了。
重新启动计算机。加载好LILO并等待用户的动作。你可以按下"Alt"键来获得

boot:提示符。输入你想加载的分区的名字(你设好LILO后这些名字就可以选择)。如

果你忘记了名字,按下Tab键以获取一个可供你引导的操作系统列表。
你还可以通过编辑在你Linux分区上的/etc/lilo.conf文件来配置LILO。你可

以设定它显示一个文本菜单,并总是提供提示符。例如,如果我让我的LILO像这样来显

示:

引用:
System Boot Menu
================
1 - Linux
2 - Windows

LILO boot:

我的/etc/lilo.conf文件就该看起来像这样:

引用:
# LILO configuration file

boot = /dev/hda
vga = normal
message = /boot/message

image = /vmlinuz
root = /dev/hda2
label = 1
read-only

other = /dev/hda1
label = 2
table = /dev/hda

并且我的/boot/message文件会看起来像这样:

引用:

System Boot Menu
================
1 - Linux
2 - Windows

LILO是个极具配置性的引导器。它不仅仅只限于引导Linux和DOS。它可以引导

任何系统。lilo(8)和lilo.conf(5)的联机帮助页提供了更多细节信息。
如果LILO不起作用又如何?有些实例是LILO无法在一个特别的机器上起作用。

幸运的是有另外一种办法来双重引导Linux和Windows。
使用LOADLIN
如果LILO在你系统上不起作用可以用这种方法,或者仅仅是你不想安装LILO。

这种方法同样适用于那些经常重新安装Windows的用户。有了LOADLIN,你无须受限于那

些问题。最大的缺点是你用LOADLIN只能引导Linux。
有了LOADLIN,你可以以任何想要的顺序安装操作系统。注意不要安装东西到

主引导记录,你不想那么做。LOADLIN relies on the Windows partition being

bootable.所以在安装Slackware过程中,确定你跳过了安装LILO。
系统安装完之后,从root用户的家目录拷贝lodlinX.zip(这里的"X"是版本号

,比如"16a")文件到你的Windows分区。同样拷贝你的内核镜像到Windows分区。要使用

Linux你要按照这些步骤来做。这个例子演示如何做:

引用:
# mkdir /win
# mount -t vfat /dev/hda1 /win
# mkdir /win/linux
# cd /root
# cp loadlin* /win/linux
# cp /vmlinuz /win/linux
# cd /win/linuz
# unzip loadlin16a.zip

那将在你的Windows分区(假设它是/dev/hda1)上建立一个C:/LINUX目录并拷

贝LOADLIN所必要的材料。做完这些后,你需要重启进入Windows来设置一个启动菜单。
一但进入Windows,进入DOS提示。首先,我们需要确定系统被设为不引导进入

图形界面。

引用:
C:/>cd /
C:/>attrib -r -a -s -h MSDOS.SYS
C:/>edit MSDOS.SYS

增加这行到文件里:

引用:
BootGUI=0

现在保存文件并退出编辑器。然后编辑C:/AUTOEXEC.BAT这样我们可以增加一

个引导菜单。接下来提供了一个例子AUTOEXEC.BAT中一个引导菜单块看起来将像这样:

引用:
cls
echo System Boot Menu
echo.
echo 1 - Linux
echo 2 - Windows
echo.
choice /c:12 "Selection? -> "
if errorlevel 2 goto WIN
if errorlevel 1 goto LINUX
:LINUX
cls
echo "Starting Linux..."
cd /linux
loadlin c:/linux/vmlinuz root=/dev/hda2 ro
goto END
:WIN
cls
echo "Starting Windows..."
win
goto END
:END

关键一行是运行LOADLIN.我们告诉它要引导的内河,Linux的根分区,以及我

们想让它初始化时以只读方式挂载。
Slackware Linux提供了用于这两种方法的工具。市场上还有许许多多其他引

导器,但这些对大多数双重引导设置都能起效。
Windows NT
这是第二种最为常见的双重引导情况。Windows NT会比Windows 9x和Linux的

双重启动多些麻烦。其中之一我们最为关切的是如果主引导记录被LILO覆盖,NT将不能

成功引导。因此,我们必须使用Windows NT自带的OS加载器。下列步骤演示了你如何设

置一个Windows NT和Linux的双重引导系统。

1.安装Windows NT
2.安装Linux确保LILO安装到Linux分区的超级块。
3.取得Linux根分区开始的512字节并将其保存至Windows NT分区。
4.在Windows NT下编辑C:/BOOT.INI以添加一个Linux选项。
安装Windows NT是和安装Linux一样简单。接下来,它会有点棘手。抓取Linux

分区最开始的512字节要比说起来更简单。你将需要在Linux中以完成这些。假设你的

Linux分区是/dev/hda2,执行这个命令:

引用:
# dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512

好了。接着你需要拷贝bootsect.lnx到Windows NT分区。这里我们将遇到另一

个问题。Linux没有对NTFS文件系统稳定的写支持。如果你安装了Windows NT并把你的

驱动器格式化为NTFS,你将需要拷贝这些文件到一张FAT软盘随后在Windows NT下读取它

。如果你将(安装)Windows NT的驱动器格式化为FAT,你需要简单的在Linux下挂载它

并拷贝文件过去。无论如何,你将把/tmp/bootsect.lnx从Linux驱动器弄到Windows NT

驱动器上的C:/BOOTSECT.LNX
最后一步是添加一个菜单选项到Windows NT引导菜单。在Windows NT下打开一

个命令提示符。

引用:
C:/WINNT>cd /
C:/>attrib -r -a -s -h boot.ini
C:/>edit boot.ini

在文件后添加这一行:

引用:
C:/bootsect.lnx="Slackware Linux"

保存修改并退出编辑器。当你重启Windows NT,你会在菜单里看到一个Linux

选项。选择它将引导进入Linux。
Linux
是的,大家确实这么做。这的确是最简单的双重系统引导情况。你需要简单地

使用LILO并添加入口到/etc/lilo.conf里。就这些。
小结
本章讨论了使用LILO和Loadlin引导你的系统。同时也讨论了在Linux和其他操

作系统间引导。你应该能够正确配置你的引导方法并双重引导其它操作系统,should

you choose to.

#本章结束

第八章.Shell
本节翻译iamqk来自linuxsir

目录
用户
命令行
Bourne Again Shell(bash)
虚拟终端
小节

在一个图形界面环境下,接口是由一个可以创建窗口,滚动条,菜单等的程序提供的.而在一个命令行的环境下,用户接口是"shell"提供的,shell解释命令且通常使电脑上的东西可以运行.在登陆(本章将做说明)之后,用户会被立即放置到shell程序中,并通过shell来做他们想做的事情.本章将对 shell--Bourne Again Shell(bash),Linux用户普遍使用的一种shell--做以介绍.如果想得到关于本章的更多详细的信息,请查阅帮助页bash(1).

用户

登陆

当你的电脑启动之后,你会看到类似如下的字符提示:

Welcome to Linux 2.2.14
darkstar login:

##这一段有关什么四维通道的翻译不是很准确
##Hmm.. nobody said anything about a login. And what's a darkstar? Don't worry; you probably didn't accidentally fire up a hyperspace comm-link to the Empire's artificial moon. (I'm afraid the hyperspace comm-link protocol isn't currently supported by the Linux kernel.) No, darkstar is just the name of one of our computers, and its name gets stamped on as the default. If you specified a name for your computer during setup, you should see it instead of darkstar.
恩..没有人提起过关于登陆的任何事情.那么这里的darkstar是什么意思?不必担心,你根本没有偶然的打开一个通向帝国人造月球的四维通道.(恐怕目前linux的内核还不支持多位空间连接协议),darkstart只是你的计算机名字而已,而且他是默认的计算机名字,如果在安装过程中你给你计算机起了一个名字,那么darkstart将被你起的名字替代掉.

对于登陆么...如果这是你的第一次登陆,你将会以root用户的身份登陆,然后系统会提示你输入密码.密码一般在安装时候设定,如果你没有设定密码那么只要按enter键就可以了.好了--你已经登陆成功了!

Root:超级用户

root是什么,又在你的系统上做些什么?
恩,在Unix和类Unix(如linux)的操作系统里,有很多使用者所以有了用户的概念.本章的后面部分将对此做详细的介绍,你现在仅仅需要知道的是 root是高于其他用户的一个用户,root是无所不能,无所不知的,没有人可以不服从root.所以我们不得不正确的称root用户为"超级用户".更好的是你现在就是root.

是不是很酷?

如果你不确定:是的,那样的确很酷.但是我们忽略了一些问题,root可以随心所欲的破坏任何东西.你可以先跳到12章去看看如何添加一个用户,然后我们以一个普通用户登陆,回到这里,继续我们的学习.为了减小root的破坏力,只有在必要的时候才使用root用户是一个明智的办法.

顺便一提,你可以很轻易的从任何一个用户变为root用户,只需使用su(1)命令.输入密码后你将获得root身份,直到你使用命令exit或者 logout.只要你知道其他用户的密码你也可以使用su命令变成其他用户的身份,比如:su logan,你将使用我的帐号登陆.

命令行

运行程序

##这一段实在翻译不出来
##It's hard to get much accomplished without running a program; you might be able to prop something up with your computer or hold a door open, and some will make the most lovely humming noise when running, but that's really about it. And I think we can all agree that its use as a humming doorstop isn't what brought the personal computer the popularity it now enjoys.

还记得linux下所有东西都是文件么?程序也是如此.你运行(不是shell的内部程序)的每一个程序都是你电脑上某个地方的一个文件.你可以通过指明程序的详细路径来运行它.

举个例子,还记得上一节我们使用过的su命令么?实际上它位于目录/bin下:/bin/su也可以让su运行起来.你可能会问为什么只输入su也可以运行?我并没有指明su是在/bin这个目录下啊?su也有可能在/usr/local/bin这个目录下,不是么?shell是怎么知道su到底在哪里的呢?答案是"PATH环境变量".大多数shell都会有PATH这个变量,或与之类似的变量.PATH主要由一系列包含可执行文件的路径组成,当你运行 run的时候,shell会自动到PATH的目录去寻找那些名字为su的可执行文件,而且只运行它第一个查找的文件.如果你不表明路径,程序就会按如上的方法运行,如果你的到了一个"Command not found error(无法找到该命令)"的错误提示,就意味着你的命令不再PATH的目录列表里.(当然了,也可能那个程序根本就不存在).我们将在Bourne Again Shell(bash)一节中更深的讨论有关环境变量的问题.

你要记住,符号"."是一个你所在目录的缩略表示方法,如果你在/bin下,./su也就是一个完整的路径:/bin/su

通配符匹配

几乎任何一种shell都存在这样一种替代或缩写用的字符,这些字符表示他们所在的位置可以是任何东西字符串.这样的字符被称为通配符,最长使用的是 '*'和'?'.一般来说,'?'通常匹配任何单个字符.举个例子,假如你所在的文件夹里面有这样三个文件:ex1.txt,ex2.txt,和 ex3.txt.你想同时把这三个文件(使用cp命令,第十章将做介绍)拷贝到另外一个文件夹,如,/tmp文件夹.如说使用:cp ex1.txt ex2.txt ex3.txt /tmp 这样拷贝的话好像有些太麻烦.如果这样的话:cp ex?.txt /tmp就简单多了,这里的'?'匹配所有字符,如'1','2','3'或其他的字符.
什么?你还是觉的这样很麻烦?你是对的.那样太骇人听闻了,我们有劳动法保护我们免做那样的事情.幸运的是,我们还有'*'.就像我们上面提过的,'*' 可以匹配任意数量的字符,包括没有任何字符的情况.所以像上面的例子,如果你的文件下面只有那三个文件,那么可以使用cp * /tmp,一步到位!假如文件下面还有一个叫example.txt和hejaz.txt的文件.我们想拷贝example.txt文件,但是不想拷贝 hejaz.txt文件,这样可以使用cp example* /tmp.
cp example?.txt /tmp这个命令将只能得到原来的三个文件,因为文件下面没有匹配'?',所以example.txt将不会被拷贝.

输入输出重定向和管道

(下面要讲的东西很酷了!)

$ ps > blargh

你知道上面的命令是什么意思么?我使用ps命令来查看当前运行的程序,ps命令在第十一章介绍.这个命令没有什么酷的地方,酷的是后面的部分" > blargh",这个部分的意思是将ps命令的输出写到一个名字为blargh的文件中.但是等等,下面的更酷

$ ps | less

这个命令将ps的输出通过"管道"传给less命令,这样我就可以使用滚屏来看.

$ ps > > blargh

这是第三个最常使用的重定向命令,这个命令中的>>和>基本相同,不同点是>>会检测并报告blargh文件是否存在,如果存在就在原文件追加新的内容,如果不存在>>会像>一样创建一个文件.(使用'>'会覆盖原来的文件)

还有一个'<'操作符,用来从文件中读入输入的数据,但是这个符号不经常使用.

$ fromdos < dosfile.txt > unixfile.txt

如果你把他们叠起来的话会更有趣

$ ps | tac > > blargh

这个命令将运行ps,颠倒输出的每一行然后将结果写入blargh文件中.你可以叠加更多的命令,但要记住他们的解释顺序是从左到右的.

你可以通过帮助页bash(1)得到更多的有关重定向的信息.

Bourne Again Shell (bash)

环境变量

Linux系统是一个复杂的怪物,有很多东西你需要明白,这些细节的东西在你和不同程序交互过程中起到作用(一些你可能根本不需要知道的东西).没有人希望在运行每个程序时都传递一些基本的参数,如终端如何使用,计算机名,提示符风格...

所以我们有了一个拷贝机制的环境.环境定义了程序运行的条件,这些条件中有些是可以改变的变量
##这一句也翻译不好
##The environment defines the conditions in which programs run, and some of this definition is variable; the user can alter and play with it, as is only right in a Linux system.
几乎所有的shell都有环境变量(如果没有,那么那种shell可能不太好用).我们下面将给出一个在命令行下操作环境变量的命令概述.

$ set

只是用set命令时,系统将返回所有的变量和他们的值.像其他的大多数的bash内置,他也可以做一些其它的事情(加参数);你可以查看bash(1)去看更详细的介绍.下面是我的电脑上set命令的部分输出.

PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
PIPESTATUS=([0]="0")
PPID=4978
PS1='/h:/w/$ '
PS2='> '
PS4='+ '
PWD=/home/logan
QTDIR=/usr/local/lib/qt
REMOTEHOST=ninja.tdn
SHELL=/bin/bash

我们可以看到先前提过的PATH变量,我可以直接用文件名运行任何包含在PATH变量的路径下的文件.

$ unset VARIABLE

unset将删除一个变量,包括变量值和变量名,而且是永久性删除.(不必担心.除非你那个部分明确的定义,变量可能被其他程序重新定义< Don't worry. Unless it's something you explicitly defined in that shell session, it'll probably get redefined in any other session>)

$ export VARIABLE=some_value

export很简单,你可以使用他来把环境变量 VARIABLE 的值设为 "some_value";如果VARIABLE不存在则创建,存在将覆盖以前的值.这样有些时候并不是很好,比如你想增加一个路径PATH变量中,你可能要按下面的方法来完成

$ export PATH=$PATH:/some/new/directory

注意到我们使用了$PATH,把一个$放到PATH前面来解释PATH的值.例如,echo $PATH将返回PATH的值,我的电脑上就应该显示:

$ echo $PATH
/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin

tab键补全

(这里又有一些很酷的东西了)

1.命令行意味着要打很多字.
2.打字是一种工作.
3.没有人喜欢工作.
从2,3中我们可以推断4:没有人喜欢打字,幸运的是,bash把我们从结论5(没有人喜欢命令行)中解救出来.

你可能会问bash何德何能?bash除了通配符扩展外,还有一个tab键补全的功能.

我们来看看tab键补全是如何工作的:比如你想打一个文件的名字,可能他在你的PATH变量的路径中,你可能将名字完整的打出来,其实你只需要打出文件名不同于其他的文件名的部分然后按tab键,bash将自动补全整个文件名.

我们来检测一下./usr/src 下面有两个子目录:/usr/src/linux和 /usr/src/sendmail,我想看看/usr/src/linux目录下面的东西,我输入 ls /usr/src/l,然后按tab键,bash将把命令补全为ls /usr/src/linux

如果现在有这样两个子目录/usr/src/linux 和 /usr/src/linux-old,如果我输入/usr/src/l后按tab键的话,bash将补全尽可能多的字符,所以我们将的得到这样的结果: /usr/src/linux.我们可以在这里停下来,或者我们在按一下tab键得到符合目前的字符串的所有路径,

因此,大大减少输入的内容(而且因此,人们喜欢命令行终端).所以我说他很酷的!

虚拟终端

当你正在执行某个程序的时候,你发现你又需要做一些别的事情,你可能中断当前的程序,去做你要做的事情,但是linux不是一个多用户系统么?你不是可以同时等录n次么?那么为什么你只能同时做一个事情那?

你可以同时做多件事情的.我们一台机器不可能有多个键盘,多个鼠标和多个显示器;幸运的是,也没有必要有.我们不是通过硬件来解决这个问题,那么这个问题只能由软件来解决.Linux通过"虚拟终端"简称"VTs"来解决这个问题.

你可以通过按Alt和一个功能键在虚拟终端之间切换;每一个功能键对应一个控制台.Slackware默认有6个虚拟控制台.如,Alt+F2你将切换到第二个终端,Alt+F3是第三个等等.

其余的功能键被X sessions占用.每一个X session用户拥有自己VT(虚拟终端),从第七个(Alt+F7)到最后.当你在X中时,由于Alt+功能键可能会冲突,因此我们用Alt+ Ctrl+功能键来替换,所以你要从X切换回一个字符登陆界面而不退出X session的话,Ctrl+Alt+F3将切换到第三个控制台.(如果你使用第一个X session的话,可以用Alt+F7将切换回X)

小节

这一章我们讨论了用户,shell,命令行和虚拟终端.你可能可以很顺利的使用命令行工作了:运行程序,使用重定向来组合命令等.最后,你应该对root这个超级用户有一些了解并牢记一直使用root不是一件好事情.

题目:第九章.文件系统结构
翻译:chendy来自在linuxsir
创建日期:2005年4月22日
最后修改:2005年4月23日
正文:
第九章.文件系统结构
目录
所有权
权限
连接
挂载设备
挂载NFS
小结

我们已经讨论了Slackware Linux中的目录结构。你已经可以找到你需要的文

件和目录。但对文件系统而言不仅仅只有目录结构。
Linux是个多用户操作系统。系统的每一方面都是多用户的,包括文件系统。

系统存储了诸如谁拥有文件和谁可以读取它等这类信息。还有关于文件系统其他独特的

部分,例如连接和NFS挂载。这一节说明了这些,以及文件系统的多用户特性。
所有权
文件系统为系统中每个文件和目录存储所有权信息。这包含了哪个所有者和组

拥有这个文件。查看这些信息的最简单的办法就是使用ls命令:

引用:
$ ls -l /usr/bin/wc
-rwxr-xr-x 1 root bin 7368 Jul 30 1999 /usr/bin/wc

我们关心的是第三和第四列。这些包含了拥有该文件的用户名和组名。我们看

到用户“root”和组“bin”拥有这个文件。
我们可以简单地用chown(1)命令(意即“CHange OWNer”)和chgrp(1)(意即

“CHange GRouP”)命令改变文件所有者。要把文件的所有者改为“daemon”,我们可

以使用chown:

引用:
# chown daemon /usr/bin/wc

要把组所有者改为“root”,我们可以使用chgrp:

引用:
# chgrp daemon /usr/bin/wc

我们同样可以使用chown来为一个文件指定用户和组所有者:

引用:
# chown daemon.root /usr/bin/wc

文件所有权对使用Linux系统是非常重要的部分,即使你是唯一的用户。有时

你需要修正文件或设备节点的所有权。
权限
权限是文件系统多用户特性的另外一个重要部分。利用它们,你可以改变谁可

以读、写、和执行文件。
权限信息是以四位八进制数字方式存储,每一位指定了一组不同的权限。依次

是所有者权限,组权限,和全局其他用户权限。第四位八进制数用来存储诸如设置user

ID,设置group ID,和“粘滞”位等特定信息。八进制数值对应的权限模式是(它们同

样有对应的字母可以由ls来显示并可被chmod所使用):

引用:
Table 9-1. Octal Permission Values

Permission Type Octal Value Letter Value
"sticky" bit 1 t
set user ID 4 s
set group ID 2 s
read 4 r
write 2 w
execute 1 x

你为没个权限组添加八进制值。例如,如果你想让组权限是“读”和“写”,

你可以将“6”用在权限信息的组部分。
bash的默认权限是:

引用:
$ ls -l /bin/bash
-rwxr-xr-x 1 root bin 477692 Mar 21 19:57 /bin/bash

如果这是个目录那第一个减号就应该换成“d”。接着显示的是三个权限组(

所有者,组和全局)。我们看到所有着拥有读,写和执行的权限(rwx)。组只有读和

执行(r-x)。

(未完成)

第十七章ZipSlack 和 BigSlack
本节翻译AMD-K6
目录

什么是 ZipSlack/BigSlack?

获得 ZipSlack/BigSlack

安装

启动 ZipSlack/BigSlack

增加、删除和更新软件

一般性问题

获得帮助

总结

什么是 ZipSlack/BigSlack?

ZipSlack 是一个特殊版本的 Slackware Linux。它设计安装在你的 DOS/Windows 分区
上面。然而,这是一个最基本的安装,并没有安装 Slackware 所提供的所有安装包;如
果你想让 ZipSlack 同时运行所有的软件包的话,你可以试试 BigSlack。

ZipSlack 你可以从它所发布的名字就可以知道,它是以一个大的 ZIP 文件发布的。DOS
和 Windows 用户对于这些文件可能非常的熟悉。它们是一种压缩文件格式。ZipSlack 安装
包已经包含了所有你启动和运行 Slackware 的东西。

要注明一点的是,ZipSlack 和 BigSlack 相对于普通的安装模式有很大的不同。虽然它们
使用同样的函数,包含了同样的程序,但是它们的调用是不同的。下面列出了 ZipSlack 和
BigSlack 的有点和缺点。

最后一点,你必需仔细阅读在 ZipSlack 和 BigSlack 目录里的文档。它包含了有关安装、
引导、等一般性使用问题方面的最新信息。

优点:

× 不需要重新分区

× 一个跳过安装步骤直接学习 Slackware Linux 的好方法

缺点:

× 使用 DOS 文件系统,系统效率没有普通 Linux 文件系统高

× 不能在 Windows NT 下运行

获得 ZipSlack/BigSlack

获得 ZipSlack 或者 BigSlack 非常的容易。如果你拥有了官方发布的 Slackware
CD 套件,ZipSlack 或者是 BigSlack 就已经包含在里面了。你需要做的仅仅就是
将它塞进你的 CD-ROM 驱动其里面。它可能在第三张或者是第四张光盘上,或许查
看光盘上的标签仍然是一个非常好的方法。

如果你想下载 ZipSlack 或者是 BigSlack,你可以先到我们的 Slack web 页查看
最新的消息:

http://www.slackware.com/getslack/

ZipSlack 和 BigSlack 是每一个 Slackware 发行版本的一部分。你可以从 FTP 站点
下的目录里查看最新的发行版本。最新的发行版本目力可以从这个地址找到:

ftp://ftp.slackware.com/pub/slackware/slackware/

你可以找到 ZipSlack 在 /zipslack 子目录下,BigSlack 在 /bigslack 子目录下。
ZipSlack 提供了一个大的 .ZIP 压缩文件,或者是一张磁盘大小的磁盘境象。磁盘镜
像在 /zipslack/split 目录里。BigSlack 仅仅发布的是一个大的文件。

不要仅仅停留在那个 .ZIP 文件上。你仍然需要下载同目录下的文档和启动引导镜像。

安装

当你下载好文件以后,你必需解压缩 .ZIP 文件。同时你必需确定你使用的是 32 位
的解压缩程序。因为压缩包里的文件名对于一个 16 位的解压缩程序来说过长。在
Windows 下的 32 位解压缩程序有很多,比如 WinZip 和 PKZIP。

ZipSlack 和 BigSlack 都设计成解压缩在每个驱动器的根目录上(比如 C:或者 D:)。
在 Slackware 安装好以后,会建立一个 /LINUX 目录。你可以在目录下找到启动系统所
需的文件。

当你解压缩完毕以后,在你所选择的驱动器下的根目录中应该就会有一个 /LINUX 目录
(我们下面假设已经解压缩文件到驱动器 C:下)。

引导 ZipSlack/BigSlack

有很多手段引导 ZipSlack 和 BigSlack。最通用的作法就是使用目录下的 LINUX.BAT 文件
从 DOS 下(或者是 Windows 9X 的 DOS 模式)启动系统。这个文件必需重新编辑,以适合你
自身的系统。

使用你喜欢的编辑器编辑 C:/LINUX/LINUX.BAT 文件。在文件的顶部会有一大段的注释,它
会告诉你需要在什么地方修改配置(并且会告诉你怎样在一个额外的 ZIP 驱动器上引导系统)。
不要对于例如 root= 这样的参数感到害怕。这里有几个例子,你可以挑选一个尝试一下。如
果不行,你可以重新在此编辑这个文件,注释掉不能工作的语句,并且尝试下别的。

当你注释掉你所要的行以后,保存文件并退出编辑器。启动你的系统到 DOS 模式下。

注意:在 Windows 9x 的窗口模式下的 DOS 仍然不能工作。

键入 C:/LINUX/LINUX.BAT 引导系统。如果一切顺利,系统会提供给你一个登陆符登陆系统。

使用 root 帐号登陆,没有密码。你可能会给 root 设置一个密码,为你自己增加一个帐户。对
于这点你可以参考本书其他的章节。

如果使用 LINUX.BAT 文件无法引导你的系统,你需要参考 C:/LINUX/README.1ST 文件使用其
他的方法引导系统。

增加、删除和更新软件

ZipSlack 和 BigSlack 可以使用和普通模式安装的 Slackware 系统一样的包。这样意味着你
可以使用标准的 Slackware 软件包工具增加、删除和更新软件。你仍然可以从 Slackware 光
盘上安装所需要的软件。

一般性问题

这里列出里 ZipSlack 和 BigSlack 运行时最常见的问题。如果你的问题没有在这里列出,我们
仍然有其他的方法解决它。下一个章节我们将详细介绍获取它的方法。

Unable to open initial console

这个问题可是你时在 LINUX.BAT 文件里的 root= 指定了无效的设备。重新编辑 LINUX.BAT 文件,
并为 root= 指定一个有效的设备。如果你对于这个意思实在是没有办法,你可以尝试下每一行例
子,直到它正确运行为止。

这个问题仍然可能是你在解压缩在非根目录下造成的。文档必需解压缩在驱动器上,而非一个子目
录中。

Kernel panic: VFS : Unable to mount root fs

这个信息意味着你在 LINUX.BAT 中的 root= 指定了一个错误的设备。你必需重新编辑 LINUX.BAT
文件,重新选择一个其他的 root= 设备。如果你不知道怎么做,尝试一下里面所有的选项,总有一
个适合你的系统的。

获得帮助

在你提问之前,你必需阅读 C:/LINUX 下的文档,查看一下是否有你提出的问题。

如果你阅读了文档以后仍然没有解决此问题,有几个很好的途径去寻找解决它们的方法:

ZipSlack FAQ

那里有一份清单列出了最常见的问题和它们的解答,同时在 C:/LINUX 目录下的 FAQ.TXT 也是这个
清单的内容。你还可以访问我们的 web 网站获取:

http://www.slackware.com/faq/

ZipSlack 论坛

这里有一个在线的论坛和其他 ZipSlack 和 BigSlack 讨论。你可以在这里发送你的问题,其他
的用户会努力帮助你。这是一个非常好的方法和其他用户相互交流相互学习。

http://www.slackware.com/forum/

电子邮件支持

Slackware 客户小组会努力的帮助您在 ZipSlack 或者是 BigSlack 方面的问题。但是您必需尽
可能的写清楚问题的所在和出现的信息,这样我们才可能解决您提出的问题。

<support@slackware.com>

总结

你必需明白什么是 ZipSack 和 BigSlack。如果你决定使用它们其中一个,你必需知道如何去
安装、引导、解决问题和获取帮助。ZipSlack 和 BigSlack 非常适合在您不想删除你现有的
Windows 分区的前提下,尝试 Slackware。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics