NOTE
  • java

    • 架构基础
    • java线程简介
    • HashMap
    • STL库继承图
  • C#

    • c#基础
  • sql基础

    • sql语句
    • 函数、存储过程和视图
  • ElasticSearch
  • 基数
  • 基础知识

    • Liunx基础
    • vi文本编辑器
    • 权限管理
    • 文件系统管理
    • 系统管理
    • 备份与恢复
    • 服务管理
    • /md/linux/日志管理.html
  • linux软件

    • 工具
  • shell

    • shell基础
    • shell编程
  • Spring

    • 简介
    • MyBatis
  • Spring_Cloud

    • 微服务基础
    • 负载均衡器
    • Hystrix原理
  • 基础
  • 基础
  • java

    • 架构基础
    • java线程简介
    • HashMap
    • STL库继承图
  • C#

    • c#基础
  • sql基础

    • sql语句
    • 函数、存储过程和视图
  • ElasticSearch
  • 基数
  • 基础知识

    • Liunx基础
    • vi文本编辑器
    • 权限管理
    • 文件系统管理
    • 系统管理
    • 备份与恢复
    • 服务管理
    • /md/linux/日志管理.html
  • linux软件

    • 工具
  • shell

    • shell基础
    • shell编程
  • Spring

    • 简介
    • MyBatis
  • Spring_Cloud

    • 微服务基础
    • 负载均衡器
    • Hystrix原理
  • 基础
  • 基础
  • linux系统

    • Liunx基础
    • 权限管理
  • linux工具

    • vi文本编辑器
  • shell编程

    • shell基础
    • shell编程

shell编程

流程控制

if语句

1。单分支if条件语句

if[条件判断式];then.
    程序
fi
    或者
if [条件判断式]
    then 
    程序
fi

else语句
   else
        条件不成立时,执行的另一个程序

2。多分支if条件语句

if [ 条件判断式1 ]
    then
    当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]
     then 
    当条件判断式2成立时,执行程序2
...省略更多条件…
    else
    当所有条件都不成立时,最后执行此程序
fi

case语句

case $变量名 in
值1)
    如果变量的值等于值1,则执行程序1
    ;;
值2)
    如果变量的值等于值2,则执行程序2
    ;;
…省略其他分支…
*)
    如果变量的值都不是以上的值,则执行此程序
    ;;
esac

for语句

方法一

for 变量 in 值1 值2 值3 ...
   do
    程序
   done

方法二

for (( 初始值;循环控制条件;变量变化 ))
    do
    程序
    done

while语句和until语句

while [ 条件判断式 ]
    do
    程序
    done
while是条件成立就执行程序,until是条件不成立就执行程序

跳出循环

break 命和continue

条件判断

正则表达式

正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、 awk、sed等命令可以支持正则表达式。 通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、 find、 cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了

字符处理

排序命令sort

[root@localhost ~]# sort [选项]文件名 选项: -f 忽略大小写 -n 以数值型进行排序,默认使用字符串型排序 -1 反向排序 -t 指定分隔符,默认是分隔符是制表符 -k n[,m] 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)

统计命令WC

[root@localhost ~]# wc [选项]文件名 选项: -l 只统计行数 -W 只统计单词数 -m 只统计字符数

字符截取或处理命令

grep命令-查找行

[root@localhost ~]# grep [选项] "搜索内容" 文件名 选项: -i:忽略大小写 -n:输出行号 -V:反向查找 --color= auto:搜索出的关键字用颜色显示

cut命令-查找列

[root@localhost ~]# cut [选项]文件名 选项: -f列号:提取第几列 -d分隔符:按照指定分隔符分割列 无法使用复杂的分隔符

printf命令-格式化打印命令

printf '输出类型输出格式’ 输出内容 类似c swk命令 # awk ‘条件1{动作1}条件2 {动作2}..’文件名 条件(Pattern) : 一般使 用关系表达式作为条件 x> 10 判断变量x是否大于10 x>=10 大于等于 x<=10 小于等于 动作(Action) : 格式化输出 流程控制语句

sed命令

sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。 [root@localhost ~]# sed [选项]“[动作]’文件名 选项: -n 一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕。 -e 允许对输入数据应用多条sed命令编辑 -I 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出 动作: a \ 追加,在当前行后添加一行或多行。添加多行时,除最后-行外,每行末尾需要用“\” 代表数据未完结。 c \ 行替换,用c后面的字符串替换原数据行,替换多行时,除最后- -行外,每行末尾需用“\”代表数据未完结。 i \ 插入,在当期行前插入一行或多行。插入多行时,除最后- -行外,每行末尾需要用“\” 代表数据未完结。. d 删除,删除指定的行。 p 打印,输出指定的行。 s 字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”( 和vim中的替换格式类似)。

Last Updated:
Contributors: 任韩
Prev
shell基础