金鱼哥戏说RHCSA认证:四、访问命令行

简介: 第四章 访问命令行
🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质: CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝


本章节讲解linux命令行相关的知识点,做为命令行的使用基础,需要好好掌握。

📜4.1 执行命令

📑4.1.1 执行命令过程

输入命令后回车,提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来


📑4.1.2 shell中可执行的两类命令

  • 内部命令:由shell自带的,而且通过某命令形式提供

    ll /bin/bash
  • 外部命令:在文件系统路径下有对应的可执行程序文件

    ll /usr/bin/who

区别指定的命令是内部或外部命令

type COMMAND

范例:查看是否存在对应内部和外部命令

[root@centos8 ~]# type -a echo
echo is a shell builtin
echo is /usr/bin/echo

内部命令相关

help 内部命令列表


外部命令的读取方式

外部命令是从磁盘中读取,那么系统在执行外部命令的时候是通过$PATH变量找到命令,而不是全局搜索,那样的效率就会太慢

[23:44:33 root@servera ~]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率

[23:44:31 root@servera ~]# hash
hits    command
   1    /usr/bin/hostnamectl
   1    /usr/bin/hostname
   1    /usr/bin/who

📑4.1.3 命令别名

对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行显示当前shell进程所有可用的命令别名

alias

定义别名NAME,其实相当于执行命令VALUE

alias NAME='VALUE'

范例:

[root@centos8 ~]# alias free='free -h'"

撤消别名:unalias

unalias [-a] name [name ...]
unalias -a #取消所有别名

注意:在命令行中定义的别名,仅对当前shell进程有效
如果想永久有效,要定义在配置文件中

  • 仅对当前用户:~/.bashrc
  • 对所有用户有效:/etc/bashrc
[root@centos8 ~]# echo "alias free='free -h'" >> .bashrc

如果别名同原命令同名,如果要执行原命令,可使用

\ALIASNAME
“ALIASNAME”
‘ALIASNAME’
command ALIASNAME
/path/commmand #只适用于外部命令

📑4.1.4 命令格式

COMMAND [选项] [参数]

选项:用于启用或关闭命令的某个或某些功能

  • 短选项:UNIX 风格选项,-c 例如:-l, -h
  • 长选项:GNU风格选项,--word 例如:--all, --human
  • BSD风格选项: 一个字母,例如:a,使用相对较少

参数:命令的作用对象,比如:文件名,用户名等

范例:

[root@centos8 ~]# ls -a
[root@centos8 ~]# ls --all
[root@centos8 ~]# free -h
[root@centos8 ~]# free --human
[root@centos8 ~]# ps a

📑4.1.5 控制执行多个命令

  • ;:当第一条命令执行完成后(不管是否执行成功),执行第二条命令,此为顺序执行
  • ||:只有当第一条命令执行失败的时候,才会去执行第二条命令
  • &&:只有当你第一条命令执行成功的时候,才会去执行第二条命令

范例:

[root@servera ~]# cd /tmp;mkdir test1;ls
[root@servera tmp]# cd /tmp;cat xxx || mkdir test2;ls
cat: xxx: No such file or directory
[root@servera tmp]# cd /tmp;cat xxx && mkdir test3;ls
cat: xxx: No such file or directory
[root@servera tmp]# cd /tmp && mkdir test3;ls

注意:

  • 多个选项以及多参数和命令之间使用空白字符分隔
  • 取消和结束命令执行:Ctrl+c
  • 多个命令放在一行,每个命令之间可以用 ";" 符号分开
  • 一个命令可以用\分成多行

📑4.1.6 命令行扩展:`` 和 $()

把一个命令的输出打印给另一个命令的参数

$(COMMAND) 或 `COMMAND`
#COMMAND必须是一个有标出信息的命令

范例:比较 “ ” ,‘ ’, ``三者区别

[root@centos8 ~]# echo "echo $HOSTNAME"
echo centos8.localdomain
[root@centos8 ~]# echo 'echo $HOSTNAME'
echo $HOSTNAME
[root@centos8 ~]# echo `echo $HOSTNAME`
centos8.localdomain
#结论:
# 单引号:六亲不认,变量和命令都不识别,都当成了普通的字符串
# 反向单引号:变量和命令都识别,并且会将反向单引号的内容当成命令进行执行后,再交给调用反向单引号的命令继续
# 双引号:不能识别命令,可以识别变量

📜4.2 tab键补全

tab 键可以实现命令及路径等补全,提高输入效率,避免出错


📑4.2.1 命令补全

最小化安装默认没有子命令补全,需要安装bash-completion

注意:用户给定的字符串只有一条惟一对应的命令,直接补全,否则,再次Tab会给出列表

范例:

[root@centos8 ~]# nmcli connection #按2TAB
add delete edit help load monitor show
clone down export import modify reload up

📑4.2.2 路径补全

把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全
否则:再次Tab给出列表


📜4.3 命令行历史

当执行命令后,系统默认会在内存记录执行过的命令
当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history
登录shell时,会读取命令历史文件中记录下的命令加载到内存中
登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时“追加”至命令历史文件中
利用命令历史。可以用它来重复执行命令,提高输入效率
命令:history

history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
  • -c: 清空命令历史
  • -d offset: 删除历史中指定的第offset个命令
  • n: 显示最近的n条历史
  • -a: 追加本次会话新执行的命令历史列表至历史文件
  • -r: 读历史文件附加到历史列表
  • -w: 保存历史列表到指定的历史文件
  • -n: 读历史文件中未读过的行到历史列表
  • -p: 展开历史参数成多行,但不存在历史列表中
  • -s: 展开历史参数成一行,附加在历史列表后

📑4.3.1 调用命令行历史

#重复前一个命令方法
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
!n 执行history命令输出对应序号n的命令

history:默认记录1000条记录


📜4.4 bash的快捷键

课本介绍:

image-20210325104735004\

扩展:

Ctrl + l 清屏,相当于clear命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出,解锁
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Ctrl + xx 光标在命令行首和光标之间移动
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Alt + Backspace 删除左边单词
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + # 提示输入指定字符后,重复显示该字符#次

注意:Alt组合快捷键经常和其它软件冲突

范例:xshell中启动 alt 键

image-20210325104940310\


💡总结

  • 介绍如何在命令行里执行命令。
  • 善用tab补全。
  • 了解命令行历史和bash快捷键。

RHCSA认证作为基础认证,涉及的基础内容需要大家好好进行学习并巩固。有良好的基础才能更上一层楼。
好好加油,可以噶🤪。

以上就是【金鱼哥】对 第四章 访问命令行 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾 红帽认证专栏系列:
RHCSA专栏: 戏说 RHCSA 认证
RHCE专栏: 戏说 RHCE 认证
此文章收录在RHCA专栏: RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

目录
相关文章
|
运维 Shell Linux
|
运维 安全 Linux
|
运维 监控 安全
|
运维 项目管理
金鱼哥戏说RHCE认证:实施Playbook--剧本的简介与初步运用
第三章 实施Playbook--剧本的简介与初步运用
156 0
金鱼哥戏说RHCE认证:实施Playbook--剧本的简介与初步运用
|
运维 监控 网络协议
|
运维 监控 测试技术
|
存储 缓存 运维
|
运维 监控 安全
|
运维 监控 网络协议