SHELL自动化运维day1

一、注释

单行注释:#

多行注释:  :<<! ....!

#!/bin/bash
#单行注释
echo '下一行是多行注释'
:<<!
echo '1'
!
echo '4'
echo "我的脚本名称是:file.sh"
echo "我的脚本名称是:$0"

二、执行脚本

1、执行方式

1.1、bash /path/to /script-name  或 /bin/bash/path/to/script-name(强烈推荐使用)

1.2、/path/to/script-name  或  ./script-name  (当前路径下执行脚本)

1.3、source script-name  或 . script-name(注意‘.’点号),主要用于环境变量一致

2、变量

变量分为本地变量、全局变量、shell内置变量

2.1、本地变量:当前系统的某个环境下才能生效的变量,作用域小

         本地变量分为:普通变量和命令变量。

普通变量:

方式一:变量名=变量值,变量必须是一个整体,中间没有特殊字符

方式二:变量名='变量名',看到什么就输出什么

方式三:变量名="变量值",可以解析变量
命令变量:

方式一:变量名='命令'

方式二:变量名=$(命令)

执行流程:

1、执行‘或者$()范围内的命令

2、将命令执行的结果,赋值给新的变量名

2.2、全局变量

全局变量就是当前系统的所有环境下都能生效的变量

env查看全局变量

定义全局变量的方式:

方式一:变量=值   export 变量

方式二:export 变量=值

2.3、变量查看和取消

查看变量:

方式一:$变量名

方式二:"$变量名"

方式三:${变量名}  使用频率高

方式四:"${变量名}"  标准使用方式

取消变量:unset 变量名

2.4、shell内置变量

$0 :获取当前shell脚本的文件名,也包括脚本路径

$n :获取当前执行shell脚本的第n个参数值,  当n大于10为${10}

#!/bin/bash
# $n 获取第n个位置参数
echo "当前文件名为:$0"
echo "第一个位置参数是:$1"

 

三、shell进阶

可以通过$?判断是否执行成果,0成功,非0失败

A:test条件表达式

B:[ 条件表达式 ]

3.1、条件表达式

&&:命令1 && 命令2。命令1成立,命令2才会执行

[ 1 == 1 ] && echo "hello"

||:命令1 || 命令2。命令1成功,命令2不执行,命令1失败,命令2执行

[ 1 == 2 ] || echo "hello"

 

-f :判断输入内容是否是一个文件

[ -f zhushi.sh ] && echo "是一个文件"

-d:判断文件是否为目录

[ -d aa ] && echo "是一个目录"

-x :判断输入文件是否可执行

[ -x zhushi.sh ] || echo "没有可执行权限"

数值操作符:

字符串比较:

str1 == str2   字符串一直

str1 != str2 不一致

3.2、计算表达式

方式一:$(())

方式二:let 计算表达式:

echo $((100/4))

let i=100/4
echo $i

3.3、linux常见符号

3.3.1、重定向

常见重定向符号>和>>

>符号:将符号左侧的内容,以覆盖的方式输入到右侧文件

echo "nihao" >a.txt

>>符号:追加

echo "nihao" >>a.txt

3.3.2、管道符|

命令1|命令2:管道符左侧命令执行后的结果,传递给右侧命令2使用

env | grep SHELL

3.3.3、后台展示符号 &

&就是将一个命令从前台转到后台执行

sleep 2 &

全部信息符号 :2>&1

1:表示正确输出的信息

2:表示错误的输出信息

/bin/bash ceshi.sh 1>log.txt 2>errorlog.txt
/bin/bash ceshi.sh > log.txt 2>&1

3.3、linux系统垃圾桶

/dev/null 是linux下的一个设备文件

这个文件夹类似于一个垃圾桶,特点是容量无限大

四、常见命令详解

grep、sed、awk、find

4.1、grep

grep是强大的文本搜索命令

-c:只输出匹配的行数

-n:先是匹配行及行号

-v:显示不包含匹配文本的所有行

4.2、sed

sed行文件编辑工具 ,编辑文件以行为单位的

sed -i '1s/a/b/g' a.txt

4.3、awk

可以以行和列为单位处理文件

4.4、find

find [路径] [参数] [关键字]

-name 按照文件名查找

-perm 按照文件权限查找

-user 按照文件属主查找

-group 按照文件所属组来查找文件

-type 查找某类型文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值