web-dev-qa-db-ja.com

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

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

私は、Ubuntuで端末を起動したときに.bashrcファイルのソースです。だから私は追加しました

export HOME=/home/user_name/Documents 

わたしの .bashrcファイル。さて、ターミナルを開いても/home/user_nameディレクトリ。

どうすれば変更できますか?

56
user3091069

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

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

cd ~/Documents 

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

55
terdon

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

ただし、構成設定で上書きできるものもあります。

gnome-terminal、あなたのプロフィールを編集し、私のシェルの代わりにカスタムコマンドを実行にチェックを入れて、それを作ることができます:

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

.bashrcファイルがどこにあるかを確認している人にとっては、通常、ホームディレクトリの隠しファイルです。

それを見つけるには:

ターミナルを開き、ホームディレクトリに移動して、次の手順を実行します。

ls -al

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

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

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

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

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

1
Shivam

これが~/.bash_profile

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

そして私はいつもこれに依存しています。基本的に、私がいくつかのプロジェクトに取り組んでいるときは、そのプロジェクトのメインディレクトリをsaveし、それ以降のすべてのセッションがそこで開始されます。その後、プロジェクトを変更したり、他の場所でsaveしたりします。

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

1
amos