如何为特定任务自动启动终端实例


10

我正在阅读一些编程教程,并且对于每个会话,我必须至少启动3个终端窗口(一个用于记录日志尾部,一个用于测试输出,一个用于在其中运行各种shell命令,等等)。

现在,我手动启动它们:单击“终端”图标,在右侧文件夹中单击cd,键入命令,然后将窗口标题更改为有意义的名称。

有什么办法可以编写脚本或可以自动完成的脚本?如果是这样,怎么办?

(我很高兴没有得到完整的脚本作为答案。从哪里开始阅读的指针也可以。)

Answers:


9

由于您单击的是终端图标,因此我假设您正在使用gnome-terminal

通过gnome-terminal --help在命令行使用并从那里读取,我得到了选项列表。

基于maco的答案,我可能会提出如下建议:

gnome-terminal --window --title=Log -e "tail -f /var/log/syslog" --window --title=Output --working-directory=output --window --active --title=Dev --working-directory=dev/project

本示例将启动三个窗口(尽管您可以传递--tab选项卡),并为每个目录设置工作目录(相对于主目录)和标题,tail在一个窗口中启动命令,并使第三个窗口处于活动状态。

当然,您可能希望使用单独的行来启动每个窗口,尤其是在您有很多参数的情况下。

一旦您按照自己的喜好安排了窗户,要做的另一件事是使用

gnome-terminal --save-config=FILE

这将创建一个配置文件,其中包含所有打开的终端窗口和选项卡(包括标题,工作目录等)上的信息。--load-config然后使用该选项启动gnome-terminal 将重新创建您的布局。

许多使用多个终端的开发人员喜欢使用终结者,因为它添加了网格布局和键盘快捷键等功能。


用-e标志这样做会导致窗口在命令执行后立即关闭吗?如果是这样,是否有可能使窗口保持打开状态?
emf 2010年

8

无论您使用哪种终端仿真器,都应该能够接受命令作为参数。例如:

gnome-terminal -e "tail -f /var/log/syslog"

只需在系统->首选项->会话(Ubuntu)或系统设置->自动启动(Kubuntu)中将此类命令添加到您的自动启动中


4

您也可以使用脚本将其自动化。我建议阅读《高级Bash脚本指南》或《 Bash编程指南》,以及所用终端的手册页。

这是一个简单的示例:

$ vi your-script
#!/bin/bash
gnome-terminal -e "tail -f /var/log/syslog"
gnome-terminal --working-directory=/foo/bar
gnome-terminal --whatever-else

然后使其可执行:

$ chmod +x your-script

您不需要exec所有这些吗?
maco 2010年

是的,除非gnome-terminal已经在运行,否则该命令只会为其他正在运行的进程打开一个新窗口,然后关闭。
LassePoulsen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.