由于我整天使用* nix命令screen
,并且我找不到任何人开始这个问题,我认为它应该开始。 你知道演习:社区wiki,每个function一个答案,所以我们都可以投票。
我喜欢用它来连接到串行控制台,即
screen /dev/ttyS0 19200
这个命令只是打开一个串口0(ttyS0)的连接,波特率为19200
screen
的最大特点是自从Jaunty以来默认随Ubuntu一起提供的Byobu(原屏幕configuration文件): https : //launchpad.net/byobu
这是一个configurationpipe理器,具有非常好的默认值,吨状态通知和有用的键盘快捷键(即新的屏幕f2,前/后等f3 – f4)
我真的不去没有它了:)
从KTamas的amswer:不止一个人可以使用相同的屏幕,即如果你的朋友ssh
到你的电脑,然后他可以连接到你的屏幕。 有两三个人在同一个项目上工作,这真是太好了。
不完全是一个“隐藏的function”; 但正确设置.screenrc文件可以使一个世界的不同。 其中一个更好的例子可以通过googlesearchscreenrc和“brad sims”find – 他有一个很好的文件来修补。
那说,我最喜欢的设置将是bindkey:
# bind F7 to detach screen session from this terminal # bind F8 to kill current screen window. # bind F9 to create a new screen # bind F10 to rename current screen window # bind F11 to move to previous window # bind F12 to move to next window bindkey -k k7 detach bindkey -k k8 kill bindkey -k k9 screen bindkey -kk; title bindkey -k F1 prev bindkey -k F2 next
我不记得是谁偷了这个(dotfile.org上的人)。 我为ssh稍微修改了一下:
#!/bin/sh # scr - Runs a command in a fresh screen # # Get the current directory and the name of command wd=`pwd` cmd=$1 shift # We can tell if we are running inside screen by looking # for the STY environment variable. If it is not set we # only need to run the command, but if it is set then # we need to use screen. if [ -z "$STY" ]; then $cmd $* else # Screen needs to change directory so that # relative file names are resolved correctly. screen -X chdir $wd # Ask screen to run the command if [ $cmd == "ssh" ]; then screen -X screen -t ""${1##*@}"" $cmd $* else screen -X screen -t "$cmd $*" $cmd $* fi fi
然后我设置下面的bash别名:
vim() { scr vim $* } man() { scr man $* } info() { scr info $* } watch() { scr watch $* } ssh() { scr ssh $* }
它为上面的别名打开一个新的屏幕,如果使用ssh,它将使用ssh主机名重命名屏幕标题。
干杯z0mbix
有一点我觉得有用的是,屏幕可以模拟比你的terminal更大的宽度。 我觉得这很有用,如果我使用less
到真正的日志文件,我不希望行换行。 使用:
Ctrl-A : width -w 999
我可以设置screen
比我的terminal更宽,并且less
日志行将不会包装。
在启动屏幕时可以更改控制键。 我使用它,所以我可以嵌套在对方的屏幕会话。 例如:“screen -e ^ w ^ x”使控制关键字ctr-w。
一个不错的function:您可以使用backtick
来添加额外的信息以显示在标题中。 例如,我有一个脚本,可以在不同的文件夹中输出新的邮件数量的单行摘要,如果我的屏幕会话与主机名一起显示,如下所示:
backtick 1 15 15 /home/waltermundt/bin/newmail caption always caption string "%{.kW}%1` example.com %{.bW}%-w%{.rW}%n %t%{-}%+w %{.gW}%h%{-}"
关键是%1`位,它是指反向作业1的输出。
(我使用hardstatus
作为xterm标题string,并设置不同,因此使用caption
而不是hardstatus alwayslastline
。)
不是“隐藏”function,但与其他活动用户共享屏幕会话的function非常有用。
设置屏幕共享的方法很复杂,包括访问控制权限和用户名称pipe理。 我和同事经常做的事情要快得多和肮脏:
chmod 777 $(tty)
sudo su <username>
screen -x <session>
这不需要任何高级configuration或密码共享。
我自己打印了一张小小的备忘单;
(注意:一切都以Ctrl-A为前缀)
答:重命名一个窗口 “:显示一个窗口列表 d:detatch会话
screen -D -R
去附着和重新连接一个正在运行的会话(万一你以某种方式失去了访问你的会话)。
这些都不是真正的隐藏function,但这些是我发现最有用的function。
这是一个核心function,但最好的是Ctrl-A :直接与屏幕对话。 : screen -t title ssh hostname
等