【已解决】vim编辑状态下手残按了ctrl + z,怎么办? 您所在的位置:网站首页 虚拟机vim退出命令是什么 【已解决】vim编辑状态下手残按了ctrl + z,怎么办?

【已解决】vim编辑状态下手残按了ctrl + z,怎么办?

2024-07-04 00:11| 来源: 网络整理| 查看: 265

文章目录 一、问题过程描述二、解决三、拓展学习作业与进程的区别与联系:nohup 和 & 的区别和联系

一、问题过程描述

不小心手残,按了ctrl + z,显示:

[1]+ Stopped vi db.json

输入vi db.json,显示了如下提示:

E325: ATTENTION Found a swap file by the name ".db.json.swp" owned by: AImooc-Oliver dated: Sun Jan 17 17:54:21 2021 file name: /e/Projects/j-server/db.json modified: YES user name: AImooc-Oliver host name: DESKTOP-QU2CUOV process ID: 163 (STILL RUNNING) While opening file "db.json" dated: Sun Dec 12 17:51:26 2103 (1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r db.json" to recover the changes (see ":help recovery"). If you did this already, delete the swap file ".db.json.swp" to avoid this message. Swap file ".db.json.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort:

在这里插入图片描述

Using swap file ".db.json.swp" Original file "/e/Projects/j-server/db.json" Recovery completed. You should check if everything is OK. (You might want to write out this file under another name and run diff with the original file to check for changes) You may want to delete the .swp file now. Press ENTER or type command to continue

原来ctrl + z是强制将进程挂起,后台运行,会生成一个后缀为.swp的隐藏文件,接下来每次vi db.json都会显示上面那个界面。。。

二、解决

两种解决方案:

ctrl+z 退出后,在显示[1]+ Stopped vi db.json时,终端直接输入fg 1(中括号中显示的数字,即作业号,若只有一个,作业号可忽略)这样就会重回vim编辑界面了,然后正常退出即可。ls -a 一下,会看到隐藏的.swp文件 删除了此文件即可,再次使用vim打开文件就不会出现上述界面了。 三、拓展学习

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

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

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

注:

这几个命令都是与系统任务有关注意区分进程号和作业号使用nohup时,在缺省情况下该进程的所有输出都被重定向到当前目录的nohup.out文件中,若当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。 作业与进程的区别与联系: 联系: 一个作业通常包括几个进程,几个进程共同完成一个任务,即作业。用户提交作业以后,当作业被调度,系统会为作业创建进程,一个进程无法完成时,系统会为这个进程创建子进程。 区别: 进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务。[ ]中的数字是作业号(或称任务编号),在用kill杀死作业的时候用kill %[ num]pid 是进程号,在用kill杀死进程的时候可以直接用kill -pid。 nohup 和 & 的区别和联系

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

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

经常连用:

nohup COMMAND &

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

拓展阅读:

【linux】bg和fg命令的学习


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有