Ana içeriğe geç
Kısım 11 - Bir şeyler bulmak...
  1. Linux Bootcamp/

Kısım 11 - Bir şeyler bulmak...

· ·
NKÜ Siber Güvenlik Topluluğu
Yazar
NKÜ Siber Güvenlik Topluluğu
Kampüste dijital dönüşüm. Sen de bize katıl!
Yazar
Yiğit Altınay
Bir kaplumbağa olsaydım Fransızca konuşurdum.

11. Kısım - Bir şeyler bulmak…
#

GİRİŞ
#

Bugün, dosyaları ve içerdikleri metinleri hızlı ve verimli bir şekilde nasıl bulacağınızı inceleyeceğiz.

Bir dosyanın ya da ayarın var olduğunu bilmek, ancak bulamamak çok sinir bozucu olabilir! Bugünkü komutlara hakim olarak sistemlerinizi yönetirken çok daha özgüvenli olacaksınız.

Bugün kullanacağımız faydalı araçlar:

  • locate
  • find
  • grep
  • which

BUGÜNKÜ GÖREVLERİNİZ
#

  • “Permission” kelimesini içeren tüm dosyaları bulun.

TALİMATLAR
#

locate
#

access.log adlı bir dosya arıyorsanız, en hızlı yöntem locate komutunu şu şekilde kullanmaktır:

$ locate access.log
/var/log/apache2/access.log
/var/log/apache2/access.log.1
/var/log/apache2/access.log.2.gz

(locate yüklü değilse sudo apt install mlocate komutuyla yükleyin.)

Gördüğünüz gibi, varsayılan olarak aramayı "*something*" biçiminde yapar. locate komutu çok hızlıdır çünkü bir dizini tarar. Ancak, bu dizin güncel değilse ya da eksikse aradığınız dosya bulunamayabilir. Dizini manuel olarak güncellemek için:

sudo updatedb

find
#

find komutu, bir dizin yapısı içinde belirli kriterlere uyan dosyaları arar. Bu kriterler dosya adı, boyut ya da son değiştirilme tarihi gibi özellikler olabilir. Örneğin:

find /var -name access.log
find /home -mtime -3

İlk komut “access.log” adında dosyaları arar, ikincisi ise /home dizininde son 3 gün içinde değiştirilmiş dosyaları arar.

find komutu, dizini taradığı için locate kadar hızlı değildir ve aramayı yapan kullanıcının izinleri nedeniyle bazı dizinlerde “permission denied” (izin reddedildi) hataları verebilir. Tüm sistemi taramak için sudo kullanabilirsiniz:

sudo find /var -name access.log 2>&1 | grep -vi "Permission denied"

Bu sadece find komutunun temel bir örneğidir. Daha fazla bilgi için KAYNAKLAR bölümündeki makalelere göz atın ve olabildiğince çok örnek üzerinde çalışın.

grep -R
#

grep komutunu belirli bir dosya yerine tüm bir dizin yapısı içinde çalıştırabilir ve rekürsif olarak (alt dizinler dahil) arama yapabilirsiniz. Örneğin, “PermitRootLogin” parametresini /etc dizininde arayın:

grep -R -i "PermitRootLogin" /etc/*

Bu komut, büyük-küçük harf duyarsız arama yapar (-i ile) ve dosyaları tararken sembolik bağlantıları da takip eder (-R ile).

Eğer /var/log/access.log.2.gz gibi sıkıştırılmış günlük dosyalarınız varsa, bunları zgrep komutuyla arayabilirsiniz.

which
#

Bazen bir komutun nereden çalıştırıldığını bilmek faydalıdır. Örneğin, nano komutunu çalıştırdığınızda, hangi dizinden yüklendiğini görmek için:

which nano

Benzer şekilde, grep, vi, service ve reboot için de deneyebilirsiniz. Komutların genellikle bin adlı alt klasörlerde bulunduğunu fark edeceksiniz.

GENİŞLETME
#

find komutunun -exec özelliği son derece güçlüdür. Ancak “bir şeyler bulmak” bundan çok daha fazlasını içerir! Bir dosyanın içeriğini bulmanın yanı sıra, kullanımını da lsof ve fuser gibi komutlarla takip edebilirsiniz.

Daha fazla örnek denemek için KAYNAKLAR bölümündeki bağlantılara göz atın.

KAYNAKLAR
#

HATA GİDERME VE “MUTSUZ” BİR SUNUCUYU MUTLU ETME
#

Öğrendiklerinizi SadServers.com adresindeki bazı zorluklarda uygulayın:

Bazı haklar saklıdır. Lisans koşullarını buradan inceleyin.


Related

Kısım 09 - Ağ Kurulumuna Dalış
Kısım 06 - "vim" ile Düzenleme
Kısım 07 - Sunucu ve Servisleri
Kısım 12 - Dosya Aktarımı
Kısım 04 - Yazılım Kurulumu ve Dosya Yapısının Keşfi
Kısım 05 - More veya Less...