个人整理shell脚本编程笔记_第1页
个人整理shell脚本编程笔记_第2页
个人整理shell脚本编程笔记_第3页
个人整理shell脚本编程笔记_第4页
个人整理shell脚本编程笔记_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 一、脚本格式vim shell.sh#!/bin/bash/声明脚本解释器,这个#号不是注释,其余是注释#Program:/程序内容说明#History:/时间和作者二、shell变量的种类用户自定义变量:由用户自己定义、修改和使用与定义变量:Bash与定义的特殊变量,不能直接修改位置变量:通过命令行给程序传递执行的参数1、定义变量:变量名要以英文字母或下划线开头,区分大小写。格式:变量名=值输出变量:echo $变量名2、键盘输入为变量内容:格式:read -p "信息" 变量名如:read -p "pewase input your

2、 name:" name3、不同引号对变量的作用双引号"":可解析变量,$符号为变量前缀。单引号'':不解析变量,$为普通字符。反引号:将命令执行的结果输出给变量。三、shell条件测试1、test命令:用途:测试特定的表达式是否成立,当条件成立时,命令执行后的返回值为0,否则为其他数字。格式:test 条件表达式 条件表达式    (注意:与表达式之间存在空格) 2、常见的测试类型:测试文件状态格式: 操作符 文件或目录 如:if -d /etc thenecho "exists"elseecho

3、 "not exists"fi常见的测试操作符:-d:测试是否为目录-e:测试目录或文件是否存在-f:测试是否为文件-r:测试当前用户是否有读权限-w:测试当前用户是否有写权限-x:测试当前用户是否有执行权限-L:测试是否为符号链接文件字符串比较格式: 字符串1 = 字符串2 字符串1 != 字符串2 -z 字符串 如:read -p 'name:' nameread -p 'pass:' passif $name = 'admin' && $pass = '123'thenecho '

4、登录成功'elseecho '登录失败'if常用的测试操作符:=:字符串内容相同。!=:字符串内容不同。-z:字符串内容为空。整数值比较格式: 整数1 操作符 整数2 如:age=30if $age -ge 18 thenecho "已成年"elseecho "未成年"fi常用的测试操作符:-eq:等于-ne:不等于-gt:大于-lt:小于-le:大于或等于-ge:小于或等于逻辑测试格式: 表达式1 操作符 表达式2 常用操作符:-a或&&:逻辑与-o或|:逻辑或!:逻辑非四、流程判断:1、条件判断a、if语句格式

5、:单分支:if 条件表达式then 命令序列fi如:age=30if $age -ge 18 thenecho "已成年"elseecho "未成年"fi多分枝:if 条件表达式then 命令序列elif命令序列fi如:score=87if $score -lt 60 ;thenecho '60以下'elif $score -gt 60 && $score -lt 70 ;thenecho '6070之间'elif $score -ge 70 && $score -lt 80 ;thenec

6、ho '70 80之间'elseecho '优秀'fib、case格式:case $变量名称 in"第一个变量内容");"第二个变量内容");*)/最后一个变量内容都会用*来代表其它值,不包含前面的变量内容;esac如:case $1 instart) echo 'start MYSQL service.'stop)echo 'stop MYSQL service.'*)echo "Usage: $0 start|stop"esac2、循环控制跳出本次循环:continu

7、e结束循环:breaka、while循环格式:while 条件表达式 do程序段落done如:num=3while $num -gt 0 doecho $numnum=$($num-1)doneb、for循环格式:for var in con1 con2 con3do程序段done如:for i in user0 user1 user2 user3echo $idone格式:for (i=0;i<10 1+)do程序段done如:for (i=0;i<10;i+)doecho $iuseradd user$iecho 123 | password -stdin_user$idone

8、3、函数使用定义一个函数:在程序的最前面function 函数名()或者function 函数名如:function printit()echo "your choice is $1"调用:直接使用函数名如:printit 1传递参数:函数名 参数1 参数1如:printit 2五、Shell文本操作1、Find查找命令的使用find . -name "*.text"/在当前目录下查找已txt为后缀的文件fing .-name "a-z*"/在当前目录下查找开头字母的文件find /etc -name "host*"

9、;/查找/etc目录下以host开头的文件find . -perm 755/在当前目录下查找属性为755的文件find -user root/在当前目录下查找属主为root的文件find /var -mtime -5/在/var下查找更改时间在5天内的文件find /var -mtime +3/在/var下查找更改时间在3天以前的文件find /etc -type d/查找文件类型为d的目录文件find /etc -typt l/查找文件类型为l的链接文件find . -size +c/查找文件大小在1M的文件2、正则表达式linux/以linux开头的$php/以php结尾的./匹配任意单字

10、符.+/匹配任意多个字符.*/匹配0个或多个字符0-9a-z/匹配内任意一个字符(linux)+/出现多次linux单词(web)2/web出现了2次以上/转译3、grep详解grep "li qq"*/在所有文件中查找li qq文件grep -c "file" a/在文件中查找有多少行匹配到filegrep -n "file" a/在文件中查找有多少行匹配file,同时显示行和行号grep -i "file" a/在文件中查找file,并不区分大小写grep -v "file" a/在文件中过

11、滤掉file所在的行grep -E "2017:22:50-9" a/在文件中查找在时间在2017:22:50到59的所在行grep -E "210" a/在文件中查找不号寒210的行grep -E "h*p" a/查找包含h和p的行grep -E "5-86-90-3" a/查找大于560小于893的行grep -E "d" a/在文件中查找以d开头的行grep -E "d" a/在文件中查找不是以d开头的行4、awk命令:简介:awk是一个强大的文本分析工具,相对于gre

12、p的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。格式:awk 'pattern + action' filenamespattern:查找内容action:匹配规则awk 'pring $0'

13、access.log/查找文件中的每一列awk 'print $1"t"$7' access.log/查找文件中第一列和第七列cat file | awk '$0 ! /5/'|grep "php"/匹配Ip 地址的统计,!为不匹配例:for i in cat /etc/passwd | head | awk -F:'print $1'doecho $idone-F-以什么符号分割head-去前多少行,默认是10行5、sed行定位使用简介:sed是非交互式的编辑器。它不会修改文件,除

14、非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 选项 功能 -e 进行多项编辑,即对输入行应用多条sed命令时使用 -n 取消默认的输出 -f 指定sed脚本的文件名sed -n '2'p file/只打印第二行,不打印其他行sed -n '1,4'p file/从第一行到第四行的记录sed -n '/los/'p file/打印匹配los的行sed -n '4,/los/'p file/打印从第四行到匹配los的之间所有

15、行sed '1,2'd file/吧第一行和第二行全部删除6、Uniq行定位使用简介:uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用。语法 uniq(选项)(参数)选项 :-c或count:在每列旁边显示该行重复出现的次数;-d或-repeated:仅显示重复出现的行列;-f<栏位>或-skip-fields=<栏位>:忽略比较指定的栏位;-s<字符位置>或-skip-chars=<字符位置>:忽略比较指定的字符;-u或unique:仅显示出一次的行列;-w<字符位置>或-check-chars=<字符位置>:指定要比较的字符。uniq -c file/打印紧挨的重复行出现的次数uniq -d file/只打印重复的行awk 'print $1' /var/log/httpd/access_log | sort|uniq -c/把apache网站的所有访问ip全部统计出来,并打印出统计次数。7、spli行定位简介:可以将一个大文件分割成很多个小文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论