1.什么是Bash shell(壳)
Bash Shell是一个命令解释器,它在操作系统的最外层,负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给操作系统,并将处理后的结果输出至屏幕。
通过xshell连接,就是打开了一个bash程序的窗口,不能点鼠标,只能输入命令
当我们使用远程连接工具连接linux服务,系统则会给打开一个默认的shell,我们可在这个界面执行命令、比如:获取系统当前时间,创建一个用户等等…
2.Bash Shell能干什么?
使用Shell实现对Linux系统的大部分管理,例如:
1.文件管理(文件创建,移动,复制,删除,编辑…)
2.权限管理(不同用户不通权限)
3.用户管理(创建,删除….)
4.磁盘管理(挂载)
5.网络管理
6.软件管理
.等等.
3.平时我们如何使用Shell呢?
输入命令 –> 效率低 –>适合少量的工作
Shell Script –> 效率高–>适合复杂重复性的工作
例如:创建100个用户,单纯输入命令需要执行100次,而Shell脚本只需要几行命令即可完成100个用户的创建
1 | vim test.sh |
4.Shell提示符
1 | # $ = 普通用户, # = root用户(超级管理员) |
5.Shell基础语法
命令行bash shell, 为用户提供输入, 执行命令的界面
1 | #命令 选项 参数 |
2.Bash Shell基本特性
1.命令补全
当使用windows查找一个目录层级特别多的文件时,打开的效率会非常的慢,但如果使用linux查找一个目录层级特别多的文件时,可以通过tab键快速的补全
PS: tab键可以实现命令补全,路径补全,在实际生产中tab补全往往是我们使用的最多的, 因为可以减少执行命令以及路径出错率。
1 | # yum provides ifconfig |
2.命令快捷键,快捷键可以帮助我们大大提升工作效率
1 | Ctrl + a #光标跳转至正在输入的命令行的首部 |
3.历史命令History, 追溯之前发生情况
-w 保存命令历史到历史文件
-c 清空命令历史记录, 不会情况文件
-d 删除命令历史的第 N 条行
1 | #1.使用双 !! 可执行上一条执行过的命令 |
3.命令别名
命令别名将用户经常使用的复杂命令简单化, 可以用"alias 别名名称=命令"
命令创建属于自己的命令别名, 若要取消一个命令别名,则是用unalias 别名名称
命令。
1 | #1.定义临时别名, wk为查看eth0网卡别名 |
3.Bash Shell获取帮助
1.命令 –help帮助
1 | [root@lqz ~]# ls --help |
2.命令 man手册
1 | # man ls #查看ls命令的手册 |
3.linux命令大全url传送门
linux命令大全
linux命令手册
4.Bash Shell命令流程
1.当我们执行一个命令, 整个命令执行流程如下:
- 判断命令是否通过绝对路径执行
- 判断命令是否存在alias别名
- 判断用户输入的是内部命令还是外部命令
- Bash内部命令直接执行,外部命令检测是否存在缓存
- 通过PATH路径查找命令,有执行,无报错
2.什么是内部命令,什么是外部命令
内部命令: shell程序自带的命令。
外部命令: 在系统PATH变量的某个路径下的可执行程序。
3.如何检查用户输入的命令是内部命令还是外部命令
1 | #cd命令属于shell内部命令 |
4.如果是外置命令,Bash可以通过查找PATH变量,获取该命令的绝对路径。
1 | #打印当前环境变量目录 |
PS: PATH由多个路径组成,每个路径值之间用冒号间隔,对这些路径的增加和删除操作都将影响到Bash解释器对Linux命令的查找
5.如果是外置命令还会涉及到一个内存缓存,也就是说,当我们出现重复执行相同的命令,会通过缓存调取执行,也就意味着不会搜索PATH路径。
1 | #表缓存命令所在位置 |
6.命令执行流程总结: 当我们执行了一个ping
命令之后, 整个命令执行的流程步骤如下:
- 检查执行的命令是否使用的是绝对路径执行的。
- 检查ping命令是否存在alias别名
- 检查ping命令是内部命令还是外部命令
- 如果是内部命令Bash直接执行,如果是外部命令,首先检查Hash缓存,存在则直接调取
- 如果该命令不存在Hash缓存,则通过PATH路径进行逐行查找该命令所在的位置
- 如果PATH路径没有查找到该命令所在的路径,则返回错误码。command not found
点击上方按钮,请我喝杯咖啡!
扫描二维码,分享此文章