Nasıl kalıcı bir Bash takma adı oluştururum?

306

Bu komutu yürüttükten sonra bir onay mesajına sahip olmak için rm komutuna bir takma ad oluşturmak istiyorum. Bu yüzden, alias rm='rm -i' gibi bir takma ad oluşturuyorum. Ama bildiğim kadarıyla bu geçici bir takma addır ve siz terminali kapatana kadar yaşıyor.

burada takma adın kalıcı olarak saklanması için% co_de dosyasını çalıştırmam gerekiyor Terminalde% veya ~/.bash_aliases komutları ve takma adımı buraya ekleyin. Ancak ~/.bashrc çalıştırdığımda aşağıdaki hata iletisini alıyorum:

bash: /home/bakhtiyor/.bashrc: Permission denied

~/.bashrc çalıştırdığımda böyle bir hata mesajı alıyorum:

bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.

Asıl sorun nedir ve nasıl çözebilirim?

    
sordu Bakhtiyor 15.12.2010 08:54

8 cevap

341

Takma ad oluşturmak için takma adınızı .bashrc dosyanıza kalıcı olarak ekleyin

gedit ~/.bashrc

Sonra da takma adınızı aşağıya ekleyin.

Şimdi terminalinizde . ~/.bashrc yürütün ( . ile ~/.bashrc arasında bir boşluk olmalıdır.

Artık takma adınızı kontrol edebilirsiniz.

    
verilen cevap karthick87 15.12.2010 09:24
204

Takma ad oluşturmak için birçok yol var. En çok kullanılan yollar:

  1. Takma adları doğrudan ~/.bashrc dosyanıza ekleyin

    Örneğin, bu satırı ~/.bashrc dosyasına ekleyin

    alias ll='ls -l'
    alias rm='rm -i'
    

    Bir dahaki sefere (% ko_de% yazdığınızda . ~/.bashrc komutu giriş / çıkış yaptıktan veya rm yaptıktan sonra).

  2. İkinci yöntem, ayrı bir takma ad dosyası oluşturmanıza olanak tanır. Bu nedenle, bunları rm -i 'ye, ancak seçtiğiniz bir dosyaya koymanıza gerek kalmaz. Öncelikle, .bashrc dosyanızı düzenleyin ve eğer şu anda değilse aşağıdaki satırları ekleyin ya da unfolment edin

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

    Kaydedin ve dosyayı kapatın. Bundan sonra, yapmanız gereken tek şey ~/.bashrc dosyası oluşturmak ve buradaki adlarınızı ilk yöntemde belirtilen aynı biçimde eklemek.

    ~/.bash_aliases dosyamın içeriği:

    alias cs='cd;ls'
    
verilen cevap aneeshep 15.12.2010 09:21
17

Sorun, çalıştırılamayan bir dosyayı çalıştırmaya çalıştığınızdır: Bunu şununla kontrol edebilirsiniz:

ls -la ~/.bashrc
-rw-r--r-- 1 username username 3596 2010-08-05 17:17 /home/pt001424/.bashrc

İlk sütunda (dosya izinleri) "x - yürütülebilir" harfi olmadığına dikkat edin.

Profil dosyaları yürütülebilir dosyalar değildir, bunları yürütmek yerine bunları yüklersiniz:

source /home/bakhtiyor/.bashrc

veya

. /home/bakhtiyor/.bashrc
    
verilen cevap João Pinto 15.12.2010 11:24
15

Bana göre tek sorun, sadece yürütülebilir değilken .bashrc çalıştırmaya çalışıyor. Ama bunu yapmanın doğru yolu bu değil; Bu dosyada bir değişiklik yaptığınızda, bunu komutla "yürütmelisiniz":

source ~/.bashrc

Aksi takdirde, yeni bir kabuk oluşturacak, dosyayı yeni kabuğun ortamında yürütecek, ardından çıktığı zaman bu ortamı silecektir, böylece değişikliğinizi kaybedeceksiniz. Komutu kaynak olarak, geçerli kabuk içinde yürütür, böylece geçerli kalır.

İkinci hatayı varsayıyorum çünkü bash_aliases mevcut değil. Gerekli değildir, değişikliklerinizi ayrı ve düzenli tutmanız önerilir. Yalnızca mevcutsa kullanılır ve bunun için testin .bashrc'de görülebilir:

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

Bu, ~ / .bash_aliases dosyasının mevcut olması durumunda çalıştırıldığını söylüyor.

    
verilen cevap Marty Fried 16.01.2012 21:29
8
echo "alias vps='ssh -X [email protected]'" >> ~/.bashrc

Bu, aradığım örnekte, bir sunucuya uzaktan giriş yapmak ve X11 iletimini etkinleştirmek için terminalde bir kaç harf ("vps") yazmanın bir yolu, böylece "gedit" gibi gui uygulamalarını çalıştırabiliyorum. ağ.

Komut / aliased komutu ne olursa olsun, echo ifadesi, tırnak işaretleri ve bir komutun çıktısını bir dosyaya eklemek için kullanılan simge (& gt; & gt;), benim için çalışır. Komutu ihtiyacın olan takma komut için değiştir ve terminaline gir.

    
verilen cevap user80638 15.06.2013 13:39
5

Bu küçük fonksiyonu .bashrc’ye hızlı bir şekilde yazmak için yaptım.

##------------------------------------ ##
 #           -- new-alias --           #
 # creates new alias & writes to file  #
 #           = alias new             #
 #           = alias definition      #
##------------------------------------ ##
new-alias () { 
  if [ -z "" ]; then
    echo "alias name:"
    read NAME
  else
    NAME=
  fi

  if [ -z "" ]; then
    echo "alias definition:"
    read DEFINTION
  else
    if [ "" = "-cd" ]; then
      DEFINTION='cd '
    else
      DEFINTION=
    fi
  fi

  echo "alias $NAME='$DEFINTION'" >> ~/.bashrc
  . ~/.bashrc
}
    
verilen cevap blizzrdof77 17.12.2013 21:37
4

Ruby kullanıyorsanız, Ruby'yi rubygem kullanarak kurabilirsiniz.

gem install aka2

kullanımı

aka generate hello="echo helloworld" #add an alias
aka g hello="echo helloworld"  #add alias for lazy people

aka destroy hello #remove alias
aka d hello #remove alias for lazy people

rubygem, nokta dosyanızın otomatik olarak kaynaklanmasını sağlamanıza gerek kalmayacak. Buna bir bak.

    
verilen cevap ytbryan 21.01.2015 15:14
0

/etc/bash.bashrc

kullanılmasını öneririm

Söz konusu dosyanın sonuna satır ekleyebilirsin.

alias ok="ping google.com"

Takma adları her satırda yazdıktan sonra yeniden başlatmanız veya yeniden adlandırmanız gerekir.

    
verilen cevap Fahad Ahammed 09.08.2015 05:36

Etiketlerdeki diğer soruları oku