xml地图|网站地图|网站标签 [设为首页] [加入收藏]
分支与循环结构,windows下的命令行工具babun
分类:操作系统

什么是babun

babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell。用官方的题目说就是A Windows shell you will love!

 

babun的几个特点

使用babun无需管理员权限
先进的安装包管理器(类似于linux上面的apt-get或yum)
预先配置了Cygwin和很多插件
拥有256色的兼容控制台
HTTP(S)的代理支持
面向插件的体系结构
可以使用它来配置你的git
集成了oh-my-zsh
自动升级
支持shell编程,内置VIM等

Cygwin

babun的核心包括一个预配置的Cygwin。cygwin是一个非常好的工具,但有很多使用技巧,使你能够节省大量的时间。babun解决了很多问题,它里面包含了很多重要的软件包,是你能够第一时间能够使用它们。

包的管理:
babun的包管理在shell输入:pact,这类似于:apt-get或yum,来非常方便的管理软件包,安装、升级、搜索和删除,让你省区很多麻烦,shell输入pact —help能够获得帮助信息。

shell

babun的shell通过调整,已达到最佳的用户体验,babun有两个配置之后马上使用的shell(默认使用zsh),babun的shell具有以下的特点

语法高亮
具有unix的工具
软件开发工具
git-语义提示
自定义脚本和别名
等等………

Console

babun支持HTTP代理,只需添加地址和HTTP代理服务器的凭据。babunrc文件所在文件夹执行源babunrc启用HTTP代理。目前还不支持SOCKS代理。

开发者工具

babun提供多种方便的工具和脚本,是你的开发工作更轻松,具有的功能如下

编程语言(python,Perl, etc等)
git(各种各样的别名调整)
UNIX工具((grep, wget, curl, etc)
vcs (svn, git)
oh-my-zsh
自定义脚本(pbcopy, pbpaste, babun, etc)

babun官网链接:

分支与循环结构

if语句是实际生产工作中最重要且最常用的语句,所以,必须掌握牢固。

1.   ls      查看当前目录下的所有文件夹

什么是cmder

cmder是window下的多标签命令行工具,可以方便的新建cmd、cmd admin、powershell、powershell admin多种命令行,设置很多,功能强大。

if条件句

2.   pwd   查看当前所在的文件夹

安装

if条件句语法

  • 单分支结构

语法

  1. if [ 条件 ]

  2.   then

  3.     指令

  4. fi

  5. if [ 条件 ];then

  6.     指令

  7. fi

条件表达式[ -f "$file1" ]&& echo 1,相当于下面的if语句。

  1. if [ -f "$file1" ];then

  2.     echo 1

  3. fi

  • 双分支结构
  1. if [ 条件 ]

  2.   then

  3.     指令集1

  4. else

  1.     指令集2

  2. fi

条件表达式[ -f "$file1" ]&& echo 1||echo 0,相当于双分支if [ -f "$file1" ];then echo 1;else echo 0;fi。

  • 多分支结构
  1. if 条件

  2.   then

  3.     指令

  4. elif 条件

  5.   then

  6.     指令

  7. elif 条件

  8.   then

  9.     指令

  10.     ...

  11.   else

  1.     指令

  2. fi

3. cd 目录名  切换文件夹

cmder安装

下载:

cmder是开箱即用的软件就不在详述了,具体使用可参考官网说明。

单分支if条件句

开发shell脚本判断系统剩余内存的大小,如果低于100M就邮件报警给管理员,并加入系统定时任务每三分钟执行一次检查。

free -m|awk 'NR==2{print $4}'

  1. [root@lamp ~]# cat free_m.sh
  1. #!/bin/bash

  2.  

  3. FREE=`free -m|awk 'NR==3{print $4}'`

  1. if [ $FREE -lt 100 ]

  2.   then

  3.     echo "warning:The available memory $FREE."

  1.     exit 0

  2. fi

  3. echo "The available memory $FREE."

4. touch 文件名  创建文件

babun安装

下载:

双多分支if条件句

用if双分支实现read读入的方式比较两个数的大小。

  1. [root@lamp ~]# cat c3.sh

  2. #!/bin/bash

  3. read -p "Pls input two nums: " num01 num02

  1. [ -z $num01 ]&&{

  2.   echo "the num01 you input must be int."

  1.   exit 2

  2. }

  3. [ -z $num02 ]&&{

  4.   echo "the num02 you input must be int."

  1.   exit 2

  2. }

  3. expr $num01 + $num02 + 1 &>/dev/null

  4. [ $? -ne 0 ]&&{

  5.   echo "the num you input must be int."

  1.   exit 2

  2. }

  3. if [ $num01 -lt $num02 ]

  4.   then

  5.     echo "$num01 < $num02."

  6. elif [ $num01 -gt $num02 ]

  7.   then

  8.     echo "$num01 > $num02."

  9.   else

  1.     echo "$num01 = $num02."

  2. fi

用if双分支实现对nginx或mysql服务是否正常进行判断,使用进程数、端口、url的方式判断,如果进程没起,把进程启动。

web服务和数据库(mysql)的监控方法。

1、端口监控

本地监控:netstat、ss、lsof

远程监控:telnet、nmap、nc

telnet监控端口

  1. [root@lamp ~]# echo -e "n"|telnet www.baidu.com 80|grep Connected|wc -l

  2. Connection closed by foreign host.

  1. 1

nmap监控端口

  1. [root@lamp ~]# nmap www.baidu.com -p 80|grep open|wc -l

  2. 1

nc监控端口

  1. [root@lamp ~]# nc -z 192.168.163.128 22|grep succeeded|wc -l

  2. 1

2、进程监控

本地监控:ps -ef|grep mysql|wc -l

3、wget、curl,http方式根据返回值或者返回内容判断。

4、header(http),http方式根据状态码判断。

5、数据库特有通过mysql客户端连接,根据返回值或者返回内容判断。

  1. [root@lamp ~]# cat check_db.sh
  1. #!/bin/bash

  2. #local

  3. if [ "`netstat -lnt|grep 3306|awk -F "[ :]+" '{print $5}'`" = "3306" ]

  4. #if [ `ps -ef|grep mysql|grep -v grep|wc -l` -gt 0 ]

  5. #if [ `netstat -lntup|grep mysqld|wc -l` -gt 0 ]

  6. #if [ `lsof -i tcp:3306|wc -l` -gt 0 ]

  7.  

  8. #remote

  9. #if [ `nmap 192.168.1.123 -p 3306 2>/dev/null|grep open|wc -l` -gt 0 ]

  10. #if [ `nc -w 2 192.168.1.123 3306 &>/dev/null&&echo ok|grep ok|wc -l` -gt 0 ]

  1.   then

  2.     echo "Mysql is Running."

  3. else

  1.     echo "Mysql is Stopped."

  2.     /deta/mysql start

  3. fi

 

  1. [root@lamp ~]# cat check_web.sh
  1. #!/bin/bash

  2. if [ "`curl -I -s -o /dev/null -w "%{http_code}n" " = "200" ]

  3. #if [ `curl -I 2>/dev/null|head -1|egrep "200|302|301"|wc -l` -eq 1 ]

  1. #curl -s &>/dev/null

  2. #if [ $? -eq 0 ]

  3. #if [ "`curl -s &>/dev/null&&echo $?`" = "0" ]

  4. #if [ "`curl -s " = "bbs" ]

  5.   then

  6.     echo "httpd is running."

  7. else

  1.     echo "httpd is stopped."

  2. fi

 

通过传参的方式往/etc/user.conf里添加用户,具体要求如下:

1、命令用法:USAGE:sh adduser {-add|-del|-search} username

2、传参要求:如果参数为-add,表示添加后面接的用户名;如果参数为-del,表示删除后面接的用户名;如果参数为-search,表示查找后面接的用户名。

3、如果有同名的用户则不能添加,没有对应用户则无需删除,查找到用户以及没有用户时给出明确提示。

4、/etc/user.conf不能被所有外部用户之间删除或修改。

  1. [root@lamp ~]# cat user.sh

  2. #!/bin/bash

  3. ROOT_UID=0

  4.  

  5. if [ "$UID" -ne "$ROOT_UID" ]

  6.   then

  7.     echo "Mast be root to run this script."

  1.     exit 1

  2. fi

  3. if [ $# -ne 2 ]

  4.   then

  5.     echo "USAGE:sh $0 {-add|-del|-search} username."

  6.     exit 2

  7. fi

  8. check=$1

  9. name=$2

  10. if [ "$check" = "add" ]

  11.   then

  12.     result=`cat /etc/user.conf|grep -Fx "$name"`

  13.     [ -z $result ]&&{

  14.       echo "$name" >> /etc/user.conf

  15.       echo "user add "$name" is ok."

  16.       exit 0

  17.     }

  18.     echo "user $name is in."

  19.     exit 0

  20. elif [ "$check" = "del" ]

  21.   then

  22.     result=`cat /etc/user.conf|grep -Fx "$name"`

  23.     [ -z $result ]&&{

  24.       echo "user "$name" not find."

  25.       exit 0

  26.     }

  27.     sed -ri /^$name$/d /etc/user.conf

  1.     echo "user del "$name" is ok."

  2. elif [ "$check" = "search" ]

  3.   then

  4.     result=`cat /etc/user.conf|grep -Fx "$name"`

  5.     [ -z $result ]&&{

  6.       echo "user $name not find."

  7.       exit 0

  8.     }

  9.     echo $result

  10.     exit 0

  11. else

  1.     echo "USAGE:sh $0 {-add|-del|-search} username."

  2.     exit 1

  3. fi

 

获取文件md5值,防篡改。

  1. [root@lamp ~]# find ./ -type f|xargs md5sum

将md5值写入文件。

  1. [root@lamp ~]# find ./ -type f|xargs md5sum >/tmp/md5list

比较md5值。

  1. [root@lamp ~]# md5list -c /tmp/md5list  

5. mkdir 目录名  创建文件夹

本文由澳门新葡亰手机版发布于操作系统,转载请注明出处:分支与循环结构,windows下的命令行工具babun

上一篇:文件权限,win10双系统开机系统引导 下一篇:没有了
猜你喜欢
热门排行
精彩图文