tl; versi dr: gunakan ~/.zshrc
Dan baca halaman manual untuk memahami perbedaan antara:
~/.zshrc
, ~/.zshenv
dan ~/.zprofile
.
Mengenai komentar saya
Dalam komentar saya yang terlampir pada jawaban yang diberikan kev , saya berkata:
Ini sepertinya tidak benar - / etc / profile tidak terdaftar dalam dokumentasi zsh yang dapat saya temukan.
Ini ternyata sebagian tidak benar: /etc/profile
mungkin bersumber oleh zsh
. Namun , ini hanya terjadi jika zsh
"dipanggil sebagai sh
atau ksh
"; dalam mode kompatibilitas ini:
Skrip startup / shutdown zsh biasa tidak dieksekusi. Login sumber shell / etc / profile diikuti dengan $ HOME / .profile. Jika variabel lingkungan ENV disetel pada pemanggilan, $ ENV bersumber setelah skrip profil. Nilai ENV tunduk pada perluasan parameter, substitusi perintah, dan perluasan aritmatika sebelum diinterpretasikan sebagai nama jalur. [ man zshall, "Kompatibilitas" ].
The Link ArchWiki zsh mengatakan:
Saat login, Zsh mengambil file berikut dalam urutan ini:
/ etc / profile
File ini bersumber dari semua shell yang kompatibel dengan Bourne saat login
Ini implys yang /etc/profile
adalah selalu membaca dengan zsh
saat login - Saya tidak punya pengalaman dengan proyek Arch Linux; wiki mungkin benar untuk distribusi tersebut, tetapi umumnya tidak benar. Informasi ini tidak benar dibandingkan dengan halaman manual zsh, dan tampaknya tidak berlaku untuk zsh di OS X (jalur yang $PATH
diatur /etc/profile
tidak membuatnya ke sesi zsh saya).
Untuk menjawab pertanyaan:
di mana tepatnya saya harus menempatkan tambahan rvm, python, node dll ke $ PATH saya?
Secara umum, saya akan mengekspor saya $PATH
dari ~/.zshrc
, tapi layak itu memiliki membaca dari zshall halaman manual, khususnya "STARTUP / SHUTDOWN FILES" bagian - ~/.zshrc
dibaca untuk interaktif kerang, yang mungkin atau mungkin tidak sesuai dengan kebutuhan Anda - jika Anda ingin $PATH
untuk setiap zsh
shell yang Anda panggil (baik interactive
dan tidak, baik login
dan tidak, dll), maka itu ~/.zshenv
adalah opsi yang lebih baik.
Apakah ada file tertentu yang harus saya gunakan (yaitu .zshenv yang saat ini tidak ada dalam instalasi saya), salah satu file yang sedang saya gunakan, atau apakah itu penting?
Ada banyak file yang dibaca saat startup (periksa man
halaman yang ditautkan ), dan ada alasan untuk itu - setiap file memiliki tempat tertentu (pengaturan untuk setiap pengguna, pengaturan untuk pengguna tertentu, pengaturan untuk shell login, pengaturan untuk setiap shell, dll).
Jangan khawatir tentang ~/.zshenv
tidak ada - jika Anda membutuhkannya, buatlah, dan itu akan dibaca.
.bashrc
dan .bash_profile
yang tidak dibaca oleh zsh
, kecuali Anda secara eksplisit sumber mereka dari ~/.zshrc
atau serupa; sintaks antara bash
dan zsh
adalah tidak selalu kompatibel. Keduanya .bashrc
dan .bash_profile
dirancang untuk bash
pengaturan, bukan zsh
pengaturan.
.bashrc
dan.bash_profile
tidak dibacazsh
karena saya saat ini memilikirvm
tambahan saya$PATH
di.bashrc
, danpython
tambahan saya di.bash_profile
, dan keduanya ditambahkan dengan baik. Bagaimanapun, saya akan memindahkan semua$PATH
ekspor saya ke~/.zshrc
karena semuazsh
konfigurasi saya yang lain disimpan di sana. Harus saya akui, saya tidak terlalu paham dengan berbagai jenis cangkang. Dari membaca tautan yang Anda posting, saya kira saya menggunakan shell interaktif, tetapi saya akan membaca lebih lanjut untuk memastikan ... Terima kasih lagi!