ps是基本的 Linux命令,通过本实验,不仅要熟悉 ps 命令方法,更重要的是可以了解 Linux进程的组成。
ps:查看系统中的进程,Linux 中可以使用 ps -aux 查看所有进程。其中 PID 代表进程 ID,TTY 是该 进程是由哪个控制台启动的,CMD 则是命令。
如果想列出更详细的信息,则可使用命令:“ps -auxw”。参数 w 表示加宽显示的命令行,参数 w 可以 写多次,通常最多写 3 次,表示加宽 3 次,这足以显示很长的命令行了。
在 shell 提示符下输入如下命令,并解释输出的结果:
[root@vm root]#ps
PID TTY TIME CMD
16767 pts/1 0:00 ps
18029 pts/1 0:00 bash
[root@vm root]#ps aux
PID TTY TIME CMD
本实验将指导学员了解 proc 文件系统,通过 proc 文件系统查询进程信息,可以扩展到修改系统参数。
/proc 文件系统是一个虚拟文件系统,通过文件系统接口实现对内核的访问,输出系统运行状态。它以 文件系统的形式,为操作系统本身和应用进程之间的通信提供了一个界面,使应用程序能够安全,方便的 获得系统当前的运行状况和内核的内部数据信息,并且可以修改某些系统的配置信息。
1)认识 proc 文件系统的文件和目录
root@vm root]#cd /proc
[root@vm root]#ls
2)通过 proc 文件系统查看系统当前进行状态
[root@vm root]#cat /proc/self/status
3)查询文件句柄的当前使用情况
426 15252458
file-nr 文件显示了三个参数:分配的文件句柄总数、当前使用的文件句柄数以及可以分配的最大文件 句柄数。如果需要增大 /proc/sys/fs/file-max 中的值,请确保正确设置 ulimit。对于 2.4.20,通常将其设置 为 unlimited。使用 ulimit 命令来验证 ulimit 设置:
[root@vm root]# ulimit
unlimited
4)通过 proc 文件系统修改内核中预定的一些变量
1)修改整个系统中文件句柄的最大数量
52458
[root@vm root]#echo 65536 >/proc/sys/fs/file-max
[root@vm root]#ls /proc/sys/fs/file-max 65536
2)修改网络 TTL
[root@vm root]#ls /proc/sys/net/ ipv4/ip_default_ttl
64
[root@vm root]#echo 128 >/proc/sys/net/ipv4/ip_default_ttl
[root@vm root]#ls /proc/sys/net/ ipv4/ip_default_ttl
128
3)修改系统中最大进程数量
[root@vm root]#ls /proc/sys/kernel/pid_max
1)修改整个系统中文件句柄的最大数量
32768
[root@vm root]#echo 65536 >/proc/sys/kernel/pid_max
[root@vm root]#ls /proc/sys/kernel/pid_max
65536
4)修改普通用户的最大 RTC 频率
[root@vm root]#ls /proc/sys/dev/rtc/max-user-freq
64
[root@vm root]#echo 128 >/proc/sys/dev/rtc/max-user-freq
[root@vm root]#ls /proc/sys/dev/rtc/max-user-freq
128
5)其他一些信息
[root@vm root]#cat /proc/cpuinfo - CPU
[root@vm root]#cat /proc/interrupts - 中断
[root@vm root]#cat /proc/ioports - 设备 IO 端口
[root@vm root]#cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size)
[root@vm root]#cat /proc/partitions - 所有设备的所有分区
[root@vm root]#cat /proc/pci - PCI 设备的信息
[root@vm root]#cat /proc/swaps - 所有 Swap分区的信息
[root@vm root]#cat /proc/version - Linux 的版本号