本系列文章为尚硅谷武晟然老师的Linux入门教程学习笔记,前面的系列文章链接如下
Linux入门教程:P3->Linux文件系统
Linux入门教程:P4->Vim编辑器
Linux入门教程:P5->网络配置
Linux入门教程:P6->系统管理
文章目录
一、Shell介绍
Shell的定义
Shell可以看作是一个命令解释器,为我们提供了交互式的文本控制台界面。我们可以
通过终端控制台来输入命令,由Shell进行解释并最终交给内核执行。所以Shell其实就是连接外部应用和Linux内核的一个桥梁,也是我们在Linux系统上执行操作的主要手段。
Shell的由来
在Linux中,Shell的具体实现可以多种多样。在当前Centos7中,bin下面有一个叫做sh的命令,它就是整个shell命令的入口。控制台交互式界面中执行的就是这个sh命令。
Unix的Shell版本
Linux源于Unix,Unix中最早的解释执行程序叫做Bourne Shell。它的功能非常强大,可以进行非常灵活的编程,但是它和用户的交互就较差。
Linux的Shell来源
Linux在Bourne Shell的基础上发展出了一个新的Shell控制终端,叫做Bourne Again Shell。然后截取了它的几个首字母,B、a、sh,所以大多数Linux发行版用的Shell就叫做Bash Shell。
Bash Shell的一些改进
Bash Shell的功很多,整体就显得比较臃肿复杂,所以一些发行版对Bash Shell做了一些简化。Debian系列的Linux发行版本,如Ubuntu,自6.4版本后用的shell解释器叫做Dash。
sh
前面我们发现sh图标有一个小箭头,我们看一下它的属性就会发现其实是链接到了bash,所以在centos7下边默认的shell工具其实就是bash。
测试:
我们是通过ls -l /bin/ | grep sh
命令,去bin目录下筛选出带着sh的项目,然后每一个都用一行把它的完整信息列举出来。在这里也可以看到sh链接的就是bash。
man
man是manual的缩写,就是我们的命令手册。它里边的内容非常丰富,几乎包含了Linux使用的方方面面的问题。
示例:
我们通过man ls
来查看ls的具体用法:
①NAME:说明ls这个命令要做的事就是列出目录下的内容
②提要:当前命令的基本使用语法。首先ls,然后可以给出各种各样的选项(这个选项一般就是后面要加一个杠,然后给一个参数),最后面可以加上文件名。
③描述:列出了所有参数的含义,这部分基本上就包含了这条命令的所有用法。
翻页等操作:用上、下键头可以一行一行挪动。
----如果我们嫌这个挪得太慢的话,直接按空格进行翻页。和可以按Page Down和Page Up向下、向上翻页。
----还可以通过快捷键F朝下翻页,B朝上翻页
退出:q
外部命令与内置命令
我们
man cd
查看cd的用法,进来后会发现这是对bash的解释。
这是因为一部分基础功能的系统命令是直接内嵌在shell中的,系统加载启动之后会随着 shell一起加载,常驻系统内存中。这部分命令被称为内置(built-in)命令;相应的其它命令被称为外部命令
判断一个命令是内嵌命令还是外部命令:type 命令
。
可以看到cd是内置命令,就会有相应提示。
可以看到ls不是内置命令,就不会有相应提示。
history命令:列举出我们敲过的命令
我们可以看到history是内置命令
查看内置命令的方法:
直接在man和命令中间加上-f即可:
man -f 命令
。
我们可以看出cd的描述如下。man手册是分册来管理,所以cd在第1册、3tcl册、1p册中均有描述。其中,1p的p代表POSIX标准,代表IEEE提出的开发可移植操作系统接口的标准。
现在通过man 1p cd
去看cd的描述,全是英文
再去man 3tcl cd
,可以看到有中文了
简化版的命令查询
man本身也是一个命令,我们直接
man man
可以看到内容非常复杂,有时候我们只是想看命令的那参数怎么用的。
可以使用help 命令
,但是只能查询shell内置命令的帮助信息。比如我们这里看cd命令的用法,很简洁。
如果看ls,则会报错
查询外部命令的简介用法:命令 --help
Shell中常用的快捷键
①ctrl + c:停止进程
②ctrl+l:清屏,等同于 clear。这种方式其实本质上并不是清屏,它只是把显示界面往上推了一下而已。
③彻底清屏:reset。这种方式本质上是把当前的shell环境全部重新启动,这个时候你要再往上翻就没有了。
④善于用tab
键提示(更重要的是可以防止敲错)
⑤上下键
查找执行过的命令