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

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

Ubuntuで非ログインシェルを開くと、現在の作業ディレクトリは/home/user_name(私の$HOME環境変数)ですが、端末の起動時に別のディレクトリになるように変更したいと思います。

Ubuntuで端末を実行すると、.bashrcファイルを受け取るという記事を読んだ。だから私は追加しました

export HOME=/home/user_name/Documents 

私の.bashrcファイルに。今ターミナルを開くと、まだ/home/user_nameディレクトリにあります。

これをどのように変更できますか?

答え1

.bashrcまず$HOME、。

これを行うよりエレガントな方法があると確信していますが、一時的な解決策として、次の行を次の行に追加するだけです.bashrc

cd ~/Documents 

ログインしていない新しいシェルを起動するたびに(新しい端末を開く)、このファイルが読み込まれるため、コマンドが実行され、cd必要~/Documentsに応じて端末が起動します。

答え2

端末は、親から継承された作業ディレクトリから開始されます。

ただし、一部の設定では、設定を上書きできます。

以下を使用してgnome-terminalプロファイルを編集できます。私のシェルの代わりにカスタムコマンドを実行するそしてそれを作る:

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

答え3

これが私が入れたものです~/.bash_profile

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

私はいつもこれに頼ってきました。デフォルトでは、私はプロジェクトを操作するときにsaveそのホームディレクトリを作成し、その後のすべてのセッションがそこから始まります。それからプロジェクトを変えたり、別のことが起こったら、save別の場所に行きます。

より良い方法を探している間にこの質問を見つけましたが、特定のディレクトリをハードコードするよりも私が得た方がうまくいきました。

答え4

/etc/passwdデフォルトのホームディレクトリの変更と変更を検討してください。

関連情報