$ HOME以外のディレクトリですべてのシェルセッションを開始するにはどうすればよいですか?


53

Ubuntuで非ログインシェルを開くと、現在の作業ディレクトリは/home/user_name(私の$HOME環境変数)ですが、これを変更して、ターミナルを起動したときに他のディレクトリに移動するようにします。

Ubuntuで端末を起動すると、.bashrcファイルが取得されることを読みました。だから私は追加しました

export HOME=/home/user_name/Documents 

私の.bashrcファイルに。これで、ターミナルを開いたとき、まだ/home/user_nameディレクトリにいます。

これを変更するにはどうすればよいですか?



3
これを行わないことも検討する価値があるかもしれません。UNIXの設計は、あなたが何も知らないために先祖から受け継がれていませんでした。
ショーンD 14

回答:


52

まず、その行をから削除します.bashrc。で遊ぶのではなく、これを行う方法は$HOME、その変数は常にあなたのホームディレクトリを指し、あなたのシェルが別の場所で始まるようにそれを変更したくありません。

これを行うためのよりエレガントな方法があると確信していますが、一時的な回避策として、次の行を単純に追加できます.bashrc

cd ~/Documents 

このファイルは、新しい非ログインシェルを起動する(新しいターミナルを開く)たびに読み取られるため、cdコマンドが実行され、ターミナルは~/Documents希望どおりに起動します。


これは、すべての非ログインインタラクティブシェル(およびbash_profileからbashrcを入手した場合はログインシェル) sshdによって起動された非インタラクティブシェルに影響することに注意してください。
ステファンシャゼル14

@StéphaneChazelasよろしいですか?通常[[ -z "$PS1" ]] && exit、上部にガードがあり、.bashrc非対話型セッションではこれを防ぐ必要があります。
マーティンUeding 14

2
通常、@ queueoverflow?どのオペレーティングシステムで?どのディストリビューションで?Debian、SuSe、またはCentOSではありません。実際、Ubuntuでしか見たことがないと思います。
テルドン

@terdon Ubuntuでそれを見たことがあり、それが一般的なケースだと思った。
マーティンUeding 14

20

端末は、親から継承した作業ディレクトリで起動します。

ただし、構成設定を介してオーバーライドできるものもあります。

を使用gnome-terminalすると、プロファイルを編集し、シェルの代わりにカスタムコマンドを実行してチェックすることができます。

sh -c 'cd ~/Documents; exec "${SHELL:-sh}"'

1

ここに私が入れたものがあります~/.bash_profile

alias curDir="pwd | sed -e 's/ /\\ /'"
alias save='echo `curDir` > ~/.saved_dir'
alias saved='cd `cat ~/.saved_dir`'
saved

そして、私は常にこれに依存しています。基本的に、私がプロジェクトに取り組んでいるとき、私はそのプロジェクトsaveのメインディレクトリを作成し、その後すべてのセッションがそこから始まります。その後、プロジェクトなどを変更すると、saveどこか別の場所に移動します。

より良い方法を探しているときにこの質問を見つけましたが、1つの特定のディレクトリをハードコーディングするよりも私が持っているものの方が望ましいです。


これはgit bashでもうまく機能します。bashシェルを再起動するか、ファイルを変更した後に(source〜/ .bash_profile)を使用することを忘れないでください。
ティム

0

.bashrcファイルの場所を見ている人にとっては、一般的にはホームディレクトリの隠しファイルです。

それを見つけるには:

ターミナルを開いてホームディレクトリに移動し、次の操作を行います。

ls -al

すべての隠しファイルを表示します。これで、.bashrcファイルを表示できるようになります。

デフォルトのディレクトリを変更するには

  1. .bashrc次のコマンドを入力して、テキストエディターでファイルを開きます。

    gedit .bashrc
  2. 次のように最後にコマンドを追加して、このファイルを編集します。

    cd ~/YourDirectoryName
  3. ファイルを保存して、ターミナルを再起動します。


質問は、.bashrcの編集方法を尋ねるのではなく、すでに完了しています。そして、あなたの答えは、2年前の@terdonの答えの繰り返しです。
デイヴァーCubranic
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.