![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux Shell
xd96dx
这个作者很懒,什么都没留下…
展开
-
linux 三剑客之 awk
测试文件:通俗用法:awk ‘/pattern/{print $1}’ file示例: 匹配以 root 开头的行并输出结果在上面的例子中, 如果需要以 : 分割, 则需要指定分隔符两种方式:awk -F":" '/pattern/{print $1}' fileawk 'BEGIN{FS=":"} /pattern/{print $1}' file在末尾如果还需要打印其他信息, 可以使用END{}:awk 'BEGIN{xxx} {print $} END{xxx}' f原创 2020-09-14 19:31:21 · 80 阅读 · 0 评论 -
linux 三剑客之sed
用法测试文件s 替换替换 s/xxx/xxx示例: 将 gggg 替换为 test替换某行为xxx ns/.*/xxxx示例: 替换第二行内容为 xxxx在某行后追加内容 ns/.*/&xxxx示例: 在第三行内容后追加 ----替换数字 s/[0-9]/xxxx (sed不支持 \d)示例: 替换数字为 ---代指某一部分使用() s/(xxx)(xxx)/\1\2/示例: 在数字与内容之间插入内容语法中的 / 可以替换为其他任意原创 2020-09-14 14:59:29 · 104 阅读 · 0 评论 -
linux三剑客之grep
grep用法:常规匹配:不区分大小写 -i精确查找 “\<xxxx>\”以某字符结尾 “xxx$”以某字符开头 “^xxx”显示行号 -n显示匹配字符的后几行 -A n显示匹配字符的前几行 -B n显示匹配字符的上下文 -C n静默查找, -q如果文件不存在, 静默查找仍会有输出, 如果需要静默可以考虑输出重定向grep查找结果成功返回值 0, 没有查找到返回 1, 无文件返回 2递归查找 -r/-R反向查找 -v和管道一起原创 2020-09-14 10:32:12 · 113 阅读 · 0 评论 -
shell while, until循环
while和until两个循环语法相同, 循环条件相反语法: while xxx do xxx done until xxx(进入循环的条件与while相反) do xxx done举例来看#! /bin/bashuntil ping -c1 127.0.0.1>/dev/nulldo echo "until test" sleep 1doneecho "until test finished"while ping -c1 127.0.0.1>原创 2020-08-31 10:46:29 · 96 阅读 · 0 评论 -
shell for循环及一些小技巧
for语法#! /bin/bashclearfor i in {1..10}do echo "for time $i"donefor循环分隔符分隔符顾名思义, 循环时以什么符号作为分隔, 默认情况下是以空格或者制表符分隔#! /bin/bashnum="1 12 23 34 4"for i in $numdo echo $idone结果可以看到, 是以空格为分隔输出的, 如果需要以行分隔, 这个时候就需要指定分隔符了#! /bin/bashnum="原创 2020-08-26 14:00:46 · 534 阅读 · 0 评论 -
shell case语法
一般来说, case会和read一起使用, 以esac结束, 代码如下#! /bin/bashread -p 'input num:' numcase "$num" in 1) echo "num=1" ;; 2) echo "num=2" ;; *) echo "num=$num" ;;esac执行结果:原创 2020-08-24 21:03:07 · 92 阅读 · 0 评论 -
shell 条件测试
常见方式:test[][[]]使用方法:test:test -r ./test.sh | echo $?0[]:[ -r test.sh ]; echo $?0关于[], 左括号 [ 是一个linux命令, 而右括号]仅仅是左括号的命令参数, 如下图可以看到, 左括号 [ 提示缺少右括号 ], 而右括号本身不是一个命令[[]]:语法与 [] 相同, [[]]功能更强大, 推荐使用num=1[[ $num =~ [0-9] ]]; echo %?0常用参数:原创 2020-08-15 16:45:03 · 65 阅读 · 0 评论 -
shell $符之$* $@ 区别
上篇文章有坑, 填在字符串中(在" "中), $@可以理解为将位置参数放在一个数组里, 各是各的$*类似于字符串连接, 将个位置参数的值拼接在一起, 是一个整体如果是直接引用 $@ 或者 $* 两者不会出现以下区别具体代码:...原创 2020-08-15 14:02:38 · 187 阅读 · 0 评论 -
shell中的 $符变量
预定义变量:$0 脚本名称$! 上一个后台进程的PID$$ 当前进程PID$? 上一个命令返回值$# 参数个数$* $@ 所有的参数(具体什么区别不清楚...)位置变量$1 $2 ... $n示例:原创 2020-08-12 11:10:59 · 74 阅读 · 0 评论