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

shell脚本基础

发布时间:2020-12-15 23:26:16 所属栏目:安全 来源:网络整理
导读:? 查看一下系统支持的shell 两种查看方式 ?# chsh -l # cat /etc/shells? 打印当前的shell——ID # echo $$ 打印子shell——ID 本地变量 取消变量 # unset aa ? 环境变量 环境变量可影响子shell 定义环境变量 ? 查看UID、GID 打印path,每个路径都是以冒号隔

?

查看一下系统支持的shell

两种查看方式

?# chsh -l

# cat /etc/shells?

打印当前的shell——ID

# echo $$

打印子shell——ID

本地变量

取消变量

# unset aa

?

环境变量

环境变量可影响子shell

定义环境变量

?

查看UID、GID

打印path,每个路径都是以冒号隔开。

?

su加“-”和不加“-”涉及到家目录和环境变量的问题。加“-”有环境变量。

?不加“-”

$ su root

加“-”

$ su - root

?

?

Linux环境配置文件---------.bashrc文件

.bashrc文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。它是一个隐藏文件,需要使用ls -a来查看。

修改“.bashrc”对当前用户生效

# vi .bashrc

修改“/etc/bashrc”对所有用户生效

# vi /etc/bashrc?

我们敲命令的时候,是需要写这个命令的路径的

如果你没有写路径的话,则会到默认指定的路径里去找

当你登录终端的时候,系统会自动的执行家目录下面的一些隐藏文件.bashxxxx

?

?

?

写、执行脚本的简单举例

?# vi aa.sh

加上可执行权限

?# chmod +x aa.sh

执行脚本

# ./aa.sh

?

?

位置变量

?set设置变量

# set a b c d e f g h i j k l m n

?

?

basename和dirname的区别

?

一个命令中牵扯到另一个命令,另一个命令需要加反引号esc(退出键)下面那个按键``

?

?

echo中的双引号

注意{}和反斜杠

?

echo中的单引号

?

$#和$*

$#判断有多少个参数

$*判断有哪些参数

if条件语句,条件成立,则执行then后面的内容?

if [ 条件 ]? ? ;? ? ? then? ?

?

查看脚本行号

?

?

当我们执行完一个命令之后,这个命令的结果会放在一个地方? $?

正确? ?为0

错误? 为非零

?

2、返回值

利用返回值判断用户是否是否存在

?

?

3、对比

?

进入手册查看

# man test

?

数值对比:

-eq(等于)equal

-gt(大于)greater than

-ge(大于等于)greater equal

-lt(小于)less than

-le(小于等于)less equal

-ne(不等于)not equal

?

条件表达式:

【】 、【【】】? ? ?注:前后要有空格

test? ? ? ? ? ? ? ? ? 注:加测试表达式

?

字符对比

==(等于)

!=(不等于)

【】和【【】】的区别

[ $name == tom ]------------?为通配符

判断是否为纯数字

# [[ $aa =~ ^[0-9]+$ ]]

判断是否具有某个属性

-r? ? ? 测试当前用户是否有权限读取(Read)

-w? ? 测试当前用户是否有权限写入(Write)

-x? ? ?测试当前用户是否有权限执行(eXcute)

-d? ? ?测试是否为目录(Directory)或目录是否存在

-e? ? ?测试目录或文件是否存在(Exist)

-f? ? ?测试是否为文件(File)或文件是否存在

?

?

?

!-----------------取反

连接符:

&&(and)全真为真,一假全假

||(or)

例:一假全假

?

例:全真为真

&&按顺序执行

直到遇到假,执行结束

||(or)一真全真

||(or)全假为假

?||按顺序执行

直到遇到真,执行结束

?

$[]、$(())、expr、let、declare都不能用小数

$[]和$(())用法相同

expr只能做加减运算

let

?

let连加

加号写在后面bb=aa++(先把aa的值,赋值给bb)后加先赋值

加号写在前面bb=++aa(aa先加1再赋值给bb)先加后赋值

?

?

declare定义成整形

?

bc(计算器)

scale小数点后几位

?

如果某个命令需要和用户交互,那么你可以通过echo的方式把要输入的值通过管道发给这个命令。

?

(编辑:李大同)

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

    推荐文章
      热点阅读