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 dimiliki .bashrcdan BASH_ENVsumbernya 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 terkadang 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.
Jawaban yang bagus. Hanya beberapa kutipan: File ini hanya perintah shell. Biasanya digunakan untuk mengubah prompt, mengatur variabel lingkungan, dan mendefinisikan prosedur shell.
smwikipedia
2
Adakah yang tahu apa arti bagian rc dari .bashrc / .zshrc?
Ketika Bash dimulai, ia mengeksekusi perintah dalam berbagai skrip yang berbeda.
Ketika Bash dipanggil sebagai shell login interaktif, ia pertama kali membaca dan mengeksekusi perintah dari file / etc / profile, jika file itu ada. Setelah membaca file itu, ia mencari ~ / .bash_profile, ~ / .bash_login, dan ~ / .profile, dalam urutan itu, dan membaca serta mengeksekusi perintah dari yang pertama yang ada dan dapat dibaca.
Ketika shell login keluar, Bash membaca dan mengeksekusi perintah dari file ~ / .bash_logout, jika ada.
Ketika shell interaktif yang bukan shell login dimulai, Bash membaca dan mengeksekusi perintah dari ~ / .bashrc, jika file itu ada. Ini dapat dihambat dengan menggunakan opsi --norc. Opsi file --rcfile akan memaksa Bash untuk membaca dan menjalankan perintah dari file daripada ~ / .bashrc.
@pineapple: Sebuah alias adalah cara untuk menjalankan perintah, yang mungkin panjang, dengan yang lebih pendek. Misalnya, alias ll='ls -l'memungkinkan Anda mengetik lluntuk menjalankan ls -lperintah.
Jawaban:
Sebenarnya, secara
bash
khusus 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:
File ini hanya perintah shell. Biasanya digunakan untuk mengubah prompt, mengatur variabel lingkungan, dan mendefinisikan prosedur shell. Secara tradisional, file
.profile
digunakan untuk tujuan ini, tetapibash
memiliki 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 dimiliki
.bashrc
danBASH_ENV
sumbernya saja.profile
. Selama Anda tidak keluar dari perintah shell POSIX maka Anda akan mendapatkan inisialisasi yang sama di setiap shell.Ini sangat berharga ketika
sh
benar-benarbash
, yang terkadang terjadi. Untuk melakukan ini gunakan: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. Carabash
memulai 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.sumber
http://en.wikipedia.org/wiki/Bash_(Unix_shell)
Berikut beberapa trik dan kiatnya:
http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
Mari kita coba atur prompt sehingga dapat menampilkan tanggal dan nama host hari ini:
sumber
.profile
setelah.bash_profile
? Ada logika?Itu harus berisi berbagai perintah "inisialisasi" untuk shell Anda, misalnya:
alias ll='ls -l'
).sumber
ll='ls -l'
memungkinkan Anda mengetikll
untuk menjalankanls -l
perintah.