GNU屏幕生存指南

Hen*_*y B 106 gnu-screen

人们的想法不仅仅是你需要了解的关于优秀屏幕实用程序的基本内容,还有你认为值得从头开始教某人,初学者的事情吗?

我刚刚向Screen介绍了一位朋友,他们很难适应它.因此,用于记住绑定等的类比和方便技巧将是非常棒的.

Gre*_*ill 91

我已经使用屏幕超过10年,可能使用不到一半的功能.因此,没有必要立即学习它的所有功能(我不建议尝试).我的日常命令是:

^A ^W - window list, where am I
^A ^C - create new window
^A space - next window
^A p - previous window
^A ^A - switch to previous screen (toggle)
^A [0-9] - go to window [0-9]
^A esc - copy mode, which I use for scrollback
Run Code Online (Sandbox Code Playgroud)

我想就是这样.我有时使用分屏功能,但肯定不是每天.另一个提示是,如果屏幕似乎已被锁定,因为你意外地击中了一些随机键组合,请同时执行^ Q和^ A ^ Q以解锁它.

  • "^一种esc - 复制模式,我用它来回滚"你是男人之中的神,先生. (9认同)
  • 我不使用^ A k因为意外杀死的可能性超过了我的意图.相反,我只是使用^ D(或`exit`)退出窗口中的shell.退出窗口中的最后一个shell后,屏幕窗口自动关闭. (7认同)
  • ^ A [做同样的事情. (4认同)

Roe*_*oel 36

直到我找到一种方法在屏幕底部设置一个"状态栏",显示你正在使用的"标签"或"虚拟屏幕"以及其他哪些屏幕,我才能习惯屏幕.这是我的设置:

[roel@roel ~]$ cat .screenrc
# Here comes the pain...
caption always "%{=b dw}:%{-b dw}:%{=b dk}[ %{-b dw}%{-b dg}$USER%{-b dw}@%{-b dg}%H %{=b dk}] [ %= %?%{-b dg}%-Lw%?%{+b dk}(%{+b dw}%n:%t%{+b dk})%?(%u)%?%{-b dw}%?%{-b dg}%+Lw%? %{=b dk}]%{-b dw}:%{+b dw}:"

backtick 2 5 5 $HOME/scripts/meminfo
hardstatus alwayslastline "%{+b dw}:%{-b dw}:%{+b dk}[%{-b dg} %0C:%s%a %{=b dk}]-[   %{-b dw}Load%{+b dk}:%{-b dg}%l %{+b dk}] [%{-b dg}%2`%{+b dk}] %=[ %{-b dg}%1`%{=b dk} ]%{-b dw}:%{+b dw}:%<"

sorendition "-b dw"
[roel@roel ~]$ cat ~/scripts/meminfo
#!/bin/sh
RAM=`cat /proc/meminfo | grep "MemFree" | awk -F" " '{print $2}'`
SWAP=`cat /proc/meminfo | grep "SwapFree" | awk -F" " '{print $2}'`
echo -n "${RAM}kb/ram ${SWAP}kb/swap"
[roel@roel ~]$
Run Code Online (Sandbox Code Playgroud)

  • 查看byobu(屏幕配置文件):https://launchpad.net/byobu (3认同)

Jam*_*cat 30

Ctrl+ A? - 显示帮助屏幕!


agn*_*nul 26

如果你的朋友习惯于^A在bash 中按下该行的开头,他/她会有一些惊喜,因为^A它是屏幕命令键绑定.通常我最终得到一个冻结的屏幕,可能是因为我按下了一些随机键^A:-)

在那些情况下,我试试

^A s^A q阻止/取消阻止终端滚动

解决这个问题.要转到屏幕内一行的开头,键序列是^A a

  • + 1 + 1 + 1 ^ A s ...谢谢...锁屏:) (3认同)

And*_*son 12

您可以将ctrl-A中的转义键重新映射为您选择的另一个键,因此如果您将其用于其他内容,例如在bash中转到行的开头,则只需要在〜中添加一行〜 /.screenrc文件.要使它^ b或^ B使用:

escape ^bB
Run Code Online (Sandbox Code Playgroud)

从命令行,使用名称会话来控制多个会话.我为每个任务使用一个会话,每个会话有多个选项卡:

  screen -ls                lists your current screen sessions
  screen -S <name>          creates a new screen session called name
  screen -r <name>          connects to the named screen sessions

使用屏幕时,您只需要几个命令:

  ^A c          create a new shell
  ^A [0-9]      switch shell
  ^A k          kill the current shell
  ^A d          disconnect from screen
  ^A ?          show the help

一个优秀的快速参考,可以发现在这里.值得收藏.


sta*_*san 8

有些熟悉屏幕的技巧,但是他们往往不记得他们在手册页中读到的内容:

  • 要更改屏幕窗口的名称非常简单:ctrl+ A shift+ A.
  • 你错过了屏幕上的最后一条消息吗?ctrl+ a ctrl+ m将再次为您显示.
  • 如果你想运行一些东西(比如拖尾文件)并让屏幕告诉你何时发生了变化,请在目标窗口上使用ctrl+ A shift+ m.警告:如果有任何变化,它会通知您.
  • 想直接选择窗口15?在您的.screenrc文件中尝试这些:
bind  ! select 11
bind  @ select 12
bind \# select 13
bind  $ select 14
bind  % select 15
bind \^ select 16
bind  & select 17
bind  * select 18
bind  ( select 19
bind  ) select 10
Run Code Online (Sandbox Code Playgroud)

为Windows 10到19 分配ctrl+ a shift+ 0 through 9.


tad*_*usz 6

ctrl+ a是一个特殊的键.

ctrl+ a d- [d] etach,在后台留下节目(irssi?),回家.

ctrl+ a c[c]创建一个新窗口ctrl+ a 0-9按窗口 在窗口之间切换

screen -r - 返回分离会话

这涵盖了90%的用例.不要试图一次显示所有功能.


Nik*_*adi 6

Ctrl+ A是基本命令

Ctrl+ A N=转到***N***ext屏幕

Ctrl+ A P=转到***P***revious屏幕

Ctrl+ A C=***C***创建新屏幕

Ctrl+ A D=***D***etach你的屏幕


小智 6

http://www.debian-administration.org/articles/34

我在几年前写过,但它仍然是一个很好的介绍,获得了很多积极的反馈.


Zso*_*kai 6

我"必须"添加这个:添加

bind s
Run Code Online (Sandbox Code Playgroud)

对你来说.screenrc,如果你 - 像我一样 - 以前使用分割窗口,就像C-a S拆分实际窗口一样,但C-a s冻结它.所以我只是禁用了冻结快捷方式.

  • 如果你点击'^ -S`,`^ -Q`就会解冻 (2认同)