Linux Terminal Komutları ve Linux Dersleri
Not: Bu içerik Linux öğrenme sürecimde not olarak çıkarttığım içeriklerdir. Bu sayfayı bir Notepad olarak düşünebilirsiniz. Çalışırken kullandığım 2 ana kaynak vardı. İlki ve en önemlisi: https://linux-dersleri.github.io/index.html
Linux Terminali (konsol)
Linux çekirdeği Linux’un kalbi kabul edilir. En önemli ana görevinin tanımı kısaca; yazılımla donanımın haberleşmesini sağlamaktır. Ayrıca Linux’un yani çekirdeğin ingilizce karşılığı “kernel”dir.
Çekirdek(kernel) de kullanıcıdan gelen girdilerle birlikte sistemin işleyebilmesi (process) için donanıma iş yaptırmakla görevlidir. Ancak direk olarak kullanıcıdan alınan komutlar Kernel’e geçmez. Bundan önce komut satırı dediğimiz bir kabuk(shell) programını temel alarak çalışan yapı, kullanıcı ile çekirdek arasında aracı bir katman görevi görür.
Shell
Mantığını oturtmanız ve kavramların daha kolay yerleşmesi açısından bir fıstık düşünün. Bu fıstığın dış katmanı Kabuk (Shell) iç kısmı ise Çekirdek (Kernel) olacaktır.
Shell’in görevi kullanıcı ile kernel arasında aracı bir katman olarak kullanıcıdan gelen girdileri kernele uygun şekilde iletmektir.
Sistemde yapmak istediklerimiz ve yapabileceklerimiz Shell’in esnek ve kullanışlı yapısına yani yeteneklerine bağlı olarak değişmektedir. Bu bağlamda Shell’in sisteme hükmetmekteki anahtarlardan olduğunu söyleyebiliriz.
Linux sistemlerinde BASH dışında (ksh,tcsh,zsh,fish…) gibi birçok Shell (kabuk) programı mevcuttur. Ancak yetenekleri dolayısıyla olsa gerek en çok tercih edilen kabuk programı BASH kabuk programıdır.
Konsol, kullanıcı ile Shell arasından yer alarak kullanıcının komut girmesini sağlayan grafiksel ve komut satırı arayüzüne sahip bir araçtır. Biz komutlarımızı bu araç aracılığı ile Shell’e ulaştırırız Shell ise kullanıcıdan gelen girdileri yorumlayarak Kernel’e aktarır.
Konsol Ekranı Açmak (Terminal/Komut Satırı)
Konsol ekranını açmak için kısayol tuşları olduğu gibi grafiksel arayüz aracılığı ile de açmak mümkündür. Ayrıca aynı anda birden fazla konsol ekranı da kullanabiliyoruz.
Ctrl + Alt + T ile komut satırı açabiliriz
Kullandığımız shell programını öğrenmek için terminale yazacağımız komutlar: echo $SHELL
echo komutu → ekrana yazdırma işlevi görür.
$ → bir parametre ve tanımlanan değişkene normal bir kullanıcı olarak erişebilmeyi sağlıyor
Konsola girmiş olduğumuz komut yorumlandı ve neticesinde bize /bin/bash şeklinde bir çıktı verdi. Bu çıktı bize mevcut sistemde kullanılan ana kabuk programının BASH olduğunu bildirmiş oldu.
Ortam Değişkenleri
Grafiksel arayüzde komut satırına leafpad
yazdığımızda karşımıza leafpad(metin editörü) programı gelir. (Özellikle grafiksel arayüz diye belirttim çünkü leafpad uygulaması grafiksel arayüz ile çalışmaktadır yani tek başına komut satırının olduğu durumda çalışmayacaktır. )
Fark ettiyseniz bu komutu yazarken programın bulunduğu konumu belirtmeme gerek kalmadı. Yalnızca programın ismini Terminale girmemiz sonucu leafpad programı açılmış oldu. Bunun nedeni programın dosya dizinlerinin PATH(yol) ortam değişkeni üzerinde ekli olmasıdır. Sonuç olarak konsoldan girilen leafpad
komutu bu yol üzerinde arandı ve yol üzerinde var olan leafpad uygulaması çalıştırıldı.
Daha iyi anlayabilmek adına, bize PATH(yol) bilgisini veren komutumuzu kullanalım ve terminalin bize vereceği tepkiye göre açıklamaya devam edelim. Komut satırımıza echo $PATH
komutunu verelim:
Çıktının bize gösterdiği yani konsolun demek istediği şu: Konsoldan girilen herhangi bir komutu çalıştırabilmem için sırasıyla bu /usr/local/sbin: /usr/local/bin: /usr/sbin: /usr/bin: /sbin: /bin dizinlere bakmam gerek. Eğer verilen komutun çalıştırılabilir dosyası bu dizinlerin içerisinde ise çalıştırırım, yoksa çalıştıramam.
Oluşturduğum dizinin en alt klasörünün(en_yeni) içine girerek leafpad programı aracılığı ile metin belgesi oluşturuyorum ve belgenin içine echo "Program Çalıştı"
yazarak, oluşturmuş olduğum klasör dizininin en altındaki klasöre yani "en_yeni" ismindeki klasöre dosyamı "komut.sh" ismiyle kaydediyorum. Dosya sonuna eklediğimiz .sh eki ile dosyamız bir betik dosyası halini almış oldu. Burada bahsi geçen betik dosyasının genel tanımı; içerisine yazılmış olan konsol komutlarını tek seferde bir bütün halinde düzenli şekilde çalıştırabilen dosya formatı şeklinde yapılabilir. Yani bizler böylelikle betik dosyası programlayıp konsola yapması gereken bir çok işlemi tek bir dosya ile yaptırabiliriz. Anlayacağınız bu betik dosyası sıradan bir dosya değil, program yerine geçen bir formattır. Konsol programıdır yani.
Programımızın dizin adresi belli olduğuna göre artık bu dizini PATH ortam değişkenine ekleyip istediğimiz zaman, istediğimiz yerden programımızı(komut.sh) çalıştırabiliriz.
Şimdi yapmamız gereken; programımızın (komut.sh) bulunduğu tam dizin konumunu bu dosyaya uygun şekilde eklemek.
Bunun için dosyanın en alt satıra inerek, eklemek istediğim dosyanın tam dizin adresini aşağıdaki şeklinde dosyaya ekliyorum.
Yazma işlemi bittikten sonra dosyada yaptığımız değişiklikleri kaydedip dosyayı kapatmak için Ctrl + X tuş kombinasyonu uyguluyoruz.
Son olarak bana, “Yazılacak Dosya Adı: /etc/bash.bashrc” diye belirtiyor, buradaki ismi değiştirmeden kaydediyoruz. Eğer ismi değiştirirsek sistem bu dosyayı okuyamayacağı için problem çıkacaktır.
Bu adımları geçtikten sonra istediğimiz dizin PATH(yol) ortam değişkenine eklenmiş oldu. Ancak yaptığımız değişikliklerin geçerli olabilmesi için, oturumun kapatılıp tekrar açılması ya da source
komutu ile değiştirmiş olduğumuz dosyanın tekrar konfigüre edilmesi gerekiyor.
Son işlemimiz yetkilendirme işlemi. Bu neden gerekli diyecek olursanız işlemin gerekliliğini kendi gözlerinizle görmek için bu kısmı atlayarak dosyayı çalıştırmaya çalışın. Bunun için komut satırına komut.sh
yazalım.
Gördüğünüz gibi konsol bize “Erişim engellendi” diye bildirdi ve dosyayı bulmasına rağmen çalıştıramadı. İşte bu durumu yaşamamak için “komut.sh” dosyamızın bulunduğu konuma giderek (cd Desktop/yeni_dizin/yeni/en_yeni/
) chmod +rwx komut.sh
komutunu vermemiz gerekiyor. Böylelikle dosyayı çalıştırma izni de elde etmiş olacağız.
Yani artık konsola komut.sh
yazdığımız anda bizim oluşturmuş olduğumuz "komut.sh" betik dosyası çalışarak "Program Çalıştı" yazısını konsola basacak.
Sizler de bu yolla sıklıkla kullandığınız dosyaları kolay erişilebilir kılabilirsiniz.
nano /etc/bash.bashrc
bu komutta; nano
komutu, konsol üzerinden dosya içeriğini okumamıza olanak sağlayan bir araçtır. Geri kalan /etc/bash.bashrc
kısmı ise bash.bashrc dosyasının bulunduğu konumu belirtiyor. Bu sayede nano aracı ile /etc
dizininde bulunan bash.bashrc dosyasını komut satırı üzerinden görebiliyor ve değişiklik yapabiliyoruz.
ifadesi mevcut PATH yoluna yeni dizin eklememize olanak sağlayan bir bütündür. Burada yazdığımız ifade, PATH yolunda yer alan eski dizin adreslerine zarar vermeden yeni dizin ekleme işlemi için gereken ifade bütünüdür.
chmod +rwx komut.sh
komutunda, chmod
yetkilendirme ayarlamaları yapmamıza olanak sağlıyor. +rwx
parametrelerinden "+" işareti ekleme, "r " işareti okuma, " w "işareti yazma, "x" işareti ise çalıştırma yetkisi olmak üzere bizlere bir bütün olarak dosyayı çalıştırabilmemiz için gereken yetkilendirmeyi sağlıyor. Geri kalan komut.sh
kısım ise zaten yetkilendirme vermek istediğimiz dosyanın adı.
PATH Yoluna Dosya Ekleme
PATH yoluna yeni dizin adresi tanımlamadan, komut dosyamızı PATH üzerinde var olan bir konuma taşıyarak da dosyamızın çalıştırılmak üzere bulunabilmesini sağlayabiliriz.
Üstelik bu ikinci yöntem yani var olan PATH yolu üzerine komut dosyamızı taşıma işlemi, ilk işleme oranla çok daha güvenli bir yoldur. Özellikle sunucu yönetiminde erişim yetkilerinin kısıtlanması ve sunucu güvenliğinin sağlanması açısından istisnai durumlar hariç ikinci yöntem tercih edilir.
Ortam Değişkenlerini Görüntülemek
Tabii ki sistemde sadece PATH değişkeni bulunmuyor bu değişken dışında da pek çok ortam değişkeni mevcut. Bunları görmek istersek komut satırına set
, env
ya da printenv
komutlarından birini ihtiyacımıza göre kullanabiliriz. Bu üç komut arasındaki farklar aşağıdaki şekildedir.
set : Shell’e ait olan değişkenlerin adını ve değerlerini verir.
printenv : Sistemde bulunan bütün çevresel değişkenleri verir.
env : Sistemde bulunan bütün “export” edilmiş yani değiştirilmiş değişkenlerle beraber değişkenleri gösterir.
HOME değişkenini örnekleyerek açıklayacak olursak:
Şöyle bir durum düşünün; bir programcı, yazmış olduğu programının kurulduğu zaman masaüstüne bir kısayol oluşturmasını istiyor olsun. Ancak böyle bir şey yapabilmek için, kullanıcıların masaüstüne giden yolunun tespit edilebilmesi lazım. Ama şöyle bir problem var; Bildiğiniz gibi herkesin masaüstüne giden yol aynı değil. Bir bilgisayardaki masaüstü dizinini bulabilmek için, o bilgisayarı kullanan kişinin kullanıcı adını da biliyor olmanız lazım. Çünkü masaüstünün bulunduğu dizin kullanıcı adına bağlı olarak değişiklik gösterecektir.
Mesela bende /home/dehni/Desktop olan masaüstü dizini sizde /home/mahmut/Desktop şeklinde olabilir. Hatta işletim sisteminin dilinin Türkçe veya İngilizce (diğer tüm diller de dahil..) olmasına göre de masaüstünün yolu farklı olabilir. Yani demem o ki bu kadar basit bir işlem için bile tahmin edilemez bu yolun bilinmesi veya bulunması gerek. Ama masaüstüne kısayol oluşturma çok olağan bir durum.. bir imkansız değil. İşte tam bu noktada neden ortam değişkenlerinin var olduğunu biraz daha net kavrıyoruz. Ortam değişkenleri, kullandığımız işletim sisteminde belli değerlere daha sonra kolaylıkla ve kararlılıkla ulaşabilmemiz ve işleyebilmemiz için oluşturulan ifadelerdir. Bahsettiğimiz konuda, örneğin masaüstüne herhangi bir yerden ulaşmak istersek, komut satırına ev dizininin yol bilgisini tutan değişken olan HOME değişkenini cd $HOME
şeklide girmemiz yeterli oluyor. Yani bizler bu değişken sayede, hiç aramamıza gerek kalmadan ev dizini içerisinde yer alan Desktop konumuna da ulaşabiliyor olacağız.
Ayrıca burada ekstra bir bilgi olsun diye belirtmek isterim ki ev dizinine gitmek için iki farklı yol daha bulunmaktadır. Bunlardan ilki yalnızca cd
komutunu kullanmak diğeri ise cd ~
komutunu kullanmaktır. ( Burada yer alan ~ işareti Türkçe klavyede Alt Gr + Ü tuş kombinaysonu ile oluşturuluyor. )
Komutumuzu girdikten sonra ulaştığımız konumda hangi dosyaların olduğunu görmek için konsola ls
komutunu verdik.
Konsol bize Desktop(masaüstü) ve ev dizininde bulunan diğer dosyalarında çıktılarını verdi. Yani bu demek oluyor ki ev dizinine, kullanıcı ismini bilmemize gerek olmadan kolayca ulaştık.
Komutu biraz açıklayacak olursak cd
dizinler arası geçiş yapmamızı sağlayan bir komut. $
(dolar işareti) tanımlanmış olan değişkene erişme işlemini yapan parametremiz, HOME ise ev dizinini tutan ortam değişkeni. Son olarak ls
komutu bulunduğumuz konumdaki dosyaları listeliyor.
Temel ve sık kullanılan değişkenlerden birkaçını da kısaca açıklayacak olursak:
SHELL: Çalışmakta olan kabuk programının adını ve yerini verir.
PATH: Konsola komut girildiğinde, komut için gereken ilgili dosyaların aranacağı dizinler diğer bir adıyla yol.
HOME: Kullanıncının ev dizinini içeren değişken.
TERM: Komut satırı uygulamalarının hangi terminalde çalışacağını belirtir. Birçok çeşidi vardır ancak xterm yaygın şekilde karşımıza çıkmaktadır.
Ortam değişkenlerinin değerlerini tek tek kontrol etmek istersek, konsola echo $ORTAM_DEĞİŞKENİ
şeklinde komut vererek ilgili bilgilere ulaşabiliriz.
Ortam değişkenleri sabit ve sınırlı değildir. Sistemde var olanların haricinde bizde kendimiz ortam değişkenleri tanımlayabiliriz. Tanımlamaları üç farklı kategoriye ayırabiliriz;
- konsola(terminal) özel : yalnızca açık olan mevcut terminaldeki uygulamalar için kullanılabilen
- kullanıcı : yalnızca tek kullanıcı için geçerli ve o kullanıcının her oturum açtığında kullanabildiği
- sistem geneli : sistemde öntanımlı olarak ayarlanmış sürekli kullanılabilir
Mevcut Konsola Özel
Sadece o an kullanmakta olduğumuz terminale(konsol) özel olan ve terminali kapattıktan sonra sıfırlanan ortam değişkenidir.
Aşağıdaki örnek ile adım adım açıklayalım bu durumu:
Terminali açtım ve komut satırına “asdf
"(anlamsız karşılığı olmayan bir ifade/komut) yazdım. Konsol yanıt olarak " bash: asdf: komut yok
" yazısını ekrana bastı.
Görüldüğü gibi konsol çıktısı Türkçe oldu ancak ben bu çıktıları İngilizceye çevirmek istiyorum diyelim. Bunun için konsola export LANG=C
komutunu veriyorum. Ve sonrasında tekrar komut satırına asdf
yazıp dilin değişip değişmediğini kontrol ediyorum.
Çıktıda da görüldüğü gibi dil değişmiş ve yazdığımız asdf
komutunun neticesinde konsol, ekrana bash: asdf: command not found
yazısını basmış oldu. Sonuç olarak geçerli terminal için dil ingilizceye çevrilmiş oldu.
Bütün bu işlemler sadece bu komut penceresi için sınırlı. Yani açmış olduğumuz terminal ekranını(konsol/komut penceresi) kapatırsak yeni bir tane açtığımızda başlangıçta olduğu gibi konsol bize Türkçe yanıt verecektir. Yani bu şekilde yapılan tüm değişiklikler sadece yapıldığı konsol için geçerli.
Kullanıcıya (Oturuma) Özel
BASH her oturum açtığımızda tüm ayarlarını ve davranışlarını “ .bashrc “ isimli gizli bir dosyadan okur. Ufak bir bilgi daha; başında . (nokta) olan dosyalar gizli dosya görevindedir. Konuya dönecek olursak bizim mevcut oturumumuzda ortam değişkenlerinde kalıcı değişiklik yapabilmemiz için yapmak istediğimiz değişiklikleri “ .bashrc “ isimli dosyaya eklememiz gerekiyor ki oturum açtığımızda sistem burada yaptığımız değişiklikleri her seferinde görebilsin.
Bulunduğumuz oturumda kalıcı değişiklik yapmak için birisi grafiksel diğeri ise sadece komut satırı arayüzü olmak üzere iki farklı yoldan nasıl değişiklik yaparız onu görelim. İsterseniz ilk olarak grafiksel arayüz ile başlayalım. Öncelikle .bashrc dosyasını açmalıyız. Dosyayı açmak için konsola leafpad ~/.bashrc
komutunu veriyoruz.
Kodu kısaca açıklayacak olursak leafpad
sistemde mevcut bulunan basit metin düzenleyicisinin adıdır, ~
(Alt Gr + ü kombinasyonu ile oluşturulan "tilde" karakteri) karakteri ev dizinini temsil ediyor /.bashrc
ise düzenleme yapacağımız dosyanın adıdır.
leafpad ~/.bashrc
komutunu verdikten sonra karşınıza .bashrc dosyasının açılmış olması gerek.
Şimdi yapmak istediğimiz değişikliği dosyanın en alt satırına yani dosyanın sonuna eklemeliyiz. Bu eklemeyi export DEĞİŞKEN_ADI=değeri
şeklinde yapıyoruz. Ben örnek olması açısından dil değişikliğini ele aldım. Bu sebepten dil değişimi(Türkçe olan dili ingilizceye çevirmek) için gerekli olan yazı dizisini export LANG=C
şeklinde dosyanın sonuna ekledim ve dosyayı kaydederek kapattım.
Geldik diğer yöntem olan yalnızca konsol ekranını kullanarak değişiklik yapmaya.
Bunun için konsola nano -w ~/.bashrc
komutumuzu veriyoruz. Komutumuzu girdikten sonra karşımıza konsol ekranı içerisinde .bashrc dosyasının içeriği geliyor. Klavyedeki yön tuşlarını kullanarak en alt satıra iniyoruz ve oraya yapmak istediğimiz değişkliği giriyoruz. Ben dilde değişiklik yapacağım için satırın sonuna export LANG=C
şeklinde ekleme yaptım .
Ve Ctrl + X tuş kombinasyonunu uyguladım. Daha sonra konsol bana çıkmadan önce dosyada yaptığım değişikliği kaydetmek isteyip istemediğimi sordu bende “e” diyerek dosyanın adını herhangi bir değişime uğratmadan kaydettim ve işte bu kadar işlem tamamdır.
Sistem Genelinde
Eğer yaptığımız değişiklik bütün kullanıcı oturumlarında aynı şekilde geçerli olsun istiyorsak değişkenin sistemde her oturum açıldığında okunan bir dosyada bulunması gerekmektedir. İşte bizim de yapacağımız değişiklikler tüm kullanıcılar için geçerli olsun istiyorsak, yapacağımız değişikliği bash.bashrc dosyasına eklemeliyiz. Dosyamızın tam konumu /etc/bash.bashrc dizininde yer alıyor. Bu dosyada ilgili değişikliği nano aracı ile yapmak için konsola nano -w /etc/bash.bashrc
komutunu veriyoruz.
Örnek olması açısından dosyamızın en son satırına dil değişikliği işlevindeki “export LANG=C
" ifadesini ekliyorum. Bu sayede terminal dili bütün sistemdeki kullanıcılar için ingilizce olacaktır.
İlgili ifadeyi bash.bashrc dosyamıza ekleyip dosyamızı kaydediyoruz .
Sıra geldi değişikliklerin sistem tarafından tanınmasına. Yapılan değişikliğin sistem bütününde geçerli olabilmesi için daha önce de bahsi geçen source
komutunu bash.bashrc dosyası için source /etc/bash.bashrc
şeklinde kullanıyoruz. Ve değişikliklerin geçerli olup olmadığını denemek için konsola olmayan geçersiz bir komut verelim, örneğin konsola asdf
yazalım bakalım konsolun tepkisi hangi dilde olacak.
Çıktımız ingilizce olduğuna göre başarmışız demektir. Yaptığımız bu değişiklik bütün kullanıcılar için yani sistem geneli için geçerlidir. Bu durumu başka bir hesap oluşturarak kendiniz de gözlemleyebilirsiniz.
Ayrıca değişiklikleri geri almak isterseniz eklediğiniz ifadeyi ilgili dosyadan silin ve sistemi source ilgili_dosya_adı
şeklindeki komut bütünü ile yeniden konfigüre edin, bütün değişimler düzelmiş olacaktır.(source
komutunu kullanmak zorunda değilsiniz, hatta bu komut yerine sistemi yeniden başlatmanız daha iyi olacaktır.)
Kısayollar
Terminalde Ctrl + Shift + C ve Ctrl + Shift + V kopyala yapıştır.
Aynı Anda Birden Fazla Komut Kullanımı
Bunun için üç farklı yol izleyebiliriz. Birincisi yan yana olacak şekilde && operatörünü kullanmaktır.
örn: echo $PATH && echo $TERM
Burada 1. komut başarısız olduğu için 2. komut ekrana basılmış oldu. Yani bir nevi önlem amaçlı bir kullanımdır. Biz konsola bu kullanım ile diyoruz ki; “Eğer verdiğim ilk komut başarısız olursa ikinci komutu çalıştır.” Yani bu durumda eğer ilk komut başarısız olursa, hemen devreye ikinci komut girecektir, ancak ilk komut başarılı olursa ikinci komut çalışmayacaktır.
Konsolun anlık kapanmasına karşı bir kontrol mekanizması oluşturmamız sonradan üzülmemek için şart. Bu kontrol sağlama imkanını bize ignoreeof verir. ignoreeof tanımını kullanmanın 2 farklı yolu vardır. Bunlardan birisi sadece mevcut Terminal için geçerli diğeri ise sürekli ve oturumdaki tüm Terminallerde geçerli olan kullanımlardır. Sürekli ve tüm Terminal ekranlarında geçerli olsun istiyorsak: Gerekli ayarlamaları yapmak üzere komut satırımıza nano -w ~/.bashrc
komutunu veriyoruz ve .bashrc dosyasının en alt satırına export IGNOREEOF=2
yazıp Ctrl + X tuş kombinasyonunu kullanarak dosyanın ismini değiştirmeden kaydederek çıkıyoruz.(Bütün kullanıcılarda bu korumayı sağlamak için değişikliği bash.bashrc dosyasında yapmamız gerektiğini daha önceki kısımlardan biliyorsunuz.)
Şimdi de yalnızca mevcut Terminal için geçici koruma nasıl sağlarız ona değinelim: Koruma katmanı ne kadar hayat kurtarıcı olsa da sürekli olması bazen rahatsız edici olabilir. İşte bu noktada sadece önemli ve gerekli gördüğümüz zaman bu özelliği açıp kapatma seçeneğine sahibiz. Bunu da iki farklı yolla yapabiliriz.
İlk yol, komut satırına ignoreeof=2
şeklinde komut vermek. Bu komut sayesinde mevcut Terminal ekranı ancak 3.kez Ctrl + D tuş kombinasyonu uygulandığında kapanacaktır. Buradaki sayıyı dilediğiniz gibi değiştirebileceğinizi biliyorsunuz. Eğer bu özelliği devre dışı bırakmak istersek komut satırına ignoreeof=0
yazmamız yeterli.
İkinci yöntem ise komut satırına set -o ignoreeof
yazmak. Bu komut ile de mevcut komut satırımız ancak 11.kez Ctrl + D yapmamız sonucunda kapanacaktır. Bunun haricinde bir de exit
komutunu verirsek konsol ekranı anında sonlanır. Bu özelliği devre dışı bırakmak isterseniz de, komut satırına set +o ignoreeof
yazmanız yeterli olacaktır.
Yardım Alma Komutları
Linux sistemlerinin temel doküman-bilgi kaynaklarını 3 türe ayırabiliriz.
Bunlar; bilgi sayfaları(info), kılavuz sayfaları(manuel) ve uygulamalar ile gelen /usr/share/doc konumunda bulunan dokümanlardır. Bizler de zaman zaman unuttuğumuz için veya bilmediğimizden dolayı, bu yardım sayfalarına ve dokümanlarına danışıyor olacağız.
help Komutu
örneğin daha önce kullandığımız yetki verme işlevini gören chmod
komutu ile ilgili yardım(bilgi) almak isteyelim. Bunun için komut satırına chmod --help
şeklinde komutumuzu yazıyoruz. Ve aşağıda görüldüğü gibi gerekli bilgileri içeren yardım sayfası bizi karşılıyor.
Bu kullanımın dışında help
komutunun bir de help komut
şeklinde kullanımı var, ancak bu kullanımda her zaman komut hakkında yardım bilgisi bulunmayabiliyor. O yüzden ilk öğrendiğiniz yol önceliğiniz olsun. Örneğin help chmod
yazdığımızda komut satırı yardım bilgisi bulunmadığını belirtti.
man(Manuel Sayfası) Komutu
man(manuel) sayfaları temel yardım alma dosyalarıdır. Ve kılavuz sayfaları olarak da bilinir.
man
komutunu kullanmak için komut satırına, hakkında bilgi edinip yardım almak istediğimiz komutu man komut
şeklinde giriyoruz.
man sayfasının iç yapısına değinecek olursak:
- NAME: Komutun ismi ve açıklama kısmı.
- SYNOPSIS: Komutun kullanım açıklaması(nasıl kullanılacağı).
- DESCRIPTION: Komutun yaptığı iş(fonksiyonu) hakkında açıklama.
- EXAMPLES: Komutun kullanımı ile ilgili örnekler ve açıklamalar.
- SEE ALSO: Diğer ilgili başlıklar.
usr/share/man konumunda yer alan dil dosyaları dışındaki diğer dosyalar olan man1, man2, man3, man4, man5, man6, man7, man8 dosyaları ne ifade ediyor kısaca ona değinelim.
- man1: genel kullanıcı programlarını ifade eder.
- man2: sistem programlarını ifade eder.
- man3: kütüphane fonksiyonlarını(C programlama ile ilgili) ifade eder.
- man4: özel dosyaları ifade eder.
- man5: dosya biçimlerini ifade eder.
- man6: ekran koruyucuları ve oyunları ifade eder.
- man7: diğer kategorilere girmeyen çeşitli komutları ifade eder.
- man8: sistem yönetimini ve bakımını ifade eder.
whatis Komutu
u komut sayesinde hangi komutun hangi man
sayfasında olduğunu öğrenebiliyoruz. Daha iyi anlamak için örnekler yapalım. Komutun kullanımı whatis komut
şeklindedir.
apropos Komutu
apropos chmod
komutunu girersek çıktısı aşağıdaki şekilde olacaktır.
Komutun kullanım amacını daha iyi anlamak için; örneğin, bir komutun ismini tam olarak hatırlayamıyorsunuz ancak işlevini hatırlıyorsunuz diyelim. İşte bu noktada apropos
komutu sayesinde man klavuz sayfaları içinde anahtar kelime araştırması yapılmasıyla yazdığınız kelime ile ilgili tüm komutlara ulaşabiliyorsunuz. Yani aslında biz apropos
komutuyla sadece man kılavuz sayfalarında detaylı bir araştırma yapmış oluyoruz.
Bilgi Alma Komutları
uname
Tek başına çekirdek adını verse de aldığı parametreler ile farklı bilgiler de sunabilir. Kısaca bilmemiz gereken; bu komut genel olarak sistemde kullanılan çekirdek hakkında bilgiler verir.
Eğer parametresiz kullanıldıysa -s
parametresi gibi yalnızca çekirdek ismini gösterir. Yani uname
komutu ile uname -s
komutu aynıdır. Parametreler ve ifade ettikleri;
-s, -- çekirdek ismini gösterir.
-n, --nodename ağ düğümü konak ismini diğer bir değişle hostname(host adını) gösterir.
-r, --kernel-release çekirdeğin derleniş sürümünü gösterir.
-v, --kernel-version çekirdeğin sürümünü gösterir.
-m, --machine makine donanım ismini gösterir.
-p, --processor işlemci türünü veya "unknown" gösterir.
-i, --hardware-platform donanım platformunu veya "unknown" gösterir.
-o, --operating-system işletim sistemini gösterir.
--help Bu yardım iletisini gösterir ve çıkar. --version Sürüm bilgilerini gösterir ve çıkar.
-a, --all Bu parametre ile bütün bilgileri aşağıdaki seçenek sırasıyla gösterilir; -p ve -i bilinmiyorsa atlanır.
hostname
Bilgisayarımızın adını, diğer bir deyişle bilgisayarımızın ağ üzerindeki adını verir. Eğer isterseniz bu adı değiştirebilirsiniz. Örneğin; komut satırına hostname burak
yazarsanız hostname yani bilgisayarınızın adı burak olarak değişmiş olacaktır. Ancak bu ayar kalıcı değildir.
komut satırından da kalıcı bir hostname değişikliği yapmak mümkün. Bunun için /etc/hostname konumunda yer alan hostname dosyasını açmamız gerek. Dosyamızı açmak için konsola
nano -w /etc/hostname
komutunu veriyoruz. Komutun ardından açılan dosyada ismimizin yerine istediğimiz ismi yazıyoruz. Ve Ctrl + X tuş kombinasyonu ile dosyamızdaki değişiklikleri kaydederek çıkıyoruz.
lsb_release
Bu komut kullandığımız dağıtım hakkında farklı bilgiler sunan parametrelere sahiptir.
whoami
Bu komut kimlik sorgu işlevi görüyor.
whoami: mevcut kullanıcının hangi kimlikle çalıştığını gösteriyor.
who: sistemde hangi kullanıcının çalıştığını gösteriyor.
w: hangi kullanıcı hangi uygulamayı çalıştırıyor bunun bilgisini gösteriyor.
uptime
uptime
komutu sistemimizin ne kadar zamandır açık olduğu bilgisini verir.
date
İsminden de anlaşılacağı gibi bu komut bize sistemin o anki tarih ve saat bilgisini veriyor.
cal
Komutumuz Türkçe olarak takvim anlamına gelen İngilizce “Calendar” ifadesinin kısaltmasıdır. Komutumuz tek başına kullanıldığında bize konsol ekranı üzerinden, bulunduğumuz tarihin takvim bilgisini verir.
which
Herhangi bir komutun tam yol bilgisini öğrenmek için kullanılır.
whereis
İlgili komutun man sayfası konumunun tam dizin adresini belirtir.
locate
Bu komut ile aradığımız bir dosyanın nerede olduğunu öğrenebiliriz. Komutun çıktısı bize dosyanın bulunduğu dizin veya dizinleri veriyor.
dmidecode
Bu komutun işlevi sistemin donanım ve BIOS bilgilerini göstermektir. Bu komut sayesinde sistem donanımı ve işleyişi hakkında çok fazla bilgiye ulaşabiliriz. Ayrıca bu komutumuz da parametre alarak çalışmaktadır.
Bu komutun sunduğu bilgiler çok fazla olduğu için, bilgilerin daha net anlaşılması adına; bu bilgilere belirli bir düzene sahip olan DMI(Desktop Management Interface) ile, yani Masaüstü Yönetim Arayüzü tabloları ile ulaşıyoruz.
Bios hakkında bilgi edinmek istediğimizde konsola dmidecode -t bios
komutunu girmemiz yeterli.
fdisk-l
fdisk
komutunun yalnızca l
parametresinin işlevini göreceğiz.
Bu komutu diskler üzerinde işlem gerçekleştirirken kullanıyoruz. Eğer komut satırımıza fdisk -l
şeklinde komut verirsek karşımıza sistemimizdeki disk bölümleri sıralı ve düzenli şekilde listelenecektir.
df
Bu komut ile disk kullanımı hakkında ayrıntılı bilgiye ulaşabiliyoruz.
du
Bir dizinin, içerdiği tüm dosyalar ile birlikte diskte kapladığı toplam alanı verir. Ayrıca boyutla ilgili düzgün bir çıktı almak istersek h
parametresini de kullanabiliriz.
free
Bu komut ile kullanılan bellek miktarını KB cinsinden öğrenebiliriz. Ancak çıktımızın MB cinsinden olmasını istersek -m
parametresini free
komutumuza ekleyerek kullanmamız yeterli olacaktır.
modinfo
Bu komut sayesinde Linux Kernel(çekirdek) modüllerinin bilgisi alınabilir. Bu modülleri ekran bastırmak isterseniz komut satırına lsmod
yazarak modülleri listeleyebilirsiniz.
stat
Bu komut dosyalar veya dizinler hakkındaki bilgileri almamıza olanak sağlar. Kullanımı stat dizin
şeklindedir.
vmstat
Bu komut sayesinde sistemimizin o anlık genel durumunu görebiliriz. Ancak komutu verdikten sonra sistem durumu listelenip sonlanacaktır. Eğer sistemin durumunu bir süre izlemek istersek vmstat gecikme_hızı yenilenme_sayısı
şeklinde komut vermeliyiz. Ben her 2 saniyede bir yenilenmesini ve bunu 3 defa yapmasını istiyorum. Bunun için komut satırına vmstat 2 3
komutunu veriyorum.
history
Girilen her komut .bash_history dosyasında tutuluyor. Biz bu dosyanın içeriğini yani daha önceki yazdığımız kodları görmek istersek komut satırına history
yazmalıyız.
Hazır liste uzun demişken eğer bu listenin limitini öğrenmek istersek komut satırına echo $HISTSIZE
yazarak bu değeri tutan ortam değişkeninin, ne kadar komutu history dosyasında tutulabileceğini görebiliriz.
Daha önceden kullandığımız bir komutu aynı şekilde tekrar kullanmak için ise komut satırına !komut
şeklinde komut girmeliyiz.
Eğer son kullandığımız komutu tekrar kullanmak istersek komut satırına !!
yazmamız yeterli olacaktır.
Ayrıca son yazılan komutlara ulaşmak için klavyede yer alan yön tuşlarından ↑(yukarı) ve ↓(aşağı) tuşlarını kullanarak önceki ve sonraki komutlarınıza ulaşabilirsiniz. Genellikle yön tuşlarını kullanmak bize anlık işlemlerimizde hız katmaktadır.
/bin
İşletim sisteminizi kullanmak için gereken birçok komut /bin
klasörü altındadır. cat, mkdir, cp, ls, mv, rm vb. temel komutların hepsi buradadır. Sistem boot ettiğinde, ilk olarak /bin
klasörü çalışır hâle getirilir. Sistemde ne kadar ciddi bir sorun olursa olsun /bin
klasöründeki komutlar çalışmaya devam eder. Bu sayede sisteminizde bir sorun meydana geldiğinde /bin
klasörü altındaki temel komutları kullanarak sistemi onarabiliriz.
/boot
Boot, işletim sisteminin yüklenme evresidir. /boot
klasörü, boot işlemi için gerekli olan tüm dosyaları içerir (çekirdek görüntüsü, sistem haritası, önyükleyici yapılandırması gibi). Bilgisayarın başlangıç (boot) aşamasında gerekmeyen ayar ve yapılandırma dosyaları burada bulunmaz; başka klasörlerden gerektiği zamanlarda yüklenir.
/dev
Linux’ta her şey bir dosyadır; donanım aygıtları da öyle. USB girişleri, seri ve paralel portlar, depolama ortamları, CD-ROM’lar vb… Bütün aygıtlar /dev
klasörü altında tutulan dosyalardan ibarettir. Örneğin /dev
altında bulunan sda1
dosyası, sabit diskinizi temsil eder. Ya da /dev/dsp
, ses aygıtınızdır. Bunları programlar vasıtasıyla kullanırız; ancak bu dosyalar üzerinden doğrudan müdahale etmek de mümkündür.
/etc
İşletim sistemini bir vücuda benzetirsek, /etc
klasörünü, sinir sisteminin merkezi olarak görebiliriz. Sisteme dair bütün ayarları ve bilgisayara özel birçok yapılandırma bilgisini içerir.
/home
home
klasörü kullanıcıların kalesi olarak tabir edilir. home
klasörü içerisinde her kullanıcının kendi adında bir alt klasörü bulunur. (örneğin /home/ahmet , /home/ayşe gibi). Kullanıcıların kişisel verileri, kullandığı programlarda yaptığı ayar değişiklikleri, yapılandırmaları burada tutulmaktadır. Ayrıca kullanıcılar /home
dizinini elbette belge, müzik, resim vb. dosyaları düzenli, tertipli bir şekilde depolamak amacıyla da kullanabilirler. /home
dizini Windows'taki kullanıcı dizinlerine göre çok daha güvenli bir yapıya sahiptir. Çünkü Linux'ta bir başkasının ev klasörüne müdahale edemezken, Windows'ta çok zorlanmadan istediğinizi yapabilirsiniz.
/initrd
initrd, “initial ramdisk” kısaltmasıdır. Anlamı, yaklaşık olarak “Başlangıç Bellek Diski” şeklinde ifade edilebilir. Boot aşamasında ilk önce çekirdek (kernel) yüklenir. Bundan sonra bilgisayarınızın belleğinde bir Bellek Diski oluşturulur. Oluşturulan Bellek Disk üzerinde /
(root) yansısı açılır ve kök dizin olarak monte edilir. /initrd
bu işlemlerin yapılması ve Linux'un yüklenmesi için gereklidir.
/lib
Çekirdek modülleri ve paylaşılan kütüphane dosyaları bu klasörde bulunur. Kütüphane dosyaları, sistemi başlatmak ve /bin
ile /sbin
içerisindeki komutları çalıştırmak için gereklidir. Paylaşılan kütüphane dosyalarını, Windows'ta DLL ile eş tutabiliriz. Linux'ta kütüphane dosyalarının sonu ".so" ile biter.
/lib64 /lib32
Halen 32 bit ve 64 bit sistemler arasında geçiş yapıyoruz. Bu nedenle, kütüphane dosyalarının derleme süresi boyunca kullanılan kayıt boyutunu netleştiren /lib32
ve /lib64
adlı dizinlerle karşılaşabilirsiniz. Yani bu sayede 64 bitlik bir bilgisayar, eski uygulamalara uyumluluk için bazı 32 bitlik ikili dosyalara ve kütüphanelere sahip olabilir.
/lost+found
İngilizce bir terim olan “Lost and Found” kayıp eşya bürosu demektir. /lost+found
klasörü de tam olarak bu işlevi görmektedir. Bazen sisteminizde herhangi bir problem olur; örneğin bilgisayarı resetlerseniz, elektrik gider sonrasında bilgisayarı yeniden başlatırsınız. Bu gibi durumlarda Linux'ta fsck (File System Check) komutu devreye sokulur. Düzeltilemeyen bir sorun varsa, bağlantıları kopmuş kayıp dosyalar ortaya çıkmışsa, bunlar /lost+found
altına atılır. Kısaca özetlersek; kötü bir sistem kapanmasından sonra, olması gereken bazı dosyaları bulamıyorsanız, kayıp eşya bürosuna bakmanızda yarar var.
/media
Kaldırılabilir aygıtların (USB bellek, SD kart, CD vb.) ve sistem başlangıcında bağlanmayan sabit disk bölümlerinin bağlanma noktasıdır. Söz konusu depolama ortamları sisteme bağlanmamış iken dizin içeriği boş görünür.
/mnt
İşletim sisteminin kurulu olduğu disk bölümü hariç olmak üzere sistem başlangıcında bağlanan sabit disk bölümleri ve donanım aygıtlarının bağlanma noktasıdır. (İşletim sisteminin kurulu olduğu disk bölümünün içeriği ise doğrudan /
(kök dizin) altında bulunur.)
Bağlama(mount) işlemi, bir disk bölümünün sisteme bağlanarak kullanıma hazır hâle gelmesi demektir. Nereye bağladığınız sizin tercihinizdir, değiştirmeniz mümkündür. Yani bir diski, /media
veya /mnt
klasörüne ya da bir başka yere bağlamanız fark etmeyecektir. /media
ve /mnt
sadece genel kabul görmüş bağlantı noktalarıdır.
/opt
İşletim sisteminden bağımsız, sistem için zorunlu olmayan 3. parti kullanıcı programları bu dizinde bulunur. Örneğin; Google Earth programını indirip kurmak istediğinizde, varsayılan olarak kurulacağı nokta, /opt/google-earth
adresidir.
Elbette üçüncü parti bir programı kurarken bu kurulum konumunu değiştirebilir, size uygun gelen bir başka konuma yükleyebilirsiniz. Ancak daha önce de bahsettiğimiz gibi bazı şeyler genel kabule dayanır.
/proc
Süreçler, sistem belleği, bağlı aygıtlar, donanım yapılandırmalarıyla ilgili bilgileri içeren özel bir “sanal” dosya sistemidir. Bildiğimiz anlamda fiziksel dosyalar bulundurmaz; sistem durumuna dair bilgi içeren sanal dosyaları vardır. Bir bilgi alma merkezi olarak görülebilir, birçok uygulama buradaki bilgilerden yararlanmaktadır. Örneğin cat /proc/swaps
yazarak sisteminizdeki takas dosyalarına dair bilgi alabilir ya da cat /proc/cpuinfo
komutuyla işlemcinizin özelliklerini görebilirsiniz.
/proc
klasörü içerisindeki dosyalar, sadece sistem durumunu görüntülemek için kullanılmaz, gerektiğinde sistemde ayarlama yapmak için de kullanılabilir.
/root
Linux/Unix sistemlerde, işletim sistemine her türlü müdahalede bulunabilme yetkisine sahip, “root” adıyla tanımlanmış, süper yetkili özel bir kullanıcı hesabı vardır. /root
dizini, bu özel kullanıcı hesabının ev dizinidir. Daha iyi anlamak adına örneğin; "burak" isimli kullanıcı hesabının ev dizini /home/burak
şeklindeyken "root" kullanıcısının ev dizini /root
dizini şeklindedir. Root kullanıcısına daha önce de belirttiğimiz şekilde "kök kullanıcı" da denilir.
Kullanıcıların, sistemi root hesabıyla açma ihtiyacı bulunmaması nedeniyle ve ayrıca sistemi root olarak açmanın güvenlik zaafiyetine yol açabilecek olması nedeniyle pek çok Linux dağıtımında root hesabıyla sisteme giriş yapılması, öntanımlı olarak engellemiştir. Ancak istisnaya dahil olan “Kali Linux” dağıtımı penetrasyon testleri ve bunun gibi siber güvenlik işlemleri için oluşturulduğundan kullanıcılar için kolaylık olması için tam yetkili olarak çalışır.
/run
Son önyüklemeden bu yana çalışan sistemle ilgili bilgileri tutar. Tutulan bilgilere örnek vermek gerekirse şu anda oturum açmış kullanıcılar, sisteme bağlanan aygıtlar, ağ ile bağlantı(network) değişimleri ve bunun gibi bilgileri tutar.
/sbin
Linux’ta normal kullanıcının kullanabileceği komutlarla, kök kullanıcının (root) kullanabileceği komutlar ayrılmıştır. root tarafından kullanılacak bakım ve yönetim için kullanılan önemli programlar, /sbin
altında tutulur. Daha az öneme sahip yönetim komutlarıysa, /usr/sbin
klasöründedir. Eğer yerelde, yani kullandığınız makineye özgü kök kullanıcı (root) komutları bulunuyorsa, bunları da /usr/local/sbin
altında bulabilirsiniz.
/usr
Unix ilk çıktığında, kullanıcılara ait ev klasörleri, /usr
altında tutulurdu. Örneğin; "burak" isimli bir kullanıcının ev klasörü /usr/burak
şeklindeydi. Bu yöntem zamanla değişti ve /home
klasörü doğmuş oldu. /usr
klasörü hâlâ çok önemli bir yapıdır ve işletim sisteminizde kullandığınız her şeyle ilişkisi bulunur.
Kurduğunuz pek çok program /usr
içine kurulur. Her ne kadar Linux'ta kurulan bir programa ait tüm dosyalar usr
dizini içine atılmıyor olsa da usr
dizini Windows'taki Program Files
klasörü ile benzer görev görmektedir. /opt
adresi işletim sistemi dışında gelen 3.parti programlar içindir. Fakat işletim sistemi aracılığıyla ya da paket yönetim sistemlerini kullanarak yüklediğiniz her şey /usr
altına aktarılır. Aynı zamanda yüklediğiniz programların çalışmak için ihtiyaç duyacağı kütüphane dosyaları, /usr/lib
altındadır.
/usr
, daha geniş bir tanımla; tüm kullanıcılarca paylaşılan verileri (programlar, komutlar, kütüphaneler, dokümanlar gibi) içeren dizindir. /usr
ile ilgili söylenebilecek bir başka nokta da "local" klasörüdür. Linux, sunucu olarak birçok istemciye hizmet verebilecek bir işletim sistemidir. Bir Linux sunucu (server) kurarsanız, ona bağlanan yüzlerce istemci (client) olabilir. Her istemci bilgisayara, /usr
altındaki programların ayrı ayrı yüklenmesi gerekmez; bir başka konumdan bu komutları çalıştırabilirsiniz. Ancak /usr
altında bulunan "local" klasörü sadece kullandığınız makineye özeldir. Örneğin /usr/local/bin
klasörü içinde bulunan bütün komutlar, direkt olarak kullandığınız makineye yüklenmiştir. /usr/bin
komutları ise geneldir ve bir ağ üstündeki bütün makinelerden erişilebilir. Yani neticede "local" ifadesini gördüğünüzde, bunun sadece sizin makinenize özel olduğunu bilin.
/var
Log dosyaları, e-posta ve yazıcı kuyrukları gibi değişken sistem bilgilerini barındırır. Sisteminize dair tutulan log’ları buradan görebilir; güvenlik durumunu buradan kontrol edebilirsiniz.
/tmp
Geçici dosyalar içindir. Birçok program, burayı geçici depolama alanı olarak kullanır. /tmp
klasörünün içeriği genellikle KB'lar mertebesinde kalır ve genellikle işletim sistemi yeniden başlarken içindeki dosyalar silinir. Her ne kadar tmp
klasörü geçici dosyalar için de olsa bu klasör altında bulunan dosyaları, ne yaptığınızdan emin değilseniz, kesinlikle silmemelisiniz! Aksi taktirde sisteminizde ya da bazı programlarda birçok sorunla karşılaşabilirsiniz.
Dizinler
Linux işletim sisteminde bütün programlar, aygıtlar, dosyalar ve genel olarak sistem, hiyerarşik bir düzen içerisindedir. Yani komut satırını kullanacaksak her şeyi oluşturan bu hiyerarşik düzen içerisinde rahatlıkla gezebiliyor olmamız gerekiyor.
pwd
Bu komut sayesinde o an bulunduğumuz dizinin adını öğrenebiliriz. Genellikle sistem yöneticilerinin sık kullandığı bir komuttur.
cd (Change Directory)
Bu komut sayesinde dizinler arası geçiş yapabiliyoruz.
Komutumuzu kullanırken gitmek istediğimiz dizinin adresini vermeliyiz. Ben önceki bölümlerde oluşturduğum dizinin en alt klasörüne gitmek istiyorum. Bunun için komut satırına cd Desktop /yeni_dizin /yeni/en_yeni
şeklinde bir komut veriyorum.
Eğer sürekli iki dizin arasında gidip geliyorsak bir önceki dizine cd -
komutu ile dönebiliriz.
ls
En temel kullanımı ile başlayacak olursak, ls
komutu içinde bulunduğumuz dizinde yer alanları bizlere gösterir.
ls-l
Eğer çıktımız ayrıntılı olsun istiyorsak komut satırına komutu parametresi ile beraber ls -l
şeklinde yazmamız gerekiyor.
ls-a
Eğer istersek gizli dosyaları da aynı şekilde listeleyebiliriz. Bunun için ls
komutunun a
parametresini kullanıyoruz. Çıktımızın düzenli ve listeli olması adına a
parametresinin yanına bir de l
parametresi kullanmak istiyorum. Bunun için komut satırına ls -la
şeklinde veya ls -al
şeklinde komutu girmemiz gerekiyor.
ls -A
. ve .. dizinleri hariç gizli dosyalar da dahil bütün dosyaları görmek istersek ls
komutumuzu ls -A
şeklinde kullanabiliriz. Ayrıca çıktıları düzgün şekilde listelemek adına l
parametresi de dahil edebileceğimizi biliyorsunuz.
ls -h
Listelenen dizinlerin boyutunu okunaklı(human readable) şekilde verir. Okunaklıdan kasıt dosya boyutunu KB, MB, GB türünden büyüklük olarak vermesidir.
ls -i
Düğüm numarasını verir.
ls -S
Dosya büyüklüğüne göre sıralar.
ls -t
Dosyanın değiştirilme tarihine göre sıralar.
ls -r
Konsola basılan çıktıyı ters çevirerek basar.
Dizin Oluşturma Ve Silme
Dizin oluşturmak için mkdir
, silmek için ise rm
komutu kullanılıyor.
mkdir
Klasör oluşturmamıza olanak sağlayan komuttur. En temel kullanımı mkdir klasör_adı
şeklindedir. Örneğin bulunduğumuz konuma dosyalar adında bir dizin oluşturalım. Bunun için komut satırına mkdir dosyalar
yazmamız yeterli. Ayrıca klasörümüzün oluşup oluşmadığını da ls
komutu ile teyit ediyoruz.
Eğer çoklu şekilde klasör oluşturmak istersek klasör isimlerini peş peşe yazarak bu işlemi gerçekleştirebiliriz. Komutun kullanımı mkdir dizin1 dizin2 dizin3
şeklindedir.
Ayrıca klasör oluştururken izin ayarlarını da dilediğimiz şekilde ayarlayabiliriz. Bu imkanı bize -m
parametresi sağlıyor. Kullanımı mkdir -m izin_kodu klasör_adı
şeklindedir.
rm
Dizin dediğimiz şey iç içe sıralanmış klasör ve dosyalardan oluşan bir yol. Yani bu yolu silmek istediğimizde içerisindeki her şeyi de silmeliyiz. Bu yüzden komutumuzu -r
parametresi ile birlikte kullanarak dizinin içerisindeki dosyalar da dahil her şeyi silmesini söylemiş oluruz. Yani komutun dizin silme işlemi için kullanım rm -r silinecek_dizin
şeklindedir.
Ve dizin, içerisinde bulunanlar ile birlikte silinmiş oldu. Eğer komutumuzu parametresiz olarak yani -r
olmadan rm secure
şeklinde verseydik, komut satırı bu işlemi dizinin içerisinde klasör ve dosya bulunması nedeniyle gerçekleştiremezdi.
Ayrıca dizin silme komutunurm -ri dizin1 dizin2 dizin3
şeklinde kullanarak toplu şekilde silme işlemi de gerçekleştirebilirsiniz.