Temel Linux Komutları -2
İlk olarak bu derste kabuk değişkenleri ortamını tanıtılacaktır. Bunun için env komutunu kullanıyoruz. Basitce bilgisayara giriş yaptığınınızda hazır olarak kabuk ortamı sizin için ayarlanmış olarak gelir. Bu kabuk ortamı basit fonksiyonları kontrol eder. Kolayca anlatmak için ne olduklarını göstermek gerekir. Kabuk ortamını görmek için komut satırından env komutunu girelim
env komutunun çıktısının son sayfasını görüyoruz, sol tarafa baktığımızda büyük harflerle yazıldığını görürüz. Burada ortam değişkenlerinin adı büyük harflerle yazılır.
PATH, bu klasör yazdığınız programın ilk baktığı yerdir. Örneğin pwd komutunu ilk olarak girdiğimde ve cd veya benzeri bilgisayarın yaptığı ilk olarak / usr/local/bin içine bakar, eğer bulamazsa / usr/bin/ eğer yine bulamazsa /bin içine bakar, eğer yine bulamazsa ise / usr/games içine bakar. Hiçbir dizinde bulamaz ise, üzgünüm böyle bir komut yok diyecektir. Eğer bu aradığımız komut sistemde herhangi bir yerde ise ilgili dizinlerde değildir. Bu komutu doğrudan komut satırında çalışmasını istiyorsak komutu / home/kullanıcı_adı/bin içine koymamız gerekir. Bu kullanıcının kişisel bin dosyası olur. Sistemde başka bir kullanıcı kullanamaz.
PATH, dizin değişkeni önemli bir değişkendir. Eğer sistem yöneticisi iseniz veya benzer bir yapıyorsanız, işinize yarayacak daha farklı komutlar için yeni dizinler girebilirsiniz. Bunu birazdan göstereceğiz. Env komutunu girdikten sonra çıktıda aşağıya doğru baktığımızda farklı diğer ortam değişkenlerini görebilirsiniz.
Örneğin, PWD sizin aktif olarak çalıştırdığınız dizin, eğer başka bir dizine geçersek ilgili dizin o olacaktır ve ortam değişkenleri ona göre yer alacaktır. Fakat HOME ortam değişkeni kesinlikle değişmeyecektir. Çünkü sürekli ev dizinini gösterecektir.
HOME=/home/kullanıcı_adı
Sizlere belirli ortam değişkenlerini nasıl değiştereceğimizi anlatacağız. Bunu export komutu ile yapıyoruz.
Örnek olarak PATH dizinini değişterelim, PATH dizinine kendi dizinimi ekliyorum. Bilgisiyar bu komutu bulamadı demesinden önce hazırladığım komutu ilgili dizinin adını vererek PATH ortam değişkenine ekleyeceğim.
export PATH =
hangi dizini girmek istiyorsak onu yazıyoruz. Bu önemli bir nokta eğer buraya / usr/sbin/ yazarsak PATH değişkeni sadece ilgili dizine bakacaktır. Ancak daha önceki ortam değişkenlerini bozmamak için
$PATH= / usr/sbin/:/sbin/
eklemek istediğimiz dizinleri gireriz, bu iki dizin sistem yönetimi için geçerli dizinlerdir. Birçok sistem yönetimi için geçerli dizinlerdir. Birçok sistem yönetimi örneğin kullanıcı ekle “adduser” bu dizin içindedir.
Eğer bunları root (kök) kullanıcı içinde istiyorsam bunu root olarakta yapmamız gerekir. Bunu basitce PATH ortam değişkenine nasıl yeni dizin eklenir konusunu göstermek için anlattık.
Env komutu ile baktığımızda PATH ortam değişkenine yeni eklediğimiz dizinleri görürüz. Burada dikkat etmemiz gereken değişikliği yaparken PATH ortam değişkenin eskisi gibi kalması ve yeni değişkenleri kabul etmesi için eşit işaretinden sonra ortam değişkeninin başına $ işareti konmalıdır.
Şimdi ENV komutunun tüm çıktısını görelim. Env komutu girildiğinde bir sayfadan fazlası ekrana gelecektir. Ancak sadece son sayfası görüntülenecektir. Env komutunun tam çıktısını görmek için onu bir dosyaya yazdırmamız gerekir. Bunun için;
Burada ne olacak! Şimdi giriş(enter) tuşuna basıldığında ekranda bir şey görünmeyecektir ve ilgili bütün çıktıları env_ortam içine yazacaktır. Şimdi Dizini listeyelim.
Daha önceki konuda anlattığımız, öğrendiğimiz more ve less komutlarını kulanabiliriz.
Giriş (enter) tuşuna bastığımızda env_ortam dosyasının ilk sayfasını görüntüleriz. Burada bilgisyar adı, kabul değişkenleri hangi kabuğu kullandığımız, daha fazlasını görmek için aralık tuşuna basarız ve ikinci sayfasını görüntüleriz. Tekrar aralık çubuğuna bastığımızda sayfa sonuna gelir.
Dosyaya döküm yapmadan doğrudan görüntülemek için pipe(kanal) operatörleri yardımı ile yapabiliriz. Env komutunun çıktısını, more komutunun girdisi ile sayfa sayfa görüntüleyebiliriz.
Env komutunun ilk sayfasını görüntülenir. Aralık çubuğuna basarak ikinci sayfayı görüntüleriz. Eğer herhangi bir dosyaya kaydetmek istemiyorsak bunu uygulayabiliriz.
Biraz da lam (joker) karakterlerden bahsedelim.
Hatırlayalım bu liste halinde dizin içindeki bütün dosya ve dizinleri gösterir. Normal dizin ile birlikte önünde nokta olan(gizli) dizinleri ve dosyaları gösterir. Normal ls komutu kullanıldığında gizli dosyaları göstermez.
Ls komumu sadece bulunduğumuz dizini değil bazı farklı dizinlerin içeriğinide listeliyebilir.
Örneğin;
ls .config
Ne kadar basit olsada bu bir sonraki konuda farklı değişkenler için gereklidir.
ls -l .config
Grup ve sahiplik izinlerini gösterecektir. Bu izinler konusuna daha sonra değineceğiz.
Ls seçeneklerinden biraz lam (joker)karakterlerden bahsedelim. Bu dosyaları teker teker yapma yerine *
ls .g*
Buradaki * karakteri herşey anlamına gelir, numaralar, çizgi veya özel karakter gibi. Bu komut “g” harfiyle başlayan bütün dizinleri ve içeriğini gösterecektir.
Şimdi ekranı clear komutuyla temizleyelim ve yukarı ok tuşuyla bir önceki komutu çağıralım.
Burada pipe(kanal) operatörünü kullanalım.
ls .g* | more
Bu komuta göre ls .g* çıktısının komutu more komutuna aktarıp sayfa sayfa görüntülenecektir. Normal dosyalar görüntülenecek, dizinler ise alt dizimlemesi ve içindeki dosyalarla görüntülenecektir. Burada pipe(kanal) operatörüyle ls komutu, lam (joker) karakteri ve more komutunu birlikte kullandık.
GREP KOMUTU
Linux’ta güçlü komutlardan biride greptir. GREP ,get regular expression- düzenli ifade al anlamına gelir. Grep komutu metin dosyasında bir kelime, sayı v.b. anlamlar için kullanılır.
Passwd metin dosyasının içinde geçen “os” kelimesini arıyacaktır. Ekrana gelen satır içinde “os” kelimesinin geçtiği tek satırdır. Passwd, dosyası şifreleri depolayan bir dosyadır, aslında shadow dosyası şifreleri tekrar şifreleyerek saklar, bu passwd dosyası kullanıcının bulunduğu grup id ve ev dizinini gösterir.
Os kullanıcı adı, X şifrenin gizlendiği, kullanıcı kimlik numarası, grup numarası, ev dizini ve hangi kabuğu kullandığını gösterir.
/ etc/passwd dosyasının içinde bash’i arattığımızda çok daha fazlasını gösterecektir.
Root ve os kullanıcısı bash kabuğunu kullanıyor. Bu şekilde grep komutunun kullanımını görüyoruz. Şuana kadar grep komutunu kelimelerde kullandık. Şimdi birde harfle ve rakamla deneyelim.
grep 5 /etc/passwd
Veya
grep 5.. /etc/passwd
Bu şekilde bir kısıtlama yapmak mümkün değil, sadece 5 ve ek sayının olduğu kısıtlamayı bu şekilde yapamayız. Gördüğümüz gibi iki listede birbirinin aynıdır. Grep burada içinde 5 geçen bütün rakamları listeler. Nokta her türlü karakter anlamına gelir.
Grep komutunda kısıtlama yapmak için:
grep 5[0-9] /etc/passwd
[0-9] arasında bütün rakamları gösterir, ikinci basamakta olan 0 ile 9 arasında üç basamaklı rakamları ayarayacaktır.
Şimdi daha çok kısıtlamaya giderek 3 basamaklı 5 ile başlayan rakamları içeren kullanıcıları arayalım, bunun için;
grep :5[0-9][0-9]: /etc/passwd