- 什么是shell
- shell是一个用C语言编写的程序,用户使用Linux的桥梁。shell既是有一种命令语言,又是一种设计语言。
- shell是一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统
- 什么是脚本
- 脚本简单的说是一条条的文本命令,这些文字命令是可以看到的。
- 常见的脚本:js,vbscript,asp,jsp,phpshell,perl,python
- 为什么要学习和使用shell
- shell属于内置的脚本——语法简单易学
- 常见的shell的种类
- 重点:bash:/bin/bash
- Cshell:使用类C语法进行编写
- Kshell:内部命令较少
- tcshell:cshell的增强版
- zshell:更庞大更复杂
- shell入门
- 编码规范:
- 代码规范
- #!/bin/bash
- shell相关指令
- 文件命名规范
- 文件名.sh
- hello World
- echo ’hello world‘
- 执行脚本
- 需要给出路径位置,搜则默认去环境变量中找
- 例:./test.sh
- 执行脚本的另一种方式
- /bin/bash 脚本路径
- 代码规范
- 编码规范:
- shell进阶
- 1.变量
- 变量的含义——会发生改变的数据
- 定义变量:变量名=值
- 引用:$变量名
- 案例:class=“yunwei”;echo $class;
- 命名规范
- 注:变量名赋值时等号前后不能有空格
- 命名只能使用数字、字母和_,不能以数字开头
- 不可以使用bash的保留字作为变量
- 单双引号:
- 单引号:不能识别变量和转义符,把里面的内容原样输出
- 双引号:能识别变量和转义符
- 反引号:能够识别引号内的命令
- 只读变量(相当于常量)
- readonly 变量名
- 在修改只读变量时会发出提示。
- 接收用户输入(重点)
- 语法:read -p “提示信息” 接受数据的变量名
- 在shell脚本执行过程中,脚本中的一些数据可以是在脚本和用户交互的过程中,由用户提供的。
- 语法:read -p “提示信息” 接受数据的变量名
- 删除变量
- unset 变量名
- unset 变量名
- 条件判断语句
- 语法1:(一个条件)
- 语法2:(两个条件)
- 语法3:(多个条件)
- 语法1:(一个条件)
- 运算符
- 算术运算符
- !=:不相等
- 乘号在Linux中是通配符,所以需要用“\”进行转义
- 额外:echo同时并列输出多个变量是可以不添加连接符
- 注:if语句的条件表达式放在方括号之间,并且要用空格隔开 ,并且在进行表达式计算时要使用expr
- 关系运算符
- 相等 -eq(equals):两数相等为真不等为假
- 不等 -ne(no equals):两数相等为假,不等为真
- 大于 -gt
- 小于 -lt
- 大于等于 -ge
- 小于等于 -le
- 案例:
- 逻辑运算符
- 与(-a):全为真才是真
- 或(-o):有一个真就是真
- 非(!):非假则为真
- 案例:
- 字符串运算符
- =:检测字符串是否相等,相等为真
- !=:检测字符串是否不等,不等为真
- -Z:检测字符串长度是否为0,为0 则为真
- -n:检测字符串的长度是否为0 ,不为0则为真
- str:检测字符串是否为空,空返回假,非空则返回真
- 实例:[ $a ],a有值为真,无值为假
- 案例:
- 实验:双等号和-eq比较字符串是否相等(双等可以,-eq会提示输入数字并输出flase)
- 文件测试运算符(重点)
- 文件测试元素安抚用于检测Unix、Linux文件的各种属性。
- -b file:检测文件是否为块设备文件,是为TRUE
- -d file:检测文件是否为目录,是为TRUE
- -f file:检测文件是否为普通文件,是为TRUE
- -r file:检测文件是否为可读文件,是为TRUE
- -w file:检测文件是否为可写文件,是为TRUE
- -x file:检测文件是否为可执行文件,是为TRUE
- -e file:检测文件是否存在,是为TRUE
- -s file:检测文件是否为空,是为TRUE
- 文件测试元素安抚用于检测Unix、Linux文件的各种属性。
- 算术运算符
- 变量的含义——会发生改变的数据
- shell脚本附带选项(重点)
- Linux shell如何处理tail -10 access.log
- 步骤 :调用tail指令——》系统把后续选项传递给tail——》tail先去打开指定的文件——》取出最后10行
- 问题:自己写的shell是否也可以像内置命令一样传递一些选项呢?
- 可以,传递方式与上述的描述是一样的,关键是怎么接收
- 案例:
- 传递:./test.sh a b c
- 接收:在脚本中可以用“$1”来表示a,以此类推。
- 接收可以用“$”加上选项对应的序号即可。
- Linux shell如何处理tail -10 access.log
- 1.变量
SHELL基础
最新推荐文章于 2024-01-23 00:53:18 发布