在Putty上运行命令而不必担心失去连接


13

您如何有效使用“屏幕”命令?
是吗:

  1. 输入“屏幕”

  2. 输入命令

  3. 失去连线

  4. 重新查看丢失的会话

如何执行步骤4?

Answers:


18

带屏幕:

  1. screen
  2. 类型 command
  3. Ctrl- A- D从屏幕上分离
  4. 从会话注销
  5. screen -RD 重新连接到屏幕(如果有多个屏幕,则将获得当前屏幕会话的列表,并且您必须提供会话号)

对于离开日志文件或仅抛出一些相关输出并且不需要交互性的命令,一种更简单的方法非常有用nohup

  1. nohup command > logfile &
  2. 从会话注销
  3. tail -f logfile 从新的会话

注意:步骤3完全是可选的。如果您关闭PuTTY会话而没有断开连接,则仍然可以重新连接screen -RD
邓肯·琼斯

4

屏幕真的很强大,可以让您按照自己的要求去做。

要查看所有会话,请输入

screen -list

一旦确定了也可以重新连接的屏幕会话,请尝试

screen -dr SCREENID

它将很好地分离并重新连接您的会话。

您也可以做的不太好,

screen -D -R

它会远程分离并注销,如果有必要,然后重新附加,或者如果该会话不存在,它将创建该会话并通知用户。您可以添加“ -t NAME”为外壳或程序命名。

在屏幕内使用

command-c

创建一个新窗口(因此,您不需要4000000个屏幕会话即可断开连接并重新连接),并使用

command-int

从0开始的索引,当然是:P

由于您似乎不太熟悉屏幕,因此我假设您可以使用其他信息。我喜欢以下命令,例如:

-e xy

这导致x是命令字符,而y是生成文字命令字符的字符。默认值为Ctrl-a和`a。

这里还有更多适合您的内容:屏幕!这是给程序员的


2

screen -dr 分离并恢复上一个屏幕会话。


2

这是我使用屏幕时所学到的东西(我也刚开始这样做):

  • screen -S <name>创建一个名为“ <名称>”的屏幕。如果您想同时进行多个屏幕会话,这将非常有用。例如,我有一个我通常使用的,另一个我用于持久性进程的。
  • screen -ls 列出正在运行的屏幕。
  • screen -r <name>恢复分离的屏幕。如果屏幕已经连接到某处,请使用screen -dr <name>

另外,当您开始使用屏幕时,无论何时打算离开,请按^a d(= ctrl-a,然后按d)以断开当前正在运行的屏幕。然后可以在以后恢复它。

另外,我建议您查看一下^a ?屏幕内可以使用的不同命令的列表。

这些(对我而言)最重要的是:

  • ^a c 在您的屏幕会话中创建一个新窗口。
  • ^a ^a 在最后使用的两个窗口之间切换。
  • ^a " 列出会话中的当前窗口。
  • ^a Esc 在屏幕缓冲区中滚动。
  • ^a k 杀死当前窗口。
  • ^a x 以锁定您的屏幕会话,以防万一您需要离开计算机并且不希望别人弄乱它。


1

您还可以设置环境以立即登录并启动屏幕。有很多方法可以做到这一点。我选择将此添加到我的.bashrc文件中。

# screen management
if [ $SSH_TTY ] && [ ! $WINDOW ]; then
  SCREENLIST=`screen -ls | grep 'Attached'`
  if [ $? -eq "0" ]; then
    echo -e "Screen is already running and attached:\n ${SCREENLIST}"
  else
    screen -U -R
  fi
fi


0

步骤4是“ screen -r”

如果您确实强行断开了连接,则可能需要执行“ screen -r -d”,以迫使其从您认为仍处于打开状态的旧ssh会话断开连接。


0
 For windows system

 Open putty 
 then login in server

如果要在控制台中查看屏幕,则必须编写命令

 Screen -ls

如果必须访问屏幕,则必须使用以下命令

 screen -x screen id
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.