GNU sed

日常巡检(脚本)

旧巷老猫 提交于 2021-02-20 05:43:02
#!/bin/bash function system(){ echo "#########################系统信息#########################" OS_TYPE=`uname` OS_VER=`cat /etc/redhat-release` OS_KER=`uname -a|awk '{print $3}'` OS_TIME=`date +%F_%T` OS_RUN_TIME=`uptime |awk '{print $3}'|awk -F, '{print $1}'` OS_LAST_REBOOT_TIME=`who -b|awk '{print $2,$3}'` OS_HOSTNAME=`hostname` echo " 系统类型:$OS_TYPE" echo " 系统版本:$OS_VER" echo " 系统内核:$OS_KER" echo " 当前时间:$OS_TIME" echo " 运行时间:$OS_RUN_TIME" echo "最后重启时间:$OS_LAST_REBOOT_TIME" echo " 本机名称:$OS_HOSTNAME" } system function network(){ echo "#########################网络信息#########################"

Shell运算符

孤街浪徒 提交于 2021-02-18 02:20:46
1)算数运算符 1)常见的算数运算符,如下图: 说明:变量a在运算符之前,输出表达式的值为a,然后a自增或自减;变量a在运算符之后,输出表达式会先自增或自减,表达式的值就是自增或自减后a的值。 常见的命令运算命令,如下图; 我们来实践一下吧, 1 [root@king scripts]# cat test.sh 2 #! /bin/ bash 3 a=$ 1 # 直接把特殊位置参数变量$1赋值给a, 4 b=$ 2 # 并且把特殊位置参数变量$2赋值给b,这样,脚本传参的内容就会赋值给a和b。 5 echo " a-b=$(($a-$b)) " 6 echo " a+b=$(($a+$b)) " 7 echo " a*b=$(($a*$b)) " 8 echo " a/b=$(($a/$b)) " 9 echo " a**b=$(($a**$b)) " 10 echo " a%b=$(($a%$b)) " 11 [root@king scripts]# sh test.sh 6 2 12 a-b= 4 13 a+b= 8 14 a*b= 12 15 a/b= 3 16 a**b= 36 17 a%b= 0 我们来模仿一下计算器吧, 1 #! /bin/ bash 2 #add, subtract, multiply and divide 3 print_usage(){      

git删除本地分支和远程分支

非 Y 不嫁゛ 提交于 2021-02-14 11:56:59
今天准备找以前的一个分支,发现自己本地的分支已经很多了,决定清除一下,然后这里记录一下批量删除分支的命令,免得后面又忘。 说批量之前先说单个的。 删除本地的单个分支 : git branch -d [分支名] 删除远程的单个分支 : git push origin :[分支名] 或者 git push origin -d [分支名] 批量删除本地分支 git branch -a | grep ' lyn_ ' | xargs git branch -D 解释一下:git branch -a(--all)表示列出本地所有分支,grep ‘lyn_’表示正则匹配本地所有分支中分支名有'lyn_'扥分支,然后将以上匹配结果作为参数传给git branch -D,执行删除本地分支命令,‘|’相当于一个管道符,将上一段的结果传给下一段 有时候分支命名上没什么规则,只想保留某几个正在开发中的分支,删除所有其他的分支,就可以用下面命令: git branch -a | grep -v -E ' A|B ' | xargs git branch -D 上述命令表示删除除了A和B分支外的所有本地分支 批量删除远程分支 git branch -r| grep ' lyn_ ' | sed ' s/origin\///g ' | xargs -I {} git push origin :{} git

shell脚本正则表达式

青春壹個敷衍的年華 提交于 2021-02-13 09:51:22
grep与正则表达式: 1、grep 程序 Linux下有文本处理三剑-----grep sed awk grep :文本,行过滤工具 sed:文本 行编辑器(流编辑器) awk:报告生成器(做文本格式化输出) grep 包括三个命令:grep egrep fgrep,他们是用来进行行模式(pattern)匹配 egrep = grep -E //使用扩展的正则表达式进行匹配 fgrep=fast grep //只使用文件通配符进行匹配 *grep默认使用正则表达式进行文本匹配* grep 的用法: grep 【option】.....PATTERN[filename] grep的常见选项---option -E 支持使用扩展的正则表达式(ERE)(regexp) -P 使用Perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep AWK 使用的regrexp的引擎也是不同的) -i忽略大小写 -v 进行反选 -o 仅仅输出匹配的内容(默认输出的是匹配到的行) --color=auto 语法着色 -n 显示行号 a* grep 的PATTERN 作用:通过一些特殊字符,来表示一类字符内容,交给前面的命令来执行;如果使用特殊字符本身含义,就需要\进行转义; 回顾: * ? [] [^] 1、字符匹配 .代表任意一个字符 相当于? []

shell脚本-grep和正则表达式

怎甘沉沦 提交于 2021-02-13 09:25:26
1、grep程序 1)命令:grep egrep fgrep,用来进行 行模式(pattern手动写)匹配的 egrep = grep -E //使用正则表达式进行匹配 fgrep = fast grep //只使用文件通配符进行匹配 *grep默认使用正则表达式进行文本匹配 2)用法: grep[option]...PATTERN[filename] 3)常见选项(option): -E 支持使用扩展的正则表达式(regexp) -P 使用Perl语言的正则表达式引擎进行搜索(每种语言的正则表达式引擎都不相同,甚至grep、sed、awk使用的regexp的引擎也不相同) -c 统计计数 *-i 忽略大小写 *-v 进行反选 *-o 仅仅输出匹配的内容(默认输出是匹配到的行) --color=auto 语法zhuose -n 显示行号 -w 匹配固定单词 2、PATTERN -- 正则表达式 作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身含义,需要使用\来进行转义 文件通配符: *:任意长度任意字符 ?:任意一个字符 正则表达式: 1)字符匹配 .任意一个字符 | 或 [] 范围内任意一个字符 [^] 范围外任意一个字符 字符类:[:digit:][:alnum:][:alpha][:space:][:punct:] 2)次数匹配 \*

Shell脚本grep命令

六月ゝ 毕业季﹏ 提交于 2021-02-13 08:44:54
三剑客:grep sed awk   grep:文本行过滤工具   sed: 文本行编辑器(流编辑器)   awk: 报告生成器,输出格式化 grep包含三个命令:   grep egrep fgrep 。他们是用来进行行模式匹配的   egrep:=grep -E 使用扩展的正则表达式进行匹配   fgrep =fast grep 只使用文件通配符进行匹配   *grep默认使用正则表达式进行文本匹配 grep的用法:   grep [option] …PATTERN [filename] grep的常用选项: -E 支持使用扩展正则表达式 -P 使用perl语言的正则表达式引擎进行搜索(每一种语言的) -I 忽略大小写 -o 仅仅输出匹配的内容(默认输出的是行) -v 进行反选 --color=auto 语法着色 -n 显示行号 pattern--正则表达式:     作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行。如果使用特殊本身含义,就需要\进行转义。   1.字符匹配:     . 任意一个字符 ?     [] 范围内的任意一个字符     [^]范围外的任意一个字符     字符类:[:digit:] [:alnum:] [:alpha:] [:lower:] [:upper:] [:space:] [:punct:]   2.次数匹配     

vmware安装centos7.5、配置网卡、环境配置

送分小仙女□ 提交于 2021-02-12 04:53:20
1、vmware安装centos7.5虚拟机 参考连接: https://blog.csdn.net/guo_ridgepole/article/details/78973763 可能遇到的问题: 打开VMWare虚拟机提示:“锁定文件失败,打不开磁盘或快照所依赖的磁盘”的解决方法 在本地windows中搜索 *.lck 文件, 然后删除就可以启动 2、无线环境下配置虚拟机网卡上网外网、初始化环境 一、桥接模式之VMware设置: VMware->【Edit】->【Virtual Network Edit】->【更改设置】->【选VMnet0 桥接模式】->【桥接到:选无线那个 3或4; 】->【确定就可以】 二、桥接模式之虚拟机设置: 右键虚拟机->【网络设备器】->【勾选桥接模式】 三、桥接模式之设置静态ip地址 1. ipconfig 查看物理主机的ip地址(上外网用的那个网卡的ip地址) 2. 根据物理主机的ip地址,设置linux虚拟机的ip地址: [root@bogon ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static #static,静态ip,而不是dhcp,自动获取ip地址

saltstack工作日常使用汇总(六)

巧了我就是萌 提交于 2021-02-07 14:51:11
saltstack部署上就不用管了,后面基本是是在维护上用大量的时间了,耗费时间去逐一修改配置,不如好好研究下salt,用多了就都会喜欢上它的。 1、salt的常用使用整理如下: 基本上执行的脚本命令就都在/src/salt这个目录下,因为上面配置文件/etc/salt/file_roots.conf文件里有定义。 执行的两种方式: 可以直接执行脚本命令。后面跟的就是命令就可以。 把命令拷贝到客户端,然后在客户端是执行(拷贝通过filemanaged模块,执行用call命令)。 1、salt '*' test.ping 最基本的功能,看那些主机能连上(salt '3d-1-172.1.3.13' test.ping)。 2、salt "*" cmd.run "Wmic Path Win32_OperatingSystem get LastBootUptime|findstr /v "LastBootUpTime"" 查看主机的最后开机时间。 [root@vm63 ~]# salt "*" cmd.run "Wmic Path Win32_OperatingSystem get LastBootUptime|findstr /v "LastBootUpTime"" 3d-1-10.10.0.2: 20210128183339.739225+480 3d-2-10.10.0.25:

Linux生产环境上,最常用的一套“AWK“技巧

自古美人都是妖i 提交于 2021-02-06 09:04:46
最有用 系列: 《Linux生产环境上,最常用的一套“vim“技巧》 《Linux生产环境上,最常用的一套“Sed“技巧》 《”Sed” 高级功能:我这小脑瓜都快绕晕了》 敢用自己的名字做软件名字的,都有非常强大的自信。比如,垠语言什么的。 awk 的命名得自于它的三个创始人姓别的首字母,都是 80来岁 的老爷爷了。当然也有四个人的组合:流行的GoF设计模式。但对于我这游戏爱好者来说,想到的竟然是三位一体,果然是不争气啊。 它长的很像C,为什么这么有名,除了它强大的功能,我们姑且认为 a 这个字母比较靠前吧。 awk 比 sed 简单,它更像一门编程语言。 打印某一列 下面,这几行代码的效果基本是相同的:打印文件中的第一列。 #Java System.out.println(aStr.split(" ")[0]); #Python print(aString.split(" ")[0]) #cut 命令 cut -d " " -f1 file #awk命令 awk '{print $1}' file 这可能是awk最常用的功能了: 打印文件中的某一列 。它智能的去切分你的数据,不管是 空格 ,还是 TAB ,大概率是你想要的。 对于csv这种文件来说,分隔的字符是 , 。AWK使用 -F 参数去指定。以下代码打印csv文件中的第1和第2列。 awk -F "," '{print

Linux生产环境上,最常用的一套“AWK“技巧

筅森魡賤 提交于 2021-02-06 08:06:23
最有用系列: 《Linux生产环境上,最常用的一套“vim“技巧》 《Linux生产环境上,最常用的一套“Sed“技巧》 《”Sed” 高级功能:我这小脑瓜都快绕晕了》 敢用自己的名字做软件名字的,都有非常强大的自信。比如,垠语言什么的。 awk的命名得自于它的三个创始人姓别的首字母,都是80来岁的老爷爷了。当然也有四个人的组合:流行的GoF设计模式。但对于我这游戏爱好者来说,想到的竟然是三位一体,果然是不争气啊。 它长的很像C,为什么这么有名,除了它强大的功能,我们姑且认为a这个字母比较靠前吧。awk比sed简单,它更像一门编程语言。 打印某一列 下面,这几行代码的效果基本是相同的:打印文件中的第一列。 #Java System.out.println(aStr.split(" ")[0]); #Python print(aString.split(" ")[0]) #cut 命令 cut -d " " -f1 file #awk命令 awk '{print $1}' file 这可能是awk最常用的功能了:打印文件中的某一列。它智能的去切分你的数据,不管是空格,还是TAB,大概率是你想要的。 对于csv这种文件来说,分隔的字符是,。AWK使用-F参数去指定。以下代码打印csv文件中的第1和第2列。 awk -F "," '{print $1,$2}' file 由此