在linux中打开图形终端是否有惯用的方法?

时间:2017-03-25 10:25:14

标签: linux bash x11

我有一些打开图形终端的bash脚本(Gnome-terminal,LXTerminal,Konsole等)。

但是我想知道是否存在开放终端的惯用方法?像文件类型的XDG标准?否则,我很难用打开终端的具体方法编写引用,例如:

lxterminal -e "ls"

一种更简洁的方法是设置一个'openTerminal'函数,它将命令作为参数之一运行。

1 个答案:

答案 0 :(得分:2)

Debian使用{em> x-terminal-emulator 中描述的11.8.3 Packages providing a terminal emulator 虚拟软件包执行此操作

  

为X Window系统提供满足下列条件的终端模拟器的软件包应在其提供控制字段中声明它们提供虚拟软件包 x-terminal-emulator 。他们还应该将自己注册为/usr/bin/x-terminal-emulator的替代方案,优先级为20.该替代方案应该有/usr/share/man/man1/x-terminal-emulator.1.gz的从属替代方案,指向相应的手册页。

     

要成为x终端模拟器,程序必须:

     
      
  • 能够模拟DEC VT100终端或兼容终端。

  •   
  • 支持命令行选项-e命令,该命令创建一个新的终端窗口[106]并运行指定的命令,将命令行的其余部分解释为直接传递给exec的命令,以xterm的方式。

  •   
  • 支持命令行选项-T title,它创建一个带窗口标题标题的新终端窗口。
  •   

也就是说,该策略描述了从20世纪90年代中期开始与xterm的最小兼容性。

取得了有限的成功:

  • 一些包装商滥用优先级字段,使用远远高于20的值。
  • -e 选项与您提到的一些终端的兼容性很差。

除了Debian(以及Ubuntu等派生的发行版)之外,这种方法使用不多。

我记得以前回答过这个问题,但目前看不到。以下是我的Debian /测试列表,指出每个 40 优先级的软件包都不遵循该政策:

$ sudo update-alternatives --config x-terminal-emulator

  Selection    Path                             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/xterm-dev                60        auto mode
  1            /usr/bin/evilvte                  20        manual mode
  2            /usr/bin/gnome-terminal.wrapper   40        manual mode
  3            /usr/bin/koi8rxterm               20        manual mode
  4            /usr/bin/konsole                  40        manual mode
  5            /usr/bin/lxterm                   30        manual mode
  6            /usr/bin/lxterminal               40        manual mode
  7            /usr/bin/mate-terminal.wrapper    30        manual mode
  8            /usr/bin/mlterm                   20        manual mode
  9            /usr/bin/mrxvt-full               10        manual mode
  10           /usr/bin/pterm                    20        manual mode
  11           /usr/bin/stterm                   15        manual mode
  12           /usr/bin/terminology              40        manual mode
  13           /usr/bin/urxvt                    20        manual mode
  14           /usr/bin/uxterm                   20        manual mode
  15           /usr/bin/xfce4-terminal.wrapper   40        manual mode
  16           /usr/bin/xterm                    20        manual mode
  17           /usr/bin/xterm-dev                60        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

(“xterm-dev”包当然是本地开发包,未发布)。