Yanıtlar:
Aslında, bash
özellikle okur .bashrc
(ve /etc/bash.bashrc
). Çok farklı mermiler var.
Bash adam sayfası (Brian Fox ve Chet Ramey tarafından; ayrıca bilgi sayfası "Bash Başlatma Dosyaları" ) yetkili referanstır:
Oturum açma kabuğu olmayan etkileşimli bir kabuk başlatıldığında, bash
~/.bashrc
bu dosya varsa, komutları okur ve yürütür . Bu--norc
seçenek kullanılarak engellenebilir .--rcfile
Dosya seçeneği okuyup yerine dosyadan komutları yürütmek için bash zorlar~/.bashrc
.Bash etkileşimli olmayan bir şekilde başlatıldığında, bir kabuk betiğini çalıştırmak, örneğin,
BASH_ENV
ortamdaki değişkeni arar , orada görünürse değerini artırır ve genişletilmiş değeri okumak ve yürütmek için bir dosyanın adı olarak kullanır. Bash, aşağıdaki komut yürütülmüş gibi davranır:if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
ancak
PATH
değişkenin değeri dosya adını aramak için kullanılmaz.
Dosya sadece kabuk komutlarıdır. Genellikle istemleri değiştirmek, ortam değişkenlerini ayarlamak ve kabuk prosedürlerini tanımlamak için kullanılır. Geleneksel olarak, dosya .profile
bu amaç için kullanılır, ancak başlangıç dosyalarına temelbash
oluşturmak isteyen kullanıcılar için kendi başlangıç dosyasına ihtiyaç duyacak kadar uzantıya sahiptir.
" Giriş kabuğu değil ", komut dosyası başlatması ve genellikle pencere yöneticileri tarafından başlatılan terminal pencereleri gibi şeyler anlamına gelir. Bazen * nix sistemlerini kurdum .bashrc
ve BASH_ENV
sadece kaynak kullandım .profile
. POSIX kabuk komutlarının dışında kalmadığınız sürece, aynı başlatmayı herhangi bir kabukta alırsınız.
sh
Gerçekten de bash
, bazen olduğu zaman , özellikle değerlidir . Bu kullanımı yapmak için:
. .profile
Bunların bu kadar karmaşık olmasının bir nedeni, bazen insanların çıktı üreten şeyleri kabuk başlangıç dosyalarına koymaları veya koşulsuz olarak bilgi istemleri oluşturmalarıdır. Bu system(3)
, C programlarından bahsetmek yerine, kabuk programları ve dillerdeki backtick komutlarını çalıştırırken çok fazla soruna neden olur . Başlangıç şekli bash
, çıktı ve bilgi istemi ayarının tamam olduğu bir dosyaya ve olmadığı bir dosyaya sahip olmak için tasarlanmıştır. Geleneksel olarak, etkileşimin ayırt edilmesi için bir çalışma zamanı testi yapılır, örneğin komut isteminin ayarlanıp ayarlanmadığını kontrol edin.
Bash başladığında, komutları çeşitli komut dosyalarında yürütür.
Bash etkileşimli bir giriş kabuğu olarak çağrıldığında, ilk önce / etc / profile dosyasındaki komutları okur ve çalıştırır. Bu dosyayı okuduktan sonra, bu sırayla ~ / .bash_profile, ~ / .bash_login ve ~ / .profile ifadelerini arar ve var olan ve okunabilen ilk komuttan komutları okur ve yürütür.
Bir giriş kabuğu çıktığında Bash, varsa ~ / .bash_logout dosyasındaki komutları okur ve yürütür.
Oturum açma kabuğu olmayan etkileşimli bir kabuk başlatıldığında, Bash eğer varsa, ~ / .bashrc komutlarını okur ve yürütür. Bu --norc seçeneği kullanılarak engellenebilir. --Rcfile dosyası seçeneği, Bash'i ~ / .bashrc yerine dosyadan komutları okuması ve yürütmesi için zorlar.
http://en.wikipedia.org/wiki/Bash_(Unix_shell)
İşte bazı püf noktaları ve ipuçları:
http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
İstemi, bugünün tarihini ve ana bilgisayar adını görüntüleyebilecek şekilde ayarlamaya çalışalım:
PS1="\d \h $ "
.profile
sonra .bash_profile
? Herhangi bir mantık?
Kabuğunuz için çeşitli "başlatma" komutları içermelidir, örneğin:
alias ll='ls -l'
).ll='ls -l'
yazmanıza izin verir . ll
ls -l