Linux 里有几个名字”诡异”的家伙,它们的英文名各有来历,本文逐个解释。
daemon(守护进程)
daemon 的中文名是守护进程。有句话是这么说的:如果 Unix 中没有了守护进程,那么 Unix 就不再是原来的样子。
守护进程是一个运行在后台、不受终端控制的进程,大多数随系统启动而启动,无特殊情况会一直运行到系统关闭,为用户和系统本身提供有用的服务。常见的有 httpd、mysqld、syslogd 等,守护程序名称一般以 d 结尾。
zombie(僵尸进程)
zombie 即僵尸进程。当一个进程被杀死后,它并不会马上消失,而是变成 zombie,等待其父进程收集完它的信息后才被清除。通常这个收集过程很快完成,但有时父进程很忙,僵尸进程就会一直留在系统中。
系统运行过程中时不时会产生一些僵尸进程,我们无法直接杀死它们(因为它们已经”死”了),只能采取别的办法——比如杀死它的父进程,再由 init 来回收。僵尸进程的出现通常表示产生它的进程出了问题,而且它会消耗资源,需要防止其大量出现。
kill
kill 是一个用于杀死进程的命令,使用方法简单直接。当你发现一个进程占用太多内存或 CPU 资源、造成了负面影响时,可以用 kill 干掉它。若遇到僵尸进程杀不掉,就去找它的父进程,按上面提到的方法处理。
cat
cat 是 concatenate(连接)的简写,作用是组合文件。另外也可以用这个命令方便地查看文件内容。
tail
tail 用于查看文件的最后 n 行,也常用于监控文件——例如观察日志文件时,tail 会显示尾部内容并实时更新。
which
which 负责打印与命令相关联的文件位置。例如获取 Python 的位置,用 which python 就会在系统上打印每个版本 Python 的位置。
crypt
crypt 在 Linux 中的含义是加密(现在称为 mcrypt)。当你想对文件加密而不被他人读取时,这个命令会很有用。与大多数 Linux 命令一样,可以单独使用,也可以在系统脚本中使用。
shred
shred 的作用是粉碎文件。我们删除文件通常用 rm,但 rm 删除后是有手段恢复的。如果不想让别人恢复,就需要 shred——它能多次覆盖文件以前占用的空间,使用前一定要想清楚,因为数据难以恢复。