【linux】bg、fg、jobs命令的学习,以及ctrl z/c、nohup和&

文章目录

  • 一、引入
  • 二、命令学习
    • 作业与进程的区别与联系:
    • nohup 和 & 的区别和联系


  • fg命令_Linux fg 命令用法详解:将后台作业放到前台终端运行
  • bg命令_Linux bg 命令用法详解:用于将作业放到后台运行
  • jobs命令_Linux jobs 命令用法详解:显示Linux中的任务列表及任务状态

一、引入

这两个命令的学习是在使用 vim 不小心ctrl + z了,然后百度查到了fg命令。。。

二、命令学习

Linux下的fg和bg命令是进程的前后台调度命令,即将指定号码(非进程号)的命令进程放到前台或后台运行。比如一个需要长时间运行的命令,我们就希望把它放入后台,这样就不会阻塞当前的操作;而一些服务型的命令进程我们则希望能把它们长期运行于后台。

进程前后台操作用到以下命令或按键:

  • Ctrl+C:终止并退出当前命令的执行,回到SHELL
  • Ctrl+Z:暂停当前命令的执行,将该进程放入后台,回到SHELL
  • jobs:查看当前在后台执行的任务,可查看任务编号(查看进程号pid需搭配选项 -l):
[2]+   210 Stopped                 vi db.json
  • &:运行命令时,在命令末尾加上&可让命令在后台执行
  • fg n:将命令进程号码为N的命令进程放到前台执行
  • bg n:将命令进程号码为N的命令进程放到后台执行(不论它之前的状态时运行中还是暂停)
  • nohup + 命令:不挂断地运行命令,该命令的输出信息将不会显示到终端。该命令可以在你退出帐户/关闭终端之后继续运行相应的作业。

注:

  • 这几个命令都是与系统任务有关
  • 注意区分进程号作业号
  • 使用nohup时,在缺省情况下该进程的所有输出都被重定向到当前目录的nohup.out文件中,若当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

作业与进程的区别与联系:

  • 联系:
    • 一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。
    • 用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。
  • 区别:
    • 进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。
    • [ ]中的数字是作业号(或称任务编号),在用kill杀死作业的时候用kill %[ num]
    • pid 是进程号,在用kill杀死进程的时候可以直接用kill -pid。

nohup 和 & 的区别和联系

用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如断开SSH连接都不会影响运行;

&是指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出

经常连用:

nohup COMMAND &

后台运行的程序即守护进程


拓展阅读:

  • 【nohup和&】nohup和&究竟有啥区别?
  • linux——signal信号(SIGHUP、SIGINT、SIGQUIT、SIGILL、SIGTRAP…)
  • 浅析 在Linux下【&命令】和【Nohup命令】的运用
  • linux kill命令详解
  • nohup和&后台运行,进程查看及终止(nohup.out)

你可能感兴趣的:(【linux】bg、fg、jobs命令的学习,以及ctrl z/c、nohup和&)