shell
sh13661847134
这个作者很懒,什么都没留下…
展开
-
exec和xargs的区别
区别描述: 两者都是对符合条件的文件执行所给的Linux 命令,而不询问用户是否需要执行该命令。-exec:{}表示命令的参数即为所找到的文件,以;表示comman命令的结束。\是转义符,因为分号在命令中还有它用途,所以就用一个\来限定表示这是一个分号而不是表示其它意思。-ok: 和 -exec 的作用相同,格式也一样,只不过以一种更为安全的模式来执行该参数所给出的shell给出的这个命令之前,都会给出提示,让用户来确定是否执行。xargs 要结合管道来完成格式:find [option] e转载 2021-07-13 11:28:54 · 2302 阅读 · 0 评论 -
正则表达式笔记
\w:匹配字母、数字、下划线。等价于[A-Za-z0-9_]\W:不匹配非字母、数字、下划线。等价于 [^A-Za-z0-9_]\d:匹配一个数字字符。等价于 [0-9]\D:匹配一个数字字符。等价于 [^0-9]\S:匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。\s: 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]例1:echo "i am a boy" | grep 'a\sboy' #匹配a boy例2:echo "i am a b原创 2021-06-29 08:28:32 · 174 阅读 · 0 评论 -
sed基础使用
通配符介绍:https://blog.csdn.net/u013163551/article/details/117977691my.txt#name infomy name is xxxxxthis is my first scripts192.168.1.1192.168#-i修改文件内的数据,不加i只是将修改后的数据存入缓存并打印sed -i 's/168/123/g' my.txt#在每行开头加入空格:将^(每行开头)替换为空格sed 's/^/ /g'#在原创 2021-06-21 15:50:57 · 122 阅读 · 0 评论 -
shell 函数申明和调用
#!/bin/bashfunction my_ls(){ ls}my_ls原创 2021-06-21 14:28:38 · 289 阅读 · 0 评论 -
shell case基础用法
#!/bin/bashecho "——————————快捷菜单——————————"select choise in "game" "move" "music" "exit"do case $1 in game ) echo "game" ;; move ) echo "move" ;; music ) echo "music" ;; exit ) exit 0 esacdone...原创 2021-06-19 16:05:45 · 80 阅读 · 0 评论 -
AWK中NR和NF的区别
awk中NF,NR的含义awk中NF和NR的意义,其实你已经知道NF和NR的意义了,NF代表的是一个文本文件中一行(一条记录)中的字段个数,NR代表的是这个文本文件的行数(记录数)。在编程时特别是在数据处理时经常用到。建议你看看有关awk编程方面的资料,这可是一个功能非常强大的工具。看个例子:cal 9 2003September 2003 # NR=1;NF=2Su Mo Tu We Th Fr Sa # NR=2;NF=71 2 3 4 5转载 2021-06-18 10:31:57 · 4154 阅读 · 0 评论 -
expect实现一台服务器修改多台服务器密码
一、背景修改Linux系统密码,执行passwd即可更改密码。可如果有成千上百台服务器呢,通过ssh的方式逐一进行修改,对我们来说,工作量是非常大,且效率非常低下。因此准备采用批量修改密码的方式来处理。二、环境准备需求:在Linux环境下运行,需要tcl和expect支持检查系统是否有expect和tcl:可以看到系统已经安装有这两个软件,如果没有,yum -y install expect tcl进行安装即可。「说明:本文利用expect的自动化人机交互功能,登录到远端服务器批量修改密码」原创 2021-06-15 13:38:23 · 417 阅读 · 0 评论 -
shell循环
一、while循环输出10次#!/bin/bashi=0while(())do ((i++)) echo $idonefor循环1#!/bin/bash#此处i=1是为了证明for的括号会自动识别变量,所以会从1输出到9i=1for((i;i<10;i++))do echo $idonefor循环2#!/bin/bash#循环1-20for i in {1..20}do echo $idone...原创 2021-05-18 14:53:04 · 3215 阅读 · 0 评论 -
shell中单引号、双引号、反引号的区别
单引号:‘pwd’输出:pwd结论:单引号内一切皆字符双引号:“pwd”输出:/home/admin结论:可以识别变量、内置关键字等等反引号:`date +"%Y%m%d"`输出:20210518结论:可以直接使用命令原创 2021-05-18 14:27:23 · 51 阅读 · 0 评论 -
linux,shell中if else if的写法,if elif
#!/bin/bashif [[ $1 = 'tomcat' ]]; then echo "Input is tomcat"else if [[ $1 = 'redis' ]] || [[ $1 = 'zookeeper' ]];then echo "Input is $1"else echo "Input Is Error."fi出现报错:[oracle@standby ~]$ ./ts01.sh zookeeper./ts01.sh: line 12: syntax e转载 2021-05-18 14:06:31 · 2101 阅读 · 0 评论 -
sort详解
sort是排序工具,它完美贯彻了Unix哲学:“只做一件事,并做到完美”。它的排序功能极强、极完整,只要文件中的数据足够规则,它几乎可以排出所有想要的排序结果,是一个非常优质的工具。虽然sort很强大,但它的选项很少,使用方法也很简单。更让人觉得它成功的地方在于:即使想要实现复杂、完整的sort功能,所使用的选项和一般使用时的选项没什么不同。只不过要实现复杂功能时,必须得理解sort是如何工作的。也就是说,没搞懂sort工作机制时,它也能完成任务,指哪就能打哪,但没被指到的地方难免会有所偏差和疑惑。只有原创 2021-05-13 14:50:15 · 4389 阅读 · 0 评论 -
删除指定日期之前或之后的文件或目录
-mtime +30 当天的30天前-mtime -30 当天的30天后-type f 类型为文件-type d 类型为目录该shell为删除指定目录下,30天前的文件#!/bin/shlocation="/root/sqlbak/"find $location -mtime +30 -type f |xargs rm -f例:定时任务——crontab -e设定为每个月1号晚上4点10分执行脚本.当然你也可以根据你自己的需求去整.10 4 1 * * /bin/sh /root/s原创 2021-05-07 15:08:14 · 727 阅读 · 0 评论 -
shell脚本括号简单用法
[]单中括号:判断文件或者目录是否存在[[]]双中括号:判断是否等于、大于、小于()单括号:命令,例如$(date “+yyyymmdd”)(())双括号:判断整形是否相等、大于、小于;常用于算术运算比较,比如for循环for((i=0;i<5;i++)){}大括号:通常用于文件名扩展,比如ls {2021*}.txt ; mkdir {test1,test2}.txt ; mkdir {a…d}.txt,结果为a.txt b.txt c.txt d.txt...原创 2021-04-30 14:35:38 · 191 阅读 · 0 评论 -
linux下shell获取不到PID
#!/bin/bash#ps的最后一个字符串,越具体越好name="/home/mdgw/mdgw_202011_linux/mdgw"#获取进程号pid=`ps -ef | grep $name | grep -v grep | awk '{print $2}'`kill -9 $pid原创 2021-04-28 08:43:06 · 411 阅读 · 0 评论 -
shell函数与自带变量
1,特殊shell变量$# 传递到脚本的参数个数$* 以一个单字符串显示所有向脚本传递的参数$$ 脚本运行的当前进程ID号$! 后台运行的最后一个进程的ID号@与@ 与@与*相同,但是使用时加引号,并在引号中返回每个参数。$- 显示Shell使用的当前选项,与set命令功能相同。$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。$_ 显示传参的最后一个参数command > file 将输出重定向到 file。command < file 将输入重定向到 f原创 2021-04-27 10:18:05 · 148 阅读 · 0 评论 -
linux数据库导出结果集且比对 && grep -v ---无法过滤的问题
场景:用dbeaver导出的csv中浮点数类型是默认没有双引号的,而且本人未找到添加双引号的方法,而软件导出的上场文件是每个字段都有双引号,所以在比对过程中会导致有diff会报错,虽然数据一样但是肉眼比对依然是错误的行为,那么就把非数据内容grep -v过滤掉之后比对问题:而diff比对结果为空则没有任何显示,有不同则会输出不同内容、“1,3c1,3”、“—”,该三类内容,那么比对的需求除了不同内容以外的东西都可以过滤掉。而—则会报错以下内容:grep: unrecognized option ‘—’原创 2021-04-23 10:09:43 · 422 阅读 · 0 评论 -
shell通配符
例子:if [ $# -ne 1 ];then的意思是,如果shell传递到脚本的参数不等于1,则执行某命令。1、shell几个特殊字符用来处理参数介绍:$*:以一个单字符串显示所有向脚本传递的参数。如"$*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。$$:脚本运行的当前进程ID号。$!:后台运行的最后一个进程的ID号。2、shell数值测试符号介绍:整数比较-eq 等于,如:if [“a"−eq"a" -eq "a"−eq"b” ]-ne 不等于,如:if [“a原创 2021-04-01 10:06:03 · 298 阅读 · 0 评论 -
shell脚本实现删除指定日期之前的文件
cat delbak.sh#!/bin/shlocation="/root/sqlbak/"find $location -mtime +30 -type f |xargs rm -fps——location 是设置查找的目录–mtime +30 是设置时间为30天前-type f 这周查找的类型为文件然后加入crontab定时来删除——设定为每个月1号晚上4点10分执行脚本.当然你也可以根据你自己的需求去整.crontab -l10 4 1 * * /bin/sh /root/so转载 2021-03-23 08:55:29 · 1397 阅读 · 0 评论 -
shell获取最新文件
背景:交易所每天发文件给券商,但是前缀一样,名字后缀为月日,但是节假日不一定在交易日生成某些文件,所以需要获取同名字最新生成的文件参数说明:-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出-r 将文件以相反次序显示(原定依英文字母次序)-t 将文件依建立时间之先后次序列出-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/原创 2021-02-08 15:36:12 · 2424 阅读 · 0 评论