Linux'ta Takma Adlar ve Kabuk İşlevleri Nasıl Oluşturulur?
GNU / Linux sisteminden en iyi şekilde yararlanmak istiyorsanız ve komut satırında ne kadar çok çalıştırılırsa, komut istemlerini ve kabuk betiklerini bilmek hala gereklidir. mevcut komutların küçük bir alt kümesi. Çoğu görev alışkanlıktır ve kullanıcı bunları her gün aynı şekilde çalıştırabilir.
En yaygın komut araçlarının çoğunun yapımcıları, kısaltılmış isimler, ör. liste yerine "ls"& Dizin değiştirme yerine"CD”. Ek olarak, birçok Linux kullanıcısının genellikle tek bir komutu tekrar tekrar kullanması gerekir. Aynı komutu tekrar tekrar yazmak / kopyalamak üretkenliği azaltır ve kullanıcının dikkatini fiili işten uzaklaştırır.
Bu uzun komutları yazmak için daha az zaman harcarsak harika olur. Komut satırında geçirdiğiniz zamanı en aza indirmenin iki güçlü yolu var: kabuk takma adları ve fonksiyonlar, Bu ikisini kullanarak, kullanıcı tekrarlayan görevleri Tame edebilir, uzun süreçleri kısaltabilir ve kullanıcının her zaman kullandığı ve hatırlamakta zorlandığı seçeneklerle özelleştirilmiş komutları yapılandırabilir.
Komutlarınızı özel ihtiyaçlarınıza göre tanımlayabilir ve tekrarlayan görevlerin yükünü hafifletebilirsiniz.
Takma adlar ve kabuk komut dosyaları, yani işlevler aynı işi yapar. Daha sonra ona verdiğiniz adla çağrılabilen bir Bash kabuğu işlevi kümesi tanımlamanıza ve adlandırmanıza olanak tanırlar. Adı yazmak, her kullanmak istediğinizde tüm adımları veya komutları yazmaktan daha kolay ve kullanışlıdır.
Takma ad ile işlev arasındaki fark, karmaşıklık ve ölçekten biridir. Komut dosyaları, daha uzun ve daha ayrıntılı kod parçalarını tutmada daha iyidir. Takma adlar, daha kısa, daha özlü komut kümelerini tutmak için mükemmeldir.
Kabuk Takma Adları
Kabuk takma adı, özel seçeneklerle veya özel seçenekler olmadan yürütülen bir komuta veya komut kümesine başvurmak için kullanılan özel bir kısayoldur. Bu takma adlar, sık sık yürütmeniz gereken uzun komutlar için alternatif, hatırlaması kolay adlardır. Komut satırına yazdığınızda, kabuk ilk olarak takma adlar listesinde yazdıklarınızı arar. Bir eşleşme bulunursa, bu, ilgili metniyle takma adla değiştirilir; bunu tamamladıktan sonra, sonuçta ortaya çıkan tüm komut satırına tekrar bakar ve onu çalıştırır.
Muhtemelen zaten kullanmış olabilirsiniz. takma adlar Linux sisteminde, çoğu Linux dağıtımı varsayılan olarak popüler takma adların en azından bazılarını ".bashrc ” kullanıcı hesabının dosyası.
Takma adların ötesinde: Kabuk işlevleri
Benzer ancak aynı olmayan kod blokları, Takma Adlarla değiştirilemez. Hataları işleyemezler veya özel çıkış kodları döndüremezler, akış kontrolü yapamazlar veya değişkenleri kullanamazlar. Bunlardan herhangi birini yapmanız gerekirse, kabuk işlevlerini kullanma zamanı.
Kabuk işlevleri, tam alt komut dosyaları olarak yapılandırılmış, bir kez yazılan ve ihtiyaç duyan herhangi bir komut dosyasından çağrılan kod bloklarıdır.
Diğer adların sözdizimi:
Bash'de takma adlar oluşturmak çok basittir. Sözdizimi aşağıdaki gibidir:
alias alias_name = ”command_to_run”
Mevcut oturumda yeni bir bash takma adı oluşturmak için
- Yaz "takma ad”
- Ardından takma adı bildirin
- Ardından eşittir işareti
- Ve takma ad çağrıldığında çalışacak komut.
Komut tırnak içine alınmalı ve eşittir işareti etrafında boşluk bırakılmamalıdır. Buradaki boşluklar komutu bozacaktır. Her takma ad yeni bir satırda bildirilmelidir.
Örnekle açıklığa kavuşturalım. Linux komut satırında en çok kullanılan komutlardan biri "ls”. Çoğunlukla "ls" komutu "laGizli dosyalar içeren tüm dosyaları ve dizinleri uzun liste biçiminde listeleyen "anahtarı. Şimdi basit bir bash takma adı oluşturacağız "ll"Bu, kısayol olacakls -la komut.
- Bir terminal penceresi
- Tür:
takma ad ll = "ls -la"
& basın giriş
- Şimdi konsolda "ll" ve bas giriş
- Çıktı, ls -la yazılmasıyla aynı olacaktır.
Yukarıda tanımlanan "ll" takma adı yalnızca mevcut kabuk oturumunda kullanılabilecektir. Oturumu veya başka bir terminalden başlatılan yeni bir oturum penceresini kapatırsanız, yukarıda tanımlanan "ll" takma adı kullanılamayacaktır.
Takma adı nasıl kalıcı kılacağımızı daha sonra tartışacağız. Buradaki örnekler bash kabuğu içindir, ancak tüm kavramlar ve kodun çoğu diğer kabuklar için de geçerlidir.
Önceden Tanımlanmış Takma Adlar
Bazı takma adlar sizin için önceden tanımlanmıştır. Sistemde tanımlanan tüm diğer adların listesini bilmek için, herhangi bir parametre olmadan "alias" komutunu kullanacağız:
takma ad
Bunlar, bu makalenin araştırıldığı Ubuntu test makinesindeki takma adlardır. Ayrıca, herhangi bir özel tanımlı takma ad da bu listede görünecektir.
Ls komutu için bir dizi farklı takma ad vardır ve grep komut ailesine renk çıkışı sağlayan bir grup takma ad vardır, ör. yukarıda tanımlandığı gibi takma adlarla, her yazdığınızda:
grep
Şu şekilde yorumlanacaktır:
grep --color = auto
Bu, takma adlarla ilgili önemli bir noktayı gösterir. Mevcut komutlarla aynı isme sahip olabilirler. Orijinal komutu kendi içlerinde bile barındırabilirler.
Grep takma adının tanımı burada.
takma ad grep = 'grep --color = auto'
- Alias komutu, bir takma adı tanımlamak için kullanılır.
- Diğer adın adı aşağıda verilmiştir. Bu örnekte "grep" dir.
- Eşittir işareti, takma adın adınıvücut diğer adın. Çok basit olan tüm diğer adlar için, takma adın gövdesi tek tırnak işaretleri içine alınmıştır '.
- Diğer adın gövdesi, komut satırında takma ad kullanıldığında yürütülen bölümdür.
- Bu takma adın gövdesi, grep komutunu –color = auto seçeneğiyle çağırır.
Uyarı Takma Adı
Girişin üst kısmında karmaşık görünümlü bir takma ad vardır.uyarmak. Hızlı bir şekilde ve ne yaptığını bilmeniz için uyarı takma adı, bir komutun ne zaman bittiğini size bildirmek için kullanılır. Ayrıca komutun başarıyla tamamlanıp tamamlanmadığını da gösterir. Ekranın üst kısmında bir grafik sistem uyarısı sağlar.
İşte basit bir örnek. Uyku komutu beş saniye boyunca uyuyacaktır. Daha sonra uyarı diğer adı çağrılacaktır. Diğer ad, önceki komuttan gelen yanıtı kontrol eder. Geçmiş dosyasından son komutu çıkarır. Komutun başarıyla tamamlanıp tamamlanmadığını belirler. Daha sonra sonuçları bir sistem uyarısında sunar.
Komut beklendiği gibi tamamlandıysa, sistem uyarısındaki simge küçük bir terminal penceresidir. Komut bir hata kodu döndürdüyse, sistem uyarısındaki simge kırmızı bir hata simgesidir.
uyku 5; uyarmak
Beş saniye sonra, şu sistem uyarısını görüyoruz:
Simge, her şeyin yolunda gittiği anlamına gelen küçük bir terminal penceresidir. Başarısız olacağını bildiğimiz bir komutla tekrar deneyelim:
Başarısızlığa mahkum; uyarmak
Sistem uyarımızda artık bir hata simgesi var.
Önemsiz Bir Takma Ad Tanımlama
Gördüğümüz gibi, bir takma ad tanımlamak için alias komutunu kullanıyoruz.
Net komut için bir takma ad oluşturacağız. Bizim takma adımız cls olarak adlandırılacak ve temiz komutunu arayacak.
Takma ad tanımımız o kadar önemsizdir ki, tek tırnak işaretleri arasına alınmayı garanti etmez. Diğer adın gövdesi bundan daha karmaşıksa veya boşluklar içeriyorsa, tek tırnak içine alın. Takma adı tanımlayacağız, terminal penceresine bazı çıktılar koymak için ls'yi kullanacağız ve ardından ekranı temizlemek için yeni takma adımızı kullanacağız.
alias cls = clear ls -l cls
Ekran temizlendi. Kısa ömürlü de olsa başarı. Takma ad, yalnızca bu terminal penceresi açık kaldığı sürece hayatta kalacaktır. Pencere kapatıldıktan sonra takma ad kaybolur.
".Bashrc" Dosyasını kullanarak Takma Adları kalıcı hale getirmek için
Önceden paketlenmiş takma adların nerede tanımlandığını merak ediyor olabilirsiniz. ana klasörünüzdeki ".bashrc" dosyasındadır. Bu dosya okunur ve etkileşimli bir kabuğu başlattığınızda içindeki komutlar yürütülür. Bu, bir terminal penceresi açtığınız zamandır.
Sözdizimi vurgulamalı “.bashrc” dosyasının içeriğini görmek için ana klasörünüze aşağıdaki komutu yazın.
gedit .bashrc
Bu başlatacakgedit".bashrc" dosyasıyla düzenleyiciye yüklenmiştir.
Vurgulanan alanlar, takma adların tanımlandığı iki alanı gösterir.
Belgede gezinmek, takma adlarla ilgili diğer iki bölümü ortaya çıkaracaktır:
Bunlardan ilki, uyarı takma adının tanımıdır. İkincisi, bir if ifadesidir. "Dosya" ise ".bash_aliases"Var, okuyun."
Yalnızca tanımlamak istediğiniz birkaç takma adınız varsa, bunları “.bashrc” dosyanıza koyabilirsiniz. Onları ls takma adlarını içeren bölümün altına yerleştirin.
Çok sayıda takma ad oluşturacaksanız veya takma adlarınızın kendi dosya içinde kapsüllenmesi fikrini seviyorsanız, bunları “.bash_aliases” dosyanızda tanımlayabilirsiniz. Bunları ".bash_aliases" dosyanızda oluşturmanın bir avantajı, ".bashrc" dosyasındaki herhangi bir ayarı yanlışlıkla değiştirememenizdir. Diğer bir avantaj ise, takma adlarınızın ".bashrc" dosyasından ayrı oldukları için kolayca yeni sistemlere kopyalanabilmesidir.
Takma ad, hatırlanması kolay bir şekilde adlandırılmalıdır. İleride başvurmak için bir yorum eklemeniz de önerilir.
Takma Adları .bash_aliases Dosyasında Saklama
".Bash_aliases" dosyası varsayılan olarak mevcut değildir, onu oluşturmanız gerekecektir. Dosyayı şu komutla oluşturabilirsiniz:
.bash_aliases'e dokunun
Dosyayı düzenleyelim ve ona birkaç takma ad ekleyelim. Bu komut, gedit düzenleyicide “.bash_aliases” dosyasını açacaktır.
gedit .bash_aliases
Üç takma ad ekledik. İlki bizimclsdaha önce kullandığımız takma ad. Bir sonraki denirh. ve geçmiş komutunu çağırmanın kısa bir yoludur.
Üçüncü takma ad denirftc. Bu, "dosya türü sayısı" anlamına gelir.
Bu takma ad daha kapsamlıdır, bu nedenle tek tırnak işaretleri arasına alınmıştır. Borularla birbirine bağlanmış bir komut zinciri kullanır. Her liste girişi için bir sayı ile farklı dosya uzantılarının ve dizin adlarının sıralı bir listesini üretir.
".Bash_aliases" dosyasını kaydettiğimizde, takma adlarımızın canlı ve erişilebilir olmasını bekleyebiliriz. Konu bu değil. Diğer ad tanımları yayınlanmadan önce dosyanın Bash kabuğu tarafından okunması gerekir. Bu, etkileşimli bir kabuk her açıldığında yapılır.
Ayrıca yerleşik Bash kabuğunu da kullanabiliriz. bir dosyadaki komutları okumak ve yürütmek için. ".Bash_alias" dosyamız ".bashrc" işlendiğinde okunduğu için, testimizi ".bashrc" çağırarak yapmalıyız. Bu şekilde ".bash_alias" dosyasının ".bashrc" den çağrıldığını ve takma adlarımızın canlı ve iyi durumda olup olmadığını kontrol edebiliriz.
Kullandığımız komutlar şunlardır:
gedit .bash_aliases
".Bash_aliases" dosyasını düzenlemek için.
. .bashrc
Bu okuyacak ve ".bashrc" içindeki komutları çalıştıracak ve ".bash_aliases" olarak adlandırılacaktır.
ftc
Bu ftc takma adını arayacaktır.
Takma adımız yanıt verir, bu da Bash'in hem ".bashrc" hem de ".bash_aliases" olarak okuduğu anlamına gelir ve yeni takma adlarımız artık yayında.
Şimdi devam edebilir ve aklınıza geldikçe ".bash_aliases" dosyasına yeni takma adlar ekleyebilirsiniz. Kendinizi bir veya iki defadan fazla yaparken bulursanız, bunun için bir takma ad yapmayı düşünün.
Takma Adları Kaldırma
Bash'in onları tanımaması veya yanıt vermemesi için takma adları kaldırmaya yönelik bir komut vardır. Canlandırıcı bir şekilde açık sözlü olarak, komut çağrılırtakma adlar.
Kullanmak için Bash'in unutmasını istediğiniz takma adın adını verin. Bash'in ftc takma adımızı unutmasını sağlamak için unalias kullanın, ör. önceden kullanılan "ll”Komutu:
unalias ll
Unalias'ı, tanımladığınız ve önceden tanımlanmış tüm diğer adları kaldırmak için kullanabilirsiniz.
Sisteminizden tüm diğer adları kaldırmak için -a (tümü) seçeneğini kullanın:
unalias -a
Bash’in hafıza kaybı kalıcı olmayacaktır. Bir sonraki terminal penceresini açtığınızda, "unutulmuş" diğer adlar geri gelecektir. Bunları gerçekten silmek için ".bashrc" ve ".bash_alias" dosyalarınızdan kaldırmanız gerekir.
Bunları geri almak isteyeceğinizi düşünüyorsanız, ".bashrc" dosyanızdan silmeyin. Bunun yerine, her takma ad satırının başına bir hash # ekleyerek bunları yorumlayın. ".Bash_alias" dosyanızı etkisiz hale getirmek için yeniden adlandırın. ".Bashrc" dosyanız onu göremiyorsa, okumaz. Takma adlarınızı eski haline getirmek için bu adımları tersine çevirmek önemsiz bir konudur.
Bir takma adı geçici olarak atlamak için (ls'yi ls -a'ya takma ad verdiğimizi söyleyin), şunu yazabiliriz:
\ ls
Sonuç olarak, normal komut, takma adlı sürüm değil çağrılacaktır.
Alias komutu için yardım:
- –Yardım seçeneği: Yardım Bilgilerini görüntüler.
Sözdizimi:
alias --help
Kabuk İşlevleri
Bazen bir veya daha fazla argümanı kabul edebilecek bir takma ad gerekir, yani bash işlevleri kullanıldığında.
Sözdizimi
Bir bash işlevi oluşturmak çok zor değil. Aşağıdaki iki farklı formattan herhangi birinde beyan edilebilirler:
function_name () {[komutlar]}
veya
işlevi function_name {[komutlar]}
Bu ikinci formu tek satıra sıkıştırıp komutları noktalı virgüllerle ayırabiliriz. Noktalı virgülzorunlu son komuttan sonra da gel:
işlev_adı () {komut1; command2; }
Lika takma adları, Bash kabuğu işlevleri ".bashrc" dosyası içinde tanımlanabilir, ancak bunları kendi tanım dosyalarına koymak genellikle daha düzgündür. ".Bash_aliases" dosyası için kullanılan kuralı izleyerek buna ".bash_functions" adını vereceğiz.
Bu, tanımlarımızda okumak için ".bashrc" dosyasına söylememiz gerektiği anlamına gelir. ".Bash_aliases" dosyasında okunan kod snippet'ini kopyalayabilir ve değiştirebiliriz. Gedit'i başlatın ve ".bashrc" dosyasını şu komutla yükleyin:
gedit .bashrc
Aşağıda gösterilen vurgulanan bölümü eklemeniz gerekir.
Diğer ad bölümünü vurgulayabilir ve Ctrl + C tuşlarına basabilir ve ardından yeni bölümü istediğiniz yere gidebilir ve metnin bir kopyasını yapıştırmak için Ctrl + V tuşlarına basabilirsiniz. O zaman yapmanız gereken tek şey, ".bash_aliases" yazan iki yeri ".bash_functions" olarak değiştirmektir.
Bu değişiklikleri kaydedebilir ve gedit'i kapatabiliriz.
Şimdi ".bash_functions" dosyasını oluşturup düzenleyeceğiz ve içine bir işlev tanımı koyacağız.
dokunun .bash_functions gedit .bash_functions
Bu, gedit'te boş “.bash_functions” dosyasını açacaktır.
Çağrılan basit bir işlev ekleyeceğiz. up, bir rakam olan tek bir komut satırı parametresi alacaktır. up daha sonra cd ..'yi o kadar çağırır. Öyleyse, komutu kullandıysanız
yukarı 2
up, cd ..'yi iki kez çağırır ve dizin ağacında iki düzey yukarı çıkar.
Bir işlevi tanımlamanın farklı yolları vardır. Işte bir tane:
function up () {
Kelime işlevi isteğe bağlıdır. Eğer bir gelenekçiyseniz, kullanın, yazmaktan rahatsız olmazsanız, dışarıda bırakın.
İşte gedit'teki tüm işlevimiz:
function up () {
Bu, işlev tanımımızın başlangıcını işaretler ve işlevi yukarı adlandırır.
seviyeler = 1 $
Bu, adında bir değişken oluştururseviyeleri ve bunu ilk parametrenin değerine ayarlar. Bu parametre, kullanıcı tarafından işlevi çağırdığında sağlanan bir rakam olacaktır. $ 1, "ilk komut satırı parametresi" anlamına gelir.
süre ["$ düzeyler" -gt "0"]; yapmak
Daha sonra, "ne zaman" olarak çevrilecek bir döngüye giriyoruz.değer" nın-nin "seviyeleri"Pozitif veya sıfırdan büyükse, döngünün gövdesinde ne varsa yapın."
Döngünün gövdesinin içinde iki komutumuz var. Onlar:
cd ..
Dizin ağacında bir seviye yukarı çıkın.
düzeyler = $ (($ düzeyleri - 1))
Seviyeleri, mevcut değerinden bir eksik olan yeni bir değere ayarlayın.
Daha sonra döngünün en üstüne geri dönüyoruz, seviyelerin değeri ile sıfır arasındaki karşılaştırma bir kez daha yapılıyor. "Düzeyler" sıfırdan fazlaysa, döngünün gövdesi yeniden yürütülür. Pozitif değilse veya sıfırdan büyük değilse, döngü biter ve bitmiş ifadeye düşeriz ve fonksiyon biter.
Kayıt etmek bu değişiklikler ve kapanışgedit.
".Bashrc" dosyasındaki ".bash_functions" dosyamızdaki komutları okuyup yürütmesi gereken komutları okuyup uygulayacağız.
. .bashrc
Fonksiyonu, dizin ağacında bir yere giderek ve dizin ağacında "daha yüksek" bir noktaya geri gitmek için yukarı tuşunu kullanarak test edebiliriz.
cd ./work/backup/ yukarı 2
İşlev çalışıyor. Ağaçta iki dizin düzeyi yukarı taşındık.
Yazıyla Takip Etme
Bir takma adlar takımı ve bir işlev kitaplığı oluştururken, belirli bir komutun bir takma ad mı yoksa işlev mi olduğunu hatırlamak zorlaşabilir. "yazın ” size hatırlatmak için komut. Buradaki harika şey, tanımı da görebilmeniz.
Hadi yazımızı kullanalımftctakma ad ve yukarı işlevimiz.
ftc yazın yukarı yazın
Tanımları ile birlikte her birinin ne tür bir komut olduğuna dair çok faydalı bir hatırlatma alıyoruz.
Koleksiyona Başlayın
Takma adlar ve işlevler, komut satırı kullanımınızı büyük ölçüde hızlandırabilir. Komut dizilerini kısaltabilirler ve standart komutlarla her zaman kullandığınız seçenekleri pişirmenize izin verirler. Şık, tek satırlık veya kullanışlı bir işlev gördüğünüzde, onu uyarlayabilir ve kişiselleştirebilir ve ardından ".bash_aliases" veya ".bash_functions" dosyalarınıza ekleyebilirsiniz. Bunların kapsamlı kullanımı, kabukta geçirdiğiniz zamanı daha eğlenceli ve daha az karmaşık hale getirmeye yardımcı olabilir.
Muhtemel yıkıcı davranışlarla mevcut komutları yeniden tanımlamaya karşı dikkatli olmayı unutmayın.Bunun tersini yapmak ve bir komutu daha güvenli bir varyant için takma ad (örneğin, yinelemeli olarak silmeden önce her zaman onay istemek) bile, güvenmeye başladıktan sonra bir sisteme ilk kez girdiğinizde sizi ısırmak için geri gelebilir. . Takma ad oluşturmanın iyi olabileceği adayları bulmak için, en sık kullandığınız komutlar için geçmişinizde arama yapmak iyi bir fikir olabilir.