-
证道shell编程
收藏一步步学习shell,循序渐进!
最近更新文章
shell脚本杂记(五)
1,找出多个文件所占用的磁盘空间 du f1 f2
[root@master hadoopsys]# du hosts pub.sh
4 hosts
4 pub.sh
[root@master hadoopsys]#
默认以字节为单位
显示每个目录的大小du -a dir
[root@master hadoopsys]# du -a hadoopconf/
...
shell脚本杂记(四)
1,wget是一个用于文件下载的命令行工具,选项繁多且用法灵活,wget可以下载网页或远程文件,命令: wget url
[root@fse1 919]# wget http://www.cnblogs.com/
--2014-09 ...
shell自动化部署批量建立用户和批量SSH配置
在linux下面,shell脚本熟练使用,有时候可以帮助我们解决很多需要人工做的事情,有些公司比如阿里,或者京东,集群规模非常大,动辄成百上千台服务器,大量的机器如果需要人工去做某些事情,是非常低效,繁琐,容易出错的,所以每个公司都有自己的一套自动化运维的一套程序,今天,散仙在这里分享的只是利用shell+expect实现的一个自动化的部署,主要有2个功能,批量建立用户和批量配置SSH无密码双向登陆 ...
shell自动化部署神器expect
Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。
Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年 开始编写Expect时对Expect做有如下定义 ...
shell脚本杂记(三)
1,我们先来熟悉下正则表达式一些字符含义的基础
^行起始标记
$行尾标记
.匹配任意一个字符
[]匹配包含在[]之中的任意一个字符
[^]匹配除[^字符]之外的任意一个字符 9[^01],可以匹配92,93不会匹配90,91
[-]匹配指定范围内的字符,[1-8]匹配1-8之内的任意一个字符
?匹配0次或1次
+匹配1次或多次
*匹配0次或多次
()创建一个匹配的字串
{n}匹配n次
{n,}至少n ...
shell脚本杂记(二)
1,求两个文件的交集comm a.txt b.txt -1 -2
[root@ph1 915]# cat a.txt
a
b
c
d
[root@ph1 915]# cat b.txt
a
b
c
e
h
[root@ph1 915]# comm a.txt b.txt -1 -2
a
b
c
[root@ph1 915]#
打印两个文件不同的行
[root ...
shell脚本杂记(一)
1,登陆系统时,$代表普通用户,#代表管理员用户
2,执行多个命令时cmd1;cmd2 使用分号隔开
3,ehco -e "abc\nabc" 转换转义字符,会生成两个换行
4 ...
跟散仙学shell编程(十五)
上篇文章,散仙简单介绍了,如何在Linux下以shell脚本的方式与MySQL交互,本篇,我们来用shell脚本编写几个有用的实战例子
第一个脚本检测磁盘空间的top5
我们先看下du 命令统计:
[search@h1 ~]$ du -s hadoop/*
296 hadoop/bin
230156 hadoop/dddir
132 hadoop/etc
56 ...
跟散仙学shell编程(十四)
上篇散仙简单介绍了linux里面各个shell类型的使用,本篇我们来看下如何在shell里面使用数据库mysql,关于mysql的安装可以参考散仙以前的文章:
http://qindon ...
跟散仙学shell编程(十三)
上篇散仙主要了讲述了gawk进阶的一些用法,本篇我们来了解下载linux中,其他的shell类型,通常情况下,我们最常用的就是bash shell,除此之外,我们还可能遇到另外2个shell类型,dash shell和zsh shell,我们并不需要深入探究,只需要简单了解即可。
dash shell是ash shell的后代因其,并没有多少高级功能,所以并不能作为交互式的shell,而我们一直 ...
跟散仙学shell编程(十二)
上篇文章散仙写了关于sed进阶,本篇我们来看下在linux中另外一种非常强大的文本处理语言gawk,有关于gawk的基础,散仙在前2篇文章,也有介绍,不熟悉的朋友,可以再回顾下。
gawk是一门功能丰富的编程语言,允许你通过编写高级程序来处理数据,只要我们有其他编程语言的经验,不管死JAVA,C#,Python,shell还是javascript,入手gawk都会感到非常亲切和容易。
下面 ...
跟散仙学shell编程(十一)
上篇散仙写了关于shell里面正则的基础知识,本篇我们来特意学习下sed的高级用法。在前面散仙也写过关于sed的基础用法,如果不熟悉的,可以看散仙的前2篇博客温习一下。
sed进阶里面有sed的高级用法,使用sed来处理多行命令,下面我们来看下sed里面特殊的命令:
N:将数据流中的下一行加进来来创建一个多行组来处理
D:删除多行组中的一行
P:打印多行组中的一行
next命令小写的n,会告诉 ...
跟散仙学shell编程(十)
上篇文章,散仙简单介绍了在linux中,使用sed和gawk编程的基础,本篇我们来复习下在正则表达式,当然不仅仅在我们的shell里面有正则,各个编程语言里面都有正则这一处理字符文本的神器。
在shell里面到处可见正则的身影:
[search@h1 820]$ ll
总用量 0
-rw-rw-r-- 1 search search 0 8月 21 02:40 ab.txt
-rw-rw- ...
跟散仙学shell编程(九)
上篇散仙说了如何在linux里面构建更好的交互式shell,本篇来看下linux里面的文本处理工具sed和gawk,在linux里面最常用的就是这两个命令。
sed编辑器是一个流编辑器,与vim交互式的编辑器不同,sed编辑器需要提前提供一组规则来编辑数据流。
sed的命令格式如下sed options script file
(1) -e script 在处理输入时,将script中指定的命令 ...
跟散仙学shell编程(八)
上篇散仙说了linux里面函数的使用,本篇我们来看下如何在shell编写一些简单的shell交互编程,看下散仙写的一个小shell的demo类似JAVA控制台下的编程:
[search@h1 818]$ cat menu.sh
function wec { echo "welcomeaaa"; }
function dis { clear ; df ...
跟散仙学shell编程(七)
上篇散仙在文章里描述了如何处理linux信号和脚本控制,本节我们来看下,如何在linux使用基本的脚本函数,等一些shell的高级用法!
在JAVA里,我们经常在类里面使用方法,正因为类的出现,才使JAVA为面向对象编程,在shell里面虽然没有类的高级特性,但是,基本的函数编程还是存在的。
在linux里面定义方法或函数的两种形式:
一:
function name{
commands
...
跟散仙学shell编程(六)
上篇介绍了linux里面的处理数据的方式,本篇散仙来说下,如何在linux里面控制脚本的执行。
在linux里面我们最常遇见的几个linux信号如下:
序号信号值描述11sighup挂起进程22sigint终止进程33sigquit停止进程49sigkill无条件终止进程515sigterm可能的话终止进程617sigstop无条件停止进程,但不是终止进程718sigtstp停止或暂停进程,但不 ...
跟散仙学shell编程(五)
上一篇写的是处理用户输入,本篇散仙要写的是linux里面的标准输入,输出,以及文件描述符的使用。
linux系统将每个对象当做文件来处理,这包括输入和输出的过程,linux用文件描述符来标识每个文件对象,文件描述符是一个非负整数,可以唯一的的标识会话中打开的文件,每个过程最多可以有9个文件描述符,linux系统默认占用了0,1,2三个文件描述符
序号文件描述符符号缩写描述10STDIN标准输入 ...
跟散仙学shell编程(四)
上篇介绍了for循环命令的使用,本篇的shell学习,我们来看下如何在shell环境下处理用户的输入,我们可以向运行的shell从外部传入一些参数,通常情况下 ...
跟散仙学shell编程(三)
散仙在上一篇文章里写了关于如何使用if-else以及case等流程控制的用法,本篇呢,来看下如何在shell里面使用更多的结构化命令,那么就是我们的循环了。
在shell里面基本的for循环的命令格式:
for var in list
do
commands
done
[search@h1 fortest]$ cat t1.sh
for t in i have a dog
d ...