参考资料:《鸟哥的Linux私房菜(第四版)》
1.基础命令的操作
首先需要确保我们已经确保了英文语系作为输出语言,否则会产生乱码。
1)显示日期与时间的命令:
date
如果需要格式化输出某个日期或者时间,也是可以的,使用以下的date格式化输出功能:
date +%Y/%m/%d #输出一个指定的日期
date +%H:%m #输出几时几分
2)显示日历的命令:
cal
显示结果将会是当日所在的整个月的日历。如果需要输出整年的日历情况,可以输入如下命令:
cal 2020
基本上cal的命令语法为:
cal [month] [year]
所以想要直到2020年10月的日历,可以直接执行
cal 10 2020
其它月份当然也同理。
我们知道13的月份是没有的,所以执行命令会出现以下的报错信息:
cal:illegal month value: use 1-12
这也就提醒我们,如果输入错误,该命令会有错误的提示,通过提示可以了解命令执行的正确与错误条件。
3)简单好用的计算器:
bc
能够在bc中使用的运算符有+、-、*、/、^、%。但是需要注意的是,bc默认输出为整数,就会得到10/100=0这种结果。如果需要输出小数点下位数,必须执行以下命令:
scale=number
这里的number为小数点后位数,需要自己输入。
如果需要退出bc,输入命令:
quit
即可。
由此可以发现,在命令行中执行命令,有两种主要的情况:
(1)该命令直接显示结果,然后回到命令提示字符等待下一个命令的输入
(2)进入到该命令的环境中,直到结束该命令才会回到命令行界面
判断的方法无非是光标是否在主机名称的提示字符后面,很容易分辨。
2.重要的几个热键
1)Tab
Tab应该算是Linux中最好的功能之一,起到了命令补全和文件对齐的作用,能够帮我们避免打错命令或者文件名。
需要注意的是,Tab键在输入命令的长度不同时使用也会用不同的效果。这倒也不难理解,输入的命令越详细,能够挑选的不同命令的范围越小。
总结:
(1)Tab接在一串命令的第一个字段后面,称为命令补全
(2)Tab接在一串命令的第二个字段后面,称为文件补齐,如:
date --[tab][tab]
以上的tab不是命令内容,是按键的意思。
2)Ctrl+C
有一些命令执行后输出为状态等内容,意味着不会自行停止,需要人为终止它(这体现在命令提示字符一直不会出现)。而Ctrl+C组合键正是起到了中断目前程序的作用。以下为一个示例:
find /
会出现一大堆东西,但按下组合键后命令立即被停止了。
但要注意它会将进行中的进程杀死,所以在执行很重要的命令时不要着急使用。
3)Ctrl+D
这个命令的意思是键盘输入结束,相当于exit,作用是退出命令行。当然在ubuntu这种图形操作界面也可以点左右上角的叉,但能够省一步为什么不省呢?对吧。
4)Shift+Page up或Page down
在纯命令行中去执行某些命令,执行结果可能相当长,这将导致前面的部分已经不在屏幕中,如果想回去看之前的信息,就可以使用这个组合键。显然它起到了上下翻页的作用。
3.错误信息的查看
在命令行中,执行命令出现错误是很正常的,解决起来有时也是很头疼的。但我们可以借助屏幕上显示的错误信息来了解自己的问题,很多时候可以明白改错的方向。比如:
[ ]:command not find
前面的空格指代很多种的命令。command not found是很常见的报错内容。原因可能是:
1)这个命令不存在,由于该软件并没有被安装。解决方法当然是重新安装
2)这个命令所在目录并没有被用户放在命令查找路径中,这点会在以后说明。
3)也有可能只是单纯打错字了
在鸟哥使用的Cent OS7环境中,Bash会找解答,提供一些与目前的命令相近的可执行命令。这显然是非常便利的。但在博主使用的ubuntu 18中是很少有这种功能的。所以按下不表。
4.命令的 --help求助
大部分时候,当我们不了解某个命令时不需要急着去Google、百度,而可以利用命令行自带的帮助文件。这能够使我们对命令的用法做一个大致的了解。比如:
date --help
执行后可以看到我们所需要的参数、选项等内容大都被说明的很清楚了。所以在Linux环境下,除了一些比较常用的命令,我们不需要死记硬背命令参数,因为它们很容易被查到。
但是需要注意的是,如果需要查询我们之前从来没用过的命令,或者查询的根本就不是命令本身,而是文件格式等内容时,那就需要通过下文的man page命令了。
5.man page
这个命令的man是manual(操作说明)的简写。只要执行man date马上就会有很明显的说明。示例如下:
LANG="en_US.utf8" #这个命令是为了语系的需要,执行一次即可
man date
出现的这个屏幕界面,称为man page,可以查询命令的详细用法和相关参数说明。可以使用空格键往下翻页,按下q按键来退出。目前只要掌握这些就可以了。
查询结果会有(1)等数字,这个数字是有意义的,对应关系如下:
1 ——用户在shell环境中可以操作的命令或可执行文件
2 ——系统内核调用的函数与工具
3 ——一些常用的函数与函数库,大部分为C的函数库
4 ——设备文件的说明,通常在/dev下的文件
5 ——配置文件或是某些文件的格式
6 ——游戏
7 ——惯例与协议等,如Linux文件系统、网络协议、ASCII代码的说明
8 ——系统管理员可用的管理命令
9 ——与内核有关的文件
上面的1、5、8条内容特别重要,需要背下它们所代表的意义!!
示例:执行
man null
执行结果为NULL(4),这也就说明了null是一个设备文件。由此可以很容易了解命令的类别。
基本上man page可以分成下面的几个部分:
NAME:简短的命令、数据名称说明
SYNOPSIS:简短的命令语法说明
DESCRIPTION:较为完整的说明,这部分需要好好看看
OPTIONS:针对SYNOPSIS部分中,有列举的所有可用的选项说明
COMMANDS:当这个程序(软件)在执行的时候,可以执行的命令
FILES:这个程序或数据所使用或参考或链接到的某些文件
SEE ALSO:可以参考跟这个命令或数据相关的其他说明
EXAMPLE:一些可以参考的范例
查看时的一般顺序:
1.先看一下NAME的部分,看一下数据的意思
2.再详细看DESCRIPTION,会提到许多相关数据和使用时机,可以学到很多小细节
3.如果命令已经很熟悉了,可以查询OPTIONS的部分,可以知道每个选项的意义,就可以执行比较详细的内容
4.看SEE ALSO的部分中跟这个数据相关的还有哪些东西可以使用?比如date命令的SEE ALSO部分就提示我们还有info coreuils date来进一步查看帮助
5.最后看一下FILES部分
查看man page时可供使用的按键:
向下翻页:空格
上下翻页:Page up、Page down
/:使光标移动到屏幕最下面一行,等待输入查找的字符。这时在后面加需要查找的字符串,man page会自动移动到该区域(向下查找)
?:向上查找
HOME键:移动到第一页
END键:移动到最后一页
q:退出
n或N:实现重复查找,n向下,N向上。且它们不论是/或?均可使用
那么系统中有许多文件的man page,要怎样查出来还有哪些跟man这个命令相关的说明文件?
使用如下命令:
man -f man
如果想要查阅任一个结果,将-f换成想要的那个文件的序号即可。如果使用
man man
命令查询,查找出来的文件与前面命令查找出的序号一般来说有对应关系,会先找到数字较小的那个。
以上命令滞回查找数据中的那个命令或文件的完整名称,有一点不同都不行。如果我们需要只要找到关键词就可以找到对应的命令或文件怎么办?可以尝试以下命令:
man -k man
当然还有两个简略版本的命令可以使用,但需要建立whatis数据库才可以,需要使用root身份执行:
mandb #旧版使用的是makewhatis
执行好了执行:
whatis [命令或文件] #相当于man -f [命令或文件]
apropos [命令或文件] #相当于man -k [命令或文件]
6.info page
基本上info和man的用途差不多,都是用来查询命令的用法或文件的格式。而info page是将文件数据拆成一个一个段落,每个段落用独立页面编写,各个页面中还有超链接。每个页面被称为一个个节点。可以想成是命令行模式的网页显示数据。
不过这要求我们查询的命令有被写成info page的形式才可以查询到。
可以通过以下命令查询info page的一些基本操作:
info info
可以看到,可以通过直接按下N、P、U去到下一个、上一个和上一层的节点。
无论在任何一个页面,只要不知道怎样使用Info,直接按下h,系统提供了一些基本功能的介绍。
在info中还有一个Menu,下面共分为四小节,有两种方法可以移动:
1.按上下左右键移动光标,按下回车,可以前往对应小节
2.直接按Tab移动光标
7.其它有用的文件
除了之前提到的文件,其它的说明文件放在/usr/share/doc这个目录,这使得我们很多情况下不需要到网上去找数据。举例来说,如果想知道grub2有什么能使用的命令,可以到下面的目录看:
/usr/share/doc/grub2-tools-2.02
所以总结起来:
- 在命令行模式中,如果知道某个命令但忘记了相关选项和参数,先使用**–help**
- 当有任何不知道的命令或文件格式,但想要了解,使用man或info查询
- 想要架设一些其它服务,或想要利用一整组软件来完成某项功能时,到/usr/share/doc下查一查该服务的相关文件