Apa perbedaan antara ~/.profile
dan ~/.bash_profile
?
Apa perbedaan antara ~/.profile
dan ~/.bash_profile
?
Jawaban:
Itu .profile
adalah konfigurasi profil asli untuk shell Bourne (alias, sh
). bash
, menjadi shell yang kompatibel dengan Bourne akan membaca dan menggunakannya. Di .bash_profile
sisi lain hanya dibaca oleh bash
. Ini dimaksudkan untuk perintah yang tidak sesuai dengan shell Bourne standar.
.profile
. Misalnya, bash
dan ksh
tetapi tidak csh
atau tcsh
. Dan zsh
menyediakan keduanya sh
dan csh
kompatibilitas sehingga akan membaca keduanya .profile
dan .login
, serta zsh
file dot tertentu.
Aslinya sh
bersumber .profile
pada startup.
bash
akan mencoba untuk sumber .bash_profile
pertama, tetapi jika itu tidak ada, itu akan sumber .profile
1 .
Perhatikan bahwa jika bash
dimulai sebagai sh
(misalnya /bin/sh
tautan ke /bin/bash
) atau dimulai dengan --posix
bendera, ia mencoba untuk meniru sh
, dan hanya membaca .profile
.
Catatan kaki:
.bash_profile
, .bash_login
,.profile
Lihat juga:
Anda tahu banyak kerang ada di dunia UNIX, tetapi kebanyakan dari mereka adalah:
/bin/sh
(Penemu: Stephen Bourne)/bin/bash
(Penemu: Brian Fox, di bawah proyek GNU) (shell yang kuat)/bin/csh
(Penemu: Bill Joy, Penemu TCP / IP Stack)/bin/ksh
(Penemu: David Korn di bawah Bell Labs)/bin/zsh
(shell Powerfull)/bin/tcsh
(berasal dari C Shell)/bin/dash
(Berasal dari shell Almquist (abu di bawah proyek NetBSD)) (Dash lahir dari lenny)Tetapi pertanyaan Anda adalah tentang ~/.bash_profile
dan ~/.profile
:
Ketika Anda masuk ke mesin UNIX, itu akan diarahkan ke direktori home Anda, sesuai dengan shell yang dipilih oleh administrator di bidang terakhir /etc/passwd
seperti:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
Shell Anda berjalan, dan secara default setiap shell memiliki file yang ditetapkan untuk login
dan logout
. Saat Anda masuk di bash, ~/.profile
jalankan dan saat Anda logout
, ~/.bash_logout
dijalankan.
~/.bash_history
file menjaga perintah input Anda.
~/.login
Saat Anda login~/.logout
Saat Anda keluar~/.tcshrc
sama seperti ~./bashrc
di bashAnda dapat mengatur variabel $histfile
sebagai nama file histori dan variabel $history
sebagai jumlah perintah untuk disimpan.
Memang itu shell yang kuat dan jika Anda mendapatkan waktu luang, pastikan bermigrasi ke sana.
Kecuali shell lain, shell Z memiliki banyak file konfigurasi dan file inisialisasi, hanya saya tulis:
$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout
/tmp/zsh*
/etc/zshenv
/etc/zprofile
/etc/zshrc
/etc/zlogin
Catatan: jika $ZDOTDIR
tidak disetel, setel rumah.
Catatan: TENEX C shell bercabang dari shell C. C shell didukung oleh BSD. Jika Anda terbiasa dengan pemrograman bahasa C, Anda harus merasa nyaman karena sintaksinya mirip.
~/.login
~/.cshrc
~/.logout
Catatan: csh sudah tua. Gunakan tcsh sebagai gantinya.
~/.profile
Ini shell yang sangat kuat dan lahir di bawah proyek GNU dan bercabang oleh Bourne Shell.
~/.bash_login
~/.bash_logout
~/.bashrc
~/.bash_profile
~/.bash_history
Saat Anda masuk, bash jalankan ~/.bash_profile
dan ~/.bash_profile
jalankan ~/.bashrc
. Memang ~/.bashrc
bukan file inisialisasi bash, karena bash tidak menjalankannya.
Sudah mati. Bahkan ketika Anda menggunakan man sh
, Anda melihat manual dash
. [Catatan Editor: bit tentang ini dash
hanya berlaku untuk distro berbasis Debian dan Debian seperti Ubuntu.]
~/.bash_profile
bekerja di bawah bash, tetapi ~/.profile
bekerja di bawah shell Bourne dan Korn.
Shell login hanyalah shell yang bisa Anda masuki melalui ssh atau di konsol. Shell non-login adalah shell yang seseorang tidak dapat login juga. Shell non-login sering digunakan oleh program / layanan sistem.
Adapun poin ketiga Anda. Memang benar .bashrc
dieksekusi pada setiap instance dari shell. Namun .bash_profile
hanya digunakan saat login. Demikian alasan kedua file terpisah.
.profile
adalah untuk hal-hal yang tidak secara spesifik terkait dengan Bash, seperti variabel lingkungan $ PATH juga harus tersedia kapan saja. .bash_profile
khusus untuk shell atau shell yang dieksekusi saat login.