在自己的固态硬盘只有128G的情况下,分配不是很合理导致经常空间塞满了,现在为止,根目录空闲空间已经不足10G,home目录则不足30G,这已经比较紧俏了,因此参考网上的各种资料,汇总归成一篇linux(Ubuntu系列/ElementaryOS)系统清理博客。

【这一切的原因也归咎于自己当初分配空间的不成熟,swap在现在的大内存体系下不需要太多的空间】

提前为小白注明:

  • dpkg是用来安装.deb文件,但不会解决模块的依赖关系,且不会关心ubuntu/ElementaryOS的软件仓库内的软件,可以用于安装本地的deb文件。
  • apt会解决和安装模块的依赖问题,并会咨询软件仓库, 但不会安装本地的deb文件, apt是建立在dpkg之上的软件管理工具。

1.分析磁盘空间情况

首先我们需要了解自己的磁盘情况,可以使用 df -h 命令查看空间剩余情况。

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            5.8G     0  5.8G   0% /dev
tmpfs           1.2G  1.8M  1.2G   1% /run
/dev/sdb1        37G   28G  7.3G  80% /
tmpfs           5.8G  359M  5.4G   7% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           5.8G     0  5.8G   0% /sys/fs/cgroup
/dev/sdb7        58G   29G   26G  53% /home
/dev/sdb6       464M  365M   71M  84% /boot
tmpfs           1.2G  104K  1.2G   1% /run/user/1000

这里推荐一个轻巧的软件baobab,通过可视化的方式查看文件情况:

如图:

baobab:通过可视化的方式看磁盘使用情况

这样,我们就可以确定具体的软件使用情况,针对性的去删除不需要的文件,或者旧的文件,这样的方法我推荐去删除自己的home目录的文件,系统文件不推荐使用。

使用方法:

#下载安装baobab
sudo apt install baobab
#使用baobab,记住使用root用户或者sudo提权,否则会有无法读取的问题
sudo baobab

接着利用baobab去寻找home目录下的残余文件进行手动删除,这里涉及很多个人文件,在此不做过多的赘述,有时常发邮件很难注意,很久不清理邮件包里居然塞了近一G的内容。

2.清理dpkg残余配置文件

Ubuntu系列系统通常删除文件可以使用如下两条命令:

sudo apt-get remove <package-name>
sudo apt-get purge <package-name>

其中remove只会删除软件包,会保留配置文件,也不会清除相关依赖文件,而purge卸载将会删除软件包,配置文件以及相关依赖文件,purge更加彻底,但是并不建议常这样做,依赖较多的软件可能会因此造成系统的破坏【Ubuntu是支持自毁的】

我们可以先找出系统上参与配置文件,首先使用dpkg包管理命令

dpkg --list

一瞬间出现了特别多的文件,可能会让自己有些凌乱,这里就需要使用正则表达式进行筛选了,Linux支持使用grep进行正则表达筛选,我们首先需要知道dpkg –list的体系结构,在每一行中首先出现的分别为:【状态】,【名称】,【版本】,【结构】,【描述】

我们重点需要了解的是【状态】,这里一般出现了两个字母:如ii,其中第一个字母显示包裹预期的状态 ;第二个字母显示包裹的当前状态,具体的解释为:

ii —— 表示系统正常安装了该软件

pn —— 表示安装了该软件,后来又清除了

un —— 表示从未安装过该软件

iu —— 表示安装了该软件,但是未配置

rc —— 该软件已被删除,但配置文件仍在

我们核心就需要搜出rc的包,他属于无用的垃圾配置文件:

#利用正则表达式搜索
dpkg --list | grep "^rc"

接下来我们需要利用搜索出来的文件剪切出他的【名称】,使用cut命令进行切割

#利用cut命令进行切除,利用“ ”空格符号
dpkg --list | grep "^rc" | cut -d " " -f 3

最后再利用一个传参把参数交给dpkg –purge删除,最终命令变成:

dpkg --list | grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

注意某些配置文件删除需要手动确认,过程繁琐但得注意耐心

3.常用apt缓存清理手段

本方法适用于比较喜欢使用apt安装删除以及更新的人:

通常我们用sudo apt-get install 命令安装软件包后,apt-get下载的deb安装包会保留在系统上.所以如果你经常安装软件,那么这些deb安装包会占据大量的空间.这些安装包在/var/cache/apt/archives目录下。在软件安装完成后,这些deb安装包就没什么用了。对于硬盘容量有限的服务器来说apt-get clean命令可以腾出很多空间。你可以输入下面的命令来查看/var/chace/apt/archives目录下deb安装包的总大小:需要提权或者使用root用户

#方法一,直接查看
sudo du -sh /var/cache/apt/archives
#方法二,cd到目标目录再查看
cd  /var/cache/apt/archives
sudo du -sh

这时候可能会看到使用了几个G的deb包,我们可以使用apt缓存清理进行清理

sudo apt-get autoclean              清理旧版本的软件缓存
sudo apt-get clean                  清理所有软件缓存
sudo apt-get autoremove             删除系统不再使用的孤立软件

本人建议三个方式都走一遍,其中最后一条命令:【孤立软件】又称孤儿软件,即安装软件包时会安装该软件包的依赖,但是删除时依赖可能就失去作用了,这个失去作用的依赖包就叫做【孤儿软件/孤立软件】,使用sudo apt-get autoremove可以删除,但是这个方式只能删除自动安装的,手动安装的依赖包并不会删除,可以安装一个叫deborphan的软件来彻底删除。

首先安装deborphan,然后直接运行即可查看:

#安装命令
sudo apt-get install deborphan
#直接运行,会系统的显示【孤儿软件】
deborphan

接下来通过传参删除这些文件

deborphan | xargs sudo apt-get purge -y
#上下二选一均可
deborphan | xargs sudo apt-get remove -y

 

4.根新软件源(这个谈不上清理)

所谓过时(obsolete)的软件包是指/etc/apt/sources.list源文件中没有任何一个软件源提供这个软件的deb安装包.也就是说这个软件包在软件源里找不到了,不被支持了,有可能是因为作者不再维护这个软件导致的,因此Ubuntu/ElementaryOS工作人员决定删除这个软件,或者是这个软件包换了一个新的名字,旧的名字不再被搜索的到

一个很明显的情况时使用sudo apt-get update命令更新的时候出现超时的情况(中国大陆地区超时也有可能和防火墙有关)

总之总结而言就是这个软件过时了,我们需要从软件源中清理掉,一个最简单的命令就是

#自动修复缺失软件源
sudo apt-get update --fix-missing

5.清理日志文件

随着系统的使用,日志文件会变得越来越大,这时候我们就需要对日志文件进行清理,我们可以使用ncdu工具查看大日志文件

#首先下载ncdu
sudo apt-get install ncdu
#接下来查看/var/log日至文件
sudo ncdu /var/log

使用ncdu查看日至文件情况

可以看见自己的journal文件已经有500+MB的空间使用了,自己根据自己的系统磁盘情况是否可以选择进行清理,一般而言服务器不建议清理,自己的个人电脑可以考虑定时清理(删除):

#cd到目标目录
cd /var/log/journal/
#使用ls加参数传递的方式删除
ls | xargs sudo rm -rf 

这样的一轮清理是不影响LINUX系统本身使用的,但是就我个人电脑总结而言,这样一轮清理,也只不过清理出4G的根目录空间而以,聊胜于无,当然,如果你是一个有钱人,你可以考虑加硬盘的方式进行扩展安装,并关闭这个文章,就学习而言还是不错的,希望这个文章能对你的LINUX学习起到一定的帮助。

 

 

不要问我为什么EOS托盘问题不更新,因为不熟悉tweaks

不要问我为什么正则表达式不更新,因为我自己都看的一知半解的

不要问我linux命令为啥不更新,因为我懒了

不要问我数据结构教程不更新,因为我出去比赛了,现在C语言网在催我我正在写了[2020年补,我已经更新完了,想看我的教程可以来这:https://www.dotcpp.com/course/ds/]

分类: Linux

2 条评论

lyom · 2020年3月24日 上午9:36

很不错,感谢博主!我会一直关注

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注