感谢支持
我们一直在努力

Linux操作系统从入门到精通教程

第0 部分: 为什么需要Linux


==========================================================


本章内容:


0.1 为什么需要Linux?


0.2 Linux 对我会有用吗?


0.3 Linux 对新手来说太难了


0.4 Linux 有什么好处?


0.5 微软的Windows 的普及性能够保证长久的使用


———————————–


0.1 为什么需要Linux?


不管网络上关于此类话题说的是怎么的冠冕堂皇,个人认为只有一个原因–强胜弱汰,我们学它,只是为了生存.不是吗?


0.2 Linux 对我会有用吗?


众多周知,Linux是最适合做服务器的,如果你只是为了日常办公或是上网冲浪,那么windows才是你的首选.


0.3 Linux 对新手来说太难了


该问题的关键是:你是不是真的想要学习它?世界上没有一个人天生就会使用Linux,但是那些所谓的Linux高手天天在使用它而且深深的喜欢着它。


0.4 Linux 有什么好处?


对于我们网管来说,Linux的好处在于用它架设出来的服务器比indows平台更安全更稳定!


0.5 微软的Windows 的普及性能够保证长久的使用


这个看起来好像是事实。


但是,Linux系统是基于开放源代码,它不可能会因为某公司的倒闭而失去支持,在这方面Linux 有其非常积极的一面。


还有,从来不要低估Linux 社区的能力。至少对于那些计算机的精英们来说,Linux 才是一个能够”久呆”的地方。 有些”Linux 人”甚至不想把Linux 变得太普及,因为他们担心这可能会使天才辈出的Linux论坛降低级别。

第1 部分: 安装Linux 之前


本章内容:


1.1 我应该选择哪个Linux 发行版本?


1.2 LINUX 对硬件有什么要求?


1.3 我的硬件支持Linux 吗?


1.4 怎样从网上下载Linux?


1.5 安装前需要阅读哪些资料?


1.6 我能在一部计算机上同时安装Windows 和Linux 吗?


1.7 应该怎样给硬盘分区?


1.8 我的硬盘被WINDOWS 分区占满, 我能缩小Windows 分区而不用重装系统吗?


1.9 怎样开始安装?


1.10 安装Linux 困难吗?


1.11 我应该安装哪些软件包?


1.12 我应该选择哪一个图形用户界面,KDE 还是GNOME?


1.13 我已经完成安装了。我该如何第一次登录?


1.14 我怎样才能把我的Linux 搞崩溃?


1.15 我可以总是在图形用户界面下使用Linux 吗?


1.16 我该如何升级Linux?


———————————————————


1.1 我应该选择哪个Linux 发行版本?


不同发行版本间的区别是比较小的: 安装程序, 精选的工具/应用程序包, 硬盘管理(所有发行版本中, Linux 的大部分内容都在硬盘的相同位置)。 无论你选择哪个发行版本, 你最终都得到本质上相同的Linux。


基于以下原因, 我们最常使用 RedHat Linux(也称为RedHat 或 RH):


1. RedHat 很流行(无论是对新手还是专业测试者)。


2. RedHat 是一个针对大多数用户的发行版本。


3. RedHat 的安装程序相对比较简单。


4. 如果你不需要商业化的支持, 你可以花很少的钱得到RedHat, 甚至免费得到。


简而言之, 尽管新手可能会被不同的Linux 版本搞的眼花燎乱, 但要知道,这些版本的存在是有理由的。这应该被认为是Linux 的一个优势而不是缺点。


本指南主要针对Intel平台的RedHat7.0以及9.0。许多问题的答案应该同样适用于其他平台的其他版本, 但是,我没有试过。


1.2 LINUX 对硬件有什么要求?


Linux 能够在一台386SX,8M 内存的计算机上运行。但这样的低端计算机只适合运行字符界面的应用程序(非X-Window)。一台16M 内存,600M 硬盘(没分区)的486 计算机就可以运行X-Window 了。


1.3 我的硬件支持Linux 吗?


Linux 不是支持任何计算机硬件的,而是支持比较老的,或者比较标准的,或比较流行硬件。这个原则适用于以下计算机部件:SCSI 卡,CDROM,可写光盘和可重复写光盘(CD-R 和CD-RW),显卡,打印机,鼠标,调制解调器(MODEM),网卡,扫描仪,活动硬盘等。


最有可能出问题的地方是显卡。如果你有一个最新型号3D 显卡,或者比较少见的显卡,你最好到http://www.Xfree86.org 去检查兼容性。

Linux从入门到精通(续2)


adduser snsn


passwd snsn


[输入一个长的精心选择的密码,在中间带数字]


[再次输入相同的密码]


exit


然后以snsn的用户重新登录


root 帐号只用来管理和系统设置。


——————–


我从来不会用root 帐号运行任何我不是非常了解的程序。至少,不会在准备用来做实际工作的计算机上使用。我是说真的。


我的学习过程如下:


1. 安装Linux


2. 胡搞,做试验(root 或者非root,做一些有趣的事情,设置乱七八糟的东西。我想要预知系统会如何动作――只有这样我才能够真正了解我在做的事情)


3. 删除系统


4. 除非我没有时间(时间好像总是不够用),否则回到第二步,继续


1.15 我可以总是在图形用户界面下使用Linux 吗?


在Linux 下只使用图形用户界面我认为是可能的,但是我觉得对于管理来说,就不是那么有效了。Linux 下的GUI 已经做得很好,但是对比于命令行下的可以使用的功能,还是显得有些苍白。我几乎每天使用Linux 和Windows 的图形用户界面,我发现图形用户界面对于程序启动和其他日常的工作非常有用。但是对于系统管理和自动化,图形用户界面还是不过灵活。


我发现图形用户界面和命令行的混合使用可能是最理想的。如果你希望只使用图形用户界面而不想学习任何命令行参数,你可以考虑推迟安装你的Linux 系统,一直到图形用户界面工具比现在做得更好一些,或者,现在你已经有其他的人能够帮你管理你的计算机。


1.16 我该如何升级Linux?


直接买更高级别的Linux安装盘,网络升级……呵呵!


第2 部分: Linux 的资源,帮助和相关链接


====================================================


本章内容:


2.1 哪里有Linux的资料?


2.2 有没有HELP命令?


2.3 有没有术语字典?


2.4 网上搜索


2.5 有没有因特网上的Linux的链接?


2.6 源代码–终极资源


—————————————-


2.1 哪里有Linux 的资料?


这个指南不够用怎么办?


RedHat Linux的CD里包含了许多资料.它们一部分是HTML格式一部分是纯文本格式。你在安装之前可以在DOS或MS WINDOWS之下阅读所有的资料。


在Linux里,你可以用以下命令读CD上的文档:


lynx /mnt/cdrom/doc/rhmanual/manual/index.html


这里启动的是lynx,一个简单的文本模式的HTML浏览器。要注意的是CD 装载后才能在Linux下使用,以上的例子假设装载点是目录/mnt/cdrom/。


2.2 有没有HELP命令?


多数的Linux命令可以带””–help”选项。例如,以下的命令可以给你简明的Linux cp (copy)帮助:


cp –help | less


更多的命令行的帮助要用所谓的参考手册页 man topic.例如:


man cp


会显示参考手册页中的cp (copy)命令。参考手册页是Linux下的标准”HELP”系统,含有很多的细节,非常技术化的信息,不过一般新手要花点力气才能看懂。


man命令用一个叫less的简单程序卷动文本页面。用箭头键卷页,按”q”键退出。事实上less能做的不只这些。运行less时按”h”键可以获得帮助,或通过以下命令了解更多的有关less的用法。


man less


还有一个 叫info的命令 info topic.例如:


info cp


会显示”cp”(copy)命令的帮助文件。通常 info包含的信息和man相似,但都更新一点。不幸的是,info的浏览功能不是很直观,所以我man用的更多。还有一个 pinfo,info 的替代品(可能是因为比info容易用的缘故吧)。


如果你忘记了想要用的命令的准确名字的话,可以试试apropos.例如,要想得到一组和”copy”有关的命令,我会在命令行运行:


apropos copy


whatis命令和apropos相似但只做关键字的比较,而apropos会对整个数据库搜索(关键字及其描述)。whatis 输出结果都比较短(可能也更相关)。


在一些使用菜单的程序中,例如在设置你系统服务用的 ntsysv(或setup,或 linuxconf),可以按F1键来了解某个服务具体是做什么的。


bash内置的命令列表可以通过在命令行敲入help获得。所有bash里的内置命令的帮助可以通过输入象以下的命令获得:


help cd


bash是标准的命令行”shell”,也就是在Linux里等同于DOS的命令行处理器”COMMAND.COM”。KDE环境里有一个图形界面的”帮助浏览器”。它可以通过点击”Kpanel”(系统条,通常位于屏幕底部的)上相应的图标启动。这个浏览器可以用于浏览KDE专用的帮助和系统参考手册页。Gnome桌面有一个类似的帮助系统。


如果你想了解你CD上rpm 格式的包,你可以用图形界面的kpackage(在X终端上输入kpackage)浏览这些包,显示他们包含的信息,在你需要的时候安装它们(安装要由root进行)。旧版本和kpackage对应的是,glint(RH5.2),gnorpm(RH6.0),他们慢而且也不方便。

Linux从入门到精通(续3)


2.3 有没有术语字典?


网络上有相当完整的计算机相关的词汇简称和缩写表


2.4 网上搜索


目前web上最好的搜索引擎是google,你会对它能找到的东西感到惊讶。Google速度非常快,因为它运行在Linux上,绝非儿戏。到google上试试吧。做?..要的Linux文档。


2.5 有没有因特网上的Linux 的链接?


网上致力于Linux的网站肯定是数以千计。限于时间,在此不再列述相关链接.


2.6 源代码–终极资源


Linux的终极参考资源是源代码。如果你已经安装了(和标准发行版本一起发行,如果你有足够的硬盘空间我们真诚推荐您安装),它在 /usr/src/linux(内核源代码)和/usr/src/RPM/sources(为了RPM包源代码的平衡).新手怎么用源代码?因为,它包括了最细节的注释和文档.例如,在这个指南的后面,我们会讲如何通过/proc文件系统读/设置一些内核参数.你可以这样看到包括所有用到的参数的完整的文档:


less /usr/src/linux/Documentation/proc.txt


为了安装内核源代码,我在安装时会选择适当的rpm包.为了安装我用的版本中其他的包,我会把”Source CD”放入CD驱动器,做类似以下操作(以root身份,用RedHat CD)


[从CD向硬盘安装gnumeric电子报表(类似EXCEL的软件-译者)的源程序]


su


cd /mnt/cdrom/SRPMS/


rpm -ivh gnume


[unzip我安装的源代码]


cd /usr/src/RPM/SOUR


tar -xvzf gnumer


[查看gnumeric里统计函数的代码]


cd gnumeric/src/functions


less fn-stat.c


这是真实的关于一个特定的电子报表软件函数如何工作的终极参考,我不是说着玩的。


第3 部分: Linux 的基本操作


=================================================


本章内容:


3.1 基础知识


3.1.1 文件名


3.1.2 使用不同的目录


3.1.3 执行一个程序


3.1.4 改变路径(PATH)


3.1.5 关闭计算机


3.1.6 处理挂起的程序


3.1.7 命令选项


3.2 用户,密码,文件访问权限和安全性


3.2.1 主目录, 根目录和添加新用户


3.2.2 密码安全性


3.2.3 忘记了超级用户密码怎么办


3.2.4 忘记了普通用户密码怎么办


3.2.5 关闭或删除一个用户


3.2.6 文件的所有权和访问权


3.3 用”&”, “at”, “batch”和”cron”进行作业调度


3.3.1 怎样在后台执行命令


3.3.2 怎样在某一特定时间执行命令(使用at”和”batch”)


3.4 Shell


3.4.1 什么是Shell? 需要一个不同的Shell吗?


3.4.2 怎样定制自己的Shell


3.4.3 设置文本终端的颜色


3.5 如何安装软件包(Package)及 rpm 软件包管理器


3.5.1 如何安装从Internet下载的程序?


———————————————————–


3.1 基础知识


3.1.1 文件名


Linux 系统区分英文字符的大小写。比如,myfile, Myfile 和 myFILE表示的是三个不同的文件。同样,用户密码和登录名也需要区分大小写(这里沿用了Unix 和 C 语言的命名规则)。命名目录和命名文件的规则是相同的。除非有特别的原因,否则用户创建的文件和目录名要使用小写字符。大多数的Linux 命令也使用小写字符。Linux 系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字母、数字、”.”(点)、”_”(下划线)和”-“(连字符)。Linux 允许在文件名中使用除上述符号之外的其它符号,但并不建议用户这样做。 有些转意字符 (即该字符被系统借用,表示某种特殊含义)


在Linux的命令解释器(shell)中有特殊的含义(shell 类似于 DOS下的命令处理器 COMMAND.COM)。这样的转意字符:”?”(问号),”*”(星号), ” “(空格), “$”(货币符), “&”, 扩号等等。在文件名中应尽量避免使用这些字符。文件名中可以有” “(空格),但建议用户用”_”(下划线)来替代。”/” 既可代表目录树的根也可作为路径名中的分隔符(类似DOS下的”\),因此”/”不能出现在文件名中。和DOS 一样,”.” 和 “..” 分别用来表示”当前目录”和”父目录”, 因此它们也不能作为文件名。


正如DOS 中一样,我们不能将文件命名为 . 或者 .. (点或者双点)——它们分别代表当前目录和当前目录的父目录(上一级目录)。这跟DOS 中是完全一致的。


下面列出了一些转意字符及其意义:


* = 用于匹配任意长度大于等于零的字符序列。以 . (点)开头的文件名除外。


? = 用于匹配任意单个字符


[abC1] = 用于匹配枚举集合中任意单个字符。比例中, 集合由‘a’,‘b’,C’,‘1’组成。


[a-z] = 用于匹配任意小字字母


[A-F] = 用于匹配任意大写字母


[0-9] = 用于匹配任意个位数字


[a-zA-Z0-9] = 用于匹配任意字母(大小写)或者数字。


\ (反斜线)也是一个特殊的字符。它屏蔽后继特殊字母的特殊含义(转意),使该字符仅取其符号所代表的字面意义。


3.1.2 使用不同的目录


Linux的文件系统目录树庞大而复杂。如果你非常熟悉它的话,会极大地提高你应用Linux的技巧。简单地说,典型的Linux包含五大文件系统目录。根据你自己系统的需要和大小,这些文件系统目录能安装在单个或多个物理硬盘的分区中。(如果需要的话,单个文件系统目录也可以安装在不同的设备中。)


“/”根目录


包含基本的操作系统和维护工具。这个目录的文件可以启动系统,并且需要的话,可以完成紧急维护和修复的功能。


“/usr”目录


包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape。


“/var”目录


包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等。


“/home”目录


包含用户的文件:参数设置文件、个性化文件、文档、数据、EMAIL、缓存数据等。这个目录在系统省级时应该保留。


“/proc”目录


整个包含虚幻的文件。它们实际上并不存在磁盘上,也不占用任何空间。(用 ls -l 可以显示它们的大小)当查看这些文件时,实际上是在访问存在内存中的信息,这些信息用于访问系统。


“/”根目录部分有以下子目录:


/bin 系统启动时需要的执行文件(二进制),这些文件可以被普通用户使用。


/sbin 系统执行文件(二进制),这些文件不打算被普通用户使用。(普通用户仍然可以使用它们,但要指定目录。)


/etc 操作系统的配置文件目录。


/root 系统管理员(也叫超级用户或根用户)的Home目录。


/dev 设备文件目录。LINUX下设备被当成文件,这样一来硬件被抽象化,便于读写、网络共享以及需要临时装载到文件系统中。正常情况下,设备会有一个独立的子目录。这些设备的内容会出现在独立的子目录下。LINUX没有所谓的驱动符。


/lib 根文件系统目录下程序和核心模块的共享库。


/boot 用于自举加载程序(LILO或GRUB)的文件。当计算机启动时(如果有多个操作系统,有可能允许你选择启动哪一个操作系统),这些文件首先被装载。这个目录也会包含LINUX核(压缩文件 vmlinuz),但LINUX核也可以存在别处,只要配置LILO并且LILO知道LINUX核在哪儿。


/opt 可选的应用程序,譬如,REDHAT 5.2下的KDE (REDHAT 6.0下,KDE放在其它的XWINDOWS应用程序中,主执行程序在/usr/bin目录下)


/tmp 临时文件。该目录会被自动清理干净。


/lost+found 在文件系统修复时恢复的文件。

Linux从入门到精通(续4)


“/usr”目录下比较重要的部分有:


/usr/X11R6 X-WINDOWS系统(version 11, release 6)


/usr/X11 同/usr/X11R6 (/usr/X11R6的符号连接)


/usr/X11R6/bin 大量的小X-WINDOWS应用程序 (也可能是一些在其它子目录下大执行文件的符号连接)。


/usr/doc LINUX的文档资料(在更新的系统中,这个目录移到/usr/share/doc)。


/usr/share 独立与你计算机结构的数据,譬如,字典中的词。


/usr/bin和/usr/sbin 类似与”/”根目录下对应的目录(/bin和/sbin),但不用于基本的启动(譬如,在紧急维护中)。大多数命令在这个目录下。


/usr/local 本地管理员安装的应用程序(也可能每个应用程序有单独的子目录)。在”main”安装后,这个目录可能是空的。这个目录下的内容在重安装或升级操作系统后应该存在。


/usr/local/bin 可能是用户安装的小的应用程序,和一些在/usr/local目录下大应用程序的符号连接。


需要理解的是:所有目录出现在单一的文件目录树下,即使这些目录在不同的分区,物理驱动器(包括软驱),或者甚至分布在网络上。所以,在LINUX下没有类似在DOS下的驱动符。在DOS或WINDOWS下的驱动符,在LINUX下以一个装载位置下的子目录的形式出现。


大多数的LINUX发行版本,目录系统很完善并且标准(Linux Standard Base发布了微小的区别)。LINUX目录系统和典型的商业UNIX目录系统完全相似。


总结来说:


· 用户应该将文件存在/home/user_login_name目录下(及其子目录下)。


· 本地管理员大多数情况下将额外的软件安装在/usr/local目录下并符号连接在/usr/local/bin下的主执行程序。


· 系统的所有设置在/etc目录下。


· 不要修改根目录(”/”)或/usr目录下的任何内容,除非真的清楚要做什么。这些目录最好和LINUX发布时保持一致。


· 大多数工具和应用程序安装在目录:/bin, /usr/sbin, /sbin, /usr/x11/bin,/usr/local/bin。


· 所有的文件在单一的目录树下。没有所谓的”驱动符”。


———–更多关于/proc目录(仅为真正好奇的读者)————-


/proc”虚拟”文件系统目录是一个实时的居留内存的文件系统,用于监视操作系统内核和在计算机上运行的进程的状态。/proc目录是完全虚拟的,即它不写入任何特殊的磁盘或其它永久的媒体,它仅居留于计算机的内存,并且它是不断地更新以反映系统的变化。/proc目录的大小总是0,最后的日期总是当前日期。手工改变/proc目录下文件的内容可能会改变系统设置。许多LINUX使用工具利用/proc目录作为信息资源,如,dmesg, ps, top等。


/proc目录的内容:


/proc/cpuinfo 关于处理器的信息,如类型、厂家、型号和性能等。


/proc/devices 当前运行内核所配置的所有设备清单。


/proc/dma 当前正在使用的DMA通道。


/proc/filesystems 当前运行内核所配置的文件系统。


/proc/interrupts 正在使用的中断,和曾经有多少个中断。


/proc/ioports 当前正在使用的I/O端口。


举例,使用下面的命令能读出系统的CPU信息:


cat /proc/cpuinfo


3.1.3 执行一个程序


在命令行输入可执行程序的文件名但是程序不能运行?有三种可能性:


第一种可能性:


没有输入正确的文件名。注意:Linux 文件名是区分大小写的!举个例子,输入”Pico”或者”PICO”并不能启动pico 编辑器程序。


第二种可能性:


程序不在缺省路径PATH下?在Linux 和其他的Unix 下,可执行程序必须在你的PATH 下面你才能够运行。如果程序所在的目录不在缺省路径下,你可以进入到程序所在的目录:


cd the_program_directory (the_program_directory 是程序所在的目录名)


./program_name (program_name 是程序的文件名)


或者你可以输入程序完整的路径名如下:


/the_program_directory/./program_name


注意,必须在程序名前面加上点”.”和斜杠”/”才能够正确运行。这是Linux 的另外一个安全特性,可以使”特洛伊木马程序”更难于入侵。点”.”指的是当前目录,斜杠”/”是文件和目录之间的间隔符(DOS 用的是反斜杠”\”)。


可以用一下命令来检查一下缺省路径:


echo $PATH


如果忘记了可执行程序的文件放在哪一个目录下面了,可以用以下命令查找:


find / -name “netscape”


以上命令从根目录”/”开始查找文件名叫”netscape”的程序。用这个命令可能速度更快一些:


locate netscape


(locate 命令运行速度更快是因为它依赖于系统预先建立的文件数据库。这个数据库由一个在背景运行的程序cron 来建立。因为cron 一般安排在夜间运行,所有如果你经常在夜晚关机,就不要依赖locate 可以找到你要的文件,也不要巴望locate 可以找到刚刚才安装的软件名称)


请注意,PATH 对于超级用户root 和普通用户一般来说是不相同的。超级用户root 的PATH 包括/sbin 和/usr/sbin,而普通用户一般不包括。所以,普通用户不能执行在/sbin 下面的文件,除非他们指定程序的全路径名(目录加文件名)。还有,如果你是使用su 命令从普通用户变成超级用户root 的,因为继承了普通用户的缺省路径PATH,要执行/sbin 目录下的文件,还是要指定程序的全路径名。


如果你知道程序的名字但是不知道程序的全路径名,可以用以下命令:


which netscape


就可以找到所有叫做netscape 的文件的全路径名


第三种可能:


程序可能是不可执行的。如果是这个原因,把它改成可以执行的(必须是超级用户root 或者文件的所有者)


chmod a+x my_file


这个命令把”my_file”变成是所有人都可以执行的。检查是否可行:


ls -l my_file


请注意,在Linux 和Unix 下,修改文件的扩展名(比如.exe 或者.bat)并不能使文件变成可以运行。文件能够被执行需要”可执行访问模式”,而不是象DOS 下的”文件属性”.


3.1.4 改变路径(PATH)


一般来说,你不需要去修改缺省路径PATH。


PATH 是当你要求执行程序时,文件搜索的目录列表。你可以用以下命令检查你的PATH


echo $PATH

Linux从入门到精通(续5)


3.1.5 重启/关闭计算机


reboot重启.


halt 关机(不关闭电源).


在关闭计算机之前最好把所有的运行程序都关闭。从GUI 的主菜单(GNOME 或者KDE)选择”Logout”。接着,在logout 的窗口里,选择”Shutdown”。


命令:shutdown -h -t 00


3.1.6 处理挂起的程序


出错的程序都可以被中止


一个在前台运行的文本程序可以在任何时候使用C 中止,但是这对比较大的应用程序不起作用,因为这些应用程序为避免用户的误操作,通常把C 的功能屏蔽。当程序被挂起时,你可以使用Z 将程序送到后台运行(不是百分百可行),或者切换到不同的终端(使用),然后,使用相同的用户名登录到系统。一旦你重新回到系统里,找到你需要中止的程序:


ps


这个命令代表”列出当前状态”(print status),可以显示当前系统中由该用户运行的进程列表。


在ps 的输出中,找到挂起的程序的PID 号,然后执行命令:


kill 123


该命令将中止PID 号码为123 的进程。


作为一般用户,我只能中止那些由我运行的进程。而作为超级用户可以中止任何进程。想要看系统中所有正在运行的进程的完整列表,用命令:


ps -axu | more


这命令将列出正在运行的所有进程(选项a),包括那些没有控制终端的进程(选项x),包括每个进程所属的用户名(选项u)。因为显示的内容可能要超过一个屏幕,所以用管道命令”|”加上”more”让换屏幕之间有个停顿。


kill 命令另有一个快捷的方法killall,举例:


killall netscape


这个命令将中止名称是netscape 的所有进程


killall pppd


3.1.7 命令选项


大部分命令带很多选项,大部分选项在字符前面带有”-“,举个例子:


dir -l


显示当前目录下的文件(以长文件名格式显示,不带选项为缺省时按短文件名格式显示),


dir -l -a


或者


dir -la


以长文件名格式(选项-l)显示所有文件包括隐含文件(选项-a)。一般情况下,选项只带一个字符。这是为了遵循旧的Unix 的传统。当然也有一些新的选项不止一个字符:


dir –help


这里,如果选项超过一个字符,选项前面就必须使用两个”-“作为引导。以上命令显示关于命令dir 的一些简单帮助信息。如果显示的内容超过一个屏幕,可以使用管道命令:


dir -help | more


3.2 用户,密码,文件访问权限和安全性


3.2.1 主目录, 根目录和添加新用户


对于一般用户来说,主目录(home directory)是硬盘上唯一可以原来写东西的地方。一般的路径名是/home/login_user_name。主目录用于存储各种用户文件:设置文件,程序配置文件,用户文档,数据,netscape 的缓存,邮件等等。


作为一个普通用户,你可以在主目录下建立新的目录安排你自己的目录结构。其他用户无法阅读你的文件或者写数据到你的主目录,除非你给他们适当的权限。除了自己的主目录以内的文件,一般用户也可以看到,阅读和执行很多系统里的文件,但是一般来说他们不能修改和删除这些文件。


root 用户(也叫”超级用户”)是一个特殊的系统管理帐号,可以修改系统里的任何文件。经常使用root 用户作为缺省的登录用户不是什么好习惯――你的误操作将有可能导致严重后果。建议设置一个一般用户给自己作为日常使用的帐号,只在必要使用root 用户的权限时才登陆到root用户模式下。一般来说,root 用户是Linux 初始化安装后的唯一一个用户。


使用root 用户建立一个普通用户:


adduser joe


passwd joe


[输入用户秘密]


[再次输入用户秘密确认]


在上述的例子里,要求超级用户root。


一般建议用户在第一次登录到系统的时候立刻修改自己的密码:


passwd


Changing password for joe


(current) UNIX password: [输入旧的密码]


New password: [输入新的密码]


Retype new password: [重复输入新的密码]


passwd: all authentication tokens updated successfully.passwd


实际上,当你输入密码时,出于安全原因,键盘输入并不会显示在屏幕上。如果你是第一次修改密码,看不到键盘输入的结果可能会有点不适应。


在Linux 里,同一个密码可以用来:


· 登录到文本终端


· 登录到图形用户界面(GNOME 或者KDE)


· 取消锁定的文本终端


· 取消密码保护的图形用户界面下的屏幕保护(GNOME 或者KDE)


3.2.2 密码安全性


以下是一些不好的密码:


· 根本没有密码


· 密码就是”password”


· 密码和登录用户名相同


· 你的名字,女儿的名字,儿子的名字,妻子的名字,丈夫的名字??或者任何一个亲人的名字。人的名字其实非常的有限――只要查一下一些类似”如何给婴儿取名”之类的书就可以了,不要以为你是印度来的就没有人知道你的名字。


· 你的姓或者其他人的姓。姓的数量比名字更加有限!


· 你家小狗的昵称,老婆的昵称等等。昵称的数量比姓更少!


· 你喜欢的体育俱乐部的名称,节日名称,牙膏的名称等等。避免使用非常出名的足球队的名称,也不要用任何摇滚乐队的名字


· 你的生日,社会保险号码,等等。


· 公司,部门,小组的名称


· 密码写在你的记事本上或者计算机壳子上


· 你在因特网联机商店使用的密码,电子邮件邮箱的密码等


· 任何在字典里可以找到的单词。英文字典其实没有包含你想象中那么多的单词(10 万个单词?10 万个单词的文件小于1MB!)。一个水平很一般的黑客很容易就加密所有的字典词汇然后逐一和你的密码比较。一个不可否认的事实,因特网上的确已经存在用来制造 “字典攻击”的现成工具。不信?试着找一个工具来破解你的密码看看有多容易!


· 任何其他词汇,姓,宠物或者成语,不管是哪一种语言。对于一个有经验的黑客来说,如果他已经覆盖了一种语言,稍微加工一下就可以很容易覆盖其他常用的语言。有多少常用的语言?40 个?黑客只需要把预先做好的几个文件加到破解文件清单里就行了。


· 任何以上的密码在前面或者后面加上一两个数字或者字符


3.2.3 忘记了超级用户密码怎么办


尽管我从来不会忘记自己的密码,但是我还是会仔细研究一下这个专题,以防将来有一天突然看到我的朋友在阅读我的ICQ 聊天记录时,可能会派上用场。


第一种办法:


最容易解决”忘记密码问题”的方法是将Linux 重新启动到单用户模式,可以在”lilo”的命令提示符下输入:


linux single


第二种办法


另外一个解决”超级用户密码丢失”的办法是使用Linux 启动盘或者安装CD 来启动你的计算机。然后找到你计算机硬盘上的root 分区,使用mount 命令挂载该分区,接着修改文件/etc/shadow。因为当我从软盘启动Linux 时,我可以不需要输入任何密码就成为root 用户。在密码文件里,把root 用户的加密密码删除,所以root 的密码将是空的。


3.2.4 忘记了普通用户密码怎么办


如果是普通用户(非root 用户)忘记密码,这个不是什么大问题,因为root 可以修改任何人的密码。举个例子(要求root 用户)


passwd barbara


按回车键后,将提示输入用户barbara 的新密码(root 用户不需要知道旧的密码)。如果一个普通用户想要修改自己的密码,该用户会被要求输入旧的密码(这是一个安全特性,以避免当你离开你的坐位有人试图修改你的密码).


3.2.5 关闭或删除一个用户


用户帐号可以被临时关闭或者永久删除


对于永久性(不可恢复)的删除一个用户帐号,我一般这样做:


– 以root 登录


– 把我的用户标识改成要删除的那个用户,检查是否有新的重要的电子邮件:


su doomed_user_login_name


mail


logout


– 删除用户和用户组:


userdel doomed_user_login_name


groupdel doomed_user_login_name


– 然后把该用户从所属的其他用户组里面删除:


usermod -G doomed_user_login_name doomed_user_login_name


– 强制删除该用户的主目录和主目录下的所有文件和子目录:


rm -fr /home/doomed_user_login_name


3.2.6 文件的所有权和访问权


Linux(还有其他Unix)是一个安全,多用户的操作系统,同时,这也产生了文件访问权限的复杂性。没有设置好文件的访问权限可能会导致一些莫名其妙的问题。充分了解文件的访问权限是管理任何多用户操作系统(Linux, Unix, Windows NT)的最重要环节。


我的建议是:学习Linux(或者其他Unix)的文件访问权限的内容,你从来不会为此感到后悔。


使用chmod 命令来修改属于你的文件的访问权限。


使用umask 设置缺省文件属性


目录权限:


目录的访问权限和一般文件的访问权限是不同的。对于一般文件:


r =允许读文件内容


w =允许修改文件内容


x =允许执行该文件


对于目录而言:


r =允许列出该目录下的文件和子目录


w =允许生成和删除该目录下的文件


x =允许访问该目录


3.3 用”&”, “at”, “batch”和”cron”进行作业调度


3.3.1 怎样在后台执行命令


在命令的最后加上&。


举例,以下命令将在X 窗口下后台启动icq 客户端程序,所以当icq 运行时,我的X 窗口不会被挂住。


licq&


3.3.2 怎样在某一特定时间执行命令(使用at”和”batch”)


at 命令可以让你指定特定的日期和时间来运行某个程序。


在命令行输入batch 然后回车,在”at>”命令提示符下,输入想要在后台运行的程序名称。程序试图立刻运行,但是其实会等到系统载荷小于0.8 的时候才会开始运行。你可以通过检查虚拟文件/proc/loadavg 来检查系统载荷:


cat /proc/loadavg


3.4 Shell

Linux从入门到精通(续6)


3.4.1 什么是Shell? 需要一个不同的Shell 吗?


shell 是计算机用来解释你输入的命令然后决定进行何种处理的程序。shell 也可以在非交互模式下调用。。可以把shell 看作是DOS 下面的command.com(命令行解释器),而shell 脚本就象是DOS 的批处理文件(*.bat)。和DOS 相比较,shell 的功能要先进和丰富得多。


在Linux 系统下有几个不同的shell(如果你全部安装):


bash “Bourne Again” shell


sh Bourne shell,在很多UNIX下是标准的shell


csh C shell,和C编程语言语法相近,在大部分UNIX下有效


pdksh public domain Korn shell


tcsh 微型 C shell, 在小的系统里经常使用


sash 单机版本的shell,当文件库无效的时候可以使用


ash, zsh等 可能还有更多其他版本


3.4.2 怎样定制自己的Shell


在我的计算机上,命令提示符看起来是这样的:


[stan@marie stan]$ _


要定制提示符,我可以编辑文件/etc/bashrc(root用户)然后在两个引号之内输入任何你想要的文本。以下是一些我可能会使用的特别代码:


\u – 当前用户的用户名(=$LOGNAME)


\h – 运行shell的计算机名(hostname)


\H – 完整的计算机名


\W – 当前工作目录名


\w – 当前工作命令全路径名


\$ – 对于普通用户显示$,对于超级用户显示#


\! – 当前命令的历史编号


\# – 当前命令编号(在当前的shell下运行的命令)


\d – 当前日期


\t – 当前时间 (24小时制)


\T – 当前时间 (12小时制),bash 2.0有效


\@ – 当前时间 (AM/PM格式),bash 2.0有效


\s – shell的类型


\a – 告警声音


\j – 用户的任务数


\n – 新行


\\ – 反斜杠


\[ – 不可打印字符开始标志


\] – 不可打印字符结束标志


\nnn – ASCII字符对应的八进制数值


$(date) – date(输出当前日期)命令输出或者其他的命令


以下是一个关于如何加彩色的例子。更详细的信息参考后面一节。


PS1=”\[\033[1;32m\][\u@\h \W]\$\[\033[0m\] “


这里还存在有 “第二层”输出提示符,在环境变量里是PS2。当需要附加输入时,shell使用”第二层”输出提示,在我的系统上”第二层”输出提示符是”>”。我不是很在意”第二层”输出提示符,尽管我可以使用修改PS1相同的办法修改PS2。除此之外,还有PS3,PS4,但是非常少见。


3.4.3 设置文本终端的颜色


文本终端的颜色可以使用”ANSI 非常规字符序列”来生成。


数值和编码的前后顺序没有关系。可以选择的编码如下所示:


编码 颜色/动作


0 重新设置属性到缺省设置


1 设置粗体


2 设置一半亮度(模拟彩色显示器的颜色)


4 设置下划线(模拟彩色显示器的颜色)


5 设置闪烁


7 设置反向图象


22 设置一般密度


24 关闭下划线


25 关闭闪烁


27 关闭反向图象


30 设置黑色前景


31 设置红色前景


32 设置绿色前景


33 设置棕色前景


34 设置蓝色前景


35 设置紫色前景


36 设置青色前景


37 设置白色前景


38 在缺省的前景颜色上设置下划线


39 在缺省的前景颜色上关闭下划线


40 设置黑色背景


41 设置红色背景


42 设置绿色背景


43 设置棕色背景


44 设置蓝色背景


45 设置紫色背景


46 设置青色背景


47 设置白色背景


49 设置缺省黑色背景


其他有趣的代码还有:


\033[2J 清除屏幕


\033[0q 关闭所有的键盘指示灯


\033[1q 设置”滚动锁定”指示灯 (Scroll Lock)


\033[2q 设置”数值锁定”指示灯 (Num Lock)


\033[3q 设置”大写锁定”指示灯 (Caps Lock)


\033[15:40H 把关闭移动到第15行,40列


\007 发蜂鸣生beep


想要了解更多,使用命令 man console_codes


3.5 如何安装软件包(Package)及 rpm 软件包管理器


3.5.1 如何安装从Internet 下载的程序?


答案基于你所下载的是哪一种软件包.如果你下载的程序是Red Hat二进制形式软件包*.rpm (如果假定一个选择, 我选择这种格式), 你能避免很多安装上的问题.


安装:rpm -ivh my_new_file.rpm


升级: rpm -Uvh my_new_file.rpm


卸载:rpm -E my_new_file.rpm(注意这里的文件名是不带版本号的)


第4 部分: Linux 管理员新手常见问题


==========================================


本章内容:


4.1 关于启动(LILO 和GRUB)


4.1.0 LILO 和 GRUB


4.1.1 Linux 不能发现我的所有内存


4.1.2 我如何能让操作系统变为由LILO 缺省引导?


4.1.3 在启动时LILO 提示符在屏幕上停留时间太短(或太长)


4.1.4 卸载Linux


4.2 访问我的驱动器


4.2.1 我的驱动器在哪里?


4.2.2 我如何访问我的CDROM?


4.2.3 如何挂载软盘,zip 磁盘驱动器,dos 分区,或网络驱动器?


4.2.4 如何通过 Samba 挂载远程MS Windows 的文件系统?


4.2.5作为超级用户我可以挂载. 普通用户能做到吗?


4.2.6 我能自动挂载吗?


4.2.7 我加了一个新硬盘, 开始使用时要做什么?


4.2.8 交换分区 SWAP


4.3 使用X-Windows工作


4.3.1 怎样切换文本和图形控制台?


4.3.2 我怎样在X-server 上安装显示卡、监视器以及鼠标?


4.3.3 我怎么将默认桌面改变成KDE(如Gnome 以及其他类型的KDE)?


4.3.4 在不关闭我的Linux 阶段作业的前提下可以开启第二个GUI 登录提示符吗


4.3.5 我如何从MSWindows 分区安装TrueType 字体?


4.3.6 如何进行拷贝粘贴操作?


4.4:基本配置


4.4.1 如何设置声卡?


4.4.2 如何设置打印机?


4.4.3 Word Perfect 8 没有适合我的打印机的驱动程序


4.4.4 配置文件在哪里?


4.4.5 这些设备文件都是什么?


4.5 网络


4.5.1 怎样使用Samba?


4.5.2 Sendmail


4.5.3 简单的WEB 服务器(Apache 阿帕奇)


4.5.4 简单的FTP 服务器


———————————————-


4.1 关于启动(LILO 和GRUB)


4.1.0 LILO 和 GRUB


新的GRUB 和旧的 LILO 二者都是系统引导载入程序。 它们使你在系统引导时选择不同的操作系统成为可能。大多数(所有?)在这一部分所描述的系统引导问题或许能在安装最近的Linux内核和最新的GRUB 引导装入程序时得到解决。GRUB 比LILO 更好是因为LILO 依赖硬盘的绝对地址来找到引导映像而GRUB 能理解文件系统并寻找包含那个引导映像的文件。在安装时,当系统给与选择时,我推荐使用GRUB。


GRUB 主要配置文件是 /boot/grub/menu.lst


4.1.1 Linux 不能发现我的所有内存


此问题已不多见,除非你的电脑年纪够大了!


查看 Linux 在你的系统占用了多少内存,输入:


cat /proc/meminfo



free


你能使用下面命令查看你的Linux 内核版本号:


uname -a


4.1.2 我如何能让操作系统变为由LILO 缺省引导?


以在lilo 配置文件/etc/lilo.conf 里设置。


———–


boot=/dev/hda


map=/boot/map


install=/boot/boot.b


vga=normal


default=linux


keytable=/boot/us.klt


lba32


prompt


timeout=50


message=/boot/message


menu-scheme=wb:bw:wb:bw


image=/boot/vmlinuz


label=linux


root=/dev/hda3


append=” mem=96M”


read-only


image=/boot/vmlinuz


label=failsafe


root=/dev/hda3


append=” mem=96M failsafe”


read-only


other=/dev/hda1


label=windows


table=/dev/hda


other=/dev/fd0


label=floppy


unsafe


—————–这是我RH7.2的LILO内容

Linux从入门到精通(续7)


这四个 “label=”值定义了引导选择的名字。 在文件的顶部由选项”default=” 值所指定的是操作系统缺省引导项。没有这个 “default”值, 出现在文件 /etc/lilo.conf 里的第一个标签值是缺省引导项。


在对/etc/lilo.conf 文件作了任何改变之后,别忘了重新运行命令:lilo


4.1.3 在启动时LILO 提示符在屏幕上停留时间太短(或太长)


增加或调整这一行:time=100 在你的/etc/lilo.conf 文件第一个”image=” 或 “append=”语句之前的右边。 ( lilo 的旧的版本使用的是”delay”.) 这个数字是以十分之一秒(0.1 秒)为单位的延迟时间,所以以上例子延迟时间是十秒。在对/etc/lilo.conf 文件作了任何改变之后,别忘了重新运行lilo , 否则你的改变不起作用。


4.1.5 卸载Linux


在DOS下或是Windos里删除Linux分区.然后fdisk/mbr(fdisk隐藏参数,用以重写主引导信息)


——————————————————-


4.2 访问我的驱动器


4.2.1 我的驱动器在哪里?


Linux 显示所有的目录都在一个目录树下,而与他们位于哪一个驱动器/硬件无关。


在Linux 下你能访问(读和写)各种驱动器和文件系统. 这包括了本地Linux 分区,DOS 和 MS


Windows 分区(在硬盘或软盘),ZIP 和 Jazz 磁盘驱动器, 和 CDROM 光盘.它也支持很多不常用的文件系统类型。这意味着你能使用针对Windows 界面的Netscape 来下载Linux 软件,保存下载软件到你的MS Windows 硬盘分区,然后启动Linux,从你的硬盘的Windows 分区复制这个下载的软件到Linux 分区,最后在Linux 下安装这个软件。


4.2.2 我如何访问我的CDROM?


挂载它。


挂载你的CD 的所有目录和文件到你的Linux 目录树,所以无须驱动器的字母,你能很容易访问他们。作为超级用户,你能用以下命令挂载CDROM:


mount -t auto /dev/cdrom /mnt/cdrom


如果这条命令工作,你的CD 的内容出现在目录/mnt/cdrom


为了卸下已挂载的CD, 退出目录/mnt/cdrom 并作为超级用户输入:


umount /mnt/cdrom


如果你的CDROM 没有卸载,它可以拒绝弹出这个介质。而且,如果前一个CD 没被卸载,当你挂载


下一个时可能会遇到问题。如果你因为”the device is busy”(设备忙碌)而不能卸载, 可能/mnt/cdrom (或任何在该目录下的子目录)是你的当前目录?你必须改变你的当前目录到任何其他地方而不是挂载点,以便卸载该设备。


4.2.3 如何挂载软盘,zip 磁盘驱动器,dos 分区,或网络驱动器?


和CDROM 大致一样


软盘


用命令:


mount -t auto /dev/fd0 /mnt/floppy


此外,保证目录/mnt/floppy 必须存在并且为空。而且,/mnt/floppy/不能是你的当前目录。


卸载:


umount /mnt/floppy


Zip 磁盘驱动器


用以下命令挂载并行端口外设zip 磁盘驱动器(scsi 模拟器):


mount -t vfat /dev/sda4 /mnt/zipdrive


这里使用了 “-t vfat” 因为在vfat 文件系统里预格式化了zip 磁盘


使用以下命令挂载内部IDE zip 磁盘驱动器:


mount -t vfat /dev/hdd4 /mnt/zipdrive


DOS/Windows 分区


在你的计算机里带有 Linux 和 MS Windows 二个操作系统,你使用双启动系统。在使用以下命令


挂载DOS/Windows 分区后你能访问在此分区的文件:


mount -t vfat /dev/hda1 /mnt/dosdrive


此外,基于你的DOS 文件系统位于哪个分区,你可以定制这条命令。”hda1″ 意为第一个IDE 硬盘


(hd a), 第一个分区 (1);”hda2″ 是第一个IDE 硬盘, 第二个分区; “hda3″–第一个IDE 硬盘, 第三个分区;”hdb1”–第二个IDE 硬盘,第一个分区 (或仅仅 “hdb”如果它是 CDROM 作为从驱动器安装在你的第一个 IDE 接口). “hdc” 是第三个IDE 驱动器, hdd 是第四个IDE 驱动器。


SCSI 接口有相似的名字,开始是字母”sd”,接着是显示SCSI 接口的字母,然后跟着显示SCSI 设备


id 的数字。例如,sda4 是指 “第一个 SCSI 接口, id 号是4″。


网络文件系统(NFS)


如果你适当设置了NFS , 你现在能够使用下面的命令来挂载网络目录:


mount -t nfs mars:/home /mnt/mars_home


4.2.4 如何通过 Samba 挂载远程MS Windows 的文件系统?


作为超级用户,输入命令如下:


smbmount //mars/windows /mnt/mars_windows -c marie


这挂载了来自名为mars 的MS Windows 机器的被称作windows 的 MS Windows 资源。客户机的挂


载点是 /mnt/mars_windows/ .


4.2.5 作为超级用户我可以挂载. 普通用户能做到吗?


你可以作为超级用户编辑这个文件 /etc/fstab,给予普通用户权限来挂载一个特别的驱动器.


对于一个能够对磁碟进行写操作或执行某一程序能力的普通用户, 必须在”挂载点”目录下赋予他


/她适当的权限。


4.2.6 我能自动挂载吗?


YES.


通过编辑/etc/auto.master 和 /etc/auto.misc 文件来配置自动挂载。


4.2.7 我加了一个新硬盘, 开始使用时要做什么?


0. 计划新硬盘文件系统的布局


1. 给新硬盘分区


2. 将新分区格式化


3. 测试新的空间


4. 复制旧分区的数据到新的分区(选项)


5. 编辑 /etc/fstab


6. 重新启动


7. 清除旧数据(选项)


4.2.13 交换分区 SWAP


交换分区是计算机物理内存的扩展。很可能,你在RedHat 初始设置时创建了一个交换分区。你能使用以下命令行证实你的系统中可用交换空间的大小:


cat /proc/meminfo


通常指定交换分区应该是物理内存的2倍.


————————————————


4.3 使用X-Windows 工作


4.3.1 怎样切换文本和图形控制台?


任何时候,按下组合键,系统将切换到另一文本控制台/GUI 控制台.


4.3.2 我怎样在X-server 上安装显示卡、监视器以及鼠标?


一般来说这些设备应该在你初始化安装时进行设置,除非你跳过了这些步骤。如果现在安装这些设


备,也许你要尝试使用以下这些文本模式配置器中的一个来进行启动配置。


XConfigurator


XF86setup


Xconf


在RedHat 中,你也可以运行setup,并且从那里访问XConfigurator。


4.3.3 我怎么将默认桌面改变成KDE(如Gnome 以及其他类型的KDE)?


用命令switchdesk,然后选择KDE.(至少RH9.0是这样的)


在文本下用命令kdm启动KDE.


4.3.4 在不关闭我的Linux 阶段作业的前提下可以开启第二个GUI 登录提示符吗?


在RedHat 系统中,在不同的本地控制台中激活多个当前的GUI 登录(RedHat 中使用gdm 程序作为


图形登录界面),需要编辑以下文件:/etc/X11/gdm.gdm.conf。通过在文件的底部输入以下的


内容,我激活了4 个终端热键从到。


[servers]


3=/usr/bin/X11/X vt10


2=/usr/bin/X11/X vt9


1=/usr/bin/X11/X vt8


0=/usr/bin/X11/X vt7


在Mandrake 中(Mandrake 使用KDE 作为缺省得图形登录界面),在不同的本地控制台上激活多个当


前的GUI 登录界面,我必须修改以下两个文件:/etc/X11/xdm.Xservers 在这个文件中添加以下内容:


:0 local /usr/X11R6/bin/X : 0


:1 local /usr/X11R6/bin/X : 1


:1 local /usr/X11R6/bin/X : 1


另外一个文件是/etc/X11/xdm/xdm-confiG 在这个文件中将所有针对显示0 到显示1 和显示2 设置


添加进去:


DisplayManager._0.authorize: true


DisplayManager._1.authorize: true


DisplayManager._2.authorize: true


DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0


DisplayManager._0.startup: /etc/X11/xdm/GiveConsole


DisplayManager._0.reset: /etc/X11/xdm/TakeConsole


DisplayManager._1.setup: /etc/X11/xdm/Xsetup_0


DisplayManager._1.startup: /etc/X11/xdm/GiveConsole


DisplayManager._1.reset: /etc/X11/xdm/TakeConsole


DisplayManager._2.setup: /etc/X11/xdm/Xsetup_0


DisplayManager._2.startup: /etc/X11/xdm/GiveConsole


DisplayManager._2.reset: /etc/X11/xdm/TakeConsole


以上操作可以让我在一台计算机上同时运行Gnome 和KDE 并且仍有三个空闲的GUI 终端。


4.3.9 我如何从MS Windows 分区安装TrueType 字体?


有些应用程序使用TrueType 字体,但是并没有附带TrueType 字体的库文件(或者作为选购产品)。这样你可能需要安装你自己的TrueType 字体。


下面介绍一下我是如何手动安装TrueType 字体的。Mandrake 包括了一个GUI工具传送MS Windows 字体到Linux,以下操作将会非常容易实现


这个目标。


0. 从K-menu(KDE 菜单)中选择”system”-”Font Manager”(或者相应的程序)记录下你已经安装的字体。


1. 使用行命令,检查”free type”字体服务程序是否安装:


rpm -qa | grep freetype


这个命令使用rpm 包管理器检查”freetype”程序包是否安装。如果此包已经安装,跳到下一步。如果没有安装,那么就要从你的发行版CD 中安装它。我在安装RedHat 时采用全部安装已经将”free type”安装到我的计算机中。


2. 以根用户身份登录,建立一个目录,用来存放TrueType 字体:


cd /usr/X11R6/Lib/X11/fonts


mkdir TrueType


这个目录是由系统配置文件/etc/X11/XF86Config 指定,所以请确认你的安装目录与上述内容一致,如果你想在一个不同的目录下安装此文件,你需要编辑/etc/X11/XF86Config文件,来调整相应的设置。在我的”默认安装”RedHat 配置中包含以下的一行内容:


FontPath “/usr/X11R6/X11/fonts/TrueType”


3. 以根用户身份登录,将*.ttf 文件由原始位置拷贝到你刚才建立的TrueType Font 目录,我是从我的MS Windows 分区中取得的TrueType 字体,也许你需要一个不同的文件源位置:


cd /usr/X11R6/lib/fonts/TrueType


cp /mnt/dos_hdaL/windows/fonts/my_private_fonts/*.ttf


当然在拷贝任何字体之前,请确认这些字库没有妨害到你的许可授权。


4. 以根用户身份登录,运行以下的命令:


cd /usr/X11R6/lib/X11/fonts/TrueType


ttmkfdir > fonts.dir


cp fonts.dir fonts.scaLe


5. 关闭所有的X-windows 应用程序,然后退出X-windows


6. 以根用户身份登录。重新启动X-font 服务程序(或者重新启动计算机):


/etc/rc.d/init.d/xfs stop


/etc/rc.d/init.d/xfs start


7. 重新登录你的KDE 然后从K 菜单中选择”System”-”Font Manager”来确认字体安装是否正确。


4.3.6 如何进行拷贝粘贴操作?


在X-windows 下��使用鼠标选中要被复制的文本,切换到复制的目的地址。点击鼠标中键键执行粘贴操作。此方法既快捷又好用。注意在切换过程中请不要取消对选中文本的选择。如果你的鼠标只有两个按键,则同时按下两个键或者只按下有边的按键即可(这取决于你的设置)。这个是标准的X-windows复制粘贴操作。

Linux从入门到精通(续8)


4.4:基本配置


4.4.1 如何设置声卡?


试着运行(以root 用户)


sndconfig


除非你有一块非常特殊的声卡,这个程序会工作的很好。在设置过程的最后,是Linux 的声音告诉


你他怎样读”Linux”(在RedHat 中,”sndconfig”也可以通过”设置”功能来调用——输入setup)。


4.4.2 如何设置打印机?


打开一个X 终端,然后输入(作为root 用后,否则你会被提示输入root 密码):


printtool &


这个程序会完成全部的打印机设置,你只需要填入你的打印机类型信息以及它接在哪里。


4.4.3 配置文件在哪里?


系统级的配置存放在/etc 目录中。用户级的配置存放在用户的主目录/home/user_login_name。


4.4.4 这些设备文件都是什么?


设备以文件的形式出现在目录/dev 中。它们可读、可写,如果你有权限这么做的话。


这里有一个常见设备的清单:


/dev/ttyS0 – 第一个串行口。鼠标通常接在这里。


/dev/ttyS1 – 第二个串行口。你的调制解调器很可能接在这里。


/dev/ttyS2 和/dev/ttyS3 是第三和第四个串行口(一般不存在,但你的内置调制解调器可以被设置成使用其中之一)。


/dev/modem – 串口调制解调器。通常是一个指向/dev/ttyS1、/dev/ttyS2 或/dev/ttyS3 的符号


链接,具体取决于你的调制解调器接在那个串行端口。


/dev/mouse – 鼠标。通常是一个指向/dev/ttyS0 或相似设备(见上)的符号链接,具体取决于


你的鼠标接在哪个串行端口。


/dev/lp0 – 接在第一个并行口的打印机。通常你的打印机接在这里。


/dev/lp1 – 接在第二个并行口的打印机(一般不存在)。


/dev/fd0 – 第一个软盘驱动器(一般都有)。


/dev/fd0H1440 – 第一个软盘驱动器的高密度模式驱动程序。一般情况下,这个驱动程序(或其


他有相似名字的设备驱动程序)在以特定密度格式化一张软盘的时候被调用。Slackware 还有支持


将一张3.5 英寸软盘格式化为最大1.7MB 的驱动程序。默认情况下,RedHat 和Mandrake 没有这些


驱动程序。


/dev/fd1 – 第二个软盘驱动器。


/dev/hda – 第一个IDE 硬盘(整个硬盘)。大多数IBM 兼容PC 的硬盘是IDE 设备。


/dev/hdb – 第二个IDE 硬盘(整个硬盘)。很多计算机中,IDE 光驱接在这里。


/dev/hdc – 第三个IDE 硬盘(整个硬盘)。很多计算机中,IDE 光驱接在这里。


/dev/cdrom – 指向相应设备的链接,通常是/dev/hdc 或/dev/hdb(CDROM)或/dev/scd0(CDR/RW)。


/dev/hda1 – 第一个IDE 硬盘的第一个分区。/dev/hda2 时第一个IDE 硬盘的第二个分区。不难猜测,/dev/hdd8 将会是第四个IDE 硬盘的第八分区。


/dev/tty1 – 第一个字符终端。/dev/tty2 时第二个字符终端,以此类推。


/dev/dsp – 数字音频,例如声卡。”dsp”是”digital signal processing(数字信号处理)”的缩写。


/dev/sndstat – 用cat /dev/sndstat 来更多地了解你的声卡状态。


/dev/null – 当你不想要输出的时候就送到这里。


/dev/random – 用来读伪随机数。用cat /dev/random 来在屏幕上显示一对乱七八糟的字符。还有一个/dev/urandom 设备用来生成低质量的随机数序列。


/dev/sda – 第一个SCSI 硬盘(整个硬盘)。在一台家用计算机中,不太可能有SCSI 设备(昂贵)。


/dev/sdb – 第二个SCSI 硬盘(”sdc”是第三个SCSI 硬盘,以此类推。一个系统中可以有多个SCSI 硬盘)。


/dev/sda1 – 第一个SCSI 硬盘的第一个分区。


/dev/sr0 – 第一个SCSI 光驱(有时叫做/dev/scd0)。如果你有一个ATAPI CD Writer,也可能在这里。


/dev/sr1 – 第二个SCSI 光驱(有时叫做/dev/scd1)。(/dev/sr2 是第三个SCSI 光驱,以此类推。系统中可以有多个SCSI 光驱)


/dev/usb/scanner0 – 一个usb 扫描仪。试用less


/usr/src/linux/Documentation/usb/scanner.txt 了解如何从头开始配置扫描仪。欲了解更多:


less /usr/src/linux/Documentation/devices.txt


man MAKEDEV


象/usr/src/linux/Documentation/devices.txt 解释的那样,我可能需要创建一些指向设备文件本身的符号链接来配置我的系统。这只是一个简单的实例,并不意味着通用的建议。当然,如果这些链接存在,它们应该有以下的:


/dev/mouse 当前鼠标端口***


/dev/tape 当前磁带设备


/dev/cdrom 当前光驱设备***


/dev/cdwriter 当前CD-writer 设备(但是我的RedHat 是/dev/cdrecorder)


/dev/scanner 当前扫描仪设备


/dev/modem 当前拨出(调制解调器)端口


/dev/root 当前root 文件系统


/dev/swap 当前swap 设备


…………


4.5 网络


4.5.1 怎样使用Samba?


Samba(smb)是为Linux-MSWindows 互连而设计的程序。它使一台Linux 计算机伪装成一台MS


Windows NT 服务器,


配置Samba。


配置相对来说比较简单,因为所有的Samba 配置全都在一个注解清晰的文件/etc/smb.config 里完成。最少的设定包括指定工作组名。注意如果你没有填充”host allow”选项,所有的主机都是允许的,这对家庭网络是可行的。RedHat CD 提供的/etc/smb.conf 文件样本中的其他选项也可能需要调整以满足你的特别要求,但我什么也没有改动,我的Windows 机器就可以连到我的Samba 服务器上。


检查文件/etc/smb.conf 的选项:


domain master = yes


domain logons = yes


确定它们已启用。你可能需要他们。


在RH7.2 系统中,你也可以用下面的命令对samba 进行一些基本的设定(以root 权限):


netconf


然后是对MS Windows进行网络配置。这一步和连接到WinNT 服务器的配置完全一样。确定网络功能(“client for Microsoft Network”)已启用并填加了工作组名。当启动MSWindows 时用你的Linux 用户名和密码登入网络。点击”网络邻居”(Network Neighborhood)图标,如果你的Linux 服务器已在列表中,说明已成功登录。进一步可以看到你在文件


/etc/smb.conf 中选择要共享的目录和打印机列表。


如果看不到或不能正常使用公共目录,确定目录已创建并为所有用户设定了正确的读写权限。


MS Windows 95b 及以上版本(95c,98 和新的NTs)可能使用了密码加密技术。这会引起Window 机器登录失败,这时你需要在文件/etc/smb.conf 启用选项:


encrypt passwords = yes


在Linux 服务器端,你可以用以下命令启动,停止,重新启动和检查Samba 的状态(以root权限):


samba start


samba status


samba restart


samba stop


修改文件/etc/smb.conf 之后需要重新启动samba。


如果你已通过Samba 与你的Linux 计算机相连并且Linux 机器已连在Internet 上,你就可以用


Windows 版的Netscape 游览网页了。为实现之,在带有调制解调器的Linux 机器上必须已设定IP伪装(详见这里)并且在文件/etc/smb.conf 中已启用了Samba dns 名称解释选项:


dns proxy = yes


然后通知Windows 启用dns 服务器,指定Linux 服务器名和IP 地址(在控制面板中选择Network-


TCP/IP)。


4.5.2 Sendmail


Sendmail 是Internet 标准的邮件处理系统,也是RedHat Linux 缺省的邮件处理系统(Mandrake 使


用PostFix)。作为用户,你不会直接使用sendmail–sendmail 运行在计算机的后台,是管理所有用户邮件的主服务器引擎。在文本模式下,你可选择pine 或elm 来阅读/发送邮件(选一个然后一直用它–同时管理两个独立的邮箱会很不方便)。在KDE 下,你可从K-menu 中选用”mailclient”(kmail)。如果想通过ppp 拨号与外界通信,你可能更想用内建在Netscape 中的mailer 与远程的基于Internet 服务提供商的邮箱直接联系(跳过本地计算机的邮件服务器)。


4.5.3 简单的WEB 服务器(Apache 阿帕奇)


在RedHat 7.2系统中安装一简单的阿帕奇web 服务器非常容易,我是在安装RedHat 时已安装了阿帕奇web 服务器的rpm 软件包。如果你还没有安装,请把RH CD 盘放入CDROM 中,加载CDROM,然后安装apache-*.rpm 软件包(“*”是对应的软件版本号和平台)。如果已知要安装什么,做起来则非常简单(以root 的权限):


cd /mnt/cdrom/RedHat/RPMS


rpm -ivh apache*.rpm


接下来,运行”setup”(以root 权限)并确定已启用httpd daemon(在”system services”下)。[守护程序(A daemon)是位于后台的程序,当需要的时候就会被激活。对于httpd,如果有人访问你的http 服务器,则会激活它的httpd daemon(httpd 守护程序)。]


现在,每次启动计算机时,httpd 都会自动开启。也可以用下面的命令手动开启它(以root权限):


/etc/rc.d/init.d/httpd start


关闭时使用命令:


/etc/rc.d/init.d/httpd stop


系统中应该已有目录:/home/httpd(检查它是否存在),在它的下面是子目录html—这是人们从web 访问你的计算机时的”根目录”(“他们的根目录”意谓着他们不可以访问你的系统中/home/httpd/html/之上的任何一层目录)。缺省情况下,这个目录中包含一些阿帕奇安装程序生成的html 文件和手册。现在你应该可以从你的家庭网络中的另一台机器连结到你web 服务器了。


4.5.4 简单的FTP 服务器


在旧的RedHat Linux 系统中(RH

5.17 网络管理工具


netconf


(以root 用户运行)一个非常好的菜单驱动的网络设置工具。


ping machine_name


检验你是否能和其他机器相连(给出机器名或IP),当结束的时候按C(如果不按C,命令将一直执行)象所有的Linux 命令一样,ping 有许多选项,包括”ping of death”攻击,看起来你可以ping 许多服务器,导致它们死机――试一下选项 -f 和 -s。


route -n


显示内核路由表。


host host_to_find


nslooup host_to_find


dig ip_to_find


(三个命令,用任意一个)在缺省域名服务器(DNS)上查询一个Internet 名字(或IP 地址)host_to_find。用这个方法你可以检查你的DNS 是否工作。如果你只知道一个主机的IP 地址,你还可以查出它的名字。


traceroute host_to_trace


查看你的信息到达host_to_trace 的线路。(可以是主机名字或IP 地址)


mtr host_to_trace


(以root 用户运行)一个强大而好用的工具,结合了旧的ping 和traceroute 的功能(RH7.2)。


nmblookup -A ip_address


查看一个联网的MS Windows 主机(用NetBIOS 名字)的状态。这个命令与Windows 的nbtstat 命令是等价的。


ipchains -L


列出所有的防火墙规则。用来检查你的防火墙设置是否工作。


firewall-config


(以root 用户运行,在X 终端上)建立你的自定义防火墙的GUI 工具。


ifconfig


(以root 用户运行)显示当前激活的网络接口(ethernet,ppp,等等)。你的第一块网卡显示为eth0,第二块网卡为eth1,等。通过调制解调器的第一个端口为ppp0,第二个端口为ppp1,等等。”lo”是”loopback only”接口,它总是处于激活状态。使用选项(详见ifconfig –help)来设置接口。


ifdown interface_name


(以普通用户运行/sbin/ifdown)。关闭网络接口


nmap ip_number


显示ip_number 机器上的端口映射。对于建立你的网络设置的安全真的十分有用,因为你可以看到开放的端口。

第5 部分: Linux 的快捷键和主要命令


===========================================


本章内容:


5.1 Linux 基本的键盘输入快捷键和一些常用命令


5.2 帮助命令


5.3 系统信息


5.4 基本操作


5.5 文件管理


5.6 查看和编辑文件


5.7 查找文件


5.8 X-windows 基础


5.9 网络应用程序


5.10 文件压缩和解压缩


5.11 进程控制


5.12 一些管理命令


5.13 硬盘和软盘实用工具


5.14 用户帐户和文件权限管理


5.15 程序安装


5.16 访问磁盘驱动器/分区


5.17 网络管理工具


———————————–


简介:


这是包含在Linux软件包里(RedHat或者Mandrake),我们比较经常使用和比较有用的一些命令集合。在你当前路径的命令提示行下按键,就可以看到有效的命令一览。


———————————————————————-


以下给那些对Linux没有概念的新手:


1. Linux是大小写敏感的系统,举个例子,Mozilla, MOZILLA, mOzilla和 mozilla是四个不同的命令(但是只有第四个mozilla是真正有效的命令)。还有,my_filE, my_file,和my_FILE是三个不同的文件。用户的登录名和秘密也是大小写敏感的(这是因为UNIX系统和C语言的传统一向是大小写敏感所致)。


2. 文件名最多可以有256个字符,可以包含数字,点号”.”,下划线”_”,横杆”-“,加上其他一些不被建议使用的字符。


3. 文件名前面带”.”的文件在输入”ls”或者”dir” 命令时一般不显示。可以把这些文件看作是隐含文件,当然你也可以使用命令”ls -a”来显示这些文件。


4. “/”对等于DOS下的”\”(根目录,意味着所有其他目录的父目录,或者是在目录之间和目录和文件之间的一个间隔符号)。举个例子,cd /usr/doc。


5. 在Linux系统下,所有的目录显示在单一目录树下(有别于DOS系统的驱动器标识)。这意味着所有的物理设备上的所有文件和目录都合并在单一的目录树下。


6. 在配置文件里,以#打头的行是注释行。在修改配置文件的时候尽量不要删除旧的设置――可以把原来的设置加上”#”变成注释行,总是在修改地方对应地加入一些关于修改的注释,你会发觉在以后的管理中获益多多。


7. Linux是继承性的多用户操作系统。你的个人设定(和其他用户的个人设定)放在你的主目录下(一般是/home/your_user_login_name)。许多的配置文件的文件名都以”.”开头,这样用户一般看不到这些文件。


8. 整个系统范围的设定一般放在目录/etc下。


9. 和其他的多用户操作系统类似,在Linux下,文件和目录有自己的拥有者和访问权限。一般来说,你只被允许文件到你的主目录下(/home/your_user_login_name)。学习一些关于文件权限管理的相关知识,否则你肯定会觉得Linux实在很麻烦。


10. 命令参数选项一般由”-“引导,后面跟一个字符(或者”–“,当选项超过一个字符时)。这样,”-“有点象DOS下的”/”。举个例子,输入命令 rm –help。


11. 输入command& (命令名后面加&符号)在背景模式下运行一个命令。这个一般用来在X窗口下启动其他的程序。


——————————————————————


5.1 Linux 基本的键盘输入快捷键和一些常用命令


切换到第一个文本终端。在Linux下你可以有多达六个不同的终端。这个命令的意思是:”同时按住键和键,然后按键,再释放所有的键”。


(n=1..6)


切换到第n个文本终端。(你也可以使用不是很经常用到的命令chvt n 来实现,n指的是第n个文本终端)。在文本终端下(不是在X窗口),你也可以简单使用来实现切换,不需要键。


打印出你正在使用的终端名称,如果你希望知道终端的名字,可以使用命令fgconsole。


切换到第一个图形用户界面(一般来说X-window在第七个终端)


(n=7到12)


切换到第n个图形用户街面。根据缺省,第一个X-Window在第7个终端运行,从第8到第12什么也没有,当然你可以逐个启动这些图形用户界面。


(在文本终端下)可以使用TAB自动完成命令,或者显示所有的可选项。这个快捷键真的非常好用,经常使用你会发觉它可以节约你很多的时间。


(在文本终端或者X窗口下)滚动和编辑以前输入的命令。按执行一个历史命令


回滚


滚动终端输出。对于登录提示也起作用,所以你可以使用它回滚启动信息。你显卡的内存大小决定你可以回滚多少内容


回滚终端输出


(在X窗口下) 改变X服务器的屏幕解析率 (如果你设置X服务器有多个不同的屏幕解析率)。比如对于我的标准SVGA卡和显示器,在文件/etc/X11/XF86Config有以下的设置行: (从缺省开始,到可以支持的最大虚拟屏幕解析率)


Modes “1024×768” “800×600” “640×480” “512×384” “480×300” “400×300” “1152×864″Z


当然,首先我必须设置我的X服务器,可以使用using Xconfigurator, xf86config, 也可以手工编辑文件:/etc/X11/XF86Config。XFdrake (Mandrake使用图形用户界面进行配置 )。你也可以参考命令xvidtune和xvidgen。


(在X窗口下)把X服务器的屏幕解析率修改到上一次的设置。


(在X窗口,KDE下)关闭我鼠标将要指向的窗口(鼠标的光标形状会有所改变)。同样的效果也可以使用命令xkill(在X终端上)来实现。当一个程序窗口被挂住的时候特别有用。


(在X窗口下) 终止当前的 X窗口服务。如果X窗口不能正常退出时可以使用。


(适用于文本终端下)关机和重新启动。这是一个在文本终端下的正常关机命令,千万不要按计算机上的reset键来重新关机和重新启动!


c


终止当前进程(对于一般的小型文本模式的应用程序)


d


(在一个空白的命令行上输入)退出当前的终端。参加下一个命令。


d


给当前的进程送文件结束符合。不要按两次否则你会把自己退出系统。


s


停止终端传输


q


从新开始终端传输。如果你的终端突然莫名其妙的停止响应,可以参考上一条命令。


z


把当前进程送到后台处理。


exit


退出系统。我也可以使用logout命令达到同样效果。(如果你启动了第二个shell程序,比如,使用bash,这条命令将使你退出第二个shell回到第一个shell,但是不会退出系统。当然,可以再一次使用exit退出)


reset


恢复崩溃的终端(有些终端显示一些奇怪的字符)到缺省的设置。当你使用cat命令准备显示一个二进制文件时,你可能看不到你所输入的命令,尽管命令仍然照常工作。


粘贴当前选择的文本。这是一个常规的Linux”复制-粘贴”操作。它是对被广泛采用的通信用户界面下”复制-粘贴”操作的一个非常有用的扩展(但是它不支持旧版本的NetScape,因为在旧版的NetScape只能使用MAC/Windows风格的”复制-粘贴”操作。如果你运行”setup”程序进行设置,你可以在文本终端下使用这个功能。而且它在大多数的对话框里也能很好的工作,真的非常方便!)如果你有一个”Linux-Ready”的鼠标(logitec或者其类似产品)或者你通过使用”模拟三键鼠标”,这个功能可以得到最大限度的发挥。一般来说,”第三键”的模拟是通过同时点击左右两个鼠标键来实现。


~


(水文符号) 我的主目录(一般来书是/home/我的登录名)。举例,命令~/my_dir将修改我的工作目录到我的主目录的子目录”my_dir”下。相对于输入”cd ~”,你也可以只输入”cd”,我把我的所有文件都放在自己的主目录下。


.


(点符号) 当前目录。举例:./my_program 将试图执行当前目录下的”my_program”文件


..


(两个点)到当前的上一级目录(也叫”父目录”)。举个例子,命令”cd..”将修改我的当前工作目录到上一级目录。


————————-


一些KDE的快捷键(很有用,但不是非要不可的)


切换不同的程序窗口。往回切换,使用


切换不同的桌面。往回切换,使用


显示我系统里正在运行的进程列表。允许我终止那些由我启动的进程(或者送信号给这些进程)


访问K菜单 (对等于微软Windows的的”开始”菜单).


使用键盘上的箭号键模拟鼠标的操作


拖曳并移动一个窗口。一般来说,我通过拖曳窗口的题目栏来移动一个窗口。有些时候,我用它把一个窗口移动到屏幕之外。使用这个功能,我可以把窗口移动到屏幕的任何位置。


把当前屏幕的快照存到剪贴板


把当前桌面的快照存到剪贴板


锁定桌面


切换隐藏/显示桌面的功能(当老板走过来的时候迅速藏起你的纸牌接龙游戏非常管用哦!


(非必须掌握)


这是在Linux的内核(底层内核)上支持的一组组合键。它意味着这些组合键在大部分情况下都是有效的。组合键主要是针对开发人员的程序调试目的或者在紧急场合下才使用;你也可以使用其他的办法,安全第一。键在PC上指的是PrintScreen键。组合键的功能可以通过设置相对应的内核参数来激活或者取消,比如: echo “1” > /proc/sys/kernel/sysrq


终止在当前虚拟终端上运行的所有进程(包括X窗口)。这个组合键被称为”安全访问键”(SAK).


发送 TERM 信号(结束信号)到除了init进程以外的所有运行进程,要求其退出


发送 KILL (终止信号)到除了init进程以外的所有运行进程, 这个组合键比上一个更加有效,但是也可能引起一些程序被异常终止。


发送KILL命令到所有运行进程(包括init),系统将不再能够使用


在所有的挂载文件系统上运行紧急同步(缓存写) 。这可以保护数据丢失


[u]


以只读模式重新挂载所有已加载的文件系统。这和上面的同步组合键有相同的功能,但是另外有一个好处:如果操作顺利完成,下一次硬件重新启动时,fsck将不会重新检查所有的文件系统。


关闭键盘的原始模式。当你的X窗口程序挂住没有响应时特别有用。使用这个组合键之后,你可能会接着使用程序启动。


不进行同步和卸载就立刻重新启动系统。之后你可能会碰到一下错误信息。


关机 (如果正确设置以后)


[/u][u]


��出当前的寄存器和标志到控制台


导出当前任务和相关信息到控制台


导出内存的内容到控制台


SysRq>


“数字”从0到9。设置控制台记录的级别,用于控制哪一些内核信息将被显示在控制台上。举例,”0″意味着只有象PANIC和OOPS的之类的紧急信息才被显示在控制台上。


显示帮助信息。还有,任何其他不被支持的 组合键


将显示同样的帮助。[/u]


5.2 帮助命令


命令名 -help | more


显示一个简略的命令帮助(对大部分命令有效)。举个例子,试着使用 “cp -help | more”。”–help”和和DOS下的”/h”开关功能类似。当输出超过一个屏幕时,加上”more”是很有必要的。


man 命令名


显示对应命令系统的帮助手册。输入”q”退出浏览器。如果你设置了高级选项,试着输入”man”。命令”info 命令名” 和命令”man 命令名”功能相似,但是包含更多的最新信息。帮助手册对于新手可能有点难于读懂——因为它们最初是写来给UNIX程序员看的。使用”命令名 -help”可以得到一个简略容易消化的命令帮助。有些程序自带README文件或者其他帮助信息文件—-建议你可以看看目录/usr/share/doc。在指定的部分显示命令帮助,可以使用这样的命令”man3 exit”,这个命令只显示exit命令帮助手册的”第三部分”;或者使用命令”man -a exit”,这个命令显示exit命令帮助手册的”所有部分”。exit命令帮助的所有部分是: 1-用户命令;2-系统调用;3-子调用;4-设备;5-文件格式;6-游戏;7-杂项;8-系统管理;9-新内容。打印完整的命令帮助,可以使用命令”man 命令名 | col -b | lpr”(可选项col -b删除所有的退格键和一些难以阅读的特殊字符)。


info 命令名


显示指定命令的帮助信息。info 命令是取代man 命令的一个好处是,它通常带有最近更新的系统


资料。多使用”空格键”和”退格键”,否则你可能会晕头转向。按”q”键退出。如果觉得用于翻阅的办法不太好用――你也可以试着使用pinfo命令,看你会不会更喜欢这个替代品。


apropos 命令名


对所输入的命令名给出一个帮助一览表。


whatis 命令名


给出匹配所输入命令名的简短清单。whatis命令有点象apropos――它们使用相同的数据库。不同的是,whatis搜索的是关键字,apropos搜索的是关键字的具体描述。


help 命令名


显示bash shell内置命令的简单信息。使用 help 命令不带任何参数将显示bash shell所有内置的命令。最短的bash shell内置命令应该包括:alias, bg, cd, echo, exit, export, help,history, jobs, kill, logout, pwd, set, source, ulimit, umask, unalias, unset.kdehelp


kdehelpcenter


(在X-终端下有效, 使用在你的系统上可以工作的那一个命令). 使用图形的浏览器显示整个系统的帮助。一般来说,KDE帮助通过把对应的图标放在KDE控制板上来实现。对等的GNOME帮助系统可以使用gnome-help-browser命令。


5.3 系统信息


pwd


输出工作目录。举例,在屏幕上显示我当前所在的目录


hostname


输出本地主机的名称(我正在使用的这一台机器)。使用netconf修改机器的名称(要求超级用户权限)


whoami


输出我的登录名称


id username


输出用户标识ID(UID)和其对应的用户组标识ID(GID),有效的ID(如果不同于真正的用户ID)和所属的其他用户组


date


输出操作系统的当前日期,时间和时区。如果要以ISO标准格式输出,我必须使用命令”date -Iseconds”。我可以修改当前的日期和时间到2003-12-31 23:57,使用命令:date 123123572003。或者使用两个命令(比较容易理解和记住):


date –set 2003-12-31


date -set 23:57:00


如果要重新设置硬件时钟(BIOS),可以使用命令setclock,要求超级用户权限。


time


侦测一个进程所需要的时间加上其他处理的时间的总和。不要和上面提到的date命令混淆。比如,我可以使用命令”time ls”来判断显示一个目录需要多长时间;或者我可以使用命令”timesleep 10″来测试time命令(睡眠10秒钟,什么也不做)。


clock


(两个命令中的一个)从计算机的硬件(由电池供应的实时的硬件时钟)获得日期/时间。你可以使用这个命令来设置硬件时钟,但是setclock可能简单一些(看前面的两个命令)


who


显示登录在系统里的用户


w


显示登录在系统里的用户,检查他们正在做什么以及他们的处理器使用状况。属于常用的安全方面


的命令。


rwho -a


(=remote who,远端的who命令)。显示网络里其他计算机的用户登录状况。这个命令要求rwho服


务必须在远端机器上运行。如果没有,以root用户运行setup(RedHat特有)激活”rwho”。


finger 用户名


显示对于一个用户的系统信息。可以试一下命令:finger root。任何人都可以使用finger命令访


问任何一台连接到因特网提供finger服务的计算机。比如:finger @finger.kernel.org


last


显示最后一个登录到系统的用户。经常运行这个命令作为系统安全检测的手段之一是一个绝好的主


意。


lastb


(”=last bad”,最后一个坏的)显示最后一个不成功的登录尝试。但是这个命令在我的系统上不能工作,所以你可能要使用:touch /var/log/btmp”/var/log/btmp在一般的系统安装里无效的主要原因是因为:它是一个包含登录的出错信息的完全可读的文件。一个用户登录时最经常犯的错误是输入用户密码作为用户名,这样,文件/var/log/btmp对计算机黑客来说简直是一个礼物”。(谢谢Bruce Richardson提供这个信息)。如果要解决这个问题,修改该文件的文件访问权限为只有root用户才可以使用命令”lastb”。命令:”chmod o-r /var/log/btmp”


history | more


显示当前用户在命令行模式下执行的最后(1000个)命令。参数”|more”在输出满屏时暂停。如


果要检查其他用户在你系统上都运行了什么,以root用户登录,检查在该用户主目录下的文件”.bash_history”(没错,该文件可以被修改和删除)。


uptime


显示自从上一次启动到现在机器运行的总时间。


ps


(= “print status”或者 “process status”,打印状态或者处理状态)列出由当前用户运行


的进程一览。


ps axu | more


列出当前运行的所有进程,包括那些不是来自控制终端的进程,在显示用户进程的同时显示用户


名。


top


持续列出正在运行的所有进程,按CPU的占用率排序(占用率高的排在最前面)。按C退出。


PID = 用户标识


USER = 启动或者拥有该进程的用户.


PRI = 进程的优先级别(值越大,优先级别越低,一般进程是0,最高的级别是-20,最低的级别是20。


NI = 优化级别(比如,进程试图以预先给定的优先级别的数值来运行)。数值越高,进程的优化级别也越


高(优先级别越低)


SIZE = 进程加载到内存的代码+数据+堆栈的字节总数(以千字节计算)


RSS = 物理内存被占用的大小(以千字节计算)


SHARE = 和其他进程共享的内存 (以千字节计算)


STAT = 进程的当前状态 S-睡眠, R-运行,T-停止或者被跟踪,D-不可中断的睡眠,Z-不死的进程


%CPU = CPU占用虑百分比(自从上一次屏幕更新以来)


%MEM = 共享物理内存的占用率


TIME = 进程占用的CPU时间 (自从进程启动以来)


COMMAND=启动该任务使用的命令行(小心命令行里出现的密码等信息,有权限运行top命令的用户都可以看见它们!)


gtop ktop


(X终端)在图形用户界面下的两个top功能。我比较习惯使用gtop(在gnome自带)。在KDE环境下,ktop在K菜单的”System”菜单下的”Task Manager”里。


uname -a


(=”Unix Name”带可选项”all”)显示你本地计算机信息。也可以使用通信用户界面的guname


(X终端下)得到更好的信息显示。


XFree86 -version


显示本地计算机的X-Windows的版本。


cat /etc/issue


检查你的发行版本。你也可以把你自己的信息放到文件/etc/issue里――在用户登录的时候会显示。如果你想要显示更多的信息,还有一个比较常见的做法是把本地专有的登录信息内容放在文件/etc/motd里 (”motd”=”message of the day”,当天信息)


free


内存的信息(以千字节显示)。”共享”内存是指可以被多个进程共同享有的内存(比如,可执行代码是”共享”的)。”缓冲”和”缓存”则是用来保留最近访问的文件和数据――当其他进程需要更多的内存时候这些内容可以被减缩。


df -h


(=disk free 硬盘剩余空间) 输出所有文件系统的硬盘信息(以易读的模式,h-human readable,人类可读)


du /-bh | more


(=disk usuage, 硬盘使用状况)输出根目录”/”下每个子目录具体的硬盘使用状况cat /proc/cpuinfo


CPU信息――它显示文件cpuinfo的内容。要注意的是文件在/proc目录下不是真正的文件――它们只是在观察内核信息时起连接的作用。


cat /proc/interrupts


显示正在使用的中断号。在配置一个新硬件的时候可能需要浏览一下。


cat /proc/version


Linux的版本和其他信息


cat /proc/filesystems


显示当前使用的文件系统的类型


cat /etc/printcap |more


显示打印机的设置


lsmod


(= “list modules”. 显示模块。必须是root用户,如果不是,使用命令/sbin/lsmod执行)显示当前已经加载的内核模块 .


set|more


显示当前的用户环境(全部显示)。一般来说东西太多了。


echo $PATH


显示环境变量”PATH”的内容。这个命令也可以用来显示其他的环境变量。使用set来察看所有的


环境变量(和前一个命令功能相同)


dmesg | less


输出内核信息(也就是常说的内核内部缓存信息)。按”q”退出”less”。也可以使用 “less


/var/log/dmesg”来直接检查最近一次系统启动时”dmesg”输出到文件里的内容。


chage -l my_login_name


查看我的密码过期信息


quota


查看我的硬盘区间(硬盘使用的限制)


sysctl -a |more


显示所有可设置的Linux内核参数


runlevel


输出和前一个和当前的运行级别(runlevel)。输出”N5″意味着:”没有前一个运行级别”和”5是当前的运行级别”。要修改运行级别,使用”init”,举例:”init 1″把当前的运行级别切换到”单用户模式”。运行级别是Linux的操作模式。运行级别可以使用init命令进行快捷的修改。


sar


查看抽取系统活动记录文件信息(/var/log/sarxx, 其中xx指的是当前的日期)。sar可以抽取很多种系统统计信息,包括CPU的平均载荷,i/o的统计,当天的网络流量统计或者是几天以前的数据。

Linux从入门到精通(续10)


5.4 基本操作


ls


dir


列出当前目录的内容。dir命令是ls命令的一个别名,所以这两个命令在文件罗列时使用的颜色代码是绝对一致的:


深蓝色=目录


浅灰色=一般文件


绿色=可执行文件


紫色=图形文件


红色=压缩文件


浅蓝色=链接文件


黄色=设备文件


棕色=FIFO文件(先进先出,命令管道)


cd 目录


修改当前目录。只输入”cd”没有指定目录名将切换到你的主目录。”cd -“将切换到上一次你访问的目录,这个命令在两个不同的目录之间切换时非常方便。”cd ..”将退到当前目录的上一级目录(父目录)。


./程序名


在当前目录下运行一个可执行程序。当可执行文件不在我的PATH下时,”./”是必须的。一个在我


的PATH下的可执行文件可以简单的输入程序名运行而不需要”./”。


shutdown -h now


(要求root用户)关机。一般用于在远程关闭计算机。在控制台上可以使用来关


闭计算机(所有用户都可以)


halt


reboot


vlock


(旧版本的RedHat没有这个功能)锁住当前的文本终端。


5.5 文件管理


cp source destination


复制源文件source 到目标文件destination。


mcopy source destination


从DOS文件系统复制一个文件或者复制一个文件到DOS的文件系统里(不需要挂载DOS文件系统)。


mv source destination


移动文件和更改文件名。对于文件和目录的移动和改名都可以使用这个命令。


rename 字符串 更新字符串 文件名


很好用的文件名修改工具。


rm files


删除文件。你必须是拥有这些文件才能够删除它们(或者是root用户)。在很多系统里,你将会被提问是否确认删除文件。如果你不想被提问,使用”-f”(=force,强制删除)参数。


mkdir directory


创建新目录。


rmdir directory


删除一个空目录


rm -r files


删除文件,目录和所有它们的子目录。作为root用户,要小心使用这个命令――如果你在顶级目录树上执行这条命令,你将删除系统里所有的文件,到目前为止在Linux里还没有”取消删除”的命令。如果你真的想要这么做(再仔细想想?),这里告诉你该怎么办:使用命令 “rm -rf/*”。


rm -rf files


(强制)删除文件,目录和所有它们的子目录如上所述,但是跳过确认信息提示。如果你是root用户,绝对要小心使用这个命令。


mc


激活”Midnight Commander”文件管理器(看起来有点象Linux下的Norton Commander)。根据一些恐龙级的计算机用户的反映,这是至今为止最好的文件管理器。


5.6 查看和编辑文件


cat filename | more


这个命令用于查看一个被称为 “filename”的文本文件的内容,每次一页.


5.7 查找文件


find / -name “filename”


在你的文件系统中从根目录”/”开始搜索被称为”filename”的文件. “filename”文件名可以包含通配符(*,?).


find 命令功能强大.它有很多选项让你以不同的方式搜索文件.


5.8 X-windows 基础


xinit &


启动基本的X-windows 服务器(没有 windows 管理器). “&”使命令运行在后台.


startx &


启动X-windows 服务器和默认windows 管理器.就象在带有Win3.1 的DOS 下键入”win” .


startx — :1 &


在显示进程1 中启动另一个X-windows(默认显示进程为0). 你能够同时运行几个 GUI 终端.在这些界面之间使用, 来转换.


xterm


(在X 终端) 运行一个简单的 X-windows 终端. 键入 exit 将关闭它.对于Xwindows 有其它更高级的”虚拟”终端.


5.9 网络应用程序


mozilla &


(在X终端下) 运行mozilla网页浏览器


konqueror &


(在X终端下) 集成了文件管理器和网页浏览器的功能。很不错,和Mozilla的很多功能可以一比高低。KDE自带的软件。


pine


一个很不错,老古董的文本邮件阅读工具。还有另外一个老古董是elm。你的Mozilla将会阅读你因


特网上的邮件,pine则让你阅读”本地”的邮件。


mutt


一个非常基本但是及其有用的快速邮件阅读工具。


mail


给email使用的一个基本的操作系统工具。如果你只是要阅读邮件,可以参考上面的快速email阅读


命令。如果你要在shell脚本上发送邮件,mail倒是一个很好的选择。


kmail &


(在x终端下)很好的图形用户界面的邮件程序。我使用kmail,因为它比Netscape的mail做得要出


色的多。我可以拥有多个电子邮件帐号,然后分别从本地的smtp服务器和ISP的pop3服务器上下载邮件到同一个收件箱。简单易用,支持数字签名。


licq &


(在x终端下)一个ICQ的客户端程序。还有另外一个不错的选择是kxicq。就的Linux发行版本不带


licq客户端程序,你可能需要自己下载安装。


knode &


(在x终端下)启动我喜欢的新闻组阅读器(usenet)。比Netscape内置的阅读器要好。


talk username1


和另外一个登录在系统里的用户交谈(也可以使用”talk username1@machine_name”来和另外一台计算机上的用户交谈)。要接受会谈请求,输入命令”talk username2″。如果你正在忙着而有人想要和你交谈,你可以使用命令”mesg n”拒绝接受信息。你可以使用命令who或者rwho来查看有哪些用户当前登录在系统里。talk是一个老古董的UNIX标准工具,在某些场合下仍然非常有用。


telnet server


使用telnet协议连接到另外一台计算机。可以使用计算机名或者IP地址。你会要求输入用户登录名


和密码――你必须在远端计算机上有有效的用户帐号和密码。telnet将让你连接到另外一台计算机上好像你就在使用那一台计算机的键盘(几乎完全一样)。telnet不是非常安全――你输入的任何东西在网络上都是开放的文本模式,包括你的密码!一个在”传输路径”上稍微有点专业知识的系统管理员就可以阅读你所输入的内容。如果你要加密的传输,使用ssh(需要一些系统设置)。


rlogin server


(=remote login,远程登录)。这将使用你在当前登录系统上使用的用户名和密码,如果登录失败将会提醒你输入密码。


rsh server


(=remote server) 连接到远程计算机的另外一个办法。这将使用你在当前登录系统上使用的用户名和密码,如果登录失败将会提醒你输入密码。


ssh servername -l username


(=secure shell,安全的shell)使用安全连接远处登录到另外一台计算机。ssh是安全的,因为它使用一对RSA”公共-私有”钥匙压缩所有传送的数据。如果你没有指定用户名,它假设你使用当前的用户名。


ftp server


ftp到另外一台计算机(还有一个ncftp带有一些附加的功能,另外还有基于图形用户界面的gftp)。ftp对于从一台计算机上复制文件到另外一台计算机上非常有用。可以试着用”anonymous”(匿名)用户如果你在远程计算机上没有有效帐号。建立连接之后,使用”?”查询有效的ftp命令一览。最基本的ftp命令有以下这些:


ls 查看远程计算机上的文件


ASCII, binary 设置文件传输模式为”文本模式”或者”二进制模式”,选择正确的模式非常重要


get 从远程计算机上复制一个文件到本地计算机


mget 从远程计算机上复制多个文件到本地计算机


put 从本地计算机上复制一个文件到远端计算机


mput 从本地计算机上复制多个文件到远端计算机


bye 结束连接


minicom


minicom是一个专门给串行口设计的”终端模拟器”。看起来和用起来都很象”procomm”或者”telix”。对于串行口通信的故障诊断非常有用。


rx


使用Zmodem,Ymodem和Xmodem协议接收文件。Xmodem需要文件名。输入rx -help得到更多的信息。现在还有谁在使用这些协议?


5.10 文件压缩和解压缩


tar -zxvf filename.tar.gz


(=tape archiver,磁带压缩) 解压一个你从因特网上下载的tarball文件 (*.tar.gz or *.tgz)。


tar -xvf filename.tar拆解一个tarred(但是没有压缩)的文件。


tar czvpf /var/backups/mybackup.tar.gz /home


cd /; tar xzvpf /var/backups/mybackup.tar.gz ‘*/myfile.rtf’


作为root用户,创建一个/home目录的备份压缩文件。第二条命令显示如何从备份恢复一个文件。


在tarball文件里将不包含”点”文件(指的是以” .”开头的文件或者目录)。要把所有文件解包,可以使用:tar cvzf filename.tgz * .[a-aA-Z]*


gunzip filename.gz


解压一个压缩文件(*.gz或者*.z)。如果你想把文件压缩成这种格式,可以使用 gzip(还有zip或


者compress命令)。注意一下gunzip有趣的发音听起来象”gun zip”(大炮压缩)。


zcat filename.gz | more


(=zip cat)显示一个压缩文件的内容。还有其他一些相关命令不需要预先解开压缩文件就可以使用:zless, zmore, zgrep?等等。


bunzip2 filename.bz2


(=big unzip)解压一个由bzip2压缩工具压缩的文件(*.bz2)。一般用于很大的文件。


unzip filename.zip


解压一个由DOS下的PKZIP压缩工具压缩的文件(*.zip)


zip filename.zip filename1 filename2


把两个文件”filename1″和”filename2″压缩到一个压缩文件叫做 “filename.zip”。


unarj e filename.arj


解压一个使用arj压缩的文件(*.arj)


lha e filename.lha


解压一个使用lha压缩的文件(*.lha)


ark &


(在X终端下)。一个图形用户界面的压缩工具。也许是你管理压缩文件所需要的方便工具。还有另外一个选择是gnozip


5.11 进程控制


ps


(=”print status”or “process status”)列表显示当前正在运行的进程的进程标识号


(PID)。用ps aux 查看你的系统上下在运行的所有进程(也包括其他用户的进程和没有终端控制


的进程),每个进程都显示其所有者的名字。使用”top”命令持续显示当前正在运行的进程列


表。


any_command &


在后台运行任务命令(符号”&”表示”在后台运行前面的命令”)。任务号(Job_number)(译


者注:和进程号)将显示在屏幕上,你可以使用任务号将该任务调到前台(见下面)。当我从一个


X 终端启动一个GUI 程序时,我经常使用”&”。


jobs


列表显示后台运行或是被停止了的进程并显示它们的任务号。


fg job_number


将一个后台运行的或是被停止了的进程调到前台运行


bg job_number


将一个进程调至后台运行,这与在命令行用”&”启动后台进程是完全一样的。这将重新启动一个


被停止了的后台进程。一般可以用z 来停止当前的前台进程。如果你有被停止的或后台运行


的任务,你必须在命行输入exit 命令两次,以从系统中注销。


batch


at>updatedbd


在系统负荷低的时候执行任何命令(经常昌需要长时间完成的任务)。你可以从系统中注销,但进


程将继续运行。当命令完成后,一封包含输出信息的电子邮件将发送给你。在以上示例中,


“at>”是一个提示符,将要执行的命令是updatedb,然后按来结束命令的输入(你可


以输入很多命令提交执行,用来分隔它们)。


at 17:00


在指定时间执行命令。你将被提示输入要执行的命令,直到你按d。相关的命令有atq(显


示由at 启动的进程队列)和(从”at 队列”中删除一个进程)


kill PID


强制一个进程终止。首先要用ps 确定终止的进程的进程标识号(PID)。


killall program_name


通过程序名终止一个(组)程序。例如:killall pppd 将断开你的拨号网络。


Nohup program_name


(=no hangup)。运行程序program_name,并使它在你注销时不被中断。输出结果被重定向到你的用户的主目录下的nohup.out 文件。在你确信不想运行一个交互程序的时候,使用nohup。


Xkill


(在X 终端中)用鼠标终止一个基于GUI 的程序。(用你的鼠标指到你要终止的进程的窗口并点击)


kpm


(在X 终端中)KDE 进程管理程序


lpc


(由root 用户执行)检查和控制打印机。输入”?”可以查看命令列表。


lpq


显示打印机队列的内容。在你可从”K”菜单-实用程序(“K”menu-Utilities)中调用基于GUI 的”打印机队列”(“Printer Queue”)


lprm job_number


从打印队列中删除一个打印任务。


nice program_name


执行一个程序并调整及优先级。因为在本例中没有指定优先级,将从缺省优先级(通常是0)增加10(进程将运行较慢)。较小的值,代表较高的优先级。优先级的取值范围为-20 到19。只有root 用户能指定负值。用top 可显示正在运行的进程的优先级。


renice -18 PID


(以root 用户运行)将一个正在运行的进行的优先级调整为-18。普通用户只能调整他们自己的进程,而且只能从当前值向上调(即使其运行变慢)。可以使用renice +10 -u peter 来减少用户peter 对CPU 资源的占用,这样当他运行高强度运算任务时,使其他用户不受到损害。c,z,s 和q 也属于本章内容,但它们在前面已经描述过了。简单地说,它们表示停止当前命令,调度当前命令到后台运行,停止数据传输,恢复数据传输。


lsof


列表显示已经打开的文件。如果你是root 用户,所有的打开的文件都将被显示。使用lsof/dev/tty1 你可以指定显示由第一控制台所有的进程打开的所有文件。要想只显示网络文件(对安全审计非常有用),你可以使用lsof -I(以root 用户执行)。


Watch -n 60 my_command


以60 秒为间隔反复执行my_command 命令(缺省间隔为2 秒)


5.12 一些管理命令


su


(=substitute user id)采用超级用户(=root)的身份(将提示你输入口令)。输入”exit”返回你先前的注册。不要习惯于用身份在你的机器上工作。root 帐户是用于管理的,当你需要访问管理帐户时,su 命令可以使你轻松进入。你也可以使用su 命令去采用其他任何用户的身份


cat /var/log/httpd/access_log


显示自从上次日志文件被”转动”(一般每天在cron 程序运行时转动一次)后,谁连接过你的http(apache)服务器。前一次的日志文件为access_log.1,再前一次的日志文件access_log.2,依此类推。


cat /var/log/secure


(以root 用户运行)检查重要系统日志。如果你使用Internet 访问的话,定时检查的一个很好的


主意。


ftpwho


(以root 用户运行)检查当前谁连接在你的ftp 服务器。


printtool


(在X 终端上以root 用户运行)打印机配置工具。设置文件存放在/etc/printcap 和/var/spool/lpd 目录下。


setup


(以root 用户运行)配置鼠标、声卡、键盘、和系统服务。许多发行套装都有自己特定的配置实


用程序,setup 是Redhat 的缺省配置程序。


linuxconf


(以root 用户运行,在文本模式或是在X 终端上)。在这里你可以访问和更改上百种网络设置。功能非常强大――一次不要改动太多东西,改动你所不清楚的项目时一定要小心。Redhat 网络配置工具netconf 是linuxconf 的一个子集,因此它比较简单而且很多时候容易使用。


mouseconf


(以root 用户运行)。一个配置鼠标的简单工具(在完成初始安装后)。Mandrake 也有一个类似


的工具mousedrake。


kudzu


(以root 用户运行)。自动检测和配置硬件。


timeconfig


(以root 用户运行)为你的系统设置时区。


setclock


(以root 用户运行)。从当前linux 系统时间设置计算机硬件时钟


dateconfig&


(在X 终端上,以root 用户运行,否则将提示你输入root 用户口令)。一个非常棒的GUI 实用工具,用于设置操作系统时间、硬件时钟和时区信息,告之BIOS 使用UTC 时间,而不需要前面的两个命令。


Xvidtune


(在X 终端上)调整所有分辩率下的显示器设置,以消除黑带,上下左右调整显示,等等。


Kvideogen


(在X 终端上)为定义你的屏幕分辩率产生”模式行”。


SuperProbe


(以root 用户运行)一个检测显示卡类型和内存数量的实用工具。


lspci


显示主板信息和PCI 扩展槽内都插了哪些卡。我的旧的计算机有ISA(或EISA)插槽,没有PCI。


lsdev


显示硬件信息(DMA,IRQ,IO 端口)


lsof|more


显示系统上打开的文件。


kernelcfg


(在X 终端上以root 用户运行)增加、删除核心模块的GUI 工具


lsmod


(=list modules)显示当前加载的核心模块。


modprobe sb


装载soundblaster(sb)模块。使用前面的命令来查找已经加载的核心模块。


rmmod module_name


(以root 用户运行,但不是必须)从系统核删除module_name 模块。


depmod -a


(以root 用户运行)为核心建立模块依赖关系表。除非你想/etc/modules 而不想重新启动系统,


否则不必要。


Tunelp


(以root 用户运行,很少用到)调整并行端口。


ldconfig


(以root 用户运行)为动态链接库的加载程序(”ld”)重新产生联接和缓存区。当你在系统上


安装一个新的动态链接库的后,你也许想要运行ldconfig。


5.13 硬盘和软盘实用工具


fdisk /dev/had


(=”fixed disk”,以root 用户运行)Linux 硬盘驱动器分区工具(DOS 有一个同名的工具)。


cfdisk /dev/had


(以root 用户运行)基于菜单的硬盘驱动器分区工具。比更容易使用(见前一个命令)。


sfdisk -l -x |more


(以root 用户运行)列出你的系统上的所有驱动器的分区表(包括扩展分区)。


badblocks /dev/fd01440 1440


(以root 用户运行)对一张高密度软盘进行坏块检查并将结果显示到屏幕上。


fdck -t ext2 /dev/hda2


(=file system check,以root 用户运行)检查和修复文件系统


mkbootdisk -device /dev/fd0 2.4.2-3


制作一张应急引导软盘。


5.14 用户帐户和文件权限管理


useradd user_name


passwd user_name


(以root 用户运行)创建一个新帐户(你必须是root 用户)。


ls -l /home/peter


useradd peter -u 503 -g 503


(以root 用户运行)创建一个用户来匹配一个已有目录(可能是以前安装中的)。


userdel user_name


删除一个帐户(你必须是root 用户)。


groupadd group_name


(以root 用户运行)在你的系统上创建一个新组。


groups


列出当前用户所属的的组。


usermod


groupmod


(以root 用户运行)两个命令行工具,用于修改用户帐户和组,而不用修改相关文件:


/etc/passwd, /etc/shadow, etc/group /etc/gshadow。一般是不必要的。


userconf


(以root 用户运行)菜单驱动的用户配置工具(口令政策、组信息更改、增加用户等)。它是


linuxconf 包的一部分,但可以单独运行。


passwd


修改当前帐户的口令。如果你是root 用户,你能为任何用户修改口令,使用命令:passwd


kuser


(以root 用户运行,在X 终端上)使用一个GUI 程序管理用户和组。好用且基本包括你平常管理


用户帐户的命令。


pwconv


grpconv


(以root 用户运行)可能你不需要这些命令。它们将旧格式的口令和组文件转换成更安全的


“shadow”文件。

Linux从入门到精通(续11)


5.15 程序安装


rpm -ivg package_name-version.platform.rpm


(以root 用户运行)安装一个软件包(选项”i”,必须是破折号(dash)后面的第一个字母),采用交互方式(选项”v”=verbose)并以数值方式显示安全进程(选项”h”)。rpm 代表”RedHat 软件包管理器”


rpm -Uvh package_name-version.platform.rpm


(以root 用户运行)升级(选项”U”,必须是破折号(dash)后面的第一个字母)一个软件包,采用交互方式(选项”v”)并以数值方式显示安全进程(选项”h”)。


rpm -ivh -force -nodep package_name-version.platform.rpm


(以root 用户运行)安装一个软件包,忽略任何可能的冲冲和包依存关系问题。


rpm -e package_name


(以root 用户运行)卸载(选项”e”=删除(erase))软件包package_name。请注意在软件包名称最后没有”-version.platform.rpm”(软件包名称与用来安装它的*.rpm 文件名一样,只是没有了破折号、版本、平台和”rpm”)。


rpm -qpi package_name-version.platform.rpm


查询(选项””,必须是破折号(dash)后面的第一个字母)还没有安装的软件包(选项”p”),显示软件包包含的信息(选项”i”)。


rpm -qpl package_name-version.platform.rpm


查询(选项””,必须是破折号(dash)后面的第一个字母)还没有安装的软件包(选项”p”),显示软件包包含的全部文件的列表(选项”l”)。


rpm -qf a_file


查找文件”a_file”所属的已安装的软件包。如果你偶然删除了一个文件,现在需要找到正确的软件包来重新安装,这个命令很有用。


rpm -qi package_name


查询已安装的软件包,显示其自身的信息。请注意,请注意在软件包名称最后没有”-


version.platform.rpm”


rpm -qai | more


查询并显示系统上安装的所有的软件包的信息。在我的简单的系统上,我安装了大约600 多个软件包,很显然,我必须花很多时间来阅读它们的信息。


5.16 访问磁盘驱动器/分区


mount


mount -t auto /dev/cdrom /mnt/cdrom


(以root 用户运行)装载CD。你可能需要创建或修改/dev/cdrom 文件,它取决于你的CDROM 在哪


儿。/mnt/cdrom 目录必须存在,而且是空,并不能是你的当前目录。


mount /mnt/floppy


(以普通用户或root 用户运行)以用户的身份装载软驱。在/etc/fstab 中必须设置。


/mnt/floppy 目录不能是你的当前目录


mount /mnt/cdrom


(以普通用户或root 用户运行)以用户的身份装载CD。在/etc/fstab 中必须设置。/mnt/cdrom目录不能是你的当前目录


umount /mnt/floppy


卸载软驱。目录/mnt/floppy 不能是你(或其他任何人)的当前工作目录。取决于你的设置,你可能不能卸载一个别人装载的驱动器。


Mount /mnt/hda1 /mnt/dos_drive1


从本机硬盘装载一个DOS(MS Windows)分区。

赞(0) 打赏
转载请注明出处:服务器评测 » Linux操作系统从入门到精通教程
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏