5 - Komut Satırı ve Temel Komutlar - 2
2025
Dosya veya dosyaların içeriğini okuyup, içeriğini standart çıkışa (stdout) yazar.
echo "Test İçeriği" > ornek.txt
cat ornek.txt
Test İçeriği
# birden fazla dosyayı da okur
echo selam > selam1.txt
echo selam > selam2.txt
cat selam1.txt selam2.txt
selam
selam
Örnek:
cat
ile görüntüle: cat ~/.bash_history
hostname
ile değil de cat
ile görüntüle: cat /etc/hostname
Yazmak istediğimiz ifadeleri hem komut satırına yansıtıp hem de bu ifadelerin bir dosya içerisine kayıt olmasını isterseniz kullanacağınız komut tee
komutu olacaktır.
CTRL + D
tuşlarına basıp yazma işlemi sonlandırılır.
Dosya ya da komut çıktısında bir ifade aramak için yani bir nevi filtreleme işlemi için kullanılır.
Kullanımı: grep "aranacak_ifade" dosya_adı
Örnek:
-i
parametresi kullanılır.# tek bir dosyada bul
grep 'kelime' dosya
# birden fazla dosyada bul
grep 'kelime' dosya1 dosya2 dosya3
# dizindeki ve tüm alt dizinlerdeki dosyalarda bul
grep 'kelime' -r .
# komut çıktısında bul
ps ax | grep 'kelime'
dpkg --list | grep 'vim'
# büyük/küçük harf duyarsız arama
grep -i 'kelime' dosya
Kelime, satır, karakter ve byte sayar. Girdiyi standart girişten veya parametre olarak verilen dosyadan alır.
-c
Bayt sayısını verir.-l
Satır sayısını verir.-m
Karakter sayısını verir.-w
Kelime sayısını verir.Verilen dosyanın ilk satırlarını görüntüler. -n
ile ilk kaç satırın görüntülenmesi gerektiği belirtilir. Eğer satır sayısı verilmez ise ön tanımlı olarak ilk 10 satırı gösterir.
-c
ile dosya başından kaç byte okuyacağı belirtilebilir.
Eğer birden fazla dosya verilirse veriliş sırasına göre dosyaların ilk satırları gösterilir ve her dosyanın satırlarının başına ‘==> XXX <==’ biçiminde ayraç koyar.
Dosyanın son kısımlarını gösterir. -c
ile byte sayısı, -n
ile satır sayısı verilebilir. Eğer dosya verilmez ise standart girişten okur.
Eğer -f
parametresi verilirse tail komutu EOF (dosya sonu) karakterini okuyunca durmaz. Yeni veriler için bekler ve veri hazır olur olmaz okuyup ekrana basar. Genellikle sürekli akan bir log dosyasını görüntülemek için kullanılır:
-r
parametresi çıktıyı ters sırada basar.
Dosyanın içeriğini sayfa sayfa görmek için kullanılır. Eğer dosya uzunluğu bir sayfadan fazla ise ekrana sadece bir sayfalık kısmını gösterir. Enter tuşu ile bir satır ilerlenir, boşluk(space) tuşu ile de bir sayfa ilerlenir.
more /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
..
--Başka--(73%)
more komutunun daha gelişmişidir. More komutu ile geriye doğru gidelemezken less ile gidilebilmektedir.
/
tuşuna basıp istenilen kelime aranabilir.G
ile dosya sonuna gidebilir, g
ile dosya başına gidebilirsin.q
tuşu ile çıkılır.Dosyaları satır satır kıyaslar ve farkını söyler.
Çıktının açıklaması:
1a2,3
: İlk dosyanın 1. satırından sonra, ikinci dosyada 2-3 satırları eklendi>
işareti eklenen satırları gösterir (ikinci dosyada olan)<
işareti çıkarılan satırları gösterirdi (birinci dosyada olup ikincide olmayanlar)Standart girişten ya da dosyadan okuduğu satırlar içindeki istenen sütunları gösterir. Sütun seçme işlemi bir ayraca göre yapılabileceği gibi sabit boyda da yapılabilir.
-c
Karakter olarak seçilecek sütunları belirler.-d
Ayraç belirlemek için kullanılır.-f
Ayraç göre sütunlara ayrıldığında görüntülenmek istenen sütunları seçer....
gdm:x:125:130:Gnome Display Manager:/var/lib/gdm3:/bin/false
emrecan:x:1000:1000:Emre Can Yılmaz,,,:/home/emrecan:/bin/zsh
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
...
/etc/passwd
dosyasının bir kısmı görülmektedir. Görüldüğü gibi bilgiler :
karakteri ile birbirinden ayrılmış.-d
ile ayraç olarak :
belirtildiğinde soldan sağa kullanıcı ismi 1. sütun, parola 2.sütun, UID 3. sütun, GID 4.sütun, açıklama 5.sütun, ev dizini 6.sütun ve kabuk 7.sütun olarak yerleşir
Tekrar eden karakterleri değiştirmek, silmek veya sıkıştırmak için kullanılır. STDIN’den okur, STDOUT’a yazar.
tr [seçenek] SET1 [SET2]
Hem SET1, hem de SET2 belirtilmişse SET1’deki her bir karakter karşılık gelen SET2’deki karakterle değiştirilir.
Aynı iş şu şekilde de yapılabilir:
split komutu dosyayı iki veya daha fazla parçaya bölmek için kullanılır.
-l
parametresi ile satır sayısına göre -b
parametresi ile byte miktarına göre parçalanır.
ls -lh test.pdf
-rw-rw-r-- 1 emrecan emrecan 2,6M Nis 11 16:37 test.pdf
split test.pdf -b 500k
ls -l x*
-rw-rw-r-- 1 emrecan emrecan 512000 Nis 11 16:42 xaa
-rw-rw-r-- 1 emrecan emrecan 512000 Nis 11 16:42 xab
-rw-rw-r-- 1 emrecan emrecan 512000 Nis 11 16:42 xac
-rw-rw-r-- 1 emrecan emrecan 512000 Nis 11 16:42 xad
-rw-rw-r-- 1 emrecan emrecan 512000 Nis 11 16:42 xae
-rw-rw-r-- 1 emrecan emrecan 161464 Nis 11 16:42 xaf
Soru: Peki bu dosyaları nasıl geri birleştiririz?
cat x* > birlestir.pdf
ls -lh birlestir.pdf test.pdf
-rw-rw-r-- 1 ecylmz ecylmz 2,6M Nis 11 16:46 birlestir.pdf
-rw-rw-r-- 1 ecylmz ecylmz 2,6M Nis 11 16:37 test.pdf
diff birlestir.pdf test.pdf
Çıktı yoksa dosyalar aynıdır.
Metinler üzerinde işlem yapan bir programdır.
Genel olarak programların çıktılarını düzenlemek veya pek çok dosyayı otomatik olarak düzenlemek için kullanılır.
Metin üzerinden tek geçişte istenen kriterlere uygun değişiklikleri yapabildiğinden oldukça etkin ve hızlı bir araçtır.
sed [seçenekler] 'komut' dosya […]
eski dosyasındaki gun
metnini bulup gece
ile değiştirir, sonucu yeni dosyasına yazar:
Sed komutunun 4 parçası var:
Öntanımlı olarak her satırdaki ilk bulduğunu değiştirir.
Global değiştirme için:
Bu durumda ilk gördüğünü değil bütün bulduklarını değiştirir.
Belirli satırda değişiklik yapmak için:
Eşleşen satırları silmek için:
Belirli bir satırı silmek için:
sort komutu dosyadaki satırları sıralamak için kullanılır.
-n
sayısal(numeric) sıralama yapar. -f
Büyük/küçük harf ayrımı olmadan sıralar. -r
sıralama sonucunu tersler listeler.
uniq komutu birden fazla olan aynı satırları tek satıra düşürmek için kullanılır.
Genellikle sort komutu ile sıralama yapıldıktan sonra aynı çifte kayıtları silmek için kullanılır.