前期理解
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
我的理解就是shell脚本就是用户对于电脑进行指定动作的一个功能,功能不尽相同,而shell脚本也不尽相同。但殊途同归我们可以使用shell脚本帮助我们更加快速和便捷的完成工作,可以完成大量重复性工作,或者非交互的完成我们的工作,可以交给shell脚本来实现我们想要的结果。换句话说就是能够更快的完成工作。
shell脚本的分类
有sh、bash、csh、tcsh、ash 等
查看本机有哪些shell脚本
命令
cat /etc/shells
本人使用的是Centos stream 9 最小化安装环境
查看当前用户默认的shell
[root@LDP ~]# echo $SHELL
/bin/bash
执行脚本的五种方式
绝对路径 或者相对路径
绝对路径
使用脚本的绝对路径来执行该脚本,但是需要增加可执行的权限
[root@localhosts ~]# cat 1.sh
echo "Hello World"
[root@localhosts ~]# ls -lhrt 1.sh
-rw-r--r-- 1 root root 19 3月 11 20:10 1.sh
可以看到该脚本没有可执行的权限
所以使用绝对路径执行的化,没有权限,如下图显示
[root@localhosts ~]# /root/1.sh
-bash: /root/1.sh: 权限不够
所以需要增加权限
[root@localhosts ~]# chmod +x 1.sh
[root@localhosts ~]# ll
总用量 8
-rwxr-xr-x 1 root root 19 3月 11 20:10 1.sh
再次执行
[root@localhosts ~]# /root/1.sh
Hello World
显示执行成功
相对路径
使用./的方式代表当前目录下的1.sh这个脚本。
[root@localhosts ~]# cat 1.sh
echo "Hello World"
[root@localhosts ~]# ./1.sh
Hello World
sh或者bash执行
建议使用bash
[root@localhosts ~]# sh 1.sh
Hello World
[root@localhosts ~]# bash 1.sh
Hello World
使用. 空格执行
不需要增加权限
[root@localhosts ~]# . 1.sh
Hello World
可以结合绝对路径使用
[root@localhosts /]# . /root/1.sh
Hello World
使用source执行
[root@localhosts /]# source /root/1.sh
Hello World