Saya tidak dapat menemukan .bash_profile di ubuntu
67
Saya tidak dapat menemukan .bash_profiledi Ubuntu 14.04 di /home/userdirektori saya . Saya menggunakan ls -aperintah untuk melihat .bash_profile, tetapi tidak ada file seperti itu.
Sangat umum bahwa beberapa file konfigurasi (atau bahkan direktori) tidak ada. Dalam hal ini perangkat lunak yang harus membacanya akan menggunakan konfigurasi default dan / atau membaca sumber lain untuk mengambil konfigurasi. Jika Anda ingin memodifikasi file konfigurasi yang tidak ada cukup buat dulu.
Bakuriu
Jawaban:
84
Ubuntu menggunakan ~/.profile.
Anda dapat membuatnya .bash_profiledi Ubuntu tetapi .profiletidak akan dibaca.
Jika kita membaca konten profil.:
cat ~/.profile
keluaran
# ~/.profile: executed by the command interpreter for login shells.# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login# exists.
profil tidak bekerja untuk saya. Saya harus mengedit .bashrc vim ~/.bashrclalu. ~/.bashrc
Nahid
Menggunakan .bash_profile tidak berfungsi di Ubuntu. Ini menggunakan Dash sebagai shell login GUI, bukan Bash, jadi bash_profile tidak dibaca.
Jonathan Hartley
Jika Anda mengedit profil., Anda harus keluar dan kembali lagi untuk melihat perubahannya.
Jonathan Hartley
8
Saat menjalankan bash shell login akan mencari file konfigurasi dalam urutan ini:
[0]~/.bash_profile
[1]~/.bash_login
[2]~/.profile
Setelah menemukan yang pertama, ia berhenti mencari yang lain sehingga jika ada .bash_profiledi $HOMEbash saya tidak akan mencari .bash_logindan .profilelagi.
Dari ketiga nama file ini, Ubuntu secara default menggunakan .profileAnda dapat mengubah nama menjadi .bash_profilejika Anda suka:
mv ~/.profile ~/.bash_profile
Sekarang jika kita membuka shell bash baru menggunakan bash -l, su - $USER, sudo -u $USER -iatau perintah lain yang berjalan pesta sebagai shell login, ~/.bash_profileakan mendapatkan bersumber.
Perlu diperhatikan:
Apa yang saya bicarakan sampai sekarang hanya berlaku untuk Bash sendiri, ketika Anda masuk ke sistem dari GUI, manajer tampilan bertanggung jawab atas sumber file yang benar.
Ubuntu menggunakan gdm3sebagai pengelola tampilan, jika kita melihat: /etc/gdm3/Xsessionkita dapat melihat bahwa tidak ada file yang akan bersumber kecuali .profile::
# First read /etc/profile and .profilefor file in/etc/profile "$HOME/.profile";doif[-f "$file"];then
source_with_error_check "$file"fidone
jadi jika Anda menggunakan GUI untuk masuk, simpan file dengan .profilenama lain jika tidak, Anda mungkin kehilangan beberapa variabel dan pengaturan di lingkungan Anda.
Saya kira opsi yang lebih baik adalah membuat symlink ke .profile:
ln -s ~/.profile ~/.bash_profile
Sekarang data Anda tinggal .profile, gdmtidak ketinggalan apa pun, bash load .bash_profileyang sebenarnya .profile, dan dengan mengedit masing-masing Anda mendapatkan hasil yang sama.
Profil. Hilang?
Jika Anda belum memilikinya, .profileambil salinannya dari sini:
cp /etc/skel/.profile ~/.profile
atau
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
Tetapi, jika Bash mencari ~ / .bash_profile terlebih dahulu, lalu mengapa ia tidak melakukan ini di Ubuntu? Sudahkah Ubuntu memodifikasi Bash? Ini sepertinya aneh. man bashdi Ubuntu masih menjelaskan bagaimana ia akan mencari .bash_profile terlebih dahulu.
Jonathan Hartley
Terlihat .bash_profilepertama tidak dapat menemukannya (karena tidak ada) kemudian mencari .bash_logintidak dapat menemukannya lagi (karena Ubuntu tidak menggunakan dua nama ini) akhirnya mencari .profiledan ya itu ada. Jadi jika Anda membuat .bash_profilein ~maka Anda menimpa ubuntu ~/.profile, itu adalah perilaku default bash, tidak ada yang diubah di sini.
Ravexina
Benar, itu yang saya pikirkan pada awalnya juga! Dan apa yang Anda gambarkan TIDAK terjadi di RHEL. Tetapi di Ubuntu, tidak. Jika saya membuat .bash_profile, itu tidak dibaca. Saya baru menyadari bahwa ini karena Ubuntu tidak lagi menggunakan 'Bash' sebagai shell login GUI. Ini menggunakan 'Dash' sebagai gantinya. Saya pikir ini sudah benar sejak sekitar 18,04.
Jonathan Hartley
Anda kehilangan poin di sini. Sebenarnya kita berbicara tentang bash itu sendiri, apa yang saya katakan di sini adalah bahwa Ubuntu membuat '. Profil' dan bukan yang lain, jadi jika kita membuka bash shell baru (shell login) yang merupakan urutan membaca file-file ini, bukankah t peduli distro apa yang kita gunakan. :)
Ravexina
Jika pembaca mengganti nama .profile menjadi .bash_profile seperti jawaban Anda, maka untuk orang-orang di Ubuntu, file itu tidak akan dibaca saat login, atau saat membuka terminal. Anda telah merusak sistem mereka. Satu-satunya cara file itu akan dibaca adalah jika mereka meluncurkan sesi bash dengan argumen '--login' untuk secara eksplisit menjadikannya shell login. Itu tidak akan pernah terjadi secara otomatis di desktop mereka.
Jonathan Hartley
5
Itu berarti file tersebut tidak ada. Tapi, Anda bisa membuat file dan bashmengeksekusi / sumber file jika bashdipanggil sebagai shell login. Jadi, sesaat Anda login melalui shell (misalnya via ssh).
Jika Anda ingin konten dieksekusi setiap kali Anda membuka terminal, maka Anda harus memodifikasi .bashrcfile.
Di Linux asli, profil. Diterapkan ketika Anda login ke GUI, atau menghubungkan dari jarak jauh, atau masuk ke konsol, yaitu setelah menekan ctrl + shift + F2. Seharusnya mewakili saat pertama kali Anda login ke mesin, membuat shell yang merupakan induk dari semua proses lain yang Anda buat. Saya menduga bahwa di WSL, tidak ada hal seperti ini, jadi profil Anda mungkin tidak pernah dibaca.
Jonathan Hartley
sama untuk ku. ~/.profiletidak dimuat secara default di ubuntu 18.04
javapowered
0
Jika Anda maksud .bashrc Anda akan menemukannya di folder rumah Anda. Jika tidak ada, Anda dapat menyalinnya dari folder / etc / skel ke folder home Anda.
Jika Anda memerlukan informasi lebih lanjut tentang hal ini, silakan kunjungi halaman stefaan lippens.
~/.profile
sebagai gantinya.Jawaban:
Ubuntu menggunakan
~/.profile
.Anda dapat membuatnya
.bash_profile
di Ubuntu tetapi.profile
tidak akan dibaca.Jika kita membaca konten profil.:
keluaran
Jadi gunakan
~/.profile
saja~/.bash_profile
sumber
vim ~/.bashrc
lalu. ~/.bashrc
Saat menjalankan bash shell login akan mencari file konfigurasi dalam urutan ini:
Setelah menemukan yang pertama, ia berhenti mencari yang lain sehingga jika ada
.bash_profile
di$HOME
bash saya tidak akan mencari.bash_login
dan.profile
lagi.Dari ketiga nama file ini, Ubuntu secara default menggunakan
.profile
Anda dapat mengubah nama menjadi.bash_profile
jika Anda suka:Sekarang jika kita membuka shell bash baru menggunakan
bash -l
,su - $USER
,sudo -u $USER -i
atau perintah lain yang berjalan pesta sebagai shell login,~/.bash_profile
akan mendapatkan bersumber.Perlu diperhatikan:
Apa yang saya bicarakan sampai sekarang hanya berlaku untuk Bash sendiri, ketika Anda masuk ke sistem dari GUI, manajer tampilan bertanggung jawab atas sumber file yang benar.
Ubuntu menggunakan
gdm3
sebagai pengelola tampilan, jika kita melihat:/etc/gdm3/Xsession
kita dapat melihat bahwa tidak ada file yang akan bersumber kecuali.profile
::jadi jika Anda menggunakan GUI untuk masuk, simpan file dengan
.profile
nama lain jika tidak, Anda mungkin kehilangan beberapa variabel dan pengaturan di lingkungan Anda.Saya kira opsi yang lebih baik adalah membuat symlink ke
.profile
:Sekarang data Anda tinggal
.profile
,gdm
tidak ketinggalan apa pun, bash load.bash_profile
yang sebenarnya.profile
, dan dengan mengedit masing-masing Anda mendapatkan hasil yang sama.Profil. Hilang?
Jika Anda belum memilikinya,
.profile
ambil salinannya dari sini:atau
sumber
man bash
di Ubuntu masih menjelaskan bagaimana ia akan mencari .bash_profile terlebih dahulu..bash_profile
pertama tidak dapat menemukannya (karena tidak ada) kemudian mencari.bash_login
tidak dapat menemukannya lagi (karena Ubuntu tidak menggunakan dua nama ini) akhirnya mencari.profile
dan ya itu ada. Jadi jika Anda membuat.bash_profile
in~
maka Anda menimpa ubuntu~/.profile
, itu adalah perilaku default bash, tidak ada yang diubah di sini..bash_profile
, itu tidak dibaca. Saya baru menyadari bahwa ini karena Ubuntu tidak lagi menggunakan 'Bash' sebagai shell login GUI. Ini menggunakan 'Dash' sebagai gantinya. Saya pikir ini sudah benar sejak sekitar 18,04.Itu berarti file tersebut tidak ada. Tapi, Anda bisa membuat file dan
bash
mengeksekusi / sumber file jikabash
dipanggil sebagai shell login. Jadi, sesaat Anda login melalui shell (misalnya viassh
).Jika Anda ingin konten dieksekusi setiap kali Anda membuka terminal, maka Anda harus memodifikasi
.bashrc
file.sumber
/etc/skel/
direktori..bash_profile
tidak ada (dan tidak berfungsi) di Ubuntu dalam komentar pada jawaban lain.Jawaban teratas untuk digunakan
~/.profile
bukannya~/.bash_profile
tidak berfungsi untuk saya.Memodifikasi
.bashrc
berhasilHanya:
Catatan: Saya menggunakan Ubuntu WSL.
sumber
~/.profile
tidak dimuat secara default di ubuntu 18.04Jika Anda maksud .bashrc Anda akan menemukannya di folder rumah Anda. Jika tidak ada, Anda dapat menyalinnya dari folder / etc / skel ke folder home Anda.
Jika Anda memerlukan informasi lebih lanjut tentang hal ini, silakan kunjungi halaman stefaan lippens.
http://stefaanlippens.net/bashrc_and_others
sumber