1.删除linux升级内核后,无用的内核:
命令为:
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
dpkg:“Debian Package ”的简写,是一个底层工具,用法参考:http://baike.baidu.com/view/1314054.htm,这里-l参数是为了搜索deb包。
dpkg -l 'linux-*':列出所有匹配‘linux-’形式的Debian安装包
sed '/^ii/!d:保留以ii开头的行,其他行删除
'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d: 将正在使用的内核从打印行里面删除掉
s/^[^ ]* [^ ]* \([^ ]*\).*/\1/:
/[0-9]/!d:保留带数字的行
xargs sudo apt-get -y purge:将多行参数通过xargs传递给卸载命令
xargs参考:http://baike.baidu.com/link?url=SXKZQj7oGqMNvEJKUalCQYasZhkTMy8Nx8qJSBsISC-WL6vQP-ztONt7qXE16gh3SdQhGAlAEEEKhW31r2n5Oq
2.拷贝文件的时候显示进度条
#!/bin/bash
trap 'exit_fun' 2
usage(){
echo "Usage: `basename $0` \"src file\" \"dst file\""
exit 1
}
exit_fun(){
echo -e "\033[?25h"
kill -9 $(ps -ef|awk '/ [c]p /{print $2}') &>/dev/null
exit 1
}
[ "$#" -ne "2" ] && usage
[ -d "$2" ] && k=${2%%/}/`basename $1` || k=$2
fromsize=`ls -s $1|cut -d" " -f1`
cp $1 $k &
start=`date +%s`
sleep 0.2
echo -ne "\033[?25l"
while :;do
tosize=`ls -s $k|cut -d" " -f1`
x=`echo "$tosize $fromsize"|awk '{print int($1*100/$2)}'`
[ $x -eq 99 ] && x=100
echo -n "["
for((i=0;i<x;i=$i+2));do echo -n "=";done
echo -n ">"
for((j=i;j<=99;j=$j+2));do echo -n " ";done
now=$[`date +%s` - $start]
[ $now -eq 0 ] && now=1
avg=$[$tosize/$now/1024]
printf "] %4s%% %4sM/s" $i $avg
[ $x -ge 100 ] && break
sleep 0.1
echo -ne "\r"
done
echo -e "\033[?25h"
echo显示转意字符的解析:
http://blog.chinaunix.net/uid-20682890-id-3180911.html
3.关闭longene qq的进程
ps aux | grep /opt/longene/qq | grep -v 'grep'| awk '{print $2}'|sed 's/^/sudo kill /'| sh -x