04 命令字符串
常见命令分类文本处理命令
03 值字符串
# 值字符串 ### 内容解析 > 单引号是不能识别变量,不能解析命令,不能转义的 * 变量解析 `"$变量名"`或用`"${变量名}"`包含变量名。 * 命令解析 `"$()"=反引号` * 转义解析 `"\*"`转义都拥有特殊含义,而单引号括起来的内容都是普通字符。 ### 字符串长度 1${#string} ### 字符串切片 1${string:1:4} ### 字符串拼接 12"hello $country""hello ${country}"
05 特殊符号
1 特殊符号特殊符号 符号 作用 ’ ’ 单引号。在单引号中所有的特殊符号,如“$”和(反引号)都没有特殊含义。单引号括起来的都是普通字符,会原样输出 “ ” 双引号。在双引号中特殊符号都没有特殊含义,但是“$”,反引号(esc键下面)和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。 $ 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。 ${} 用于调用变量的值,如需要调用变量name的值时,需要用${name}的方式得到变量的值。 反引号 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和()作用一样,不过推荐使用(),因为反引号非常容易看错。 $() 和反引号作用一样,用来引用系统命令。(推荐使用) \ 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如$将输出“$”符号,而不当做是变量引用。 () 用于一串命令执行时,()中的命令会在子Shell中运行 {} 用于一串命令执行时,{ }中的命令会在当前Shell中执行。也可以用于变量变形与替换。 ...
06 关键字
1 关键字readonly相当于C中的const,readonly将变量设为只读模式,任何针对他们的赋值都是错误的 123$readonly var=123$var=345bash: var: readonly variable unset删除变量 12345678unset var_name 删除变量var_nameunset -v first middle last 删除其他变量unset -f fcn 删除函数$tunset=123$echo $tunset123$unset tunset$echo $tunset shift用来截去来自列表的位置参数,从左侧开始,一旦执行shift,$1的初始值就会永远消失,取而代之的是$2的旧值,依次类推,$#的值也会依次减1shift也可以带一个参数,表示一次截取的个数 12345678910$cat shell.sh #!/bin/bashecho "${1}"shiftecho "${1}"$./*.sh 123 456123456 set设置新...
06 运算符
1 测试运算符test [ ]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106DESCRIPTION The test utility evaluates the expression and, if it evaluates to true, returns a zero (true) exit status; otherwise it returns 1 (false). If there is no expression, test also returns 1 (false). All operators and flags are separate arguments to th...
08 三剑客-grep
详情参考grep命令参考手册
09 三剑客-sed
详情参考 1 sed基本使用sed主要是用来将数据进行选取、替换、删除、新增的命令。 12345678910111213141516171819语法:[root@localhost ~]$ sed [选项] ‘[动作]’ 文件名选项:-n: 一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。-e: 允许对输入数据应用多条sed命令编辑。-f 脚本文件名: 从sed脚本中读入sed操作。和awk命令的-f非常类似。-r: 在sed中支持扩展正则表达式。-i: 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出动作:a : 追加,在当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。num表示第几行c : 行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“”代表数据未完结。i : 插入,在当期行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“”代表数据未完结。num表示第几行d ; 删除,删除指定的行。p : 打印,输出指定的行。s : 字串替...
07 流程控制
流程控制1 if条件判断单分支if条件语法: 1234if [ 条件判断式 ] then 程序fi 案例:统计根分区使用率 123456789101112[root@localhost ~]$ vi sh/if1.sh#!/bin/bash#统计根分区使用率rate=$(df -h | grep "/dev/sda2" | awk '{print $5}'| cut -d "%"-f1)#把根分区使用率作为变量值赋予变量rateif [ $rate -ge 80 ]#判断rate的值如果大于等于80,则执行then程序 then echo "Warning!/dev/sda3 is fu11!!" #打印警告信息。在实际工作中,也可以向管理员发送邮件。fi 案例:创建目录 12345678910[root@localhost ~]$ vi sh/add_dir.sh#!/bin/bash#创建目录,判断是否存在,存在就结束,反之创建echo "当前脚本名称为$0&qu...
10 三剑客-awk
详情参考awk参考文档awk常用函数 1 awk基本使用使用格式123456789101112131415161718[root@localhost ~]$ awk‘条件1{动作1} 条件2{动作2}…’ 文件名条件(Pattern): 一般使用关系表达式作为条件。这些关系表达式非常多,例如: x > 10 判断变量x是否大于10 x == y 判断变量x是否等于变量y A ~ B 判断字符串A中是否包含能匹配B表达式的子字符串 A !~ B 判断字符串A中是否不包含能匹配B表达式的子字符串 动作(Action) : 格式化输出 流程控制语句常用参数: -F 指定输入时用到的字段分隔符 -v 自定义变量 -f 从脚本中读取awk命令 -m 对val值设置内在限制 基本原理 按行来读入的。执行步骤 如果有BEGIN条件,则先执行BEGIN定义的动作。 如果没有BEGIN条件,则读入第一行,把第一行的数据依次赋予$0、$1、$2等变量。其中$0代表此行的整体数据,$1代表第一字段,$2代表第二字段。 依据条...
0工具命令
文本查看和处理交互式 vim less 编辑 sed 查看 cat head tail cut wc 统计行数、单词数、字符数 uniq 去掉临近重复行 sort 字符排序命令














