Apa perbedaan antara ~/.profiledan ~/.bash_profile?
Apa perbedaan antara ~/.profiledan ~/.bash_profile?
Jawaban:
Itu .profileadalah konfigurasi profil asli untuk shell Bourne (alias, sh). bash, menjadi shell yang kompatibel dengan Bourne akan membaca dan menggunakannya. Di .bash_profilesisi lain hanya dibaca oleh bash. Ini dimaksudkan untuk perintah yang tidak sesuai dengan shell Bourne standar.
.profile. Misalnya, bashdan kshtetapi tidak cshatau tcsh. Dan zshmenyediakan keduanya shdan cshkompatibilitas sehingga akan membaca keduanya .profiledan .login, serta zshfile dot tertentu.
Aslinya shbersumber .profilepada startup.
bashakan mencoba untuk sumber .bash_profilepertama, tetapi jika itu tidak ada, itu akan sumber .profile1 .
Perhatikan bahwa jika bashdimulai sebagai sh(misalnya /bin/shtautan ke /bin/bash) atau dimulai dengan --posixbendera, ia mencoba untuk meniru sh, dan hanya membaca .profile.
Catatan kaki:
.bash_profile, .bash_login,.profileLihat 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_profiledan ~/.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/passwdseperti:
mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash
Shell Anda berjalan, dan secara default setiap shell memiliki file yang ditetapkan untuk logindan logout. Saat Anda masuk di bash, ~/.profilejalankan dan saat Anda logout, ~/.bash_logoutdijalankan.
~/.bash_historyfile menjaga perintah input Anda.
~/.login Saat Anda login~/.logout Saat Anda keluar~/.tcshrcsama seperti ~./bashrcdi bashAnda dapat mengatur variabel $histfilesebagai nama file histori dan variabel $historysebagai 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 $ZDOTDIRtidak 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.
~/.profileIni 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_profiledan ~/.bash_profilejalankan ~/.bashrc. Memang ~/.bashrcbukan file inisialisasi bash, karena bash tidak menjalankannya.
Sudah mati. Bahkan ketika Anda menggunakan man sh, Anda melihat manual dash. [Catatan Editor: bit tentang ini dashhanya berlaku untuk distro berbasis Debian dan Debian seperti Ubuntu.]
~/.bash_profilebekerja di bawah bash, tetapi ~/.profilebekerja 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 .bashrcdieksekusi pada setiap instance dari shell. Namun .bash_profilehanya digunakan saat login. Demikian alasan kedua file terpisah.
.profileadalah untuk hal-hal yang tidak secara spesifik terkait dengan Bash, seperti variabel lingkungan $ PATH juga harus tersedia kapan saja. .bash_profilekhusus untuk shell atau shell yang dieksekusi saat login.