Apa itu file .bashrc dan apa fungsinya?

21

Sepertinya saya tidak dapat menemukan informasi yang jelas tentang apa .bashrcfile tersebut dan apa fungsinya sebenarnya.


Terima kasih atas semua bantuannya sejauh ini. Tampaknya skrip ini melakukan semuanya mulai dari pewarnaan, penyelesaian, alias, dan riwayat shell, dll. Apakah ada sesuatu yang tampaknya tidak berguna?

Justin
sumber
4
.bashrcadalah salah satu dari banyak file konfigurasi bash. Lihat dokumentasi resmi tentang Bash Startup Files .
muru

Jawaban:

21

The .bashrcfile script yang dieksekusi setiap kali sesi terminal baru dimulai pada modus interaktif . Inilah yang terjadi ketika Anda membuka jendela terminal baru dengan menekan Ctrl+ Alt+ T, atau hanya membuka tab terminal baru.

Sebaliknya sesi terminal dalam mode login akan menanyakan nama pengguna dan kata sandi dan menjalankan ~/.bash_profileskrip. Inilah yang terjadi, misalnya, ketika Anda masuk ke sistem jarak jauh melalui SSH.

The .bashrcfile itu sendiri berisi serangkaian konfigurasi untuk sesi terminal. Ini termasuk mengatur atau mengaktifkan: pewarnaan, penyelesaian, riwayat shell, alias alias dan banyak lagi. The .bashrcfile terdistribusi dengan Ubuntu banyak komentar dan Anda akan dapat memahami sebagian dari apa yang dilakukannya hanya dengan membacanya.

Anda dapat mengubah .bashrcsesuai keinginan Anda. Di sini Anda bisa mendapatkan contoh dengan banyak fitur tambahan.

Luís de Sousa
sumber
Tautan rusak.
rab
1
Tautannya berfungsi.
Luís de Sousa
Dalam halaman itu file unduhan tidak berfungsi.
rab
1
Baik tautan maupun unduhannya berfungsi dengan baik
M. Becerra
5

Pertanyaan tentang pengguna super - Apakah file .bashrc itu? oleh @pineapple dan dijawab oleh @DigitalRoss

Sebenarnya, itu bashkhusus yang berbunyi .bashrc(dan /etc/bash.bashrc). Ada banyak cangkang yang berbeda.

Halaman bash man (oleh Brian Fox dan Chet Ramey; juga halaman info "Bash Startup Files" ) adalah referensi resmi:

Ketika shell interaktif yang bukan shell login dimulai, bash membaca dan mengeksekusi perintah dari ~/.bashrc, jika file itu ada. Ini dapat dihambat dengan menggunakan --norcopsi. The --rcfilepilihan file akan memaksa bash untuk membaca dan menjalankan perintah dari file bukan ~/.bashrc.

Ketika bash dimulai secara non-interaktif, untuk menjalankan skrip shell, misalnya, ia mencari variabel BASH_ENVdi lingkungan, memperluas nilainya jika muncul di sana, dan menggunakan nilai yang diperluas sebagai nama file untuk dibaca dan dieksekusi. Bash berperilaku seolah-olah perintah berikut dijalankan:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi  

tetapi nilai PATHvariabel tidak digunakan untuk mencari nama file.

File ini hanya perintah shell. Biasanya digunakan untuk mengubah prompt, mengatur variabel lingkungan, dan mendefinisikan prosedur shell. Secara tradisional, file .profiledigunakan untuk tujuan ini, tetapi bashmemiliki banyak ekstensi yang membutuhkan file startup sendiri untuk pengguna yang ingin menempatkan bashism dalam file startup.

" Bukan shell login " berarti hal-hal seperti peluncuran skrip dan biasanya terminal windows dimulai oleh manajer jendela. Kadang-kadang saya mengatur sistem * nix untuk memiliki .bashrcdan BASH_ENVsumber saja .profile. Selama Anda tidak keluar dari perintah shell POSIX maka Anda akan mendapatkan inisialisasi yang sama di setiap shell.

Ini sangat berharga ketika shbenar-benar bash, yang kadang-kadang terjadi. Untuk melakukan ini gunakan:

. .profile

Salah satu alasan ini semua sangat kompleks adalah karena kadang-kadang orang memasukkan hal-hal yang menghasilkan output ke file startup shell, atau mereka tanpa syarat mengatur prompt. Ini menyebabkan banyak masalah saat menjalankan program shell dan perintah backtick dalam bahasa, belum lagi system(3)dari program C. Cara bashmemulai dirancang, saya pikir, memiliki satu file di mana pengaturan output dan prompt OK dan satu file di mana tidak. Secara tradisional, tes run-time akan dilakukan untuk membedakan interaktivitas, misalnya, memeriksa untuk melihat apakah prompt diatur.

αғsнιη
sumber