




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Bash编程基础,乐视网技术与研发中心运维部陈真,我可能是位开发,想从应用log分析出每天用户请求的成功、失败、超时情况各是多少(我昨天上线的新版本应该不会有bug吧,怕怕)干脆写个shell吧,或许几行就够了,每天早晨上班路上拿手机收个邮件就能看到它的自动报告,场景1,我可能新来实习,老大交给一堆的css文件,要求把每个css内引用的图片全部抠出来,重新上传得到新URL然后全部替换掉(哭吧哭吧不是罪!不过是机械式ctrl+c/ctrl+f/ctrl+v而已)写个shell脚本吧,帮你按照列表中新旧对应关系自动替换了,让老大也敬仰我一次吧!,场景2,我可能是位美女助理,手上2份公司人员名单,一份是上季度800人(A),一份是现在1045人(B),要找出都谁离职了、谁新加入、谁一直都在。(你懂的,写个shell脚本吧_)whilereada;dogrep-wq“$a”B|echo$a;done.bash_fileloginsh只读取/etc/profile,.profile配置文件都是通过source命令读取生效,InteractiveBash,一般在(伪)终端、控制台下启动,与用户交互的shell运行“bash”这个命令可以启动bash读取配置:.bashrc,Non-InteractiveBash,Bash脚本一般为可读、可执行的文本文件Bash首行使用#!/bin/bash或#!/bin/sh包含若干变量、命令、程序逻辑以实现一定的目的,Bash脚本优点,简单、快速,不需要编译,灵活高效,Bash脚本与Vim配置,/etc/vimrc或/.vimrc中配置syntaxon语法高亮setnumber显示行数setshiftwidth=4四格缩进settabstop=4四格缩进setexpandtabtab转spacesetbg=light背景为亮色colormurphy配色方案,内容导航,Bash基础Bash语法常用命令经验分享,变量数值运算流程控制命令函数,Bash语法,变量,变量定义:name=value变量引用:$name注意:=号两边不允许空格,也不像php需要加$name是$name的简写(变量值后如需紧跟其他字符,则必须用大括号将变量名括起来),常用变量,$?最后一个命令的退出状态$!最后一个后台进程的pid$当前进程的pid$0当前程序名称$nn为1,2.n,脚本或函数的参数$#:所给的参数个数$*:所有给出的参数“$”双引号必须,类似$*,但结果被替换为”$1”,”$2”,常用变量,$(command)保存括号内命令的执行结果,同command$(experssion)括号内部为变量和运算符构成的算术表达式$HOME用户主目录$PATH以:分隔的命令搜索路径名$PWD当前目录的全路径$UID用户ID,0代表超级用户,命令替换,作用:将命令的输出结果赋值给变量语法:var=commandvar=$(command)例:today=$(date+%F),变量的要点,子进程不能改变父进程的变量,反之亦然(用exportname导出可使子进程继承父进程)大部分的环境变量都是在login时设置的当一个变量被引用时,要尽量加上双引号要注意检查变量是否合法,数值运算,方法let,expr()bc常用运算+-*/%(加,减,乘,除,取模)例i=10;j=20;(i+);(cnt=i+j)cnt=$(echo$i+$j|bc),流程控制,条件判断ifcase循环for,whilebreak,continue,if条件判断表达式,iftest$foo=bar;thenechook;fiif$foo=bar;thenechook;fiif$foo=bar;thenechook;fiif($?=0);thenechook;fiifgrepfoomyfile/dev/null;thenechook;fi返回值为0是true,测试文件,if.else.,ifexpression;thenelifexpression;thenelsefi,#examplereadanswerif$answer=Y;thenechoanswerYelif$answer=N;thenechoanswerNelseechoooh.fi,case,case$varincondition1)statments1;condition2)statments2;.*)defaultstatments;esac,#examplereadkeypresscase$keypressina-z)echo“lowercase;A-Z)echo“uppercase;0-9)echo“digit;*)echoother;esac,for循环,for$varinvar1var2.dostatmentsdonebreak中断循环continue继续循环,#exampleforDAYin12345doecho$DAYif(DAY=3);thenbreakelsecontinuefidone,while循环,形式1whilecondition;dostatmentsdone形式2untilcondition;dostatementsdone,#examplei=1sum=0while(ialias-function-builtin-外部命令(查hash,再查$PATH),命令分隔符,换行:一行一个命令cmd_2#cmd_1执行完后接着cmd_2,管道命令,管道命令:cmd_1|cmd_2|cmd_3|.|cmd_ncmd_2将cmd_1的输出内容做为其输入如catfile|grepline,重定向,输入重定向whilereadline;doecho$linedone/dev/null标准错误grepxxx$file2/dev/null追加grepxxx$fileresult,命令的退出状态,检查$?的值是否为0,0为真,非0为假,grep-qadmin/etc/passwdif($?=0);thenecho“found”elseecho“notfound”fi,ifgrep-qadmin/etc/passwd;thenecho“found”elseecho“notfound”fi,内容导航,Bash基础Bash语法常用命令经验分享,常用命令,资源使用状态进程与作业排列与计数查找修改和分析,资源使用状态,df-hdu-sh,du-sm-*|sort-nfree-k,free-mtopvmstatnetstatiptraf,进程与作业,ps-efwwpstree-ahppidof,pgrepkill,killallnohup,排列与计数,cut(-f1-5-d,)sort(-n-r-k-u)uniq(-c-d-u)wc(grep-c比grep|wc-l高效),查找修改和分析,grep:查找、分拣sed:替换、修改awk:格式、统计,grep,grep-i忽略大小写grep-v只显示未匹配的grep-w整个单词匹配grep-n同时打印所在行数grep-E正则匹配grep-help,sed,直接修改file文件,删除#开头的行sed-i/#/dfile先删除头三行再替换字符串sed-e1,3d-es/moding/moden/gfile直接把fileb文件内容追加到filea中匹配位置sed/text/rfilebfilea,awk,确保整个awk命令用单引号括起确保命令内所有引号成对出现确保用花括号括起动作语句确保用圆括号括起条件语句awkBEGINcode=400($9=code)i+ENDprinti/NR=i/NRaccess.log,内容导航,Bash基础Bash语法常用命令经验分享,经验分享,常见错误调试技巧脚本规范其他工具推荐书目,常见错误,赋值时等号有空格测试时没有空格使用未定义的变量或环境变量不一致使用带空格的变量时没有加双引号使用了错误的引号文件名包含空格或-定时任务堆积致系统资源耗尽,调试技巧,打印出变量的值观察打印出要执行的命令观察观察命令的返回值把crontab中执行的脚本做重定向观察错误提示set-x观察脚本的执行过程,脚本规范,#!/bin/bash#Description:#Author:#Version:#History:#exportPATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/binvar_a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 象棋胜负判断课件
- 诺病毒知识培训课件
- 2025年分布式光伏发电项目电力建筑工程安装劳务分包合同
- 2025年度教育机构场地租赁与课程合作合同
- 2025年新能源项目法律咨询与服务合同范本
- 2025版大型商业综合体水电安全运行管理合同
- 2025版建筑塔吊安装施工安全监督合同
- 2025年厨房空间利用优化与装修改造合同范本
- 2025年度商业地产项目投资风险评估与预警服务合同
- 2025年度房产租赁保证金退还合同书
- 路灯灯杆项目投资计划书
- 环保项目配电室电气安装方案
- 新概念第二册单词表(完整版)
- 初三考试化学试卷(含答案)
- 2024-2025学年小学信息技术(信息科技)五年级全一册义务教育版(2024)教学设计合集
- 【新课标】人音版五年级上册第一单元 朝夕 大单元整体教学设计
- 自然保护区管理中的生态系统恢复策略
- 试车跑道专项方案
- 2024年交管12123学法减分试题题库附答案
- 2024年湖南省长沙住房公积金管理中心招聘历年高频难、易点(公共基础测验共200题含答案解析)模拟试卷
- KA-T 20.1-2024 非煤矿山建设项目安全设施设计编写提纲 第1部分:金属非金属地下矿山建设项目安全设施设计编写提纲
评论
0/150
提交评论