Articles of gnu

是否可以在脚本中判断它是否在GNU屏幕中运行?

我们在远程服务器上有一个长时间运行的进程,这个进程会不时手动启动。 不幸的是,连接和启动作业的ssh会话可能会遇到互联网连接死亡,内核恐慌和其他一系列其他挑战。 屏幕似乎是确保过程不被中断的完美方式。 然而,依靠一个人总是记得开始画面,然后运行脚本来启动过程是一个等待发生的问题。 有没有办法从脚本我可以检查脚本是否被屏幕内部调用? 如果是,则进程将继续,否则脚本将退出并显示一条消息,指示用户先运行屏幕。

从脚本运行(GNU)屏幕

我想在屏幕会话中启动一些应用程序,但从脚本。 没有脚本,我会启动屏幕,然后用crtl-ac打开N个窗口,并在每个窗口中执行程序。 我尝试了以下 screen -d -m -S test screen -S test -X exec tail -f /var/log/messages screen -S test -X screen screen -S test -X exec tail -f /var/log/xinetd.log 但是当我附上会议尾巴没有运行。 如果我刚刚在screen -d -m -S startup并运行screen -S startup -X exec tail -f /var/log/messages 我错过了什么 ? AlexD回答后编辑 : 一半的工作解决scheme是 screen -d -m -S test tail -f /var/log/messages […]

如何告诉GNU屏幕在每个新窗口中运行.bash_profile?

当我在GNU屏幕上打开一个新窗口时,它运行.bashrc而不是.bash_profile 。 在我的设置中,这会导致一些环境variables没有在该窗口中正确设置。 我怎么能告诉GNU屏幕总是运行.bash_profile而不是.bashrc打开一个新窗口? (请不要告诉我只从我的.bashrc调用.bash_profile 🙂

我怎么知道我正在运行一个Linux的“屏幕”或不?

“屏幕”是指如何重新连接到断开连接的SSH会话中提到的程序。 这是一个很好的设施。 但是我真的很想知道一个问题。 我怎么知道我是否在“屏幕”内运行? 区别在于: 如果是的话,我知道我可以安全地closures当前的terminal窗口,例如closuresPuTTY窗口,而不会丢失我的shell(Bash等)会话。 如果否,我知道在closuresterminal窗口之前我必须处理任何待处理的作品。 更好的是,我希望在PS1提示符下显示这个状态,以便我可以随时自动看到它。

如何重新sorting窗口,更改滚动快捷方式,并修改GNU屏幕中的状态栏内容?

我学会了使用GNU屏幕,并在过去的几个星期里一直使用它。 现在我掌握了一些基本知识,如果我澄清这些查询,将会非常有帮助: 如何在Linux屏幕实用程序中重命名/重新sorting/移动窗口? 例如,在使用几天后,我来到一个窗口号是2,3,6,8的状态。现在我想在#9或#7创build一个新窗口。 这可能吗? 如果是的话,怎么样? 另外,是否可以将窗口#6“移动”到#4或#7? 如果是的话,怎么样? 滚动快捷方式:滚动需要Ctrl-A + Esc,然后按Ctrl-u / Ctrl-d。 有没有办法映射PgUp / PgDn直接做这些? 或者,有没有办法映射一些键(如F5)带我去复制模式,然后PgUp / PgDn滚动? 我已经启用了“标题总是”,所以当前的窗口标题始终显示在底部。 有没有办法在同一标题栏显示当前窗口的日志文件名和日志状态(开/关)?

我怎么能按大小sorting

我需要得到一个可读的du输出列表。 但是, du没有“按尺寸sorting”选项,并且sortpipe道不能与人类可读标志一起使用。 例如,运行: du | sort -n -r 按大小(降序)输出sorting后的磁盘使用情况: du |sort -n -r 65108 . 61508 ./dir3 2056 ./dir4 1032 ./dir1 508 ./dir2 但是,使用人类可读的标志运行它,不能正确sorting: du -h | sort -n -r 508K ./dir2 64M . 61M ./dir3 2.1M ./dir4 1.1M ./dir1 有没有人知道按尺寸sorting的方法?