1. 备份最后一天所有修改的文件
BACKUPFILE=backup-$(date +%m-%d-%Y) #在备份文件中嵌入时间
##如果没有 1 参 数 传 入 进 来 , 就 是 用 变 量 1参数传入进来,就是用变量 1参数传入进来,就是用变量{BACKUPFILE}
archive= ( 1 : − (1:- (1:−BACKUPFILE)
#如果在命令行中没有指定备份文件的文件名,你么将默认使用"back-MM-DD-YYYY.tar.gz"
find . -mtime -1 -type f -exec tar zxvf “${archive}.tar.gz” ‘{}’ ;
2. 列出系统上的所有用户
##将/etc/passwd中的内容赋予变量PASSWORD
PASSWORD_FILE=/etc/passwd
n=1
##awk表示将/etc/passwd中的文件以":“分割,并循环输出第一列的内容
for name in $(awk 'BEGIN{FS=”:"}{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲' < "PASSWORD_FILE")
#域分隔符:
#打印第一个域
#从/etc/passwd文件中取得输入
do
echo “USER #$n = ${name}”
let “n += 1”
done
3. 找出当前目录下,日期为五天前,文件大小大于5G的文件并删除掉.
##find ./表示返现当前目录下,-mtime -5表示五天前的时间,-name “"表示所有文件
##–size +5G 表示文件大小大于5G -exec rm -rf {} \表示执行命令,移除所有文件
find ./ -mtime -5 -name "” -size +5G -exec rm -rf {} \
4. 将当前目录下,前缀A_的文件改成前缀为B_的文件
##循环遍历当前目录下前缀为A_的文件,*表示通配符
for var inls A_*
do
##将遍历到的文件名,以’'进行分割,取得分隔后的字符串的第二个参数,然后在左边加上’B’字符
##用mv将原先的文件重命名为设置后的文件名
mv ${var}echo ${var} |awk -F '_' '{print "B_" $2}'
done
5. 过滤当前主机的网卡和IP地址信息
##首先过滤网卡信息,|表示通道,将上次的输出当作下一次的输入,grep表示过滤出有state字段的一行值
##awk表示默认以空格进行分割,然后取其中第二列参数
##sed表示将:替换为空,s表示不区分大小写,g表示全部替换
NIC=ip addr | grep "state" | awk '{ print $2 }' | sed 's/://g'
for i in $NIC ##循环遍历变量NIC中的值,并打印出来
do
IP=ip addr show ${i} | grep "inet " | awk '{ print $2 }'
echo “Network: i − − − − − − − I P : {i} ------- IP: i−−−−−−−IP:{IP}”
done
6. 循环替换当前文件夹下的文件内容
##当前目录下以.md文件结尾的文件中的monokai字符替换为 kuroir
for i infind ./ -name "*.md"
do
sed -i ‘s/monokai/kuroir/g’ $i
done
7. 替换修改目录下乱码的文件名
yum install convmv #安装转换文字的软件包
#!/bin/bash
function scandir() {
local cur_dir parent_dir workdir
workdir=$1
cd ${workdir}
if [ w o r k d i r = " / " ] t h e n c u r d i r = " " e l s e c u r d i r = {workdir} = "/" ] then cur_dir="" else cur_dir= workdir="/"]thencurdir=""elsecurdir=(pwd)
fi
for dirlist in $(ls ${cur_dir})
do
if test -d ${dirlist};then
cd ${dirlist}
scandir c u r d i r / {cur_dir}/ curdir/{dirlist}
cd …
else
echo c u r d i r / {cur_dir}/ curdir/{dirlist}
convmv -f GBK -t UTF-8 --notest c u r d i r / {cur_dir}/ curdir/{dirlist}
fi
done
}
if test -d $1
then
scandir $1
elif test -f $1
then
echo “you input a file but not a directory,pls reinput and try again”
exit 1
else
echo “the Directory isn’t exist which you input,pls input a new one!!”
exit 1
fi