1.传给脚本一个参数:目录,输出该目录中文件最大的,文件名和文件大小

  1. #!/bin/bash
  2. if [ $# -ne 1 -o ! -d $1 ];then
  3. echo "Args is error."
  4. exit 3
  5. fi
  6.  
  7. LC=`du -a $1 | wc -l`
  8. for I in `seq $LC` ;do
  9. size=`du -a $1 | sort -nr | head -$I | tail -1 | awk '{print $1}'`
  10. filename=`du -a $1 | sort -nr | head -$I | tail -1 | awk '{print $2}'`
  11. if [ -f $filename ];then
  12. echo "The big file is $filename ,Size is $size."
  13. break
  14. fi
  15. done

2.查询当前192.168.1.x网段内,那些IP被使用了,输出这些IP到一个文件中。

  1. #!/bin/bash
  2.  
  3. for I in {1..254};do
  4. N=`ping -c 1 192.168.1.$I | awk -F, '/received/ {print $2}' | cut -d' ' -f2`
  5. [ $N -eq 1 ] && echo "192.168.1.$I" >>/tmp/ips.txt
  6. done

3.把shell为bash的用户输出到/tmp/users.txt中

  1. #!/bin/bash
  2. LC=`wc -l /etc/passwd | awk '{print $1}'`
  3. N=1
  4. for I in `seq $LC` ;do
  5. SHE=`head -$I /etc/passwd | tail -1 | cut -d: -f7`
  6. U=`head -$I /etc/passwd | tail -1 | cut -d: -f1`
  7. if [ $SHE == '/bin/bash' ];then
  8. echo -e "$N \t $U" >> /tmp/users.txt
  9. N=$[$N+1]
  10. fi
  11. done

4.依次向/etc/passwd中的每个用户问好,输出用户名和id,并统计一共有多少个用户

(1)写法一

  1. #!/bin/bash
  2. file="/etc/passwd"
  3. LINES=`wc -l $file | cut -d" " -f1`
  4. for I in `seq 1 $LINES`;do
  5. userid=`head -$I $file | tail -1 |cut -d: -f3`
  6. username=`head -$I $file | tail -1 |cut -d: -f1`
  7. echo "hello $username,your UID is $userid"
  8. done
  9. echo "there are $LINES users"

(2).写法二

  1. #!/bin/bash
  2. file=/etc/passwd
  3. let num=0
  4. for I in `cat $file`;do
  5. username=`echo "$I" | cut -d: -f1`
  6. userid=`echo "$I" | cut -d: -f3`
  7. echo "Hello,$username,your UID is $userid"
  8. num=$[$num+1]
  9. done
  10. echo "there are $num users"

5.切换工作目录到/var ,依次向/var 目录中每个文件或子目录问好(形如:Hello,log),并统计/var目录下共有多少个文件显示出来

(提示:for File in /var/*;或 for File in 'ls /var ')

  1. #!/bin/bash
  2. cd /var
  3. let num=0
  4. for I in `ls /var/*`;do
  5. echo "hello $I"
  6. num=$[$num+1]
  7. done
  8. echo "the number of files is $num"

6.循环读取文件/etc/passwd的第2,4,6,10,13,15行,并显示其内容,然后把这些行保存到/tmp/mypasswd文件中

  1. #!/bin/bash
  2. file="/etc/passwd"
  3. for I in 2 4 6 10 13 15;do
  4. exec 3>/tmp/mypasswd
  5. line=`head -$I $file | tail -1`
  6. echo "$line"
  7. echo "$line" >&3
  8. exec 3>&-
  9. done

7,写一个脚本

  (1)显示当前系统日期和时间,而后创建目录/tmp/lstest

  (2)切换工作目录至/tmp/lstest

(3)创建目录a1d,b56e,6test

(4)创建空文件xy,x2y,732

(5)列出当前目录下以a,x或者6开头的文件或目录

(6)列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录 

  

  1. #!/bin/bash
  2.  
  3. date
  4. mkdir -pv /tmp/lstest
  5. cd /tmp/lstest
  6. mkdir a1d b56e 6test
  7. touch xy x2y 732
  8. ls [ax6]*
  9. ls [[:alpha:]][[:digit:]]*

8.添加10个用户user1到user10,但要求只有用户不存在的情况下才能添加

  1. #!/bin/bash
  2. for I in `seq 1 10`;do
  3. cut -d: -f1 /etc/passwd |grep "user$I" 2>>/tmp/etc.err || useradd user$I
  4. done

9.通过ping命令测试192.168.0.151到192.168.0.254之间的所有主机是否在线
      
如果在线,就显示“ip is up”
      
如果不在线,就显示“ip is down”  

  1. #!/bin/bash
  2. for I in `seq 151 254`;do
  3. ping -c1 -w1 192.168.0.$I &>/dev/null && echo "192.168.0.$I is up" || echo "192.168.0.$I is down"
  4. done

10.zookeeper一个节点通过脚本启动所有的节点

  1. #!/bin/bash
  2.  
  3. if [ $# -ne 1 ]
  4. then
  5. echo "please give a parameter to tell me what to do for example [start|stop|restart|status]" && exit 1
  6. fi
  7. echo "$1 zkServer in every node......"
  8.  
  9. list=`cat /usr/local/zookeeper-3.4.6/conf/zoo.cfg | grep server | awk -F : '{print $1}' | awk -F '=' '{print $2}'`
  10.  
  11. for i in $list
  12. do
  13. echo "$1 zkServer in $i......"
  14. ssh $i "/usr/local/zookeeper-3.4.6/bin/zkServer.sh $1" &> /dev/null
  15. done
  16.  
  17. for i in $list
  18. do
  19. echo "show zkServer status in $i......"
  20. ssh $i "/usr/local/zookeeper-3.4.6/bin/zkServer.sh status"
  21. done

  

 

  

  

  

  

  

shell脚本实例(2)的更多相关文章

  1. 分享7个shell脚本实例--shell脚本练习必备

    概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 1.监测Nginx访问日志502情况,并做相应动作 ...

  2. shell脚本实例,通向shell脚本大师的必经之路

    概述 读书百遍其义自见,shell脚本也是,只要例子看得多了,自然就知道怎么写了.这里主要整理了20几个例子,因为内容比较多,所以分了几次来做介绍了.下面的实例最好先自己思考怎么去实现,然后再看下实现 ...

  3. shell脚本实例-系统监控

    shell脚本监控网站并实现邮件.短信报警shell进程监控脚本(发送邮件报警)Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11. ...

  4. shell脚本实例

    备注:一些与传递给shell的参数相关的变量:$# 命令行参数的个数$? 调用命令的返回值$$ 当前进程的进程号$! 最后一个后台命令的进程号$0 命令行的第一个参数,也就是命令名$n 命令行的第n个 ...

  5. shell脚本实例一,移动文件夹中大于2000B的文件到另一个文件夹

    shell脚本能帮我们简化linux下的一些工作,现在有个需求,把TMPA文件夹下大于2000B的文件都移动到TMPB下 #! /bin/bash function movefiles() { ` d ...

  6. shell脚本实例一

    一. 什么是shell 脚本时一种解释性语言: shell脚本保存执行动作: 脚本判定命令的执行条件 脚本来实现动作的批量执行.二.如何创建 vim  test.sh     ##shell脚本一般都 ...

  7. shell脚本实例-mysql多机部署

    今天我给大家分享shell 安装mysql 多机部署的实例,本次实验是基于各个主机的公钥已经配置好了,如果还不会推送公钥的同学,可以看看我以前写的文章,那里面有写推公钥的实例,mysql 多机部署一般 ...

  8. shell脚本实例-菜单样例

    1.9.1 实例需求 用户在进行Linux系统管理的过程中,经常需要用到查看进程的信息.用户的信息等常用的功能.本例针对这一需求,使用shell编程实现基本的系统管理 功能.通过本程序,可以按照要求实 ...

  9. 【shell脚本实例】一个恶作剧—— kill掉占用CPU较高的matlab进程

    我们实验室有台服务器,博士们在服务器上跑MATLAB,基本都是4核都是超过95%的CPU占用,想了个恶作剧的shell 定时kill掉MATLAB程序,是不是很邪恶啊,哈哈~~~  不过我只是干过一次 ...

随机推荐

  1. ASP.NET基础系列

    一.HttpContext概述 1).如何获取对象: 在WebForm或类库(包括MVC)项目中,通过Current静态属性,就能够获得HttpContext的对象: HttpContext cont ...

  2. 多年的.NET开发,也只学会了这么几招

    折腾了这么多年的.NET开发,也只学会了这么几招 软件开发不是生活的全部,但是好的生活全靠它了   随着工作年龄逐渐增加,身边的重担也越来越多.以前可以在公司加班到晚上10点,现在不行了.以前可以通宵 ...

  3. 实例:ABAP Tree Control 使用与ALV Grid对象关联

    Tree Control 是最常用的Windows控件之一,在其他语言中成为"Tree View"等,ABAP的 Tree Contiol 能实现类似的功能. 本文主要介绍一下内容 ...

  4. CSDN首页> 移动开发 直接拿来用!最火的Android开源项目(完结篇)

    此前,CSDN移动频道推出的GitHub平台上“最受欢迎的开源项目”系列文章引发了许多读者的热议,在“直接拿来用!最火的Android开源项目”系列文章(一).(二)中,我们也相继盘点了40个GitH ...

  5. .NET常用操作小知识

    一..NET截取指定长度汉字超出部分以“.....”表示 /// <summary> /// 将指定字符串按指定长度进行剪切, /// </summary> /// <p ...

  6. linux mail命令用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

  7. Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音

    转载:http://blog.csdn.net/xiaanming/article/details/12684155 转载请注明出处:http://blog.csdn.net/xiaanming/ar ...

  8. How to add “Maven Managed Dependencies” library in build path eclipse

    If you have m2e installed and the project already is a maven project but the maven dependencies are ...

  9. Android 百度地图API 定位 导航

    看看这个利用百度地图定位并实现目的地导航的Demo. 首先看实现效果:                          进 入后首先会得到当前位置,在地图上显示出来.在输入框中输入目的地后,就会在地 ...

  10. SPOJ - OTOCI LCT

    OTOCI Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/problem/viewProblem. ...