shell编程
三劫散仙
唯有学习,可以解忧
展开
-
跟散仙学shell编程(一)
前面散仙已经把Linux基础的shell命令系列的博客完工,如果没有任何linux基础的朋友,建议先从shell命令开始学习,如果有一定基础的就可以直接跳过。从本篇起,散仙要写的是关于shell编程系列的知识。前面我们例子里面的命令,基本都是单个执行的,但是在linux下,只有把命令组合成一个脚本,发挥的作用,才是巨大的,这就类似于一个砖头没啥用处,但是用很多砖头,我们就可以盖一座大厦...2014-08-07 21:36:56 · 113 阅读 · 0 评论 -
跟散仙学shell编程(十四)
上篇散仙简单介绍了linux里面各个shell类型的使用,本篇我们来看下如何在shell里面使用数据库mysql,关于mysql的安装可以参考散仙以前的文章:[url]http://qindongliang.iteye.com/blog/1987199[/url]下面看下如何在脚本里面使用mysql数据库:首先我们使用which命令,找到mysql的启动路径[code="jav...2014-08-26 20:59:41 · 114 阅读 · 0 评论 -
跟散仙学shell编程(十五)
上篇文章,散仙简单介绍了,如何在Linux下以shell脚本的方式与MySQL交互,本篇,我们来用shell脚本编写几个有用的实战例子第一个脚本检测磁盘空间的top5我们先看下du 命令统计:[code="java"][search@h1 ~]$ du -s hadoop/*296 hadoop/bin230156 hadoop/dddir132 ...2014-08-27 21:24:08 · 99 阅读 · 0 评论 -
备忘几个有用的shell脚本
[b][color=olive][size=large](1)在shell下,操作hadoop目录,批量命名或删除,最终的命令sed的正则贪婪替换,看下面的脚本:[/size][/color][/b][code="java"]# 遍历 hadoop 目录下的文件名for line in `hadoop fs -ls /user/d1 | gawk '{ print $8 }...2015-04-07 21:59:32 · 95 阅读 · 0 评论 -
shell脚本杂记(一)
1,登陆系统时,$代表普通用户,#代表管理员用户2,执行多个命令时cmd1;cmd2 使用分号隔开3,ehco -e "abc\nabc" 转换转义字符,会生成两个换行4,拼接环境变量例子:export PATH="$PATH:/home/user/bin"5,获取字符串的长度:[code="java"][root@ganglia ~]# var="abc" ; ec...2014-09-12 21:50:25 · 175 阅读 · 0 评论 -
shell脚本杂记(二)
1,求两个文件的交集comm a.txt b.txt -1 -2[code="java"][root@ph1 915]# cat a.txt abcd[root@ph1 915]# cat b.txt abceh[root@ph1 915]# comm a.txt b.txt -1 -2abc[root@ph1 915]# [/...2014-09-15 21:25:12 · 138 阅读 · 0 评论 -
shell脚本杂记(三)
1,我们先来熟悉下正则表达式一些字符含义的基础^行起始标记$行尾标记.匹配任意一个字符[]匹配包含在[]之中的任意一个字符[^]匹配除[^字符]之外的任意一个字符 9[^01],可以匹配92,93不会匹配90,91[-]匹配指定范围内的字符,[1-8]匹配1-8之内的任意一个字符?匹配0次或1次+匹配1次或多次*匹配0次或多次()创建一个匹配的字串{n}...2014-09-16 19:58:37 · 158 阅读 · 0 评论 -
shell自动化部署神器expect
Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年 开始编写Expect时对Expect做有如...2014-09-17 21:08:15 · 292 阅读 · 0 评论 -
shell自动化部署批量建立用户和批量SSH配置
[b][color=green][size=large]在linux下面,shell脚本熟练使用,有时候可以帮助我们解决很多需要人工做的事情,有些公司比如阿里,或者京东,集群规模非常大,动辄成百上千台服务器,大量的机器如果需要人工去做某些事情,是非常低效,繁琐,容易出错的,所以每个公司都有自己的一套自动化运维的一套程序,今天,散仙在这里分享的只是利用shell+expect实现的一个自动化的部署,...2014-09-18 18:29:59 · 257 阅读 · 0 评论 -
shell脚本杂记(四)
1,wget是一个用于文件下载的命令行工具,选项繁多且用法灵活,wget可以下载网页或远程文件,命令: wget url[code="java"][root@fse1 919]# wget http://www.cnblogs.com/--2014-09-20 02:00:48-- http://www.cnblogs.com/正在解析主机 www.cnblogs.com... 42...2014-09-19 20:03:41 · 208 阅读 · 0 评论 -
跟散仙学shell编程(十三)
上篇散仙主要了讲述了gawk进阶的一些用法,本篇我们来了解下载linux中,其他的shell类型,通常情况下,我们最常用的就是bash shell,除此之外,我们还可能遇到另外2个shell类型,dash shell和zsh shell,我们并不需要深入探究,只需要简单了解即可。dash shell是ash shell的后代因其,并没有多少高级功能,所以并不能作为交互式的shell,而...2014-08-25 20:02:37 · 124 阅读 · 0 评论 -
跟散仙学shell编程(十二)
上篇文章散仙写了关于sed进阶,本篇我们来看下在linux中另外一种非常强大的文本处理语言gawk,有关于gawk的基础,散仙在前2篇文章,也有介绍,不熟悉的朋友,可以再回顾下。gawk是一门功能丰富的编程语言,允许你通过编写高级程序来处理数据,只要我们有其他编程语言的经验,不管死JAVA,C#,Python,shell还是javascript,入手gawk都会感到非常亲切和容易。...2014-08-22 21:27:27 · 176 阅读 · 0 评论 -
跟散仙学shell编程(十一)
上篇散仙写了关于shell里面正则的基础知识,本篇我们来特意学习下sed的高级用法。在前面散仙也写过关于sed的基础用法,如果不熟悉的,可以看散仙的前2篇博客温习一下。sed进阶里面有sed的高级用法,使用sed来处理多行命令,下面我们来看下sed里面特殊的命令:N:将数据流中的下一行加进来来创建一个多行组来处理D:删除多行组中的一行P:打印多行组中的一行next命...2014-08-21 21:45:19 · 142 阅读 · 0 评论 -
跟散仙学shell编程(二)
散仙本篇主要讲在shell里面的流程控制,流程控制是所有的编程语言里面必不可少的一部分,通过流程控制,可以使我们的程序更加灵活。下面我们来看看如何在shell里面使用if else流程控制语句,shell里面的流程控制语句比较特殊的其他的编程语言里,比如JAVA,都是通过一个boolean的值,来判断是否通过某个流程,在shell里面,却是通过shell执行命令的状态码来识别的,返...2014-08-08 21:33:19 · 124 阅读 · 0 评论 -
跟散仙学shell编程(三)
散仙在上一篇文章里写了关于如何使用if-else以及case等流程控制的用法,本篇呢,来看下如何在shell里面使用更多的结构化命令,那么就是我们的循环了。在shell里面基本的for循环的命令格式:for var in listdo commandsdone[code="java"][search@h1 fortest]$ cat t1.sh fo...2014-08-11 21:38:55 · 181 阅读 · 0 评论 -
跟散仙学shell编程(四)
上篇介绍了for循环命令的使用,本篇的shell学习,我们来看下如何在shell环境下处理用户的输入,我们可以向运行的shell从外部传入一些参数,通常情况下$0是程序名$1是第一个参数$2是第二个参数依次类推知道第9个参数$9第9个之后需要${10}以此,至无限的 [code="java"][search@h1 812]$ cat a.sh e...2014-08-12 21:46:45 · 113 阅读 · 0 评论 -
跟散仙学shell编程(五)
上一篇写的是处理用户输入,本篇散仙要写的是linux里面的标准输入,输出,以及文件描述符的使用。linux系统将每个对象当做文件来处理,这包括输入和输出的过程,linux用文件描述符来标识每个文件对象,文件描述符是一个非负整数,可以唯一的的标识会话中打开的文件,每个过程最多可以有9个文件描述符,linux系统默认占用了0,1,2三个文件描述符[table]|序号|文件描述符...2014-08-13 21:41:55 · 124 阅读 · 0 评论 -
跟散仙学shell编程(六)
上篇介绍了linux里面的处理数据的方式,本篇散仙来说下,如何在linux里面控制脚本的执行。在linux里面我们最常遇见的几个linux信号如下:[table]|序号|信号|值|描述|1|1|sighup|挂起进程|2|2|sigint|终止进程|3|3|sigquit|停止进程|4|9|sigkill|无条件终止进程|5|15|sigterm|可能的话终...2014-08-14 21:53:08 · 161 阅读 · 0 评论 -
跟散仙学shell编程(七)
上篇散仙在文章里描述了如何处理linux信号和脚本控制,本节我们来看下,如何在linux使用基本的脚本函数,等一些shell的高级用法!在JAVA里,我们经常在类里面使用方法,正因为类的出现,才使JAVA为面向对象编程,在shell里面虽然没有类的高级特性,但是,基本的函数编程还是存在的。在linux里面定义方法或函数的两种形式:一:function name{ ...2014-08-15 21:46:52 · 124 阅读 · 0 评论 -
跟散仙学shell编程(八)
上篇散仙说了linux里面函数的使用,本篇我们来看下如何在shell编写一些简单的shell交互编程,看下散仙写的一个小shell的demo类似JAVA控制台下的编程:[code="shell"][search@h1 818]$ cat menu.sh function wec { echo "welcomeaaa"; }function dis { cle...2014-08-18 21:50:58 · 129 阅读 · 0 评论 -
跟散仙学shell编程(九)
上篇散仙说了如何在linux里面构建更好的交互式shell,本篇来看下linux里面的文本处理工具sed和gawk,在linux里面最常用的就是这两个命令。sed编辑器是一个流编辑器,与vim交互式的编辑器不同,sed编辑器需要提前提供一组规则来编辑数据流。sed的命令格式如下sed options script file(1) -e script 在处理输入时,将script...2014-08-19 21:49:02 · 147 阅读 · 0 评论 -
跟散仙学shell编程(十)
上篇文章,散仙简单介绍了在linux中,使用sed和gawk编程的基础,本篇我们来复习下在正则表达式,当然不仅仅在我们的shell里面有正则,各个编程语言里面都有正则这一处理字符文本的神器。在shell里面到处可见正则的身影:[code="java"][search@h1 820]$ ll总用量 0-rw-rw-r-- 1 search search 0 8月 21 02:4...2014-08-20 21:22:26 · 129 阅读 · 0 评论 -
shell脚本杂记(五)
1,找出多个文件所占用的磁盘空间 du f1 f2[code="java"][root@master hadoopsys]# du hosts pub.sh 4 hosts4 pub.sh[root@master hadoopsys]# [/code]默认以字节为单位显示每个目录的大小du -a dir[code="java"][root@...2014-09-22 19:48:08 · 204 阅读 · 0 评论