我的几个常用linux命令

本文仅供自己日常参考

linux 后台运行任务

# 在某一个命令运行当中, 如在vim编辑中, 使用 Ctrl + Z , 将当前任务切换到后台, 此时该任务处于暂停状态. Stopped 

#如果想让任务在后台继续运行, 需要输入: 
bg %[上文显示的任务id]

# 如果不知道任务id, 使用jobs命令列出全部后台任务
jobs -l

# 后后台任务切换到前台
fg # 把 jobs 列出的带 "+" 号的任务切换到前台, 这个任务也是最后一个放入后台任务
fg %[任务id] # 把特定id的任务切换到前台, 注意%号

# 让一个命令直接在后台运行, 在命令最后加上 &
[command] &

nohup, 不挂起地运行任务
比如说当我们从客户端ssh到服务器, 如果因为客户端这边的网络或者其他原因, 导致ssh意外中断, 那服务器上正在运行的任务可能就被迫中断了, nohup就是为了解决这类需求, 当终端关闭后, 任务仍能继续运行
参考了这篇博客

# 基本命令
nohup [command] &

# 举例
nohup python test.py > out.txt 2>&1 &

# 对上述命令说明:
#     > 用于输出重定向, >   out.txt 即为把python程序的输出内容输出到out.txt中
#      2>&1  指将标准出错重定向到标准输出
#     & 让命令在后台运行

screen, screen是一个类似nohup的第三方命令, 比nohup更强大和好用, 从名字上来看, 有点类似一个虚拟屏幕的意思, 可以让任务在一个虚拟的终端中继续运行
下列命令参考了这篇文章

# 安装 screen
sudo apt-get install screen

# 创建新回话
screen -S [name]

# 查看当前的全部会话
screen -ls 
# ~~会话有两种常见状态, Detached (分离的) 可以理解为在后台的(从这个单词解释来看, 就是这个会话不是当前的任务), Attached (附加的) 可以理解为在前台的(从这个单词解释来看, 就是这个会话是当前的任务), 两种状态和git里面的Attached/Attached有类似的意思 ~~


# 重新连接回话, 或者说切换到某个回话
screen -r [name]

#  在某个回话中退出并删除会话, 快捷键 Ctrl+D

# 清除一系列Dead的会话
screen -wipe

screen 还支持窗口管理操作
screen 的命令模式以 Ctrl + A 开始,
Ctrl + A 再 C: 新建窗口并切换过去
Ctrl + A 再 N: 切换到下一个窗口
Ctrl + A 再 K: 关闭当前窗口
Ctrl + A 再 Shift + S: 上下分屏
Ctrl + A 再 Tab: 切换屏幕

TODO

ps
前后台 工作切换---------------Linux 任务管理器(一) - 孤独斗士 - 博客园
top

相关推荐