Mengapa saya harus mencari .bashrc setiap kali saya membuka terminal agar alias berfungsi? [duplikat]

25

Saya menambahkan baris ini ke ~/.bashrcfile saya .

alias myserver='ssh [email protected]'

Namun, ketika saya membuka terminal dan menjalankan myserver, terminal mengeluh itu

-bash: myserver: command not found

Ketika saya sumber file .bashrc saya, ( . .bashrc), alias bekerja.

Meskipun demikian, saya tidak ingin sumber file setiap kali saya membuka terminal agar alias berfungsi. Bagaimana saya mewujudkannya?

David Faux
sumber
3
Komentar ini menjelaskan alasannya. Pertanyaan itu memberi tahu Anda cara memperbaikinya.
ughoavgfhw
Terima kasih banyak! Saya tidak tahu bahwa memulai shell menjalankan file-file itu secara berurutan. Memang, menambah . .bashrcmenjadi .bash_profilekarya.
David Faux
@ughoavgfhw dapat / haruskah Anda mengubah komentar Anda menjadi sebuah jawaban? Dengan begitu bisa ditandai sebagai jawaban.
soxman

Jawaban:

25

Singkatnya, Anda meletakkan alias Anda di file yang salah .bashrc, itu sebabnya Anda harus tetap menjalankan sumber untuk membuat alias bekerja di instance terminal login baru.

Dari komentar Chris Johnsen di Why .bashrc tidak berjalan secara otomatis?

Secara default, Terminal memulai shell melalui / usr / bin / login, yang menjadikan shell sebagai shell login. Pada setiap platform (bukan hanya Mac OS X) bash tidak menggunakan .bashrc untuk shell login (hanya / etc / profile dan yang pertama dari .bash_profile, .bash_login, .profile yang ada dan dapat dibaca). Inilah sebabnya mengapa “masukkan sumber ~ / .bashrc di .bash_profile Anda” adalah saran standar.

Untuk informasi lebih lanjut, lihat halaman manual untuk bash:

man bash

Kemudian lihat di bagian INVOCASI.

MrDaniel
sumber
Apakah saya perlu mem-boot ulang agar semuanya berfungsi? Karena saya menambahkan source ~/.bashrcke .bash_profile saya, tapi saya masih menghadapi masalah yang sama ...
Michiel
1
Tidak dalam kebanyakan kasus Anda hanya perlu membuka jendela terminal baru agar perubahan diterapkan, perubahan hanya akan berlaku di jendela yang baru dibuka.
MrDaniel
11

Anda selalu bisa

if [ -n "$BASH_VERSION" ] && [ -f $HOME/.bashrc ];then
    source $HOME/.bashrc
fi

ke dalam file ~/.profileatau ~/.bash_profiledi mac saya pikir.

Oooor, Anda bisa memasukkan barang-barang Anda ke dalam .profileatau .bash_profile.

Dylan
sumber
Ini dicatat dalam jawaban lain - mengapa Anda tidak yakin tentang hal-hal ini?
user151019
Silakan baca pertanyaan yang sangat mirip ini: apple.stackexchange.com/q/12993/22003 dan tambahkan di sana setiap perbaikan.
dan
@danielAzuelos Tunggu; Anda ingin saya mengomentari halaman lain atau memperbarui jawaban saya berdasarkan pertanyaan lain?
Dylan
@ Mark saya hanya berpikir dalam arti yang sangat hipotetis - seperti bagaimana jika proses terminal seseorang tidak tahu untuk mencari. Profil? Terminal mereka mungkin tidak akan mulai di tempat pertama, tetapi masih mungkin .... seperti jika seseorang meretas di / usr / bin / login atau sesuatu.
Dylan
→ Dylan: baca pertanyaan yang sangat mirip ini: apple.stackexchange.com/q/12993/22003 dan Anda akan menemukan jawaban untuk "mungkin?"
dan