Unix 程序

用于在基于 Linux 的系统上查看 CPU 温度和频率的小脚本

阅读时长:3 分钟

在这篇帖子中,我将展示在基于 Linux 的系统上,如何仅依赖主流 GNU/Linux 发行版预装的软件包查看 CPU 频率和温度信息。这种方法不需要借助任何额外的和硬件驱动和支持相关的软件包,只需要用一个只有几行的 Bash 脚本,利用 Linux 内核自身提供的机制和一些最基础的 Unix 命令就能读取 CPU 的硬件状态信息。 如果想直入正题,您可以点击此处直接跳到脚本的内容。如果您想了解我发现这种方法的探究历程,欢迎继续向下阅读。 如果您是一名有一定电脑使用知识的 Windows 用户,您肯定有过使用任务管理器监测系统状态的经历。任务管理器提供了 CPU 占用率和频率信息,方便我们了解系统负载。虽然任务管理器提供的监测功能绝不是最全面的,但作为一个系统自带、并且可以快速调出的工具,任务管理器有它独有的优势。 ……

手动进行 dnf history undo

阅读时长:8 分钟

我平时常用的 GNU/Linux 发行版包括 Fedora 和 CentOS。后者主要在服务器上使用,而在其它的使用场景下,比如我自己的电脑,就会使用前者。选择这两个发行版主要是因为这它们都使用 DNF 作为软件包管理器前端。有人嫌 DNF 太慢,但我喜欢它是因为它不仅会详细列出它将要进行的操作,包括装卸什么软件包、什么架构、什么版本,还允许方便地查询历史记录。DNF 对其运行的每个事务都保存记录(一个事务就是一次安装或卸载软件包的操作),并且还支持使用 dnf history undo 撤销事务,或使用 dnf history rollback 回滚到某一个事务。其它的一些像 APT 和 Pacman 的软件包尽管也会保存日志,但是并没有类似的撤销操作的功能。 ……

grep 替代 cat

阅读时长:4 分钟

我遇到了一篇很有趣的英文文章 Unix Recovery Legend,讲的是一群人拯救一个被 rm -rf / 毁坏的系统的故事。几十年前,在电脑还没发展到人手一台,一台电脑要给好几个人同时使用,每个人自己只有一个终端的年代的某一天,与该文章作者同处一间办公室的同事发现邮件发不出去了,作者就前去帮忙检查,发现 ls 命令和 /etc 目录被删了,于是就去找系统管理员,发现管理员的屏幕上赫然显示着这么两行文字: # cd # rm -rf * 由于是以超级用户身份执行的,第一行命令,cd,把工作目录切到了根目录 /(在现在的 GNU/Linux 环境中这么做则会切到 /root 目录下),然后第二行命令就删除了 / 下的所有目录和文件,效果等同于 rm -rf /。好在这条指令在把硬盘清光之前被强行停止了,虽然 /bin、/dev、/etc 和 /lib 被删,但是 /tmp、/usr 和 /users(相当于现在的 /home)逃过一劫。/bin 下都是命令,所以 ls 和 ps 等程序没法使用;/dev 下是设备对应的文件,由于被删了,磁带机这样的存储设备无法使用;/etc 下则是有各种配置文件,包括网络配置,所以也无法通过网络连接机器。这几重因素造成了即使这些人有磁带备份也难以恢复系统的窘境。 ……