一些简单的shell脚本实例

1.词频统计

sed -e s/‘[[:punct:]]‘/‘ ‘/g -e s/‘[[:digit:]]‘/‘ ‘/g $filename| tr [A-Z] [a-z] | tr ‘\n‘ ‘ ‘| tr ‘ ‘ ‘\n‘ | sed ‘/^$/d‘ >>newfilename

#干掉文本中的标点和数字

#替换大小写

#替换换行符为空格后再替换空格为换行符(可能不必要)

#删除空行重定向到新文件

sort newfilename| uniq -c | sort -n

#排序后删除重复项并统计重复个数,然后重新排序。sort -n的作用是按照数值进行排序。

统计部分也可以用awk来搞:sed -e s/‘[[:punct:]]‘/‘ ‘/g -e s/‘[[:digit:]]‘/‘ ‘/g $filename| tr [A-Z] [a-z] | tr ‘\n‘ ‘ ‘|awk ‘BEGIN{RS=" "} {++w[$0]} END{for(a in w) if(a!="") print a": "w[a]}‘|sort -k2 -n

输出结果都差不多。

2.用ping看本网段在线的ip地址。

for i in `seq 2 255`

do

ping -c 1 "192.168.1.$i"|grep "1 received " && echo "192.168.1.$i"

done

3.简单的系统监控脚本

#!/bin/sh
CONTINUE(){

read -p "press enter to continue:"

}

CPU_INFO(){

echo "print the cpu info:"

cat /proc/cpuinfo|awk ‘BEGIN{FS=":"}/model name/{print "CPU model:"$2}‘|uniq

cat /proc/cpuinfo|awk ‘BEGIN{FS=":"}/cpu MHz/{print "CPU MHz:"$2"MHz"}‘|uniq

}

LOAD_INFO(){

echo

echo "print the system load info:"

uptime|awk ‘BEGIN{FS=":"}{print $5}‘|awk ‘BEGIN{FS=","}{print "last 1 minute sys load:"$1"\nlast 5 minutes sys load"$2"\nlast 15minutues sysload:"$3"\n"}‘

}

MEM_INFO(){

echo

echo "print the system memory and swap info:"

free -h |grep Mem|awk ‘BEGIN{FS=" "}{print "system free memory info:"$4""}‘

free -h |grep Swap|awk ‘BEGIN{FS=" "}{print "system swap info:"$4""}‘

}

DISK_INFO(){

echo

echo "print the system disk info:"
df -h

echo

}

MAIN(){
clear

echo "============================================"

echo "1.display the cpu info;"
echo "2.display the sys load;"
echo "3.display MEM and swap info;"
echo "4.display the sys disk info;"
echo "5.EXIT;"

echo "============================================"

read -p "please select an iterm(1-5):" SELECT

CHOICE
}

CHOICE(){
case $SELECT in
1)
CPU_INFO
CONTINUE

MAIN

;;

2)
LOAD_INFO
CONTINUE
MAIN

;;

3)
MEM_INFO
CONTINUE
MAIN
;;

4)

DISK_INFO
CONTINUE
MAIN
;;

5)
exit
;;

*)
CONTINUE
MAIN
;;
esac

}

MAIN

时间: 2024-11-06 22:09:24

一些简单的shell脚本实例的相关文章

我的一些简单的shell脚本实例

1.模拟linnux登录shell #/bin/bashecho -n "login:" read nameecho -n "password:"read passwdif [ $name = "cht" -a $passwd = "abc" ];thenecho "the host and password is right!"else echo "input is error!"fi

Linux shell 脚本实例【转】

1. 写一个脚本,利用循环计算10的阶乘#!/bin/shfactorial=1for a in `seq 1 10`do       factorial=`expr $factorial \* $a`doneecho "10! = $factorial" 2. 写一个脚本,执行后,打印一行提示“Please input a number:",要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值.直到用户输入"end"停止.#!/bin/shuns

一个简单的shell脚本

一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[[email protected] ~]$ who2.KANO tty1 2016-02-15 01:47 (:0)3.KANO pts/0 2016-02-15 01:48 (kelvin) 当然在个人电脑上,所列出来的列表可能只有上面这么短.但是在一些大型.多用户的系统上,所列出的列表就可能很长.这个时候我们可以使用自动计算用户总数.wc是一个字数计算程序,它可以计算出行数(

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

我们实验室有台服务器,博士们在服务器上跑MATLAB,基本都是4核都是超过95%的CPU占用,想了个恶作剧的shell 定时kill掉MATLAB程序,是不是很邪恶啊,哈哈~~~  不过我只是干过一次,因为老伯们也不容易啊,屌丝何苦为难屌丝... 废话不多说了上脚本! ? 1 2 3 找出CPU占用超过90%的MATLAB进程,grep -v 去掉"grep"进程 pids=`ps aux|grep "MATLAB"|grep -v "grep"

一些简单的shell脚本例子

         对于刚开始学shell脚本的人来说,建立编程思维很重要,需要能够把自己需要做的事情,用编程的方式表达出来,下面是我学习和搜集的一些例子,对于刚刚开始接触的人,或许有一定的帮助.      求任意数的和或乘积,先定义函数,任意数的和.乘积,然后通过case结构再定义变量,调用函数. hei(){ x=1 while [ $# -gt 0 ] do x=`expr $x \* $1` shift done echo $x } he(){ x=0 while [ $# -gt 0 ]

7个shell脚本实例--shell脚本练习必备

概述 看多shell脚本实例自然就会有shell脚本的编写思路了,所以我一般比较推荐看脚本实例来练习shell脚本.下面分享几个shell脚本实例. 一.监测Nginx访问日志Exception情况,并做相应动作 假设服务器环境为lnmp,监控出现Exception错误,并钉钉通知. #场景: #1.访问日志文件的路径:/data/logs/plateno-coupon-server/plateno-coupon-server.log#2.脚本死循环,每10秒检测一次,10秒的日志条数为300条

vim,grep,shell脚本实例及find用法

vim,grep,shell脚本实例及find用法 1.定义一个对所有用户都生效的命令别名 定义一个对所有用户都生效的命令别名需要更改全局配置文件/etc/bashrc, 例如,我们以root用户编辑/etc/bashrc,在文件的最后一行增加alias like='ls' 当我们新启一个shell进程的时候,列出命令别名,会发现刚定义的别名like [[email protected] ~]# tail /etc/bashrc . "$i" >/dev/null fi fi d

shell脚本实例

备注:一些与传递给shell的参数相关的变量:$# 命令行参数的个数$? 调用命令的返回值$$ 当前进程的进程号$! 最后一个后台命令的进程号$0 命令行的第一个参数,也就是命令名$n 命令行的第n个参数,如果要取超过9个参数${n}$* 所有的命令行参数,等于("$1 $2...""[email protected]" 所有的命令行参数,等于("$1" "$2"...)$_ 前一个命令的最后一个命令行参数   1.     

简单的shell脚本

1.用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下. 参考程序: C代码   #!/bin/sh FILENAME= echo "Input file name:" read FILENAME if [ -c "$FILENAME" ] then cp $FILENAME /dev fi 2.设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30. 参考答