此博文有自己写的其它朋友分享的,其中对其它朋友写的有问题的地方我简单做了一些修改,能保证运行。
1.写一个脚本通过ping命令测试192.168.0151到192.168.0.254之间的所有主机是否在线?
如果在线,就显示“ip is up"
如果不在线,就显示"ip is down"
答案:
#!/bin/bash
for I in `seq 151 254`;do
ping -c1 -w1 192.168.0.$I &>/dev/null && echo "192.168.0.$I is up" || echo "192.168.0.$I is down"
done
说明:
1、 ping -c1 -w1 中-c1是指ping的次数,-w是指执行的最后期限,也就是执行的时间,单位为秒;
2、 &>/dev/null 是指标准输出和错误输出到/dev/null上,而不在界面上显示;
3、 后面的&&和|| 是与和或得意思,如a&&b||,表示a为真,则执行b;否则执行c
2.写一个脚本:
1.显示当前系统日期和时间,而后创建目录/tmp/lstest
2.切换工作目录至/tmp/lstest
3.创建目录a1d,b56e,6test
4.创建空文件xy ,x2y,732
5.列出当前目录下以a,x或者6开头的文件或目录
6.列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录
答案:
#!/bin/bash
date
mkdir -pv /tmp/lstest
cd /tmp/lstest
mkdir a1d b56e 6test
touch xy x2y 732
ls [ax6]*
ls [[:alpha:]][[:digit:]]*
3.写一个脚本:
1.设定变量file的值为/etc/passwd
2.使用循环读取文件/etc/passwd的第2,4,6,10,13,15行,并显示其内容
3.把这些行保存至/tmp/mypasswd文件中
答案:
#!/bin/bash
file="/etc/passwd"
for I in 2 4 6 10 13 15;do
exec 3>/tmp/mypasswd
line=`head -$I $file | tail -1`
echo "$line"
echo "$line" >&3
exec 3>&-
done
4.写一个脚本:
1.切换工作目录至/var
2.依次向/var目录中的每个文件或子目录问好,形如:
(提示:for FILE in /var/*;或for FILE in `ls /var`;)
Hello,log
3.统计/var目录下共有多少个文件,并显示出来
答案:
#!/bin/bash
cd /var
let num=0
for I in `ls /var/*`;do
echo "Hello,$I"
num=$[$num+1]
done
echo "the number of files is $num"
5.写一个脚本:
1.设定变量FILE的值为/etc/passwd
2.依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么
形如:(提示: LINE=`wc -l /etc/passwd | cut -d " " -f1`)
Hello,root, your UID is 0.
3.统计一个有多少个用户
答案一:
#!/bin/bash
file="/etc/passwd"
LINES=`wc -l $file | cut -d " " -f 1`
for I in `seq 1 $LINES `;do
userid=`head -$I $file | tail -1 | cut -d : -f 3`
username=`head -$I $file | tail -1 | cut -d : -f1`
echo "Hell $username,your UID is $userid"
done
echo "there are $LINES users"
答案二:
#!/bin/bash
file=/etc/passwd
let num=0
for I in `cat $file`;do
username=`echo "$I" | cut -d: -f1`
userid=`echo "$I" | cut -d: -f3`
echo "Hello,$username,your UID is $userid"
num=$[$num+1]
done
echo "there are $num users"
6.写一个交互脚本,直接运行脚本,出现提示选择一个数字:1:重启httpd服务,2:重启mysqld服务3:重启vsftpd服务,加选项--httpd重启httpd服务,加--mysql会重启mysqld服务,加--ftp会重启vsftpd服务。
答案:
#!/bin/bash
function http(){
echo "service httpd restart"
}
function mysql(){
echo "service mysqld restart"
}
function vsftp(){
echo "service vsftpd restart"
}
if [ -$# -eq 0 ];then
echo "please choose one num:"
echo "1:Restart httpd"
echo "2:Restart mysqld"
echo "3:Restart vsftpd"
read -p "Enter your choose:" num
case $num in
1)
http
;;
2)
mysql
;;
3)
vsftp
;;
*)
echo "pram error,please try it again 0"
esac
elif [ "$1" == --httpd ];then
http;
elif [ "$1" == --mysqld ];then
mysql;
elif [ "$1" == --vsftpd ];then
vsftp;
else
echo "pram error,please try it again 1"
fi
7.猜数字的小游戏:
运行程序后,提示用记输入一个0-9的数字,如果是非数字,那么就提示用户输入数字;
如果用户猜中,提示用户猜对了;
如果用户没猜中,那么就提示用户重新输入一个数字;
如果用户连续五次都没有猜中,则提示用户,24小时后再来玩这个游戏;
#!/bin/bash
function check(){
if [ $c -eq 5 ]
then
echo "Wait 24 hours."
exit 1
else
continue
fi
}
n2=6
c=0
while :
do
read -p "Please input a number(1-10): " n
if [ -z ${n} ]
then
echo "不能什么都不输入。"
tag=3
c=$[$c+1]
check
fi
n1=`echo $n|sed 's/[0-9]//g'`
if [ -n "$n1" ] && [ -n "${n}" ]
then
tag=2
echo "Just number."
c=$[$c+1]
check
elif [ $n -gt 10 ] || [ $n -lt 1 ]
then
tag=1
c=$[$c+1]
echo "The number must great than 1 and less than 10."
check
else
tag=0
fi
if [ $n -ne $n2 ]
then
echo "Wrong."
c=$[$c+1]
check
else
echo "Right."
exit 0
fi
done
8.写一个脚本:
1.第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置
2.如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本;
3.如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,则返回0给调用脚本,否则,返回52给调用脚本。
答案:
#!/bin/bash
#auth:liuxiaolei
#2018-10-11
:<<!
1.第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置
2.如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本;
3.如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否;如果成功,测返回0给调用脚本,否则,返回52给调用脚本。
!
while :
do
if [ $# -ne 2 ];then
echo "请输入两个参数:"
echo " 第一个参数为需要下载的URL"
echo " 第二个参数为下载到的目录"
exit
else
if [ -d $2 ];then #判断文件是否是目录
cd $2
wget $1 &>/dev/null
a=`echo $?` #得到下载的状态,不报错或是下载成功是0
if [ $a -ne 0 ];then
echo 51
else
echo "下载完成!"
fi
exit
else
read -p "make dir?(y or n)" chose
case $chose in
y)
mkdir -p $2
;;
n)
echo 51
exit
;;
*)
echo "Only y or n"
esac
fi
fi
done
测试结果:
9.每天生成一个文件
要求:请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为2018-10-11.log,
并且把磁盘的使用情况写到这个文件中(不用考虑crom,仅仅写脚本即可)
#!/bin/bash
#date: 2018年10月11日
d=`date +%F`
logname="$d.log"
df -h > /tmp/$logname
- Jmeter接口测试加解密及Bean Shell使用案例
Jmeter接口测试加解密及Bean Shell使用案例 https://blog.csdn.net/russ44/article/details/56009084 本文以base64加解密为例: 一 ...
- 【shell 大系】Linux Shell常用技巧
在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...
- Linux系统重要快捷键& Shell 常用通配符
[Tab]:使用Tab键来进行命令补全: [Ctrl+c]:强行终止当前程序: [Ctrl+d]:键盘输入结束或退出终端: [Ctrl+s]:暂定当前程序,暂停后按下任意键恢复运行: [Ctrl+z] ...
- shell 常用正则
shell常用正则表达式 “^\d+$” //非负整数(正整数 + 0) “^[0-9]*[1-9][0-9]*$” //正整数 “^((-\d+)|(0+))$” //非正整数(负整数 ...
- Hbase Shell常用命令
hbase shell常用的操作命令有create,describe,disable,drop,list,scan,put,get,delete,deleteall,count,status等,通过h ...
- (转)Hbase shell 常用命令(1)
Hbase shell 常用命令(1) link:http://blog.csdn.net/scutshuxue/article/details/6988348 下面我们看看HBase Shell的一 ...
- hbase基本概念和hbase shell常用命令用法
1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...
- Linux Shell常用技巧(目录)
Linux Shell常用技巧(一) http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html一. 特殊文件: /dev ...
- 【转载】HBase基本概念和hbase shell常用命令用法
1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...
随机推荐
- note 7 递归函数
递归:程序调用自身 形式:在函数定义有直接或间接调用自身 阶乘:N!=123...N def p(n): x = 1 i = 1 while i <= n: x = x * i i = i + ...
- IIS Express 域认证问题(https://stackoverflow.com/questions/4762538/iis-express-windows-authentication)
option-1: edit \My Documents\IISExpress\config\applicationhost.config file and enable windowsAuthent ...
- ngnix和负载均衡
1 准备环境 =====>part1: iptables -F #systemctl disable firewalld #开机默认关闭 #systemctl stop firewalld #立 ...
- C语言的split功能
其它高级语言都有字符串的split功能,但C没有系统自带的,只能自己写一个了. void c_split(char *src, const char *separator, int maxlen, c ...
- (最完美)红米手机4的USB调试模式在哪里开启的经验
每次我们使用安卓手机通过数据线连接上Pc的时候,或者使用的有些应用比如我们团队营销部门每次使用的应用引号精灵,之前的老版本就需要开启Usb开发者调试模式下使用,现每次新版本不需要了,如果手机没有开启U ...
- Linux基本指令
常用目录文件作用 - / 根目录 - /bin 命令保存目录(普通用户就可以读取的命令) - /boot 启动目录,启动相关文件 - /dev 设备文件保存目录 - /etc ...
- Python爬虫的步骤和工具
#四个步骤 1.查看crawl内容的源码格式 crawl的内容可以是 url(链接),文字,图片,视频 2.请求网页源码 (可能要设置)代理,限速,cookie 3.匹配 用正则表达 ...
- str中文初始化乱码,要用宽字符;if else
QString str = QString::fromUtf16(L"{\\"closeEt\": true,\\"data\" : [[1,1,10 ...
- 2018-2019-2 20165205 网络攻防Exp3免杀原理与实践
2018-2019-2 20165205 网络攻防Exp3免杀原理与实践 一.实践内容 1.1正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用 ...
- NumPy基础
一.NumPy ndarray (一)生成ndarray 表 数组生成函数 函数 描述(默认数据类型是float64) array 将输入数据(序列型对象)转换为ndarray,若不显示的指定数据类型 ...