第一题:删除/etc/passwd文件里的空行
sed '/^$/d' 1.txt awk NF 1.txt awk '!/^$/' 1.txt
第二题:使用sed 修改apache监听端口为8080
sed -i 's/8080/8000/' /www/wdlinux/apache/conf/wdcp.conf
第三题:怎么产看php版本
<?php echo phpinfo(); ?>
第四题:在shell脚本里, $0 , $#, $* , $?分别是什么意思
$0 当前脚本的文件名 $# 传递给脚本或函数的参数个数 $* 传递给脚本或函数的所有函数 $? 上个命令的退出状态, 或函数的返回值 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID
第五题:使用awk截取出本机IP地址
ifconfig eth0|grep 'inet addr'|awk -F ":" '{print $2}'|awk '{print $1}'
第六题:使用sed 删除配置文件中 空行 和注释行 和带有空格行后面有内容的行。
sed去除注释行:sed -i -c -e '/^#/d' config_file sed去除空行: sed -i -c -e '/^$/d' config_file sed去空行和注释行:sed -i -c -e '/^$/d;/^#/' config_file
第七题:请用shell脚本实现:批量添加5个用户,用户名为:user1 - 5
for i in `seq 1 5` do pw=`echo $[$RANDOM]|md5sum|cut -c 1-5` useradd user$i echo "user$i $pw" >> /root/pw.txt echo "user$pw" |passwd --stdin user$i done
第八题:创建脚本/root/pz.sh
执行/root/pz.sh qf,输出pz ;
执行/root/pz.sh pz,输出qf;
没有任何参数时,输出 none
case $lsy in 1) 'pz' ;; 2) echo 'qf' ;; *) echo 'none' exit esac
第九题:写一个脚本/root/nginx.sh,识别是否安装nginx.
rpm -qa | grep nginx if [ $? == 0 ];then echo "yi an zhuang" elif [ $? == 0 ];then echo "an zhuang l" else echo "no install, begin install.." yum -y install lftp fi
第十题:写一个脚本/root/ping.sh,ping一下192.168.150.0网段所有ip,将能ping通的ip写入到/root/ok 不通的ip写入/root/no
touch /root/ok touch /root/no i=1 while [ $i -le 254 ] do ping -c 2 -i 0,3 -W 1 192.168.150$i if [ &? -eq 0 ];then echo "192.168.150.4i is up">>/root/ok else echo "192.168.150.4i is down">>/root/no fi let i++ done #!/usr/bin/env bash for ip in `seq 1 255` do { ping -c 1 192.168.135.$ip &>/dev/null if [ $? -eq 0 ];then echo 192.168.135.$ip >>yq.txt else echo 192.168.135.$ip >>rr.txt fi }& &后台执行 done wait
#!/usr/bin/env bashi a=` vmstat | awk 'BEGIN{FS=" "}NR==3{print $4}'` echo "已使用:"$a b=`vmstat | awk 'BEGIN{FS=" "}NR==3{print $5}'` echo "共有:"$b let d=$a-$b c=`awk 'BEGIN{ printf "%.1f%%\n",('$b'/'$a')*100 }'` echo "使用所占百分比"$cif [ $USE -ge 50 ]; then if [ $USE -ge 70 ]; then echo " Date: $DATE Host: $IP Problem: CPU utilization $USE " | mail -s "CPU Monitor" $MAIL fi