![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shell
文章平均质量分 81
yujin2010good
每天学习一点点,进步一点点。
展开
-
shell学习三十--综合应用
for循环打印下面这句话中的字母数不大于6的单词I am oldboy teacher welcome to wolf training class.[root@node01 day13]# vi arr01.sh arr=(I am oldboy teacher welcome to wolf training class.)for wolf in ${arr[@]}do原创 2017-12-08 00:05:59 · 235 阅读 · 0 评论 -
shell学习二十三--case语句编写mysql启动脚本
六、例子:开发mysql单实例或者多实例启动脚本已知mysql多实例启动命令为:mysqld_safe --deafaults-file=/data/3306/my.cnf &停止命令mysqladmin -u root -p123 -S /data/3306/mysql.sock shutdown请完成mysql单实例或者多实例启动脚本编写。要求:用函数、case语句等实原创 2017-11-21 21:11:12 · 365 阅读 · 0 评论 -
shell学习之二十--函数及函数的作用
一、定义函数和别名差不多,具有和别名相同的功能。简单的说函数的作用就是把程序里多次调用相同的代码部门定义成一份,然后起个名字,所有的调用都只用这个名字就可以了。修改代码时,只需要改变函数体内的代码即可。优势:1、把相同的程序段定义成函数,可以减少程序代码量。2、增加程序的可读、易读性。3、实现程序的功能模块化。二、shell函数的语法语法格式函数名(){原创 2017-11-16 00:16:24 · 1225 阅读 · 0 评论 -
shell学习二十二--case语句
一、case结构条件句语法case语句适用于需要进行多重分支的应用情况。 case分支语句的格式如下: case $变量名 in 模式1)命令序列1 ;; 模式2)命令序列2 ;; *)默认执行的命原创 2017-11-21 00:34:09 · 523 阅读 · 0 评论 -
shell学习之十八--nginx启动脚本(if)
一、安装nginxhttp://blog.csdn.net/yujin2010good/article/details/51637912二、编写脚本(使用if编写nginx启动脚本)1、编写初步脚本[root@node01 day7]# vi nginx_stat.sh #!/bin/sh. /etc/init.d/functionsif [ $# -ne 1 ]原创 2017-11-13 23:22:33 · 984 阅读 · 0 评论 -
shell学习之十五--网站web服务监控
网站web服务的监控6中方法1、端口本地:ss netstat lsof远程:telnet、nmap,nc2、本地进程3、header(http code)curl -I 返回200就ok4、URL(wget、curl),模拟用户的方式5、php、java写监控程序,模拟用户方式。实例:本地端口[root@node01 day7]# lsof -i :8原创 2017-11-13 21:55:45 · 713 阅读 · 0 评论 -
在Linux中让echo命令显示带颜色的字
echo显示带颜色,需要使用参数-e格式如下:echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"例如: echo -e "\033[41;37m TonyZhang \033[0m"其中41的位置代表底色, 37的位置是代表字的颜色 注:1、字背景颜色和文字颜色之间是英文的“""”2、文字颜色后面有个m3、字符串前后可以没有空格,如果有的话转载 2017-11-17 22:54:53 · 333 阅读 · 0 评论 -
shell学习二十一--使用if编写mysql启动脚本
例子:开发mysql单实例或者多实例启动脚本已知mysql多实例启动命令为:mysqld_safe --deafaults-file=/data/3306/my.cnf &停止命令mysqladmin -u root -p123 -S /data/3306/mysql.sock shutdown请完成mysql单实例或者多实例启动脚本编写。要求:用函数、if语句等实现。原创 2017-11-17 18:38:22 · 1549 阅读 · 0 评论 -
利用shell分析公网地址来源
先从nginx里查出访问ipcat qq.wolf.com_access.log |grep "12/Nov/2017"| awk '{print $1}' >/tmp/wolf.log发现awk打印完有个逗号,去处逗号(三种方法)awk '{sub(/.$/,"")}1' /tmp/wolf.log >wolf.txtawk '{printf $0"\b \n"}' /原创 2017-11-12 21:20:10 · 428 阅读 · 0 评论 -
shell学习十六--read
例题1:如果读入的不是整数或者参数不是两个(可以判断有没有输入内容),以上shell脚本的执行会有什么结果?如何解决这两个问题?思考:1、输入为两个值过关。2、输入均为整数过关。3、计算方法一使用read[root@node01 day6]# vi read1.sh #!/bin/bashread -p "please insert values:"原创 2017-10-31 21:08:02 · 310 阅读 · 0 评论 -
shell学习--十九web站点串改监控
监控web站点目录(/var/html/www)下所有的文件是否被修改(文件内容被改了),如果有就打印改动的文件名(发邮件),定时任务每3分钟执行一次(10分钟)。思想:1、思想2、未经允许3、文件被改了,会有特征。 a、大小可能会变化 b、修改时间(文件测试符ot,nt) c、文件内容会变化,md5sum指纹 d、增减或者删掉了问题原创 2017-12-10 00:10:38 · 326 阅读 · 0 评论 -
shell在用sleep睡眠
在有的shell(比如linux中的bash)中sleep还支持睡眠(分,小时)sleep 1 睡眠1秒sleep 1s 睡眠1秒sleep 1m 睡眠1分sleep 1h 睡眠1小时转载 2017-12-11 16:31:02 · 1814 阅读 · 0 评论 -
ECHO命令详解
linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法 echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。该命令的一般格式为: echo [ -n ] 字符串其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用ech转载 2017-12-02 22:47:35 · 1357 阅读 · 0 评论 -
seq命令总结
用法:seq [选项]... 尾数seq [选项]... 首数 尾数seq [选项]... 首数 增量(步长) 尾数注意:1、以指定增量从首数开始打印数字到尾数,如果省略了首数或者增量,则默认其值为1,即使这样尾数仍小于首数。2、首数、增量和尾数均以浮点数形式解释。当首数小于尾数时增量一般为正值,3、相反在首数大于尾数时增量一般为负数。4、指定的格式必须适用于显示"原创 2017-11-27 22:17:28 · 850 阅读 · 0 评论 -
shell学习三十--shell调试
1、dos2unixLinux本身提供了dos2unix和unix2dos这两个命令来实现windows和linux文件的转换,Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n. dos2unix命令其实就是将文件中的\r\n 转换为\n。dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令。unix2dos原创 2017-12-14 20:52:12 · 235 阅读 · 0 评论 -
shell学习二十九--数组
shell数组数组:简单的说就是相同数据类型的元素按一定顺序排列的组合。数组是把有限的类型相同的变量用一个名字命名,然后用用编号区分他们的变量的集合。这个名字成为数组名,编号成为数组下标。何为数组?学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义的呢,我们来看两种数据类型:原创 2017-12-05 23:12:25 · 365 阅读 · 0 评论 -
shell学习二十八--centos7初始化脚本
#!/bin/bashdeclare run_time_1=`date "+%Y.%m.%d-%H:%M:%S"`if [[ "$(whoami)" != "root" ]]; then echo "please run this script as root ." >&2 exit 1fi echo -e "\033[31m 这个是centos7系统初原创 2017-12-02 22:30:01 · 1637 阅读 · 0 评论 -
shell学习二十四--while循环
一、当型循环和直到型循环当型循环结构:在每次执行循环体前,对条件进行判断,当条件满足时,执行循环体,否则终止循环。直到型循环结构:在执行了一次循环体后,对条件进行判断,如果条件不满,就继续执行,知道条件满足终止循环。Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型原创 2017-11-26 15:30:11 · 1198 阅读 · 0 评论 -
shell学习二十七--循环控制命令
循环控制命令break continue exit对比:break continue exit一般用于循环结构中控制循环(for,while,if)的走向。命令 说明break n n 表示跳出循环的层数,如果省略n表示跳出整个循环。continue n n 表示退到第n层继续循环,如果省略n表示跳出本次循环,忽略本次循环的剩余代码,进入循环的下一次循原创 2017-12-04 23:49:14 · 419 阅读 · 0 评论 -
shell之转义字符\
转义字符反斜线(\)是bash的转义字符,也叫逃逸字符或者转义字符。我们想让 通配符,或者元字符变成普通字符,不需要使用它。那么这里我们就需要用到转义符了实例:[root@sande-lvs01 ~]# echo 9 * 9 = 819 1.txt anaconda-ks.cfg install.log install.log.syslog install.log.tar in原创 2017-12-12 21:40:52 · 107734 阅读 · 2 评论 -
shell学习二十六--linux下随机数获取方法
1、$RANDOM (0-32768)[root@node01 day12]# echo $RANDOM108532、openssl[root@node01 day12]# openssl rand -base64 8Shn9MV2GZgY=[root@node01 day12]# openssl rand -base64 107qWOuj7jxnxaLQ==3、原创 2017-12-03 20:41:43 · 254 阅读 · 0 评论 -
shell学习二十五--for循环
一、for循环结构1、for循环语法for 变量 in 变量取值列表do 指令done提示:在此结构中“in 变量取值列表”可以省略,省略时相当于in “$@”,使用for i就相当于使用for i in “$@”。2、c语言型for循环语法for ((exp1;exp2;exp3))do 指令done实例1:[root@node原创 2017-12-03 13:21:14 · 1134 阅读 · 0 评论 -
shell学习十七--条件表达式test、[]、[[]]
一、条件测试测试语句在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作,有时也会通过与if等条件语句相结合,让我们可以方便的完成判断。格式1:test 格式2:[]格式3:[[]]说明:格式1和格式2是等价的。格式3为扩展的test命令,有网友推荐用格式3。提示1、测试文件是否存在[root@node01 ~原创 2017-11-07 23:41:48 · 8691 阅读 · 0 评论 -
彻底解决Linux索引节点(inode)用满导致故障的方法
登录到服务器上df -i一看/路径下96%而数据目录/data下才用了30%故初步判断生成的数据量正常可能是一些系统产生的文件把根路径占满了于是乎在执行以下命令查看根路径下各个文件夹的文件数 for i in /*; do echo $i; find $i |wc -l|sort -nr; done 数文件数超过10W的有两个/data我们的数据分区确认数转载 2017-10-11 22:56:48 · 957 阅读 · 0 评论 -
shell学习十四--编写监控mysql脚本
shell编写监控mysql脚本判断服务存活方法1、端口[root@node01 ~]# netstat -lntup|grep 330tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 127641/mysqld 2、进程判断[root@n原创 2017-09-19 23:41:16 · 614 阅读 · 0 评论 -
shell学习四-----特殊变量二
7、学习使用系统脚本/etc/init.d/rpcbind [root@node01 day2]# vi /etc/init.d/rpcbind #! /bin/sh## rpcbind Start/Stop RPCbind## chkconfig: 2345 13 87# description: The rpcbind原创 2017-08-03 02:12:24 · 443 阅读 · 0 评论 -
shell学习二-----变量基本知识
shell学习二一、变量基础和深入1、概念 变量--简单的说,变量就是用一个固定的字符串(也可能是字符数字等的组合),替换多更复杂的内容这个内容可能还会包含变量和路径,字符串等其他内容。2、变量的类型 环境变量和局部变量 环境变量:定义shell运行的环境。如:登陆用户名、命令路径、终端类型、登录目录等。所有系统变量都是全局环境变量,可用于所有的子原创 2017-07-30 23:51:46 · 332 阅读 · 0 评论 -
shell学习八-----变量数值计算(())
数值计算1、常用的变量数值计算(())、let、expr、$[]、bc(小数)其他是整数。2、(())用法(常用)如果要执行整数计算,可以用(())就可以进行整数计算++-- 增加及减少,可以前置也可以放在结尾+-!~ 一元的正好与原创 2017-08-07 23:57:52 · 3190 阅读 · 0 评论 -
Linux 之 shell 比较运算符
运算符描述示例文件比较运算符-e filename如果 filename 存在,则为真[ -e /var/log/syslog ]-d filename如果 filename 为目录,则为真[ -d /tmp/mydir ]-f filename如果 filename 为常规文件转载 2017-08-08 00:01:18 · 250 阅读 · 0 评论 -
shell系统学习一--基本知识
shell系统学习一一、学习背景 做运维很多年,从网管、系统、数据库中间使用了很多脚本,感觉都是片段的学习了shell,也能够使用和编写一些的脚本,但是总觉得很多不足,这次系统学习一下。shell是自动化运维的基础1、vi/vim2、liunx 150个常用命令熟练使用3、常见的liux网络服务部署及排错:crond、nfs、rsync、inotify、l原创 2017-07-29 22:21:36 · 847 阅读 · 0 评论 -
强大的批量shell命令
1、首先rsh或者ssh肯定在环境里肯定是正常的2、配置nodes(所有被管理的节点hostname)3、脚本# cat dsh#!/bin/sh command=$@; for I in `cat ./nodes|grep -v ^#` do echo $I; rsh $I "$comma原创 2013-05-11 20:13:22 · 1543 阅读 · 0 评论 -
rman备份脚本
rman shell脚本编辑先在rman里面测试,看是否正常备份,在进行判断语句测试。备份脚本sh命令rmanl0.shrman target / msglog=/oracle/ora10g/rmanbak/bakl0.log cmdfile=/oracle/ora10g/rmanbak/script/rman_bak_l0.sqlrmanl1.shrman targe原创 2013-05-05 23:00:58 · 1236 阅读 · 0 评论 -
shell命令基本参数
shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回真 -c 当file存在并且是字符文件时返回真 -d 当pathname存在并且是一个目录时返回真 -e 当pathname指定的文件或目录存在时返回真 -f 当file存在并且是正规文件时返回真 -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真转载 2013-05-21 15:37:05 · 726 阅读 · 0 评论 -
linux ftp脚本
上传#!/bin/bashhostname=192.168.1.100username=hahapassword="mima"ftp -ivn $hostnameuser $username $passwordbinaryhash#lcd /tmp#cd /tmppromptmput * byeYUKUAI 下载#!/bin原创 2012-09-17 21:22:03 · 2554 阅读 · 0 评论 -
linux下ping加时间戳
由于一些原因,比如需要检查网络之间是否存在掉包等问题,会长时间去ping一个地址,由于会输出大量的信息而且最好要有时间戳,因此我们可以使用简单的几个shell命令组合就可以实现:长时间ping一个地址,记录每次ping的时间戳,并输出到文本保存,另外我们还可以将这个动作放到后台去执行,以免登陆注销之后被中断。首先是长时间ping,这个非常简单,使用参数-c即可:[root@test ~]#转载 2017-08-04 00:00:41 · 13712 阅读 · 0 评论 -
linux下使用shell批量修改文件名几种方法总结
1、通过sed替换[root@node01 wolf]# find / -type f -name wolf.log/wolf.log/tmp/wolf.log/root/wolf/wolf.log[root@node01 wolf]# sed -i 's#wolf#yujing#g' `find / -type f -name wolf.log`[root@node01原创 2017-08-06 20:05:00 · 4987 阅读 · 0 评论 -
shell学习五----变量子串
1、内置命令[root@node01 ~]# which cd/usr/bin/which: no cd in (/data/apache-maven-3.3.9/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)[root@node01 ~]原创 2017-08-06 20:02:11 · 356 阅读 · 0 评论 -
shell学习十三--分支与循环
分支与循环一、单分支if 语句格式if 条件then Commandfi 或if[command];then if 这里的分号相当于换行 函数then上面两种语法等同特殊写法:if[ -f "$file1" ];then echo 1 相当于:[ -f "$file1" ]&&echo 1例子原创 2017-09-18 23:52:40 · 804 阅读 · 0 评论 -
shell学习十一--bc
bc(独有特点既包含整数,也包含小数)bc是一种任意精度的计算语言,注意是一种语言,它提供了一些语法结构,比如条件判断、循环等,可以说是很强大的,但是我在实际中还没有找到需要这个用途的场合 。另外一个用途就是用来进行进制转换。参数-i 强制交互模式;-l 使用bc的内置库,bc里有一些数学库,对三角计算等非常实用;-q 进入bc交互模式时不再输出版本等多余的信息。原创 2017-08-30 23:22:56 · 494 阅读 · 2 评论 -
shell学习十--expr及expr和let性能比较
exprexpr命令一般用于整数值,但也可用于字符串。格式 :expr arg一、计算例子1:[root@node01 day4]# expr 2 + 24[root@node01 day4]# expr 2 + 13[root@node01 day4]# expr 2 - 11[root@node01 day4]# expr 2 -1 两边都必须原创 2017-08-30 22:52:46 · 1052 阅读 · 0 评论