第四章 进程控制
1、Zombie(僵化进程)的意义 :进程试图消亡,在ps中,僵进程显示为,常见于apache的httpd进程
2、如果某个进程使系统的负载很高的话,在能够运行命令去调查问题以前,可能需要使用nice去启动一个高优先级的shell,否则命令可能永远得不到运行的机会。
如: nice -n -15 /bin/bash
nice的允许范围 -20 ~ +19
3、ps aux 可以显示系统上运行的所有进程的全貌。
ps lax 提供了技术性更强的信息,且运行速度也更快,还可以显示进程的优先级。
关于内存的使用
top输出的VIRT列给出了每个进程分配的虚拟内存量,RES列给出了当前映射到内存页的那部分内存(驻留集)。这两个数字都包括了像库这样的共享资源,从而让他们可能有误导性。在DATA列里能找到进程专门的内存消耗量更直接的测定值。运行top之后键入f,从列表中选择DATA.DATA值表明了每个进程的数据和堆栈段占用的内存量。DATA = Data+Stack size (kb)top命令中的%MEM 该进程正在使用的实际内存百分比 %MEM = Memory usage (RES),可见%MEM可能存在误导性。
第六章 添加新用户
1、/etc/login.defs 文件定义了新建用户的一些参数,如新建用户的最小UID等。
2、pwconv 可以让shadow文件和passwd文件的内容保持一致,补上任何新的用户,删除不在passwd中列出的用户。pwconv会
用/etc/login.defs里指定的默认值填充shadow文件里大多数隐蔽的参数。
3、如果一个用户默认属于/etc/passwd中某个特定的组,但是根据/etc/group文件的内容,却又不在那个组中,那么就要按照/etc/passwd的内容对待。
在用户登陆时,用户该是哪些组的成员,实际上是passwd和group文件中找到的组的并集。
4、如果我们想把一个用户分配给其他组,只要在/etc/group文件中把他的登录名加入其他的组里就可以了。
5、通过将配置文件放置到用户的主目录中,可以对一些命令和工具进行定制。启动文件一般都是以圆点(.)开头,以字母rc(run command的缩写)结尾。如: .bashrc .vimrc bashrc 设置环境变量,命令别名,搜索路径,umask值,cdpath,提示符(prompt),历史和savehist值
厂商在/etc/skel下提供了一组不错的默认启动文件,使用useradd命令时会拷贝该目录下的文件到用户主目录。
6、根据用户shell的不同,/etc可能包含在整个系统范围内起作用的启动文件,这些文件在用户自己的启动文件之前执行。例如,bash会在处
理~/.bash_profile之前先读取/etc/profile文件。
7、对于shell的系统级启动文件,还会查看/etc/profile.d目录获得要执行的附加配置片段。
8、禁止登陆
最直接的做法是在加密的口令前面添加一个星号或者其他字符,这样就可以让大多数通过口令的访问不能登陆。不过像ssh这样不必检查系统口令的命令任然会起作用.
usermod -L user 和 usermod -U user可以为用户上锁和解锁。(通过在加密的口令前添加!来实现)
另一种做法,为用户分配一个不存在于/etc/shells中的shell。
第七章 增加硬盘
1、ext3fs向ext2fs代码加入了日志功能,用tune2fs命令就能把一个ext2fs文件系统转换为ext3fs文件系统
2、ext3fs文件系统在硬盘上专辟了一个区域来保存日志文件。在发生文件系统操作的时候,所要求的修改首先写入日志文件。在完成日志更新之后,写入一条“提交记录(commit record)标记日志项的结束。只有这样以后,才对正规的文件系统做修改。如果发生了崩溃,可以用日志记录重构出完全相同的文件系统。
日志机制将执行文件系统一致性检查(fsck命令)所需的时间减小到每个文件系统大约1秒。