开始对 unix 有所了解,但查找进程控制命令时遇到了一些困难。作为非 root 用户,我正在尝试找出...
(1) the process id of current shell,
(2) its parent process’s process id,
(3) how many processes this user is running,
(4) how many of processes are running on the machine,
(5) how many are sleeping, how many are stopped,
(6) how much total memory your machine has,
(7) how much of that is used and how much is free.
(8) how to determine whether or not a process is using more than X amount of memory
(9) how to suspend a process temporarily for investigation purposes and how to resume it again
(10)terminating a process and ensuring it is in fact, terminated
一位朋友推荐我使用
man
但我在导航时遇到了麻烦。如果您还能分享一个很棒的 unix 命令通用资源,我将不胜感激。
答案1
这是 Linux 和 bash 所特有的。其中一些可以在其他 Unix 上运行,而另一些可以在其他 shell 上运行。特别是,涉及 中的任何内容/proc
在任何其他 Unix 上都无法运行。虽然我认为大多数 shell 都有$$
,但我不知道除了 bash 之外的任何 shell 都有$PPID
。
echo $$
echo $PPID
ps -u $USER | tail -n +2 | wc -l
ps -e | tail -n +2 | wc -l
- 这是有可能发现的,但是并不容易。
fgrep MemTotal /proc/meminfo
- 这个问题也没有简单的答案。在理想的系统中,永远不会有太多的“空闲”内存,因为程序不需要的任何内存都将分配给磁盘缓存。Linux 动态地在进程使用和缓存使用之间切换内存。
ps -ev
并查找具有较大 RSS 的进程,RSS 代表“驻留集大小”,表示该进程正在使用的内存量。kill -STOP <pid>
- 首先,温和地杀死它
kill <pid>
,如果它在那之后没有消失,就用偏见杀死它kill -9 <pid>
。它会在 -9 之后消失,如果没有,那就是某种内核问题。
正如一些人提到的,该top
实用程序 (do a man top
) 将非常有用。它将告诉您总内存以及用于缓冲区和缓存的内存量以及可用内存量。它还可用于显示按内存使用率或 CPU 使用率排序的进程。
答案2
首先,这是备忘单关于常见的 Unix 命令。的目的man
是找到有关每个命令的更多信息,例如它们的选项和所需的输入。因此,ls
列出当前目录中的文件。如果这样做,man ls
您可以找到该命令的更多选项。