自动化运维快速学习笔记(一)

自动化运维

一天半---》shell语法  运行机制  常见应用

一天半---》实现一个代码发布的案例

1 shell

1运维简介:

除了功能开发之外的所有活动都跟运维有关

2 自动化运维:

自动化实现运维活动

一般用shell脚本实现自动化

3 shell就是命令解释

位于应用程序和操作系统之间

4 shell分类:

一般而言:shell就是命令行shell(linux下shell(bash))

5 查看当前系统shell版本

echo $SHELL

6 查看系统兼容性支持的shell类型们:

cat /etc/shells

7 shell脚本:

命令放到文件中执行,该文件称为shell脚本

8 脚本创建

1 用记事本写(要求用vim)

2 脚本命名:1 名称有意义 2 .sh结尾

3 脚本内容:首行要指定脚本解释器

4 注释:单行注释和python一样,多行注释::<<字符 ... 字符(将注释内容重定向到啥都不干)

9 脚本执行

1 bash 脚本名(启动子shell,在子shell中执行脚本内命令)

2 ./脚本名 (启动子shell(名字叫脚本名), 在子shell中执行脚本内命令)

3 source 脚本名(类似python import 模块) (直接在当前shell内执行脚本内命令)

10 开发规范

1 不要用中文注释

2 成对内容一次性写

3 适当缩进(仿照python风格)

11 变量定义

普通变量

1 变量名=变量值 (变量值不能有特殊字符)

2 变量名='变量值' (变量值作为整体赋值)

3 变量名="变量值" (变量套变量)

命令变量(将命令的输出作为变量值赋给变量名)

变量名=`命令`

变量名=$(命令)

变量值不会随着命令输出的改变而改变

12 变量访问

1 ​ $变量名

2 ​ "$变量名" (保证变量值是字符串)

3 ${变量名} (限定变量名访问)

4  "${变量名}" (推荐形式)

unset 变量名 (删除变量)

13 变量分类:

本地变量(哪里定义哪里访问)

全局变量(环境变量)

1 查看当前全局变量:

env

2 定义:

变量名=值

export 变量

(先定义后转换)

export 变量名=值 (二合一)

3 生效范围

当前shell和子shell(子shell继承父shell的全局变量)

若想让所有环境生效:

1 修改~/.bashrc (只对当前用户生效,source执行该文件或重新打开新shell生效)

2 修改/etc/profile (所有用户都生效,source执行该文件或重启生效)

内置变量

1脚本相关

$0 当前脚本名

$$ 指向该脚本的进程号

$n 脚本的第n个参数(脚本传参:脚本名  s g b )

$# 参数个数

$? 上一条命令是否执行成功(0-成功,非0-失败,,若上一条命令是执行脚本,则获取脚本最后一条命令的返回值)

2 字符串截取

${变量名:起始位置:截取长度}

(倒着截要写0-X)

3 默认值

${变量名:-默认值} (若变量不存在则输出默认值)

${变量名:+提示信息} (若变量存在则输出提示信息)

14 表达式

逻辑转成控制

1 测试语句

test 条件

[ 条件 ] (括号内侧两边各有一个空格)

1 数值比较 (比较操作符两边各有一个空格)

n1 -eq n2 相等

n1 -gt n2 大于

n1 -ge n2 大于等于

n1 -lt n2 小于

n1 -le n2 小于等于

n1 -ne n2 不等于

2 字符串比较

== != (两边有空格)

2 逻辑表达式

命令1 && 命令2 (1成功则执行2)

命令1 || 命令2 (1失败则执行2)

3 文件表达式

-f 判断是否是文件

-d 判断是否是目录

-x 判断是否有可执行权限(目录可执行)

4 计算表达式

$((计算过程))

let 等式

15 常见符号

1 重定向

应用程序的输出:

1标准输出(正常执行时的输出)

2标准错误(异常执行时的输出)

分别重定向:

bash 6-chongdingxiang.sh > res.log 2> err.log

合并重定向:

bash 6-chongdingxiang.sh > res.log 2>&1

丢弃:

bash 6-chongdingxiang.sh > /dev/null 2>&1

2 管道符

命令1 | 命令2

(命令1的输出作为命令2的输入)

3 后台展示符

命令 &

(命令放到终端后台运行)

16 常用命令

1 grep(搜索命令)

grep -rn  bash .

(递归当前目录以及子目录下所有文件,搜索包含bash的行以及行号)

2 find (查找文件)

find . -name *chong*

(在当前目录以及子目录查找名称大概是chong的文件)

3 sed

-i参数代表修改源文件

替换:

sed -i  "2s#sed#SED#1" sed.txt

("2(第二行)s替换#sed(原内容)#SED(替换后内容)#1(第1个找到的做替换---》g代表全部替换)")

增加:

sed "2a\hello" sed.txt

"2(第二行)a(下方增加)\hello(增加的内容)"

sed "4i\world" sed.txt

"4(第四行)i(上方增加)\world(增加的内容)"

删除:

sed "3(第三行)d(删除)" sed.txt

4 awk

awk '{print $1,$3}' awk.txt

打印awk.txt文件中每一行的第1列和第3列,并且用空格分割

内置变量:

FILENAME:文件名

NR:行号

awk 'NR==2 {print $2}' awk.txt

(只处理第2行)

NF:列数

awk '{print $NF}' awk.txt

(打印最后一列)

FS:指定行分隔符

awk 'BEGIN{FS="awk"} {print $3}' awk.txt

(指定行分隔符为awk)

awk -F "awk" ' {print $3,$1}' awk.txt

(-F 更常用)

OFS:指定多个输出的连接符

awk -F "awk" 'BEGIN{OFS="->"} {print $3,$1}' awk.txt

(指定第三列和第一列直接的连接符是->)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,204评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,091评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,548评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,657评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,689评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,554评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,302评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,216评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,661评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,851评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,977评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,697评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,306评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,898评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,019评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,138评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,927评论 2 355

推荐阅读更多精彩内容

  • 什么是运维 术语名词 IDC--(Internet Data Center)互联网数据中心,主要服务包括整机租用、...
    lyh165阅读 2,705评论 0 19
  • 第 2 章 SHELL 基础知识2.1 shell脚本我们在上面简单介绍了一下什么是shell脚本,现在我们来进一...
    LiWei_9e4b阅读 1,571评论 0 0
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,096评论 0 0
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,100评论 1 19
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,168评论 2 33