Unix / Linux'ta özel komutlar nasıl oluşturulur? [kapalı]


55

Birisi bana Unix / Linux'ta özel komutlar oluşturma konusunda rehberlik edebilir.


2
Gelecekte başvurmak için gerçekler sayfasına bakmalısınız. Sorularınıza yazmanız gereken şeyleri açıklar. (araştırıp denediğiniz şeyleri yayınlamak gibi). Muhtemelen birileri bu soruyu aşağı oy kullandı.
spuder

Yanıtlar:


68

/ Usr / bin klasöründe bir bash betiği oluşturun, bunun gibi görünmesi gerekir

#!/bin/bash
Whatever combination of commands you want to run when you type this thing.

Gerçekten bu kadar kolay.

Sadece bash betiğini terminale yazmak istediğiniz ismi yazın ve istisnai hale getirin: chmod +x filenameve gitmeniz iyi olur!


1
Bunu gerekli her adımı içeren bir adım adım rehber olarak değiştirebilir misiniz? Kendi özel komutumu nasıl yapacağımı hala bilmiyorum.
Yoda

5
@AndersMB, bir kitap okumanız gerekiyor . Çok iyi olanlar var, hatta bedava. "Linux Komut Satırı" ile başlayın .
Joker,

Umm .. şaka yapıyordu. He oldu şaka, sağ ?!
Somenath Sinha 29:17

1
ile yürütmek./filename
Squirrl

46
  1. Ev dizininizin altında "bin" diyen bir dizin oluşturun.
  2. Bu bin dizinini içerecek şekilde yol değişkeninizi güncelleyin. Kalıcı yapmak için bunu .profileveya .bash_profledosyaya koyun .

    export PATH=$PATH":$HOME/bin"

  3. "Merhaba" diyen bir komut dosyası oluşturun ve onu bin dizininizde tutun. Merhaba komut dosyasına yürütme izni verin $ chmod +x hello.

    #!/bin/bash    
    echo My first program
  4. Yeniden yükle .profileveya .bash_profle:

    $ . ~/.bash_profile

  5. Herhangi bir dizinden, sadece şunu yazın:

    $ hello
    My first program

Bunun çok eski olduğunu biliyorum ama burada birçok yanıtla binklasör oluşturma önerinizi gördüm . .binBunun yerine herhangi bir sorun var mı bin? Nasıl homegöründüğüm konusunda çok seçiciyim ve sadece ekstra bir klasör istemiyorum.
MO,

Bunu başarısız bir şekilde kullanmayı denedim ve bir süredir zshkurulumumda yanlış bir şey olduğunu düşündüğüm için hayal kırıklığına uğradım ya da $PATHsonuçta chmod -x helloçalışmadığı, bir de sermaye yapmadığı sonucuna vardım -X. Bunun yerine denedim chmod 755 hello, bu komutla ilgili güvenlik risklerinden emin olmasam da, koşmama izin verdi hello. Bunun için bir açıklaması olan var mı? Sanırım yaş açısından bir sorun mu var?
ConstantFun

1
@ConstantFun chmod +x helloKomut dosyasına "çalıştırma" ayrıcalıkları eklemek için kullanın . chmod -x hellotam tersi yapar - 'çalışma' ayrıcalıklarını siler. (Cevaptaki ve yorumunuzdaki artı / eksi işareti farkına dikkat edin.)
Filip Mutlu,

25

Kolay, bir takma ad oluşturun.

İndirme dizininize cd komutunu yazmak istediğinizi söyleyin. Ve sen buna cdd demek istiyorsun.

alias cdd='cd ~/Downloads' 

İstediğiniz herhangi bir komutu oluşturabilirsiniz.

İşte daha fazla bilgi:
http://www.mediacollege.com/linux/command/alias.html


6
Ancak bu, oturumlar arasında sürmüyor. Bu komut işe yarıyor ama kalıcı değil. Daha kalıcı bir yol ~ / .bash_aliases dosyanızı değiştirip orada önerdiğiniz satırı eklemektir.
Jeff Grimes

2
Ayrıca ~ / .bashrc dosyasına ekleyerek çalışır
Delicia Brummitt

11

Çoğunlukla, hepsi olmasa da, Linux dağıtımları ~ / .bashrc'de neredeyse buna benzeyen küçük bir komut dosyasına sahiptir:

if [ -e ~/.bash_aliases ]
then
. ~/.bash_aliases
fi

Bu sadece kendi komutlarınızı yaratabileceğiniz anlamına gelir ( aliasesgenellikle ' ' olarak da bilinir, genellikle her zaman kullanmanız gereken bazı argümanlarla veya sırayla çalıştırılması gereken bir komut listesiyle varolan bir komuta atıfta bulunulur).

Linux dağıtımınız büyük olasılıkla, el ile yapmadığınız sürece evinizde oluşturulan .bash_aliases dosyasına sahip olmayacaktır. Böylece dosyayı oluşturmak için aşağıdaki komutu yazın:
touch ~/.bash_aliases

Şimdi bu dosya, yeni bir Terminali her kapatışınızda otomatik olarak yürütülecektir.

Şimdi yapabilecekleriniz bir takma ad listesi oluşturmak ve bunları daha sonra kullanmak üzere bu dosyaya eklemek. Örneğin, rmvarsayılan olarak (remove) komutu bir dosyayı / dizini silmenizi istediğinde isteğinizi onaylamanızı DEĞİLTİR. Ancak, rmisteğinizi onaylamanızı istemenizi söyleyen bir tartışma var -i. Böylece, rm -i filePathbelirtilen dosyayı silmek istediğinizden emin olup olmadığınızı soran bir mesaj görüntüler. Şimdi, bir dosyayı yanlışlıkla silmek durumundaysanız, -iseçeneği eklemeyi çok unutursunuz ve aliasorası çok faydalı olur. Aşağıdaki komutu yazmak

echo "alias rm='\rm -i'" >> ~/.bash_aliases

söyleyecektir BashBir dosyayı silmek için talep her zaman, bir teyit mesajı size gösterilebilen olacağı. Tabii ki, yapabileceğiniz daha çok şey var - bu sadece temel hususlar.

Eğer (yani bazı temel komutları nasıl kullanılacağını öğrenmek istiyorsanız cd, touch, rm, mkdir, pushd, popd, vb) ve / veya daha sofistike olanları aradım bir referans olarak kitaplık üzerinde sahip olabilen çok iyi bir kitap tavsiye ederim

linux için editörlere ve kabuk programlamaya pratik bir rehber , Mark G. Sobell . ISBN: 978-0133085044


1
neden ters eğik çizgi?
phil294
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.