请选择 进入手机版 | 继续访问电脑版

雨林木风

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 39|回复: 0

清理Ubuntu老内核的小脚本

[复制链接]

6401

主题

6408

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
19615
发表于 2019-12-13 09:07:46 | 显示全部楼层 |阅读模式
  Ubuntu用久了,升级了几次内核以后,就免不了需要清理一下老的内核,毕竟一套内核就有170多M的空间呢。但是每次都打一堆字来清理也烦了。虽然Ubuntu 命令技巧(这里再罗嗦几句:如果还有Ubuntuer没看过这个,强烈建议看一遍。)里有删除旧内核的命令,而且就一行:
  sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)
  但是我却不是很喜欢,因为这这个没有把linux-headers-xxx删除掉。
  于是自己写了个繁的,需要的可以自己保存,以便不时之需。
  #!/bin/sh
  # 清理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"
  then
  echo "正在运行的内核不是最新的。 $CURRENT
  echo "Running kernel is not the newest. $CURRENT
  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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|appname
快速回复 返回顶部 返回列表