LINUX基础Word格式.docx
《LINUX基础Word格式.docx》由会员分享,可在线阅读,更多相关《LINUX基础Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
基于用户身份来控制安全性。
都可以以组成员的方式来控制资源的访问权限,这样在用户数目较大时可以不必为每一个帐号设置权限。
用户和组可以集中管理,让多个服务器共享相同的用户和身份验证数据。
文件系统
Linux和Windows都支持多种文件系统。
文件资源可以通过NetBIOS、FTP或者其他协议与其他客户机共享。
可以很灵活地对各个独立的文件系统进行组织,由管理员来决定它们在何处可以以何种方式被访问。
端口和设备
两种操作系统都支持各种物理设备端口,比如并口、串口和USB接口。
支持各种控制器,比如IDE和SCSI控制器。
Linux还支持很多“刚刚上市”的标准硬件。
网络
Linux和Windows都支持多种网络协议,比如TCP/IP、NetBIOS和IPX。
都支持多种类型的网络适配器。
都具备通过网络共享资源的能力,比如共享文件和打印。
都可以提供网络服务能力,比如DHCP和DNS。
服务
Linux和Windows都提供服务。
所谓服务,指的是那些在后台运行的应用程序,可以为系统和远程调用该服务的计算机提供一些功能。
在系统引导的时候可以单独控制并自动启动这些程序。
(注意:
Linux中沿用了Unix的习惯,称这种应用程序为daemon,)
虽然有一些类似之处,但Windows和Linux的工作方式还是存在一些根本的区别。
这些区别只有在您对两者都很熟悉以后才能体会到,但它们却是Linux思想的核心。
Linux的应用目标是网络而不是打印
Windows最初出现的时候,这个世界还是一个纸张的世界。
Windows的伟大成就之一在于您的工作成果可以方便地看到并打印出来。
这样一个开端影响了Windows的后期发展。
同样,Linux也受到了其起源的影响。
Linux的设计定位于网络操作系统。
它的设计灵感来自于Unix操作系统,因此它的命令的设计比较简单,或者说是比较简洁。
由于纯文本可以非常好地跨网络工作,所以Linux配置文件和数据都以文本为基础。
对那些熟悉图形环境的人来说,Linux服务器初看可能比较原始。
但是Linux开发更多关注的是它的内在功能而不是表面上的东西。
即使是在纯文本的环境中,Linux同样拥有非常先进的网络、脚本和安全能力。
执行一些任务所需的某些表面上看起来比较奇怪的步骤是令人费解的,除非您认识到Linux是期望在网络上与其他Linux系统协同执行这些任务。
Linux的自动执行能力也很强,只需要设计批处理文件就可以让系统自动完成非常详细的任务。
Linux的这种能力来自于其基于文本的本质。
可选的GUI
Linux有图形组件。
Linux支持高端的图形适配器和显示器,完全胜任图形相关的工作。
现在,许多数字效果艺术家在Linux工作站上来进行他们的设计工作,而以前这些工作需要使用IRIX系统来完成。
但是,图形环境并没有集成到Linux中,而是运行于系统之上的单独一层。
这意味着您可以只运行GUI,或者在需要时才运行GUI。
如果您的系统主要任务是提供Web应用,那么您可以停掉图形界面,而将其所用的内存和CPU资源用于您的服务。
如果您需要在GUI环境下做一些工作,可以再打开它,工作完成后再将其关闭。
Linux有图形化的管理工具,以及日常办公的工具,比如电子邮件、网络浏览器和文档处理工具等。
不过,在Linux中,图形化的管理工具通常是控制台(命令行)工具的扩展。
也就是说,用图形化工具能完成的所有工作,用控制台命令同样可以完成。
同样,使用图形化工具并不妨碍您对配置文件进行手工修改。
其实际意义可能并不是特别显而易见,但是,如果在图形化管理工具中所做的任何工作都可以以命令行的方式完成,这就表示那些工作也可以由一个脚本来实现。
脚本化的命令可以成为自动执行的任务。
Linux同时支持这两种方式,并不要求您只用文本或者只用GUI。
您可以根据您的需要选择最好的方法。
Linux中的配置文件是人类可读的文本文件,这与过去的Windows中的INI文件类似,但与Windows的注册表机制在思路上有本质的区别。
每一个应用程序都有其自己的配置文件,而且通常不与其他的配置文件放在一起。
不过,大部分的配置文件都存放于一个目录树(/etc)下的单个地方,所以看起来它们在逻辑上是在一起。
文本文件的配置方式使得不通过特殊的系统工具就可以完成配置文件的备份、检查和编辑工作。
文件名扩展
Linux不使用文件名扩展来识别文件的类型。
相反,Linux根据文件的头内容来识别其类型。
为了提高人类可读性您仍可以使用文件名扩展,但这对Linux系统来说没有任何作用。
不过,有一些应用程序,比如Web服务器,可能使用命名约定来识别文件类型,但这只是特定的应用程序的要求而不是Linux系统本身的要求。
Linux通过文件访问权限来判断文件是否为可执行文件。
任何一个文件都可以赋予可执行权限,这样程序和脚本的创建者或管理员可以将它们识别为可执行文件。
这样做有利于安全。
保存到系统上的可执行的文件不能自动执行,这样就可以防止许多脚本病毒。
什么是内核?
Linux实际上只是内核;
它实现了多任务和多用户功能,管理硬件,分配内存,激活应用程序的运行。
对初学者来说,最重要的是要明白奇数的内核版本(比如2.3、2.5、2.7)是实验用的、正在开发的内核。
稳定的、正式发行的内核版本号是偶数的(比如2.4、2.6、2.8)。
重新引导是最后的手段
如果您使用Windows已经很长时间了,您可能已经习惯出于各种原因(从软件安装到纠正服务故障)而重新引导系统。
在Linux思想中您的这一习惯需要改变。
Linux在本质上更遵循“牛顿运动定律”。
一旦开始运行,它将保持运行状态,直到受到外来因素的影响,比如硬件的故障。
实际上,Linux系统的设计使得应用程序不会导致内核的崩溃,因此不必经常重新引导(与Windows系统的设计相对而言)。
所以除了Linux内核之外,其他软件的安装、启动、停止和重新配置都不用重新引导系统。
如果您确实重新引导了Linux系统,问题很可能得不到解决,而且还会使问题更加恶化。
学习并掌握Linux服务和运行级别是成功解决问题的关键。
学习Linux最困难的就是克服重新引导系统的习惯。
另外,您可以远程地完成Linux中的很多工作。
只要有一些基本的网络服务在运行,您就可以进入到那个系统。
而且,如果系统中一个特定的服务出现了问题,您可以在进行故障诊断的同时让其他服务继续运行。
当您在一个系统上同时运行多个服务的时候,这种管理方式非常重要。
命令区分大小写
所有的Linux命令和选项都区分大小写。
例如,-R与-r不同,会去做不同的事情。
控制台命令几乎都是小写的。
我们将在“第2部分.控制台速成班”中对命令进行更详细的介绍。
如果您的系统引导进入文本模式(为了降低服务开销,服务器通常是这样配置的),那么您在以文本形式登录后就已经在控制台中了。
在典型的Linux系统中,通过组合键Ctrl+Alt+(F1-F6)您可以切换到另外的控制台。
每一个控制台是系统中一个完全独立的会话,不同的用户可以同时使用。
这一多控制台的特点与Windows中的多桌面不同。
在Linux中,每一个控制台可以分别由完全不同的用户来控制。
例如,您可能在控制台1中以root身份登录,而在控制台2中以joeuser身份登录。
两个控制台在各自的用户空间中运行不同的程序。
与此类似,不同的用户可以远程登录到同一个Windows系统中。
就这一点来说,Linux更像是主机而不是简单的服务器或工作站。
如果您是在图形模式下,那么您可以打开一个终端(terminal)以进入控制台窗口。
通常在桌面的任务条上会有终端的按钮。
您也可以从上下文菜单(在桌面上单击右键)打开终端。
在控制台中可以使用的命令很多。
其中有一些实际上只在编写脚本时才会用到。
这里介绍一些您最可能用到的命令。
不要忘记,所有的命令和选项都区分大小写。
-R与-r不同,会去执行不同的操作。
控制台命令几乎全都是小写的。
cd
使用我们所熟悉的cd命令可以在目录间切换。
一定注意的是在Linux中用的是正斜杠(/),而不是您所熟悉的反斜杠(\)。
反斜杠也用到了,但只是用来说明命令需要换行继续,这样可以提高比较长的命令的可读性。
ls
ls命令用于列出一个目录下的所有文件。
可以使用许多不同的开关更改列表的表示形式:
列出文件
ls-l
以长格式列出文件,包括文件大小、日期和时间、属性
ls-t
对文件以时间排序
ls-S
对文件以大小排序
ls-r
与一个排序开关组合起来使用,逆序排列。
ls-t将最新的文件显示在列表的顶部。
ls-t将最新的文件显示在底部。
ls-h
易读格式。
使用k、M、G等来标识文件的大小,而不是以字节为单位。
ls-a
显示目录中所有的文件,包括隐藏文件
cp
使用cp命令来复制文件。
这个命令与DOS下的copy命令基本一样。
基本的开关如下:
复制文件
cp-R
递归地复制文件;
当需要复制整个目录时会用到
cp-f
强制复制并覆盖已有的文件,不询问用户
cp-l
链接文件,而不是复制;
见下面的说明
使用复制命令创建链接
用cp命令可以创建指向一个文件或者整个文件结构的硬链接。
使用-l开关来指明操作是链接复制。
所有的目录仍作为目录创建,但所有的文件会被设置为硬链接。
cp-lR/data/accounting/payroll/data/management/hr
上面的命令将把整个目录结构及其下面的文件从/data/accounting/payroll复制到/data/management/hr/payroll。
目录结构下的所有文件将被设置为硬链接。
这样使一个文件在同一个文件系统中可以具备不同的视图。
这也是有用的安全技术,使得在不同的目录下对同一文件有不同的访问权限。
mv
使用mv命令来移动和重命名文件。
这个命令的工作方式基本上与DOS中的move命令一样,不过它可以移动整个目录结构及所有文件。
cat
使用cat命令来查看文件的内容。
它相当于DOS中的type命令。
它将把文件的内容转储到另一个文件、屏幕或者其他命令。
cat是concatenate的简写,还可以将一系列的文件合并为一个大文件。
more
使用命令more可以以分页的方式查看文件。
它基本上与DOS中的more命令相同。
less
less命令也是用来查看文件,但是它支持上下滚屏以及在文档中进行文本搜索。
vi
有一些人可能会说vi表示“virtuallyimpossible”。
它是Unix中的一个历史悠久的文本编辑器。
vi并不真正直观,但是现在几乎所有的类Unix环境中都有vi。
对于Linux中安装的版本有一个内置的教程,一旦您熟悉了vi,只需几次击键就可以完成不可思议的任务。
说实话,没有任何编辑器能够取代vi来编辑密码和配置文件。
man
使用man命令来查看命令的文档。
man是manual的缩写。
几乎每一个命令都有相应的文档。
要深入了解man,请输入以下命令:
manman
info
info命令与man命令类似,不过它提供了超链接文本,可以更方便地浏览文档。
DOS/Windows与Linux的最重要的区别之一是Linux的命令shell是与操作系统相分离的一层。
不同的shell环境影响您具备不同的功能,比如可编辑的命令行和历史命令回查等。
shell还决定了脚本中函数的语法。
在DOS/Windows中,编写脚本程序只有一种情况,那就是使用效率低下的.BAT文件。
它的确可以完成很多功能,但除了完成那些基本的任务,复杂些的任务就需要脚本编写者具有极强的创造性。
在Linux中,脚本中可以有循环,不仅可以执行基本的条件语句,很多在编程语言中才有的功能它都具备。
如果您擅长编写.BAT文件,那么shell脚本更会使您大展才华。
默认的shell是每个用户帐号的一个参数。
Linux中典型的默认shell是/bin/bash,不过也可以用其他的shell。
每个shell的man文档实际上都非常好,都对各种shell及其使用进行了详细的说明。
仅仅阅读下面的解释是不够的,应该从下面列出的shell中选择一个,去查看它的man文档。
bash
bashshell是Bourneshell的一个免费版本,它是最早的Unixshell,包括许多附加的特点。
Bash有可编辑的命令行,可以回查历史命令,支持tab键补齐以使用户避免输入长的文件名。
csh
Cshell使用的是“类C”语法,借鉴了Bourneshell的许多特点,只是内部shell命令集有所不同。
ksh
Kornshell的语法与Bourneshell相同,同时具备了Cshell的易用特点。
许多安装脚本都使用ksh,即使您不把它作为您的主shell,您也应该在系统中安装它。
tcsh
TCshell是Cshell的一个增强版本,与Cshell完全兼容。
zsh
Zshell是Kornshell的一个增强版本,具备bashshell的许多特色。
Shell规则
您只需在控制台中执行相应的命令就可以随时切换shell。
只要在文件顶部放置一个井号(#!
)指向需要的shell,脚本就可以指定想要运行的shell。
当脚本运行的时候,不管用户所处的shell环境是什么,它都会在正确的shell环境中运行。
下面例子中的这行代码指出脚本需要在Cshell下运行:
#!
/bin/csh
给我做链接,这样就更安全!
Linux文件系统最重要的特点之一是它的文件链接。
链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。
不过,在Linux中,链接可以如同原始文件一样来对待。
链接可以与普通的文件一样被执行、编辑和访问。
对系统中的其他应用程序而言,链接就是它所对应的原始文件。
当您通过链接对文件进行编辑时,您编辑的实际上是原始文件。
链接不是副本。
有两种类型的链接:
硬链接和符号链接。
硬链接只能引用同一文件系统中的文件。
它引用的是文件在文件系统中的物理索引(也称为inode)。
当您移动或删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。
硬链接的文件不需要用户有访问原始文件的权限,也不会显示原始文件的位置,这样有助于文件的安全。
如果您删除的文件有相应的硬链接,那么这个文件依然会保留,直到所有对它的引用都被删除。
符号链接是一个指针,指向文件在文件系统中的位置。
符号链接可以跨文件系统,甚至可以指向远程文件系统中的文件。
符号链接只是指明了原始文件的位置,用户需要对原始文件的位置有访问权限才可以使用链接。
如果原始文件被删除,所有指向它的符号链接也就都被破坏了。
它们会指向文件系统中并不存在的一个位置。
两种链接都可以通过命令ln<
source>
<
target>
来创建。
ln默认创建的是硬链接。
使用-s开关可以创建符号链接。
#CreateahardlinkfromMyFileinthecurrent
#directoryto/YourDir/MyFile
lnMyFile/YourDir
#Createasymbolic(soft)linkfromMyFilein
#thecurrentdirectoryto/YourDir/YourFile
ln-sMyFile/YourDir/Yourfile
在上面的例子中,MyFile、/YourDir/MyFile和/YourDir/Yourfile会被看成是同一个文件。
走出您的shell
对Linux管理来说,必须学习在控制台环境下工作。
虽然有一些工具可以让您避免使用控制台,但是您会受到那些工具的很多限制。
进入控制台很简单,使用man和info命令访问命令文档也很方便。
Linux中的用户管理与Windows中的用户管理很相似,但又很不相同。
两个系统都是多用户系统,基于用户身份来控制他们对资源的访问。
两个操作系统都允许将用户分组管理以简化访问控制,以避免为众多用户分别设置权限。
不过,相同之处也仅此而已。
超级用户
在Linux中,超级用户称为root。
root用户可以控制所有的程序,访问所有文件,使用系统上的所有功能。
对root用户来说没有不可以做的事情。
就管理的角度而言,root的权限是至高无上的。
所以,root帐号一定要通过安全的密码保护起来,这一点非常重要。
您不应该使用root身份来处理日常的事务。
其他用户也可以被赋予root特权,但一定要谨慎行事。
通常您可以配置一些特定的程序由某些用户以root身份去运行,而不必赋予他们root权限。
创建新用户
可以通过命令行或者Webmin等工具来创建新用户。
添加用户的命令是useradd。
例如,从控制台中创建一个新用户:
useradd-c"
normaluser"
-d/home/userid-gusers\
-Gwebadm,helpdesk-s\/bin/bashuserid
这个命令创建了一个名为“userid”(命令的最后一个参数)的新用户。
“normaluser”是对这个用户的注释。
userid的主目录将是“/home/userid”。
userid的主组将是users,但他也被加入到“webadm”和“helpdesk”这两个组。
userid将使用“/bin/bash”shell作为他的常规控制台环境。
使用Webmin创建新用户简单而且直观。
使用您喜欢的浏览器登录到Webmin,切换到System窗体。
选择“UsersandGroups”工具,然后点击Createanewuser。
图1.Webmin的CreateUser屏幕
填写好用户的详细信息,然后点击Create。
用户创建完成。
删除用户
可以从控制台使用userdel命令来删除用户。
userdel-ruserid
使用可选的-r开关可以将用户的主目录及所有相关信息全部删除。
如果想要保留用户主目录,那么不要使用-r开关。
这个开关不会自动删除系统中所有属于这个用户的文件,只是删除他的主目录。
修改用户密码
可以从控制台使用passwd命令来修改用户的密码:
passwduserid
只有root用户可以用passwd修改其他用户的密码。
输入完命令后,系统将提示您输入并确认您要设置的密码。
如果两次输入一致,用户的标识就会更新,密码修改成功。
从控制台输入passwd,用户可以修改自己的密码;
在这种情况下,系统会向用户询问原来的密码,验证通过后才可以输入新密码。
大多数的Linux发行版本安装时都会启用passwordcracker模块,用于修改密码。
这个模块将检查密码是否遵循了良好的密码设置习惯。
如果用户使用了不安全的密码,它将自动警告用户。
您可以将系统配置为要求用户必须使用安全的密码。
root在设置不安全的密码时也会被警告,但是仍然可以设置成功。
在Webmin中,可以使用System窗体中的“ChangePasswords”模块来修改密码。
在列表中选择一个用户,然后在空白处输入新密码。
用户
Linux的配置是基于文本的。
Linux中的所有用户都存放于/etc/passwd文件中。
您可以使用more命令来分页查看这个文件:
more/etc/passwd
/etc目录
不要忘记,Linux的大多数配置文件都是在/etc目录下。
这个文件的结构非常直观。
每一行是一个新用户,参数用冒号隔开。
userid:
x:
75000:
:
/home/userid:
/bin/bash
第一列是用户名。
第二列是用户的密码。
第三列是用户的数字ID。
第四列是用户的主组的ID。
第五列是用户的全名,或者是注释。
第六列是用户主目录的位置,这个目录通常位于/home目录下,目录名与用户ID相同。
第七列是用户的默认控制台shell。
Password文件结构
LoginID
Password
UserID
GroupID
Comment
Homedirectory
Defaultshell
userid
x
75000
/home/userid
注意上面的例子中Password列是一个“x”。
这并不是说用户的密码是“x”。
以前密码曾经是以平文本的形式存储在这个文件中。
现在也还有这样的配置,但由于密码容易泄露,已经很少有人再这样做了。
解决的方法是创建shadowpassword。
在/etc/passwd文件中存放密码的位置只是存放一个“x”,而经过加密的密码存放于/etc/shadow文件中。
这项技术通过将用户信息与密码数据分离而提高了安全性。
MD5密码加密算法支持更为可靠的密码,从而进一步提高了安全性。
一个映像密码条目的样例如下所示:
映像密码和用户权限
Linux用户管理的