it-swarm-tr.com

.Bashrc dosyasi nedir?

Unix kabuklarını başlatırken .bashrc dosyasını okuyun ve içine yazılmış komutları uygulayın. Bu dosya nedir ve ne yürütür?

97
pineapple

Aslında, bash özellikle .bashrc (ve /etc/bash.bashrc) yazan şeydir. Çok farklı mermiler var.

bash man sayfası (Brian Fox ve Chet Ramey tarafından; ayrıca bilgi sayfası "Bash Başlangıç ​​Dosyaları" ) yetkili referanstır:

Oturum açma Shell'i olmayan etkileşimli bir Shell başlatıldığında, bash, eğer varsa, ~/.bashrc dosyasındaki komutları okur ve yürütür. Bu, --norc seçeneği kullanılarak engellenebilir. --rcfile dosya seçeneği bash'ı ~/.bashrc yerine dosyadan komutları okumaya ve yürütmeye zorlar.

Bash etkileşimli olmayan bir şekilde başlatıldığında, bir Shell betiğini çalıştırmak için, örneğin, ortamdaki BASH_ENV değişkenini arar, orada görünürse değerini genişletir 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şkeninin değeri, dosya adını aramak için kullanılmaz.

Dosya sadece Shell komutlarıdır. Genellikle istemleri değiştirmek, ortam değişkenlerini ayarlamak ve Shell prosedürlerini tanımlamak için kullanılır. Geleneksel olarak, .profile dosyası bu amaç için kullanılır, ancak bash, bashisms dosyasını başlangıç ​​dosyalarına koymak isteyen kullanıcılar için kendi başlangıç ​​dosyasına ihtiyaç duyacak kadar çok uzantıya sahiptir.

" Giriş değil Shell " komut dosyası başlatılıyor ve genellikle pencere yöneticileri tarafından başlatılan terminal pencereleri gibi şeyler anlamına gelir. Bazen * nix sistemlerini .bashrc ve BASH_ENV 'nin sadece .profile kaynak olması için kurdum. POSIX Shell komutlarının dışına çıkmadığınız sürece, aynı başlatmayı herhangi bir Shell'de alırsınız.

sh gerçekten bash olduğunda, bu bazen değerlidir. Bu kullanımı yapmak için:

. .profile

Bunların karmaşık olmasının bir nedeni, bazen insanların çıktı üreten şeyleri Shell başlangıç ​​dosyalarına koymaları veya koşulsuz olarak bilgi istemeleri oluşturmalarıdır. Bu, C programlarından system(3)'dan bahsetmek yerine, Shell programlarını ve dillerdeki backtick komutlarını çalıştırırken çok fazla soruna neden olur. bash işlevinin başlatılma şekli, çıktı ve bilgi istemi ayarlarının tamam olduğu bir dosyaya ve olmadığı bir dosyaya sahip olacak şekilde tasarlanmıştır. Geleneksel olarak, etkileşimin ayırt edilmesi için bir çalışma zamanı testi yapılır, örneğin İstemin ayarlanmış olup olmadığının kontrolü.

64
DigitalRoss

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ırada ~/.bash_profile, ~/.bash_login ve ~/.profile ifadelerini arar ve var olan ve okunabilen ilk komuttan komutları okur ve uygular.

Bir giriş kabuğu çıktığında, Bash ~/.bash_logout dosyasındaki komutları okur ve yürütür.

Oturum açma Shell'i olmayan etkileşimli bir Shell 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 çalıştırması 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 $ "
12
randomx

Shell'iniz için çeşitli "başlatma" komutları içermelidir;

  • Yararlı takma adlar oluşturma (örneğin, alias ll='ls -l').
  • PATH'a daha fazla dizin eklemek.
  • Yeni ortam değişkenlerini ayarlamak.
10
Roman Zeyde