Temel Linux öğrenme notlarım — 8

Semih Saydam
8 min readDec 20, 2022

--

Merhaba, Bu yazımızda sizlerle beraber günceleme kurma/kaldırma işlemleri — Joker karakterler ve Ağ komutlarını öğreneceğiz. Hadi yola koyulalım, zaman en değerli şey 🕐

Güncelleme kurma/kaldırma işlemleri

Bu başlıkta sistemi güncellemeyi ve istediğimiz programı kurup/kaldırabilmeyi öğreneceğiz. Öncelikle sistemi nasıl güncelleriz ona bakalım :

Sistemi güncellemek

Linux sistemleri kullanıcının ihtiyacı olduğunda kolayca ulaşabilmelerini sağlayan, kendi paket depolarına(repository) sahiptirler. Farklı linux dağıtımları için bu paketler de farklılık gösterebiliyor, bu sebepten farklı linux dağıtımlarının farklı komutları bulunuyor :

Bizim kullandığımız Kali distrosu Debian tabanlı olduğu için onun komutlarını ve paketlerini kullanıyor olacağız. Güncellemeleri bir kaynaktan alacağı için öncelikle mousepad /etc/apt/sources.list komutunu girerek, bu kaynağı kullandığımız kali versiyonuna uygun depolarla güncelliyoruz :

etc/apt/sources.list dosyasını açtıktan sonra üstünde zaten bize güncel depolar mı kontrol etmemiz için link bırakmış. Bu linke gidip depoların güncel olup olmadığını kontrol ediyoruz. Güncelleme işlemini yaparken bu depolar kullanılıyor olacaktır. Şimdi güncelleme işleminde kullanabileceğimiz komutları inceleyelim :

  • apt-get update komutu “sources.list” dosyasındaki repolara bakarak paket listelerini kontrol edip, paketlerin son sürümleri ve bağımlılıkları hakkında bilgi alır, kısacası bu komut “yeni bir şey var mı ?” diye kontrol eder.
  • apt-get upgrade -y komutu, yukarıdaki update komutunun bize bildirdiği, güncellenmesi gereken paketleri en son versiyonlarına günceller. -y parametresi, onay sorularına otomatik olarak “yes” cevabını vermek içindir. Bu parametreyi onay isteyen komutların otomatik işletilebilmesi için çokça görürsünüz.
  • apt-get dist-upgrade komutu, yukarıdaki upgrade komutu gibi güncelleme yapar fakat bunun yanında ek olarak gereksiz paketleri de siler.
  • apt-get clean komutu, kurmak üzere indirdiğimiz paketlerin hepsini siler. Depodan inen tüm paketler /var/cache/apt/archives altında .deb(debian paket) uzantısıyla arşivlenerek, kullanılma ihtimallerine karşı tutulurlar. clean komutu ile yer kaplamasın diye bu paketleri silebiliyoruz.
  • apt-get autoclean komutu, clean komutu gibi arşivlenmiş paketleri silme işlemini yapar, fakat tüm arşiv paketlerini değil sadece eski sürümleri sürümleri siler.
  • apt-get autoremove -y komutu, silmiş olduğumuz uygulamalardan geriye kalan bağımlılıkları temizler.

Program Kurma işlemleri

Linux’ta program kurmak için birden fazla yöntem var :

  • Paket Yönetim sisteminden,
  • Kaynak koddan derleyerek,
  • Depodan(repository) kurulum yaparak,

program kurabiliyoruz. Şimdi bunları tek tek başlıklarla inceleyelim.

Depodan Kurulum

Depoda(repository) bulunan programların kurulumları için apt-get install <program_adı> -y komutunu kullanıyoruz. Fakat burada sistemin güncel olması önemli, eğer sistemimiz güncel değilse depodan program yüklerken hata alınabilir. Bunun yanında eğer yüklemek istediğiniz program depoda yoksa, o programın da kurulumunu gerçekleştiremezsiniz. Bunun için depolarda istediğiniz program var mı diye apt-cache search <program_adı> komutu ile kontrol edebiliyoruz :

GIF’te gördüğünüz gibi kurduğumuz programı da benzer şekilde apt-get remove <program_adı> -y şeklinde silebiliriz.

Paket yönetim sistemi ile kurulum

Bu işlem için kullandığımız dağıtıma uygun olan derleyiciyi kullanmamız gerekiyor. Yukarıdaki görsellerde Kali linux Debian tabanlı olduğu için apt-get ve dpkg kullandığını görebilirsiniz. Debian’da paketler “.deb” uzantısı oluyor ve bunlar için dpkg(debian package) kullanıyoruz. Bunun yanında dpkg yerine yardımcı paket programı, örneğin “synaptic” ile de bu işlemleri yerine getirebiliriz.

Burada örnek olarak “master pdf editör” programını “.deb” uzantısı ile indirip dpkg -i <indirilen_deb_kurulum_dosyası> şeklinde kuruyoruz (-i install). Ardından programın çalıştığını kontrol edip, GIF’te gördüğünüz üzere dpkg -r <program_adı> şeklinde programı silebiliyoruz (-r remove) ve aynı şekilde dpkg -P <program_adı> şeklinde de konfigürasyon dosyalarını silebiliyoruz. Konfigürasyon ayarlarını tekrar yapılandırmanız gerekirse, dpkg-reconfigure <paket/program_adı> şeklinde kullanmamız yeterli oluyor. Sistemde kurulu olan tüm paketler hakkında bilgi almak için dpkg -l komutunu işletip paketleri listeleyebiliyoruz :

Buradaki ii → paket normal olarak yüklendi. rc → paket yüklendikten sonra silindi ancak konfigürasyon dosyaları hala mevcut ve pn → paket konfigürasyon dosyaları ile birlikte sistemden kaldırıldı demek oluyor.

Yukarıda dpkg yerine, yardımcı paket programı(synaptic) ile kurulum/kaldırma/güncelleme işlemleri yapabileceğimizden bahsetmiştik. Şimdi onu inceleyelim :

İlk olarak apt-get install synaptic ile synaptic’i kuruyoruz. Ardından gördüğünüz üzere synaptic yazarak programı açıyoruz. Burada depolarda yer alan programları UI üzerinden kolayca kurup kaldırabiliyoruz.

Joker Karakterler

Daha önce joker karakterleri kullanmıştık. Bu bölümde daha da ayrıntılı göreceğiz.

Joker Karakterler(wildcards)

Bir komutun birden fazla nesneyi kapsamasını isteyebiliriz. Örneğin rm dosya1 dosya2 dosya3 dosya4 şeklinde tek tek dosyaların ismini yazmak yerine rm * şeklinde komutumuzu kullanıp klasördeki tüm dosyaları silebiliriz :

Gördüğünüz gibi dosya adlarını tek tek yazmak yerine tek bir * işareti ile bütün dosyaları tek seferde silebildik. Buradaki *(asterix) → Her şeyi kapsar. * işaretinin bulunduğu yere herhangi bir şey gelebilir. Yukarıdaki dosyaları rm dosya* şeklinde de temizleyebilirdik. dosyadan sonra herhangi bir şey gelebilir; dosya1, dosya2, dosyax, dosya3 vb. her şeyi kapsar. Örneğin “.png” ile biten dosyaları bulmak istiyoruz, bu case için ls *.png yaparsak ismi ne olursa olsun “.png” ile biten her şeyi bulmuş oluyoruz.

? → herhangi bir tek karakterle eşleşir. Örneğin ana-sayfa ve ana_sayfa adında iki belge olsun. Bu belge isimlerinin gördüğünüz üzere başlangıç ve bitişleri aynı. Farklı kısımları ise ortadaki tek karakter olan “- _” karakterleri. Burada iki dosya ismini de aynı anda vermek istiyorsak ls ana?sayfa yazabiliyoruz.

Buradaki mantık nereden geliyor? Diye sorgularsanız eğer burada biraz soluklanıp sizi başka bir yazıma linkleyeyim → Regex. Yazıya ışınlananlar geri geldiyse devam edelim 😃

Yukarıdaki tabloda da görebileceğiniz [abc] → Hedefe odaklı çalışır. Örneğin dosya1 dosya2 dosya3 dosya4 dosya5içerisinden sadece dosya2 ve dosya3'ü bulmak isterseniz ls dosya[23] yapabilirsiniz. Eğer 1 ile 4 arasındaki dosyaları almak isterseniz ls dosya[1-4] yapabiliyorsunuz. Eğer sadece dosya1, dosya3 ve dosya5'i almak isterseniz ls dosya[1-3-5] veya ls dosya[1,3,5] komutunu işletebilirsiniz.

Bunun yanında yukarıdaki tabloda da görebileceğiniz [^abc] veya [!abc] şeklinde kullanabileceğiniz yapı var. Burada verdiğim ifadeler olmasın demiş oluyoruz :

Gördüğünüz gibi ls dosya[1-2-5] dosya1, dosya2 ve dosya5'i getirirken ls dosya[^1-2-5] dosya1, dosya2 ve dosya5 haricinde kalanları yani dosya3 ve dosya4'ü getirdi.

Ağ komutları

ifconfig Komutu

Sistemde bulunan bağlantı ve ip yapılandırması ayarlarını inceleyip, değiştirmemize olanak tanır. ifconfig interface configuration anlamındadır. ifconfig komutunu işletip ağ bağlantı kartlarını listeleyebiliriz :

eth0 → Ethernet kartımızı ifade ediyor. lo → bilgisayarımızın kendisi yani localhost’u ifade ediyor. wlan0 → kablosuz ağ kartını ifade eder. Burada ifconfig <kart_adı> komutu ile sadece istenilen kart bilgilerini getirebilir ve ifconfig <kart_adı> <ip> şeklinde örnek olarak ip bilgisini değiştirebilirsiniz :

ifconfig wlan0 <ip_address> netmask <netmask_adress> broadcast <broadcast_address> şeklinde de ip ile birlikte netmask ve broadcast’i de değiştirebilirsiniz. ifconfig <kart_adı> down ile kartı kapatabilir ve aynı mantıkla ifconfig <kart_adı> up ile de açabilirsiniz.

ping Komutu

Hedef sistem ile bizim sistemimiz arasındaki iletişimi kontrol etmek için kullandığımız bir komuttur. Hedef sunucunun çalışıp/çalışmadığını ve aktarım hızının ne kadar olduğu gibi bilgileri alabiliriz. En temelde ping <hedef_adres> şeklinde kullanılır :

Gördüğünüz üzere ping google.com komutu ile google’a paketler yolluyoruz, burada komut siz Ctrl+C veya Ctrl+Z yapana kadar komut yollamaya devam edecektir. Eğer sürekli çalışmasın, belirli sayıda paket göndersin istersek de ping -c <sayı> <hedef_adres> şeklinde komutu işletebiliriz :

route ve traceroute Komutu

route komutu ile sistemimizdeki ip yönlendirme tablosunun içeriğini görebiliyoruz:

Buradaki Gateway(ağ geçit adresi), yerel ağdan internet ağına geçerken kullanılan bir yönlendirme adresidir.

traceroute komutu da route komutuyla gördüğümüz yerel ağda geçerli olan yönlendirme takibini belirli bir hedef adrese yapabilmemizi sağlayan komuttur. Komutumuz belirli bir hedefe gönderilen paketin hangi host’lardan geçtiğini bizlere gösterir traceroute <hedef_adresi> :

whois Komutu

Domain bilgilerini içeren bir mekanizmadır. whois komutu ile domain ne zaman kurulmuş, kimin üzerine kayıtlı ve geçerlilik süresi ne gibi domain bilgilerini verir.

host Komutu

Hedef adres hakkında bilgi almamızı sağlıyor. Bu komut ile ip adresinden → alan adı(domain)’e veya domain’den → ip adresine ulaşabiliyoruz :

dig Komutu

Domain information groper[domain bilgi çukuru](dig) şeklinde kısaltması olan komut, DNS kayıtlarına bakmak için kullanılır. dig <hedef_adres> şeklinde kullanılır.

arp Komutu

Ağda bulunan cihazların ip adresiyle MAC adresini(fiziksel adres) eşleştirerek tablolar halinde bize gösterir :

tcpdump Komutu

Sistemimizin yaptığı bağlantıları ve sistemimize yapılan bağlantıları anlık olarak görüntülememizi sağlar. tcpdump şeklinde direkt komut işletilebilir. Adres çözümlemesi yapmadan direkt olarak bağlantıları takip etmek için ise tcpdump -n şeklinde kullanabiliriz.

DNS Ayarı

Komut satırında DNS ayarlarınızı değiştirmek isterseniz DNS bilgilerinin tutulduğu etc/resolv.conf dosyasında değişiklik yapmamız gerekiyor :

hosts Dosyası

Hosts dosyası yerel bir alan adı sunucusu işlevindedir. Sistemde alan adı çözümlemesi yapılırken bu dosyaya bakılır. Dosyanın konumu /etc/hosts şeklindedir.

--

--