web-dev-qa-db-ja.com

Gnome-ターミナル、別のディレクトリで開始する方法は?

Ubuntuでコンソールgnome-terminalを起動すると、ホームディレクトリから起動します。 ~/myfolderなどの別のディレクトリで開始するにはどうすればよいですか? cd ~/myfolder~/.profileに書き込もうとしましたが、何も起こりません。

25

「gnome-terminal--working-directory = myfolder」のようにgnome-terminalを起動すると、〜/ myfolderの作業ディレクトリから起動します。そのため、メニューに新しいエントリを追加して、他のコマンドの代わりにそのコマンドを使用できます。

45
Cdsboy

私はこのようにしました-スクリプトを使用して:同じウィンドウサイズ170x40で3つのタブを開き、各「タブ」は異なるディレクトリで開始します。

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

--tab --working-directory = myfolder2 \

--tab --working-directory = myfolder3

12
belix

〜/ .bashrcに以下を追加します

cd〜/myfolder

12
mdec

nautilus-open-terminal 拡張子を使用できます。これにより、nautilus内のフォルダを右クリックして、そのディレクトリを作業ディレクトリとして使用してターミナルウィンドウを開くことができます。

通常の方法でターミナルを実行し、「cd」と入力して、フォルダアイコンをnautilusからウィンドウにドラッグすることもできます。これにより、フォルダのパスがコマンドラインに貼り付けられ、returnと入力してそのディレクトリに移動します。通常のファイルでも同じことを実行して、パスを貼り付け、コマンドを実行できます。

4
Neil Mayhew

実際、これは私がデフォルトですべての人に対してそれをオフにする方法です。

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

から GNOMEターミナル-はじめに

プロファイルでGNOMEターミナルを起動したときに自動的に実行されるコマンドを指定することもできます。

2
lothar

ディレクトリオプション

端末の起動ディレクトリを指定するオプション--working-directoryがあります(短いオプション形式はありません)。

/some/dirでターミナルを開くための基本的なアプローチは次のとおりです。

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

しかし、罠があります...

悪い罠

ディレクトリ~/dirで端末を起動したいとします。

これは機能しません:

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

コマンドはオプション構文によれば完全に正常に見えますが、端末はホームディレクトリから起動します。
混乱を招く理由で、チルダ(~)を拡張しないためです。以下を参照してください。

これらは機能します:

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

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

gnome-terminal --working-directory ~/dir

チルダ拡張

最後のバリアントには=がないことに注意してください。このため、~はシェルワードの先頭にあり、チルダ拡張によって処理されます。

問題は、~がどこにでも展開されるのではなく、特定の場所にのみ展開されることです。それらの1つは、directory=~/dirのような変数割り当てにあります。 ~$HOMEに展開されますが、--working-directory=~/dir~を展開しません。これは変数の割り当てではないため、非常によく似ているだけです。

1
Volker Siegel

ニールのメイヒューコメントフォルカーのシーゲルの答え に感銘を受けました。 gnome-terminalのデフォルトディレクトリを設定するだけでなく、デスクトップ環境の習慣的な動作も維持しようとしました(私はを使用していますLinux Mint 17.1 CinnamonGNOMEターミナル3.6.2、おそらく他のGnomeで生成されたDEにも適用できます)。だから私は私の2セントを入れさせてください。

  1. cd ~/myfolderの最後に~/.bashrcを追加すると機能します。しかし、すでに述べたように、それはすべてのインタラクティブシェルに影響します。さらに、ファイルマネージャでディレクトリを開いて(NemoまたはNautilusなど)、そこからコンテキストメニューを表示する場合(たとえば、右クリックして選択します) ターミナルで開くgnome-terminalの新しいインスタンスがで開始されます~/myfolderファイルマネージャにロードされたフォルダに関係なく。 gnome-terminal --working-directory=/some/other/folderを明示的に実行しても、~/myfolderが開きます。 .bashrcを使用したアプローチは使用できないようです。

  2. gnome-terminal --working-directory=myfolderは正常に機能しますが、このパラメーターを使用してターミナルを実行するDE(またはデスクトップのカスタムショートカット)でカスタムメニューエントリを使用する場合に限ります。コマンドラインまたはミニランチャーからgnome-terminalを実行する場合(を押します) AltF2)、毎回パラメータを入力する必要があります。とにかく、このアプローチは多かれ少なかれ使用可能です。


gnome-terminalはどのフォルダを開くかをどのように決定しますか? --working-directoryが指定されていない場合は、現在の作業ディレクトリ($PWDなど)が開きます。指定されていない場合は、明示的に指定されたディレクトリが開きます。

私は次の解決策を見つけました。

gnome-terminalフォルダに~/binという名前のファイルを作成します。 ~/binはすでに$PATHにあるため(少なくともLinux Mint ...)、ショートカットとして機能しますが、どこからでも(スタートメニュー、ミニランチャー、その他のターミナルインスタンスなど)使用できます。このファイルを実行可能にします。次に、次のコンテンツをスクリプトに挿入します。

#!/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

スタートメニューからgnome-terminalを実行すると、新しいターミナルの現在のフォルダーが/であることがわかります(任意のフォルダーを使用できます。たとえば、~/myfolderは、カスタムラッパーがBashスクリプトであるため、シェルの拡張は正常に機能します)。

ファイルマネージャでターミナルで開くにアピールすると、新しいターミナルに現在のディレクトリが表示されます。

明示的な--working-directoryパラメータを指定してgnome-terminalを実行すると(おそらく既存のターミナルインスタンスから)、新しいターミナルインスタンスがディレクトリに開かれます。指定されています。

1
flaz14

Rootユーザーとして目的のディレクトリで開くには、次のコマンドを実行しました。

gnome-terminal --working-directory=/home/my-project/ -x bash -c "Sudo su"
1
sytnei

フォルダのパスが複雑な場合、つまり~/myfolderだけではない場合は、ホームディレクトリにそのフォルダへのシンボリックリンクを作成して、すばやくアクセスできるようにすることができます。 CDPATH環境変数を設定して、cd myfolderと入力したときにディレクトリのリストを検索するようにbashに指示することもできます。

1
Neil Mayhew