Saya mencari pedoman tentang apa yang harus dan tidak harus dimasukkan dalam berbagai file startup zsh
.
Saya mengerti urutan sumber file-file ini, dan kondisi di mana mereka bersumber, tetapi masih belum jelas bagi saya apa yang harus dimasukkan dalam masing-masing.
Jawaban:
Berikut adalah daftar non-eksklusif dari apa yang cenderung berisi setiap file:
.zshenv
selalu bersumber, sering berisi variabel yang diekspor yang harus tersedia untuk program lain. Sebagai contoh,$PATH
,$EDITOR
, dan$PAGER
sering diatur dalam.zshenv
. Juga, Anda dapat mengatur$ZDOTDIR
dalam.zshenv
menentukan lokasi alternatif untuk sisa konfigurasi zsh Anda..zshrc
adalah untuk konfigurasi shell interaktif. Anda mengatur opsi untuk shell interaktif di sana dengansetopt
danunsetopt
perintah. Anda juga dapat memuat modul shell, mengatur opsi histori Anda, mengubah prompt Anda, mengatur zle dan penyelesaian, dan lain-lain. Anda juga mengatur variabel apa pun yang hanya digunakan dalam shell interaktif (mis$LS_COLORS
.)..zlogin
bersumber pada awal shell login. File ini sering digunakan untuk memulai X menggunakanstartx
. Beberapa sistem memulai X saat boot, sehingga file ini tidak selalu sangat berguna..zprofile
pada dasarnya sama dengan.zlogin
kecuali bahwa itu bersumber langsung sebelum.zshrc
bersumber, bukan langsung setelah itu. Menurut dokumentasi zsh, ".zprofile
dimaksudkan sebagai alternatif untuk` .zlogin 'untuk penggemar ksh; keduanya tidak dimaksudkan untuk digunakan bersama-sama, meskipun ini pasti bisa dilakukan jika diinginkan. ".zlogout
kadang-kadang digunakan untuk menghapus dan mengatur ulang terminal.Anda harus melalui file konfigurasi pengguna Github acak untuk mendapatkan ide yang lebih baik tentang apa yang harus berisi setiap file.
sumber
man zshall
detailnya).$PATH
dalam.zshenv
, berbagai file lainnya semua bersumber setelah file ini yang akan menimpa nilai ini. Lihat zsh.org/mla/users/2003/msg00600.html .$LANG
dan$LC_ALL
pergi?.zshenv
→ [.zprofile
jika masuk] → [.zshrc
jika interaktif] → [.zlogin
jika masuk] → [.zlogout
kadang-kadang].Di sini daftar apa yang seharusnya / tidak boleh dimuat oleh setiap file, menurut saya:
.zshenv
[Baca setiap waktu]
File ini selalu bersumber, sehingga harus mengatur variabel lingkungan yang perlu sering diperbarui . PATH (atau jalur rekanan yang terkait ) adalah contoh yang baik karena Anda mungkin tidak ingin memulai kembali seluruh sesi Anda untuk membuatnya diperbarui. Dengan mengaturnya di file itu, membuka kembali emulator terminal akan memulai instance Zsh baru dengan nilai PATH diperbarui.
Tetapi perlu diketahui bahwa file ini dibaca bahkan ketika Zsh diluncurkan untuk menjalankan perintah tunggal (dengan opsi -c ), bahkan oleh alat lain seperti
make
. Anda harus sangat berhati-hati untuk tidak mengubah perilaku default dari perintah standar karena dapat merusak beberapa alat (dengan menetapkan alias misalnya)..zprofile
[Baca saat login]
Saya pribadi memperlakukan file seperti
.zshenv
tetapi untuk perintah dan variabel yang harus ditetapkan satu kali atau yang tidak perlu sering diperbarui :SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"
) karena mungkin membutuhkan waktu untuk dijalankan.Jika Anda memodifikasi file ini, Anda dapat menerapkan pembaruan konfigurasi dengan menjalankan shell login:
.zshrc
[Baca saat interaktif]
Saya taruh di sini semua yang diperlukan hanya untuk penggunaan interaktif :
.zlogin
[Baca saat login]
File ini seperti
.zprofile
, tetapi dibaca setelahnya.zshrc
. Anda dapat menganggap shell sudah sepenuhnya diatur pada waktu eksekusi .zloginJadi, saya menggunakannya untuk meluncurkan perintah eksternal yang tidak mengubah perilaku shell (mis. Manajer login).
.zlogout
[Baca saat logout] [Di dalam shell login]
Di sini, Anda dapat menghapus terminal Anda atau sumber daya lainnya yang telah diatur saat login.
Bagaimana saya memilih tempat untuk meletakkan pengaturan
.zshenv
.zshenv
.zprofile
.zshrc
.zlogin
.zlogout
sumber
Jangan lakukan
ssh-agent
panggilan.zshenv
. Itu menyebabkanless
perintah saya untuk tidak menampilkan file teks lagi, mungkin karena opsinya disesuaikan oleh Prezto (export LESS='-F -g -i -M -R -S -w -X -z-4'
in.zprofile
).sumber