GNU/Linux’da Shell

Grafik arayüzler (GUI) birçok işimizi kolayca yapmamıza yardım eder. Fakat tüm işlerimizde performanslı çalıştığını söyleyemeyeceğim. Hele bir de aceleniz varsa ve işleminizin hemen bitmesi gerekiyorsa elinden geldiğince yavaş davranacaktır. Peki bunu nasıl çözeriz? Cevap: Kabuk arabirimini kullanarak.

Kabuk (Shell) Nedir?

En basit anlamda shell, klavyeden girdiğiniz komutları işlenmesi için işletim sistemine gönderen bir programdır. Eskiden UNIX sistemlerde aşağıdaki resimde gördüğünüz gibi sizi sadece siyah bir ekranda komut penceresi karşılar ve tüm işlemler buradan yapılırdı. Fakat günümüzde bu komut pencereleri grafik arayüzlerle desteklenmeye başlandı.

Terminal

Birçok Linux dağıtımında bash kabuğu kullanılmaktadır. Bunun yanında elbette buna alternatif kabuklar da vardır. Linux dağıtımınız üzerinde kullanabileceğiniz kabukları /etc/shells dosyası içerisinde bulabilirsiniz.

~ $ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

Dağıtımınız üzerinde yüklü kabuklar arasında geçiş yapmak için ise sadece kullanmak istediğiniz kabuğun ismini yazmanız yeterli olacaktır. Fakat bu değişiklik sadece kullandığınız terminalde etkili olacak ve terminali kapatıp açtığınızda eski haline dönecektir. Bu değişikliği kalıcı hale getirmek için aşağıdaki komutta [komut_adı] yazan yere geçmek istediğiniz kabuğun ismini yazarak kullanabilirsiniz.

~ $ chsh
Password:
Changing the login shell for loop
Enter the new value, or press ENTER for the default
        Login Shell [/bin/bash]:  /bin/[kabuk_adı]

BASH (Bourne Again Shell)

Stephen Bourne tarafından UNIX versiyon 7 üzerinde kullanılmak üzere 1979 yılında Bell Laboratuarında yazılmıştır. Sistem içerisinde /bin/sh dizininde bulunur.

Bash içerisinde kullanılabilen varsayılan komutlar vardır. Bunlardan bazıları:

ls : Bulunulan dizindeki dosya ve dizinleri görüntülemeye yarar. “-al” parametresini kullanarak dizin içerisindeki tüm dosyaları (gizli dosyalar dahil) izinleriyle birlikte görüntüleyebiliriz.

cd /[yol] : Belirtilen dosyayı okumamızı sağlar.

pwd : Bulunduğunuz dizinin yolunu gösterir.

mv [dosya_adı] [nereye] : Belirtilen dosyayı veya dizini belirtilen konuma taşımaya yarar. Aynı zamanda dosyaların ve dizinlerin isimlerinin değiştirilmesi için de kullanılır.

cp [dosya_adı] [nereye] : Bir dosyayı veya dizini başka bir yere kopyalamaya yarar.

rm [parametreler] [dosya/dizin_adı] : Belirtilen dosya ve dizinleri siler.

rmdir [parametreler] : Boş dizinleri siler.

mkdir [dizin_adı] : Belirtilen isimde dizin açar. Eğer “-p” parametresiyle beraber kullanılırsa iç içe dizinler oluşturulabilir.

mkdir -p Burak/Kıymaz Burada "Burak" isminde ve içerisinde "Kıymaz" isminde bir dizin oluşturuldu.

ln [parametreler] [hangi_dosya] [nereye] : Belirtilen dosyayı belirtilen konuma linkler. Yani kısayol oluşturur diyebiliriz.

İki tür link vardır: sembolik link(soft link) ve katı link (hard link).

  • Katı link; ls ile bakıldığında hedef gösterdiği dosyanın özelliklerini taşır ve üzerinde işlem yapılacağı zaman hedef dosya gibi davranır. Eğer hedef gösterdiği dosya silinirse kopya dosya olarak kullanılmaya devam eder.
ln dosya.txt /home/dosya.txt

Burada dosya.txt dosyasını /home dizini altına linkledik.

  • Sembolik link ise link dosyası olduğunu söyler. Hedef gösterdiği dosya silinirse bir daha kullanılamaz.
ln -s dosya.txt /home/dosya.txt

şekline bağlanır.

file [dosya_adı] : Belirtilen dosyanın header bilgisini okur ve tipini ve dosya hakkında bazı bilgileri gösterir.

man [komut] : Parametre olarak belirtilen komutun yardım dosyasını açar.

cat [dosya_adı] : Belirtilen dosyayı okumamızı sağlar.

more [parametreler] [dosya_adı] : cat komutu gibi belirtilen dosyayı okumamızı sağlar. Fakat dosyamız uzun ise cat komutu sadece ekrana sığan en alt kısmı gösterecektir. more ise en baştan okumamızı sağlar.

less [parametreler] [dosya_adı] : more ve cat komutları gibi belirtilen dosyayı okumayı sağlar. Bu komutun more komutunda farkı; more komutunda yukarı gitme şansımız yoktur. less komutu burada bize kolaylık sağlar ve belirtilen dosya içerisinde yukarı aşağı hareket edebilmemizi sağlar.

tail [parametreler] [dosya_adı] : Belirtilen dosyanın son n satırını okumaya yarar. Buradaki n paramatre içerisinde belirtilir. Varsayılan değer 10 dur.

grep [parametreler] : Verilen parametreye göre süzme, parametre olarak gönderme ve metinlerin içerisinde arama yapmaya yarar.

chmod [parametreler] [dosya_adı] : Dosyanın izinlerini değiştirmemizi sağlar.

chown [parametreler] [dosya_adı] : Dosyanın sahibini değiştirmeye yarar.

who : Sistem üzerinde kimin aktif olduğunu gösterir.

who am i : Komutun yazıldığı terminalin kimlik bilgisini gösterir.

passwd [kullanıcı_adı] : Belirtilen kullanıcının parolasını değiştirmeye yarar.

finger [kullanıcı_adı] : Login olan kullanıcının gerçek ismini, soyismini, shell bilgisini, ne kadar zamandır içeride olduğu, e posta ve planlarını gösterir.

chfn : Kullanıcı bilgilerini güncellemeye yarar.

date [parametreler] : Sistem tarih ve saatini görüntüleyebilir veya değiştirebilir.

ps [parametreler] : O anki çalışan işlemleri gösterir.

top : Sistem üzerinde kaynak tüketen yazılımları gösterir.

kill [parametreler] pid : Girilen PID numaralı işlemi durdurmaya yarar.

clear : Terminal ekranını temizlmeye yarar. Bu işlemi silerek değil pencereyi aşağı kaydırarak yapar.

df [parametreler] : Disk üzerindeki kullanılmış ve kullanılabilcek alanları gösterir.

du [parametreler] [dizin] : Belirtilen dizin içerisindeki dosyaların ne kadar alan kapladığını gösterir.

halt : Bilgisayarı kapatır fakat enerjisini kesmez. Bunun kullanıcı tarafından yapılması gerekmektedir.

shutdown/poweroff : Bilgisayarın kontrollü olarak kapanmasını sağlar.

reboot : Bilgisayarı yeniden başlatır.

Kendi komutumu yazabilir miyim?

Cevap; elbette yazabilirsiniz. Kendi komutunuzu yazmanın pek çok yolu mevcuttur.

Birinci yol, /bin dizini içerisinde bir dosya oluşturup bu dosyanın içerisine istediğimiz komutları yazabiliriz. Örneğin; /bin dizini içerisine “deneme” isimli bir dosya oluşturduk ve içerisine echo 'komut çalışıyor' komutunu ekledik. Terminali yeniden başlatıp deneme komutunu girdiğimizde bize “komut çalışıyor” çıktısını verecektir.

İkinci yol bizim belirlediğimiz konumda bir dosya oluşturup /bin dizini içerisine link (kısayol) oluşturmak.

Üçüncü yol ise yine bizim belirlediğimiz konumda bir dosya oluşturup içerisine yapılmasını istediğimiz komutları gireriz ve ~/.bashrc dosyası içerisinde bizim oluşturduğumuz bu dosyaya alias tanımlarız. Örneğin; benim /home dizini altında burak.sh isminde bir dosyam var ve bu dosya içerisinde echo 'başarılı'komutunu tutuyorum. ~/.bashrc dosyasının en alt kısmına

alias deneme="/home/burak.sh"

komutunu ekledim. Terminali yeniden başlatıp “deneme” komutunu girdiğim zaman bana “başarılı” şeklinde çıktı verecektir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir