第5章、 首次登入与在线求助 man page

5.1. 首次登入系统
5.1.1. 首次登入CentOS 5.x图形接口
不正常的关机可能会导致文件系统错乱,造成数据的毁损

5.1.2. GNOME的操作与注销
- 每个人都会有自己的『工作目录』,这个目录是用户可以完全掌控的, 所以就称为『用户个人家目录』了。一般来说,家目录都在/home底下。
- GNOME的档案总管其实称为『鹦鹉螺(Nautilus)』。
- 列表式的将所有数据都列出来:查看/显示隐藏文件&以视图查看列表。
- 其实档名开头为小数点『.』的, 那个档案就是隐藏档了。
- 中文输入法:应用程序/附件/文字编辑/按[ctrl]+[space]
- 注销GNOME :系统/注销

5.1.3. KDE的操作与注销
在KDE档案总管称为『Konqueror, 征服家』。你可以按下『K选单』然后选择『主文件夹』。
画面的左边有点类似目录的列表,右边则是档案详细的信息。 而征服家可以让你仅选择使用者可以随意应用的根文件夹 (2号箭头处) 或者是整个系统的档案信息 (1号箭头处)。 征服家默认显示的是根文件夹。3号箭头处指出该目录内有哪些信息,4号箭头则是详细的档案参数。
第5章、 首次登入与在线求助 man page_第1张图片
我们是可以手动来直接修改X Window的配置文件的,不过,修改完成之后的设定项目并不会立刻被加载, 必须要重新启动X才行。那么如何重新启动X呢? 最简单的方法就是:
- 直接注销,然后再重新登入即可
- 在X的画面中直接按下[Alt] + [Ctrl] + [Backspace]

5.1.4. X Window与文本模式的切换
切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]的组合按钮。
系统会将[F1] ~ [F6]命名为tty1 ~ tty6的操作接口环境。
回到X窗口接口方法: 按下[Ctrl] + [Alt] + [F7]
如果是以纯文本环境启动Linux的,预设的tty7是没有东西的!怎么启动X窗口画面呢?startx
要让startx生效至少需要底下这几件事情的配合:
1.你的tty7并没有其他的窗口软件正在运作(tty7必须是空出来的);
2.你必须要已经安装了X Window system,并且X server是能够顺利启动的;
3.你最好要有窗口管理员,例如GNOME/KDE或者是阳春的TWM等;
4.启动X所必须要的服务,例如字型服务器(X Font Server, xfs)必须要先启动。

5.1.5. 在终端界面登入linux
在输入密码的时候,屏幕上面『不会显示任何的字样!』, 所以不要以为你的键盘坏掉!
那个 ~ 符号代表的是『用户的家目录』的意思,他是个『变量!』 这相关的意义我们会在后续的章节依序介绍到。举例来说,root的家目录在/root, 所以 ~ 就代表/root的意思。而vbird的家目录在/home/vbird, 所以如果你以vbird登入时,他看到的 ~ 就会等于/home/vbird。
至于提示字符方面,在Linux当中,默认root的提示字符为 # ,而一般身份用户的提示字符为 $ 。
那么如何离开系统呢?exit

5.2. 文本模式下指令的下达
其实我们都是透过『程序』在跟系统作沟通的,本章上面提到的窗口管理员或文本模式都是一组或一只程序在负责我们所想要完成的指令。 文本模式登入后所取得的程序被称为壳(Shell),这是因为这支程序负责最外面跟使用者(我们)沟通,所以才被称为壳程序! 更多与操作系统及壳程序的相关性可以参考第0章、计算器概论内的说明。

5.2.1. 开始下达指令, 语系的支援
其实整个指令下达的方式很简单,你只要记得几个重要的概念就可以了。 举例来说,你可以这样下达指令的:
第5章、 首次登入与在线求助 man page_第2张图片
第5章、 首次登入与在线求助 man page_第3张图片
语系的支援:
Linux是可以支持多国语系的,若可能的话, 屏幕的讯息是会以该支持语系来输出的。但是,我们的终端机接口(terminal)在默认的情况下, 无法支持以中文编码输出数据的。这个时候,我们就得将支持语系改为英文,才能够以英文显示出正确的讯息。 那怎么做呢?你可以这样做:
第5章、 首次登入与在线求助 man page_第4张图片
这里写图片描述
注意一下,那个『LANG=en_US』是连续输入的,等号两边并没有空格符! 这样一来,就能够在『这次的登入』察看英文语系!为什么说是『这次的登入』呢? 因为,如果你注销Linux后,刚刚下达的指令就没有用了!

5.2.2. 基础指令的操作, date, cal, bc
1. 显示日期的指令: date +%Y%m%d
2. 显示日历的指令: cal (calendar)
3. 简单好用的计算器: bc ;
如果要输出小数点下位数,那么就必须要执行 scale=number ,那个number就是小数点位数。
务必要输入『quit』来离开bc的软件环境。

5.2.3. 重要的几个热键[Tab], [ctrl]-c, [ctrl]-d
- [Tab]键:
具有『命令补全』与『档案补齐』的功能,可以避免我们打错指令或文件名。
[Tab] 接在一串指令的第一个字的后面,则为命令补全;
[Tab] 接在一串指令的第二个字以后时,则为『档案补齐』。
- [Ctrl]-c 键:
如果你想让当前的程序『停掉』的话,可以输入:[Ctrl]与c按键(先按着[Ctrl]不放,且再按下c按键,是组合按键), 那就是中断目前程序的按键。
- [Ctrl]-d键:
『键盘输入结束(End Of File, EOF 或 End Of Input)』的意思! 另外,他也可以用来取代exit的输入。

5.2.4. 错误讯息的查看
这里写图片描述
上面那个bash:表示的是我们的Shell的名称, 本小节一开始就谈到过Linux的默认壳程序就是bash。

5.3. page与info page
在文本模式下,你可以直接按下两个[Tab]按键,看看总共有多少指令可以让你用?
这里写图片描述

5.3.1. man page
man page
manual(操作说明)的简写
第5章、 首次登入与在线求助 man page_第5张图片
第5章、 首次登入与在线求助 man page_第6张图片
第5章、 首次登入与在线求助 man page_第7张图片
第5章、 首次登入与在线求助 man page_第8张图片
进入man指令的功能后,你可以按下『空格键』往下翻页,可以按下『 q 』按键来离开man的环境。
在查询数据的后面的数字是有意义的:
第5章、 首次登入与在线求助 man page_第9张图片
man page大致分成底下这几个部分:
第5章、 首次登入与在线求助 man page_第10张图片
查阅步骤:
1.先察看NAME的项目,约略看一下这个资料的意思;
2.再详看一下DESCRIPTION,这个部分会提到很多相关的资料与使用时机,从这个地方可以学到很多小细节呢;
3.而如果这个指令其实很熟悉了(例如上面的date),那么就是查询关于OPTIONS的部分了! 可以知道每个选项的意义,这样就可以下达比较细部的指令内容!
4.最后再看一下跟这个资料有关的还有哪些东西可以使用的,举例来说,上面的SEE ALSO就告知我们还可以利用『info coreutils date』来进一步查阅数据;
5.某些说明内容还会列举有关的档案(FILES 部分)来提供我们参考!这些都是很有帮助的!

当你按下『/』之后,光标就会移动到屏幕的最下面一行, 并等待你输入搜寻的字符串了。此时,输入date后,man page就会开始搜寻跟date有关的字符串, 并且移动到该区域。
第5章、 首次登入与在线求助 man page_第11张图片
man page的数据 放在/usr/share/man这个目录里头,我们可以透过修改他的man page搜寻路径来改善这个目录的问题!修改/etc/man.config (有的版本为man.conf或manpath.conf)即可。

可否查出来,系统中还有哪些跟『man』这个指令有关的说明文件呢?
答:
你可以使用底下的指令来查询一下:
第5章、 首次登入与在线求助 man page_第12张图片
使用 -f 这个选项就可以取得更多与man相关的信息,而上面这个结果当中也有提示了 (数字) 的内容, 举例来说,第二行的『 man (7) 』表示有个man (7)的说明文件存在!但是即有个man (1)存在那当我们下达『 man man 』的时候,到底是找到哪一个说明档呢? 其实,你可以指定不同的文件的,举例来说,上表当中的两个 man 你可以这样将他的文件叫出来:
这里写图片描述
你可以自行将上面两个指令输入一次看看,就知道,两个指令输出的结果是不同的。 那个1, 7就是分别取出在man page里面关于1与7相关数据的文件档案! 好了,那么万一我真的忘记了下达数字,只有输入『 man man 』时,那么取出的数据到底是1还是7啊? 这个就跟搜寻的顺序有关了。搜寻的顺序是记录在/etc/man.conf这个配置文件当中, 先搜寻到的那个说明档,就会先被显示出来! 一般来说,通常会先找到数字较小的那个!因为排序的关系!所以, man man 会跟 man 1 man 结果相同!
我们还可以利用『关键词』找到更多的说明文件数据。 从上面的『man -f man』输出的结果中,我们知道其实输出的数据是:
左边部分:指令(或档案)以及该指令所代表的意义(就是那个数字);
右边部分:这个指令的简易说明,例如上述的『-macros to format man pages』
当使用『man -f 指令』时,man只会找数据中的左边那个指令(或档案)的完整名称,有一点不同都不行!
第5章、 首次登入与在线求助 man page_第13张图片
因为这个是利用关键词将说明文件里面只要含有man那个字眼的(不见得是完整字符串) 就将他取出来!
这两个指令是man的简略写法说,就是这两个:
第5章、 首次登入与在线求助 man page_第14张图片
而要注意的是,这两个特殊指令要能使用,必须要有建立 whatis 数据库才行!这个数据库的建立需要以 root 的身份下达如下的指令:
这里写图片描述

5.3.2. info page
info page则是将文件数据拆成一个一个的段落,每个段落用自己的页面来撰写, 并且在各个页面中还有类似网页的『超链接』来跳到各不同的页面中,每个独立的页面也被称为一个节点(node)。 所以,你可以将info page想成是文本模式的网页显示数据。
不过要查寻的目标数据的说明文件必须要以info的格式来写成才能够使用info的特殊功能(例如超链接)。 而这个支持info指令的文件默认是放置在/usr/share/info/这个目录当中的。
举例来说,info这个指令的说明文件有写成info格式,所以,你使用『 info info 』可以得到如下的画面:
第5章、 首次登入与在线求助 man page_第15张图片
这里写图片描述
仔细的看到上面这个显示的结果,里面的第一行显示了很多的信息喔!第一行里面的数据意义为:
- File:代表这个info page的资料是来自info.info档案所提供的;
- Node:代表目前的这个页面是属于Top节点。 意思是info.info内含有很多信息,而Top仅是info.info档案内的一个节点内容而已;
- Next:下一个节点的名称为Getting Started,你也可以按『N』到下个节点去;
- Up:回到上一层的节点总揽画面,你也可以按下『U』回到上一层;
- Prev:前一个节点。但由于Top是info.info的第一个节点,所以上面没有前一个节点的信息。

从第一行你可以知道这个节点的内容、来源与相关链接的信息。更有用的信息是,你可以透过直接按下N, P, U来去到下一个、上一个与上一层的节点(node) ! 第一行之后就是针对这个节点的说明。在上表的范例中,第二行以后的说明就是针对info.info内的Top这个节点所做的。 再来,你也会看到有『Menu』那个咚咚吧!底下共分为四小节,分别是Getting Started等等的,我们可以使用上下左右按键来将光标移动到该文字或者『 * 』上面,按下Enter, 就可以前往该小节了!另外,也可以按下[Tab]按键,就可以快速的将光标在上表的画面中的node间移动, 真的是非常的方便好用。如果将info.info内的各个节点串在一起并绘制成图表的话,情况有点像底下这样:
第5章、 首次登入与在线求助 man page_第16张图片
如同上图所示,info的说明文件将内容分成多个node,并且每个node都有定位与连结。 在各连结之间还可以具有类似『超链接』的快速按钮,可以透过[tab]键在各个超链接间移动。 也可以使用U,P,N来在各个阶层与相关链接中显示!非常的不错用, 至于在info page当中可以使用的按键,可以整理成这样:
第5章、 首次登入与在线求助 man page_第17张图片
info page是只有Linux上面才有的产物,而且易读性增强很多。不过查询的指令说明要具有info page功能的话,得用info page的格式来写成在线求助文件才行!我们CentOS 5将info page的文件放置到/usr/share/info/目录中!至于非以info page格式写成的说明文件(就是man page),虽然也能够使用info来显示,不过其结果就会跟man相同。

5.3.3. 其他有用的文件(documents)
某些软件不只告诉你『如何做』, 还会有一些相关的原理会说明。在/usr/share/doc这个目录。
总结上面的三个咚咚(man, info, /usr/share/doc/),请记住:
在文字接口下,有任何你不知道的指令或文件格式这种玩意儿,但是你想要浏览他,请赶快使用man或者是info来查询。
而如果你想要架设一些其他的服务,或想要利用一整组软件来达成某项功能时,请赶快到/usr/share/doc 底下查一查有没有该服务的说明档。

5.4. 超简单文书编辑器: nano
nano的使用其实很简单,你可以直接加上档名就能够开启一个旧档或新档!底下我们就来开启一个名为test.txt的档名来看看:
第5章、 首次登入与在线求助 man page_第18张图片
如上图所示,你可以看到第一行反白的部分,那仅是在宣告nano的版本与档名(File: text.txt)而已。 之后你会看到最底下的三行,分别是档案的状态(New File)与两行指令说明列。指令说明列反白的部分就是组合键, 接的则是该组合键的功能。那个指数符号(^)代表的是键盘的[Ctrl]键。底下先来说说比较重要的几个组合按键:
- [ctrl]-G:取得联机帮助(help),很有用的!
- [ctrl]-X:离开nano软件,若有修改过档案会提示是否需要储存;
- [ctrl]-O:储存档案,若你有权限的话就能够储存档案了;
- [ctrl]-R:从其他档案读入资料,可以将某个档案的内容贴在本档案中;
- [ctrl]-W:搜寻字符串,这个也是很有帮助的指令!
- [ctrl]-C:说明目前光标所在处的行数与列数等信息;
- [ctrl]-_:可以直接输入行号,让光标快速移动到该行;
- [alt]-Y:校正语法功能开启或关闭(单击开、再单击关);
- [alt]-M:可以支持鼠标来移动光标的功能 。
如果你想要取得更完整的说明,可以在nano的画面中按下[ctrl]-G或者是[F1]按键, 就能够显示出完整的nano内指令说明了。
如果不要储存资料只想要离开,可以按下N即可离开。如果确实是需要储存的,那么按下Y后,最后三行会出现如下画面:
第5章、 首次登入与在线求助 man page_第19张图片
如果是单纯的想要储存而已,直接按下[enter]即可储存后离开nano程序。不过上图中最底下还有两行,我们知道指数符号代表[crtl], 那个M是代表什么呢?其实就是[alt]。

5.5. 正确的关机方法: sync, shutdown, reboot, halt, poweroff,init
最大的问题是,若不正常关机,则可能造成文件系统的毁损 (因为来不及将数据回写到档案中,所以有些服务的档案会有问题!)。所以正常情况下,要关机时需要注意底下几件事:
1. 观察系统的使用状态:
如果要看目前有谁在在线,可以下达『who』这个指令,而如果要看网络的联机状态,可以下达 『 netstat -a 』这个指令,而要看背景执行的程序可以执行『 ps -aux 』这个指令。使用这些指令可以让你稍微浏览主机目前的使用状态!当然,就可以让你判断是否可以关机了 (这些指令在后面Linux常用指令中会提及)
2. 通知在线使用者关机的时刻:
要关机前总得给在线的使用者一些时间来结束他们的工作,所以,这个时候你可以使用 shutdown 的特别指令来达到此一功能。
3. 正确的关机指令使用:
例如 shutdown 与 reboot 两个指令!

与关机/重新启动相关的指令:
1. 将数据同步写入硬盘中的指令: sync
2. 惯用的关机指令: shutdown
3. 重新启动,关机: reboot, halt, poweroff
由于Linux系统的关机/重新启动是很重大的系统运作,因此只有root才能够进行例如shutdown, reboot等指令。 不过在某些distributions当中,例如我们这里谈到的CentOS系统,他允许你在本机前的tty7使用图形接口登入时, 可以用一般账号来关机或重新启动!但某些distributions则在你要关机时,他会要你输入root的密码。

5.5.1. 数据同步写入磁盘: sync
直接在文字接口下输入sync,那么在内存中尚未被更新的数据,就会被写入硬盘中!所以,这个指令在系统关机或重新启动之前, 很重要。
虽然目前的 shutdown/reboot/halt 等等指令均已经在关机前进行了 sync 这个工具的呼叫, 不过,多做几次总是比较放心点。
事实上sync也可以被一般账号使用!只不过一般账号用户所更新的硬盘数据就仅有自己的数据, 不像root可以更新整个系统中的数据了。

5.5.2. 惯用的关机指令: shutdown
由于Linux的关机是那么重要的工作,因此除了你是在主机前面以tty7图形接口来登入系统时, 不论用什么身份都能够关机之外,若你是使用远程管理工具(如透过pietty使用ssh服务来从其他计算机登入主机), 那关机就只有root有权力而已。
那么就来关机试试看吧!我们较常使用的是shutdown这个指令,而这个指令会通知系统内的各个程序 (processes),并且将通知系统中的run-level内的一些服务来关闭。shutdown可以达成如下的工作:

  1. 可以自由选择关机模式:是要关机、重新启动或进入单人操作模式均可;
  2. 可以设定关机时间: 可以设定成现在立刻关机, 也可以设定某一个特定的时间才关机。
  3. 可以自定义关机讯息:在关机之前,可以将自己设定的讯息传送给在线 user ;
  4. 可以仅发出警告讯息:有时有可能你要进行一些测试,而不想让其他的使用者干扰, 或者是明白的告诉使用者某段时间要注意一下!这个时候可以使用 shutdown 来吓一吓使用者,但却不是真的要关机!
  5. 可以选择是否要 fsck 检查文件系统 。
    简单的语法规则为:
    第5章、 首次登入与在线求助 man page_第20张图片
    此外,需要注意的是,时间参数请务必加入指令中,否则shutdown会自动跳到 run-level 1 (就是单人维护的登入情况),这样就伤脑筋了!底下提供几个时间参数的例子:
    第5章、 首次登入与在线求助 man page_第21张图片

5.5.3. 重新启动,关机: reboot, halt, poweroff
还有三个指令可以进行重新启动与关机的任务,那就是reboot, halt, poweroff。 这三个指令呼叫的函式库都差不多,所以当你使用『man reboot』时,会同时出现三个指令的用法给你看。通常都只有记shutdown与reboot这两个指令。使用poweroff这个指令即比较简单。通常在重新启动时,都会下达如下的指令:
这里写图片描述
基本上,在预设的情况下, 这几个指令都会完成一样的工作!(因为halt会先呼叫shutdown,而shutdown最后会呼叫halt !)。 不过,shutdown可以依据目前已启动的服务来逐次关闭各服务后才关机;至于halt却能够在不理会目前系统状况下, 进行硬件关机的特殊功能!你可以在你的主机上面使用root进行底下两个指令来关机,比较看看差异在哪里。
这里写图片描述
更多halt与poweroff的选项功能,请务必使用man去查询一下。

5.5.4. 切换执行等级: init
本章上头有谈到过关于run level的问题。之前谈到的是系统运作的模式,分为纯文本(run level 3)及图形接口模式(run level 5)。除了这两种模式外,其实Linux共有七种执行等级, 七种等级的意义我们在后面会再谈到。本章你只要知道底下四种执行等级就好了:
run level 0:关机
run level 3:纯文本模式
run level 5:含有图形接口模式
run level 6:重新启动
那如何切换各模式呢?可以使用init这个指令来处理。也就是说,如果你想要关机的话, 除了上述的shutdown -h now以及poweroff之外,你也可以使用如下的指令来关机:
这里写图片描述

5.6. 开机过程的问题排解
5.6.1. 文件系统错误的问题 :
在开机的过程中最容易遇到的问题就是硬盘可能有坏轨或文件系统发生错误(数据损毁)的情况, 这种情况虽然不容易发生在稳定的Linux系统下,不过由于不当的开关机行为, 还是可能会造成的,常见的发生原因可能有:
1. 最可能发生的原因是因为断电或不正常关机所导致的文件系统发生错误。
2. 硬盘使用率过高或主机所在环境不良。
例如你开放了一个FTP服务,里面有些数据很有用, 所以一堆人抢着下载,如果你又不是使用较稳定的SCSI接口硬盘,仅使用一般PC使用的硬盘, 虽然机率真的不高,但还是有可能造成硬盘坏轨的。此外,如果主机所在环境没有散热的设备, 或者是相对湿度比较高的环境,也很容易造成硬盘的损坏。其解决的方法:
一、如果根目录没有损毁:
假设你发生错误的partition是在/dev/sda7这一块,那么在开机的时候,屏幕应该会告诉你:press root password or ctrl+D : 这时候请输入root的密码登入系统,然后进行如下动作:
1. 在光标处输入root密码登入系统,进行单人单机的维护工作;
2. 输入『 fsck /dev/sda7 』(fsck 为文件系统检查的指令,/dev/sda7为错误的partition,请依你的情况下达参数), 这时屏幕会显示开始修理硬盘的讯息,如果有发现任何的错误时,屏幕会显示: clear [Y/N]? 的询问讯息,就直接输入 Y !
3. 修理完成之后,以 reboot 重新启动!
二、如果根目录损毁了 :
一般初学者喜欢将自己的硬盘只划分为一个大partition,亦即只有根目录, 那文件系统错误一定是根目录的问题!这时你可以将硬盘拔掉,接到另一台Linux系统的计算机上,并且不要挂载(mount)该硬盘,然后以root的身份执行『 fsck /dev/sdb1 』(/dev/sdb1 指的是你的硬盘装置文件名,你要依你的实际状况来设定)!
另外,也可以使用近年来很热门的Live CD,也就是利用光盘开机就能够进入Linux操作系统的特性, 你可以前往:『http://knoppix.tnc.edu.tw/』 这个网站来下载,并且刻录成为CD,这个时候先用Live CD光盘开机,然后使用fsck去修复原本的根目录, 例如: fsck /dev/sda1 ,就能够救回来了!
三、如果硬盘整个坏掉:
如果硬盘实在坏的离谱时,那就先将旧硬盘内的数据,能救出来的救出来,然后换一颗硬盘来重新安装Linux吧! 不要不愿意换硬盘啊。
那么硬盘该如何预防发生文件系统错误的问题呢?可以参考底下说明:
妥善保养硬盘: 例如:主机通电之后不要搬动,避免移动或震动硬盘;尽量降低硬盘的温度,可以加装风扇来冷却硬盘; 或者可以换装 SCSI 硬盘。
划分不同的partition: 为什么磁盘分区这么重要!因为Linux每个目录被读写的频率不同,妥善的分割将会让我们的Linux更安全! 通常我们会建议划分下列的磁盘区块:
- /
- /boot
- /usr
- /home
- /var
这样划分有些好处,例如/var是系统默认的一些数据暂存或者是cache数据的储存目录, 像 e-mail 就含在这里面。如果还有使用proxy时,因为常常存取,所以有可能会造成磁盘损坏, 而当这部份的磁盘损坏时,由于其他的地方是没问题的,因此资料得以保存,而且在处理时也比较容易!

5.6.2. 忘记 root 密码:
你只要以单人维护模式登入即可更改你的root密码!由于lilo这个开机管理程序已经很少见了, 这里我使用grub开机管理程序作为范例来介绍!
第5章、 首次登入与在线求助 man page_第22张图片
先将系统重新启动,在读秒的时候按下任意键就会出现如同第四章图3.2的选单画面,仔细看选单底下的说明, 按下『e』就能够进入grub的编辑模式了。此时你看到的画面有点像底下这样:
第5章、 首次登入与在线求助 man page_第23张图片
此时,请将光标移动到kernel那一行,再按一次『 e 』进入kernel该行的编辑画面中, 然后在出现的画面当中,最后方输入 single :
这里写图片描述
再按下『 Enter 』确定之后,按下 b 就可以开机进入单人维护模式了! 在这个模式底下,你会在tty1的地方不需要输入密码即可取得终端机的控制权(而且是使用root的身份喔!)。 之后就能够修改root的密码了!请使用底下的指令来修改root的密码!
这里写图片描述
这里仅是介绍一个简单的处理方法而已,更多的原理不说明将会在后续的各相关章节介绍的。

你可能感兴趣的:(程序人生)