加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

2.8-bash环境配置及脚本

发布时间:2020-12-15 09:21:12 所属栏目:安全 来源:网络整理
导读:bash的配置文件 按生效范围划分:存在两类 全局配置: /etc/profile /etc/profile.d/*.sh /etc/bashrc 个人配置: ~/.bash_profile ~/.bashrc 按功能划分,存在两类: profile类:为交互式登录的shell提供配置 全局:/etc/profile,/etc/profile.d/*.sh 个人

bash的配置文件

按生效范围划分:存在两类

全局配置:

/etc/profile

/etc/profile.d/*.sh

/etc/bashrc

个人配置:

~/.bash_profile

~/.bashrc


按功能划分,存在两类:

profile类:为交互式登录的shell提供配置

全局:/etc/profile,/etc/profile.d/*.sh

个人:~/.bash_profile

功用:

1.用于定义环境变量

2.运行命令或脚本

bashrc类:为非交互式登录的shell提供配置

全局:/etc/bashrc

个人:~/.bashrc

功用:

1.定义命令别名

2.定义本地变量


shell登录:

交互式登录:

1.直接通过终端输入账号密码登录

2.使用"su - username"或"su -l username"切换的用户

读取顺序

/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非交互式登录:

1.su username

2.图形界面下打开的终端

3.执行脚本

~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh


编辑配置文件定义的新配置的生效方式:

1.重新启动shell进程

2.使用source或.命令进程

Note:使用source或.执行会有些副作用,比如设定在~/.bash_profile中的个人环境变量会重复赋值


bash中的算数运算

+,-,*,/,%,**......

# help let

实现算术运算:

1.let var=算式表达式

2.var=$[算术表达式]

3.var=$((算术表达式))

4.var=$(expr arg1 arg2...)

乘法符号须转义 例如:mul=$(expr $num1 * $num2)

bash有内建的随机数生成器:$RANDOM(生成1-32767的随机数)

增强型赋值:

+=,-=,*=,/=,%=

let varOPERvalue

例如:

count=$[$count+1]可以写成let count+=1或count++

自增,自减

let var+=1

let var++

let var-=1

let var--


练习1:写一个脚本

计算/etc/passwd文件中的第10个用户和第20个用户的ID之和

练习2:写一个脚本

传递两个文件路径路径作为参数给脚本,计算这两个文件中所有空白行之和

练习3:统计/etc,/var,/usr目录共有多少个一级子目录和文件


条件测试:

判断某需求是否满足,需要由测试机制来实现:

Note:专用的测试表达式需要由测试命令辅助完成测试过程

测试命令:

test EXPRESSION

[ EXPRESSION ]

[[ EXPRESSION ]]

Note:EXPRESSION前后必须有空白字符

bash的测试类型:

数值测试:

-gt:是否大于

-ge:是否大于等于

-eq:是否等于

-ne:是否不等于

-lt:是否小于

-le:是否小于等于

字符串测试:

==/=:是否等于

>:是否大于

<:是否小于

!=:是否不等于

=~:左侧的字符串是否能够被右侧的PATTERN所匹配到

Note:此表达式一般用于[[ ]]中

-z "STRING":测试字符串是否为空,空则为真,不空则为假

-n "STRING":测试字符串是否不空,不空为真,空则为假

Note:用于字符串比较时用到的字符串要使用引号


bash自定义退出状态码

exit [n]:自定义退出状态码

注意1:脚本中一旦遇到exit命令,脚本会立即终止,终止退出状态取决于exit命令后面的数字

注意2:如果未给脚本指定退出状态码,整个脚本的退出状态码取决于脚本中执行的最后一条命令的状态码


练习:写一个脚本

接受一个文件路径作为参数:

如果参数个数小于1,则提示用户“至少应该给一个参数”,并立即退出

如果参数不小于1,则显示第一个参数所指向的文件的空白行数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读