nice -999 ls -l 命令有什么作用?

nice -999 ls -l 命令有什么作用?

ls -l如果我没记错的话,列出目录中的文件和文件夹并nice根据优先级显示程序或文件。但是,这怎么nice -999 ls -l办呢?我在终端中尝试了该命令并得到了如下结果:

total 16
-rw-r--r-- 1 muu muu   41 Jul 11 00:47 file.txt
drwx------ 2 muu muu 4096 May  4 17:12 Jam
-rw-r--r-- 1 muu muu 1841 May  4 17:18 Jam.zip
-rwxrwxrwx 1 muu muu  197 Jul 10 23:28 t.sh

但我不明白它到底在做什么?有人能解释一下吗?TIA

答案1

nice:很好 - 运行具有修改后的调度优先级的程序

格式:nice [OPTION] [COMMAND [ARG]...]

所以nice -999 ls -l应该是nice -9 ls -lnice 10 ls -l左右,它在这里的作用是将命令nice的级别设置ls为给nice定的值。但是在您的例子中,您使用一个不错的值,-999其范围-2019

nice 命令的目的是确保给定命令以除其默认优先级之外的设定优先级运行。因此,假设ls命令应以 nice 优先级运行,10那么以 运行它将nice 1 ls使其对其他进程更有利(即,它将让位于其他优先级较低的进程,可以这么说)

用法:

修改友善度:

nice -10 ls -l

修改为负面友善度:

nice --10 ls -l
# Note the use of "--"

修改已经运行的进程的优先级:

renice -12 -p <PID> 

将已经运行的进程的优先级修改为负值:

renice 12 -p <PID>

来源:

man nice

答案2

解释

ls使用较低的优先级运行命令。

  • -999等于,且因为良好等级是到-n 999之间的数字,所以将被视为。-201999919

因此您的ls命令正在以良好的级别运行19


测试

打开终端并运行:

$ ps -o pid,comm,nice | grep bash
8231 bash              0

您可以看到 bash 的 nice 级别是0默认的,现在运行:

$ nice -999 bash

你将进入一个新的 bash。再次运行ps -o pid,comm,nice | grep bash

 8231 bash              0
 8273 bash             19

可以看到新的bash的nice等级等于19。(以最低优先级运行)。

答案3

Nice 不会“根据优先级显示”;它使用修改的优先级。该命令执行的操作与以 开头时完全相同ls -l(即,它列出当前目录中的文件,包括权限、大小和访问时间等详细信息),但优先级降低,将其优先级提高 999)。

您还应该意识到,使用这么大的niceness值是没有意义的:无论如何它都会被限制在-20到19的范围内。

相关内容