由于Linux系统使用了非同步的磁盘/内存数据传输模式,同时又是多用户多任务的环境,所以不能随便得不正常关机,关机有一定得程序
错误的关机方法可能会导致磁盘数据的损毁,此外Linux有多种不同的操作模式
图形接口与命令行的操作又有何不同呢?
我们能否在命令行取得大量的指令说明,而不需要硬背某些指令的选项以及参数呢?
读者(我)下载的版本
因为鸟哥在书里面要我们下载的是虚拟机,CentOS系统,我之前有学过Linux,所以自己装了一个WSL.
简单介绍一下这个东西,它是Windows' Linux的缩写,Windows在前几年就开发出了这么一个子系统,方便程序员和工程师使用,相比于整个双系统,重新弄了一个图形界面系统的,那样打开来打开去会很麻烦,下载和安装也对初学者很不友好.所以这时候子系统的优点就显现出来了
它是Ubuntu旗下的操作系统,没有图形控制界面,只有终端供我们操作,不过对于学习Linux的我们来说,这样恰好就已经足够了.
具体教程直接在Bing或者CSDN,博客园什么的搜一下就有,我在这里就不赘述了
另外如果有买了服务器的同学,想要在服务器上用Linux系统来部署管理并学习的话,可以去看我大半年前的文章,叫<Linux用户和组的管理>.里面就有我捣鼓服务器的说明.
另外,如果大家还是不会操作.
我还推荐一个软件,叫做MobaXterm,官网直接下载压缩包即可,非常轻量级,用处也很多,连接服务器,创造虚拟机(应该算半个虚拟机),并且还有一些比较方便的管理功能.
![](https://img-blog.csdnimg.cn/img_convert/2cfa7fbee54248e4934028c4085d0dab.png)
大家可以自己去尝试
下达指令
其实整个指令下达的方式很简单, 你只要记得几个重要的概念就可以了
![](https://img-blog.csdnimg.cn/img_convert/b9c92674bb4241d6b41ded73b3e0e942.png)
上述指令详细说明如下:
一行指令中第一个输入的部分绝对是“指令( command) ”或“可可执行文件案( 例如批次脚本,script) ”
command 为指令的名称, 例如变换工作目录的指令为 cd 等等;
中刮号[]并不存在于实际的指令中, 而加入选项设置时, 通常选项前会带 - 号, 例如 -h;有时候会使用选项的完整全名, 则选项前带有 -- 符号, 例如 --help;
parameter1 parameter2.. 为依附在选项后面的参数, 或者是 command 的参数;
指令, 选项, 参数等这几个咚咚中间以空格来区分, 不论空几格 shell 都视为一格。 所以空格是很重要的特殊字符! ;
按下[Enter]按键后, 该指令就立即执行。 [Enter]按键代表着一行指令的开始启动。
指令太长的时候, 可以使用反斜线 ( \) 来跳脱[Enter]符号, 使指令连续到下一行。 注意! 反斜线后就立刻接特殊字符, 才能跳脱!
注意到上面的说明当中, “第一个被输入的数据绝对是指令或者是可执行的文件”! 这个是很重要的概念喔! 还有, 按下[Enter]键表示要开始执行此一命令的意思。
基础指令的操作
下面我们来操作几个简单的指令
显示日期与时间的指令:data
显示日历的指令cal
简单好用的计算机:bc
显示日期:date
如果在命令行中想要知道目前Linux系统的时间,那么就直接在命令行界面输入date即可显示:
gremmie in pumpkin007ofGremmie in ~
❯ date
Tue Feb 7 20:49:57 CST 2023
内容信息很容易看懂,我们接下来做一些格式化操作
gremmie in pumpkin007ofGremmie in ~
❯ date +%Y/%m/%d
2023/02/07
gremmie in pumpkin007ofGremmie in ~
❯ date +%H:%M
20:52
这里的 +%Y/%m/%d就是data指令的一些参数功能.
问题来了,这些参数一定要背下来吗?
不必,后面会提到
我们从例子中可以知道
指令后面的选项除了前面带有减号"-"之外,某些特殊情况下,选项或参数前面也会带有正号"+"的情况
显示日历的指令:cal
如果我想要列出目前这个月份的日历.直接cal即可
![](https://img-blog.csdnimg.cn/img_convert/a80356cce5904c01af58e00f3b4fe0da.png)
我们可以观察到,除了本月的日历以外,连同今日所在的日期处都会有反白的显示.
cal这个指令能做的事情还有很多
比如可以列出固定哪一年的日历
gremmie in pumpkin007ofGremmie in ~
❯ cal 2023
2023
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25
29 30 31 26 27 28 26 27 28 29 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 6 1 2 3
2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10
9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17
16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24
23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30
30
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 1 2
2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9
9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16
16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23
23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30
30 31
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1 2
8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9
15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16
22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23
29 30 31 26 27 28 29 30 24 25 26 27 28 29 30
31
所以cal这个指令的语法为
cal [month] [year]
计算器:bc
[dmtsai@study ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2+3+4 <==只有加法时
10
7-8+3
21
0*52
520
10%3 <==计算“余数”
11
0^2
100
10/100 <==这个最奇怪! 不是应该是 0.1 吗?
0q
uit <==离开 bc 这个计算器
在上表当中, 粗体字表示输入的数据, 而在每个粗体字的下面就是输出的结果。 咦! 每个计算都还算正确, 怎么10/100会变成0呢? 这是因为bc默认仅输出整数, 如果要输出小数点下位数, 那么就必须要执行 scale=number , 那个number就是小数点位数, 例如:
注意啊! 要离开bc回到命令提示字符时, 务必要输入“quit”来离开bc的软件环境喔! 好了! 就是这样子啦! 简单的很吧! 以后你可以轻轻松松的进行加减乘除啦!
从上面的练习我们大概可以知道在命令行界面里面下达指令时, 会有两种主要的情况:
一种是该指令会直接显示结果然后回到命令提示字符等待下一个指令的输入;
一种是进入到该指令的环境, 直到结束该指令才回到命令提示字符的环境
![](https://img-blog.csdnimg.cn/img_convert/5f967b1402664280a4ac619d42d6ea4f.png)
上图为直接显示结果, 下图为进入软件功能
重要的热键
[Tab]
[Tab]按键就是在键盘的大写灯切换按键( [Caps Lock]) 上面的那个按键! 在各种Unix-Like的Shell当中, 这个[Tab]按键算是Linux的Bash shell最棒的功能之一了! 他具有“命令补全”与“文件补齐”的功能喔! 重点是, 可以避免我们打错指令或文件名称呢! 很棒吧! 但是[Tab]按键在不同的地方输入, 会有不一样的结果喔! 我们举下面的例子来说明。 上一小节我们不是提到cal 这个指令吗? 如果我在命令行输入 ca 再按两次 [tab] 按键, 会出现什么讯息?
[dmtsai@study ~]$ ca[tab][tab] <==[tab]按键是紧接在 a 字母后面!
cacertdir_rehash cairo-sphinx cancel case
cache_check cal cancel.cups cat
cache_dump calibrate_ppa capsh catchsegv
cache_metadata_size caller captoinfo catman
# 上面的 [tab] 指的是“按下那个tab键”, 不是要你输入中括号内的tab啦!
发现什么事? 所有以ca为开头的指令都被显示出来啦! 很不错吧! 那如果你输入“ls -al~/.bash”再加两个[tab]会出现什么?
在该目录下面所有以 .bash 为开头的文件名称都会被显示出来了呢! 注意看上面两个例子喔, 我们按[tab]按键的地方如果是在command( 第一个输入的数据) 后面时, 他就代表着“命令补全”, 如果是接在第二个字以后的, 就会变成“文件补齐”的功能了! 但是在某些特殊的指令下面, 文件补齐的功能可能会变成“参数/选项补齐”喔! 我们同样使用 date 这个指令来查一下
总结一下:
[Tab] 接在一串指令的第一个字的后面, 则为“命令补全”;
[Tab] 接在一串指令的第二个字以后时, 则为“文件补齐”!
若安装 bash-completion 软件, 则在某些指令后面使用 [tab] 按键时, 可以进行“选项/参数的补齐”功能!
善用 [tab] 按键真的是个很好的习惯! 可以让你避免掉很多输入错误的机会!
[Ctrl]-c
如果你在Linux下面输入了错误的指令或参数, 有的时候这个指令或程序会在系统下面“跑不停”这个时候怎么办? 别担心, 如果你想让当前的程序“停掉”的话, 可以输入: [Ctrl]与c按键( 先按着[Ctrl]不放, 且再按下c按键, 是组合按键) , 那就是中断目前程序的按键啦! 举例来说, 如果你输入了“find /”这个指令时, 系统会开始跑一些东西( 先不要理会这个指令串的意义) , 此时你给他按下 [Ctrl]-c 组合按键, 嘿嘿! 是否立刻发现这个指令串被终止了! 就是这样的意思啦!
不过你应该要注意的是, 这个组合键是可以将正在运行中的指令中断的, 如果你正在运行比较重要的指令, 可别急着使用这个组合按键喔!
[Ctrl]-d
那么[Ctrl]-d是什么呢? 就是[Ctrl]与d按键的组合啊! 这个组合按键通常代表着: “键盘输入结束( End Of File, EOF 或 End Of Input) ”的意思! 另外, 他也可以用来取代exit的输入呢! 例如你想要直接离开命令行, 可以直接按下[Ctrl]-d就能够直接离开了( 相当于输入exit啊! ) 。
[shift]+{[Page Up]|[Page Down]}
如果你在纯文本的画面中执行某些指令, 这个指令的输出讯息相当长啊! 所以导致前面的部份已经不在目前的屏幕画面中, 所以你想要回头去瞧一瞧输出的讯息, 那怎办? 其实, 你可以使用 [Shift]+[Page Up] 来往前翻页, 也能够使用 [Shift]+[Page Down] 来往后翻页! 这两个组合键也是可以稍微记忆一下, 在你要稍微往前翻画面时, 相当有帮助!
错误信息的查看
玩意下达了错误的指令怎么办
不用着急
我们可以借助屏幕上面显示的错误代码和信息来了解我们出错 的问题点
举个例子,当我们想执行date却打错成了DATE,那么错误就应该是
![](https://img-blog.csdnimg.cn/img_convert/4f99290fd9744d788859d83fb49e9562.png)
意思就是"指令找不到",指的就是DATE,
所以出现错误的原因一般有三个
这个指令不存在,软件没有安装,解决方法就是安装软件
这个指令所在的目录目前的用户并没有将他加入指令搜寻的路径中
打错字了
线上求助
我们可以通过输入g,再按两下tab来看看有多少g开头的指令可以给我们用
那么这么多指令,真的需要我们去一个一个背吗?
那得背到什么时候
刘培强医保下来了我们也背不完
不用担心,制作这个系统的天才程序员就是把我们当成傻子来设计操作系统的,他们自然会想到我们不可能去背,更不可能背完,所以他们就弄了一个东西,就是传说中的doumentation,
就像邵老师说的那样,它就像空气,总是让人们忽视它,但它又有它不得不存在的理由
指令的 --help求助说明
事实上, 几乎 Linux 上面的指令, 在开发的时候, 开发者就将可以使用的指令语法与参数写入指令操作过程中了! 你只要使用“ --help ”这个选项, 就能够将该指令的用法作一个大致的理解喔! 举例来说, 我们来瞧瞧 date 这个指令的基本用法与选项参数的介绍:
![](https://img-blog.csdnimg.cn/img_convert/111aaa0c8c5c412ca8d5e98bebf43529.png)
看一下上面的显示, 首先一开始是下达语法的方式 ( Usage) , 这个 date 有两种基本语法,一种是直接下达并且取得日期回传值, 且可以 +FORAMAT 的方式来显示。 至于另一种方式, 则是加上 MMDDhhmmCCYY 的方式来设置日期时间。 他的格式是“月月日日时时分分西元年”的格式! 再往下看, 会说明主要的选项, 例如 -d 的意义等等, 后续又会出现+FORMAT 的用法! 从里面你可以查到我们之前曾经用过得“ date +%Y%m%d ”这个指令与选项的说明
基本上, 如果是指令, 那么通过这个简单的 --help 就可以很快速的取得你所需要的选项、 参数的说明了! 这很重要! 我们说过, 在 linux 下面你需要学习“任务达成”的方式, 不用硬背指令参数。 不过常用的指令你还是得要记忆一下, 而选项就通过 --help 来快速查询即可。
同样的, 通过 cal --help 你也可以取得相同的解释! 相当好用! 不过, 如果你使用 bc --help的话, 虽然也有简单的解释, 但是就没有类似 scale 的用法说明, 同时也不会有 +, -, *, /, %等运算子的说明了! 因此, 虽然 --help 已经相当好用, 不过, 通常 --help 用在协助你查询“你曾经用过的指令所具备的选项与参数”而已, 如果你要使用的是从来没有用过得指令, 或者是你要查询的根本就不是指令, 而是文件的“格式”时, 那就得要通过 man page 啰! !
后面有机会我可以介绍一下怎么制作属于自己的帮助文档,并通过自定义命令行查询.
这个天才的想法来自于我的舍友蒋承睿.
完美解决了考试的时候怎么去打小抄(咳咳,毕竟本来就是开卷嘛)
日常生活中用用也是很方便的
man page
date --help 没有告诉你 STRING 是什么? 嘿嘿! 不要担心, 除了 --help 之外, 我们Linux上面的其他线上求助系统已经都帮你想好要怎么办了, 所以你只要使用简单的方法去寻找一下说明的内容, 马上就清清楚楚的知道该指令的用法了! 怎么看呢? 就是找男人( man) 不是啦! 这个man是manual( 操作说明) 的简写啦! 只要下达: “man date” 马上就会有清楚的说明出现在你面前喔! 如下所示:
![](https://img-blog.csdnimg.cn/img_convert/999da43555a042a6a0076770c9cebfe1.png)
进入man指令的功能后, 你可以按下“空白键”往下翻页, 可以按下“ q ”按键来离开man的环境。 更多在man指令下的功能, 本小节后面会谈到的!
首先, 在上个表格的第一行, 你可以看到的是: “DATE( 1) ”, DATE我们知道是指令的名称, 那么( 1) 代表什么呢? 他代表的是“一般使用者可使用的指令”的意思! 咦! 还有这个用意啊! 呵呵! 没错~在查询数据的后面的数字是有意义的喔! 他可以帮助我们了解或者是直接查询相关的数据。 常见的几个数字的意义是这样的:
代号 |
代表内容 |
1 |
使用者在shell环境中可以操作的指令或可执行文件 |
2 |
系统核心可调用的函数与工具等 |
3 |
一些常用的函数( function) 与函数库( library) , 大部分为C的函数库( libc) |
4 |
设备文件的说明, 通常在/dev下的文件 |
5 |
配置文件或者是某些文件的格式 |
6 |
游戏( games) |
7 |
惯例与协定等, 例如Linux文件系统、 网络协定、 ASCII code等等的说明 |
8 |
系统管理员可用的管理指令 |
9 |
跟kernel有关的文件 |
上述的表格内容可以使用“man man”来更详细的取得说明。 通过这张表格的说明, 未来你如果使用man page在察看某些数据时, 就会知道该指令/文件所代表的基本意义是什么了。 举例来说, 如果你下达了“man null”时, 会出现的第一行是: “NULL( 4) ”, 对照一下上面的数字意义, 嘿嘿! 原来null这个玩意儿竟然是一个“设备文件”呢! 很容易了解了吧!
上图中的1,5,8都很重要,请大家把者三个数字的意义背下来
man page的内容也分成好几个部分来加以介绍该指令呢! 就是上头man date那个表格内, 以NAME作为开始介绍, 最后还有个SEE ALSO来作为结束。 基本上, man page大致分成下面这几个部分
代号 |
内容说明 |
NAME |
简短的指令、 数据名称说明 |
SYNOPSIS |
简短的指令下达语法( syntax) 简介 |
DESCRIPTION |
较为完整的说明, 这部分最好仔细看看! |
OPTIONS |
针对 SYNOPSIS 部分中, 有列举的所有可用的选项说明 |
COMMANDS |
当这个程序( 软件) 在执行的时候, 可以在此程序( 软件) 中下达的指令 |
FILES |
这个程序或数据所使用或参考或链接到的某些文件 |
SEE ALSO |
可以参考的, 跟这个指令或数据有相关的其他说明! |
EXAMPLE |
一些可以参考的范例 |
有时候除了这些外, 还可能会看到Authors与Copyright等, 不过也有很多时候仅有NAME与
DESCRIPTION等部分。 通常鸟哥在查询某个数据时是这样来查阅的:
先察看NAME的项目, 约略看一下这个数据的意思;
再详看一下DESCRIPTION, 这个部分会提到很多相关的数据与使用时机, 从这个地方可以学到很多小细节呢;
而如果这个指令其实很熟悉了( 例如上面的date) , 那么鸟哥主要就是查询关于
OPTIONS的部分了! 可以知道每个选项的意义, 这样就可以下达比较细部的指令内容呢!
最后, 鸟哥会再看一下, 跟这个数据有关的还有哪些东西可以使用的? 举例来说, 上面的SEE ALSO就告知我们还可以利用“info coreutils date”来进一步查阅数据;
某些说明内容还会列举有关的文件( FILES 部分) 来提供我们参考! 这些都是很有帮助的!
大致上了解了man page的内容后, 那么在man page当中我还可以利用哪些按键来帮忙查阅呢? 首先, 如果要向下翻页的话, 可以按下键盘的空白键, 也可以使用[Page Up]与[Page Down]来翻页呢! 同时, 如果你知道某些关键字的话, 那么可以在任何时候输入“/word”, 来主动搜寻关键字! 例如在上面的搜寻当中, 我输入了“/date”会变成怎样?
![](https://img-blog.csdnimg.cn/img_convert/769e79ac8d0243ceba945ca00ceb502a.png)
当你按下“/”之后, 光标就会移动到屏幕的最下面一行, 并等待你输入搜寻的字串了。 此时, 输入date后, man page就会开始搜寻跟date有关的字串, 并且移动到该区域呢!很方便吧! 最后, 如果要离开man page时, 直接按下“ q ”就能够离开了。 我们将一些在manpage常用的按键给他整理整理:
按键 |
进行工作 |
空白键 |
向下翻一页 |
[Page Down] |
向下翻一页 |
[Page Up] |
向上翻一页 |
[Home] |
去到第一页 |
[End] |
去到最后一页 |
/string |
向“下”搜寻 string 这个字串, 如果要搜寻 vbird 的话, 就输入 /vbird |
?string |
向“上”搜寻 string 这个字串 |
n, N |
利用 / 或 ? 来搜寻字串时, 可以用 n 来继续下一个搜寻 ( 不论是 / 或 ?) , 可以利用 N 来进行“反向”搜寻。 举例来说, 我以 /vbird 搜寻 vbird 字串, 那么 可以 n 继续往下查询, 用 N 往上查询。 若以 ?vbird 向上查询 vbird 字串, 那 我可以用 n 继续“向上”查询, 用 N 反向查询。 |
q |
结束这次的 man page |
要注意喔! 上面的按键是在man page的画面当中才能使用的! 比较有趣的是那个搜寻啦! 我们可以往下或者是往上搜寻某个字串, 例如要在man page内搜寻vbird这个字串, 可以输入/vbird 或者是 ?vbird , 只不过一个是往下而一个是往上来搜寻的。 而要 重复搜寻 某个字串时, 可以使用 n 或者是 N 来动作即可呢! 很方便吧! ^_^
既然有man page, 自然就是因为有一些文件数据, 所以才能够以man page读出来啰! 那么这些man page的数据 放在哪里呢? 不同的distribution通常可能有点差异性, 不过, 通常是放在/usr/share/man这个目录里头, 然而, 我们可以通过修改他的man page搜寻路径来改善这个目录的问题! 修改/etc/man_db.conf ( 有的版本为man.conf或manpath.conf或man.config等) 即可啰! 至于更多的关于man的讯息你可以使用“ man man ”来查询
例题: 你可否查出来, 系统中还有哪些跟“man”这个指令有关的说明文档呢? 答: 你可以使用下面的指令来查询一下:
![](https://img-blog.csdnimg.cn/img_convert/7491c9413b0c44b990b22f157ba08ed9.png)
使用 -f 这个选项就可以取得更多与man相关的信息, 而上面这个结果当中也有提示了 ( 数字) 的内容, 举例来说, 第三行的“ man ( 7) ”表示有个man ( 7) 的说明文档存在喔! 但是却有个man ( 1) 存在啊! 那当我们下达“ man man ”的时候, 到底是找到哪一个说明文档呢? 其实, 你可以指定不同的文件的, 举例来说, 上表当中的两个 man 你可以这样将他的文件叫出来:
![](https://img-blog.csdnimg.cn/img_convert/33565507408a47418cf1ac82852dede1.png)
你可以自行将上面两个指令输入一次看看, 就知道, 两个指令输出的结果是不同的。 那个1,7就是分别取出在man page里面关于1与7相关数据的文件文件啰! 好了, 那么万一我真的忘记了下达数字, 只有输入“ man man ”时, 那么取出的数据到底是1还是7啊? 这个就跟搜寻的顺序有关了。 搜寻的顺序是记录在/etc/man_db.conf 这个配置文件当中, 先搜寻到的那个说明文档, 就会先被显示出来! 一般来说, 通常会先找到数字较小的那个啦! 因为排序的关系啊! 所以, man man 会跟 man 1 man 结果相同!
除此之外, 我们还可以利用“关键字”找到更多的说明文档数据喔! 什么是关键字呢? 从上面的“man -f man”输出的结果中, 我们知道其实输出的数据是:
左边部分: 指令( 或文件) 以及该指令所代表的意义( 就是那个数字) ;
右边部分: 这个指令的简易说明, 例如上述的“-macros to format man pages”
当使用“man -f 指令”时, man只会找数据中的左边那个指令( 或文件) 的完整名称, 有一点不同都不行! 但如果我想要找的是“关键字”呢? 也就是说, 我想要同时找上面说的两个地方的内容, 只要该内容有关键字存在, 不需要完全相同的指令( 或文件) 就能够找到时, 该怎么办? 请看下个范例啰!
例题: 找出系统的说明文档中, 只要有man这个关键字就将该说明列出来
![](https://img-blog.csdnimg.cn/img_convert/3c8734bd25824bb6b5cb359f4998ca2e.png)
因为这个是利用关键字将说明文档里面只要含有man那个字眼的( 不见得是完整字串) 就将他取出来! 很方便吧! ^_^( 上面的结果有特殊字体的显示是为了方便读者查看, 实际的输出结果并不会有特别的颜色显示喔! )
事实上, 还有两个指令与man page有关呢! 而这两个指令是man的简略写法说~就是这两个:
![](https://img-blog.csdnimg.cn/img_convert/6f707de40cbb408eb77d004d5d9838ab.png)
而要注意的是, 这两个特殊指令要能使用, 必须要有创建 whatis 数据库才行! 这个数据库的创建需要以 root 的身份下达如下的指令:
![](https://img-blog.csdnimg.cn/img_convert/e7b920c01aa44c53be4c3b45f9addc73.png)
基本上, info与man的用途其实差不多, 都是用来查询指令的用法或者是文件的格式。 但是与man page一口气输出一堆信息不同的是, info page则是将文件数据拆成一个一个的段落, 每个段落用自己的页面来撰写, 并且在各个页面中还有类似网页的“超链接”来跳到各不同的页面中, 每个独立的页面也被称为一个节点( node) 。 所以, 你可以将info page想成是文字模式的网页显示数据啦!
不过你要查询的目标数据的说明文档必须要以info的格式来写成才能够使用info的特殊功能( 例如超链接) 。 而这个支持info指令的文件默认是放置在/usr/share/info/这个目录当中的。举例来说, info这个指令的说明文档有写成info格式, 所以, 你使用“ info info ”可以得到如下的画面
![](https://img-blog.csdnimg.cn/img_convert/68992683c956445195f43aac5497d0de.png)
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
这个节点所做的。 另外, 如论你在任何一个页面, 只要不知道怎么使用 info 了, 直接按下 h系统就能够提供一些基本按键功能的介绍喔!
![](https://img-blog.csdnimg.cn/img_convert/4f99dace537f4851aed448dd1084bd1e.png)
再来, 你也会看到有“Menu”那个咚咚吧! 下面共分为四小节, 分别是Getting Started等等的,我们可以使用上下左右按键来将光标移动到该文字或者“ * ”上面, 按下Enter, 就可以前往该小节了! 另外, 也可以按下[Tab]按键, 就可以快速的将光标在上表的画面中的node间移动,真的是非常的方便好用。 如果将info.info内的各个节点串在一起并绘制成图表的话, 情况有点像下面这样:
![](https://img-blog.csdnimg.cn/img_convert/e9b86eae30d2451abb23a2d5fe884d63.png)
如同上图所示, info的说明文档将内容分成多个node, 并且每个node都有定位与链接。 在各链接之间还可以具有类似“超链接”的快速按钮, 可以通过[tab]键在各个超链接间移动。 也可以使用U,P,N来在各个阶层与相关链接中显示! 非常的不错用啦! 至于在info page当中可以使用的按键, 可以整理成下面这样, 事实上, 你也可以在 info page 中按下 h 喔!
按键 |
进行工作 |
空白键 |
向下翻一页 |
[Page Down] |
向下翻一页 |
[Page Up] |
向上翻一页 |
[tab] |
在 node 之间移动, 有 node 的地方, 通常会以 * 显示。 |
[Enter] |
当光标在 node 上面时, 按下 Enter 可以进入该 node 。 |
b |
移动光标到该 info 画面当中的第一个 node 处 |
e |
移动光标到该 info 画面当中的最后一个 node 处 |
n |
前往下一个 node 处 |
p |
前往上一个 node 处 |
u |
向上移动一层 |
s( /) |
在 info page 当中进行搜寻 |
h, ? |
显示求助菜单 |
q |
结束这次的 info page |
info page是只有Linux上面才有的产物, 而且易读性增强很多~不过查询的指令说明要具有info page功能的话, 得用info page的格式来写成线上求助文件才行! 我们CentOS 7将infopage的文件放置到/usr/share/info/目录中! 至于非以info page格式写成的说明文档( 就是manpage) , 虽然也能够使用info来显示, 不过其结果就会跟man相同。 举例来说, 你可以下达“info man”就知道结果了! ^_^
总结上面的三个咚咚( man, info, /usr/share/doc/) , 请记住喔:
在终端机模式中, 如果你知道某个指令, 但却忘记了相关选项与参数, 请先善用 --help的功能来查询相关信息;
当有任何你不知道的指令或文件格式这种玩意儿, 但是你想要了解他, 请赶快使用man或者是info来查询!
而如果你想要架设一些其他的服务, 或想要利用一整组软件来达成某项功能时, 请赶快到/usr/share/doc 下面查一查有没有该服务的说明文档喔!
另外, 再次的强调, 因为Linux毕竟是外国人发明的, 所以中文文件确实是比较少的! 但是不要害怕, 拿本英文字典在身边吧! 随时查阅!
正确的关机方法
OK! 大概知道开机的方法, 也知道基本的指令操作, 而且还已经知道线上查询了, 好累呦!想去休息呢! 那么如何关机呢? 我想, 很多朋友在DOS的年代已经有在玩计算机了! 在当时我们关掉DOS的系统时, 常常是直接关掉电源开关, 而 Windows 在你不爽的时候, 按着电源开关四秒也可以关机! 但是在Linux则相当的不建议这么做!
Why? 在 Windows ( 非 NT 主机系统) 系统中, 由于是单人假多任务的情况, 所以即使你的计算机关机, 对于别人应该不会有影响才对! 不过呢, 在 Linux 下面, 由于每个程序 ( 或者说是服务) 都是在在背景下执行的, 因此, 在你看不到的屏幕背后其实可能有相当多人同时在你的主机上面工作, 例如浏览网页啦、 传送信件啦以 FTP 传送文件啦等等的, 如果你直接按下电源开关来关机时, 则其他人的数据可能就此中断! 那可就伤脑筋了!
此外, 最大的问题是, 若不正常关机, 则可能造成文件系统的毁损 ( 因为来不及将数据回写到文件中, 所以有些服务的文件会有问题! ) 。 所以正常情况下, 要关机时需要注意下面几件事 :
观察系统的使用状态: 如果要看目前有谁在线上, 可以下达“who”这个指令, 而如果要看网络的连线状态, 可以下达 “ netstat -a ”这个指令, 而要看背景执行的程序可以执行“ ps-aux ”这个指令。 使用这些指令可以让你稍微了解主机目前的使用状态! 当然啰, 就可以让你判断是否可以关机了 ( 这些指令在后面Linux常用指令中会提及喔! )
通知线上使用者关机的时刻: 要关机前总得给线上的使用者一些时间来结束他们的工作, 所以, 这个时候你可以使用 shutdown 的特别指令来达到此一功能。
正确的关机指令使用: 例如 shutdown 与 reboot 两个指令!
所以下面我们就来谈一谈几个与关机/重新开机相关的指令啰!
将数据同步写入硬盘中的指令: sync
惯用的关机指令: shutdown
重新开机, 关机: reboot, halt, poweroff
数据同步写入磁盘: sync
在计算机概论里面我们谈到过数据在计算机中运行的模式, 所有的数据都得要被读
入内存后才能够被CPU所处理, 但是数据又常常需要由内存写回硬盘当中( 例如储存的动作) 。 由于硬盘的速度太慢( 相对于内存来说) , 如果常常让数据在内存与硬盘中来回写入/读出, 系统的性能就不会太好。
因此在Linux系统中, 为了加快数据的读取速度, 所以在默认的情况中, 某些已经载入内存中的数据将不会直接被写回硬盘, 而是先暂存在内存当中, 如此一来, 如果一个数据被你重复的改写, 那么由于他尚未被写入硬盘中, 因此可以直接由内存当中读取出来, 在速度上一定是快上相当多的!
不过, 如此一来也造成些许的困扰, 那就是万一你的系统因为某些特殊情况造成不正常关机( 例如停电或者是不小心踢到power) 时, 由于数据尚未被写入硬盘当中, 哇! 所以就会造成数据的更新不正常啦! 那要怎么办呢? 这个时候就需要sync这个指令来进行数据的写入动作啦! 直接在命令行下输入sync, 那么在内存中尚未被更新的数据, 就会被写入硬盘中! 所以, 这个指令在系统关机或重新开机之前, 很重要喔! 最好多执行几次!
虽然目前的 shutdown/reboot/halt 等等指令均已经在关机前进行了 sync 这个工具的调用, 不过, 多做几次总是比较放心点
重点回顾
为了避免瞬间断电造成的Linux系统危害, 建议做为服务器的Linux主机应该加上不断电系统来持续提供稳定的电力;
养成良好的操作习惯, 尽量不要使用 root 直接登陆系统, 应使用一般帐号登陆系统, 有需要再转换身份
可以通过“活动总览”查看系统所有使用的软件及快速启用惯用软件
在X的环境下想要“强制”重新启动X的组合按键为: “[alt]+[ctrl]+[backspace]”;
默认情况下, Linux提供tty1~tty6的终端机界面;
在终端机环境中, 可依据提示字符为$或#判断为一般帐号或root帐号;
取得终端机支持的语系数据可下达“echo $LANG”或“locale”指令;
date可显示日期、 cal可显示日历、 bc可以做为计算机软件;
组合按键中, [tab]按键可做为( 1) 命令补齐或( 2) 文件名补齐或( 3) 参数选项补齐,[crtl]-[c]可以中断目前正在运行中的程序;
Linux 系统上的英文大小写为不同的数据
线上说明系统有man及info两个常见的指令;
man page说明后面的数字中, 1代表一般帐号可用指令, 8代表系统管理员常用指令, 5代表系统配置文件格式;
info page可将一份说明文档拆成多个节点( node) 显示, 并具有类似超链接的功能, 增加易读性;
系统需正确的关机比较不容易损坏, 可使用shutdown, poweroff等指令关机。