惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
Recorded Future
Recorded Future
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
Y
Y Combinator Blog
N
News | PayPal Newsroom
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Help Net Security
Help Net Security
博客园 - Franky
SecWiki News
SecWiki News
Recent Announcements
Recent Announcements
T
Troy Hunt's Blog
The Register - Security
The Register - Security
The Last Watchdog
The Last Watchdog
Webroot Blog
Webroot Blog
S
Security Affairs
博客园 - 司徒正美
S
Schneier on Security
I
InfoQ
博客园_首页
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Threat Research - Cisco Blogs
Forbes - Security
Forbes - Security
腾讯CDC
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic
Cloudbric
Cloudbric
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
Recent Commits to openclaw:main
Recent Commits to openclaw:main
B
Blog
V
Vulnerabilities – Threatpost
C
Check Point Blog
Google DeepMind News
Google DeepMind News
Google Online Security Blog
Google Online Security Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cisco Blogs
Schneier on Security
Schneier on Security
O
OpenAI News
K
Kaspersky official blog

NickChenyx's Blog

Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish Create_Rubbish
Create_Rubbish
nickChen · 2018-04-18 · via NickChenyx's Blog

Screen 使用流程

参考资料:

Screen 是管理会话的一个工具,能够持有多个会话并维持,方便切换,真切的提高工作效率。

简单使用

1> 创建会话

直接键入 screen 就可以开启一个新的会话窗口:

➜ screen
# 执行之后立刻进入一个新的会话

也可以在后面跟指令,可以直接在新会话中执行这条指令:

➜ screen vim new.txt
# 这里如果使用 :q 推出 vim 的话,也会直接退出当前的会话

screen 管理的会话中想要创建新的会话可以使用 C-a c

这里的 C-a 指的是 Ctrl + a,是 screen 的命令字符(command character)。

2> 管理会话

Q: 创建了多个 screen 会话之后,如何实现会话之间的跳转?

A: 使用 C-a 0..9. 在 0 ~ 9 会话之间切换, C-a n 切换到下一个会话,C-a p 切换到上一个会话。

快速回到上一个会话:使用了 C-a 0 进入了会话 0,再使用会话 C-a 3 进入了会话 3,可以直接使用 C-a C-a 返回上一个会话——即会话 0。

Q: 如何看当前新建了哪些会话?

A: 使用 C-a w 显示所有的窗口列表。

➜  0- /  1* /  2 /  3 /  4 /
# * 号表示的是当前会话

Q: 会话都是 0~9 不方便区分会话任务,如何处理?

A: 使用 C-a A 给会话起别名,这样在使用 C-a w 指令后可以看到所有会话的别名用来区分任务。

➜ 0 /vim  1 /vim1  2- /upload  3* /do  4 /
# 可以看到 0 和 1 在执行 vim,2 在执行一个上传任务,3 在做些别的事儿,4 还没有起别名

3> 挂起|重连会话

可以使用 C-a d 用来挂起 screen 会话,这样就可以回到原来的终端了:

[detached] # 挂起 screen 会话之后打印的 echo
➜  / # 已经回到原来的终端

使用 screen -ls 可以看到这个被挂起的会话:

➜  / screen -ls
There is a screen on:
    3187.ttys002.lzdeMBP    (Detached) # 这就是被挂起的会话
1 Socket in /var/folders/mh/zj230g0x2996t8qvszyj3qy80000gn/T/.screen.

可以使用 screen -r <session pid> 重连到该会话:

➜  / screen -r 3187

这样就能重新进入 screen 会话了。

创建了多个会话之后,有的会话已经完成了它的职责,这时候需要关闭它了。

使用 C-a k 可以关闭当前会话。

其他常用指令:

-c file 使用配置文件file,而不使用默认的$HOME/.screenrc
-d/-D [pid.tty.host] 不开启新的screen会话,而是断开其他正在运行的screen会话
-h num 指定历史回滚缓冲区大小为num行
-list/-ls 列出现有screen会话,格式为pid.tty.host
-d -m 启动一个开始就处于断开模式的会话
-r sessionowner/ [pid.tty.host] 重新连接一个断开的会话。多用户模式下连接到其他用户screen会话需要指定sessionowner,需要setuid-root权限
-S sessionname 创建screen会话时为会话指定一个名字
-v 显示screen版本信息
-wipe [match] 同-list,但删掉那些无法连接的会话

-d –m 选项是一对很有意思的搭档。他们启动一个开始就处于断开模式的会话。

你可以在随后需要的时候连接上该会话。有时候这是一个很有用的功能,比如我们观察日志文件。

该选项一个更常用的搭配是:-dmS sessionname 启动一个初始状态断开的 screen 会话:

➜ / screen -dmS xxxLog tail -n 10 -f zk.log
# 这里就开启了一个观察日志的会话
# 下面只需要执行程序,然后重连到这个会话就好了
➜ / screen -r xxxLog
# 连接到打印日志的会话

4> 分屏使用

充分利用大屏优势:

  • 使用 C-a S 可以上下分屏,C-a | 可以水平分屏(这个要高版本才有了)
  • 使用 C-a Tab 可以切换到另一个屏幕
  • 使用 C-a X 可以取消当前分屏

管理 Screen

同大多数UNIX程序一样,GNU Screen提供了丰富强大的定制功能。你可以在Screen的默认两级配置文件 /etc/screenrc$HOME/.screenrc 中指定更多,例如设定screen选项,定制绑定键,设定screen会话自启动窗口,启用多用户模式,定制用户访问权限控制等等。

配置 ~/.screenrc

# Set default encoding using utf8
defutf8 on

## 解决中文乱码,这个要按需配置
defencoding utf8
encoding gbk utf8

#兼容shell 使得.bashrc .profile /etc/profile等里面的别名等设置生效
shell -$SHELL

#set the startup message
startup_message off
term linux

## 解决无法滚动
termcapinfo xterm|xterms|xs ti@:te=\E[2J

# 屏幕缓冲区行数
defscrollback 10000

# 下标签设置
hardstatus on
caption always "%{= kw}%-w%{= kG}%{+b}[%n %t]%{-b}%{= kw}%+w %=%d %M %0c %{g}%H%{-}"

#关闭闪屏
vbell off

TODO…


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 nickchenyx@gmail.com