Bash – Linux Komutları ve Kullanımı

İşletim Sistemleri, Linux

Linux komutları, Linux dağıtımlarını kullanan ve özellikle siber güvenlik alanında çalışan herkesin bilmesi gereken olmazsa olmaz noktalardan bir tanesidir. Bu yazıda iş hayatım sırasında bizzat tecrübe ettiğim ve öğrenmek zorunda kaldığım, öğrendikten sonra ise performansımı yüksek oranda artıran ve bana hız kazandıran en iyi linux komutlarını sizlerle paylaşıyor olacağım.

Bu yazı bir eskiz defteri niteliği taşıyacak olup ilerleyen aşamalarda her komutun kullanımı için alt bölümlere ayrılacak ve sürekli güncellenecektir. Listede olmayan ve özel olarak öğrenmemi önerdiğiniz komutlar varsa yorumlarda belirtmeyi unutmayın!

Bu yazı kapsamında Kali Linux 2020 ve https://cocalc.com/ adresinde yer alan Linux terminallerinden yararlanıyor olacağım.

Hayat Kurtaran Komut: Find Komutu

Find komutu temel olarak aradığımız şeyleri bulmamıza yarayan bir linux komutudur. Syntax’ı ise aşağıdaki gibidir.

find [DİZİN] [ARGÜMANLAR]...

Find Komutu ile İçerisinde Bulunulan Dizindeki Tüm Spesifik Dosya Türlerini Bulma

find . -name "*.txt"

Örnek olarak home dizini ve altındaki tüm dizinlerde yer alan TXT dosyaları bulunmuştur.

find txts

Seçilen Dizinde Belirtilen Dosya Uzantılarına Göre Spesifik Bir Kelimeyi İçeren Satırları Ekrana Yazdırmak

find . -name '*.txt' -print0 | xargs -0 grep 'something'

Syntaxı yukarıdaki gibi olan komut ile içerisinde bulunduğumuz dizinde (“.” içerisinde bulunduğumuz dizini ifade ediyor) adı txt uzantısıyla biten tüm dosyaları buluyor ve ardından bunları ekrana yazdırıyoruz. Ekrana yazdırdıktan sonra da tek tek dosyalara ulaşıp bunlar içerisinde something ifadesi varsa, o ifadenin geçtiği satırı ekrana bastıyoruz.

Kısaca;
1- “.txt” ile biten tüm dosyaları bul
2- Bu dosyaların adını ekrana yazdır (kendisinden sonra “|” işaretiyle yeni bir komut çalıştırdığımız için ekrana yazılan bir şey görülmez)
3- Bu dosyalar içerisinde ‘something’ ifadesini içeren satırları ekrana yaz.

Type Argümanı

find . -type f -name '*bul*' 

Type argümanıyla kendisinden sonra belirttiğimiz özellikteki nesneleri bulabiliyoruz. “f” file, yani dosya’yı simgelerken f yerine “d” ile de kullanılabilmektedir. Bu durumda ise directory ifade edilmektedir.

Yukarıdaki örnek komutta ise içerisinde bul kelimesi geçen tüm dosyaları arıyoruz. Dikkat edin, dizin değil dosya!

Exec Argümanıyla Bulunan Dosyalarda Komut Çalıştırmak

find . -type f -name "*combolist*" -exec cat {} +

Exec argümanı kendisinden sonra belirttiğiniz komutu bulduğunuz dosyalar üzerinde çalıştırır. Yukarıdaki örnekte dosya adında combolist ifadesi geçen ve türü dosya (file – directory değil!) olan tüm dosyalarda cat komutunu çalıştırarak onların içeriğini ekrana bastırır.

Peki bu komut ne gibi işinize yarayabilir?

Örneğin elinizde telefon numaraları ve parola bilgilerinin olduğu onlarca combolist var. Aynı telefon numarası ve parola ikilisi başka bir combolist içerisinde de yer alıyor olabilir. Bunu kontrol etmek için tüm combolistleri bulup sort etmek son derece efektif bir çözüm olacaktır. Kullanımı şu şekilde;

find . -type f -name "*combolist*" -exec cat {} + | sort -u > output

NOT: {} bulduğu bir dosyayı ifade ederken, + diğer dosyalara da aynı işlemi yapması gerektiğini ifade etmektedir.

Privilege Escalation için SUID Dosyaları mı Arıyorsun? Find Bulur

find / -perm /4000

/ → Find komutunun çalıştırılacağı dizin
-perm → Kendisinden sonra belirtilen izin değerine sahip dosyaları arar
/4000 → SUID özelliği aktif olan dosyaların izin değeri.

Belirtilen Dosyalar Hariç Tüm Diğer Dosyaları Silmek

find . -type f -not -name 'BunuSilme.rar' -delete

Güncel Kullanıcıyla Yazılabilir Dizinleri ve Dosyaları Keşfetmek

find / -type d -writable -print 

d -> directory

d yerine “f” belirterek dosyaları bulabilirsiniz.

Belirtilen Dosya Boyutundan Büyük Olan Dosyaları Tespit Etmek

find . -type f -size +4096c

Yukarıdaki komut ile 4096 kb’dan büyük olan dosyaları tespit ederiz. (c = kb)


Sana Ne Lazım Komutu: Grep

Grep komutu kelimenin tam anlamıyla bizim ne lazımsa onu veren bir bash komutu. İhtiyaç duyduğumuz kelimeyi içeren satırları ekrana yazdırır. En basit kullanımıyla syntaxı şu şekildedir;

grep sorgu dosya

Grep Komutuyla Aranan Kelime Öncesi ve Sonrası X Satırı Almak

Grep ile aranan kelimeden önce veya 3 satırı, 4 satırı vs. mi istiyorsunuz? A ve B parametreleri bunun için var. Tabi bir de C parametresi.

grep komutunun kullanımı

Aranan Kelime Sonrası X Satırı Almak

grep sorgu -A X dosya

Aranan Kelime Öncesi X Satırı Almak

grep sorgu -B X dosya

Aranan Kelime Öncesi ve Sonrası X Satırı Almak

grep sorgu -C X dosya

Kes Biç: Cut Komutu

Cut, özellikle veri analizi yaparken çok fazla işimize yarayan bir komut. Data parsing sırasında istediğimiz verilere hızlı ve pratik bir şekilde ulaşmamızı sağlar. Komutun genel syntax’ı ise şu şekildedir:

cut -d "[AYRAÇ]" -f[BÖLME_SAYISI] dosya

d [AYRAÇ] → Belirtilen delimeter ile satırı parçalar liste olarak döndürür (Py. split gibi ancak index kavramı yok, direkt 1’den başlar.)
f [BÖLME_SAYISI] → Belirtilen field’ı ekrana basar
-f[BÖLME_SAYISI]- → Belirtilen Fıeld’e kadar olan kısmı kesip kalan ekrana yazar. (-f3- için ilk 2 field’ı kesip kalan kısmı ekrana yazar.

Bir cevap yazın