Linux新手全攻略.docx
《Linux新手全攻略.docx》由会员分享,可在线阅读,更多相关《Linux新手全攻略.docx(40页珍藏版)》请在冰点文库上搜索。
Linux新手全攻略
Linux下新手基本操作及技巧看图上路
发布于2005-06-07被读30554次【字体:
大中小】
作者:
赛迪网
对于一个广大刚刚接触Linux的用户来说,如何顺利的登录进入Linux系统中进行软件安装,为完成某些任务还要成为超级用户(或者root),打开一个终端或者shell窗口进行操作是提高工作效率的基础。
本文将这些基本操作和技巧汇总起来,希望能对您迅速上手Linux有所帮助。
登录
这些说明和示例侧重于使用GNOME桌面的RedHatEnterpriseLinuxVersion3(RHEL3)和使用KDE桌面的SUSELinuxEnterpriseServerVersion9(SLES9)。
其他桌面和窗口管理器也是可用的,比如fvwm2、windowmaker和twm。
安装完系统并引导起来后,应该会看到类似图1(RHEL3系统)或图2(SLES9系统)的登录屏幕。
图1.RHEL3登录屏幕
图2.SLES9登录屏幕
如您所见,屏幕的外观因Linux发行版本的不同而不同,您可能一定会进行进一步的定制,但我们不在此短文中讨论这个话题。
THEL3屏幕有一个用来输入登录名的字段,并且在底部有一些热点(hotspot),让您可以修改语言和会话的默认类型(比如Gnome或KDE),也可以关闭或者重新启动系统。
当输入一个id并按下Enter后,将提示您输入密码。
SLES9的屏幕同时有id和密码字段,以及用于选择id的选择框。
点击Menu下拉菜单,您可以访问类似于RHEL3屏幕底部的功能。
该屏幕及其特性都可以定制。
默认情况下,RHEL3以数字格式显示日期和时间,而SLES9使用模拟格式显示。
另一个不同之处是,在RHEL3系统中,登录屏幕上的任何人都可以重新引导或者关闭系统,而在SLES9中执行这些功能要求输入root密码。
应该在登录字段输入您的登录名(如果指示您输入root,那么就输入root),然后按回车键。
您会看到一条口令提示,或许您还需要将光标移动到口令输入字段,这取决于您所拥有的登录提示类型。
输入您的口令并再次按回车键,这样应该完成了登录并看到您的桌面。
图3展示了以用户ian的身份登录到RHEL3系统上时可能会看到的内容。
图3.RedHatEnterpriseLinux3的GNOME桌面的示例初始窗口
请在图标上移动您的鼠标来浏览桌面。
在图3中,鼠标位于左下角的红帽图标上,悬浮帮助显示出mainmenu。
注意那一行应用程序按钮的右侧的小图标,在其中有四个更小的矩形。
您拥有四个独立的桌面,要在它们之间进行切换,可以点击相应的小方块,或者使用组合键Ctrl-Alt-leftarrow或Ctrl-Alt-rightarrow来对它们进行循环遍历,这与在某个桌面上使用Alt-tab在应用程序窗口之间进行循环遍历的方式相同。
在浏览时,记住要避免启动应用程序,除非您是以非root用户的身份登录的。
图4展示了您在SLES9的KDE桌面上能够看到哪些内容。
图4.SUSEEnterpriseServer9的KDE桌面的示例初始窗口
在前面的GNOME桌面中,您可以将鼠标移动到图标上来查看它们能做什么。
在图4中,我们已经将面板拖曳到屏幕的右侧(点击面板的一个空白区域并将其拖曳到屏幕任何一侧都可以)。
我们还将鼠标悬浮到Start按钮上。
如您所见,每次登录时SUSELinux都会为您给出一个提示。
当打开终端窗口时也将看到这样的提示。
切换到惯用左手的鼠标用法
我们通常假定用户是一位惯用右手的用户,但您可以更改鼠标配置以便于左手使用。
如果您正在使用GNOME桌面,那么通过桌面上的starthere就可以访问鼠标属性,如图5所示。
点击starthere图标,可以看到一些能够定制的其他设置的图标。
为了对照,我们也向您展示了如何从主菜单访问相同的鼠标属性,即先选择preferences,然后选择mouse。
图5.通过GNOMEStarthere窗口访问鼠标设置
您应该会看到类似于图6所示的窗口,在这里您可以改变鼠标的设置。
注意,当您选中或者不选中Left-handedmouse选择框时,图像中的鼠标会切换其所在方位。
图6.改变鼠标设置的GNOME窗口
如果您正在使用SUSESLES9系统中的KDE桌面,那么您可以通过控制面板(可以通过start菜单访问到)来改变鼠标设置。
不过,在撰写本文时,改变为左手习惯用法的选项是灰色的,所以不可以使用(见图7)。
图7.KDE鼠标设置窗口
不过,这没有任何关系。
您可以在终端窗口(见打开终端或shell窗口)中运行一些命令来改变鼠标的行为。
运行xmodmap-pp命令,您将看到类似于清单1的输出。
清单1.xmodmap-pp的输出
Thereare7pointerbuttonsdefined.
Physical Button
Button Code
1 1
2 2
3 3
4 6
5 7
6 4
7 5
要交换第一鼠标键和第三鼠标键的功能,需要使用xmodmap-e和您所想得到的映射来指定一个新的映射。
要保存这个新映射以使得每次用户登录时它都可以生效,需要将指示信息详述保存到用户主目录的.Xmodmap文件中。
在清单2中给出了这两个命令。
清单2.使用xmodmap改变鼠标设置
xmodmap-e"pointer=3216745"
echo"pointer=3216745">~/.Xmodmap
注意,使用~来表示对当前用户主目录的引用。
打开终端或shell窗口
您经常会需要打开终端或shell窗口。
这个窗口类似于Windows?
下的DOS命令提示符。
在KDE桌面上,有一个位于屏幕底部的KDE面板,类似于图8。
单击如图所示的shell图标。
图8.KDEshell图标
在GNOME桌面上,您可以在桌面的空白区域使用鼠标右键来激活一个类似于图9所示的上下文菜单,在这里选择新的终端。
也可以通过Start>Systemtools>Terminal来打开一个新的终端窗口。
图9.通过Gnome桌面弹出菜单打开终端窗口
shell窗口的外观将取决于您的发行版本和选择的桌面。
要调整其大小,可以使用鼠标左键拖动窗口的角或边。
要滚动回最近的历史纪录,可以使用滚动条。
以#$符号结尾的命令提示符,表明该shell的用户是root用户。
对于root以外的用户,命令提示符将以符号结尾。
可以使用向上箭头重新调用前面的命令,如有必要可以对其进行修改。
图10显示了典型的KDEKonsoleshell窗口。
您可以使用Settings菜单来更改诸如窗口颜色和字体之类的设置。
图10.KDE控制台shell窗口
图10展示了一些命令及其输出:
whoami
显示了谁正在使用这个终端窗口,在本例中是iant。
pwd
打印当前工作目录的全名,在本例中是/home/ian。
注:
命令提示符中#前面的代字号(~)表明该用户目前在他(或她)的主目录中。
cd
更改当前目录或工作目录。
在示例中,我们先切换到/(也称为根)目录,然后切换到/tmp目录,/tmp目录通常用来存储临时文件。
请注意,/是整个文件系统的根,而/root是root用户的主目录。
在不带任何目录名的情况下使用cd,会使用户返回到主目录,使用cd-返回到您进入当前目录之前所在的最后那个目录。
root用户以外的用户的主目录通常位于/home之下。
例如,我在某系统上的标识是ian,那么/home/ian就是我的主目录。
还记得代字号(~)么?
用户ian的主目录也可表示为~ian。
uname
不带参数时,将显示操作系统的名称:
Linux。
带-a参数时,则显示关于您系统的其他信息。
which
扫描您的PATH环境变量中的目录,如果您在shell提示符下输入命令,则显示要执行的可执行程序的完整路径。
在本例中,我们看到将从/usr/X11R6/bin/xclock运行xclock程序。
xclock
在您的桌面上启动一个带有时钟的新窗口。
请注意该命令末尾的&,它意味着命令处理器不等命令执行完就会将控制权交还给终端窗口。
还请注意这是该终端窗口所唤醒的第一个此类进程,其进程标识(PID)为4900。
ps
使用-T选项时,则显示该终端启动的所有进程。
在某些系统中,ps命令的默认显示中包括进程的状态。
如果本示例中显示了状态,则您将看到bashshell程序正在等待输入(状态S表示睡眠),xclock进程也是如此。
ps命令正在运行(状态R表示可运行)。
您可能会觉得有用的其他一些命令包括:
infocmd_name
显示关于名为cmd_name的命令的信息。
输入infoinfo以了解关于info文档系统的信息。
mancmd_name
是到关于名为cmd_name的命令的联机手册页的接口。
Linux中的一些信息是用info格式表示的,而一些信息只能以联机手册页的格式获得。
输入manman以了解关于联机手册页的更多信息。
成为超级用户(或者root)
为了完成本文中的很多任务,都需要使用特殊登录名root。
root用户有时也称为超级用户(superuser),是通常用来管理系统配置或者软件安装的用户。
只有在进行管理工作时才使用root;避免使用root进行日常的工作。
root用户可以做任何事情,包括不经意地破坏您的系统,这通常不是好事。
普通用户有更少的特权,系统得到了保护,不会受到普通用户的无心破坏。
您总是可以通过注销当前用户标识,然后以新的用户标识登录来切换到另一个用户标识。
但是如果您只需要以另一个用户身份运行几个快捷的命令,那要怎么办呢?
Linux以su(替代用户,substituteuser)命令的形式向您提供了解决方案,该命令允许您暂时以另一个用户身份运行命令。
这经常用于需要root访问权的任务。
实际上,如果您使用终端程序(如telnet)远程连接一个系统,那么许多Linux发行版本会阻止您以root用户身份登录。
这是良好的安全性做法,我们建议您不要尝试绕开这种限制。
相反,您应该以非特权用户身份登录,然后使用su命令成为root。
那么,让我们假定您已经登录并正在使用终端窗口,而且您不是root用户,但需要以root用户身份运行一条命令。
用于这种情形的两种最常见的su形式是:
su
su-
第一种形式(不带-符号)只是将您切换成root,但没有更改包括路径在内的环境变量。
第二种形式使用了-符号,如果您确实喜欢输入额外的字母,也可以输入为-l或者-login。
这允许读取替代用户的登录启动文件,从而设置诸如路径、环境和提示符之类的东西。
清单4显示了这两种形式在SuSELinux系统上的示例。
在两个示例中,我们都使用了pwd(打印工作目录,printworkingdirectory)命令来显示当前工作目录。
请注意提示符是如何变化的。
如果您希望理解关于如何定制您自己的提示符,或想了解是什么使提示符以现在的形式显示的更多信息,请查阅developerWorks上的“技巧:
提示行魔术”技巧文章。
清单3.切换到root用户
ian3@echidna:
~>su
Password:
echidna:
/home/ian3#pwd
/home/ian3
ian3@echidna:
~>su-
Password:
echidna:
~#pwd
/root
您会注意到必须提供口令以切换到root用户,这一点都不足为奇。
您还可以使用su命令切换到其他非root用户。
例如:
su-db2inst1
如果您已经是root用户,则无需提供口令,但如果您不是root用户,那么必须提供正确的口令。
如果您正在使用bashshell(它是大多数Linux系统上的默认shell),要返回前一个标识,只要按Ctrl-d或输入exit并按Enter。
以另一个用户身份使用GUI应用程序
您可能注意到了,我们在前一节中讨论su命令时,只运行了在终端窗口中显示输出的命令。
要能够运行GUI应用程序,您可能必须采取一些额外的步骤,具体步骤因Linux发行版本而异。
Linux上的GUI应用程序使用XWindow系统(XWindowSystem),它旨在允许多个用户使用窗口化的应用程序通过网络访问计算机。
X显示器是通过hostname:
displaynumber.screennumber这种形式的名称知晓的。
运行在工作站(如PC)上的Linux通常只有一个带有单个屏幕的显示器。
在这种情况下,displayname可以(并且通常会)被省略,所以显示器称为:
0.0。
我们假设您在阅读本文时是使用图形方式登录的,因此您的启动已经为您设置了DISPLAY环境变量。
但是,当您使用su切换到不同用户时,不会设置这个变量。
清单4展示了如何使用echo命令来显示DISPLAY环境变量,然后切换到另一个用户并尝试启动xclock应用程序,最初DISPLAY环境变量是空的,然后将其值设置为:
0.0。
这是SUSESLES9系统中的示例。
在RedHat系统上有所不同,后面我们将会提到。
清单4.尝试启动xclock
ian@lyrebird:
~>whoami
ian
ian@lyrebird:
~>$DISPLAYecho
:
0.0
ian@lyrebird:
~>su-
Password:
$DISPLAYlyrebird:
~#echo
lyrebird:
~#xclock
Error:
Can'topendisplay:
lyrebird:
~#exportDISPLAY=:
0.0
$DISPLAYlyrebird:
~#echo
:
0.0
lyrebird:
~#xclock
Xlib:
connectionto":
0.0"refusedbyserver
Xlib:
Noprotocolspecified
Error:
Can'topendisplay:
:
0.0
lyrebird:
~#exportXAUTHORITY=~ian/.Xauthority
lyrebird:
~#xclock
lyrebird:
~#ls-l~ian/.Xauthority
-rw------- 1ianusers206Feb1816:
20/home/ian/.Xauthority
让我们研究一下这里发生的情况。
在本例中,用户ian登录到系统,并且正如我们所期望的那样,其DISPLAY环境变量被设置为:
0.0。
当ian切换成用户root时,不会去设置DISPLAY环境变量,并且因为xclock应用程序不能打开显示器,所以启动xclock的尝试失败了。
因此,替代用户root设置了DISPLAY环境变量,并将它导出,以便它可用于可能从该终端窗口启动的其他$作为前缀。
也要注意,如果su命令省略了$前缀符号,但显示和用其他方法使用该值时则使用shell。
请注意,设置和导出环境变量时不使用-(减号)符号,那么DISPLAY环境就已经如用户ian那样被设置。
可是,即使设置了环境变量,但xclock启动还是失败了。
第二次失败的原因在于X的客户机/服务器本质。
尽管root运行在该系统惟一一个显示器上的窗口中,但该显示器实际上由最初登录的用户(在本例中是ian)所拥有。
对于Linux系统中的本地显示器,认证通常是依赖于所谓的MIT-MAGIC-COOKIE-1,每次X服务器重新启动时它都会重新生成。
用户可以从他的(或她的)目录中的.Xauthority将magiccookie导出(使用xauthextract命令),并把它提供给另一个用户,那个用户可以使用xauthmerge将其融合到自己的.Xauthority文件。
作为另一种选择,用户可以通过xhost+local:
命令来授权其他用户对本地系统的访问。
有另一个可选方法,即将XAUTHORITY环境变量设置为包含正确MIT-MAGIC-COOKIE-1的文件的位置。
当切换到root时,这样做很容易,因为root可以读取其他用户所拥有的文件。
实际上,在清单4中我们就是这样做的,所以,在设置并将XAUTHORITY导出到~ian/.Xauthority文件后,root现在就可以在桌面上打开图形窗口。
我们说过将会提及RedHat系统的不同之处,那就是在RedHat系统上使用su切换到root与SUSE系统稍有不同,它会为您自动完成显示器的设置。
那么,如果是切换到另一个非root用户时会怎样呢?
在清单4中,您会注意到,用户ian的.Xauthority文件只允许所有者进行读写访问。
甚至是同组的成员也不能读取它,这正是您所希望的,除非您乐意让某人打开一个接管您的屏幕并禁止您做任务事情的应用程序!
所以,如果您从.Xauthority文件中导出了一个MIT-MAGIC-COOKIE-1,那么必须要找到某个安全的方式来将它交给您信任的非root用户。
由于这方面的困难,您可能会发现,对单用户的Linux系统来说,xhost更好用,尽管xauth方法通常比xhost命令用得更多。
不过,要谨记XWindows系统的网络传统,以便您不会偶然地授予他人不在计划之内的权限,从而开放您的系统,让任意网络用户都可以在您的桌面上打开窗口。
用户ian可以使用xhost来赋与所有本地用户在显示器(:
0.0)上打开应用程序的权限。
在您的桌面上打开另一个终端窗口并输入这条命令:
xhost+local:
请注意末尾的冒号(:
)。
这样将允许同一系统上的其他用户连接到X服务器并打开窗口。
由于您使用的是一个单用户系统,这就意味着您可以su到一个任意的非root用户,而且现在可以启动xclock或其他X应用程序了。
有关使用xauth和xhost命令的更多详细信息,可以根据需要使用命令infoxauth、manxauth、infoxhost或者manxhost来查看联机手册页。
如果您对X连接的安全性感兴趣,可以从Xsecure的手册页入手。
挂载DVD或者CD-ROM
在Linux和UNIX?
系统上,所有文件都作为一棵大型树的一部分来访问,该树的根是/。
要访问CD-ROM上的文件,必须将CD-ROM设备挂载在文件树的某个挂载点上。
如果您的发行版本安装了automount软件包,那么可能会自动为您完成这个步骤。
如果是这样,您只需要插入光盘,它就会被自动识别并完成挂载。
无论如何,您的安装过程都有可能为您做一些工作,使DVD或CD-ROM设备易于挂装。
这些步骤中的示例适用于RedHatEnterpriseLinux3(RHEL3)系统。
您会注意到,根据您的光学设备(CD或DVD、IDE、SCSI或USB,等等)的类型和位置,会有一些区别。
RedHat和SUSE实现之间也有一些区别,所以您应该把这些信息作为帮助您找到自己系统的正确设置的向导。
具体来说,在RHEL3上大部分可移动设置挂载在/mnt树中,而在SLES9上它们则挂载在/media树中。
Linux系统的很多设置都存储在/etc目录中。
在这些设置中有一个文件,其中包含有一张文件系统描述信息表。
cat是拷贝和改写文件的命令。
如果没有给定输出文件,则直接输出到标准输出,这个标准输出通常是您的终端窗口。
在终端窗口中使用cat/etc/fstab命令,以显示etc/fstab并查看安装过程认为您的CD或者DVD应该挂载到哪里。
您会看到类似于清单5的几行。
清单5中输出的最后两行表明,这个系统有两个CD或者DVD设备(/dev/cdrom1和/dev/cdrom),它们将被挂载在/mnt/cdrom1或/mnt/cdrom,除非mount命令指定了其他位置。
清单5./etc/fstab的内容
[root@lyrebirdroot]#cat/etc/fstab
LABEL=RHEL3 / ext3 defaults 11
none /dev/pts devpts gid=5,mode=620 00
LABEL=GRUBFILE /grubfile ext3 defaults 12
none /proc proc defaults 00
none /dev/shm tmpfs defaults 00
/dev/hda7 swap swap defaults 00
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu00
/dev/cdrom1 /mnt/cdrom1 udf,iso9660noauto,owner,kudzu,ro00
/dev/cdrom /mnt/cdrom udf,iso966