Ubuntu Ubuntu 20.04.5 LTSでbash端末とGNOME端末エミュレータを使用しています。端末を使用するときの現在の(デフォルト)動作は次のとおりです。
- 新しい端末セッションを開くと
~
。 - たとえば、ディレクトリで新しい端末タブを開くと、
path/to/dir
新しいタブはそのディレクトリから起動しますpath/to/dir
。
2)を変更せずに1)を変更したい。で新しいターミナルセッションを開始したいのですが、~/start
新しいタブはまだ現在のディレクトリで開いている必要があります。この目標をどのように達成できますか?
この質問に対する完璧な答え(cd /start
に追加.bashrc
)変更2) - これにより、/start
現在のディレクトリに関係なく新しいタブが起動します。
同じ答えに対するコメントを見ると、「新しいタブを開く」動作はbash機能ではありませんが、「新しい端末を開く」よりも「新しいタブを開く」をさらに作成できる追加のロジックが必要だと思います。 2)で指定された動作を保証する何かが端末エミュレータで進行しているとします。しかし、確かではなく、どのように変えるかもしれません。
答え1
シェルとターミナルには実際には「デフォルト」のスタートアップディレクトリはありません。
彼らが持っているのは継承されたディレクトリです。実行するディレクトリは、親プロセスがすでに配置されているディレクトリです。
指定された目標を達成する2つの方法を考えることができます。
~/start
またはで端末を開くためのショートカットを追加します/start
。start.desktop
これを行うファイルを作成して初期端末として使用できます。- もしあなたならいいえホームディレクトリから起動するには、bashrcに何かを追加してそれを検出し、ホームディレクトリから起動した場合にのみディレクトリを変更できます。 (しかし、
cd
.bashrcにコマンドを追加するのは長期的には良くないと思います。) - 私は(引用された代替質問で)ディレクトリをすばやく変更するためにシェルエイリアスを使用するという考えが良いと思います。シェル設定も同様です
CDPATH
。
「新しいタブで開く」機能は、クリックしたグラフィック端末またはグラフィックアプリケーションの機能です。一般に、bashはグラフィカルアプリケーションではなく、マウスや他のGUIインタラクションやウィンドウを開くなどについて何も知りません。端末で新しいタブを開くことが親タブの代わりに前のタブのホームディレクトリを継承する場合、シェルは前のタブのbashからそれらをコピーする賢明な作業を行います。