学习目标
1、什么是Shell?
Shell是外壳的意思,就是操作系统的外壳。我们可以通过Shell命令来操作和控制操作系统,与操作系统内核通信,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。
Shell在操作系统中的定位:
2、什么是Shell脚本?
Shell脚本就是由Shell命令组成的文件,这些命令都是可执行程序的名字,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。
3、操作系统支持哪几种shell?
我们可以通过 /etc/shells 文件,查看操作系统支持的shell.
Linux默认使用bash
用户默认会取得哪个shell?当用户登陆时,系统自动分配shell给用户来进行工作,而登陆取得的shell记录在/etc/passwd文件 .
如上图所示,在每一行的最后一个数据,即位登陆后默认取得的shell .
4、bash有什么好处?Linux为什么使用它作为默认的shell?
- 命令记忆力好(history)
bash中的历史命令记录在用户主文件夹 .bash_history 中,不过 ~./bash_history记录的是前一次登陆以前所执行过的命令,而至于这一次登陆所执行的命令都被暂存在临时内存中,当成功注销系统后,该命令记忆才会记录到 .bash_history 当中。 - 命令与文件补全功能([Tab]键)
- 命令别名设置功能(alias)
在命令行输入 alias ,即可知道目前的命令别名
也可直接执行命令来设置别名:
alias lm='ls-al' ##以自定义lm命令替换ls-al命令
- 作业控制、前台、后台控制(job control,foreground,background)
- 程序脚本(shell script)
- 通配符(Wildcard)
除完整的字符串外,bash还支持许多通配符来帮助用户查询与命令执行。
例如,使用 ls -l /usr/bin/X* 查询/usr/bin 下有多少以 X 开头的文件。
5、如何执行shell脚本?
首先创建shell脚本 script.sh
[root@desktop5 mnt]# vim script.sh
#!/bin/bash
echo hello linux
- 第一种执行方式(无执行权限,用sh调用)
[root@desktop5 mnt]# sh script.sh
- 第二种执行方式
[root@desktop5 mnt]# ./script.sh
- 第三种执行方式(有执行权限,用绝对路径调用)
[root@desktop5 mnt]# chmod +x script.sh
[root@desktop5 mnt]# /mnt/script.sh
三种执行方式的区别:
- 第一种方式,使用/bin/sh所指向的shell解释器来执行脚本文件
- 第二种方式,它默认使用/bin/sh所指向的shell解释器来执行脚本文件,前提是脚本文件中未指定解释器。但如果在脚本文件中指定了使用某种脚本解释器,那么它就使用脚本文件中所制定的那个脚本解释器。
在脚本文件中指定脚本解释器: #!/bin/bash - 、第三种方式,选择使用的脚本解释器同第二种方式。