Cara membuat ~ / .bash_profile dan ~ / .profile

25

Jadi, saya tidak punya .bash_profilekeduanya .profiledi folder rumah saya. Bagaimana cara saya membuatnya? Setelah itu, apa yang harus saya lakukan agar setiap kali saya membuka terminal file-file ini bisa dibaca?

Thi G.
sumber

Jawaban:

28

Anda bisa menggunakan touchperintah.

Contohnya,

cd ~

untuk pergi ke direktori home.

Sekarang kita akan membuat file bernama .bash_profile(titik artinya akan disembunyikan).

Kemudian gunakan nanoatau vidi Terminal. Kecuali Anda tahu apa viitu, gunakan saja nano. Untuk membuka file-file ini, Anda akan menggunakan:

sudo nano .bash_profile

sudomemastikan bahwa Anda akan dapat menyimpan file-file ini. Di sini, Anda dapat menambahkan aliases. nanoatau visecara otomatis akan membuat file baru jika tidak ada di direktori Anda saat ini di Terminal.

Setelah Anda selesai, tekan Ctrl+ O, Enterdan Ctrl+ Xuntuk menyimpan dan keluar. Akhirnya, gunakan

source ~/.bash_profile

untuk memuat ulang Terminal dan itu akan membaca apa yang Anda masukkan ke file-file itu.

Tentu saja, Anda bisa alias juga jika Anda mau. :)

Untuk menjawab pertanyaan terakhir Anda, file-file ini akan secara otomatis dibaca setiap kali Anda membuka Terminal. Namun, jika ada kesalahan (Misalnya, jangan beri spasi di antara alias), itu akan memberi tahu Anda.

Informasi Lebih Lanjut

Seperti yang ditunjukkan George, .bash_profileakan berjalan hanya pada shell login. Untuk shell non-login, Anda perlu membuat .bashrcfile dengan:

    sudo nano .bashrc

Tautan

.bash_profile vs .bashrc

Pentingnya .bashrc

kentang yang sama
sumber
5
Mengapa Anda menggunakan touchuntuk membuat file kosong terlebih dahulu? nanotetap melakukan ini secara otomatis.
nohillside
5
Juga, Anda mungkin tidak ingin keduanya ~ / .profile dan ~ / .bash_profile - jika bash melihat .bash_profile, itu tidak mengganggu dengan .profile. Akhirnya, itu hanya akan dijalankan untuk shell "login"; bukan kerang nonlogin yang menjalankan ~ / .bashrc. Lihat pertanyaan SO sebelumnya di sini dan di sini .
Gordon Davisson
@GordonDavisson apakah bagus untuk memilikinya ~/.profilesebagai salinan ~/.bash_profile? Dan jika Anda memiliki keduanya, apa yang Anda miliki di dalam ~/.profileyang tidak dapat dilakukan ~/.bash_profile?
Thi G.
2
@ THG: Saya tidak akan memiliki satu salinan yang lain; Anda cenderung menambahkan sesuatu ke satu, lupa menambahkannya ke yang lain, dan menjadi bingung. Lihat rekomendasi saya pada pertanyaan SO ini untuk apa yang saya anggap praktik terbaik.
Gordon Davisson
sudomemastikan Anda mengacaukan hak pengguna. Jangan lakukan itu.
Max Ried
2

Anda dapat menyalin file-file itu dari / etc / skel / yang merupakan file skeleton untuk pengguna baru yang dibuat dengan perintah seperti useradd pada distro berbasis Debian:

cp -nr /etc/skel/. ~/

File-file ini akan dimuat secara otomatis oleh shell setiap kali Anda masuk. Cara memuat file profil itu dijelaskan halaman manual shell Anda. Jika Anda menggunakan bash shell dengan cara khusus (misalnya, melalui ssh, ansible, dll ...) Anda harus menggunakan perintah 'bash -ilc "yang ingin Anda jalankan di ENV yang disiapkan oleh file profil" ". -i berarti shell interaktif yang sering dibutuhkan oleh .bashrc -l shell login yang menyebabkan .profile dimuat (atau .bash_profile ada - lihat halaman manual bash) yang kemudian memuat .bashrc

Juraj Michalak
sumber
0

Saya lebih suka menggunakan editor teks GUI seperti BBEdit atau TextWrangler. Editor teks ini dapat menangani file yang tidak terlihat seperti .profile dan .bash_profile dan mereka memiliki keuntungan memiliki antarmuka GUI, tidak seperti nano yang merupakan antarmuka konsol.

TextWrangler

BBEdit

Kaydell
sumber
0

Anda juga dapat menggunakan editor teks GUI seperti TextEdit:

touch ~/.bash_profile
open -e ~/.bash_profile

open -eadalah jalan pintas untuk open -a TextEdit.

Anda tidak harus membuat .profile atau .bashrc. Terminal dan iTerm 2 membuka shell baru sebagai shell login, jadi bash tidak membaca .bashrc. Jika keduanya .bash_profile dan .profile ada, bash hanya membaca .bash_profile ketika dipanggil sebagai shell login interaktif. . profil dibaca oleh ksh ketika dipanggil sebagai shell login interaktif dan oleh bash ketika dipanggil sebagai sh sebagai shell login interaktif.

Saya sebenarnya telah memberitahu iTerm 2 untuk membuka shell baru sebagai shell non-login, dan .bash_profile saya hanya berisi baris seperti . ~/.bashrc. tmux dan mode shell di emacs membuka shell baru sebagai shell non-login secara default. .bash_profile masih dibaca ketika saya ssh ke komputer saya.

Lri
sumber
Biarkan saya melihat apakah saya mengerti ... Anda memiliki keduanya ~/.bash_profiledan ~/.profile? Dan kamu juga punya ~/.bashrc?
Thi G.
Saya tidak memiliki .profile, dan .bash_profile saya hanya berisi . ~/.bashrc.
Lri