ubuntu中如何右键打开终端命令窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu中如何右键打开终端命令窗口相关的知识,希望对你有一定的参考价值。

参考技术A 新安装ubuntu系统后,打开终端很麻烦,可以如下设置,使得右键中有打开终端的选项:前提是获得管理员权限(root权限),并无更新程序运行。打开终端窗口后,输入命令:apt-get install nautilus-open-terminal系统即会自动安装,安装完成后,注销一下系统,重新运行后,就会发现右键中多了打开终端的选项了。O(∩_∩)O本回答被提问者采纳

如何从命令行在 GNOME 终端中打开一个新选项卡? [关闭]

【中文标题】如何从命令行在 GNOME 终端中打开一个新选项卡? [关闭]【英文标题】:How to open a new tab in GNOME Terminal from command line? [closed] 【发布时间】:2010-11-14 09:48:19 【问题描述】:

我使用的是 Ubuntu 9.04 x64,当我写的时候:

gnome-terminal --tab

在终端,我希望它在同一个终端窗口中打开一个新选项卡。但它会打开一个新窗口。

我发现它的目的是在新窗口中打开一个新标签,即,如果我写:

gnome-terminal --tab --tab

它将打开一个带有两个选项卡的新窗口。

那么,问题是,如何使用gnome-terminal 中的命令在当前 窗口中打开一个新标签页?

【问题讨论】:

如果您仍然在编写 gnome 终端,为什么不能直接按 ctrl+shift+t 打开一个新选项卡;) 当从脚本文件运行命令时,我应该如何按Ctrl+Shift+T? (不过听说有一种叫做 D-Bus 的东西可以做到)! 每当我启动我的电脑时,我都需要在我的 gnome 终端中打开一些标签。而自动化会让我觉得自己更怪异一些。 (正如他们所说)懒惰是程序员的特点。 @VikrantChaudhary threevirtues.com :-) Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地点。 【参考方案1】:
#!/bin/sh

WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk 'print $5')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID

这将自动确定相应的终端并相应地打开选项卡。

【讨论】:

谢谢,效果很好。以适当的形式 - WID= xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk 'print $5'; xdotool windowfocus $WID; xdotool key ctrl+shift+t $WID 感谢您的解决方案。不过,我不清楚如何在不同的选项卡中执行不同的命令。无论我在哪里添加命令,它们都会在第一个选项卡中执行。您可以为此提供解决方案吗? @Calin 使用sleep 1; xdotool type --delay 1 --clearmodifiers "your Command"; xdotool key Return; 运行命令。 为什么是 WID 和 windowfocus 位?窗口不是已经聚焦了吗? 我在哪里放置这个脚本?【参考方案2】:

您还可以让每个选项卡运行一个设置命令。

gnome-terminal --tab -e "tail -f somefile" --tab -e "some_other_command"

【讨论】:

响应gnome-terminal --tab -e "cd /tmp",我收到“为此终端创建子进程时出错” @Hedgehog,我有办法:gnome-terminal --tab --working-directory="/home/user/X/Y/"。我不知道为什么,但"~/X/Y/" 没有用。 我的命令有问题,如果我只使用 --tab 它可以工作,但如果我使用 --tab -e "my_bash_shorcut" 它不起作用。你知道为什么吗? @AdrianMatteo 有点晚了,但我想我已经弄明白了:如果你用乱码创建两个文件,然后运行这个命令gnome-terminal --tab -e "tail -f file_a" --tab -e "tail -f file_b",gnome 终端将打开两个选项卡,每个选项卡选项卡将具有相应的文件内容,但会在您发送 ^C 的那一刻关闭。这告诉你为什么它不起作用,但我不知道如何解决这个问题。 @AdrianMatteo 见***.com/questions/17402152/…【参考方案3】:

我找到了最简单的方法:

gnome-terminal --tab -e 'command 1' --tab -e 'command 2'

我使用tmux 而不是直接使用终端。所以我真正想要的是一个简单的命令/shell 文件来构建开发env 和几个tmux 窗口。外壳代码如下:

#!/bin/bash
tabs="adb ana repo"
gen_params() 

    local params=""
    for tab in $tabs
    do  
        params="$params --tab -e 'tmux -u attach-session -t $tab'"
    done
    echo "$params"

cmd="gnome-terminal $(gen_params)"
eval $cmd

【讨论】:

这些引号'command 1' 比双引号更有效,只有当我还指定--working-directory="/some/path/" 时才对我有用【参考方案4】:

更详细的版本(在另一个窗口中使用):

#!/bin/bash

DELAY=3

TERM_PID=$(echo `ps -C gnome-terminal -o pid= | head -1`) # get first gnome-terminal's PID
WID=$(wmctrl -lp | awk -v pid=$TERM_PID '$3==pidprint $1;exit;') # get window id

xdotool windowfocus $WID
xdotool key alt+t # my key map
xdotool sleep $DELAY # it may take a while to start new shell :(
xdotool type --delay 1 --clearmodifiers "$@"
xdotool key Return

wmctrl -i -a $WID # go to that window (WID is numeric)

# vim:ai
# EOF #

【讨论】:

【参考方案5】:

以防万一,你想打开

新窗口 有两个标签 并在那里执行命令 并让它们保持打开状态...

给你:

gnome-terminal --geometry=73x16+0+0 --window \
  --working-directory=/depot --title='A' --command="bash -c ls;bash" \
  --tab --working-directory=/depot/kn --title='B' --command="bash -c ls;bash"

mate-terminal 顺便说一句。)

【讨论】:

xfce4-terminal btw 的作用相同。这些命令中的哪一个实际上负责and having them stay open... 点?我在问,因为手册页中至少没有提到 xfce4-terminal @Jankapunkt 嗯...很好的问题!我发现:一个简单的、无参数的“-终端”保持打开状态,--command 进入游戏后,它确实在执行后关闭。这个 --command="bash -c ls;bash" 东西,嵌套并带有尾随 bash 命令似乎是诀窍! (因为 sub-bash 保持打开状态,因此命令永远不会完成。直到您输入 exit。)【参考方案6】:

对于寻求不使用命令行的解决方案的任何人:ctrl+shift+t

【讨论】:

他们要求命令行 ., 使事情自动化。这些快捷方式很少有帮助。 这正是我想要的。标题中的问题不仅限于“自动化解决方案”@EAGER_STUDENT,老实说,我发现很难想出一个需要自动化 GUI 的用例。这就像通过脊柱进行心脏直视手术。 @SteffenWinkler 很高兴该解决方案对您有所帮助。但由于问题是“使用命令行”,我假设使用一些自动命令,比如高票数的答案......无论如何,答案本身就澄清了“对于任何寻求不使用命令行的解决方案的人”......感谢答案....此外,“我发现很难想出一个我需要自动化 GUI 的用例。”说我总是需要在启动时打开 5 个选项卡。在那种情况下,它会很有用。但在那种情况下,我们也可以使用快捷方式来自动化;) 我需要自动打开标签的示例;我正在自动化机器人上的启动脚本,并且我想打开选项卡来运行命令,以便当进程崩溃时(它们最终都会崩溃),我可以从笔记本电脑 ssh 并查看控制台上的日志输出无需挖掘日志文件目录。【参考方案7】:

为了将上述多个不同点结合在一起,这里有一个脚本,它将运行传递给脚本vim new_tab.sh 的任何参数:

#!/bin/bash
#
# Dependencies:
#   sudo apt install xdotool

WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk 'print $5')
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
sleep 1; xdotool type --delay 1 --clearmodifiers "$@"; xdotool key Return;

接下来使其可执行: chmod +x new_tab.sh

现在您可以使用它在新标签页中运行您想要的任何内容: ./new_tab.sh "watch ls -l"

【讨论】:

【参考方案8】:

我没有安装 gnome-terminal,但您应该能够通过在命令行上使用 dbus-send 进行 DBUS 调用来执行此操作。

【讨论】:

【参考方案9】:

考虑改用 Roxterm。

roxterm --tab

在当前窗口中打开一个标签。

【讨论】:

【参考方案10】:

对于在同一个终端窗口中打开多个选项卡,您可以使用以下解决方案。

示例脚本:

pwd='/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/bin'
pwdlog='/Users/pallavi/Documents/containers/platform241/etisalatwallet/api-server-tomcat-7/logs'
pwd1='/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/bin'
logpwd1='/Users/pallavi/Documents/containers/platform241/etisalatwallet/core-server-jboss-7.2/standalone/log'

osascript -e "tell application \"Terminal\"" \

-e "tell application \"System Events\" to keystroke \"t\" using command down" \
-e "do script \"cd $pwd\" in front window" \
-e "do script \"./startup.sh\" in front window" \
-e "tell application \"System Events\" to keystroke \"t\" using command down" \
-e "do script \"cd $pwdlog\" in front window" \
-e "do script \"tail -f catalina.out \" in front window" \
-e "tell application \"System Events\" to keystroke \"t\" using command down" \
-e "do script \"cd $pwd1\" in front window" \
-e "do script \"./standalone.sh\" in front window" \
-e "tell application \"System Events\" to keystroke \"t\" using command down" \
-e "do script \"cd $logpwd1\" in front window" \
-e "do script \"tail -f core.log \" in front window" \
-e "end tell"
> /dev/null 

【讨论】:

当问题显然是关于 linux 中的(gnome)终端时,听起来这是非常以 OSX 为中心的答案。 osascript 是 OSX(苹果) @nhed:谢谢——这回答了我对这个答案的到底是什么?。 Pallavi:即使问题是关于 Mac 的,硬编码你自己的 home 路径也不会让你的答案很有帮助。我建议您使用 $HOME 环境变量,或者如果它不同,则使用 OSX 等效变量。

以上是关于ubuntu中如何右键打开终端命令窗口的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu怎么样右键打开终端

ubuntu安装过程中调出终端

ubuntu怎么打开终端,ubuntu系统打开终端的方法

linux怎么用命令打开命令窗口

ubuntu右键在当前位置打开终端

转ubuntu右键在当前位置打开终端