Chinaunix首页 | 论坛 | 博客
  • 博客访问: 738923
  • 博文数量: 235
  • 博客积分: 4309
  • 博客等级: 中校
  • 技术积分: 2325
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-17 11:25
个人简介

If you don\\\\\\\\\\\\\\\'t wanna do it, you find an EXCUSE; if you do, you\\\\\\\\\\\\\\\'ll find a WAY :-)

文章分类

全部博文(235)

文章存档

2014年(3)

2013年(2)

2012年(31)

2011年(199)

分类: LINUX

2011-01-17 21:31:23

Linux系统最佳实践工具:命令行技术: 
Linux服务器安全策略详解(第二版): 

B.1.4  软件包项目文档

Linux中的大多数软件开发工具都是来自自由软件基金会的GNU项目,这些软件包除了提供手册页和textinfo外,还提供项目文档。软件包的存放目录是/usr/share/doc目录。每个软件包都拥有与其同名的文档目录,目录命名格式:"软件包名称.版本号"。tin包版本1.22,文档就放在/usr/doc/tin-1.22目录。有些项目文档为了方便阅读,还提供了多种格式的文件。HTML格式用浏览器阅读,PS格式用PostScipt Viwer查看或打印输出,TXT格式用文本编辑器查看或在命令行下阅读。软件包的项目文档都包含特定的文件,文件命名遵循以下规定:

AUTHOR:作者信息

BUGS:系统存在的Bug

CHANGES:修改纪录

COPYING:版权声明

INSTALL:安装方法

LANGUAGES:语言类型

NEWS:新版本的特点

ONLINEHELP:在线帮助

TODO:项目发展计划

 

B.1.5  HOWTO

HOWTO文件是可供用户参考的联机文档的另一种形式,HOWTO文件的文件名都有一个HOWTO后缀,并且都是文本文件。这些文件位于系统的/usr/share/doc/HOWTO目录下。每一个HOWTO文件包含Linux某一方面的信息,例如它支持的硬件或如何建立一个引导盘。要想查看这些文件,进入HOWTO所在的目录,使用more命令:

#cd /usr/share/doc/HOWTO; more HOWTO

B.1.6  系统手册页

RHEL 5.0作为出色的发行版本提供了一套优秀文档--Red Hat Linux 9手册。如果购买了Red Hat Linux 9的安装光盘,该手册会包含在单独的文档光盘中。如果使用Red Hat Linux 9的下载版本,可以从RedHat的官方网站下载该手册。下载网址: RHEL-5-manual/zh-CN/。RHEL 5.0手册页如表B-3。

表B-3  RHEL 5.0手册页

手册内容

文件名称

   

   

    

发行注记

RELEASE-NOTES-x86-zh_CN

发行注记

中文

html

红帽企业版Linux 5部署指南

Deployment_Guide

部署指南

中文

pdfhtml

红帽企业版Linux 5安装指南

Installation_Guide

安装指南

中文

pdfhtml

红帽企业版Linux 5虚拟化指南

Virtualization

虚拟化

英文

pdfhtml

红帽企业版Linux 5国际化指南

Internationalization_Guide

安全指南

英文

pdfhtml

群集器管理

Cluster_Administration

群集器管理

英文

html

全球网络块设备

Global_Network_Block_Device

全球网络块设备

英文

html

群集器逻辑卷管理

Cluster_Logical_Volume_Manager

群集器逻辑卷管理

英文

html

虚拟服务器管理

Virtual_Server_Administration

虚拟服务器管理

英文

html

B.1.7  LDP文档

从第一个Linux HOWTO-"安装HOWTO"开始,Matt Welsh首创了面向解决方案、要点提纲形式的文档。如今,这已经成为了像Linux一样的工程项目,越来越多的人加入其中,相应的工具出现了,文档也大量涌现,并被翻译成各国语言和发布。TLDP是最大的Internet工程之一,它拥有数百成员撰写的数百个文档,包括小到简明的手册页和大到上百页的详细指南。这些文档几乎覆盖了Linux的所有方面,并且是免费发布的,就像开放源代码软件本身一样。

LDP的主页是:(国内镜向,目前只能通过教育网访问)提供的文档类型如下。

1.HOWTOs文档

HOWTO文档采用多种格式进行发行,如TXT、HTML、PDF等流行的文档格式都有,读者可以根据需要下载相应的文档压缩包进行离线阅读。HOWTO的作者会根据需要不定期的对文档进行版本更新,通常文档的更新是跟随某个相关软件或发行版本的升级而进行的。

2.mini-HOWTOs文档

mini-HOWTOs文档的内容和风格与HOWTOs文档都非常相似,只是文档的主题和篇幅都要比HOWTOs文档小-些。由于其主题小而对于解决某个问题更有针对性,多为某个类型问题的使用技巧。通过mini-HOWTOs文档通常可以快速解决现有问题。

3.man手册页

和联机手册页相比,LDP的man手册页会定期进行更新,读者可以在LDP的站点获得最新的命令手册页。

4.FAQ文档

FAQ文档采用一问一答的形式对常见的问题给出解决方法,往往能够在找到问题之后快速解决问题。

5.Guide文档

Guide文档是对L1nux某个方面应用的指南,主体范围较大、篇幅较长,读者可以把它其作为比较系统的教程来阅读。'

 

B.1.8  Linux发行版本的Web站点

各个Linux发行版的Web站点通常都提供了更新过的文档、安装指南、硬件兼容/不兼容声明及其他方面的支持,例如知识库搜索工具。其中一些包括:

Redhat Linux是美国的一家大型的企业Linux产品的发行商。

SUSE Linux在德国成立的,现在归Novell所有。

Asianux是亚洲的一个Linux发行商,它由Haansoft Inc.、Red Flag Software Co.Ltd.和Miracle Linux Corporation共同建立。

Turbolinux的总部在日本,不过它也在亚洲之外发行。

Yellow Dog Linux来自于Terra Soft Solutions,这是一个为基于Apple PowerPC 处理器、以及基于PowerPC和Cell处理器的嵌入式处理器准备的发行版。

Linspire是一个Linux桌面版本,可以在一些预装的系统上找到。

Patrick Volkerding开展的Slackware Linux Project从1993年开始就存在了,其目标是制作一个"最像UNIX"的Linux发行版。

Debian GNU/Linux始于1993年,它是遵守Linux和GNU精神而创建的一个开放的发行版。

Ubuntu Linux是一个基于Debian的相对新的Linux发行版。它的重点是易用性,并且还有一些相关的项目:Kubuntu(一个使用KDE桌面的版本)、Edubuntu(为学校环境而设计的)和Xubuntu(一个使用Xfce桌面环境的轻量级的版本)。

Gentoo Linux是一个可以自动进行优化并可以为任何应用程序或需要进行定制的发行版。它的包都是以源代码形式发布的,更容易适合目标环境。

Mandriva是一个以易用性为特点的发行版。这个公司是由几个开源先锋成立的,例如法国的Mandrakesoft、巴西的Conectiva、法国的Edge IT,以及美国的Lycoris。

可以在DistroWatch.com上看到有关Linux发行版的总结信息,以及大量Linux发行版的链接。表格形式的有关每个发行版的信息告诉我们每个版本中包含了哪些主要的包、这个版本是何时发行的,以及很多其他有用的信息。

 

B.1.9  命令行下使用浏览器的方法:(1)

当在硬盘驱动器中找不到答案时,还可以使用互联网寻求帮助。使用搜索引擎可以避免绕很多弯路或浪费大量的时间。在这一节中将讨论一些信息来源,用户可以使用它们有效地搜索信息。通过浏览器获取帮助信息,对于Linux用户非常重要。Linux下的命令行浏览器是Lynx和w3m。其中笔者使用的是Lynx。

1.Lynx简介

Lynx是一个字符界面下的全功能的WWW浏览器。Lynx可以运行在很多种操作系统下,如VMS, UNIX, Windows 95, Windows NT等,当然也包括Linux。由于没有漂亮的图形界面,所以Lynx占用资源极少,而且速度很快。Lynx的主页地址是:,

2.运行Lynx

可以以lynx filename和lynx PROTOCOL://HOST/PATH/FILENAME的形式运行Lynx,其中前一种用于浏览本地文件,后一种用于浏览Internet。协议(PROTOCOL),可以是http, gopher, ftp和wais。如:

HTTP (HyperText Transfer Protocol) 

Gopher 
gopher://gopher.micro.umn.edu/11/ 
FTP (File Transfer Protocol) 
ftp://ftp2.cc.ukans.edu/pub/lynx/README 
WAIS (Wide Area Information Service protocol) 
wais://cnidr.org/directory-of-servers

如果不带任何参数运行Lynx,则Lynx会先寻找一个叫WWW_HOME的环境变量,如果找到的话,就会连接WWW_HOME指定的URL。Lynx则连接它的主页:

3.Lynx的键盘命令

 

移动命令: 
下方向键:页面上的下一个链接(用高亮度显示)。 
上方向键:页面上的前一个链接(用高亮度显示)。 
回车和右方向键:跳转到链接指向的地址。 
左方向键:回到上一个页面。 
滚动命令: 
+,Page-Down,Space,Ctrl+f:向下翻页。 
-,Page-Up,b,Ctrl+b:向上翻页。 
Ctrl+a:移动到当前页的最前面。 
Ctrl+e:移动到当前页的最后面。 
Ctrl+n:向下翻两行。 
Ctrl+p:往回翻两行。 
):向下翻半页。 
(:往回翻半页。 
#:回到当前页的Toolbar或Banner。 
文件操作命令: 
c:建立一个新文件。 
d:下载选中的文件。 
E:编辑选中的文件。 
f:为当前文件显示一个选项菜单。 
m:修改选中文件的名字或位置。 
r:删除选中的文件。 
t:Tag highlighted file。 
u:上载一个文件到当前目录。 
其他命令: 
?,h:帮助。 
a:把当前链接加入到一个书签文件里。 
c:向页面的拥有者发送意见或建议。 
d:下载当前链接。 
e:编辑当前文件。 
g:跳转到一个用户指定的URL或文件。 
G:编辑当前页的URL,并跳转到这个URL。 
i:显示文档索引。 
j:执行预先定义的"短"命令。 
k:显示键盘命令列表。 
l:列出当前页上所有链接的地址。 
m:回到首页。 
o:设置选项。 
p:把当前页输出到文件,E-mail,打印机或其他地方。 
q:退出。 
/:在当前页内查找字符串。 
s:在外部搜索输入的字符串。 
n:搜索下一个。 
v:查看一个书签文件。 
V:跳转到访问过的地址。 
x:不使用缓存。 
z:停止当前传输。 
:跳转到历史页(同 V 命令)。 
=:显示当前页的信息。 
:查看当前页的源代码。 
!:回到shell提示符下。 
_:清除当前任务的所有授权信息。 
*:图形链接模式的切换开关。 
@:8位传输模式或CJK模式的切换开关。 
[:pseudo_inlines模式的切换开关。 
]:为当前页或当前链接发送一个"HEAD"请求。 
Ctrl+r:重新装如当前页并且刷新屏幕。 
Ctrl+w:刷新屏幕。 
Ctrl+u:删除输入的行。 
Ctrl+g:取消输入或者传送。 
Ctrl+t:跟踪模式的切换开关。 
;:看Lynx对当前任务的跟踪记录。 
Ctrl+k:调用Cookie Jar页。 
数字键:到后面的第n个链接。

 

 

B.1.9  命令行下使用浏览器的方法:(2)

4.Lynx浏览中文网页的方法

首先:按o键盘进入设定画面

Display character set : [chinese] 如图B-4所示。

Assumed document character set(!): [euc-cn]
 
(点击查看大图)图B-4  设置lynx内码

然后使用"Accept Changes"选项保存。

下面下载安装运行zhcon软件包。

#wegt 
#rpm -ivh zhcon-0.2.3-1.i386.rpm
#zhcon

 

最后就可以使用lynx浏览中文网页了。
应用实例如下。

 

浏览本地网页:

#lynx bookark.html

界面如图B-5所示。

 

 
(点击查看大图)图B-5  浏览中文网页

B.1.10  开放源代码项目站点

有些项目是由诸如Apache软件基金会之类的组织赞助的,例如:开放源代码项目。

很多开放源码项目都有自己的主页,在这里可以找到有关该项目的信息。例如:

Apache软件基金会()关注于Apache Web服务器和很多工具。

OpenOffice.org()是一个多平台、多语言的办公套件。

GNOME基金会()是GNOME桌面之家。

KDE项目()是KDE(K Desktop Environment)之家。

另外很多开放源代码项目都在SourceForge.net()上安家落户了。它们被按照种类进行了划分,例如集群、数据库、桌面、财务、多媒体、安全等。项目页面包括下载、bug报告、用户论坛,以及到项目主页(如果存在)的链接,在这里可以找到更多有关项目的信息。

 

B.1.11  Linux新闻组资源

1.新闻组基础

新闻组服务是Internet上与WWW(HTTP)、E-Mail(SMTP、POP3)与FTP(FTP)齐名的四大网络信息服务系统之一,其对应的英文名称是Newsgroups,该服务使用的网络协议是NNTP(Network News Transfer Protocol),逻辑端口号为119。新闻组服务的作用是向网络用户提供分类的专题讨论组,供人们在网络上就自己关心的问题进行交流、讨论,相关讨论专题包括人类社会中的政治、经济、军事、科技、艺术、教育、生活、休闲等各类话题。

简单地说,新闻组是一个可以离线浏览的论坛,在线时可以把新闻组里面的帖子先接收到自己的电脑中,断线后仍旧可以阅读。新闻组出现于1980年美国北卡罗来纳州。它是一个基于网络的计算机的组合,这些计算机就是新闻服务器,新闻组用户通过新闻组客户端软件就可以连接到新闻服务器上,下载阅读其他人发上去的帖子并可以进行回复和讨论。它和我们现在使用的论坛差不多,不过它是不需要进行注册的,是任何一个网络用户都能进行相互交流的平台。

新闻组服务器与客户端程序是采用NNTP网络新闻传送协议(Network News Transfer Protocol),使用的端口号是119。新闻组服客户端程序是按分类组织各个新闻分组的,接收由用户直接发送到服务器上的帖子,发送的帖子可以带有背景图案或音频,还可以附加各类文档、程序,以及图形、图像和多媒体内容等。新闻组还可以周期性地与相邻的其他新闻组服务器交换内容,采用这种接力传送的方法就可以获得各个新闻组服务器上的内容,再将所获得的内容定期保存于相应的新闻分组中,过期的帖子则由系统自动删除掉。在国外,该技术被广泛用于提供免费资源,中国通过该技术提供收费资源则相对较少。NNTP需要设置一台或多台中心新闻服务器,用来保留所有的新闻文章,服务器端可以设置不同的新闻组对新闻信息加以分类,用户端根据所订阅的新闻组与服务器端进行数据同步,接收到的稿件根据新闻组的分类规则对所属信息进行层次化展示,便于信息查找。多数ISP限制只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。

新闻组的实时性没有BBS论坛好,但是客户端不必登录到服务器,安全性相对要好;新闻组和电子邮件相比:E-mail保存在客户端,只有收件人能够查看和保存,而新闻组存储在服务器端,可以随时查阅。新闻组和文档相比,新闻组的优越性在于时效性和便于沟通,文档的优越性在于条理性和归档保存。在RFC中和新闻组相关的信息标准如下:NNTP: Network to Network Transfer Protocol (RFC 977),Standard for Interchange of USENET Messages (RFC 1036)。

2.Linux新闻组资源

要参与新闻组,需要使用一个新闻阅读器,这也称为NNTP客户机。Linux上有很多这种客户机,包括evolution、gnus、pan、slrn、thunderbird和tin。有些使用的是文本模式的界面,有些则使用图形界面。新闻组的主要优点是可以在希望参与的时候才参与讨论,而不会在收件箱中不断收到信息。Usenet是最大的一个新闻组。这个新闻组分为几类,例如计算领域是comp类、科学主题是sci类、娱乐主题(例如业余爱好和游戏)是rec类。计算领域还可以进一步划分成各个主题,这些主题也可以进一步进行分类,因此Linux用户感兴趣的新闻组是以comp.os.linux开头的。可以浏览LDP站点上的列表。你的Internet服务供应商可能会镜像一些新闻组,不过新闻文章可能不会保留很长时间,尤其对活跃的新闻组来说更是如此。有几个新闻组供应商提供了收费服务,可以提供保存时间更长、访问速度更快、选择范围更广泛的新闻组。

comp.os.linux.announce现由Lars Wirzenius所管理.要在此讨论区上陈述意见,写信到.你也可以将comp.os.linux.announce的问题直接向Lars Wirzenius陈述,地址是。

comp.os.linux.announce是一个受管制的新闻组,用来发布关于Linux的消息(新程序,错误修正等)。

comp.os.linux.answers是一个受管制的新闻组,用来发表Linux FAQ, HOWTO文件及其他的文件。

comp.os.linux.setup是一个未管制的新闻组,用来讨论建立Linux系统所遭遇的问题。

comp.os.linux.admin是一个未管制的新闻组,用来讨论Linux系统的管理。

comp.os.linux.development.system是一个未管制的新闻组,专门用来讨论Linux的核心发展。唯一可以在那里讨论的应用程序发展问题是与核心密切相关的。所有其他的发展问题多半是一般的UNIX发展问题而应被放到comp.unix group,除非它们是与Linux有关的应用程序问题,这种情形下问题应放到comp.os.linux.development.apps。

comp.os.linux.development.apps是一个未管制的新闻组,专门用来讨论Linux相关的应用程序发展。它不是用来讨论如何取得Linux的应用程序的,也不是用来给那些想看看Linux应用程序的人的讨论场所。

comp.os.linux.hardware是给Linux相关的硬件问题用的。

comp.os.linux.networking是给Linux相关的网络发展及建立的问题。

comp.os.linux.x是给与Linux有关的X Windows的问题。

comp.os.linux.misc是一个未管制的新闻组,用来给不属于任何其他方面的Linux讨论。

一般来说,不要在Linux新闻组上重复发表(crosspost)文章。唯一适合重复发表的是偶尔发布在一未管制的群组及comp.os.linux.announce的文章。将comp.os.linux分割为许多群组的主要原因是为了降低每一群组的文章流量。

 

B.1.12  邮件列表

邮件列表为Linux开发人员提供了最重要的协作机制。通常项目都是由彼此居住得很远的人员开发的,他们可能居住在地球相反的两端。邮件列表克服了时区差异的问题,并为项目的每个开发人员提供了一种相互进行联系的方法,可以通过E-mail进行分组讨论。最出名的一个开发邮件列表是Linux内核邮件列表()。邮件列表让成员可以向一个列表中发送消息,而列表服务器会将消息广播给该组的所有成员。各个成员不需要知道该组中每个成员的邮件地址,他们也不需要维护当前成员的列表。为了防止繁忙列表出现消息泛滥的情况,大部分邮件列表都允许用户订阅每日摘要或包含当天发表文章的列表的单个消息。除了开发之外,邮件列表还提供了一种询问问题和从经验丰富的开发人员或其他用户那里获取答案的方法。例如,各个发行版通常都为新手提供了邮件列表。可以检查发行版的Web站点来了解它提供的邮件列表的信息。就归档来说,归档文件通常会在多个站点上进行镜像,因此可以使用距离较近的镜像,通常都使用本国或本洲的镜像站点。

 

B.1.13  从Linux社区获取帮助

如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。随着Linux应用的扩展,出现了不少Linux社区。Linux是全世界上百万个爱好者经过十多年的辛勤劳动,在网上共同开发和维护的。Linux就是在社区诞生、在社区成长、发展、壮大起来的。而且还应承认Linux社区做出了最主要的贡献、并起着主导作用。其中有一些非常优秀的社区:水木清华、中国UNIX技术社区,但是这几个社区往往是Linux高手的舞台,你需要知道,在探讨高级技巧的社区张贴非常初级的问题经常会没有结果。这里推荐几个适于初学者的Linux社区:Linux伊甸园,炎黄角马,中国Linux公社 nuke/index.php。

Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人,Linux高手更具有鼓励新手的文化精神。要想在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率发问,否则只会得到到草率的回答或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。最好先搜寻一下社区论坛是否有你需要的文章。这样可以获得事半功倍的效果。

下面是笔者在社区论坛看到的一个好问题:"安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?"这个问题很简练,笔者五分钟后就给出了解决方法:"首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑/usr/local/unispim/ unispimsp.ini,最后重启计算机,生成新的unispimsp.ksc"另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的,这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。

下面看看一个让人无法回答的问题:"救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢",这样的问题我想即使Linux高手也很难快速、准确、精练的回答你。

你需要提供精确有效的信息。这并不是要求你简单地把成吨的出错代码或数据完全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。另外把这个问题放在其他Linux社区请求帮助也是一种选择。如果得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。

另外发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织,也不承担回复每个帖子的义务。它不是技术支持。

 

B.1.14  PuTTY远程登录Linux命令行的界面汉化

对于经常在Windows下远程ssh到linux的用户而言,putty可能是你最好的选择。

可是默认情况下,putty对中文的支持却让人不敢恭维。putty中文版的下载地址是:. gro.clinux.org/putty/下面给出一个使用putty登录远程Linux系统的操作步骤。

步骤1:双击Windows桌面上的putty图标,启动putty。

步骤2:会话设置

在"主机"一栏中添入远程主机的主机名或IP地址。

在"协议"一栏中选择SSH连接会话的类型。

步骤3:登录

保存会话之后就可以用双击会话名的方法登录远程主机了,如双击会话名。如果是第一次连接远程系统,putty会提示在本地主机上没有远程系统的公共密钥,询问用户是否要继续,续接单击"是"继续。建立与远程主机的连接之后,输入用户名和口令登录系统。

如果远程Linux的locale设置为zh_CN.*(bg2312,gbk,utf8等),显示就是乱码,如图B-6所示。

 
(点击查看大图)图B-6  putty乱码

步骤4:中文配置

打开putty主程序,选择窗口→外观→字体设置→修改,选择楷体字体,字符集选择CHINESE_ GB2312。如图B-7所示。

 
(点击查看大图)图B-7  选择字符集
选择窗口→转换→假定接收数据的字符集选择UTF-8。如图B-8所示。
 
(点击查看大图)图B-8  选择假定接受数据的字符集UTF-8
修改后PuTTY可以正常显示中文了。如图B-9所示。
 
(点击查看大图)图B-9  修改后PuTTY可以正常显示中文

 

B.1.15  Linux系统管理学习路线图

随着Linux应用的扩展,许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。作为一个Linux系统管理员,我看了许多有关Linux的文档和书籍,并为学习Linux付出了许多艰苦的努力。当真正获得了一份正式的Linux系统管理工作后,我更加深刻地理解了Linux的灵魂:服务于多用户。Linux系统知识是非常广博的,但是只要掌握了重点知识,管理它并没有想象中的那么可怕。在下面我会将作为系统管理员的一些工作心得和总结出来的经验系统地介绍给大家。

1.学习的目的

通过Linux的学习掌握UNIX的目的想必不用多说了,在这个网络人才身价倍增的年代,想靠技术吃饭又不想掌握网络和编程技术是不明智的。当人们第一次听说Linux并跃跃欲试的时候,总会提出几个?,它是什么(What)?为什么要用它(Why)?怎样学习它(How)?作为开放源码运动的主要组成部分,Linux的应用越来越广泛,从我们平时的娱乐、学习,到商业、政府办公,再到大规模计算的应用。为了满足人们的需求,各种各样的、基于Linux的应用软件层出不穷。只要具备了LinuX的基本功,并具有了自学的能力之后,都可以通过长期地学习予以掌握。

2.从命令开始、从基础开始

常常有些朋友一接触Linux就希望构架网站,根本没有想到要先了解一下Linux的基础。这是相当困难的。虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的。Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习,我们可以进一步理解Linux系统。

3.选择一本好的Linux书籍

无论在论坛还是读者反馈中,我们看到最多的问题往往是某个新手,在安装或使用Linux的过程中遇到一个具体的问题就开始提问,很多都是重复性的问题,甚至有不少人连基本的问题描述都不是很清楚。这说明很多初学Linux的人还没有掌握基本功。怎样才能快速提高掌握Linux的基本功呢?最有效的方法莫过于学习权威的Linux工具书,工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多,笔者强烈建议阅读影印本的o'reilly原版Linux图书,而且出版社还提供了一个非常好的路线图:

4.养成在命令行下工作的习惯

一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,你未来的学习之路将是以指数增加的方式增长的。对网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。

5.用UNIX思维思考Linux

由于Linux是参照UNIX的思想来设计的,理解和掌握它就必须以Unix的思维来进行,而不能以Windows思维。不可否认,Windows在市场上的成功很大一部分在于技术思想的独到之处。可是这个创新是在面对个人用户的前提下进行的,而面对着企业级的服务应用,它还是有些力不从心。多年来在计算机操作系统领域一直是二者独大:UNIX在服务器领域,Windows在个人用户领域。由此可见,用户需求决定了所采用的操作系统。不管什么原因,如果要学习Linux,那么首先要将思维从Windows的"这个小河"中拖出来,放入UNIX的海洋。

6.学习Shell

对于Shell(中文名称壳),习惯Windows的读者肯定是非常陌生的,因为Windows只有一个"Shell"(如果可以说是Shell的话),那就是Windows自己。用一句话容易理解的解释就是,shell是用户输入命令与系统解释命令之间的中介。最直观的说法,一种Shell有一套自己的命令。举一个容易理解的例子,Linux的标准Shell是Bash Shell;Solaris的shell是B shell;Linux的Shell是以命令行的方式表现出来的。读者可能会不理解,Windows从命令行"进化"到了图形界面,那么Linux现在还使用命令行岂不是一种倒退?当初我刚刚接触Linux时就曾有过这种想法。可是后来发现,如果使用图形界面,那么分配给应用软件的资源就少了,在价格昂贵的服务器上,能够以较低的硬件配置实现同样的功能是非常重要的。

下面举例说明:一台服务器有1GB内存,假设其中512MB用于处理图形界面,若要安装一个需要784MB内存的数据库软件,唯一的办法就是扩大内存。但是如果使用命令行,系统可能只需要64MB内存,其他的内存就可以供数据库软件使用了。使用命令行,不仅是内存,而且CPU及硬盘等资源的占用都要节省很多。所以,作为服务器,使用命令行是优点而不是缺点。既然Shell有这么多优点,就必须要学习它。

7.勤于实践

要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一台计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界。相信对于你自己的Linux能力必然大有斩获。此外,人脑不像计算机的硬盘一样,除非硬盘坏掉了或者是资料被你抹掉了,否则存储的资料将永远而且立刻地记忆在硬盘中。在人类记忆的曲线中,你必须要不断地重复练习才会将一件事情记得比较熟。学习Linux也一样,如果你无法经常学习的话,学了后面的,前面的往往忘了。对Linux命令熟悉后,可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。当然你不需搭建所有服务,可以慢慢来。需要说明的是这个Linux网络对于初学者有两三台计算机即可。自己多动手,不要非要等着别人帮你解决问题。

8.学会使用文档

和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。其实当你安装了一个完整的Linux系统后,其中已经包含了一个强大的帮助系统,只是可能你还没有发现和使用它们的技巧。主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、UNIX的经验总结非常有参考价值,通常40%的问题可以解决。安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么了。如果说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。

当查找文档时,一定要看文档是在何种版本、何种环境及何种状态下出现的何种结果。对于文档的有效性,一时还无法在操作前就知道结论如何,那么对某个专题或问题,阅读相关的多篇文章将会节省大量的时间,还可以保证尽量"干净"的环境,有效避免因为不同操作所造成的更多问题。操作时要仔细核对各个步骤及输出的结果,尽量保持与文档一致。

9.在Linux论坛获取帮助

如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问,否则只会得到到草率的回答或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。最好先搜寻一下论坛是否有你需要的文章。这样可以获得事半功倍的效果。

你需要提供精确有效的信息。这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。另外把这个问题放在其他Linux社区请求帮助也是一种选择。如果得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。

10.学习专业英文

如果你想深入学习Linux,看不懂文档,因为实在是太难了。写得最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。

通过man、info等命令,可以从在线帮助中快速地获得所需要的命令和操作方法。不要害怕海量的系统帮助,仔细阅读几个man或info文档就会发现,这些帮助几乎都按照固定格式写成命令名称、参数、参数说明、使用例子、参考等。当英语成为一种习惯,就会自觉地查找或订阅互联网上感兴趣的英文材料。这样,在不知不觉中就已经和世界同步了。

11.在社区共享你的经验

随着Linux应用的扩展,出现了不少Linux社区。其中有一些非常优秀的社区:水木清华、其中有一些非常优秀的社区:(国内最高水平GNU站点)、(中国最大的Unix技术社区),随着知识的不断积累,就可以把自己动手解决一些前人没有遇到的问题写出文档在网络上共享给其他读者。这个时候,也就成为了一名"高手"。Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人,Linux高手更具有鼓励新手的文化精神。

最后是笔者的Linux学习的一个路线图(roadmap):

了解Linux的基础知识,这些包含了用户管理、群组的概念、权限的观念等;

掌握100个以上的常用命令;

掌握.tgz、.rpm等软件包的常用安装方法

学习添加外设,安装设备驱动程序(比如网卡)

熟悉Linux文件系统和目录结构。

掌握vi,gcc,gdb等常用编辑器,编译器,调试器。

理解shell别名、管道、I/O重定向、输入和输出及shell脚本编程。

网络的基础包括:掌握路由概念、OSI七层网络模型、TCP/IP模型及相关服务对应的层次对于Linux学习非常重要的。然后学习Linux环境下的组网。

以上是笔者学习Linux一些经验,希望对你有些帮助。

阅读(1994) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~