Linux shell
概述
Shell 是一个应用程序,它连接了用户和操作系统的内核,让用户高效,安全,低成本地使用操作系统内核
影响力最大的就是bash
[root@chz Desktop]# echo $SHELL
/bin/bash
linux中的一个terminal窗口也可以叫做TTY(teletype printer)
内部命令VS外部命令
-
内部命令:内置在shell中命令,执行不会产生子进程
-
外部命令:某个【可执行文件】,会产生子进程
我们可以通过whereis 命令名称
来判断,某个命令是否为“外部命令”
如果某个命令能找到对应的可执行文件,就是"外部命令",反之就是“内部命令”
通配符
shell中支持wildcard(通配符),用来模糊匹配,*匹配多个字符,?匹配单一字符
[root@chz Desktop]# find test*
test
test.bak
test.ttt
特殊符号
-
~
当前用户的家目录
-
/
根目录
别名/alias
为一个命令设置一个别名,当tty关闭时就会失效,可以通过配置设置为永久生效
[root@chz Desktop]# alias wm='whereis mysql'
[root@chz Desktop]# wm
mysql: /usr/lib64/mysql /usr/share/mysql
历史命令
大部分shell都会记录历史命令。可以通过键盘的【向上】方向键
自动补全
多数shell都具备自动补全
Shell VS Terminal
在linux中,Shell可以与Terminal一一对应,也可以是一个Shell的子Shell
Terminal(tty)
- GUI软件界面,接收输入,显示输出
Shell
- 操作计算机内核,可以理解为Terminal与kernel的代理
graph LR
Terminal --> Shell --> kernel