screen命令介绍

screen命令介绍

1. $:screen    创建一个screen
2. $:screen -ls 显示所有的screen会话
3. $:screen -d  脱离当前screen ,返回正常shell
4. $:screen -r 6361(作者注:huihuaID,用session -ls可以得到) 进入指定screen
5. $:screen -S yourname -> 新建一个叫yourname的session

ctrl+d: 退出,结束socket

Ctrl+a+d:退出但不退出会话:按下组合键Ctrl+a并松开,此时screen窗口等待命令,然后按下d并松开,退出screen窗口

:结束socket,和screen -d 一样




ctrl+c:中断shell的程序

ctrl+z:暂停shell

linux screen 命令详解

  功能说明:多重视窗管理程序。

  语  法:screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

  补充说明:screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。

  参  数:
  -A  将所有的视窗都调整为目前终端机的大小。
  -d<作业名称>  将指定的screen作业离线。
  -h<行数>  指定视窗的缓冲区行数。
  -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
  -r<作业名称>  恢复离线的screen作业。
  -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
  -s  指定建立新视窗时,所要执行的shell。
  -S<作业名称>  指定screen作业的名称。
  -v  显示版本信息。
  -x  恢复之前离线的screen作业。
  -ls或--list  显示目前所有的screen作业。
  -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业



------------------------------

常用screen参数:
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
C-a ? -> Help,显示简单说明
C-a c -> Create,开启新的 window
C-a n -> Next,切换到下个 window 
C-a p -> Previous,前一个 window 
C-a 0..9 -> 切换到第 0..9 个window
Ctrl+a [Space] -> 由视窗0循序换到视窗9
C-a C-a -> 在两个最近使用的 window 间切换 
C-a x -> 锁住当前的 window,需用用户密码解锁
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里    每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。 
C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。
C-a w -> Windows,列出已开启的 windows 有那些 
C-a t -> Time,显示当前时间,和系统的 load 
C-a K -> kill window,强行关闭当前的 window
C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样
    C-b Backward,PageUp 
    C-f Forward,PageDown 
    H(大写) High,将光标移至左上角 
    L Low,将光标移至左下角 
    0 移到行首 
    $ 行末 
    w forward one word,以字为单位往前移 
    b backward one word,以字为单位往后移 
    Space 第一次按为标记区起点,第二次按为终点 
    Esc 结束 copy mode 
C-a ] -> Paste,把刚刚在 copy mode 选定的内容贴上
--End--


在Linux系统中,`screen` 是一个强大的终端多路复用器,允许用户在一个终端窗口中运行多个会话,并且可以在断开连接后继续运行程序。以下是使用 `screen` 在后台运行程序的详细步骤: ### 创建一个新的会话 要创建一个新的 `screen` 会话,可以使用以下命令: ```bash screen -S <session_name> ``` 其中 `<session_name>` 是你为该会话指定的名称。例如: ```bash screen -S mysession ``` ### 在会话中运行程序 进入新创建的会话后,你可以像平常一样运行程序。例如,运行一个 Python 脚本: ```bash python myscript.py ``` ### 暂停并退出当前会话 如果你需要暂时离开当前会话但仍希望程序继续在后台运行,可以按下快捷键组合 `Ctrl + A` 然后按 `D` 键。这将使当前会话进入“分离”(detached)状态,而你的程序将继续在后台执行。 ### 列出所有会话 要查看当前所有的 `screen` 会话,可以使用以下命令: ```bash screen -ls ``` 该命令将显示所有处于活动或分离状态的会话列表。例如: ``` There are screens on: 12345.mysession (Detached) 67890.another_session (Attached) 2 Sockets in /run/screen/S-your_username. ``` ### 恢复已存在的会话 如果你想重新连接到一个已经存在的会话,可以使用以下命令: ```bash screen -r <session_name_or_pid> ``` 其中 `<session_name_or_pid>` 可以是会话的名称或进程 ID(PID)。例如: ```bash screen -r mysession ``` 或者: ```bash screen -r 12345 ``` ### 结束会话 当你的任务完成后,可以通过在会话内输入 `exit` 命令来结束会话。如果会话处于分离状态,也可以通过先恢复会话再输入 `exit` 来终止它。 ### 示例场景 假设你需要在远程服务器上运行一个深度学习任务,并希望即使断开 SSH 连接后任务也能继续执行。你可以按照以下步骤操作: 1. 登录到远程服务器。 2. 安装 `screen`(如果尚未安装): ```bash sudo apt-get install screen ``` 3. 创建一个新的会话并进入其中: ```bash screen -S dl_task ``` 4. 激活你的虚拟环境(如 venv 或 conda)。 5. 运行你的深度学习脚本: ```bash python train_model.py ``` 6. 按下 `Ctrl + A` 然后 `D` 键,从会话中分离。 7. 断开 SSH 连接。 8. 下次登录时,恢复会话以检查任务状态: ```bash screen -r dl_task ``` 这种方法非常适合长时间运行的任务,因为它确保了即使在网络中断的情况下,程序仍然可以在后台持续运行[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zlingh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值