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

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

Bu yazımızda yeni başlayanlar için Linux komut satırına ve sıkça kullanılan komutlara değineceğiz.

Komut satırı… Yıllar önce tedavülden kalktığı düşünülen eski bir yazılımdan ibaret gibi gözüken fakat halen önemini 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 belli başlı şeyleri yerine getirebilmek için kullanılabilecek en iyi yollardan birisi.

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

Bilmeniz Gerekenler: Linux Sistemlerde Ana Dizin Nedir?

Komutları açıklamaya geçmeden önce temel terimlerden birisinden daha bahsetmemiz gerekiyor zira Linux dağıtımlarında kullanılan dizin yapısı yeni başlayanlar için kafa karıştırıcı olabilir.

Bildiğiniz gibi Linux sistemler birden çok kullanıcının aynı anda kullanabilmesine imkan tanıyan bir yapıya sahip. Bu nedenle kullanıcıların her biri için yapacağı değişiklikleri, dosyaları 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 şeklinde. Ana dizinin altında bulunan kullanıcılara ait ikinci ana dizinlerin adı her zaman oturum açmak için kullandığımız kullanııcı adıyla aynıdır.

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

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

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

Linux sistemlerde uçbirimi her yeni açmanızda, varsayılan başlangıç dizininde bulunursunuz. Başka 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” kelimelerinin aslında kısaltması.

Merak etmeyin, başka dizinlere nasıl geçebileceğinizi de anlatacağız.

Aşağıdaki ekran görüntüsünde de göründüğü gibi, pwd komutu çalıştığımız dizini ifade ediyor. Gördüğünüz gibi “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 adını ve tam yolunu bilmeliyiz. CD, Change Directory, yani dizini değiştir kelimelerinin kısaltması oluyor.

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

Eğer çalıştığınız dizin dışındaki bir konuma geçiş yapacaksanız, cd /home/akil/Belgeler şeklinde konumu tam olarak belirterek cd komutundan yararlanabilirsiniz. Eğer bir önceki ç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 görüntüsünde de gördüğünüz gibi 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 amacıyla list kelimesinin kısaltması olan ls komutu kullanılır. Eğer komutla beraber herhangi bir dizin belirtmediysek bulunduğumuz klasörün içeriği listelenir.

İçeriğini görüntülemek istediğimiz konum bir alt klasör ise doğrudan ls komutunun sağına dizin adını yazabiliriz, değilse tam konumu belirtmeliyiz.

Uçbirimde elde ettiğimiz çıktıdaki renklerin her biri bir anlam ifade eder. Bu renkler yardımıyla ilgili dizin içerisinde bulunan dosyaların hangi türden olduğunu kolayca 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 Dosyanın İçeriğini Görüntülemek

Bir dosyanın 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 dosya adını cat ile beraber kullanarak içeriği görüntüleyebilirsiniz. Bu komutun tek dezavantajı, çıktı yalnızca kabuğa sığabilecek kadar büyük olabilir ve görüntülenebilir. cat ise aslında concatenate, yani sıralama kelimesinin kısaltılmışı.

İşte bu tarz durumlar için cat’in farklı bir kullanımı daha söz konusu. less komutu ile beraber cat dosyaadi | less şeklinde tüm çıktıyı daha az komut satırı kaplayacak ve terminale sığacak bir hale getirebilirsiniz. Böylece herhangi bir problem yaşamadan yukarı 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 yeterli.

5. Yeni Bir Dosya Oluşturmak

Terminal yardımıyla yeni bir dosya oluşturmak için touch komutunu kullanabilirsiniz. Bu komutun adı üstünde dokunma anlamında olan touch kelimesinden geliyor. Herhangi bir dosya oluştururken bir nevi dokunuş yapmış oluyoruz diye düşünebilirsiniz. Bu komutu kullanırken dosya oluşturmak amacıyla değişken olarak dosya adını ve uzantısını kullanırız. Örneğin: touch yeniyazi.txt

Eğer bulunduğunuz dizin dışında bir konumda yeni dosya oluşturmanız gerekiyorsa tam konumu kullanmalısınız. Örneğin: touch /home/akil/Masaüstü/yazılar/technopatyazi.txt gibi.

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

6. Bir Dosyayı Yeniden Adlandırmak, Kopyalamak ve Silmek

Linux sistemlerde uçbirim yardımıyla bir dosyayı yeniden isimlendirmek istiyorsak move kelimesinin kısaltması olan mv komutunu kullanabiliriz. Örneğin, metinbelgesi1.txt dosyasının adını metinbelgesi2.txt olarak değiştirmek için şu şekilde bir komut çalıştırılması yeterli: mv metinbelgesi1.txt metinbelgesi2.txt. Birçok komutta bahsettiğimiz gibi ilgili dosya çalıştığınız dizinde bulunmuyorsa tam yolu kullanabilirsiniz.

mv komutunu aynı zamanda bir dosyayı başka bir konuma taşımak için de kullanabilirsiniz. Bu komut yardımıyla yaptığınız şey grafik arayüzdeki kes-yapıştır işlemiyle aynı. Örneğin çalıştığımız dizinde bulunan metinbelgesi1.txt dosyasını başka bir konuma taşımak için mv metinbelgesi1.txt /home/akil/Belgeler şeklinde bir kullanım yaparız.

Eğer bir dizindeki dosyayı taşımak yerine kopyalamak istiyorsanız copy kelimesinin kısaltılmışı olan cp komutunu kullanmalısınız. mv komutunda olduğu gibi cp komutunda da taşıma işlemi için bir hedef belirtmemiz gerekiyor. Örneğin metinbelgesi1.txt dosyasının bir kopyasını da Belgeler dizinimizde oluşturmak istiyorsak şu şekilde bir kullanım yapabiliriz:

cp metinbelgesi1.txt home/akil/Belgeler

Uçbirimde bir dosyayı silmek istiyorsak remove kelimesinin kısaltılmışı olan rm komutundan yararlanırız. Bu komuta ait argüman (kullanım şekli) dosya adıdır. Örneğin rm metinbelgesi1.txt komutunu kullandığımızda kabuk bizim için çalışma dizinimizde ilgili dosyanın olup olmadığını kontrol ediyor. Varsa kaldırıyor. Eğer uzak konumdaki bir dosyayı silmek istiyorsak argüman olarak konum kullanmamız yeterli oluyor. Örneğin: rm /home/akil/Belgeler/metinbelgesi.txt.

Dosya değil de dizinleri silmek istiyorsanız rm komutuyla beraber -r seçeneğini kullanmanız yeterli. Örneğin rm -r /home/akil/belgeler/yeniklasor şeklinde bir kullanımda yeniklasor dizini tüm alt dizinlerle beraber silinir.

7. Dosyaları Aramak

Terminal yardımıyla belirli bir dizinde yer alan dosyaları aramak amacıyla find komutunu kullanabilirsiniz. find komutunu kullanırken bir konuma ve dosya adına ihtiyacımız var. Örneğin ben kendi kullanıcımın bulunduğu ana dizinde yer alan “yazim1” adlı dosyayı aramak istiyorum. Bunun için find komutunu aşağıdaki gibi kullanabiliriz. -name takısını kullanarak dosyanın tam adını belirtiyoruz.

Eğer özellikle bir yol belirtmezseniz, ilgili dosya halihazırda çalışmış olduğunuz dizinde aranacaktır.

Bildiğiniz gibi her ne kadar faydalı olsa da bu tarz bir kullanım çok işlevsel değil. İşte tam burada joker karakterler imdadımıza yetişiyor. Örneğin diyelim ki ben /home/akil/ Belgeler dizini altında bulunan text dosyalarını aratmak istiyorum. Bunun için aşağıdaki gibi bir kullanımda bulunabilirsiniz.

Not: * (yıldız) jokerini herhangi bir sayıda, herhangi bir karakteri ifade etmek yerine kullanırız. Örneğin yazı* şeklinde bir kullanım sonucu içinde yazı geçen her dosya listelenir. “yazım”, “yazılarım” gibi.

8. Dosyalarda Yer Alan Metinleri Aratmak

Günlerden birinde aceleyle bir metin belgesine veya açılabilir dosyaya bir not yazdınız fakat onca satır arasından geri bulamıyor musunuz? Tam bu sırada imdadınıza “globally search for a regular expression and print matching lines” yani “Genelde normal bir ifade 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 dosya adı ve anahtar kelimemizden yararlanırız.

Örneğin /home/akil/Belgeler/metin1 dosyasında yer alan Technopat kelimesini içeren tüm satırları aratmak istiyorum diyelim. Bunun için grep komutunu şu şekilde kullanabiliriz.

Not: Anahtar kelime büyük ve küçük harfe duyarlı.

Eğer çıktımızda ilgili anahtar kelimenin geçtiği satır numaraları da yazsın istiyorsak -n takısından yararlanabiliriz. Bu durumda ilgili komutu aşağıdaki gibi kullanıyoruz.

find komutunda olduğu gibi belirttiğiniz dizinde yer alan dosyalarda ilgili anahtar kelimeyi aramanız gerekiyorsa joker karakterlerden faydalanabilirsiniz. Fakat 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 sürekli uzun dosya adları 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 ad ve yolları TAB tuşunu kullanarak tekrardan otomatik olarak yazdırabilirsiniz.

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

Home dizini örneğinde zaten başka bir şeyin gelme ihtimali olmadığından, uçbirim bizim için başarıyla devamını tamamlayabildi fakat benzer adlarla karşılaşıldığında, komut satırına yol gösterecek birkaç harfi daha yazmanız gerekiyor. Mesela aynı 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 kere basarsanız yazmak istediğiniz şey hakkında aşağıdaki gibi ipucu veriyor.

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

Root, bildiğiniz gibi Linux ve Unix tabanlı sistemlerde en yetkili ve tüm kullanıcılar üzerinde işlem yapma hakkına sahip olan kullanıcıya denir.

Bir dosyanın yetkilerini sınırlamak, sahiplik haklarını değiştirmek veya sistem dizinlerine müdahale etmek gibi normal kullanıcıda olmayan yetkiler “root” kullanıcısına geçilerek yapılabilir. Adı üstünde sistemin “kök” hesabıdır diyebiliriz. Tahmin edebileceğiniz gibi son kullanıcılardan ziyade sistem yöneticileri ve deneyimli kullanıcılar root yetkilerine sahip hesaplardan faydalanırlar.

“root” kullanıcıları günümüzdeki birçok Linux dağıtımında kurulum esnasında güvenlik nedenlerinden ötürü bilinçli olarak parolasız bir şekilde 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 grubuna dahil “akil” kullanıcısı normal işlerini klasik kullanıcı yetkileriyle yerine getirebiliyorken, ihtiyaç halinde root yetkilerine sahipmiş gibi çalışabilir. Bu durumda “superuser do” yani süper 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 işlemini 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 düzey dizin ve eğik çizgiyle (/) ifade 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 Yararlar?

Man (Manual) sayfaları hakkında aslında Linux sistemlerde yer alan bilgi edinebileceğiniz birer “kullanım kılavuzu” veya bilgi metni diyebiliriz. Örneğin herhangi bir komutun ne işe yaradığını öğrenmek istiyorsanız uçbirimde man ile beraber komutun kendisini yazın. Bu şekilde birçok komut hakkında oldukça faydalı bilgiler edinebilirsiniz.

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

12. Dosyaların Meta Verileri Nasıl Görüntülenir?

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

Dikkatinizi muhakkak görüntülenen veriler arasında yer alan drwxr-xr-x ve -rw-rw-r-- şeklindeki yazılar çekmiştir. Aslında bunlar Unix ve Unix benzeri Linux gibi işletim sistemlerindeki dosyaların izinlerine ait birtakım bilgiler. Her bir harf, işaret ve grup bize dosya hakkında bilgi veriyor.

Bu harfleri 4 grupta inceleyebiliriz. Dizin, sahip, grup ve diğerleri.

Yukarıdaki 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 izinlerine sahip olan fakat gruplar ve sistemde bulunan diğer kullanıcılar için yalnızca okuma ve yürütme yapan klasör yetkisi.

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

– rw- r – r — : Kullanıcı tarafından okunup yazılabilen fakat grup ve herkes tarafından sadece okunabilen dosya yetkisi.

Özetle, ilk karakter dosyanın tipini belirtiyor. Örneğin “d” dizin iken, “-” normal dosyalar, “s” soketler ve “/” bağlantı dosyaları için kullanılıyor. Sonraki 9 karakter ise dosyaya ait izinleri belirtmekte. “–r” read (okuma), “w” write (yazma), “x” ise yürütme anlamına geliyor.

İlk üç karakterden oluşan küme, dosyanın sahibine ait izinleri belirtirken sonraki diğer üçlünün dahil olduğu karakterler ise grupların izinlerini ifade ediyor. Son üçü ise grubun parçası olmayan diğerlerine verilmiş izinler hakkında bilgi veriyor.

Örneğin drwxr-xr-x yapısında, sahibi olanda okuma, yazma ve yürütme izinlerinin tamamı mevcutken grup ve diğerleri yalnızca okuma ve yürütme yetkisine sahip oluyor.

İpucu: Dosya boyutunu insanların anlayabileceği bir şekilde listelemek için -l takısıyla beraber -h takısını da kullanabilirsiniz.

13. Dosyaların İzinlerini Değiştirmek

Linux sistemlerde kimi zaman dosyaların izinlerini çeşitli durumlarda değiştirmeniz gerekebiliyor. Bu durumlarda “change mode” kelimesinin kısaltması olan chmod komutunu kullanabilirsiniz. Chmod’un iki farklı kullanım şekli mevcut. En bilinen yöntemlerden olan harf yönteminde izin eklemek, kaldırmak veya atamak amacıyla + , -, ve = işaretlerini kullanabilirsiniz. “A, o, u, g” gibi harfler sırasıyla “tümünü (all)”, “diğerlerini (others)”, “sahibini (owner)” ve “grubu (group)” temsil eder

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

Yine benzer şekilde chmod o+w dosya şeklinde yazılan komut yardımıyla da başkaları için yazma izni eklemiş oluyorsunuz. chmod g-r dosya şeklindeki kullanım ise dosyanın ait olduğu grubun okuma iznini kaldırır. chmod a+x dosya komutu ile de herkes için yürütme izni tanımlanmış oluyor.

Herkes için yapılacak bir değişiklik söz konusu ise “a” belirtmeye gerek yok, herhangi bir harf belirtmeden yapılan +x veya -r gibi izin tanımları otomatik olarak herkese uygulanmakta.

İkinci izinleme yöntemi ise sayı kullanarak izinleme. Bu şekilde izinleri ayarlamak istiyorsanız “r, w, x” harfleri yerine “4, 2, 1” kullanabilirsiniz. Bu değerler bizler için dizinleri ifade edeceğinden yanyana 3’lü kümeler halinde toplanıp yazılırlar.

Örneğin chmod 761 dosya şeklinde bir chmod kullanarak izinleri ayarlarsanız; sırasıyla dosya sahibine, gruba ve diğerlerine rwx, rw ve r izinleri vermiş olursunuz. Bu yöntemde 7, 4+2+1 olduğundan “r,w,x” için olan tüm yetkileri ifade eder. Aynı şekilde 6 sayısı da “r, w” için olan yetkileri ifade ediyor. 1 ise anlayabileceğiniz üzere “x” yetkisini ifade etmekte.

14. Dosyalara Ait Zaman Damgalarını Görüntüleme ve Değiştirme

Dosyaların zaman damgalarını değiştirmek amacıyla touch komutunu kullanabilirsiniz.

Bir dosyada genel itibariyle birbiriyle ilişkili üç zaman damgası bulunur. Bunlar: Erişim zamanı (Access time), Düzenlenme zamanı (Modification time) ve Değişiklik zamanı (Change time) şeklindedir. “Access time” ve “modification time” damgalarının ne olduğunu zaten adları açıklarken, “change time” ise dosyaya ait bilgilerin depolandığı inode’u ifade eden damgadır.

Zaman damgalarını görüntülemek istersek “status” kelimesinin kısaltılmışı olan stat komutunu kullanabiliriz. Aşağıdaki görselden de anlayabileceğiniz üzere zaman damgaları dosyanın ne zaman değişikliğine uğradığına dair önemli bilgileri bizlere gösterir.

Eğer dosyanıza ait erişim damgasını (Access time) değiştirmek isterseniz -a takısıyla touch komutunu kullanabilirsiniz. -m takısı yardımıyla da benzer şekilde dosyada düzenleme yapılan tarihi değiştirebilirsiniz.

Örneğin touch –t 201705082300.02 -a dosya1 şeklinde gireceğimiz komutla, dosyaya ait olan erişim zaman damgasını 2017/05/08 saat 23.00.02 şeklinde değiştirmiş oluruz.

Bu şekilde bir tarih girmek kafa 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 şeklinde kullanabilirsiniz. Veya touch -d “3 hours ago” -a dosya1 şeklinde de kullanabilmeniz mümkün.

15. Dosya Türlerini Belirlemek

Dosya türlerini belirlemek için adı üstünde file komutu kullanılıyor. file komutunun çalışması için gereken değişken dosyanın adıdır. Eğer bir dizinde yer alan tüm dosyaların türlerini görüntülemek istiyorsanız joker karakterleri kullanabilirsiniz. Örneğin file * gibi.

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

Linux ve diğer Unix-Like sistemlerde, bir dosyanın yürütülebilir olup olmaması Windows sistemlerdeki gibi uzantısına ve içeriğine bağlı değildir. Dosya yürütülebilirlik iznine sahipse yürütülebilir olarak kabul edilir ve çalıştırılabilir.

Bu nedenle bir dosya indirildiğinde, dosyaya ait orijinal izinlerin ne olduğu sistem tarafından bilinmediğinden Umask tarafından varsayılan belirli bir izin yapısı ayarlanır.

Eğer indirdiğiniz dosyayı gerçekten yürütülebilir halde kullanmak istiyorsanız anlatmış olduğumuz chmod komutunu kullanarak gereken yürütme iznini ilgili dosyaya vermelisiniz. Bu güvenlik bakımından da iyi bir şey zira yanlışlıkla indirdiğiniz dosyaları böylece yürütme imkanınız bulunmadığından zararlı yazılımların sisteminize bulaşma ihtimali biraz daha azalır.

17. Dosyalarda yer alan yeni satırları, kelimeleri ve baytları yazdırmak

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

Eğer çıktıda satır, sözcük ve baytları ayrı ayrı görmek istiyorsanız sırasyla -l, -w ve -c takılarıyla beraber wc komutunu kullanabilirsiniz.

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

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

Burada dikkat edilmesi gereken önemli 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 arkasında yatan sebep aslında dosya sistemlerinin çalışmasındaki iki şeyden kaynaklanıyor. Slack space ve Sparse files.

Bu iki tanımı açıklayacak olursak, slack space yani depolamadaki blok mantığından dolayı oluşan bir artık alan. Örneğin diskinizdeki bir bloğun boyutundan daha az boyutta bir dosya depolanırsa bu durum meydana gelebiliyor. Sparse files ise içeriği boş dosyaların dosya sisteminde herhangi bir gereksiz alan kaplamaması için verimlilik amaçlı özet bilgisinin yazıldığı seyrek dosyalar anlamına geliyor.

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

Eğer du komutu yardımıyla alt dizinlerin de boyutlarının toplamını görüntülemek istiyorsanız -s takısını, ayrı ayrı şekilde ekrana yazdırmak istiyorsanız -S takısını kullanmalısınız.

Eğer belirli bir dizinin veya dosyanın yer aldığı dosya sistemine ait diskin kullanılabilir alanını görüntülememiz gerekiyorsa bunun için “disk free” yani disk boşluğu kelimesinin 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 herhangi bir dosya veya dizin belirtmeden çalıştırırsanız tüm dosya sisteminin disk kullanımını ekrana yazdıracaktır.

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

Linux sistemlerde çalışırken iki dosyayı karşılaştırmamız gerektiğinde tek tek dosyaların konumlarına gidip çalıştırmamıza gerek yok. Komut satırı üzerinden bunu daha kolay bir şekilde yapabiliriz.

İlk olarak cat komutuyla karşılaştırmak istediğim metin dosyalarına bakmak istiyorum.

Metinler birbirine bir hayli benziyor. Eğer karşılaştırma yapacaksanız cat komutunu da kullanabilirsiniz fakat bu bizim pek de işimize yaramıyor zira ikisinin arasındaki farkı bulmamız lazım. Bunun için “fark” anlamınaki “diffrerence” kelimesinin kısaltması olan diff komutunu kullanacağız.

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

İlk dosyaya ait satırlar < ile işaretlenirken, ikinci dosyaya ait olanlarsa > ile gösterilir.

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

20. Bir Dosyanın İlk ve Son Satırlarını Görüntülemek

Bir dosyanın ilk 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” anlamındaki head ve tail komutlarını kullanabilirsiniz. Bu komutlar, bir konu üzerinde çalışırken dosyanın içeriğine çabucak göz atmak istediğinizde çok faydalı olacaktır.

Örneğin head -n3 YazıDosyası komutuyla “YazıDosyası” adındaki metin belgesinin ilk üç satırı ekrana yazdırılır. Aynı şekilde son 3 satırını yazdırmak için de tail -n3 YazıDosyası komutunu kullanabilirsiniz.

Eğer herhangi 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 Aynı Anda Saklamak

Diyelim ki uçbirimde herhangi bir komutla çalışırken edindiğiniz çıktıları görüntülerken aynı anda başka bir dosyaya yazdırmak istiyorsunuz. Bunun için adı aslında su tesisatlarında kullanılan “T” borusundan gelen tee komutunu kullanabilirsiniz. Örneğin ls -l | tee komutciktisi şeklinde bir kullanım yaptığımızda aynı anda hem ls -l komutunu çalıştırmış oluruz, hem de ilgili komutun çıktısını başka bir dosyada saklarız.

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

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

Linux sistemlerde çalışırken sıklıkla birtakım dosyaları arşivlerden çıkaracak, veya daha önce rastlamadığınız birtakım arşivleme algoritma ve uzantılarıyla dosyaları 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 oldukça sık kullanacağız.

İlk 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/ şeklinde bir komut girdiğimde ilgili klasör sıkıştırılır ve arsivim.tar adında bir arşiv dosyası oluşturulmuş oluyor. -cvf’nin anlamı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 dosyaları görüntülenmesini, -f ise dosyanın adını belirtiyor.

Eğer oluşturduğumuz dosyayı daha sonra tekrardan arşivden çıkartmak istiyorsak da tar -xvf arsivim.tar şeklinde bir komut kullanabiliriz. -xvf takısındaki x, arşivi çıkartmasını söyler. Eğer dosyayı farklı bir dizine çıkartmak istiyorsanız C takısını da kullanabilirsiniz. Örneğin aşağıdaki ekran görüntüsünde farklı bir dizine ilgili arşiv içeriğini çıkarttık ve ls -l ile kontrol 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 normal “.tar” uzantısında olduğu gibi -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 eğer komut satırı yardımıyla sadece arşivlerin içeriğini görüntülemek isterseniz de -tvf işinizi görecektir.

Eğer haşir neşir olduğunuz arşiv türü “.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 herhangi bir dosyanı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.

İlk olarak belirtmeliyiz ki bu bahsettiğimiz editörler kimi Linux dağıtımlarında hazır kurulu halde bulunurken, bazılarında da yer almıyor. Bu durumda kendimiz indirip kurmalıyız, neyse ki oldukça basit.

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 görüntülerinde 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 oldukça güçlü bir metin düzenleme aracı. Kullanımı da bir hayli kolay. Bir dosyayı editörle açmak için kurulumu yaptıktan sonra vim komutunu kullanabilirsiniz.

vim metinbelgesi1 şeklinde bir kullanım yaptığınızda halihazırda böyle bir dosya varsa düzenlemeniz için açacak, eğer ilgili dosya yoksa önce 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 dosyanızı genel itibariyle command mode şeklinde açar. Bu modda ilgili metin dosyasının içeriğinde gezinebilirsiniz fakat düzenleyemezsiniz. Düzenleme yapabilmek için bir diğer çalışma modu olan ekleme moduna geçmemiz gerekiyor. Bunun için i tuşuna basmamız yeterli olacak.

Dosyamızı düzenlemeyi bitirdiğimizde kaydetmeden önce 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 belgemizde yapmış olduğumuz değişiklikleri kaydetmek için :w komutunu yazıp Enter tuşuna basalım. Komutunuzun Enter demeden önce terminalin en altında yazdığından emin olun. Eğer metin belgesinin içerisinde yazıldıysa komut moduna geçmemişsinizdir. Ekleme moduna geçip öyle deneyin.

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

İpucu: Eğer hızlıca bir satırı silmek veya kopyalamak istiyorsanız Vim editörle ilgili metin belgesini açın ve ilgili satıra gelin. Silmek için d tuşuna dd olacak şekilde iki kez, kopyalamak için de y tuşuna yy olacak şekilde iki kez basın. Yapıştırmak için de yapıştırılacak satıra gelip p tuşuna basmanız yeterli.

Gördüğünüz gibi Vim kullanımı oldukça kolay.

b. Nano Editör Kullanımı

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

Uçbirim, nano metinbelgesi1 şeklinde bir komut yazdığınızda yaptığınızda sizin için Nano aracıyla aşağıdaki ekran görüntüsündeki gibi ilgili dosyayı rahatça düzenleyebileceğiniz şekilde açar. Bir kullanıcının işine yarayacak tüm özellikler ayrıntılı bir şekilde 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 gibi değişikliği onaylayıp onaylamadığımızı soran bir yazı çıkacak. E diyerek devam edelim.

Yukarıdakini uyguladıktan sonra herhangi bir şey yapmadan Enter diyerek editörden çıkabilirsiniz.

İpucu: Düzenlemeyi hızlıca ve kolayca 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. Arka Planda Çalışan Görevleri Listelemek

Linux sistemlerde arka planda çalışan görevleri listelemek için dağıtımlarla genelde beraber gelen sistem izleyiciye alternatif olarak, “table of process” yani “işlem tablosu” kelimesinin 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 yanıt vermeyen programları durdurmak için “öldürme” anlamına gelen kill komutunu kullanabilirsiniz. kill komutu sinyal adı verilen parametrelerle çalışır. Sinyallerin tam listesini elde etmek için kill -l komutunu kullanabilirsiniz.

Genel itibariyle kill komutunun yalnızca 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 süre müsaade eder. kill komutunu kullanırken varsayılan olarak herhangi bir sinyal belirtmezseniz, durduracağınız görevlere bu sinyal gönderilecektir.

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

Sinyaller ile herhangi bir görevi, yazılımı sonlandırabilmemiz için PID numarasını bilmemiz gerekir. Bunun için bir önceki başlıkta anlatmış olduğumuz top aracını kullanabilirsiniz.

Örneğin aşağıdaki ekran görüntüsünde görebileceğiniz gibi, Skype uygulamasına ait süreçlerden birisini kill komutuyla sonlandırdım. Diğer görevlerden birisini de sonlandırmadığım için uygulamada hata oluştu. Fakat kill komutu amacına ulaştı görebileceğiniz üzere.

26. Terminal Kullanarak Dosya İndirme

Linux sistemlerde terminal kullanarak dosya indirmek için “world wide web get” anlamındaki wget komutunu kullanabilirsiniz. wget komutuyla internet üzerindeki indirilebilir içerikleri çekebilirsiniz. Kullanımı wget baglantiyolu şeklindedir. Eğer indirdiğiniz dosyayı farklı isimlendirmek istiyorsanız -O takısını kullanabilirsiniz.

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

Örneğin aşağıdaki ekran görüntüsünde wget komutu yardımıyla Technopat Sosyal ana sayfasının HTML kopyası indirilmiştir.

27. Konsolu Temizleme

Konsol, uçbirim veya terminal; artık her ne diyorsanız komut satırını yoğun bir şekilde kullandıkça sık sık temizlemek isteyeceksiniz. Kabuğu tertemiz etmek için clear komutunu kullanmanız yeterli olacaktır.

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

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

29. Sistemin Ne Kadar Süredir 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 zaman da size fazlasıyla zaman kazandıracak.

Eğer sizlerin de eklemek istediği faydalı bir komut varsa yorumlarda belirtebilir, Linux hakkındaki sorularınız için de Technopat Sosyal’e konu açabilirsiniz.