Upload
ahmet-guerel
View
2.041
Download
12
Embed Size (px)
Citation preview
LİNUX KULLANIMI
TEMEL LİNUX KOMUTLARI
LİNUX 101
HAKKIMDA
AHMET GÜREL
BLOGGER ~ www.gurelahmet.com
SDÜ YAZILIM KULÜBÜ ~ BAŞKAN YARDIMCISI
Süleyman Demirel Üniversitesi Bilgisayar Mühendisliği
www.linkedin.com/in/ahmetgurell
@ahmtgrll
MAİL:
Bir Önceki Sunum
http://www.slideshare.net/AhmetGrel1/linuxa-giris-ve-kurulum Sunuma buradan ulaşabilirsiniz.
● Bu sunumda GNU/Linux nedir? Linux’un tarihçesi,Linux’ta dağıtım nedir? ve Linux kurulumunu anlatmaya çalışmıştım.
● Bu sunuma başlamadan önce ona bakmanız faydalı olacaktır.
Sunum KazanımlarıLinux Dosya ve Dizin Yapısı Dosya İşlemleriProcess(Süreç) YönetimiArama KomutlarıDosya İzinleriSistem BilgileriDosya Sıkıştırma İşlemleriAğ KomutlarıYazılım Derleme/KurmaMetin EditörleriLinux’ta Alias KullanımıLinux’ta Crontab(Zamanlanmış Görevler)Linux’ta DNS DeğiştirmeLinux’ta Root Şifresi Değiştirme
Linux’ta Dosya ve Dizin Yapısı
Linux’ta Dosya ve Dizin Yapısı/bin : Olması zorunlu temel komut dosyalarını içerir./boot : Başlangıç için gerekli dosyaları bulundurur./home: Ev dizinidir.Içinde kullanıcı dosyaları masaüstü,resimler,indirilenler gibi dosyalar bulunur./dev : Donanım dosyaları vardır./etc : Sistem ayarlarını barındırır./lib : Kütüphane dosyaları ve çekirdek modülleri bulunur./media : Kaldırılabilir aygıtların (CD-ROM, USB bellek vb.) sisteme eklendiği klasördür./mnt : Sistem açılışında otomatik olarak bağlanan sabit disk bölümleri bu dizin altında eklenir./opt : Üçüncü parti kullanıcı programlarının kurulması içindir. /sbin : Sistemi yöneticisiyle ilgili çalıştırabilir dosyaları tutar./srv : Sistemin sunduğu hizmetlerle alakalıdır./tmp : Geçici dosyaları tutmak içindir./usr : Tüm kullanıcılarca paylaşılan verileri içeren dizindir. /var : Log dosyaları, e-posta ve yazıcı kuyrukları gibi değişken verileri barındırır.
Ubuntunun /(Kök) Dizini
Dosya İşlemlerils – dosyaları listeler ls al- gizli dosyalar dahil tüm dosyaları listeler
cd – seçtiğiniz dizinin içine girmenizi sağlar
komut --help ya da man komut ile komutların diğer parametrelerini görebiliriz.
ls --help komutunun çıktısı man ls komutunun çıktısı
Komutlar Hakkında Yardım Alma
pwd:Bulunduğumuz dizini verir clear: Terminal ekranını temizler mkdir klasör_adi – belirtilen isimde dizin oluşturur.
mkdir -p klasör1/klasör2- -p parametresi iç içe klasör oluşturmaya yarar.Bu ve daha fazla parametreyi man mkdir ile görebilirsiniz
Silme ve Kopyalama İşlemlerirm dosya – dosya siler rm -r klasör – belirtilen klasörü siler
touch dosya – boş dosya oluşturur
**Burada silme işlemini gerçekleştirirken silinsin mi diye soruyor y(yes) diyerek işlemi onaylıyoruz.
cp dosya1 dosya2 – dosya1'i dosya2'ye kopyalar
cp -r dizin1 dizin2 – dizin1'i dizin2'ye kopyalar; dizin2 yoksa oluşturur
mv dosya1 dosya2 – dosya1'in adını dosya2 yapar.
komut > dosya_adi - komutun çıktısını dosyadaki şeyleri silip yazar.(yoksa oluşturur)
komut >> dosya_adi - komutun çıktısını dosyanın sonuna yazar.(yoksa oluşturur)
cat dosya_adi- dosyanın içerisindekileri terminalde görmemizi sağlar.
more dosya_adi-dosyanın çıktısını sayfalayarak gösterir..
Process(Süreç) Yönetimips – Aktif süreçleri gösterir. ps aux-Tüm süreçleri gösterir.
Çalışan Process(Süreçler)’i Görmetop- Tüm süreçleri gösterir.
**Burada gördüğünüz PID(Process ID) dır.Bir process’i öldürmek(durdurmak) için kullanacağız.
Process(Süreçler)’i Durdurmakkill pid (process id) –Belirtilen süreçi sonlandırır.
**5604 PID(process id) firefox uygulamasına denk geliyor biz bu uygulamayı kill 5604 diyerek durdurmuş olduk.
Arama Komutlarıfind - find komutu girdiğimiz dizin ve alt klasörlerinde arama yapar.Kullanımı: find dosya_yolu -name “aranacak_ifade”
**Belirtilen yolda *(hrehangi bir ifade) ile başlayıp .odt ile biten dosyaları arıyan komuttur.find komutunun -name gibi başka parametreleride mevcuttur merak edenler bunları internetten aratarak bulabilirler.
grep ifade dosya – Belirtilen dosyalarda ifadeyi arar.
**cd ile Deskop dizinine geldik.Burada grep ile oku.txt dosyasında “gürel” ifadesini arattık ve gelen sonuç ekranda kırmızı ile yazdı.Hiç bir şey bulamasaydı birşey yazmayacaktı.
komut | grep ifade – Komutun çıktısında ifadeyi aratır.
**İlk olarak ps aux | grep firefox komutu ile firefox u arattık ve gelen sonuçlardan firefox un pıd(process id) numarasını bulduk.Bunuda kill 7309 komutunu kullanarak durdurduk.Daha sonra yeniden ps aux | grep firefox komutunun çıktısına baktığımızda o süreçin durduğunu hep beraber gördük.
Linux’ta Dosya İzinleri
● Öncelikle burada bilmemiz gereken Read(Okuma),Write(Yazma),eXecute(Çalıştırma) izinlerinin sayısal değerlerinin bulunduğu.r=4,w=2,x=1 dir.rwx(4+2+1) in 7 yi temsil ettiğini bilmemiz gerekiyor.Onun dışında sayılar üç basamaklı olmakta.Birinci Basamağı Owner(Kendisinin) izinlerini,İkinci basamağı Group(Bulunduğu Grup)’un izinlerini,ve son olarakta Üçüncü basamağıda Public(Diğerlerinin) izinlerini temsil etmektedir.
ls -al - komutu ile tüm dosyaların özelliklerini ve izinlerini görüntüledik.burada drwxr-xr-x gibi karışık gelen ifadeler dosyanın izinlerini belirtir.Ilk satırda ki drwxr-xr-x ele alırsak.
d rwx r-x r-xd: dizin olduğunu belirtiyor.Dosyalarda - dir.
rwx: İlk basamak kendisinin izni(4+2+1=7)
r-x:İkinci basamak grubun izni(4+0+1=6)
r-x:Üçüncü basamak diğerlerinin izni(4+0+1=6)
Ele aldığımız ilk sıradaki dizinimizin izni 766 dır.Aslında okumayı öğrenince hiç de karışık olmadığını görüyorsunuz :)
Dosyaların İzinlerini Değiştirmekchmod izin_degeri dosya- chmod ile vermek istediğimiz izin değerini o dosyaya atayabiliyoruz.
**Burada oku.txt dosyasına 7(read+write+execute)7read+write+execute)7read+write+execute) iznini verdik.Kendisi grubu ve diğerleri hem okuyor hem yazıyor hem de çalıştırabiliyor.chmod ile dosyaların izinlerini bu şekilde değiştirebilirsiniz.
Sistem Bilgileridate – mevcut saat ve tarihi gösterir cal – içinde bulunan ayın takvimini gösterir
uptime – sistemin açık kalma süresini gösterir w – sistemle ilgili özet bilgiler verir whoami – giriş yapan kullanıcıyı gösterir
Sistem Bilgileri
Sistem Bilgilerifinger kullanıcı – kullanıcı hakkında bilgi verir uname -a – çekirdek bilgisini gösterir.
**finger kurulu değil ise kurmanizi isteyecektir.sudo apt-get install finger komutu ile kurabilirsiniz.Bunu yazilim derleme ve kurma adı altında ileride işleyeceğiz.
Sistem Bilgilericat /proc/cpuinfo – işlemci bilgisini gösterir
Sistem Bilgilericat /proc/meminfo – RAM bilgisini gösterir.
Sistem Bilgileridf – disk kullanımını gösterir. du – dizinin kullandığı disk alanını gösterir.
** İlk olarak df ile disk kullanımını görüntüledik daha sonra mkdir ile yeni bir dizin oluşturmak istediğimizde permission denied(izin reddedildi) hatasını aldık bu yuzden sudo ile root kullanıcısının yetkilerini kullanarak oluşturduk.Ve daha sonra du ile disk te ne kadar yer kapladığını gördük.
Sistem Bilgilerifree – kullanılan RAM bilgisini gösterir which uygulama – uygulamanın tam yolunu gösterir
Linux’ta Dosya Sıkıştırma tar cf dosya.tar.gz dosya – Sıkıştırılmış tar arşivi oluşturur. (gzip)
tar xf dosya.tar.gz – Sıkıştırılmış arşivi açar.
tar cf dosya.tar.bz2 dosya – Sıkıştırılmış tar arşivi oluşturur. (bzip2)
tar xf dosya.tar.bz2 – Arşivi açar.
Ağ Komutlarıping hedef – hedefe ping atar ve sonuçları gösterir.
Ağ Komutlarıwhois domain – belirtilen alan adının kayıt bilgilerini gösterir.
Ağ Komutlarıdig domain – Belirtilen alan adının DNS bilgilerini getirir.
Yazılım Derleme/Kurma1-Öncelikle sistem açıldığında Ubuntuda Ubuntu Software Center i araç çubuğunda görebilirsiniz diğer dağıtımlarda da bu tip uygulama merkezleri (paket depoları) vardır.Buradan istediğiniz programları bularak root şifrenizi girdikten sonra oldukça basit bir şekilde yükleyebilirsiniz.
Yazılım Derleme/Kurma2-Komut satırı üzerinden paket yönetimi sistemi ile de program kurabiliriz.Bunun için verilecek komutlar:
sudo apt-get install paket_adi - Programı kurmaya yararsudo apt-get remove paket_adi -Programı kaldırır.
Yazılım Derleme/Kurma
Yazılım Derleme/Kurma3-Yazılım Merkezlerinde bazen tüm yazilimlar olmuyor ya da olanlar da eski sürümleri olabiliyor.Bir önceki gördüğümüz NetBeans Java IDE si 7.0.1 iken şuan 8.0.2 si mevcut.Bunları yüklemek için internetten kurulum dosyaları bulunur ve yüklenir.Bu kurulum dosyaları “.sh”,”.bin” ve “.deb” tarzında olabilir.Bunları yükler iken:
sudo dpkg -i dosya_adi.deb **deb(debian kısaltması) farklı dağıtımlarda farklı şekilde olacaktır.
chmod +x dosya_adi.sh **Dosyayı komut olarak çalışır hale getirecektir.
./dosya_adi.sh şeklinde kurulur. **(.bin uzantılı dosyalarda .sh uzantılı dosyalarla aynı şekilde kurulur.)
Yazılım Derleme/Kurma
Linux’ta EditörlerLinux ta metin dosyalarını okumak için nano ve vi editörleri içinde yüklü gelir.Vi nin çok daha gelişmiş hali olan vim editörü çok yaygın bir şekilde kullanılır bende onu kullanmaktayım.Onu kullanmak için sudo apt-get install vim ile yüklemeniz gerekmektedir.
touch komutu ile EditörÖgren adlı bir dosya oluşturup bunun içine vim editörü ile girmemizi sağlayacak komutu terminale yazdık.
Dosyamıza vim ile yazdıklarımızı kaydetip çıktıktan sonra cat komutu ile içine bakıyoruz ve yazdıklarımız kayıt edilmiş mi diye ve her şey yazdığımız gibi :)
Linux’ta Alias KullanımıAlias ile Linux’ta istediğiniz bir komutun adını değiştirebilirsiniz.
Bu genelde uzun karışık gelip sık sık kullanılan komutları basitleştirmek için kullanılır.
Biz ise bugün cd nin yerine sec kullanmak isteyeceğiz ve bunu alias ile yapacağız.
Bunun için /etc/bash.bashrc dosyasını vim editörü ile açarak alias sec=”cd” şeklinde bir tanımlama yapacağız.
Aliasında kullanım şeklini öğrenmiş olduk. Aslında komutlara takma isim veriyoruz.
Burada dosyayı açtıktan İ ye basarak insert olup sonra alias sec=”cd” tanımlamasını yapıyoruz.Daha sonra ESC ye basıp :wq ile dosyayı kaydedip çıkıyoruz.Terminali kapatıp açtıktan sonra cd komutu yerine sec komutunu kullanacağız.
Linux’ta Crontab(Zamanlanmış Görevler)Crontab Nedir?Linuxta crontab istediğimiz bir komutu crontab dosyasına yazarak istediğimiz zamanlarda istediğimiz kullanıcı tarafından komut yada uygulamaların çalıştırılma işlemidir.Etc dizininin altındaki crontab dosyasına cat komutu ile göz atalım.Burada crontab ın ayarlarını görebilmekteyiz.
Crontab Parametreleri
$crontab -e → crontab dosyasının düzenlenmesi yoksa oluşturmayı sağlar.
$crontab -l → crontab dosyasını gösterir.
$crontab -r → crontab dosyasını siler.
$crontab -v → crontab dosyasının en son düzenlenme tarihini gösterir.
Crontab Nasıl Yazılır?Crontan hakkında genel bilgileri verdikten sonra gelelim crontab yazımına.Crontab yazmak için uymamız ve bilmemiz gereken bir kaç küçük kural var.
Dakika Saat Ayın Günler Ay Haftanın Günleri Kullanıcı Adı Komut * * * * * root ls /home/ahmet-gurel/Desktop
Crontab yazarken yukaridaki sıralamaya uyarak yazmalıyız.* lar her an demektir.Yukaridaki komut her dakika her saat ayın her günü her ay ve haftanın her günü Desktop u ls komutu ile listeler diyebiliriz.
Crontab Nasıl Yazılır?Dakika(0-59)
Saat(1-23)
Ayin Günleri(1-31)
Ay(1-12)
Haftanin Günleri(0-7)(0 veya 7 Pazar 1:Pazartesi 2:Sali ...... 6:Cumartesi)
Kullanıcı Adi
Komut
Sırası ve yanındaki izin değerlerini kullanarak oluşturmamız gerekiyor.Şimdi bir kaç örnek yapalım.
Crontab Örnekler1-Her gun 6.30,12.30,18.30,20.30 Saatlerinde çalışan bir komut?
Dakika Saat Ayın Günleri Aylar Haftanın Günleri Kullanıcı Adı Komut30 6,12,18,20 * * * root touch
Not:Birden fazla saati,günü yada dakikayı yukarıdaki örnekteki gibi virgül ile ayırabiliriz.
2-Ilk çalışma saati 04:00 te sonraki çalışma saati 07:00 den 12:00 kadar diğer çalışma saati 14:00 olan bir zamanlanmıs görev yazınız.
Dakika Saat Ayın Günleri Aylar Haftanın Günleri Kullanıcı Adı Komut0 4,7-12,14 * * * root touch / hello
Not:Belli saatleri virgülle ayırıyoruz fakat yukaridaki örnekte ki gibi belli saatler arasında sürekli çalışmasını istediğimiz zaman ise bunu - ile yapıyoruz.
Crontab Örnekler3-Pazartesi cuma günleri sadece mesai saatleri içerisinde on dakikada bir çalışabilen zamanlanmış görev yazınız.Dakika Saat Ayın Günleri Aylar Haftanın Günleri Kullanıcı Adı Komut */10 8-17 * * 1,5 root touch /home/merhaba
Not: Her 10 dakikada derken */10 kullanarak yaptık bu örnekte en önemli kısım buydu.
4-21 mart salı günü 6 saatde bir çalışacak zamanlanmıs görev yazınızDakika Saat Ayın Günleri Aylar Haftanın Günleri Kullanıcı Adı Komut * */6 21 3 2 root touch /home/hello
5-Ikiye bölunen ayların üçe bölünen gümlerinde eğer o gun cumartesiye denk geliyorsa sabah 8 den 14 e kadar 9 dakika bir çalışabilen zmanşanmıs görev yazınız.Dakika Saat Ayın Günleri Aylar Haftanın Günleri Kullanıcı Adı Komut */9 8-14 3-30/3 2-12/2 6 root touch /home/hello
Örnekler bittiğine göre önemli işaretlerin virgül(,),tire(-),slash(/) ve yıldız(*) olduğunu görmüş olduk.
Linux’ta Çalışan CronlarSon olarak çalışan cronları görmek için log dosyalarını inclememiz gerekir tabi ki bunu kolaylaştırmak için grep komutuyla yapabiliriz."grep CRON /var/log/syslog" komutu yazarsaniz sisteminizde çalışan cronları görebilirsiniz.
Linux’ta DNS DeğiştirmeDNS(Domain Name System) nedir?
Türkçe olarak Alan Adı Sistemi olan DNS girdiğimiz sitelerin IP adresini tutan bir adres defteri gibidir.
Girdiğimiz bir domain tıkladığımızda kullandığımız DNS bizi yönlendirdiği için bazen ulaşamama durumları oluyor farklı
nedenlerden o IP yı engellıyorlar ve bu site yasaklanmıştır diyor bizde bunun için farklı DNS ler kullanarak erişimimize
devam ediyoruz.
Türkiyede yasaklanan sitelerin arasına zamanında youtube,twitter gibi siteler de girdiği için herkes DNS değiştirmeyi
yardımcı proğramlar ve farklı browserler kullanmayı öğrendi.Sanırım yasakların tek iyi sonucu bu oldu :)
Linux’ta DNS DeğiştirmeLinuxta DNS adresleri /etc dizinin altınta resolv.conf dosyasında tutuluyor. (.conf configuration dan geliyor ayar,yapılandırma dosyası demektır.)
sudo ile root yetkisi alarak resolv.conf ayar dosyasını vim editörü ile açtık.(vim editörü yüklü değil ise “sudo apt-get install vim” komutu ile yükleyebilir yada nano ve vi editörlerinden birini kullanabilirsiniz.)
Linux’ta DNS DeğiştirmeDefault olarak gelen DNS imiz 127.0.1.1 adresini görüyoruz biz bunu Google’ın DNS i olan 8.8.8.8 /8.8.4.4 ile değiştireceğiz.Bunun için “i” tuşuna basarak editörümüzü INSERT hale getireceğiz.
Linux’ta DNS DeğiştirmeDNS imizi böyle girdikten sonra “ESC” tuşuna basarak “:wq” yazarak vim editörüne kaydet ve çık komutunu vermiş olduk.
Fakat bu yaptığımız işlem bilgisayar yeniden başlattığımızda silinip eski halini alacak.
Bunun için bizde chattr +i /etc/resolv.conf komutunu vererek işlemimizi kalıca hale getireceğiz.
Chattr +i dosyamızı kilitlemeye yarayan komuttur.
Linux’ta Root Şifresi DeğiştirmeLinux ta bildiğiniz gibi bazı işlemleri gerçekleştirebilmeniz için root yetkilerine sahip olmanız gerekir.
Program yükleyip kaldıracağınız zaman,sistem dosyalarında değişiklik yapacağınız zaman root yetkisi gerekir.
Fakat bazen root şifresi unutulabiliyor hele ki yeni kullanıcıların çok başına gelmektedir.
Debian(Ubuntu,Mint,Kali,Pardus…) dağıtımlarında unutulan root şifresini yeniden oluşturmayı anlatacağım.
Önümüze gelen grub ekranı aşağıda ki görselde mevcut grub ekranında E tuşuna basarak EDIT hala getireceğiz.
Linux’ta Root Şifresi Değiştirme
Şimdi yukarıda ki görselde kırmızı ile çizilmiş kısımlar bizim için önemli ro yazan yerde ki yolu değiştirdikten sonra Ctrl-x yada F10 ile boot ederek sistemi root olarak açacağız.
Linux’ta Root Şifresi Değiştirme
Linux’ta Root Şifresi Değiştirmero ve sonrasını silerek rw quiet init=/bin/bash yazarak CTRL+X yada F10 ile boot edeceğiz.
NOT:Bu arada ro ve rw kernel parametreleridir.ro default olarak gelen sadece okuma iznini barındırıyor rw ise okumanın yanında yazma yetkisinide barındırıyor.ro yu kullansak yazma yetkımızın olmamasından dolayı bir hata alabilirdik.
Linux’ta Root Şifresi DeğiştirmeBoot ettikten sonra sistem root olarak açılıyor. passwd komutunu girerek yeni şifre belirleyeceğiz.
Linux’ta Root Şifresi Değiştirme
Resimde gördüğünüz gibi işlem başarı ile gerçekleşti passwd: password updated successfully gibi bir çıktı aldık.Artık şifreniz yeniden oluşturulmuştur güle güle kullanınız.
TEŞEKKÜRLER...Başta da söylediğim gibi daha önce hazırladığım Linux'a Giriş ve Kurulum dökümanına göz attıysanız bu dökuman çok daha anlaşılır gelecektir.
Bu sunumda Temel Linux Kullanımı & Komutlarını anlatmaya çalıştım.
Bunların yanında işinize yarabilecek bir kaç farklı konuya değindim.İşlenen komutlar temel olup daha bir çok komut ve her komutun bir çok parametresi mevcuttur.
Bu sunumu bitirip temel seviyeye geldikten sonra internetten bolca araştırma yapmanızı öneririm.
Soru,Görüş ve Önerilerinizi [email protected] mail adresim ile ya da Blogumda(www.gurelahmet.com) ki Sosyal Ağlar kısmında bana ulaşıp sorabilirsiniz.
Umarım faydalı olmuştur.Başka sunumlarda görüşmek üzere :)
AHMET GÜREL
KAYNAKÇALAR1-http://wiki.ubuntu-tr.net/2-http://www.belgeler.org/ 3-http://www.linux.org.tr/ 4-http://www.getgnu.org/