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.
Jika saya salah, perbaiki saya .. .profile digunakan oleh semua shell yang kompatibel dengan Bourne sedangkan .bash_profile hanya digunakan oleh bash .. apakah saya benar?
lakesh
2
@lakesh: Ya, shell yang menyediakan kompatibilitas bourne akan membaca .profile. Misalnya, bashdan kshtetapi tidak cshatau tcsh. Dan zshmenyediakan keduanya shdan cshkompatibilitas sehingga akan membaca keduanya .profiledan .login, serta zshfile dot tertentu.
bahamat
apakah ada tutorial untuk membaca tentang hal-hal bash dan ksh ini? tidak pernah mendengar ini sebelumnya ...
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:
Sebenarnya, yang pertama dari .bash_profile, .bash_login,.profile
Luar biasa .. Terima kasih ... terutama untuk referensi ...
lakesh
10
Anda tahu banyak kerang ada di dunia UNIX, tetapi kebanyakan dari mereka adalah:
Bourne shell : /bin/sh(Penemu: Stephen Bourne)
BASH (Bourne Again Shell): /bin/bash(Penemu: Brian Fox, di bawah proyek GNU) (shell yang kuat)
C shell : /bin/csh(Penemu: Bill Joy, Penemu TCP / IP Stack)
Korn shell : /bin/ksh(Penemu: David Korn di bawah Bell Labs)
Z shell : /bin/zsh(shell Powerfull)
TENEX C shell : /bin/tcsh(berasal dari C Shell)
Debian Almquist 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:
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.
File inisialisasi di setiap shell
TENEX C shell
~/.login Saat Anda login
~/.logout Saat Anda keluar
~/.tcshrcsama seperti ~./bashrcdi bash
Anda dapat mengatur variabel $histfilesebagai nama file histori dan variabel $historysebagai jumlah perintah untuk disimpan.
Z shell
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:
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.
Korn Shell
~/.profile
file rc: ditentukan pengguna
file logout: N / A
Bourne Again SHell (BASH)
Ini shell yang sangat kuat dan lahir di bawah proyek GNU dan bercabang oleh Bourne Shell.
Saat Anda masuk, bash jalankan ~/.bash_profiledan ~/.bash_profilejalankan ~/.bashrc. Memang ~/.bashrcbukan file inisialisasi bash, karena bash tidak menjalankannya.
Shell Bourne
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.]
Jawabanmu
~/.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.
perbedaan antara ~ / .profile dan ~ / .bash_profile?
lakesh
2
.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 login atau shell yang dieksekusi saat login.
anzenketh
tambahkan pernyataan itu ke jawaban Anda .... karena apa pertanyaan saya adalah ....
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 olehbash
. Ini dimaksudkan untuk perintah yang tidak sesuai dengan shell Bourne standar.sumber
.profile
. Misalnya,bash
danksh
tetapi tidakcsh
atautcsh
. Danzsh
menyediakan keduanyash
dancsh
kompatibilitas sehingga akan membaca keduanya.profile
dan.login
, sertazsh
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 sebagaish
(misalnya/bin/sh
tautan ke/bin/bash
) atau dimulai dengan--posix
bendera, ia mencoba untuk menirush
, dan hanya membaca.profile
.Catatan kaki:
.bash_profile
,.bash_login
,.profile
Lihat juga:
sumber
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:Shell Anda berjalan, dan secara default setiap shell memiliki file yang ditetapkan untuk
login
danlogout
. Saat Anda masuk di bash,~/.profile
jalankan dan saat Andalogout
,~/.bash_logout
dijalankan.~/.bash_history
file menjaga perintah input Anda.File inisialisasi di setiap shell
TENEX C shell
~/.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.Z shell
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:
Catatan: jika
$ZDOTDIR
tidak disetel, setel rumah.C shell
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.
Catatan: csh sudah tua. Gunakan tcsh sebagai gantinya.
Korn Shell
~/.profile
Bourne Again SHell (BASH)
Ini shell yang sangat kuat dan lahir di bawah proyek GNU dan bercabang oleh Bourne Shell.
Saat Anda masuk, bash jalankan
~/.bash_profile
dan~/.bash_profile
jalankan~/.bashrc
. Memang~/.bashrc
bukan file inisialisasi bash, karena bash tidak menjalankannya.Shell Bourne
Sudah mati. Bahkan ketika Anda menggunakan
man sh
, Anda melihat manualdash
. [Catatan Editor: bit tentang inidash
hanya berlaku untuk distro berbasis Debian dan Debian seperti Ubuntu.]Jawabanmu
~/.bash_profile
bekerja di bawah bash, tetapi~/.profile
bekerja di bawah shell Bourne dan Korn.sumber
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.sumber