前几年学习shell留下来的,可惜的是不全了。
判断网站目录文件或者linux系统重要文件是否被篡改,被黑客攻击。
首先记录文件原dm5
创建10个测试文件
touch{1..10}.log
md5sum/tmp/* >/home/darren/source.log 生成源文件
md5sum –c /home/darren/source.log 检查文件是否被篡改。
脚本实现:
#!/bin/sh
[ ! –f /home/Darren/source.log ] && md5sum/tmp/*>source.log
md5sum -c /home/darren/source.log | grep -i FAILED >error.log
if [cat error.log | wc –l –ge 1 ] ;then
echo “cat error.log”
fi
---------------------------------------------------------------
#!/bin/sh
find /etc/ -type f –name “*” –exec md5sum {} >/home/darren/source.log\;
echo –e “\n”避免交互的用法
-z | 检测字符串长度是否为0,为0返回 true。 |
-n | 检测字符串长度是否为0,不为0返回 true。 |
str | 检测字符串是否为空,不为空返回 true |
打印hosts ip地址对应的域名。
#!/bin/sh
read -p "please in putip address:" ip
[ -n "`grep "$ip" /etc/hosts`" ] &&echo "the ip address:`grep "$ip"
/etc/hosts | awk ‘{print$2}‘`"
black="\033[30m
red=\033[31m
green=\033[32m
yellow=\033[33m
blue=\033[34m
zi=\033[35m
tianlan=\033[36m
whit=\033[37m
res=\033[0m
列子:echo -e "\033[33m 黄色字 \033[0m"
输入名字和颜色,输出名字对应的颜色:
#!/bin/sh
red="\033[31m"
green="\033[32m"
yellow="\033[33m"
blue="\033[34m"
zi="\033[35m"
res="\033[0m"
if [ $#-ne 2 ];then
echo "usg red|yellow|green|blue"
#read-p "please input name and color:" name color
fi
case $2in
yellow)
echo -e"$yellow $1 $res"
;;
green)
echo -e"$green $1 $res"
;;
*)
echo -e"$zi $1 $res"
;;
esac
函数:
例一:
darren() {
echo “Iam linux engineer!”
}
darren
例二:定义一个函数库,然后用另一个脚本执行函数库。
vi /darren/scripts/fucktions.sh
#/bin/sh
darren() {
echo “Iam linux engineer!”
}
------------------------------------------
#/bin/sh
. /darren/scripts/fucktions.sh
darren
jobs查看后台正在运行的程序。
fg 1 把后台运行的程序在CRT中执行,如果关闭CRT或者断网,则程序执行失败。
bg 放到后台执行。
生成随机数密码的方式:
echo $RANDOM
$random| md5sum | cut -c 10-15
$(date+%N%t)
$random$(date+%N%t) | md5sum #常用方法
opensslrand -base64 8
echotest:123456 | chpasswd
echo‘123456‘| passwd --stdin test
break、continue、exit
设置脚本开机启动:chkconfig –list
脚本文件开头需要加上以下两行,- 代表运行级别、85代表开机执行顺序、15代表关机执行顺序。
#chkconfig: - 85 15
# description: description for the service
把脚本名字复制到/etc/init.d/xxx
chmod755 /etc/init.d/xxx
chkconfig–add xxx
chkconfig–list | grep xxx
chkconfigxxx on 或者chkconfig –leve 35 xxx on
echo –n 不换行
\n 换行
echo –e 执行有特殊含义的命令。
锁定文件 chattr +i /etc/passwd
解锁文件 chattr –i /etc/passwd
数组:
darren=(12 3) 创建数组名
echo${#darren[@]} 查看数组的长度,或echo {#darren[*]}
echo ${darren[0]} 取数组的第一个元素。
echo ${darren[1]} 取数组的第二个元素。
echo ${darren[2]} 取数组的第三个元素。
echo ${darren[*]} 取整个数组的元素。
echo ${darren[@]} 取整个数组的元素。
给数组赋值:
darren[0]=5把第一个元素赋值为5
echo${darren[0]}
unset darren 删除整个数组。
unset darren[0]删除单个数组。
echo${darren[@]:3:2} 从3个元素开始取2个
echo ${darren[@]/3/5}把3换成5
echo ${darren[@]/oldboy/new}把oldboy换成new
Darren1=(${darren[@]/oldboy/new})改变数组使生效
定义数组的第二种方式:
darren=([1]=one[2]=two [3]=three)
定义数组的第三种方式:
darren[1]=adarren[2]=b darren[3]=c
工作中常用方法:
darren=($(ls /tmp))
echo${darren[@]}
数组的脚本:
#!/bin/sh
darren=(
darren1
darren2
darren3
darren4
darren5
)
for((i=0 ;i<${#darren[@]};i++))
do
echo $i${darren[$i]}
done
本文出自 “王家东哥” 博客,谢绝转载!
原文地址:http://xiaodongge.blog.51cto.com/11636589/1901342