Gnome-Terminal,如何在不同的目录中启动?

时间:2009-05-10 04:17:26

标签: linux console terminal gnome

每当我在Ubuntu中启动我的控制台gnome-terminal时,它都会在主目录中启动。如何让它从不同的目录开始说~/myfolder? 我试图在cd ~/myfolder中写~/.profile但没有任何反应。

10 个答案:

答案 0 :(得分:45)

如果你像“gnome-terminal --working-directory = myfolder”那样启动gnome-terminal,它将从〜/ myfolder的工作目录开始。所以你可以在菜单中添加一个新条目来使用该命令而不是另一个命令。

答案 1 :(得分:12)

将以下内容添加到〜/ .bashrc

cd~ / myfolder

答案 2 :(得分:12)

我这样做 - 用脚本: 在相同的窗口大小170x40中打开3个选项卡,每个“选项卡”从不同的目录开始。

gnome-terminal --geometry = 170x40 - working-directory = myfolder1 \

- tab --working-directory = myfolder2 \

- tab --working-directory = myfolder3

答案 3 :(得分:4)

您可以使用nautilus-open-terminal扩展程序。这允许您右键单击nautilus中的文件夹,并打开一个以该目录作为其工作目录的终端窗口。

您也可以正常方式运行终端,输入“cd”,然后将文件夹图标从nautilus拖到窗口。这会将文件夹的路径粘贴到命令行中,然后键入return以更改到该目录。您可以使用常规文件执行相同的操作来粘贴其路径并在其上运行命令。

答案 4 :(得分:2)

来自GNOME Terminal - Getting Started

  

您还可以指定在配置文件中启动GNOME终端时自动运行的命令。

答案 5 :(得分:2)

实际上,这是我默认为每个人关闭的方式。

gconftool-2 --direct \
--config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory/ \
--set -- type=bool /apps/nautilus-open-terminal/desktop_opens_home_dir true

答案 6 :(得分:1)

如果文件夹的路径很复杂,即不只是~/myfolder,您可以在主目录中创建一个符号链接,以便快速完成。您还可以设置CDPATH环境变量,以便在您键入cd myfolder时告诉bash搜索目录列表。

答案 7 :(得分:1)

目录选项

有选项--working-directory来指定终端的启动目录(没有短选项表格)。

/some/dir中打开终端的基本方法是

gnome-terminal --working-directory=/some/dir

但是有一个陷阱......

坏陷阱

假设我们要在目录~/dir中启动终端。

这不起作用:

gnome-terminal --working-directory=~/dir

根据选项语法,该命令看起来很完美,但终端在主目录中启动 这是因为它没有扩大代字号(~),原因令人困惑 - 见下文。

Thesse确实有效:

gnome-terminal --working-directory=/home/auser/dir

gnome-terminal --working-directory=$HOME/dir

gnome-terminal --working-directory ~/dir

Tilde扩展

请注意,最后一个版本中没有=。因此,~位于shell单词的开头,因此受到代号扩展的影响。

问题在于~并未在任何地方扩展,只在某些地方扩展。其中一个是变量分配,如directory=~/dir。没关系,~扩展到$HOME,但--working-directory=~/dir不会展开~,因为这不是变量赋值,它看起来非常相似。

答案 8 :(得分:1)

我印象深刻 Neil's Mayhew commentVolker's Siegel answer。我试过不仅设置默认目录 gnome-terminal 但也保留了桌面环境的习惯行为(我正在使用 Linux Mint 17.1 Cinnamon GNOME Terminal 3.6.2 ,也许它也可以应用于其他Gnome-congenered DEs)。所以,让我把我的两分钱。

  1. cd ~/myfolder的最后添加~/.bashrc可以胜任这项工作。但正如已经提到的,它会影响每一个人 互动壳。更重要的是,如果你在文件管理器中打开一些目录( Nemo Nautilus 或类似的东西 这个)并从那里呼吁上下文菜单(例如右键单击,然后选择在终端中打开)新的实例 无论文件管理器中加载了哪个文件夹, gnome-terminal 都将在~/myfolder中启动。 即使您明确地运行gnome-terminal --working-directory=/some/other/folder,它仍然会打开~/myfolder。似乎是 <{1}}的方法无法使用。

  2. .bashrc工作正常,但只有在您使用自定义菜单条目时才能正常工作 (或桌面上的自定义快捷方式),使用此参数运行终端。如果您想从命令行运行 gnome-terminal 或者从迷你启动器(按 Alt + F2 ),您必须每次都输入参数。无论如何,这种方法或多或少都可以使用。

  3. gnome-terminal 如何确定要打开的文件夹?如果未指定gnome-terminal --working-directory=myfolder,则会打开当前值 工作目录(例如--working-directory)否则会打开明确指定的目录。

    我找到了以下解决方案。

    $PWD文件夹中创建名为gnome-terminal的文件。它将作为捷径,但从任何地方(开始菜单, mini-launcher,其他终端实例等)因为~/bin已经在~/bin中(至少在Linux Mint中......)。制作这个文件 可执行文件。然后将以下内容放入脚本中:

    $PATH

    如果从开始菜单运行 gnome-terminal ,您会看到新终端中的当前文件夹为#!/bin/bash home_directory=~ if [ "$PWD" == "$home_directory" ]; then # When 'gnome-terminal' was ran from either # - start menu # - mini-launcher # ... # parent directory is set to $HOME. # # We respect original command line arguments. # For example, when terminal is ran from another # terminal instance and '--working-directory' is # specified explicitly we should left it as it is. # If there are two '--working-directory' switches # in the command line 'gnome-terminal' will pick up # the last one. # # Also we use full path to executable here in order # to prevent recursive calling of 'gnome-terminal' from # '~/bin'. /usr/bin/gnome-terminal --working-directory=/ "$@" else # 'gnome-terminal' was from another directory. # We don't change anything. /usr/bin/gnome-terminal "$@" fi (您可以使用任何文件夹,例如/,因为我们的自定义包装器是一个Bash脚本,所以shell的扩展工作正常。)

    如果您在文件管理器中呼吁在终端中打开,您将获得新终端中的当前目录。

    如果您使用显式~/myfolder参数(可能来自现有终端实例)运行 gnome-terminal ,则会在您指定的目录中打开新的终端实例。

答案 9 :(得分:1)

要以root用户身份在我想要的目录中打开,我跑了:

gnome-terminal --working-directory=/home/my-project/ -x bash -c "sudo su"