“fg %N”命令的作用是什么?

“fg %N”命令的作用是什么?

我了解到这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.

现在开始第一部分。你实际发出的命令是不是实际上重定向stdoutstderr:它将标准输出重定向到名为 2 的文件然后将整个命令放入 shell 的后台。因此

$ man 1>2&
[1] 4662

man在后台运行(作为作业[1],具有进程 ID 4662) - 如果你查看当前目录,你很可能会找到一个名为的文件,2其内容为

 What manual page do you want?

您应该使用的命令是1>&2

  • &2: 文件描述符#2
  • 2&: 文件命名 2,命令在后台运行

有关详细信息,请REDIRECTION参阅man bash

答案2

  1. 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.
    
  2. 正如问题的第一个版本中提到的那样,1>&2这是一个例子重定向. 阅读重定向,运行man bash并转到题为 的部分REDIRECTION

相关内容