1)ctrl+Z:停止当前进程

首先先将一个程序运行起来,这个时候如果你需要去干别的事情,需要暂停运行,可以使用ctrl+Z:

user@mine:/opt/user/pytorch-gender$ python train_debug.py --debugFile=./debug
{'debugFile': './debug'}
Epoch /
----------
^Z
[]+ Stopped python train_debug.py --debugFile=./debug

从上面可以看见,这个程序已经已经停止了,状态为Stopped

2)jobs:用于查看正在运行的命令

user@mine:/opt/user/pytorch-gender$ jobs
[]+ Stopped python train_debug.py --debugFile=./debug

前面的编号[1]是命令编号

3)bg 命令编号:把程序调度到后台执行:

user@mine:/opt/user/pytorch-gender$ bg
[]+ python train_debug.py --debugFile=./debug &
user@mine:/opt/user/pytorch-gender$ jobs
[]+ Running python train_debug.py --debugFile=./debug &

然后我们可以看见该命令在后台运行起来了,状态为Running,命令后的&标志就是把命令放在后台运行的意思

这个时候该命令生成的返回信息会自己打印出来:

user@mine:/opt/user/pytorch-gender$ train Loss: 0.4611 Acc: 0.7824
val Loss: 0.1882 Acc: 0.9340
Epoch /
---------- user@mine:/opt/user/pytorch-gender$ train Loss: 0.3271 Acc: 0.8578
val Loss: 0.1845 Acc: 0.9260
Epoch /
----------

不影响你运行其他的命令,你就输入你的命令回车即可

当然,如果你不想让输出显示在控制台中,那就在运行时指明将输出信息写入日志文件:

user@mine:/opt/user/pytorch-gender$ python train_debug.py --debugFile=./debug >> gender_log_debug_1.out 

打开另一个窗口查看日志文件为:

user@mine:/opt/user/pytorch-gender$ cat gender_log_debug_1.out
{'debugFile': './debug'}
Epoch /
----------

然后这个时候如果你想进行调试,即pytorch Debug —交互式调试工具Pdb (ipdb是增强版的pdb)-1-在pytorch中使用,那么你在本地生成文件夹debug后,再查看日志文件变为:

user@mine:/opt/user/pytorch-gender$ cat gender_log_debug_1.out
{'debugFile': './debug'}
Epoch /
----------
train Loss: 0.4507 Acc: 0.7919
val Loss: 0.1578 Acc: 0.9420
Epoch /
----------
train Loss: 0.3201 Acc: 0.8576
val Loss: 0.1069 Acc: 0.9540
Epoch /
----------
--Call--
> /home/mine/anaconda3/lib/python3./site-packages/torch/autograd/grad_mode.py()__exit__() --> def __exit__(self, *args):
torch.set_grad_enabled(self.prev) ipdb> user@mine:/opt/user/pytorch-gender$

这时候你在命令端输入调试命令u:

user@mine:/opt/user/pytorch-gender$ python train_debug.py --debugFile=./debug >> gender_log_debug_1.out
u

可见日志文件中变为:

user@mine:/opt/user/pytorch-gender$ cat gender_log_debug_1.out
{'debugFile': './debug'}
Epoch /
----------
train Loss: 0.4507 Acc: 0.7919
val Loss: 0.1578 Acc: 0.9420
Epoch /
----------
train Loss: 0.3201 Acc: 0.8576
val Loss: 0.1069 Acc: 0.9540
Epoch /
----------
--Call--
> /home/mine/anaconda3/lib/python3./site-packages/torch/autograd/grad_mode.py()__exit__() --> def __exit__(self, *args):
torch.set_grad_enabled(self.prev) ipdb> > /opt/user/pytorch-gender/train_debug.py()train_model()
import ipdb;
--> ipdb.set_trace() ipdb>

如果调用l 123命令:

user@mine:/opt/user/pytorch-gender$ python train_debug.py --debugFile=./debug >> gender_log_debug_1.out
u
l

可见日志文件又变为:

user@mine:/opt/user/pytorch-gender$ cat gender_log_debug_1.out
{'debugFile': './debug'}
Epoch /
----------
train Loss: 0.4507 Acc: 0.7919
val Loss: 0.1578 Acc: 0.9420
Epoch /
----------
train Loss: 0.3201 Acc: 0.8576
val Loss: 0.1069 Acc: 0.9540
Epoch /
----------
--Call--
> /home/mine/anaconda3/lib/python3./site-packages/torch/autograd/grad_mode.py()__exit__() --> def __exit__(self, *args):
torch.set_grad_enabled(self.prev) ipdb> > /opt/user/pytorch-gender/train_debug.py()train_model()
import ipdb;
--> ipdb.set_trace() ipdb> labels = labels.to(device) # 当前批次的标签输入
# print('input : ', inputs)
# print('labels : ', labels) # 将梯度参数归0
optimizer.zero_grad() # 前向计算
# track history if only in train
with torch.set_grad_enabled(phase == 'train'):
# 相应输入对应的输出 ipdb>

所以输出和命令输入虽然不在一起,但是并不妨碍功能的实现

4)fg 命令编号:将后台命令调到前台运行

如果我想要对上面的命令进行调试,我就需要将其调到前台,然后再进行调试

user@mine:/opt/user/pytorch-gender$ fg
python train_debug.py --debugFile=./debug
train Loss: 0.2337 Acc: 0.9059
val Loss: 0.1347 Acc: 0.9400
Epoch /
----------
train Loss: 0.2040 Acc: 0.9141
val Loss: 0.0962 Acc: 0.9640
Epoch /
----------
train Loss: 0.1984 Acc: 0.9182
val Loss: 0.0825 Acc: 0.9720
Epoch /
----------
train Loss: 0.1841 Acc: 0.9218
val Loss: 0.1059 Acc: 0.9640
Epoch /
----------
train Loss: 0.1868 Acc: 0.9215
val Loss: 0.0668 Acc: 0.9740
Epoch /
----------
train Loss: 0.1782 Acc: 0.9273
val Loss: 0.0735 Acc: 0.9740
Epoch /
----------
train Loss: 0.1703 Acc: 0.9291
val Loss: 0.0850 Acc: 0.9680
Epoch /
----------
train Loss: 0.1596 Acc: 0.9329
val Loss: 0.1114 Acc: 0.9560
Epoch /
----------
--Call--
> /home/mine/anaconda3/lib/python3./site-packages/torch/autograd/grad_mode.py()__exit__() --> def __exit__(self, *args):
torch.set_grad_enabled(self.prev) ipdb>

5)nohup 命令 & :直接将命令放在后台运行

nohup python train_debug.py --debugFile=./debug &

如果要指定返回信息写入的日志文件log.out:

nohup python train_debug.py --debugFile=./debug >> log.out &

Linux后台命令的使用说明的更多相关文章

  1. 【转】linux ar 命令的使用说明那个和例子

    from: http://blog.csdn.net/xljiulong/article/details/7082960 linux ar 命令的使用说明那个和例子 标签: linuxmakefile ...

  2. linux ar 命令的使用说明那个和例子[转]

    用途说明 创建静态库.a文件.用C/C++开发程序时经常用到,但我很少单独在命令行中使用ar命令,一般写在makefile中,有时也会在shell脚 本中用到.关于Linux下的库文件.静态库.动态库 ...

  3. Linux后台命令导入MySQL语句

    1.首先输入命令: mysql -u root -p 然后输入MySQL的密码会进入到MySQL的命令界面. 2.输入命令use+数据库名字: use databaseName 3.最后输入命令sou ...

  4. Linux cp命令使用说明

    Linux cp命令使用说明 --功能说明:复制目录或文件 --命令格式:cp  [参数]  <文件或目录>  <文件或目录> --常用参数: -R 复制目录 -i 覆盖文件之 ...

  5. 转-Linux系统下安装rz/sz命令及使用说明

    时间: 2013/03/20 | 分类: Linux常用命令 | 作者: 李坏 | 浏览:39,146 | 评论:5   对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务 ...

  6. Linux 系统下安装 rz/sz 命令及使用说明

    Linux 系统下安装 rz/sz 命令及使用说明 rz/sz命令,实现将本地的文件上传到服务器或者从服务器上下载文件到本地,但是很多Linux系统初始并没有这两个命令,以下为安装和使用的具体步骤: ...

  7. linux后台启动命令-的原因

    linux后台启动命令-的原因 学习了:https://blog.csdn.net/saife/article/details/78276014 学习了:https://www.ibm.com/dev ...

  8. 【linux配置】Linux系统下安装rz/sz命令以及使用说明

    Linux系统下安装rz/sz命令以及使用说明 对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很 ...

  9. Linux后台执行命令:&和nohup nohup和&后台运行,进程查看及终止

    nohup和&后台运行,进程查看及终止   阅读目录 nohup和&后台运行,进程查看及终止 1.nohup 2.& 3.nohup和&的区别 &:是指在后台运 ...

随机推荐

  1. 【ASP.NET Core快速入门】(十三)Individual authentication 模板、EF Core Migration

    Individual authentication 模板 我们首先用VSCode新建一个mvc的网站,这个网站创立的时候回自动为我们创建Identuty Core以及EF Core的代码示例,我们可以 ...

  2. C#7.0新特性

    前言 微软昨天发布了新的VS 2017 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化.. 分享一下其实2016年12月就已经公布了的C#7 ...

  3. Hbase王国游记之:Hbase客户端API初体验

    §历史回顾 2018年岁末,李大胖朦胧中上了开往Hbase王国的车,伴着一声长鸣,列出缓缓驶出站台,奔向无垠的广袤. (图片来自于网络) 如不熟悉剧情的,可观看文章: 五分钟轻松了解Hbase列式存储 ...

  4. Spring Boot (十):邮件服务

    Spring Boot 仍然在狂速发展,才几个多月没有关注,现在看官网已经到 2.1.0.RELEASE 版本了.准备慢慢在写写 Spring Boot 相关的文章,本篇文章使用 Spring Boo ...

  5. java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err

    本文关键词: java 标准输出与标准错误    out与 err 区别 用法 联系  java中的out与err区别  System.out和System.err的区别 System.out.pri ...

  6. Cglib动态代理浅析

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2018-06-29/18.html 作者:夜月归途 出处:http://www.guitu ...

  7. 基于SpringMVC+Spring+MyBatis实现秒杀系统【业务逻辑】

    前言 该篇主要实现秒杀业务层,秒杀业务逻辑里主要包括暴露秒杀接口地址.实现秒杀业务逻辑.同时声明了三个业务类:Exposer.SeckillExecution.SeckillResult. Expos ...

  8. angularjs1.X进阶笔记(3)——如何重构controller

    目录 一. 结构拆分 二.基本代码优化 本篇是内部培训交流会的摘要总结. 培训PPT和示例代码已托管至我的github仓库: https://github.com/dashnowords/blogs/ ...

  9. c# ?? 和?

    static void Main(string[] args)      {                  double? num1 = null; // ? 说明num1可以为空        ...

  10. PHP指定日期转时间戳

    使用date_parse_from_format 可以转换指定的格式:举个例子: <?php $str = '2018.10.01';//或者 2018年10月1日 $arr = date_pa ...