Jawaban:
Bash akan menghasilkan EITHER .bash_profile atau .bashrc, tergantung bagaimana namanya. Jika itu adalah shell login, Bash mencari ~ / .bash_profile, ~ / .bash_login, atau ~ / .profile, dalam urutan itu, dan sumber yang pertama ditemukan (dan hanya yang itu). Jika ini bukan shell login tetapi interaktif (seperti kebanyakan sesi terminal), Bash akan mencari ~ / .bashrc.
Sepertinya, iTerm mencari ~ / .bashrc. Jika dikonfigurasi untuk memulai sebagai shell login, ia akan mencari ~ / .bash_profile. Ini hampir pasti kesalahan dalam file konfigurasi daripada bahwa shell tidak mengambilnya.
Saya akan meletakkan garis di awal setiap file. Di bagian atas ~ / .bash_profile:
export BASH_CONF="bash_profile"
Dan di bagian atas ~ / .bashrc:
export BASH_CONF="bashrc"
Kemudian, buka iTerm dan ketik baru
$ echo $BASH_CONF
Itu akan mengonfirmasi file sedang bersumber dan Anda dapat melihat ke sintaks file.
Di iTerm2, tidak ada solusi yang bekerja untuk saya. Saya dapat membuatnya untuk membaca file .bashrc dengan benar dengan menambahkan perintah
source ~/.bashrc
ke kolom Kirim teks saat mulai: di Pengaturan / Umum untuk profil iTerm saya.
~/.bashrc
. Diedit itu.
Saya hanya ingin tahu apakah Anda benar-benar menggunakan Bash? Mungkin Anda bisa menggunakan echo $SHELL
, sangat mungkin Anda menggunakan zsh , sudahkah Anda menginstal on-my-zh ?
Sebenarnya saya mengalami masalah yang sama seperti Anda, saya memperbaikinya dengan mengkonfigurasi ~ / .zshrc sebagai gantinya ~ / .bash_profile untuk shell login atau ~ / .bashrc untuk shell non-login.
Mungkin Anda bisa mencobanya
Pada mesin 10,6 saya ~/.profile
bersumber. Jadi source .bashrc
entri masuk ~/.profile
harus melakukan pekerjaan.
Memperbaiki mudah.
1. Buka ~/.zshrc
file Anda
2. Tambahkan baris berikut di akhir file.
source ~/.bash_profile
Masukkan definisi alias Anda di file profil bash, Anda harus membuat file tetapi akan bersumber secara otomatis. Saya membuat file terpisah yang disebut alias.configuration dan sumbernya di .bash_profile hanya karena saya memiliki pengguna lain yang ditentukan dan ingin memiliki set alias yang sama.
.bashrc
pun .bash_profile
tidak bersumber.
Menambahkan
set -x
ke awal /etc/profile
. Ini memberi Anda account baris demi baris dari segala sesuatu yang akan dijalankan ketika bash
dijalankan, termasuk file yang bersumber dari dalam /etc/profile
, ~/.bash_profile
, dll Ini sedikit menakutkan jika Anda tidak mengerti bash
scripting sangat baik, tetapi Anda mungkin dapat melihat apakah ada kesalahan dalam file start-up, dan hasilnya akan berguna bagi seseorang yang mahir dalam bash
membantu Anda menemukan masalah Anda.
Anda dapat menghapus set -x
garis saat Anda selesai pemecahan masalah.
Pada 10.10 dan iTerm2 2.0, profil khusus
Saya menggabungkan solusi pasangan untuk bekerja seperti yang diharapkan.
.bash_profile
sumber dan jalankan di zsh.
Preferences -> Profiles -> General
.
Pilih Command di bawah Command.
Dan tambahkan di kotak teks /bin/bash --login
.
Kemudian di .bash_profile tambahkan baris
/bin/zsh --login
Itu dia.
bash
selalu berlari zsh
, bukan itu yang diharapkan siapa pun.
source ~/.bash_profile
secara manual. @Scott Setelah melakukan hal-hal di atas, saya memiliki zsh dengan cara yang diperlukan.
zsh
apa yang Anda inginkan , tetapi tidak diharuskan atau diminta oleh pertanyaan ini, yang ditandai [bash] dan tidak mengatakan apa-apa zsh
. (2) Jika Anda mendefinisikan alias dan fungsi shell dan mengatur variabel (tanpa mengekspornya) di Anda .bashrc
dan / .bash_profile
,, apakah tersedia untuk Anda di zsh
shell Anda ?
~/.bash_profile
sedang dipanggil oleh bash terlebih dahulu, yang menghubungkan instruksi yang Anda miliki~/.bashrc
. Masalah ini dapat terjadi secara tak terduga jika program jahat menambahkan beberapa instruksi kepada Anda~/.bash_profile
ketika sebelumnya file tersebut tidak ada, dan Anda telah menempatkan semua perintah bash Anda~/.bashrc
. Solusinya adalah dengan menghapus ~ / .bash_profile Anda, atau memiliki ~ / .bash_profile sumber ~ / .bashrc Anda. Ini dapat dilakukan dengan menambahkan perintah:source ~/.bashrc
ke ujung Anda~/.bash_profile
dan memulai ulang terminal.