Teknoloji

Yeni Başlayanlar için Linux Komut Satırı Rehberi

Komut satırı… Yıllar evvel tedavülden kalktığı düşünülen eski bir yazılımdan ibaret üzere gözüken ancak hala kıymetini bilip kullananlara çok büyük katkıları bulunan sistem kabuğu. İşletim sistemi ile konuşmanın aracısız ve grafik arayüzden daha kısa olan yollarından birisidir siyah terminal. Linux sistemlerde günümüzde belirli başlı şeyleri yerine getirebilmek için kullanılabilecek en yeterli yollardan birisi.

Bir belgeyi bir yere çıkartmak, kopyalamak yahut birden çok dizinde yer alan evrakları tespit edip silmek grafik arayüzü kullandığımızda çok daha fazla vaktimizi alırken, terminal/uçbirim üzerinde yazacağımız bir komutla süreci daha kolay ve kısa müddette halledebilirsiniz. Bu yazımızda Linux sistem kullanıcılarının faydalanabileceği, günlük hayatta ziyadesiyle işlerine yarayacak temel komutları anlatmaya çalışacağız.

Bilmeniz Gerekenler: Linux Sistemlerde Ana Dizin Nedir?

Komutları açıklamaya geçmeden evvel temel tabirlerden birisinden daha bahsetmemiz gerekiyor çünkü Linux dağıtımlarında kullanılan dizin yapısı yeni başlayanlar için baş karıştırıcı olabilir.

Bildiğiniz üzere Linux sistemler birden çok kullanıcının birebir anda kullanabilmesine imkan tanıyan bir yapıya sahip. Bu nedenle kullanıcıların her biri için yapacağı değişiklikleri, evrakları kaydedebileceği bir ana dizin bulunuyor. Bu ana dizine “home” diyoruz.

Kullanıcıların ana dizini ise bu ana dizinin altında bulunmaktadır. Örneğin kullanmış olduğum Linux dağıtımlarından birisi olan Kubuntu’da benim ana dizinim /home/akil halinde. Ana dizinin altında bulunan kullanıcılara ilişkin ikinci ana dizinlerin ismi her vakit oturum açmak için kullandığımız kullanııcı ismiyle birebirdir.

Windows sistemlere alışkın biriyseniz bunu C: altında bulunan Document and Settings dizininin içerisinde yer alan kullanıcı dizinleri yahut tekrar C: altında bulunan Users klasörünün içerisinde yer alan kullanıcı dizinleri üzere düşünebilirsiniz.

Linux sistemlerde kullanıcıların her biri kendi ana diziniyle alakalı olan kısımlara ilişkin tam yetkiye sahip olur, bu aslında şu manaya geliyor: kendi kullanıcı dizininiz altında bulunan evrakları silebilir, oluşturabilir, taşıyabilir yahut programlar kurabilirsiniz.

1. Çalıştığımız Dizini Denetim Etmek

Linux sistemlerde uçbirimi her yeni açmanızda, varsayılan başlangıç dizininde bulunursunuz. Diğer dizinlere geçtiğinizde tekrardan nerede olduğunuzu öğrenmek isteyebilirsiniz. Çalıştığınız yerin tam yolunu bulmak için pwd komutunu kullanabilirsiniz. Pwd, Print Working Directory yani “Çalışma Dizinini Yazdır” sözlerinin aslında kısaltması.

Merak etmeyin, diğer dizinlere nasıl geçebileceğinizi de anlatacağız.

Aşağıdaki ekran manzarasında de göründüğü üzere, pwd komutu çalıştığımız dizini söz ediyor. Gördüğünüz üzere “akil” kullanıcısının alt dizini olan “Masaüstü” isimli klasörde bulunuyoruz.

2. Dizinlerde Gezinmek

Linux sistemlerde dizinlerin içerisine cd komutu ile gireriz. Bu komuttan yararlanarak bir dizine ulaşmak istiyorsak dizinin ismini ve tam yolunu bilmeliyiz. CD, Change Directory, yani dizini değiştir sözlerinin kısaltması oluyor.

Örneğin /home/akil/Masaüstü pozisyonunda olduğumuzu düşünelim. Masaüstündeki yazılar klasörüne geçmek için cd yazılar formunda bir komut girebilirsiniz. Bu komut sonrası uçbirim bizim için Masaüstü pozisyonunda yer alan “yazılar” klasörünü arayıp bulacak ve bizi oraya geçirecek.

Şayet çalıştığınız dizin dışındaki bir pozisyona geçiş yapacaksanız, cd /home/akil/Belgeler formunda pozisyonu tam olarak belirterek cd komutundan yararlanabilirsiniz. Şayet bir evvelki çalıştığınız dizine geçmek istiyorsanız cd -, bir üst dizine geçiş yapmak istiyorsanız cd .. kullanmalısınız.

Aşağıdaki ekran imajında de gördüğünüz üzere cd ile geçişlerimizi yaptık ve pwd komutuyla bunu bir nevi doğruladık.

3. Dizinde Bulunanları Görüntülemek

Linux sistemlerde terminal yardımıyla klasörlerin içeriğini listelemek hedefiyle list sözünün kısaltması olan ls komutu kullanılır. Şayet komutla birlikte rastgele bir dizin belirtmediysek bulunduğumuz klasörün içeriği listelenir.

İçeriğini görüntülemek istediğimiz pozisyon bir alt klasör ise direkt ls komutunun sağına dizin ismini yazabiliriz, değilse tam pozisyonu belirtmeliyiz.

Uçbirimde elde ettiğimiz çıktıdaki renklerin her biri bir mana söz eder. Bu renkler yardımıyla ilgili dizin içerisinde bulunan belgelerin hangi tipten olduğunu kolay kolay anlayabilirsiniz.

Bilmemiz gereken en temel renkler şunlardır: Pembe (Görseller), Mavi (Dizinler), Kırmızı (Arşiv dosyaları), Yeşil (Executable dosyalar), Beyaz (Metin dosyaları), Camgöbeği (Kısayollar)

4. Bir Evrakın İçeriğini Görüntülemek

Bir belgenin içeriğini Linux dağıtımlarında bulunan uçbirim yardımıyla görüntülemek istiyorsak cat komutunu kullanırız. Bulunduğumuz dizindeki evrak ismini cat ile birlikte kullanarak içeriği görüntüleyebilirsiniz. Bu komutun tek dezavantajı, çıktı sadece kabuğa sığabilecek kadar büyük olabilir ve görüntülenebilir. cat ise aslında concatenate, yani sıralama sözünün kısaltılmışı.

İşte bu usul durumlar için cat’in farklı bir kullanımı daha kelam konusu. less komutu ile birlikte cat dosyaadi | less biçiminde tüm çıktıyı daha az komut satırı kaplayacak ve terminale sığacak bir hale getirebilirsiniz. Böylelikle rastgele bir sorun yaşamadan üst ve aşağı ok tuşlarıyla içeriği görüntüleyip, gezinebilirsiniz. İçeriği görüntüledikten daha sonra bu moddan çıkmak istiyorsanız klavyeden “q” tuşuna basmanız kâfi.

5. Yeni Bir Belge Oluşturmak

Terminal yardımıyla yeni bir evrak oluşturmak için touch komutunu kullanabilirsiniz. Bu komutun ismi üstünde dokunma manasında olan touch sözünden geliyor. Rastgele bir evrak oluştururken bir nevi dokunuş yapmış oluyoruz diye düşünebilirsiniz. Bu komutu kullanırken belge oluşturmak hedefiyle değişken olarak belge ismini ve uzantısını kullanırız. Örneğin: touch yeniyazi.txt

Şayet bulunduğunuz dizin dışında bir pozisyonda yeni evrak oluşturmanız gerekiyorsa tam pozisyonu kullanmalısınız. Örneğin: touch /home/akil/Masaüstü/yazılar/technopatyazi.txt üzere.

İpucu: Yeni oluşturduğunuz evrakın içerisine bir şeyler yazmak istiyorsanız Nano üzere komut satırı tabanlı metin düzenleyicileri kullanabilrsiniz.

6. Bir Belgeyi Yine İsimlendirmek, Kopyalamak ve Silmek

Linux sistemlerde uçbirim yardımıyla bir belgeyi tekrar isimlendirmek istiyorsak move sözünün kısaltması olan mv komutunu kullanabiliriz. Örneğin, metinbelgesi1.txt belgesinin ismini metinbelgesi2.txt olarak değiştirmek için şu formda bir komut çalıştırılması kâfi: mv metinbelgesi1.txt metinbelgesi2.txt. Birçok komutta bahsettiğimiz üzere ilgili evrak çalıştığınız dizinde bulunmuyorsa tam yolu kullanabilirsiniz.

mv komutunu birebir vakitte bir belgeyi diğer bir pozisyona taşımak için de kullanabilirsiniz. Bu komut yardımıyla yaptığınız şey grafik arayüzdeki kes-yapıştır süreciyle birebir. Örneğin çalıştığımız dizinde bulunan metinbelgesi1.txt belgesini diğer bir pozisyona taşımak için mv metinbelgesi1.txt /home/akil/Belgeler formunda bir kullanım yaparız.

Şayet bir dizindeki belgeyi taşımak yerine kopyalamak istiyorsanız copy sözünün kısaltılmışı olan cp komutunu kullanmalısınız. mv komutunda olduğu üzere cp komutunda da taşıma süreci için bir gaye belirtmemiz gerekiyor. Örneğin metinbelgesi1.txt belgesinin bir kopyasını da Evraklar dizinimizde oluşturmak istiyorsak şu halde bir kullanım yapabiliriz:

cp metinbelgesi1.txt home/akil/Belgeler

Uçbirimde bir belgeyi silmek istiyorsak remove sözünün kısaltılmışı olan rm komutundan yararlanırız. Bu komuta ilişkin argüman (kullanım şekli) belge ismidir. Örneğin rm metinbelgesi1.txt komutunu kullandığımızda kabuk bizim için çalışma dizinimizde ilgili belgenin olup olmadığını denetim ediyor. Varsa kaldırıyor. Şayet uzak pozisyondaki bir belgeyi silmek istiyorsak argüman olarak pozisyon kullanmamız kâfi oluyor. Örneğin: rm /home/akil/Belgeler/metinbelgesi.txt.

Evrak değil de dizinleri silmek istiyorsanız rm komutuyla birlikte -r seçeneğini kullanmanız kâfi. Örneğin rm -r /home/akil/belgeler/yeniklasor biçiminde bir kullanımda yeniklasor dizini tüm alt dizinlerle birlikte silinir.

7. Belgeleri Aramak

Terminal yardımıyla muhakkak bir dizinde yer alan evrakları aramak hedefiyle find komutunu kullanabilirsiniz. find komutunu kullanırken bir pozisyona ve belge ismine muhtaçlığımız var. Örneğin ben kendi kullanıcımın bulunduğu ana dizinde yer alan “yazim1” isimli belgeyi aramak istiyorum. Bunun için find komutunu aşağıdaki üzere kullanabiliriz. -name takısını kullanarak belgenin tam ismini belirtiyoruz.

Şayet bilhassa bir yol belirtmezseniz, ilgili belge halihazırda çalışmış olduğunuz dizinde aranacaktır.

Bildiğiniz üzere her ne kadar yararlı olsa da bu biçim bir kullanım çok fonksiyonel değil. İşte tam burada joker karakterler imdadımıza yetişiyor. Örneğin diyelim ki ben /home/akil/ Dokümanlar dizini altında bulunan text evraklarını aratmak istiyorum. Bunun için aşağıdaki üzere bir kullanımda bulunabilirsiniz.

Not: * (yıldız) jokerini rastgele bir sayıda, rastgele bir karakteri tabir etmek yerine kullanırız. Örneğin yazı* biçiminde bir kullanım sonucu içinde yazı geçen her evrak listelenir. “yazım”, “yazılarım” üzere.

8. Belgelerde Yer Alan Metinleri Aratmak

Günlerden birinde çabukla bir metin dokümanına yahut açılabilir belgeye bir not yazdınız ancak onca satır ortasından geri bulamıyor musunuz? Tam bu sırada imdadınıza “globally search for a regular expression and print matching lines” yani “Genelde olağan bir söz arayın ve eşleşen satırları yazdırın” cümlesinin bir kısaltması olan grep komutu yetişiyor. Komutu kullanırken değişken olarak belge ismi ve anahtar kelimemizden yararlanırız.

Örneğin /home/akil/Belgeler/metin1 belgesinde yer alan Technopat sözünü içeren tüm satırları aratmak istiyorum diyelim. Bunun için grep komutunu şu formda kullanabiliriz.

Not: Anahtar söz büyük ve küçük harfe hassas.

Şayet çıktımızda ilgili anahtar sözün geçtiği satır numaraları da yazsın istiyorsak -n takısından yararlanabiliriz. Bu durumda ilgili komutu aşağıdaki üzere kullanıyoruz.

find komutunda olduğu üzere belirttiğiniz dizinde yer alan evraklarda ilgili anahtar kelimeyi aramanız gerekiyorsa joker karakterlerden faydalanabilirsiniz. Lakin unutmayın ki find komutundan daha farklı olarak grep komutunda alt dizinler aranmaz. Bunun için -R takısını kullanabilirsiniz.

9. Komutları Otomatik Tanımlamak

Linux sistemlerde uçbirim ile haşır neşirseniz daima uzun belge isimleri ve dizin yollarını yazmak sıkıcı ve bir o kadar da size yük haline gelebilir. Neyse ki tek tek her seferinde yazmanız gerekmiyor. Uzun isim ve yolları TAB tuşunu kullanarak tekrardan otomatik olarak yazdırabilirsiniz.

Örneğin /home yazacaksınız diyelim. Yalnızca /ho yazıp TAB tuşuna basarak otomatik olarak tamamlanmasını sağlayabilirsiniz.

Home dizini örneğinde aslında öteki bir şeyin gelme ihtimali olmadığından, uçbirim bizim için muvaffakiyetle devamını tamamlayabildi ancak misal isimlerle karşılaşıldığında, komut satırına yol gösterecek birkaç harfi daha yazmanız gerekiyor. Mesela tıpkı dizinde yer alan ve T harfiyle başlayan iki adet klasör bulunuyor diyelim. Bu durumda uçbirimin anlamasını sağlayacak bir harf daha yazmalısınız. Uçbirim, TAB tuşuna iki sefer basarsanız yazmak istediğiniz şey hakkında aşağıdaki üzere ipucu veriyor.

10. Root Nedir? Yetkili Kullanıcıya Geçiş Yapmak

Root, bildiğiniz üzere Linux ve Unix tabanlı sistemlerde en yetkili ve tüm kullanıcılar üzerinde süreç yapma hakkına sahip olan kullanıcıya denir.

Bir belgenin yetkilerini sınırlamak, sahiplik haklarını değiştirmek yahut sistem dizinlerine müdahale etmek üzere olağan kullanıcıda olmayan yetkiler “root” kullanıcısına geçilerek yapılabilir. İsmi üstünde sistemin “kök” hesabıdır diyebiliriz. İddia edebileceğiniz üzere son kullanıcılardan çok sistem yöneticileri ve tecrübeli kullanıcılar root yetkilerine sahip hesaplardan faydalanırlar.

“root” kullanıcıları günümüzdeki birçok Linux dağıtımında heyetim esnasında güvenlik nedenlerinden dolayı şuurlu olarak parolasız bir formda oluşturulur. Parolası olmayan kullanıcı hesabıyla da oturum açılamayacağından root hesabı kullanılamaz hale gelir diye düşünebilirsiniz. Bunun için de Linux sistemlerde root yetkilerini yeri geldiğinde sahiplenebilen kullanıcılar bulunur. Örneğin yetkili kümesine dahil “akil” kullanıcısı olağan işlerini klasik kullanıcı yetkileriyle yerine getirebiliyorken, gereksinim halinde root yetkilerine sahipmiş üzere çalışabilir. Bu durumda “superuser do” yani üstün yetkili kullanıcı gerektiren işlerde sudo komutu kullanılarak root hesabının yapabildiği şeyler yapılabilmekte.

Aşağıdaki görselde yönetici yetkileri gerektiren apt-get update sürecini sudo komutunu kullanarak “akil” kullanıcısıyla gerçekleştirebildik.

Ek olarak Linux sistemlerde “root” yani bir kök dizin bulunur. Kök dizini, aslında sistemdeki en üst seviye dizin ve eğik çizgiyle (/) söz edilir. Bütün kullanıcıların ana dizini bu kök dizininin altında yer alıyor.

11 . Man Sayfaları Nedir ve Ne İşe Faydalar?

Man (Manual) sayfaları hakkında aslında Linux sistemlerde yer alan bilgi edinebileceğiniz birer “kullanım kılavuzu” yahut bilgi metni diyebiliriz. Örneğin rastgele bir komutun ne işe yaradığını öğrenmek istiyorsanız uçbirimde man ile bir arada komutun kendisini yazın. Bu biçimde birçok komut hakkında epey yararlı bilgiler edinebilirsiniz.

Aşağıdaki ekran imgesinde biz man ls yazıp ls komutu hakkındaki man sayfasını görüntüledik. Manual sayfalarını klavyenizin aşağı ve üst tuşuyla gezebilir, “q” tuşuna basarak da ilgili sayfadan çıkabilirsiniz.

12. Belgelerin Meta Bilgileri Nasıl Görüntülenir?

Belgelerin metadatalarını listelemek için, dizinlerin içerisindeki belgeleri listeleme emelli kullandığımız ls komutunu -l takısıyla kullanabiliriz.

Dikkatinizi kesinlikle görüntülenen datalar ortasında yer alan drwxr-xr-x ve -rw-rw-r– biçimindeki yazılar çekmiştir. Aslında bunlar Unix ve Unix gibisi Linux üzere işletim sistemlerindeki evrakların müsaadelerine ilişkin birtakım bilgiler. Her bir harf, işaret ve küme bize belge hakkında bilgi veriyor.

Bu harfleri 4 kümede inceleyebiliriz. Dizin, sahip, küme ve öbürleri.

Üstteki görselden hareketle uçbirimde ls -l komutunu yazdıktan sonra ortaya çıkanlara yakından bakabiliriz.

Drwxr-xr-x : Sahibi için okuma, yazma ve yürütme müsaadelerine sahip olan lakin kümeler ve sistemde bulunan öteki kullanıcılar için sırf okuma ve yürütme yapan klasör yetkisi.

-rw – rw – rw – : Sistemdeki tüm kullanıcılar tarafından okunup yazılabilen ancak çalıştırılamayan belge yetkisi.

– rw- r – r — : Kullanıcı tarafından okunup yazılabilen lakin küme ve herkes tarafından yalnızca okunabilen evrak yetkisi.

Özetle, birinci karakter belgenin tipini belirtiyor. Örneğin “d” dizin iken, “-” olağan belgeler, “s” soketler ve “/” ilişki belgeleri için kullanılıyor. Sonraki 9 karakter ise belgeye ilişkin müsaadeleri belirtmekte. “–r” read (okuma), “w” write (yazma), “x” ise yürütme manasına geliyor.

Birinci üç karakterden oluşan küme, evrakın sahibine ilişkin müsaadeleri belirtirken sonraki öbür üçlünün dahil olduğu karakterler ise kümelerin müsaadelerini tabir ediyor. Son üçü ise kümenin modülü olmayan başkalarına verilmiş müsaadeler hakkında bilgi veriyor.

Örneğin drwxr-xr-x yapısında, sahibi olanda okuma, yazma ve yürütme müsaadelerinin tamamı mevcutken küme ve başkaları sadece okuma ve yürütme yetkisine sahip oluyor.

İpucu: Belge boyutunu insanların anlayabileceği bir biçimde listelemek için -l takısıyla birlikte -h takısını da kullanabilirsiniz.

13. Belgelerin Müsaadelerini Değiştirmek

Linux sistemlerde kimi vakit evrakların müsaadelerini çeşitli durumlarda değiştirmeniz gerekebiliyor. Bu durumlarda “change mode” sözünün kısaltması olan chmod komutunu kullanabilirsiniz. Chmod’un iki farklı kullanım formu mevcut. En bilinen tekniklerden olan harf sisteminde müsaade eklemek, kaldırmak yahut atamak emeliyle + , -, ve = işaretlerini kullanabilirsiniz. “A, o, u, g” üzere harfler sırasıyla “tümünü (all)”, “diğerlerini (others)”, “sahibini (owner)” ve “grubu (group)” temsil eder

Örneğin chmod u = rwx belge halinde kullanılan komutla (dosya yazan yere evrakın kendisi gelmeli), yetkisi yükseltilecek olan belge hangisiyse o evrakın sahibine okuma, yazma ve yürütme müsaadeleri verilir.

Yeniden emsal biçimde chmod o+w evrak formunda yazılan komut yardımıyla da öbürleri için yazma müsaadesi eklemiş oluyorsunuz. chmod g-r belge biçimindeki kullanım ise evrakın ilişkin olduğu kümenin okuma müsaadesini kaldırır. chmod a+x evrak komutu ile de herkes için yürütme müsaadesi tanımlanmış oluyor.

Herkes için yapılacak bir değişiklik kelam konusu ise “a” belirtmeye gerek yok, rastgele bir harf belirtmeden yapılan +x yahut -r üzere müsaade tarifleri otomatik olarak herkese uygulanmakta.

İkinci izinleme prosedürü ise sayı kullanarak izinleme. Bu formda müsaadeleri ayarlamak istiyorsanız “r, w, x” harfleri yerine “4, 2, 1” kullanabilirsiniz. Bu pahalar bizler için dizinleri tabir edeceğinden yanyana 3’lü kümeler halinde toplanıp yazılırlar.

Örneğin chmod 761 belge formunda bir chmod kullanarak müsaadeleri ayarlarsanız; sırasıyla evrak sahibine, kümeye ve başkalarına rwx, rw ve r müsaadeleri vermiş olursunuz. Bu formülde 7, 4+2+1 olduğundan “r,w,x” için olan tüm yetkileri tabir eder. Tıpkı formda 6 sayısı da “r, w” için olan yetkileri söz ediyor. 1 ise anlayabileceğiniz üzere “x” yetkisini tabir etmekte.

14. Evraklara İlişkin Vakit Damgalarını Görüntüleme ve Değiştirme

Evrakların vakit damgalarını değiştirmek maksadıyla touch komutunu kullanabilirsiniz.

Bir evrakta genel itibariyle birbiriyle bağlantılı üç vakit damgası bulunur. Bunlar: Erişim vakti (Access time), Düzenlenme vakti (Modification time) ve Değişiklik vakti (Change time) formundadır. “Access time” ve “modification time” damgalarının ne olduğunu aslında isimleri açıklarken, “change time” ise evraka ilişkin bilgilerin depolandığı inode’u tabir eden damgadır.

Vakit damgalarını görüntülemek istersek “status” sözünün kısaltılmışı olan stat komutunu kullanabiliriz. Aşağıdaki görselden de anlayabileceğiniz üzere vakit damgaları evrakın ne vakit değişikliğine uğradığına dair değerli bilgileri bizlere gösterir.

Şayet belgenize ilişkin erişim damgasını (Access time) değiştirmek isterseniz -a takısıyla touch komutunu kullanabilirsiniz. -m takısı yardımıyla da benzeri formda evrakta düzenleme yapılan tarihi değiştirebilirsiniz.

Örneğin touch –t 201705082300.02 -a dosya1 formunda gireceğimiz komutla, belgeye ilişkin olan erişim vakit damgasını 2017/05/08 saat 23.00.02 halinde değiştirmiş oluruz.

Bu formda bir tarih girmek baş karıştırıcı geldiyse kolayı da var. Okunabilir bir tarih ve saat seçmek için d takısından faydalanabilirsiniz. Örneğin touch -d “1993-01-12 23:00:01” -a dosya1 formunda kullanabilirsiniz. Yahut touch -d “3 hours ago” -a dosya1 biçiminde de kullanabilmeniz mümkün.

15. Belge Çeşitlerini Belirlemek

Evrak tiplerini belirlemek için ismi üstünde file komutu kullanılıyor. file komutunun çalışması için gereken değişken evrakın ismidir. Şayet bir dizinde yer alan tüm belgelerin cinslerini görüntülemek istiyorsanız joker karakterleri kullanabilirsiniz. Örneğin file * üzere.

16. İndirdiğim Yürütülebilir Belge Neden Çalışmıyor?

Linux ve başka Unix-Like sistemlerde, bir evrakın yürütülebilir olup olmaması Windows sistemlerdeki üzere uzantısına ve içeriğine bağlı değildir. Belge yürütülebilirlik müsaadesine sahipse yürütülebilir olarak kabul edilir ve çalıştırılabilir.

Bu nedenle bir evrak indirildiğinde, evraka ilişkin özgün müsaadelerin ne olduğu sistem tarafından bilinmediğinden Umask tarafından varsayılan muhakkak bir müsaade yapısı ayarlanır.

Şayet indirdiğiniz belgeyi nitekim yürütülebilir halde kullanmak istiyorsanız anlatmış olduğumuz chmod komutunu kullanarak gereken yürütme müsaadesini ilgili belgeye vermelisiniz. Bu güvenlik bakımından da düzgün bir şey çünkü ezkaza indirdiğiniz belgeleri böylelikle yürütme imkanınız bulunmadığından ziyanlı yazılımların sisteminize bulaşma ihtimali biraz daha azalır.

17. Belgelerde yer alan yeni satırları, sözleri ve baytları yazdırmak

Bir belgede yer alan satırsonlarını, söz ve bayt sayısını uçbirim ekranında yazdırmak için “word count” sözünün kısaltılması olan wc komutunu kullanabilirsiniz. Aşağıdaki ekran imgesinde birinci yazan 4 sayısı satır numarasını, bir sonraki 5 ise söz sayısını, en son yazan 43 ise evrakın bayt boyutunu gösteriyor.

Şayet çıktıda satır, sözcük ve baytları başka ayrı görmek istiyorsanız sırasyla -l, -w ve -c takılarıyla birlikte wc komutunu kullanabilirsiniz.

18. Evrak ve Dizinlerin Disk Kullanımını Görüntülemek

Linux sistemlerde, belgeleriniz ve dizinlerinizin ne kadar disk kullanımında bulunduğunu uçbirimden görüntülemek için “disk usage” yani disk kullanımı sözünün kısaltması olan du komutunu kullanabilirsiniz. Şayet belgenin disk kullanımını daha anlaşılır bir halde göstermek istiyorsanız -h takısından yararlanabilirsiniz.

Burada dikkat edilmesi gereken kıymetli bir şey daha var. du komutu yardımıyla görüntülediğiniz boyut, ls -l yardımıyla görüntülediğiniz gerçek boyuttan daha farklı olabilir. Bu iki farklı sonucun ardında yatan sebep aslında evrak sistemlerinin çalışmasındaki iki şeyden kaynaklanıyor. Slack space ve Sparse files.

Bu iki tarifi açıklayacak olursak, slack space yani depolamadaki blok mantığından ötürü oluşan bir artık alan. Örneğin diskinizdeki bir bloğun boyutundan daha az boyutta bir evrak depolanırsa bu durum meydana gelebiliyor. Sparse files ise içeriği boş evrakların dosya sisteminde rastgele bir gereksiz alan kaplamaması için verimlilik emelli özet bilgisinin yazıldığı seyrek evraklar manasına geliyor.

Bu nedenle du komutu bize belgenin dosya sistemindeki boyutunu verirken, ls -l bize gerçek boyutunu verir. İşte boyut farkı da bu nedenle oluşuyor.

Şayet du komutu yardımıyla alt dizinlerin de boyutlarının toplamını görüntülemek istiyorsanız -s takısını, farklı ayrı biçimde ekrana yazdırmak istiyorsanız -S takısını kullanmalısınız.

Şayet makul bir dizinin yahut belgenin yer aldığı belge sistemine ilişkin diskin kullanılabilir alanını görüntülememiz gerekiyorsa bunun için “disk free” yani disk boşluğu sözünün kısaltması olan df komutunu kullanabiliriz. Komut satırına yazdırılan sayılar size anlaşılmaz geldiyse -h takısını kullanarak daha anlaşılır hale getirebilirsiniz.

df komutunu rastgele bir belge yahut dizin belirtmeden çalıştırırsanız tüm belge sisteminin disk kullanımını ekrana yazdıracaktır.

19. İki Belgeyi Karşılaştırmak

Linux sistemlerde çalışırken iki belgeyi karşılaştırmamız gerektiğinde tek tek belgelerin pozisyonlarına gidip çalıştırmamıza gerek yok. Komut satırı üzerinden bunu daha kolay bir biçimde yapabiliriz.

Birinci olarak cat komutuyla karşılaştırmak istediğim metin belgelerine bakmak istiyorum.

Metinler birbirine bir oldukça benziyor. Şayet karşılaştırma yapacaksanız cat komutunu da kullanabilirsiniz lakin bu bizim pek de işimize yaramıyor çünkü ikisinin ortasındaki farkı bulmamız lazım. Bunun için “fark” anlamınaki “diffrerence” sözünün kısaltması olan diff komutunu kullanacağız.

Aşağıdaki ekran imajındaki üzere diff komutunu kullandığımızda uçbirim bize iki belge ortasındaki farkı gösterecektir. Çıktının en üstünde yer alan 3c3 dikkatinizi çekmiş olmalı. Aslında bu iki evraktaki hangi satırda değişiklik olduğunu gösteren bir ipucu. Bizim yaptığımız karşılaştırmaya nazaran her iki evrakın da üçüncü satırında farklılık mevcut.

Birinci evraka ilişkin satırlar < ile işaretlenirken, ikinci belgeye ilişkin olanlarsa > ile gösterilir.

Not: diff komutu c karakteri ile değişikliğin olduğu satırı belirtirken, karşılaştırmada evraklara hangi satırların eklenmesi yahut silinmesi gerektiğini de kimi karakterler ile gösterir. Bunlar a (add/ekleme), d (delete/silme) olmak üzere iki tanedir.

20. Bir Belgenin Birinci ve Son Satırlarını Görüntülemek

Bir evrakın birinci ve son satırlarının bir kısmını komut satırı kullanarak görüntülemek istiyorsanız “baş” ve buradaki kullanımıyla “son” manasındaki head ve tail komutlarını kullanabilirsiniz. Bu komutlar, bir bahis üzerinde çalışırken belgenin içeriğine acilen göz atmak istediğinizde çok yararlı olacaktır.

Örneğin head -n3 YazıDosyası komutuyla “YazıDosyası” ismindeki metin dokümanının birinci üç satırı ekrana yazdırılır. Tıpkı biçimde son 3 satırını yazdırmak için de tail -n3 YazıDosyası komutunu kullanabilirsiniz.

Şayet rastgele bir satır belirtmezseniz her iki komut da hangisini kullandığınıza bağlı olarak 10 satırı ekrana yazdırır.

21. Bir Komutun Çıktısını Görüntülerken Birebir Anda Saklamak

Diyelim ki uçbirimde rastgele bir komutla çalışırken edindiğiniz çıktıları görüntülerken birebir anda öteki bir evraka yazdırmak istiyorsunuz. Bunun için ismi aslında su tesisatlarında kullanılan “T” borusundan gelen tee komutunu kullanabilirsiniz. Örneğin ls -l | tee komutciktisi biçiminde bir kullanım yaptığımızda tıpkı anda hem ls -l komutunu çalıştırmış oluruz, hem de ilgili komutun çıktısını diğer bir evrakta saklarız.

tee komutunu genel itibariyle yaptığımız işlerin günlüklerini tutmak için yahut birden fazla evraka birebir şeyi yazdırmak için kullanırız. Mesela echo “Technopat.NET” | tee dosya1 > dosya2 komutu her iki evraka da Technopat.NET yazısını işler.

22. Bir Belgeyi Arşivlemek ve Arşivden Çıkarmak

Linux sistemlerde çalışırken sıklıkla birtakım belgeleri arşivlerden çıkaracak, yahut daha evvel rastlamadığınız birtakım arşivleme algoritma ve uzantılarıyla belgeleri sıkıştıracaksınız.

Genel itibariyle Linux sistemlerde daha çok “.tar”, “.tar.gz”, “.bz2” uzantıları ve TAR algoritması kullanılır. İşte bu noktada tar komutunu epeyce sık kullanacağız.

Birinci olarak bir klasörü nasıl arşivleyebileceğinize değinelim. Örneğin birinciklasor isimli klasorü ben sıkıştırmak istiyorum. Bunun için tar -cvf arsivim.tar birinciklasor/ formunda bir komut girdiğimde ilgili klasör sıkıştırılır ve arsivim.tar isminde bir arşiv belgesi oluşturulmuş oluyor. -cvf’nin manasına ise tek tek inceleyerek açıklık getireceğiz. -c takısı tar komutuna arşiv oluşturmasını, -v ise Tarball’a (TAR için kullanılan terim) eklenen belgeleri görüntülenmesini, -f ise belgenin ismini belirtiyor.

Şayet oluşturduğumuz belgeyi daha sonra tekrardan arşivden çıkartmak istiyorsak da tar -xvf arsivim.tar halinde bir komut kullanabiliriz. -xvf takısındaki x, arşivi çıkartmasını söyler. Şayet belgeyi farklı bir dizine çıkartmak istiyorsanız C takısını da kullanabilirsiniz. Örneğin aşağıdaki ekran manzarasında farklı bir dizine ilgili arşiv içeriğini çıkarttık ve ls -l ile denetim ettik.

Oluşturmak istediğiniz arşiv biçimi “.tar.gz” ve “.tar.bz2” ise sırasıyla fazladan z ve j kullanabilirsiniz. Tar.gz arşivlerini de çıkartırken olağan “.tar” uzantısında olduğu üzere -xvf takısından yararlanabilirsiniz. Yeni TAR sürümleri bizim için gereken z takısını otomatik olarak ekler.

Arşivlerle çalışırken şayet komut satırı yardımıyla yalnızca arşivlerin içeriğini görüntülemek isterseniz de -tvf işinizi görecektir.

Şayet haşir neşir olduğunuz arşiv tipi “.zip” ise zip komutunu kullanın.

23. Vim ve Nano Editörlerini Kullanmak

Vim (Vi IMproved) ve GNU/Nano birçok kullanıcı tarafından sevilen en güçlü konsol tabanlı metin düzenleyicilerin başında geliyor. GNU/Linux sistemlerde terminal üzerinde çalışırken rastgele bir evrakın metnini düzenlemeniz gerektiğinde en işinize yarayacak iki editörün bunlar olduğunu söyleyebiliriz. Kimi kullanıcı Vim’i tercih ederken, kimisi de alışkanlık gereği Nano editörünü tercih ediyor. Biz bu başlık altında her ikisinin de kullanımına değineceğiz.

Birinci olarak belirtmeliyiz ki bu bahsettiğimiz editörler kimi Linux dağıtımlarında hazır heyeti halde bulunurken, kimilerinde da yer almıyor. Bu durumda kendimiz indirip kurmalıyız, neyse ki epey kolay.

Ben halihazırda Debian tabanlı bir dağıtım olan Kubuntu kullandığım için sudo apt-get install komutu yardımıyla her iki editörü de aşağıdaki ekran imgelerinde gösterildiği üzere kurdum. Sizler de kullandığınız dağıtıma ve paket yöneticisine bağlı olarak uygun komutlarla kurabilirsiniz.

Nano için;

Vim için;

a. Vim Editör Kullanımı

Vim epey güçlü bir metin düzenleme aracı. Kullanımı da bir epey kolay. Bir belgeyi editörle açmak için suramı yaptıktan sonra vim komutunu kullanabilirsiniz.

vim metinbelgesi1 halinde bir kullanım yaptığınızda halihazırda bu türlü bir evrak varsa düzenlemeniz için açacak, şayet ilgili evrak yoksa evvel oluşturacak daha sonra açacaktır.

Vim editöründe insert mode (ekleme modu) ve command mode (komut modu) olmak üzere iki adet çalışma modu mevcuttur. Editör belgenizi genel itibariyle command mode biçiminde açar. Bu modda ilgili metin belgesinin içeriğinde gezinebilirsiniz lakin düzenleyemezsiniz. Düzenleme yapabilmek için bir öteki çalışma modu olan ekleme moduna geçmemiz gerekiyor. Bunun için i tuşuna basmamız kâfi olacak.

Belgemizi düzenlemeyi bitirdiğimizde kaydetmeden evvel Esc tuşuna basarak editörün ekleme modundan çıkmamız gerekiyor. Esc tuşuna basalım ve ekleme modundan çıkalım.

Komut moduna geçtiğimizde Vim artık bizden komut almaya tekrardan hazır hale gelmiş bulunuyor. Metin dokümanımızda yapmış olduğumuz değişiklikleri kaydetmek için :w komutunu yazıp Enter tuşuna basalım. Komutunuzun Enter demeden evvel terminalin en altında yazdığından emin olun. Şayet metin dokümanının içerisinde yazıldıysa komut moduna geçmemişsinizdir. Ekleme moduna geçip o denli deneyin.

Artık Vim editörden çıkabiliriz. Bunun için :q komutunu yazıp Enter tuşuna basın yahut tek seferde değişiklikleri kaydetmek isterseniz :wq komutunu da kullanabilirsiniz.

İpucu: Şayet süratlice bir satırı silmek yahut kopyalamak istiyorsanız Vim editörle ilgili metin evrakını açın ve ilgili satıra gelin. Silmek için d tuşuna dd olacak biçimde iki sefer, kopyalamak için de y tuşuna yy olacak biçimde iki sefer basın. Yapıştırmak için de yapıştırılacak satıra gelip p tuşuna basmanız kâfi.

Gördüğünüz üzere Vim kullanımı hayli kolay.

b. Nano Editör Kullanımı

GNU/Linux’da kullanılabilecek en güçlü ve kolay konsol tabanlı editörlerden birisi ise Nano. Bilgisayarınıza gereken konseyimi yaptıktan sonra uçbirimden nano komutuyla çağırabilirsiniz.

Uçbirim, nano metinbelgesi1 formunda bir komut yazdığınızda yaptığınızda sizin için Nano aracıyla aşağıdaki ekran manzarasındaki üzere ilgili belgeyi rahatça düzenleyebileceğiniz biçimde açar. Bir kullanıcının işine yarayacak tüm özellikler detaylı bir biçimde editörde yer alır.

Nano editörde gereken düzenlemeyi yaptıktan sonra CTRL tuşu yardımıyla gösterilen kombinasyonları kullanabilirsiniz.

Düzenlememizi kaydedip editörden çıkmak için CTRL+X kombinasyonundan faydalanalım. Karşımıza aşağıdaki üzere değişikliği onaylayıp onaylamadığımızı soran bir yazı çıkacak. E diyerek devam edelim.

Üsttekini uyguladıktan sonra rastgele bir şey yapmadan Enter diyerek editörden çıkabilirsiniz.

İpucu: Düzenlemeyi süratlice ve kolaylıkla kaydedip editörden çıkabilmek için CTRL+S ve CTRL+X kombinasyonlarını kullanabilirsiniz. CTRL+S düzenlemeyi kaydeder, CTRL+X ise editörden çıkar.

24. Art Planda Çalışan Misyonları Listelemek

Linux sistemlerde art planda çalışan vazifeleri listelemek için dağıtımlarla genelde bir arada gelen sistem izleyiciye alternatif olarak, “table of process” yani “işlem tablosu” sözünün kısaltması olan top komutu girilerek top aracı çalıştırılabilir. Çıkmak için “q” tuşuna basın.

25. Programları Sonlandırmak

Komut satırı yardımıyla cevap vermeyen programları durdurmak için “öldürme” manasına gelen kill komutunu kullanabilirsiniz. kill komutu sinyal ismi verilen parametrelerle çalışır. Sinyallerin tam listesini elde etmek için kill -l komutunu kullanabilirsiniz.

Genel itibariyle kill komutunun sırf birkaç sinyalini sıkça kullanırız. Bunlar SIGTERM (signal terminate) ve SIGKILL (signal kill) olmak üzere iki tanedir.

SIGTERM bir programa durdurma isteği gönderir ve halihazırdaki durumunu uygun hale getirmesine bir mühlet müsaade eder. kill komutunu kullanırken varsayılan olarak rastgele bir sinyal belirtmezseniz, durduracağınız misyonlara bu sinyal gönderilecektir.

SIGKILL sinyalinde ise program derhal sonlandırılır, rastgele bir vakit tanınmaz ve kaydedilmemiş değişiklikler kaybedilir.

Sinyaller ile rastgele bir misyonu, yazılımı sonlandırabilmemiz için PID numarasını bilmemiz gerekir. Bunun için bir evvelki başlıkta anlatmış olduğumuz top aracını kullanabilirsiniz.

Örneğin aşağıdaki ekran manzarasında görebileceğiniz üzere, Skype uygulamasına ilişkin süreçlerden birisini kill komutuyla sonlandırdım. Öbür misyonlardan birisini de sonlandırmadığım için uygulamada kusur oluştu. Ancak kill komutu emeline ulaştı görebileceğiniz üzere.

26. Terminal Kullanarak Evrak İndirme

Linux sistemlerde terminal kullanarak evrak indirmek için “world wide web get” manasındaki wget komutunu kullanabilirsiniz. wget komutuyla internet üzerindeki indirilebilir içerikleri çekebilirsiniz. Kullanımı wget baglantiyolu biçimindedir. Şayet indirdiğiniz belgeyi farklı isimlendirmek istiyorsanız -O takısını kullanabilirsiniz.

İndirdiğiniz evraklar /home ana dizininin altındaki kullanıcı dizininde yer alır.

Örneğin aşağıdaki ekran manzarasında wget komutu yardımıyla Technopat Toplumsal ana sayfasının HTML kopyası indirilmiştir.

27. Konsolu Temizleme

Konsol, uçbirim yahut terminal; artık her ne diyorsanız komut satırını ağır bir formda kullandıkça sık sık temizlemek isteyeceksiniz. Kabuğu tertemiz etmek için clear komutunu kullanmanız kâfi olacaktır.

28. Kullanıcılara Sistem İletisi Göndermek

Unix ve Linux üzere sistemler çok kullanıcılı kullanıma uygun bir yapıya sahip olduğu için bir başka kullanıcıya mesaj gönderilmek istenebilir. Bunu yapmanın pratik bir yolu ise yazdırma manasına gelen write komutunu kullanmak. write kullanıcıadı biçiminde birinci olarak bildiri gönderilir. Daha sonra iletilmek istene bildiri yazılır. CTRL+D ile “End of File” gönderip çıkabilirsiniz.

29. Sistemin Ne Kadar Müddettir Ayakta Olduğunu Öğrenme

Linux sistemlerin ne kadar ayakta olduğunu öğrenmek için uptime komutunu kullanabilirsiniz.

30. Bir Komutun Ne İşe Yaradığını Özet Halinde Öğrenmek

Bir komutun ne işe yaradığını bilmiyorsanız, uzun man sayfalarını da okumak istemiyorsanız whatis komutu yardımıyla tek satırlık özetler halinde komutun ne işe yaradığını öğrenebilirsiniz.

Sonuç

Bu yazımızda GNU/Linux sistemleri yeni tanımaya başlayanların işine yarayacağını düşündüğümüz birçok komuta ve komut satırının nasıl kullanıldığına uzunca değindik. Bu komutları öğrendiğinizde aslında size korkutucu gelen konsol ekranı grafik arayüzden daha pratik hale gelecek, kimi vakit da size ziyadesiyle vakit kazandıracak.

Şayet sizlerin de eklemek istediği yararlı bir komut varsa yorumlarda belirtebilir, Linux hakkındaki sorularınız için de Technopat Sosyal’e bahis açabilirsiniz.

Kaynak: Technopat

Başa dön tuşu