Shopt ile Bash Shell Nasıl Özelleştirilir
Yayınlanan: 2022-01-29 Bash kabuğunuzun davranışına shopt
ile ince ayar yaparsanız, 50'den fazla ayarı kontrol edebilirsiniz. Size Linux sisteminizi tam istediğiniz gibi nasıl düzenleyeceğinizi göstereceğiz.
Shopt Yerleşik
shopt
yerleşik, Bash kabuğunun tüm sürümlerinin bir parçasıdır, bu nedenle herhangi bir şey yüklemeye gerek yoktur. shopt
bulunan seçeneklerin sayısı yıllar içinde istikrarlı bir şekilde artmıştır. Bu nedenle, sahip olduğunuz Bash sürümü ne kadar eskiyse, shopt
seçeneklerinin listesi o kadar kısa olacaktır.
Makinenizde bir şey çalışmıyor gibi görünüyorsa, Bash için man
sayfası girişini kontrol edin ve bu seçeneğin shopt
sürümünüzde mevcut olduğunu doğrulayın.
Aşağıdaki tüm shopt
seçeneklerini ele alıyoruz. Ayrıca nasıl kullanılacağını açıklıyoruz ve bazı örnekler paylaşıyoruz. Buradan, bu seçeneklerden herhangi birinin kullanışlı veya çekici olup olmadığını görmek için Bash kılavuz sayfasına veya GNU Bash Referans Kılavuzuna göz atabilirsiniz.
Bazı shopt
seçenekleri varsayılan olarak etkindir ve Bash'in varsayılan davranışının bir parçasını oluşturur. Bash'te kısa vadeli bir değişiklik olarak bir shopt
seçeneğini etkinleştirebilirsiniz. Ardından, kabuğu kapattığınızda varsayılan davranışa geri dönecektir.
Ancak, bir Bash kabuğunu her başlattığınızda değiştirilen bir davranışın kullanılabilir olmasını istiyorsanız, değişiklikleri kalıcı hale getirebilirsiniz.
Alışveriş Seçenekleri
53 shopt
seçeneği var. shopt
komutunu herhangi bir seçenek olmadan kullanırsanız, bunları listeler. Çıktıyı wc
komutu ile aktarırsak, bizim için satırları, kelimeleri ve karakterleri sayar. Her shopt
seçeneği kendi satırında olduğu için satır sayısı seçeneklerin sayısıdır.
Aşağıdakileri yazıyoruz:
alışveriş | wc
Tüm seçenekleri görmek için, seçenek adlarını sütunlarda görüntülemek için çıktıyı column
komutu aracılığıyla veya less
içine aktarabiliriz.
Aşağıdakileri yazıyoruz:
alışveriş | kolon
Linux Kılavuzunda shopt bulma
shopt
ve seçeneklerini tartışan bölüm, Linux kılavuzunun Bash bölümündedir. Bash bölümü 6.000 satırın üzerindedir. Çok fazla kaydırma ile shopt
açıklamasını bulabilir veya sadece kılavuz içinde arayabilirsiniz.
Bunu yapmak için, Bash bölümündeki kılavuzu açın:
adam bash
Kılavuzda, bir arama başlatmak için /
düğmesine basın. Aşağıdakini yazın ve ardından Enter tuşuna basın:
assoc_expand_once
shopt
seçeneği bölümünün başlangıcı, man
penceresinde görünecektir.
İLGİLİ: Linux'un adamı Komutu Nasıl Kullanılır: Gizli Sırlar ve Temel Bilgiler
Seçenekleri Ayarlama ve Ayarı Kaldırma
shopt
seçeneklerini ayarlamak ve ayarlarını kaldırmak için aşağıdaki komutları kullanın:
- -s : Ayarlayın veya etkinleştirin.
- -u : Ayarlamayı kaldırın veya devre dışı bırakın.
Bazı seçenekler varsayılan olarak etkinleştirildiğinden, hangi seçeneklerin açık olduğunu kontrol etmek de kullanışlıdır. Bir seçenek adı kullanmadan -s
ve -u
seçenekleriyle bunu yapabilirsiniz. Bu, shopt
açık ve kapalı olan seçenekleri listelemesine neden olur.
Aşağıdakileri yazın:
alışveriş -s
shopt -u | kolon
Her seçeneğin açık veya kapalı durumunu görmek için -s
veya -u
komutları olmadan bir shopt
seçeneğini kullanabilirsiniz.
Örneğin, histverify
seçeneğinin ayarını kontrol etmek için aşağıdakini yazabiliriz:
shopt geçmiş doğrulama
Açık olarak ayarlamak için aşağıdakileri yazabiliriz:
shopt -s histverify
Ardından, tekrar kontrol etmek için aşağıdakini yazabiliriz:
shopt geçmiş doğrulama
histverify
seçeneği, history
komutunun bir yönünün çalışma şeklini değiştirir. Genellikle, history
bir komutu numaraya göre referans vererek tekrar etmesini isterseniz, örneğin !245
, komut komut geçmişinden alınır ve hemen yürütülür.
Beklediğiniz olduğundan emin olmak için bir komutu gözden geçirmeyi ve gerekirse düzenlemeyi tercih ederseniz, shopt histverify
seçeneğini açık olarak ayarlamak için aşağıdakini yazın:
!245
Komut alınır ve komut satırında sunulur. Enter tuşuna basarak silebilir, düzenleyebilir veya yürütebilirsiniz.
İLGİLİ: Linux'ta geçmiş Komutu Nasıl Kullanılır
autocd Seçeneği
autocd
seçeneği açık olarak ayarlandığında, komut satırına bir dizinin adını yazıp Enter'a basarsanız, önüne cd
yazmışsınız gibi işlem görecektir.
autocd
seçeneğini açmak için şunu yazıyoruz:
shopt -s autocd
Ardından, bir dizinin adını yazıyoruz:
Belgeler
cdspell Seçeneği
cdspell
seçeneği açıldığında Bash, dizin adlarındaki basit yazım hatalarını ve yazım hatalarını otomatik olarak düzeltir.
cdspell
seçeneğini ayarlamak için aşağıdakileri yazıyoruz:
shopt -s cdspell
Baş harfi büyük olması gereken küçük harfli bir dizine geçmeyi denemek için aşağıdakini yazıyoruz:
cd belgeleri
Ardından, adında fazladan bir “t” olan bir dizin adını denemek için aşağıdakini yazabiliriz:
cd ../Resimler
Bash, yazım hatalarından bağımsız olarak her dizine değişir.
xpg_echo Seçeneği
xpg_echo
seçeneği açık olarak ayarlandığında, echo komutu yeni satır için \n
ve yatay sekme için \t
gibi kaçan karakterlere uyar.
İlk olarak, seçeneğin ayarlandığından emin olmak için aşağıdakini yazıyoruz:
shopt -s xpg_echo
Ardından, echo
ileteceğimiz bir dizgeye \n
ekleriz:
echo "Bu birinci satır\nBu ikinci satır"
Kaçan yeni satır karakteri, çıktıda bir satır kesmeye zorlar.
Bu, -e
(kaçış yorumlamasını etkinleştir) echo
seçeneğiyle aynı davranışı üretir, ancak xpg_echo
bunun varsayılan eylem olmasına izin verir.
İLGİLİ: Linux'ta Echo Komutu Nasıl Kullanılır
dotglob Seçeneği
dotglob
seçeneği biraz dikkatli kullanılmalıdır. Nokta ( .
) ile başlayan dosya ve dizinlerin ad genişletmelerine veya "globbing"e dahil edilmesini sağlar. Bunlara "nokta dosyaları" veya "nokta dizinleri" denir ve genellikle gizlidirler. dotglob
seçeneği, adlarının başındaki noktayı yok sayar.
İlk olarak, aşağıdakini yazarak "geek" ile biten dosya veya dizinleri arayacağız:
ls *geek
Bir dosya bulunur ve listelenir. Ardından, aşağıdakileri yazarak dotglob
seçeneğini açacağız:
shopt -s dotglob
"Geek" ile biten dosya ve dizinleri aramak için aynı ls
komutunu veriyoruz:
ls *geek
Bu sefer biri nokta dosyası olan iki dosya bulunur ve listelenir. dotglob
seçeneğini açık olarak ayarladığınızda rm
ve mv
ile dikkatli olmanız gerekir.
nocaseglob Seçeneği
nocaseglob
seçeneği, dotglob
seçeneğine benzer, ancak nocaseglob
, dosya adlarındaki büyük ve küçük harf farklılıklarının ve dizinlerin ad genişletmelerinde yok sayılmasına neden olur.
“Nasıl” ile başlayan dosya veya dizinleri aramak için aşağıdakileri yazıyoruz:
nasıl*
Bir dosya bulunur ve listelenir. nocaseglob
seçeneğini açmak için aşağıdakileri yazıyoruz:
shopt -s nocaseglob
Ardından ls
komutunu tekrarlıyoruz:
nasıl*
Biri büyük harfler içeren iki dosya bulunur.
Değişiklikleri Kalıcı Yapma
Yaptığımız değişiklikler yalnızca mevcut Bash kabuğunu kapatana kadar sürecek. Bunları farklı kabuk oturumlarında kalıcı hale getirmek için onları “.bashrc” dosyamıza eklememiz gerekiyor.
Ana dizininizde, “.bashrc” dosyasını grafiksel Gedit metin düzenleyicide açmak için aşağıdaki komutu yazın (veya tercih ettiğiniz düzenleyiciyi kullanmak için uygun şekilde değiştirin):
gedit .bashrc
gedit
düzenleyicisi “.bashrc” dosyası yüklenmiş olarak açılacaktır. Bazı shopt
girişlerinin zaten içinde olduğunu göreceksiniz.
Burada kendi shopt
seçeneklerinizi de ekleyebilirsiniz. Bunları eklediğinizde, değişikliklerinizi kaydedin ve düzenleyiciyi kapatın. Artık ne zaman yeni bir Bash kabuğu açsanız, seçenekleriniz sizin için belirlenecek.
Gözün Görebildiği Kadar Seçenekler
shopt
komutunun pek çok seçeneği olduğu doğrudur, ancak hepsiyle aynı anda başa çıkmak zorunda değilsiniz. Çok fazla olduğu için, muhtemelen ilginizi çekmeyecek bazıları vardır.
Örneğin, Bash'i belirli, eski sürümlerle uyumlu şekillerde çalışmaya zorlayan bir grup var. Bu birileri için faydalı olabilir, ancak oldukça niş bir durum.
Bash kılavuz sayfasını veya GNU Bash Referans Kılavuzunu inceleyebilirsiniz. Hangi seçeneklerin sizin için fark yaratacağına karar verin ve ardından bunları deneyin. Dosya ve dizin adlarının genişletilme şeklini etkileyen seçeneklere dikkat edin. Onlarla rahat olana kadar onları ls
gibi iyi huylu bir komutla deneyin.