linux screen 命令行 命令行

Skiy 1月前 23

常用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 ? -> 显示所有键绑定信息

C-a c -> 创建一个新的运行shell的窗口并切换到该窗口

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 -> 显示所有窗口列表

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 选定的内容贴上


查看当前的screen: screen -ls

重新连接screen会话: screen -r 12865 / screen -r screen_name

查看screen列表: screen -list

共享screen会话: screen -x

创建一个新的screen: screen -S screen_name ./shell_tool

最新回复 (1)
  • Skiy 1月前
    引用 2

    screen 日志保存

    每个screen会话窗口有单独的日志文件。

    在screen配置文件/etc/screenrc最后添加下面一行:

    logfile /tmp/screenlog_%t.log

    %t是指window窗口的名称,对应screen的-t参数。所以我们启动screen的时候要指定窗口的名称。

    screen -L -t window1 -dmS test的意思是启动test会话,test会话的窗口名称为window1。屏幕日志记录在/tmp/screenlog_window1.log。如果启动的时候不加-L参数,在screen session下按ctrl+a H,日志也会记录在/tmp/screenlog_window1.log。

    注意,如果写成:logfile ./screenlog_%t.log 则是把日志文件记录到当前目录下。

    例子:

    screen -L -t name -S name ./name

    第一个name是记录日志的名字,第二个name是screen -ls 列表展示出来的名字,第三个name是需要运行的程序。

返回
发新帖