Saya menaruh beberapa perintah alias di .bashrc
file saya , sehingga mereka dapat dimuat setiap kali saya membuka jendela Terminal baru. Namun ini tidak terjadi.
Saya harus memilih run script:
di Terminal> Preferensi> " MyDefaultTheme "> Shell prefpane dan menambahkan:
source .bashrc && clear
agar berfungsi ...
Ini tampak aneh karena banyak tutorial hanya mengatakan Anda hanya perlu menambahkan .bashrc
file dan semuanya baik-baik saja.
Perhatikan bahwa saya tidak menjalankan bash
ketika menggunakan terminal, saya suka yang lain (default) yang lebih baik (tidak tahu apa itu) lebih baik, karena itu menunjukkan kepada saya di mana saya sepanjang waktu misalnya:
>>d54c6b47b:~ romeo$
dari pada:
>>bash$
Dalam bash semua dimuat sebagaimana mestinya.
Jadi pertanyaan saya adalah, mengapa .bashrc
file saya tidak dimuat secara otomatis dan apakah saya harus menambahkan opsi untuk menyebutnya setiap kali?
Juga beberapa tutorial mengatakan kepada saya untuk melakukan sesuatu seperti:
$alias la=’ls -la’ >> ~/.bashrc
yang seharusnya menulis alias ke saya .bashrc
, ini juga tidak berfungsi ...
Perhatikan bahwa saya seorang pemula UNIX, jadi bersikaplah lembut.
sumber
.bashrc
" tapi itu saja.csh
(atau varian lain). Tetapi Anda harus tahu bahwa itu>>bash$
bisa diubah :).profile
di direktori home AndaJawaban:
Masukkan saja ke dalam
.profile
file Anda dari direktori home Anda dan itu akan berfungsi pada saat Anda memulai shell baru atau setelah Anda menjalankannyasource ~/.profile
Tautan ini dengan jelas menyatakan urutan di mana file startup dibaca dan dimuat oleh shell: http://hayne.net/MacDev/Notes/unixFAQ.html#shellStartup
sumber
~/.bashrc
. Namun, solusinya bukan hanya menempatkan.bashrc
konten Anda ke dalam file startup login, karena dua file ini dimaksudkan untuk melakukan berbagai jenis pengaturan. Alih-alih, pengaturan kanonik untuk Bash adalah memiliki~/.bash_profile
sumber Anda~/.bashrc
pada titik yang tepat dalam skrip (biasanya terakhir).Pernah ke sana, melakukan itu. Apa yang saya sadari, OS X tidak membaca
.bashrc
file saat bash start. Sebagai gantinya, ia membaca file-file berikut (dalam urutan berikut):/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
Lihat juga komentar informatif dan berguna Chris Johnsen :
Saya biasanya hanya meletakkan hal-hal yang biasanya saya masukkan
~/.bashrc
ke~/.profile
- telah bekerja sejauh pesona.sumber
/usr/bin/login
, yang menjadikan shell sebagai shell login. Pada setiap platform (bukan hanya Mac OS X) pesta tidak menggunakan.bashrc
kerang login (hanya/etc/profile
dan pertama.bash_profile
,.bash_login
,.profile
yang ada dan dapat dibaca). Inilah sebabnya mengapa "memasukkansource ~/.bashrc
Anda.bash_profile
" adalah saran standar.~/.bash_profile
,~/.profile
,~/.bash_login
, tidak pernah semua mereka. Anda dapat menjalankan tes sederhana dengan membuat 3 file. Sepertinya terminal pesta memiliki preferensi~/.bash_profile
>~/.bash_login
>~/.profile
. Jika salah satu dari mereka ada, yang kurang disukai akan dilewati. Itu sebabnya kadang-kadang dianjurkan untuk juga sumber~/.profile
di~/.bash_profile
.Saya memasukkan semuanya ke dalam
~/.bashrc
dan hanyasource ~/.bashrc
profil.Ini memungkinkan sesi layar dan xterm (dan saya kira tmux) mewarisi lingkungan saya karena sesi non-login hanya berjalan
.bashrc
, sedangkan sesi login (mis. Terminal atau iTerm) hanya berjalan.profile
.sumber
.profile
umum untuk beberapa shell dan hanya boleh berisi kode sh yang kompatibel dengan POSIX. Jika sumbernya.bashrc
bisa dibilang mengandung kode spesifik-Bash (keberadaan.bashrc
file itu spesifik-Bash). Saya sarankan mengubah nama Anda.profile
menjadi.bash_profile
karena Anda menggunakannya dengan cara spesifik-Bash. Atau, masukkan kode generik.profile
dan buat.bash_profile
sumber itu.profile
dan.bashrc
.Ada dua skenario:
Untuk kedua Anda ingin sumber
~/.bashrc
di profil Anda yang dimuat, atau bersumber, ketika shell Anda untuk terminal Anda mulai.LINUX
Di Linux,
~/.profile
secara otomatis sumber di shell Anda ketika dimulai. Jadi, jika Anda pergi ke terminal dan mengetikcd ~; ls -A
, Anda akan melihat semua file dan direktori di direktori home Anda (/home/usrname/
). Anda akan melihat file bernama.profile
. Ini adalah file yang secara otomatis "bersumber" ketika Anda memulai terminal.Jika Anda ingin menambahkan alias dan fungsi ke
~/.bashrc
(yang saya lakukan), maka Anda harus (di dalam~/.profile
menambahkan pernyataan if yang memeriksa apakah~/.bashrc
file non-kosong dan kemudian sumber itu.Untuk memeriksa apakah Anda
~/.profile
sudah memasukkan ininano ~/.profile
. Ini akan membukanya di editor teks (Anda dapat menggunakan gedit jika Anda tahu Anda memilikinya atau bahkan vim jika Anda tahu cara menggunakannya). Anda mungkin mendapatkan file teks kosong (Anda seharusnya tidak), tetapi jika Anda hanya melanjutkan. Jika Anda tidak melihat garis di mana pun yang mengatakansource ~/.bashrc
, masukkan baris berikut di suatu tempat (letakkan di tempat yang wajar seperti di akhir atau awal dan bukan di tengah-tengah pernyataan if):Ini memeriksa apakah
~/.bashrc
file tersebut tidak kosong (dengan jika[ -s ~/.bashrc ]
), dan jika memang demikian, maka akan diambil sumbernya. Cukup mudah. Sekarang, Anda dapat menambahkan alias, fungsi, variabel, dll ke~/.bashrc
.MAC OS X
Secara default, sumber Max OS X
~/.bash_profile
. Untuk dapat menambahkan sesuatu ke~/.bashrc
(yang, lagi-lagi, apa yang saya lakukan di OS X, juga), maka Anda mengikuti prosedur yang sama seperti linux. Di terminal masukkancd ~; nano .bash_profile
. Periksa baris yang mengatakansource ~/.bashrc
dan jika tidak ada tambahkan pernyataan if di atas (if [ -s ~/.bashrc ]; then source ~/.bashrc; fi
).CATATAN
Saat menulis pernyataan if, pastikan untuk meninggalkan ruang di antara semuanya pada dasarnya (misalnya
if [ -s ~/.bashrc]; then echo "found"; fi
tidak berfungsi karena tidak ada ruang antara~/.bashrc
dan]
- penerjemah akan berpikir ini adalah satu kata).Jika Anda ingin mengetahui cara memeriksa hal-hal dalam pernyataan if lebih baik, pergi ke terminal dan masukkan
man \[
; ini pada dasarnya memberi Anda run-down dari pernyataan if. Sebagai contoh,if [ -f /path/to/file ]; then echo "it's a file"; else echo "not a file"; fi
periksa apakah/path/to/file
file dan apakah dicetak ke stdout sesuai. Saya selalu merujuk ini juga untuk referensi yang lebih mudah dilihat dan cepat: 7.2. Menguji operator file .Saya harap ini membantu. Saya ingat betapa bingungnya saya ketika saya memulai semua hal ini (yang belum lama ini); jadi, semoga sukses dengan usaha UNIX masa depan Anda!
sumber
.profile
hanya bersumber jika shell Anda adalah shell login, jika.bashrc
tidak bersumberSourcing .profile di .bash_profile melakukannya untuk saya
sumber
.bashrc
dari Anda.bash_profile
dan bukan dari.profile
..bash_profile
khusus untuk Bash dan harus mencari dua lainnya.Saya menemukan bahwa setelah menginstal rvm (auto-installer, tidak ada pengeditan manual) itu telah membuat
~/.bash_login
file untuk dirinya sendiri, di mana saya sebelumnya tidak pernah memilikinya.Namun, ini berarti bahwa
~/.profile
pengaturan dan alias saya tidak lagi dimuat! Banyak pintasan menghilang. Saya pikir mereka berlari secara berurutan, tidak secara eksklusif: - /saya tambahkan
untuk
~/.bash_login
rantai hal-hal seperti yang saya harapkan.sumber
.profile
umum untuk beberapa shell yang berbeda dan hanya boleh berisi kode sh yang kompatibel dengan POSIX..bash_profile
khusus untuk Bash dan dapat berisi kode khusus untuk Bash. Secara umum, jika Anda menggunakan Bash Anda harus memilih.bash_profile
kecuali Anda berhati-hati untuk memastikan bahwa kode startup Anda tidak mengandung apa pun yang tergantung pada Bash. Program apa pun yang dibuat.bash_login
mungkin melakukannya karena mengandung kode khusus Bash, tetapi harus menyertakan kode ke sumber.profile
jika ada.Menempatkan ...
... masuk
~/.bashrc
, lalu sumber~/.bashrc
ke dalam saya~/.bash_profile
tidak berfungsi untuk program Terminal yang diinstal.Tapi kemudian saya pergi ke menu drop-down Edit> Preferensi Profil , Judul dan tab Perintah , dan memilih Jalankan perintah sebagai shell login dari bagian perintah dari halaman itu.
Setelah melakukannya, memulai terminal baru menunjukkan hasil yang diinginkan ketika saya mengetik
yaitu "rvm adalah fungsi". Itu tidak melakukan itu sampai saya membuat perubahan ini, dan itu satu-satunya perubahan yang saya buat setelah
.bash_profile
dan.bashrc
perubahan yang dijelaskan dalam jawaban lain di sini.sumber
Pertama-tama izinkan saya memberi tahu Anda bahwa itu
~/.bashrc
adalah file yang dieksekusi setiap kali shell kedua dipanggil (saat menjalankan skrip shell, misalnya), dan~/.profile
dipanggil pada setiap login.Jadi saya sarankan Anda untuk menulis
. ~/.bashrc
perintah di~/.profile
file Anda , dan perintah ini akan mengeksekusi file bashrc setiap kali Anda login.sumber
Saya mengalami masalah yang sama setelah menginstal rbenv di server jarak jauh saya (Digital Ocean) Ubuntu 16.04.
Entah bagaimana itu dibuat
~/.bash_profile
. Itu sama~/.bashrc
pada sistem OS X.Dan Ubuntu mulai membaca saja
~/.bash_profile
, tetapi tidak~/.bashrc
sebagaimana mestinya.Jadi saya hanya mencadangkan data saya
~/.bash_profile
dengan ini:Dan berganti nama menjadi tua
~/.bashrc
untuk~/.bash_profile
Itu berhasil untuk saya. Setelah login ssh saya memuat semuanya
~/.bashrc
.sumber
Dalam hal ini dapat membantu orang lain ...
Pastikan Anda mengedit
.bashrc
file yang tepat untuk pengguna yang tepat. Saya memiliki masalah serupa menggunakan Vagrant. Setelah menjalankan filevagrant ssh
saya.bashrc
tidak dijalankan. Solusinya sederhana karena saya pikir gelandangan masuk dengan pengguna bernama gelandangan, dan saya benar-benar masuk sebagai pengguna lain. Jadi saya mengedit.bashrc
file yang salah . Setelah mengedit.bashrc
file yang benar, alias saya dikenali.sumber
Omong-omong, jika Anda telah mengaktifkan ZSH, itu menggantikan bash!
Jadi semua
~/.bashrc
file itu tidak dimuat.Anda harus mengatur alias Anda
~/.zshrc
sebagai gantinya.sumber
Untuk tetap menggunakan login gaya OSX
.profile
dan mendukung perilaku bash normal,.bashrc
Anda dapat menggunakan.bashrc
file jika Anda beralih antara nix biasa dan OSX dengan memberikan tautan simbolis ke.bashrc
file yang dipanggil.bash_profile
. Pastikan file ini belum ada sebelum mencoba ini, tetapi ini adalah bagaimana saya melakukannya.sumber
.bash_profile
) dan inisialisasi berbeda di setiap level shell (.bashrc
)./ etc / bashrc adalah untuk profil global pada sistem mac. Anda dapat menambahkan: alias ls = "ls -G" di bagian atas file ini dan barang Anda, semua orang akan memiliki file dan folder berwarna pada sistem sehingga Anda tidak perlu mengatur apa pun tambahan untuk setiap pengguna individu. Anda juga akan melihat "sudo su -" untuk melakukan rooting dari diri Anda. Anda masih akan memiliki file dan folder berwarna tanpa sakit kepala tambahan.
Kiat lain yang menyenangkan: Saat menggunakan mac Iterm2, mengimpor profil warna akan membuat pewarnaan file dan folder segera sesuai dengan skema warna Anda setelah set opsi "/ etc / bashrc" ini.
sumber