既然Linux系统中已经有了Bash这么好用的“翻译官”,那么接下来就有必要好好学习下怎么跟它沟通了。要想准确、高效地完成各种任务,仅依赖于命令本身是不够的,还应该根据实际情况来灵活调整各种命令的参数。比如,我们切寿司时尽管可以用菜刀,但米粒一定会撒得满地都是,因此寿司刀上设计的用于透气的圆孔就是为了更好地适应场景而额外增加的参数。当您学完本书并具备一定的工作经验之后,一定能够领悟Linux命令的奥秘。常见执行Linux命令的格式是这样的:
命令名称 [命令参数] [命令对象]
注意,命令名称、命令参数、命令对象之间请用空格键分隔。
命令对象一般是指要处理的文件、目录、用户等资源,而命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀(示例请见表2-1)。Linux新手不会执行命令大多是因为参数比较复杂,参数值需要随不同的命令和需求情况而发生改变。因此,要想灵活搭配各种参数,执行自己想要的功能,则需要长时间的经验积累了。
表2-1 命令参数的长格式与短格式示例
长格式 | man --help |
---|---|
短格式 | man -h |
有读者现在可能会想:“Linux系统中有那么多命令,我怎么知道某个命令是干嘛用的?在日常工作中遇到了一个不熟悉的Linux命令,我又怎样才能知道它有哪些可用参数呢?”接下来,我们就拿man这个命令作为本书中第一个教给读者去学习的Linux命令了。对于真正的零基础读者,您可以通过图2-2、图2-3、图2-4和图2-5来学习如何在RHEL 7系统中执行Linux命令。
默认主机登录界面只有我们刚刚新建的普通用户,因此在正式进入系统之前,我们还需要先点击“Not listed”选项来切换至root管理员身份,这是红帽RHEL7系统为了避免用户乱使用权限而采取的一项小措施。而如果我们顺手使用默认的linuxprobe用户登录到主机中,那么接下来本章节中则会出现一部分命令会因权限不足而无法执行,我们需要足够的权限才能完成接下来的实验。而至于同学们关心的root管理员和普通用户之间的区别,生产环境时又该如何选择的疑问,我们将会在第5章节中慢慢讲给大家。登录界面切换至root管理员身份,如图2-2所示。
图2-2 选择“未列出”选项,切换至root管理员身份。
第1步:在RHEL 7系统的桌面上单击鼠标右键,在弹出的菜单中选择Open in Terminal命令,这将打开一个Linux系统命令行终端,如图2-3所示。
图2-3 在Linux系统上打开命令行终端
第2步:在命令行终端中输入man man命令来查看man命令自身的帮助信息,如图2-4所示。
图2-4 查看man命令的帮助信息
第3步:敲击回车键后即可看到如图2-5所示的帮助信息。
图2-5 man命令的帮助信息
在man命令帮助信息的界面中,所包含的常用操作按键及其用途如表2-2所示。
表2-2 man命令中常用按键以及用途
按键 | 作用 |
---|---|
空格键 | 向下翻一页 |
PaGe down | 向下翻一页 |
PaGe up | 向上翻一页 |
home | 直接前往首页 |
end | 直接前往尾页 |
/ | 从上至下搜索某个关键词,如“/linux” |
? | 从下至上搜索某个关键词,如“?linux” |
n | 定位到下一个搜索到的关键词 |
N | 定位到上一个搜索到的关键词 |
q | 退出帮助文档 |
一般来讲,使用man命令查看到的帮助内容信息都会很长很多,如果读者不了解帮助文档信息的目录结构和操作方法,乍一看到这么多信息可能会感到相当困惑。man命令的帮助信息的结构如表2-3所示。
表2-3 man命令帮助信息的结构以及意义
结构名称 | 代表意义 |
---|---|
NAME | 命令的名称 |
SYNOPSIS | 参数的大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示(附带简单说明) |
OVERVIEW | 概述 |
DEFAULTS | 默认的功能 |
OPTIONS | 具体的可用选项(带介绍) |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
需要多说一句的是,在输入命令前就已经存在的“[root@linuxprobe~]#”这部分内容是终端提示符,它用于向用户展示一些基本的信息—当前登录用户名为root,简要的主机名是linuxprobe,所在目录是~(这里的~是指用户home目录,第6章会讲解),#表示管理员身份(如果是$则表示普通用户,相应的权限也会小一些)。
额外的4个快捷键/组合键小技巧
Tab键:
在Bash解释器的快捷键中,Tab键绝对是使用频率最高的,它能够实现对命令、参数或文件的内容补全。例如,如果想执行reboot重启命令,但一时想不起来该命令的完整拼写,则可以这样输入:
[root@linuxprobe ~]# re<Tab键><Tab键>
read redhat-access-insights rescan-scsi-bus.sh
readarray reject reset
readelf remotectl resize2fs
readlink rename resizecons
readmult renew-dummy-cert resizepart
readonly renice resolvconf
readprofile report-cli resolvectl
realm reporter-rhtsupport restorecon
realpath reporter-upload restorecon_xattr
reboot report-gtk return
recode-sr-latin repquota rev
red request-key
[root@linuxprobe ~]# reb<Tab键>
[root@linuxprobe ~]# reboot
在上面的实验中,先输入了两个字母re,随后敲击了两下Tab键。由于以re开头的命令不止一个,所以系统将所有以re开头的命令全部显示了出来。而第二次输入reb后再敲击Tab键,由于此时没有以reb开头的其他命令,所以系统就显示出了完整的reboot重启命令。
对于文件名也是一样的操作—只需要输入前面的一部分名称,且不存在多个以这部分名称开头的文件名,系统就会自动补全。不仅速度快,而且避免了手动输入有可能出错的问题。
Ctrl+c组合键:当同时按下键盘上的Ctrl和字母c的时候,意味着终止当前进程的运行。假如执行了一个错误命令,或者是执行某个命令后迟迟无法结束,这时就可以冷静地按下Ctrl+c组合键,命令行终端的控制权会立刻回到我们手中。
下述命令的执行效果是每1s刷新一次系统负载情况(先不用管命令的作用),直到按下Ctrl+c组合键时才停止运行。
[root@linuxprobe ~]# watch -n 1 uptime
Every 1.0s: uptime localhost.localdomain: Mon Sep 28 19:11:44 2020
19:11:44 up 59 min, 2 users, load average: 0.00, 0.00, 0.00
<Ctrl>+<c>
[root@linuxprobe ~]#
Ctrl+d组合键:当同时按下键盘上的Ctrl和字母d的时候,表示键盘输入结束。
Ctrl+l组合键:当同时按下键盘上的Ctrl和字母l的时候,会清空当前终端中已有的内容(相当于清屏操作)。
从现在开始,本书后面的内容都是重磅内容。本书将会带领读者掌握大约150个常用的Linux命令,以及50多个热门的命令。这50多个热门的命令是以Linux命令大全网的查询阅览量为基础筛选出来的。当然,将这些命令全都放到第2章讲完肯定不现实,所以刘遄老师根据10多年来的运维经验优先筛选出了10多个高频使用的基础命令。由于后面的章节中会反复用到这些命令,因此大家需要好好学习并掌握它们,这样才能在后面章节的学习中做到游刃有余。加油!