shell介绍

shell简介

Shell是一种命令行解释器,是用户和和操作系统沟通的桥梁,想象下,如果把操作系统内核比作人的大脑,那么shell就像人的躯壳,通过眼口等与外界交流信息。
Shell它接受来自用户输入的命令,然后将这些命令转化成一系列的系统调用送到内核执行,最后将结果输出给用户

Shell不只是一种解释器,还是一种编程工具,称为脚本语言
编译型语言
编译工具先将程序编译成机器认识的可执行文件,(比如Windows下的exe文件,Linux下的二进制可执行文件),之后运行时直接运行编译后的文件,因此一般来说编译型语言执行速度较高,常见的编译型语言有:C/C++、Java

 

解释型语言
解释型语言是运行时翻译,执行一条语句就立即翻译一条,而且每次执行程序都需要进行解释。

 

交互模式
和Python类似,shell也有交互模式,其实在我们使用远程连接工具连接Linux时,就是进入了shell交互模式

脚本模式
将要执行的命令都放在一个文件中,然后由Bash Shell读取并执行
#!/bin/bash
# this is a test
echo 'hello world'
第一行
Shell脚本的第一行最好是以 "#!" 开头,这个是脚本开始的标记,告诉系统执行使用某个解释器,后面的路径指示具体的路径
第二行
这行是一个注释
第三行
一个简单的输出命令

运行Shell脚本

第一种:将脚本作为命令行参数
bash test.sh
或者完成路径:
bash /home/pyvip/test.sh

第二种:脚本独立运行
在脚本第一行添加:
#!/bin/bash
给脚本添加可执行权限:
chmod 744 test.sh
运行:
./test.sh

命令行参数形式
这种形式可以不用给脚本添加可执行权限,可以直接运行,一般自己写的shell脚本会采用这种形式来运行
独立运行
这种形式需要脚本拥有可执行权限,如果没有,需要添加执行权限

Shell变量
Shell中的变量和Python中的变量类似,无需指定变量类型
变量命名
Shell中的变量必须以字母或者下划线开头,后面可以跟数字、字母和下划线,在shell中变量区分大小写
变量赋值
Shell中变量的赋值十分简单,直接“ 变量名=变量值 ”,尤其要注意的是在shell中“=”号两边没有空格

变量的取值
在shell中要使用shell,直接调用变量名是得不到变量值的,需要在变量名面前加上 $ 符号,当然更加严谨的做法是使用: ${}

局部变量
局部变量就是值在某个shell中生效的变量,不会影响其他的shell

环境变量
环境变量又称为“全局变量”,在shell脚本中,默认变量就是全局的。
环境变量可以用在创建变量的shell和从该shell派生的任意子shell或进程中。
在Bash中有很多的预设环境变量

取消变量
在shell中,对于已经定义好的变量,如果想取消这个变量,需要使用 unset 命令

Shell中还有一些特殊的变量,灵活使用这些特殊的变量,可以让shell脚本更加灵活
位置参数
Shell中有一些预先定义的特殊只读变量,他们的值只有在脚本运行时才能确定,位置参数就是其中的一种,$0代表脚本本身,$1代表第一个参数,依次类推

脚本或命令返回值:$?
在shell中,任何一个命令执行过后都会有一个返回值,这个返回值会指示上个命令的执行状态,通过返回值就可以知道上一个命令是否正确执行

Shell的内建命令

Shell内建命令,就是由Bash自身提供的命令,而不是其他地方提供的可执行文件
例如:cd

除了这些内建命令之外,常见的还有:echo exit export kill pwd 等

posted @ 2018-08-06 21:16  purplelavender  阅读(361)  评论(0编辑  收藏  举报