![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shell
push_rbp
这个作者很懒,什么都没留下…
展开
-
shell批量修改文件
批量修改文件名,有时在linux服务上还是会碰到的,最近笔者就碰到了,记录一下比如我想将所有文件后加上.bak, 可以这么做其中需要注意的是xrags -i 和{}, -i表示一种占位符,从管道读取到的参数会替换掉占位符,一般默认的就是{} ,-i表示使用占位符,也可以用-I(大写的i)指定其他的占位符,所以这行shell意思就很简单了。如果我们想恢复原来的文件名呢,可以这么做:需要注意的可能是两点,sed后面有个2g, 我们知道g表示全部替换,2g表示从第二个匹配项开始,因为第一个匹配项是1原创 2021-07-12 23:59:09 · 453 阅读 · 0 评论 -
shell中比较[]、test、[[]] 数字和字符串
比较写shell脚本时,if判断是经常需要使用的,shell中的比较有很多中,眼花缭乱,今天把常用的比较梳理一下[] 和test这两个其实是等价的,都是shell 内建命令,不过linux环境本身也提供了一个test命令,这个是外部命令,不过大多数情况下,我们调用的都是内建的testroot@LAPTOP-2MOIS3PQ:/home/li# type [[ is a shell builtinroot@LAPTOP-2MOIS3PQ:/home/li# type testtest is a原创 2020-11-21 21:59:32 · 324 阅读 · 0 评论 -
shell中的进程替换process substitution >() <()
进程替换shell中的进程替换是一个有意思的语法,语法很简单<(cmd)>(cmd)注意,这里的>和()之前不能有空格,否则就变成了重定向和开启子进程了。<(cmd)的意思是将括号内的命令输出到一个临时文件如:root@LAPTOP-2MOIS3PQ:/home/li# diff <(ls) <(ls -a)0a1,9> .> ..> .bash_history> .bash_logout> .bashrc>原创 2020-11-21 14:17:20 · 374 阅读 · 0 评论 -
shell中的$
shell中的$符号用的很多,今天来梳理一下:运算:可以用$(()) 来实现变量的计算,支持四则运算,括号优先级,移位,注意,bash内置的运算都不支持小数,可以用awk,bc等工具来实现$[],同$(())位置参数:一般我都会在awk和bash中使用:在awk中,$0代表整行,1...1 ...1...N对应那一行的第几列,在awk中有时会想用某个变量值代表$N中的数据,测试发现可以这么写:a=1; awk '{print $'\$a'}' file_name$a也是用单引号括起来的,这原创 2020-11-21 13:39:02 · 603 阅读 · 0 评论 -
ldd输出解释
ldd命令用来查看二进制文件所依赖的动态库,大家经常使用,ldd命令的输出却有些让人迷惑如:root@LAPTOP-2MOIS3PQ:/home/li# ldd `which ls` linux-vdso.so.1 (0x00007fffd7cf7000) libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fbc41220000) libc.so.6 => /lib/原创 2020-11-10 00:28:27 · 1587 阅读 · 0 评论 -
再说linux命令行的管道
linux管道linux命令上的管道大家想必是经常用了 cat 1.txt | grep xxx; 这是常见的用法,说说管道,pipe是 liunx上常见的IPC方法,在 linux system programming 中有两种,有名管道和无名管道,有名管道可以用在任意两个进程,而无名管道只能用在有亲属关系的进程,如我们一般所写的命令行就是无名管道(我猜是,不知道shell会怎么做,当然可以不是:) )。管道是需要内核来做一些维护工作的(无名管道显然是进程持续性,但有名管道是不是呢,记不清,请翻阅un原创 2020-11-08 01:50:13 · 3269 阅读 · 6 评论 -
awk学习记录
awk小计##记录一下学习awk的东西awk进行流处理,我们一般主要是对列对象进行一些操作。awk命令格式:awk ‘pattern’ ‘action’ filename;其中pattern 代表匹配模式,如,我想匹配文件中的出现“test”的行,则可以写成,awk /test/ ‘{print $0}’ 1.txt;所有要进行的操作即action,要写成形如‘{}’的格式,‘’所包含的内容可以有这种格式:‘BEGIN …{} END…’,其中begin和end是在处理文本之前和之后可进行的操原创 2020-11-08 00:39:51 · 182 阅读 · 0 评论