Bagaimana saya dapat memiliki shell saya selalu mulai di direktori tertentu yang bukan direktori rumah saya

20

Saya sudah mencoba menempatkan

cd /Users/my_name/my_directory/structure

di keduanya .bashrcdan .bash_logintetapi tidak berfungsi, yaitu ketika saya membuka jendela terminal baru saya di direktori home (/ Users / my_name /) saya.

Tidak ada pesan kesalahan, hanya saja tidak masuk ke direktori seperti yang diharapkan saat memulai jendela terminal baru.

Michael Durrant
sumber

Jawaban:

5

Seperti yang disebutkan Gerry, .bashrctidak dibaca oleh shell login. Tab baru adalah shell login secara default di Terminal dan iTerm 2. .bash_loginhanya dibaca jika tidak ada .bash_profile.

Anda juga bisa menambahkan cdperintah ke .bash_profile.

Lri
sumber
38

Pertama-tama, jika Anda belum menggunakan iTerm2, saya sarankan Anda mengunduh perangkat lunak gratis ini sebagai pengganti Terminal.app.

Di antara banyak fitur tambahan lainnya, di iTerm Preferences, Anda dapat mengonfigurasi direktori kerja default untuk shell baru. Anda akan menemukan pengaturan ini di Profil - Umum.

Direktori Kerja Standar iTerm

Keuntungannya di sini adalah Anda dapat mengatur perilaku berbeda untuk membuka jendela baru vs membuka tab baru atau bahkan membuat panel split baru. Saya pribadi suka tinggal di direktori kerja saat ini ketika menambahkan panel split, misalnya.

Anda dapat melakukannya di skrip startup Anda (meskipun saya menemukan solusi iTerm lebih bersih, atau setidaknya lebih fleksibel), tetapi kemudian saya menyarankan Anda untuk menggunakannya ~/.bash_profile.

~/.bashrcadalah tidak otomatis bersumber saat membuka jendela shell baru, dan ~/.bash_loginhanya bersumber jika tidak ada ~/.bash_profilehadir.

Gerry
sumber
1
Saya selalu mencari .bashrc saya dari .bash_profile saya jadi saya tidak harus mengingat yang dipanggil dari mana.
Cajunluke
@CajunLuke Saya melakukan sesuatu yang sangat mirip: github.com/gerryvdm/dotfiles
Gerry
Jika memodifikasi "Direktori" Direktori Kerja tidak memiliki efek, Anda mungkin perlu mengubah Command dari "Command" ke "Shell login" ( sumber ).
duozmo