.bashrc üzerine yazılmıştır ancak hala kaynaklanmaktadır - nasıl kurtarılabilir?


19

Genellikle takma ad vermek istediğim bir komut bulduğumda, .bashrc'ye böyle yankılarım:

[up button pressed to last command, then line edited so that it reads]
$echo "command-i-just-did" >> ~/.bashrc

Bunu yapmanın daha iyi bir yolu olabilir. Her neyse, şimdi tek bir şivron kullanarak tüm .rc dosyasının üzerine yazdım. Ancak, .bashrc hala güncel olduğundan, eski takma adlarımı hala kabul ediyor (şimdilik). Peki onu kurtarmanın bir yolu var mı?


6
echo "set -o noclobber" > ~/.bashrc(ikinci bir açılı ayraç eklemeyi unutmayın)
hhaamu


1
Gelecek için: Dosyalarınızı yedekleyin, böylece bu bir sorun oluşturmaz. Ayrıca, bu hızlı eklentiler için ayrı bir dosya oluşturmayı ve .bashrc gibi bir yere kaynak oluşturmayı düşünebilirsiniz. Temel bir güvenlik ağı sağlar ve gerektiğinde kolayca açıp kapatabilirsiniz.
Joe

2
Geçerli ayarlarınızı kaydedebilirsiniz, ancak ana bilgisayar, kullanıcı vb. Gibi yerel değişkenlere bağlı olan ve muhtemelen kurtarılamayacak .bashrcbir mantığınız varsa kaydedebilirsiniz . Asıl cevap, en son yedeklemenizden geri yüklemektir. Yakın zamanda bir yedeklemeniz var değil mi?
jw013

Yanıtlar:


22
  • alias parametresiz halihazırda tanımlanmış takma adların tanımlarını çıkarır.
  • declare -f o anda tanımlanmış fonksiyonların tanımlarını çıkarır.
  • export -p o anda tanımlanmış değişkenlerin tanımlarını çıkarır.

Tüm bu komutlar yeniden kullanılmaya hazır tanımları çıkarır, çıktılarını doğrudan yenisine yönlendirebilirsiniz ~/.bashrc.

Tüm listeler, başka yerlerde tanımlanmış birçok öğe içerir, örneğin /etc/profileve /etc/bash_completion. Bu yüzden listeyi manuel olarak temizlemeniz gerekecek.


3
.bashrcSisteminiz için varsayılandan başlamanızı da öneririm . Debian'da var /etc/skelya da yeni bir kullanıcı oluşturmak için mümkünse yeni bir kullanıcı oluşturabilirsiniz .bashrc.
enzotib

1
setve declare(bağımsız değişkenler olmadan) tüm bunları bir defada görüntüler.
rozcietrzewiacz

@enzotib, harika bir fikir. varsayılan .bashrc nerede olacağını merak ettiniz ...
ixtmixilix

1

typeset -f > .bashrc tüm takma adlar sağlayarak bunu yapmalısınız.


functionsKomut benim için yok 4.2.10(2)-release. Muhtemelen demek istiyorsun declare -f.
Chris Down

Aslında, "f-dizgi" demek istedim
Paul Tomblin
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.