Apakah ~/.bashrc
satu-satunya tempat untuk menentukan variabel lingkungan spesifik pengguna, alias, modifikasi ke PATH
variabel, dll?
Aku bertanya karena tampaknya ~/.bashrc
tampaknya bash
-hanya, tapi kerang lain ada juga ...
sumber
Apakah ~/.bashrc
satu-satunya tempat untuk menentukan variabel lingkungan spesifik pengguna, alias, modifikasi ke PATH
variabel, dll?
Aku bertanya karena tampaknya ~/.bashrc
tampaknya bash
-hanya, tapi kerang lain ada juga ...
File $HOME/.profile
ini digunakan oleh sejumlah shell, termasuk bash, sh, dash, dan mungkin lainnya.
Dari halaman bash man:
Ketika bash dipanggil sebagai shell login interaktif, ... pertama kali membaca dan mengeksekusi perintah dari file / etc / profile, jika file itu ada. Setelah membaca file itu, ia mencari ~ / .bash_profile, ~ / .bash_login, dan ~ / .profile, dalam urutan itu, dan membaca serta mengeksekusi perintah dari yang pertama yang ada dan dapat dibaca.
csh dan tcsh secara eksplisit tidak melihat ~/.profile
tetapi cangkang itu agak kuno.
Run command as a login shell
. Anda juga perlu menghapus~/.bash_profile
, atau menjadikannya sumber~/.profile
.$HOME/.profile
dari dalam Zsh Anda juga.zshrc
. Saya cenderung untuk meletakkan semua hal-hal shell portabel saya.profile
dan kemudian saya dapat membagikannya di lingkungan apa pun yang mungkin saya lompati.~/.profile
adalah tempat yang tepat untuk definisi variabel lingkungan dan untuk program non-grafis yang ingin Anda jalankan ketika Anda masuk (misalnyassh-agent
,screen -m
). Ini dijalankan oleh shell login Anda jika itu adalah shell bergaya Bourne (sh, ksh, bash). Zsh berjalan~/.zprofile
sebagai gantinya, dan Csh dan tcsh berjalan~/.login
.Jika Anda masuk di bawah manajer tampilan X (xdm, gdm, kdm, ...), apakah
~/.profile
dijalankan tergantung bagaimana manajer tampilan Anda dan mungkin lingkungan desktop dikonfigurasikan oleh distribusi Anda. Jika Anda masuk di bawah "sesi khusus", itu biasanya dijalankan~/.xsession
.~/.bashrc
adalah tempat yang tepat untuk pengaturan spesifik bash, seperti alias, fungsi, opsi shell, dan prompt. Seperti namanya, ini khusus untuk bash; csh memiliki~/.cshrc
, ksh memiliki~/.kshrc
, dan zsh memiliki <drumroll>~/.zshrc
.Lihat juga:
Perbedaan antara .bashrc dan .bash_profile
File setup mana yang harus digunakan untuk mengatur variabel lingkungan dengan bash?
Zsh tidak memukul ~ /. Profil
sumber
.zlogin
selain.zprofile
yang berjalan setelah.zshrc
(tetapi hanya untuk shell login). Lihat FAQ ZSHTidak ada file umum, tetapi Anda dapat membuat setiap shell membaca dari file umum.
bash
membaca dari.bash_profile
atau.bashrc
zsh
membaca dari.zprofile
dan.zshrc
ksh
membaca dari.profile
atau$ENV
Jadi, inilah yang saya lakukan:
~/.env
~/.shrc
~/.bashrc
~/.zshenv
~/.zshrc
~/.profile
~/.bash_profile
~/.zlogin
~/.zprofile
Jika Anda memiliki akses root ke sistem, cara lain adalah mengatur
pam_env
.Anda bisa meletakkannya
dalam
/etc/pam.d
file yang relevan (misalnya/etc/pam.d/common-session
pada Debian), dan kemudian ketika pengguna masuk,PAM
akan membaca variabel lingkungan dari~/.env
.Perhatikan bahwa
pam_env
pada dasarnya hanya mendukungVAR=value
entri.Info lebih lanjut:
sumber
Tidak ada yang namanya file konfigurasi lingkungan untuk shell yang berbeda, karena itu bahkan shell yang spesifik bagaimana mereka didefinisikan.
Di csh Anda gunakan
setenv
dalam bash yang Anda gunakanexport
untuk mendefinisikan mereka.Pokoknya Anda bisa menulis file konfigurasi Anda sendiri dan memasukkannya ke
source
dalam dotfiles dari shell Anda.sumber