Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面
系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell的分类
Bourne Shell
C Shell
脚本执行
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
通过Bash调用执行脚本
bash hello.sh
命令别名
alias 别名='原命令'
多命令顺序执行
;
&&
||
dd命令
磁盘复制
管道符
命令1 | 命令 2
搜索
grep[选项]"搜索内容"
通配符
? :匹配一个任意字符
* :匹配0个或任意多个任意字符,也就是可以匹配任何内容
[]
[-]
[^]
Bash其他特殊符号
'' :单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。
"" : 双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、
“引用命令”和“转义符”的特殊含义。
`` :反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样,
不过推荐使用$(),因为反引号非常容易看错。
$() :和反引号作用一样,用来引用系统命令。
$ :用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
变量设置规则
变量分类
用户自定义变量
环境变量:这种变量中主要保存的是和系统操作环境相关的数据。
位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变
量作用是固定的。
预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。
变量定义
name="LWJ"
变量叠加
aa=123
aa="$aa"456 或者 aa=${aa}789
变量调用
echo $name
变量查看
set
变量删除
unset name
设置环境变量
export 变量名=变量值
查询变量
env
删除变量
unset
位置参数变量
$n:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要用大括号
包含,如${10}
$*:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$#:这个变量代表命令行中所有参数的个数
预定义变量
$?:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果
这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
$$:当前进程的进程号(PID)
$!:后台运行的最后一个进程的进程号(PID)