我了解到这fg %N
意味着“去做任务N
”
我不明白这个命令,也不知道如何使用它。我曾尝试在终端中手动输入此命令,但没有成功:
$ man fg
No manual entry for fg.
答案1
首先是第二个:fg
是 bash shell 内置命令,因此您需要参考手册页bash
。特别是,该部分JOB CONTROL
说
Simply naming a job can be used to bring it into the foreground: %1 is
a synonym for ``fg %1'', bringing job 1 from the background into the
foreground. Similarly, ``%1 &'' resumes job 1 in the background,
equivalent to ``bg %1''.
或者,你可以使用 shell 的交互help
系统:
$ help fg
fg: fg [job_spec]
Move job to the foreground.
Place the job identified by JOB_SPEC in the foreground, making it the
current job. If JOB_SPEC is not present, the shell's notion of the
current job is used.
Exit Status:
Status of command placed in foreground, or failure if an error occurs.
现在开始第一部分。你实际发出的命令是不是实际上重定向stdout
到stderr
:它将标准输出重定向到名为 2 的文件然后将整个命令放入 shell 的后台。因此
$ man 1>2&
[1] 4662
man
在后台运行(作为作业[1]
,具有进程 ID 4662
) - 如果你查看当前目录,你很可能会找到一个名为的文件,2
其内容为
What manual page do you want?
您应该使用的命令是1>&2
&2
: 文件描述符#22&
: 文件命名2
,命令在后台运行
有关详细信息,请REDIRECTION
参阅man bash
答案2
fg
是 bash 内置命令:$ type fg fg is a shell builtin
要获取有关单个 bash 命令的信息,请使用
help
:$ help fg fg: fg [job_spec] Move job to the foreground. Place the job identified by JOB_SPEC in the foreground, making it the current job. If JOB_SPEC is not present, the shell's notion of the current job is used. Exit Status: Status of command placed in foreground, or failure if an error occurs.
正如问题的第一个版本中提到的那样,
1>&2
这是一个例子重定向. 阅读重定向,运行man bash
并转到题为 的部分REDIRECTION
。