Yeni takma adları ve işlevleri tanımladıktan sonra takma adları ve işlevleri yenile?


55

.bash_aliasesDosyada yeni bir takma ad veya dosyada yeni bir işlev tanımladığımda .bashrc, terminali kapatmadan yeni takma adları veya işlevleri hemen kullanabilmek için bazı yenileme komutları var mı (benim açımdan xfce4-terminali birkaç sekme açık, birçok dosya açık ve işin ortasında)?


6
Tüm açık terminallerinizde / sekmelerinizde bu yeni komutu bilmenizi sağlayacak bir komut olmadığını unutmayın. Yapacak gerekecek . .bashrcya source .bashrcher kabukta Açtığınız.
Paul Tomblin

Yanıtlar:


66

Değiştirilen dosyayı almak, mevcut terminaldeki yeni yazılmış diğer isme veya fonksiyona erişim sağlayacaktır, örneğin:

source ~/.bashrc

Alternatif bir sözdizimi:

. ~/.bashrc

Terminalinizde çalışan birçok bash örneği varsa (birden fazla sekmeden bahsettiniz), bunu her durumda çalıştırmanız gerekeceğini unutmayın.


3
sourcecsh türevidir. Bourne kabuğu yolu . .bashrc.
Paul Tomblin

Tanımladığımda bunun işe yaramaması ilginç alias prg='prg.py'. Terminali kapatmak zorundayım.
xralf

“Bunu her durumda çalıştırmanız gerekecek.” - zsh kullanıcılarının TMOUT ve TRAPALRM'i stat'e uygun şekilde ayarlayabildiğini ve (gerekirse) saniyede bir kez ya da herhangi bir başka makul aralıkta ~ /. Ancak Bash'in bunu yapabileceğine inanmıyorum.
Kevin

6

. ~/.bashrcKomut satırında yazmak çalışacak .bashrcve bu dosyada tanımlanan fonksiyonlar oluşturulacaktır.

.bashrckendisi daha sonra da arayıp çalışacaktır .bash_aliases( eğer varsa eğer mevcutsa) .bashrciçinde bu kodu vardır:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

. ~/.bash_aliasesYalnız kullanmak (örneğin komut satırında) sadece .bash_aliases.bashrc kullanmadan denemeyi ve çalışmayı deneyecek ve eğer dosya mevcut değilse bir hata verecektir (bu nedenle, dosya kontrol testinde .bashrc).


2

Bazen bir takma adı bir işleve dönüştürmek isteyebilirsiniz, ancak bashrc dosyasını kaynakladığınızda garip bir hata oluşabilir:

. ~/.bashrc
bash: /home/username/.bashrc: line 38: syntax error near unexpected token `('
bash: /home/username/.bashrc: line 38: `hello_world() {'

Bu olabilir, takma ad yeni tanımlanmış fonksiyonun adıyla çakışıyor olabilir. Bildiğim kadarıyla, bundan kaçınmak için herşeyi eşitlemek gerekiyor, sonra bashrc dosyasını çalıştırın:

bash-4.3 $
unalias -a && . $HOME/.bashrc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.