gnome-terminal
Ubuntuでコンソールを起動すると、ホームディレクトリから起動します。別のディレクトリで開始するにはどうすればよい~/myfolder
ですか?書き込もうとしましcd ~/myfolder
た~/.profile
が何も起こりません。
10 に答える
のように gnome-terminalgnome-terminal --working-directory=myfolder
を開始すると、作業ディレクトリで開始される~/myfolder
ため、メニューに新しいエントリを追加して、他のコマンドの代わりにそのコマンドを使用できます。
私はこのようにしました-スクリプトを使用して、同じウィンドウサイズ170x40で3つのタブを開き、各「タブ」は異なるディレクトリで始まります。
gnome-terminal --geometry=170x40 --working-directory=myfolder1 \
--tab --working-directory=myfolder2 \
--tab --working-directory=myfolder3
~/.bashrc に以下を追加してください
cd ~/myfolder
nautilus-open-terminal拡張機能を使用できます。これにより、nautilus のフォルダを右クリックして、そのディレクトリを作業ディレクトリとしてターミナル ウィンドウを開くことができます。
通常の方法でターミナルを実行し、「cd」と入力して、フォルダ アイコンを nautilus からウィンドウにドラッグすることもできます。これにより、フォルダーのパスがコマンド ラインに貼り付けられ、return と入力してそのディレクトリに移動します。通常のファイルでも同じことを実行して、パスを貼り付けてコマンドを実行できます。
ディレクトリオプション
--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
チルダ展開
=
最後のバリアントには no がないことに注意してください。このため、~
はシェル ワードの先頭にあるため、チルダ展開によって処理されます。
問題は、~
どこにでも拡張されるのではなく、特定の場所にのみ拡張されることです。それらの 1 つは、 のような変数の割り当てにありますdirectory=~/dir
。それは問題ありません。 に展開されますが、~
は展開され$HOME
ませ--working-directory=~/dir
ん~
。これは変数の代入ではないため、非常に似ているだけです。
フォルダーのパスが複雑な場合、つまり~/myfolder
. 環境変数を設定して、CDPATH
入力時にディレクトリのリストを検索するように bash に指示することもできますcd myfolder
。
ルートユーザーとして目的のディレクトリを開くには、次を実行しました。
gnome-terminal --working-directory=/home/my-project/ -x bash -c "sudo su"
GNOME ターミナルから- はじめに:
プロファイルで GNOME ターミナルの起動時に自動的に実行されるコマンドを指定することもできます。
Neil の Mayhew のコメント と Volker の Siegel の回答に感銘を受けました 。gnome-terminal のデフォルト ディレクトリを設定するだけでなく、デスクトップ環境の習慣的な動作も保持しようとしまし た ( Linux Mint 17.1 Cinnamon、 GNOME Terminal 3.6.2を使用しています。おそらく、他の Gnome-congenered にも適用できます)。 DE)。では、私の 2 セントを入れさせてください。
cd ~/myfolder
の最後に追加すると~/.bashrc
うまくいきます。しかし、すでに述べたように、すべてのインタラクティブ シェルに影響します。さらに、ファイル マネージャー ( NemoやNautilusなど) でディレクトリを開き、そこからコンテキスト メニューを呼び出すと (たとえば、右クリックして [ターミナルで開く] を選択)、 gnome-terminalの新しいインスタンスが 次の場所で開始されます。~/myfolder
ファイルマネージャーにロードされたフォルダーに関係なく。gnome-terminal --working-directory=/some/other/folder
明示的に実行しても、まだ開き~/myfolder
ます。でのアプローチ.bashrc
は使えないようです。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を実行すると、新しいターミナルの現在のフォルダーが表示されます (たとえば、カスタム ラッパーは Bash スクリプトであるため/
、任意のフォルダーを使用できるため、シェルの展開は正常に機能します)。~/myfolder
ファイルマネージャーでターミナルで開くとアピールすると、新しいターミナルで現在のディレクトリが取得されます。
明示的なパラメーター (おそらく既存の端末インスタンスから) を指定してgnome-terminalを実行する--working-directory
と、指定したディレクトリで新しい端末インスタンスが開かれます。