shell基础知识
- shell的定义:linux shell就是我们输入命令的命令行,他的作用就是将我们输入的命令解释成内核可以识别的代码(0或1),shell可以直接调用linux系统命令,也是一门脚本语言,可以把linux的命令写成一个脚本(shell 脚本)达到自动化运维的目的,shell脚本其实就是一组命令的集合,里面也可以有判断,函数,数组,循环等功能,是一个简单的脚本编程语言。
- shell 大致分为“Bourne Shell”,“C Shell”这两种shell的语法彼此不兼容,C Shell 主要在BSD版本的Unix系统中使用,语法和C语言相类似。Bourne家族主要包括sh ksh Bash pah zsh这些。C家族主要包括 csh 和tcsh。我们linux中使用的是Bourne家族中的Bash。
- 我们的linux默认支持的shell可以查看“/etc/shells”文件,文件里面每行就代表一种shell。我们可以在命令行直接输入文件里面的每一行的内容,就可以切换到指定shell,输入exit,可以退出返回到我们的上一个shell中。在这个文件里面有个“/sbin/nologin”这个和“/etc/passwd”文件中的很多用户的最后很相似,第7列的意思是用户登录到linux系统中的权限,如果这里是“/sbin/nologin”那就代表不允许登录,如果是“/bin/bash”就代表登录后可以使用权限范围内的bash的所有功能,如果是类似于“/sbin/shutdown”代表这个用户只能执行“/sbin/shutdown”这条命令
Shell脚本的执行
- 赋予执行权限(x权限),直接运行,如果script.sh在root根目录。当前shell目录也在root根目录下面
a) chmod 755 script.sh
b) ./script.sh
c) 还可以绝对路径执行 /root/ script.sh - 通过bash调用执行脚本(推荐)
a) bash script.sh
b) sh scritp.sh