Bir takma ad oluşturmak istiyorum rm bu komutu çalıştırdıktan sonra bir onay mesajına sahip olmak için komut. Bu yüzden böyle bir takma ad oluşturuyorum alias rm='rm -i'. Ama bildiğim kadarıyla bu geçici bir takma ad ve siz terminali kapatana kadar yaşıyor.
Açıklandığı gibi burada takma adı kalıcı olarak kaydetmek için çalıştırmam gerekiyor ~/.bash_aliases veya ~/.bashrc terminaldeki komutlar ve takma adımı oraya ekleyin. Ama idam ettiğimde ~/.bashrc Aşağıdaki hata iletisini alıyorum :
bash: /home/bakhtiyor/.bashrc: Permission denied
Kaçtığımda ~/.bash_aliases Bunun gibi başka bir hata mesajı alıyorum:
bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.
Takma ad oluşturmanın birçok yolu vardır. En çok kullanılan yollar şunlardır:
Takma adları doğrudan bilgisayarınıza ekleyin. ~/.bashrc dosya
Örneğin: bu satırı aşağıdakilere ekleyin: ~/.bashrc dosya
alias ll='ls -l'alias rm='rm -i'
Bir dahaki sefere (çıkış yaptıktan / giriş yaptıktan veya bitirdikten sonra . ~/.bashrc) yazarken rm bu rm -i komut yürütülecek.
İkinci yöntem, ayrı bir takma ad dosyası oluşturmanıza olanak tanır, böylece bunları koymak zorunda kalmazsınız .bashrc ama senin seçtiğin bir dosyaya. İlk olarak, düzenleme ~/.bashrc zaten mevcut değilse aşağıdaki satırları dosyalayın ve ekleyin veya varsa bunları kaldırın:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Kaydedin ve dosyayı kapatın. Bundan sonra tek yapmanız gereken bir ~/.bash_aliases dosyalayın ve takma adlarınızı ilk yöntemde belirtilen aynı biçimde ekleyin.
Bana öyle geliyor ki tek sorunun sadece yürütmeye çalışmak.yürütülebilir olmadığında bashrc. Ancak bunu yapmanın doğru yolu bu değildir; Bu dosyada bir değişiklik yaptığınızda, komutu "çalıştırmanız" gerekir:
source ~/.bashrc
Aksi takdirde, yalnızca yeni bir kabuk oluşturacak, dosyayı yeni kabuğun ortamında yürütecek, ardından çıktığında bu ortamı atacak ve böylece değişikliğinizi kaybedecektir. Komut dosyasını kaynak sağlayarak, geçerli kabuk içinde yürütür, böylece geçerli kalır.
İkinci hatanın bash_aliases mevcut olmadığı için olduğunu varsayıyorum. Bu gerekli değildir, sadece değişikliklerinizi ayrı ve düzenli tutmanız önerilir. Yalnızca varsa kullanılır ve bunun için sınamayı görebilirsiniz.bashrcname:
if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi
Bu, dosya ~/ ise diyor.bash_aliases var, sonra çalıştırın.
Bu, bir sunucuya uzaktan giriş yapmak ve ağ üzerinden "gedit" gibi guı uygulamalarını çalıştırabilmem için X11 iletmeyi etkinleştirmek için terminalde ("vps") birkaç harf yazmanın bir yolunu aradığım bir örnektir.
>>Komut / takma ad komutu ne olursa olsun, bu şekilde echo deyimi, tırnak işaretleri ve bir komutun çıktısını bir dosyaya () eklemek için sembol benim için çalışır. İhtiyacınız olan takma ad komutu için komutumu değiştirin ve terminalinize girin.
Hızlı bir şekilde yeni bir takma ad oluşturmak ve ardından takma ad tanımını yazmak için bu yararlı işlevi yazdım ~/.bash_aliases(eğer varsa) veya ~/.bashrc.
UÇ: Sağlamak ~/.bash_aliases var & amp; içinde yürütülür ~/.bashrc.
# -----------------------------------# Create a new permanent bash alias## @param $1 - name# @param $2 - definition# -----------------------------------new-alias () { if [ -z "$1" ]; then echo "alias name:" && read NAME else NAME=$1 fi if alias $NAME 2 > /dev/null > /dev/null; then echo "alias $NAME already exists - continue [y/n]?" && read YN case $YN in [Yy]* ) echo "okay, let's proceed.";; [Nn]* ) return;; * ) echo "invalid response." && return;; esac fi if [ -z "$2" ]; then echo "alias definition:" && read DEFINTION else DEFINTION="$2" fi if [ -f ~/.bash_aliases ]; then echo "alias $NAME=\"$DEFINTION\"" >> ~/.bash_aliases else echo "alias $NAME=\"$DEFINTION\"" >> ~/.bashrc fi alias $NAME="$DEFINTION"}
ruby kullanıyorsanız, aka'yı rubygem kullanarak yükleyebilirsiniz.
gem install aka2
kullanım
aka generate hello="echo helloworld" #add an aliasaka g hello="echo helloworld" #add alias for lazy peopleaka destroy hello #remove aliasaka d hello #remove alias for lazy people
rubygem, dot dosyanızı otomatik olarak kaynaklayacak, böylece buna ihtiyacınız olmayacak. Şuna bak.
Şimdi yazabilirsiniz cp $ngse/my_file /destination_directory/destination_filename siteler etkinleştirilmiş dizinden bir dosyayı bir hedefe kopyalamak için kullanılır.
Sen böyle bir şey yapana kadar bunların hiçbiri işe yaramayacak.:
exec bash
Alternatif olarak, yeniden oturum açabilir veya yeniden başlatabilirsiniz.
Hatırladığım kadarıyla, bashrc doğrudan takma adlar için kullanmamayı öneren bir satır var veya vardı. Bu çözüm harici bir dosya (lar) kullanmaktır. Bu foo ve bar takma adlar eklendi, ancak eklemek için baz bu bashrc dosya "kaynaklı" olmalıdır (veya yeni bir terminal açmanız yeterlidir). Örnek olarak: