Ubuntu 下面的内核经常升级,一段时间以后就很多了,浪费空间,网上搜索了一个脚本,用了下,感觉还可以。
原文是指定的Shell #!/bin/sh, 这个在Ubuntu下面是不能编译通过的,要要手动指定为bash 才行,主要是默认的sh不同造成的,不是什么大问题.
文件暂时命名成 Linux_Clean.sh吧
首先赋予执行权限
chmod +x Linux_Clean.sh
尝试执行
./Linux_Clean.sh
如果没有错误则执行
./Linux_Clean.sh -e
建议执行脚本之前执行
dpkg --get-selections|grep linux
看看自己有多少Linux内核
执行完成后继续执行
dpkg --get-selections|grep linux
估计会很有成就感的
下面是脚本原文,复制黏贴即可
#!/bin/bash # 清理ubuntu的老内核 # by bones7456 # http://li2z.cn CURRENT="`uname -r | awk -F"-" '{print $1"-"$2}'`" HEADERS="" IMAGES="" for HEADER in `dpkg --get-selections | grep ^linux-headers | \ grep -vE "(generic|386|virtual)" | awk '{gsub(/linux-headers-/,"",$1);print $1}'` do if [[ "$CURRENT" < "$HEADER" ]] then echo "正在运行的内核不是最新的。 $CURRENT < $HEADER" echo "Running kernel is not the newest. $CURRENT < $HEADER" exit 1 else [[ "$CURRENT" != "$HEADER" ]] && { HEADERS="${HEADERS} linux-headers-${HEADER}" IMAGE="`dpkg --get-selections | grep ^linux-image | \ grep "${HEADER}" | awk '{print $1}'`" IMAGES="${IMAGES} $IMAGE" } fi done if [[ x"$HEADERS" == x"" ]] then echo "没有要清理的老内核." echo "No old kernel need to clean." exit 0 fi CMD="sudo apt-get purge $HEADERS $IMAGES" echo "$CMD" if [ "$1" == "-e" ] then sh -c "$CMD" else echo "请确定以上命令是否正确,然后输入 $0 -e 来执行以上命令。" echo "Be sure this command is right, then type $0 -e to execute." fi