Labaratuar içersinde kabuk üzerinden erişim, dosya yapıları, dizinlere erişim, Temel komutlara giriş ve filtreleme komutlarından bahsedeceğiz. Ayrıca küçük bir test ile konular ile ilgili bilginizi sınayabileceksiniz.


Bölüm içersinde aşağıdaki konular işlenecektir:


Labaratuar Kullanım İpuçları

Eğitim içersinde, komut satırı bilgileri aşağıdaki üç farklı şekilde belirtilmiştir.

  1. buradaki gibi görünen komut betimleri şeklinde gösterilmler daha çok örnekler ve yazılması gereken komutları tanımlamak için kullanılır.

  2. Aşağıdaki gibi kutu içersinde gördüğünüz kodlar üzerine tıkladığınızda, kopyala yapıştır yapmanıza gerek kalmadan terminal içersinde çalıştırılacaktır:
    uname -a
    
  3. Aşağıda gördüğünüz gibi bir pencere içersinde yazılmış olan kod betimleri sizin klavyeden yazmanız gereken kod betimleridir. Genellikle benzersiz bir ID veya başka bir değişken girmeniz gerekiyordur. Buradaki benzersiz veri eğitim sırasında kullandığınız ortam içersinden bulunabilir. <> içersinde bulunan maddeler sizin değiştirmeniz gereken verinin yerini göstermektedir.
    hostnamectl set <sunucu adı>
    

4. info ve man komutları - bilgi ve el kitabı

Linux içersinde yazacağımız tüm konutlar için hangi parametrenin nasıl kullanıldığı bilgisini bulabileceğimiz bir dökümantasyon var. Manual Pages / El Kitabı Sayfaları diyebileceğimiz bu sayfalar sıklıkla her sistem yöneticisinin başvurduğu bilgi kaynaklarıdır. Tabiki google ile arama yapabilir ve farklı kullanımları bulabilirsiniz, fakat komut satırından hiç ayrılmadan da aynı bilgiye ulaşabilirsiniz.

info
man
help


man

man programı, man page sisteminde bulunan bilgileri arar, biçimlendirir ve görüntüler. Pek çok konu bol miktarda ilgili bilgiye sahip olduğundan, çıktı her seferinde bir sayfa görüntülenmek üzere bir çağrı cihazı programı (daha azı gibi) aracılığıyla taşınır. Aynı zamanda bilgi, iyi bir görsel gösterim için formatlanmıştır.

Belirli bir konu, kendisiyle ilişkili birden çok sayfaya sahip olabilir ve herhangi bir seçenek veya bölüm numarası belirtilmediğinde hangisinin görüntüleneceğini belirleyen varsayılan bir sıra vardır.
Konuyla ilgili tüm sayfaları listelemek için -f seçeneğini kullanın. Belirli bir konuyu tartışan tüm sayfaları listelemek için (belirtilen konu adda yer almasa bile), –k seçeneğini kullanın.

Önce man bilgisayarımıza kuralım.(apt kullanımı Bölüm.3 içinde gösterilecek)

apt-get update;apt-get install man -y

man –f, whatis’i yazmakla aynı sonucu üretir.

man –k, apropos yazmakla aynı sonucu üretir.

Varsayılan sıra /etc/man_db.conf dosyasında belirtilir ve kabaca (ancak tam olarak değil) bölümlere göre artan sayısal sıradadır.

tipik bir man kullanımı şu şekildedir

user@node1:/tmp> man man

ÖRNEKLER(examples) bölümü için Page Down tuşunu kullanın veya ‘/’ tuşuyla daha az arama yapın.

user@node1:/tmp> man -k compress

user@node1:/tmp> man 3 printf

(man printf, aynı ada sahip komut satırı yardımcı programını (bölüm 1) getirecektir.)


info

Bir sonraki popüler Linux dokümantasyon kaynağı GNU Bilgi Sistemidir info.

Bilgiler, bir komut satırı arabirimi(CLI), bir grafik yardım programı aracılığıyla görüntülenebilir, yazdırılabilir veya çevrimiçi olarak görüntülenebilir.

Linux konusu ile ilk ilgilenmeye başladığımda info sayfalarını daha kullanışlı bulmuştum. Sonraları man sayfaları çok daha kullanışlı oluyorlar,

Kullanımı oldukça kolaydır

user@node1:/tmp> info cpio


–help opsiyonu, neredeyse her komut için bulunur

Linux komutlarını komut satırında anlamanın bir diğer önemli kaynağı, --help seçeneğinin kullanılmasıdır.

Çoğu komutun, komut veya uygulama ile birlikte –help veya -h seçeneği kullanılarak görüntülenebilen kısa bir açıklaması vardır. Örneğin, man komutu hakkında daha fazla bilgi edinmek için şunları yazabilirsiniz:

Sunucumuz üzerinde man kurulu değil önce onu kuralım(apt ve kullanımı daha sonra gösterilecektir)

apt-get update&&apt-get -y install man

şimdi man programının help çıktısına bakalım.

man --help  

–help seçeneği hızlı bir referans olarak kullanışlıdır ve bilgileri man veya bilgi sayfalarından daha hızlı görüntüler.

Ben kendim bir script veya program geliştirdiğimde kesinlikle –help için birşeyler yazmayı ihmal etmem, emin olun komut satırında yaptıklarınızı dökümante etmezseniz 1 yıl sonra kendi yazdığınız programı kullanamazssınız.


Clear Ekranı temizler

clear komutu ekranı temizler, MS-DOS için kullanılan CLS komutu gibidir.

Kullanımı:

clear

5. Linux Dizin yapısı ve komutları

Birçok işletim sisteminde (Linux dahil), dosya sistemi bir ağaç gibi yapılandırılmıştır. Ağaç genellikle ters çevrilmiş olarak tasvir edilir ve genellikle hiyerarşik dosya sisteminin başlangıcını işaret eden ve bazen ana hat olarak da anılan veya basitçe / ile gösterilen kök(ing. root) dizinde başlar. Kök dizin, root(tr. kök) kullanıcısı ile aynı şey değildir. Hiyerarşik dosya sistemi, aynı zamanda, son öğenin gerçek dosya adı olduğu /usr/bin/vim gibi, eğik çizgilerle (/) ayrılmış yoldaki diğer öğeleri de (dizin adları) içerir.

Windows üzerinde klasörleri \ ile ayırırken Linux/Unix için bu / şeklindedir.

Bu bölümde, dosya sistemi hiyerarşisi dahil bazı temel kavramların yanı sıra disk bölümleri hakkında bilgi edineceksiniz.

30 yıla yaklaşan Sistem Yönetimi tecrübemde edindiğim en temel bilgi, dosya sistemlerini iyi bilen ve kendi istekleri için kolaylıkla değişiklikler yapabilen kişilerin çok iyi sistem yönettikleridir. MS-DOS, Microsoft - "Disk Operating System" ve işletim sistemini içersindeki konumu hakkında size bir izlenim verebilir. İşletim sistemi bilge bir ağaç ise, ağacın omurgası dosya sistemidir diyebiliriz.

Bazı işletim sistemleri Linux/FreeBSD gibi sizlere bu sistem dosyaları üzerinde değişiklik yapma ve erişme hakkı verirken, Windows gibi bağzıları bunu MFC gibi arayüzler ve programlar ile erişilebilir yapmışlardır.

Linux dizin yapısı / (kök) dizin ile başlar demiştik, aşağıda kök dizin üzerindeki diğer dizinlerin bir şemasını görüyorsunuz.


işletim sistemi kök dizin(root directory) altındaki dizinler ve görevleri

/bin: Önyükleme, onarım, tek kullanıcı modunda çalışması için gereken dosyaları barındırır. Diğer önemli, temel komutlar, yani cat, du, df, tar, rpm, wc, history vs programlar bu dizindedir, varsayılan PATH içersinde vardır.
/boot: Linux Çekirdeği dahil, önyükleme işlemi sırasında önemli dosyaları tutar.
/dev: Makinedeki tüm donanım aygıtları için aygıt dosyalarını içerir, ör. cdrom, cpu, vb.
/etc: Her bir program için uygulamanın yapılandırma dosyalarını, başlatma, kapatma, başlangıç, durdurma komut dosyasını içerir.
Configürasyon dizinidir, herzman kurulum sonrası bir kopyasını yapınız
/home: Kullanıcıların ev dizini. Her yeni kullanıcı oluşturulduğunda, ana dizinde Masaüstü, İndirilenler, Belgeler vb. diğer dizinleri içeren, kullanıcı isminde bir dizin oluşturulur.
/lib: Lib dizini, sistemi başlatmak ve kök dosya sisteminde komutları çalıştırmak için gereken çekirdek modüllerini ve paylaşılan kitaplıkları içerir.
/lost+found: Bu Dizin, Linux kurulumu sırasında yüklenir ve beklenmedik kapanma nedeniyle bozulabilecek dosyaları kurtarmak için kullanışlıdır. Her yeni dosya sistemi yarattığınızda bu dizin dosya sisteminin kökünde oluşturulur.
/media: Çıkarılabilir aygıtlar, yani media/cdrom için geçici bağlama dizini oluşturulur.
/mnt: Dosya sistemini bağlamak için geçici bağlama dizini. production için kullanacağınız dizinleri buraya kalıcı olarak mount etmeyin.
/opt: İsteğe bağlı olarak kullanılır. Üçüncü taraf uygulama yazılımı içerir. Viz., Java vb.
/proc: Belirli bir Process-id yani pid ile işlemlerin çalıştırması hakkında bilgi içeren sanal ve gerçek olmayan bir dosya sistemi. çalışan bir sistemin beyni diyebiliriz, tüm processler burada sanal bir dosya sistemi üzerinde birbirleri ile etkileşir, çok popüler “top,sar,iostat,lsof..” sistem komutları bilgisini buradan alır.
/root: Bu, root(kök, yönetici) kullanıcının ana dizinidir ve asla ‘/’ (kök dizin) ile karıştırılmamalıdır.
/run: İşletim sistemi açılırken ihtiyaç olan işler için yaratılmış geçici dizin, /var/run yerine gelmiştir.
/sbin: Sistem Yöneticisi tarafından sistem yönetimi için gerekli olan yürütülebilir programları içerir. iptables, fdisk, ifconfig, swapon, reboot vb.
/srv: “srv”, Servis kısaltılmış halidir. Bu dizin, sunucuya özel ve hizmetle ilgili dosyaları içerir. işletim sistemine ekleyeceğiniz diskleri bu dizin altına ekleyebilirsiniz, yapacağınız kalıcı işlemler için bu dizini kullanın. DB kuracaksanız, yazılım deploy edecekseniz vb.
/sys: Modern Linux dağıtımları, sisteme bağlı aygıtları depolayan ve değiştirmeye izin veren bir sanal dosya sistemi olarak bir /sys dizinini kullanırlar. proc gibi read only bir dosya sistemidir, sistem üzerinde bağlı donanımların verilerini okuyabilirsiniz.
/tmp: Sistemin Geçici Dizini, kullanıcılar ve kök tarafından erişilebilir. Bir sonraki önyüklemeye kadar kullanıcı ve sistem için geçici dosyaları saklar.
tmp dosya dizini özellikle hacker lar tarafından çok kullanılır, kurulum sonrası mutlaka execution(çalıştırma) özelliğine kapatılmalıdır. Config aşağıdaki gibi olmalıdır

sudo  grep tmp /etc/fstab

Çıktı olarak "/dev/sda5 /tmp ext3 loop,nosuid,noexec,rw 0 0" olmalıdır.

/usr: İkinci seviye için çalıştırılabilir uygulamalar, belgeler, kaynak kodu, kitaplıklar içerir. işletim sisteminde çalışan ana uygulamalar(executable) ve kütüphaneleri(library) buradadır.
/var: Değişken anlamına gelir. Bu dosyanın içeriğinin artması beklenir. Bu dizin, günlük, kilit, biriktirme, posta ve geçici dosyaları içerir. log dosyaları ana klasörü diyebiliriz.


Dizinler içersindeki önemli dosyalar

/boot/vmlinuz: Linux Kernel dosyası.
/dev/sda: İlk HDD (Sabit Disk Sürücüsü) için aygıt dosyası
/dev/cdrom: Cdrom için aygıt dosyası, genellikle
/dev/null: Var olmayan sözde bir cihaz. Bazen çöp çıktısı /dev/null’a yönlendirilir, böylece sonsuza kadar kaybolur. 1TB büyüklüğünde bir dosyayı yok etkem istediğinizde, dosya halen çalışıyorsa buraya yönlendirerek dosyayı sıfırlayabilirsiniz.
/etc/bashrc: bash kabuğu tarafından kullanılan sistem varsayılanlarını(PATH,ENV) ve takma adları(alias) içerir.
/etc/crontab: Önceden tanımlanmış bir zaman aralığında belirtilen komutları çalıştırmak için bir kabuk betiği. windows üzerindeki zamanlanmış görev yöneticisi gibi.
/etc/export: Ağda bulunan dosya sistemi bilgileri.
/etc/fstab: Disk Sürücüleri ile bunların hangi alt dizinlere bağlandığı bilgisi
/etc/group: Kullanıcıların Güvenlik Grubu Bilgileri.
/etc/grub.conf: grub bootloader yapılandırma dosyası.
/etc/init.d: ​​Hizmetleri başlatma Betiği.
/etc/lilo.conf: lilo bootloader yapılandırma dosyası.
/etc/hosts: IP adresleri ve ilgili bilgisayar adları eşleşmeleri. Windows altındaki c:\windows\system32\drivers\etc\hosts dosyası ile aynı.
/etc/hosts.allow: Yerel makinedeki hizmetlere erişmesine izin verilen bilgisayarların listesi.
/etc/host.deny: Yerel makinedeki hizmetlere erişimi reddedilen bilgisayarların listesi.
/etc/inittab: INIT süreci ve çeşitli çalışma seviyelerindeki etkileşimleri.
/etc/issue: İşletim sisteminin girişinde bulunan isim. örn. Debian için “Debian GNU/Linux 10 \n \l” bilgisini içerir.
/etc/modules.conf: Sistem modülleri için yapılandırma dosyaları.
/etc/motd: motd, Günün Mesajı anlamına gelir, Mesaj kullanıcıları sistem üzerine oturum açtıklarında gelir.
/etc/mtab: Şu anda baçlı blok cihazlarının bilgileri.
/etc/passwd: sistem kullanıcıların bilgisini içeren dosyadır, /etc/shadow dosyada ise sistem kullanıcılarının şifrelenmiş parolaları vardır içerir.
/etc/printcap: Yazıcı Bilgileri
/etc/profile: Bash kabuğu varsayılanları
/etc/profile.d: Oturum açtıktan sonra çalıştırılan uygulama betiği.
/etc/rc.d: Çalıştırma düzeyine özgü komut dosyasyaları içerir.
/etc/rc.d/init.d: ​​Sistemin çalışacağı seviye Başlatma Komut Dosyasını Çalıştır.
/etc/resolv.conf: Sistem tarafından kullanılan Alan Adı Sunucuları (DNS) tanımlıdır.
/etc/securetty: Kök oturumunun mümkün olduğu Terminal Listesi.
/etc/skel: Yeni kullanıcı ev dizinini oluşturan komut dosyası.
/etc/termcap: Terminal, konsol ve yazıcıların işlevlerini tanımlayan bir ASCII dosyası.
/etc/X11: X-windows Sisteminin yapılandırma dosyaları. Linux Grafik arayüzü için.
/usr/bin: Normal kullanıcı çalıştırılabilir komutları.
/usr/bin/X11: X Windows Sisteminin uygulamaları.
/usr/include: “c” derleyicisi tarafından kullanılan dosyaları içerir.
/usr/share: Man dosyalarının, bilgi dosyalarının vb. paylaşılan dizinleri.
/usr/lib: Program derlemesi sırasında gerekli olan kitaplık dosyaları.
/usr/sbin: Sistem Yönetimi için Süper Kullanıcı Komutları.
/proc/cpuinfo: CPU Bilgileri
/proc/filesystems: Şu anda kullanılan dosya sistemi bilgileri.
/proc/interrupts: Şu anda kullanılmakta olan mevcut kesintiler hakkında bilgi.
/proc/ioports: Sunucudaki aygıtlar tarafından kullanılan tüm Giriş / Çıkış adreslerini içerir.
/proc/meminfo: Bellek Kullanım Bilgileri.
/proc/module: Şu anda çekirdek modülü kullanılıyor.
/proc/mount: Takılı Dosya Sistemi Bilgileri.
/proc/stat: Mevcut Sistemin Ayrıntılı İstatistikleri.
/proc/cmdline: İşletim sisteminin hangi kernel parametreleri ile başlatıldığı bilgisi
/proc/sys/kernel/random/entropy_avail: Sistem üzerindeki entropi seviyesi, en az 2000 bit olmalıdır
/proc/swaps: swap(takas) dosyası Bilgilerini Değiştir. windows üzerindeki gizli c:\pagefile dosyası gibidir.
/var/log/lastlog: Son önyükleme işleminin günlüğü.
/var/log/messages: Önyükleme sırasında syslog daemon tarafından üretilen mesajların günlüğü.
/var/log/wtmp: Şu anda sistemdeki her kullanıcının oturum açma zamanını ve süresini listeler.


Dizin ve dosya sistemi komutları

(pwd, cd, ls)

Linux ve Unix türevi işletim sistemleri için komut satırı insan ile işletim sisteminin birarada olduğu ve konuştuğu yerdir. İşletim sisteminin dertlerini dinler ona doğru soruları sorarak hastalığını anlamaya çalışırsınız.

Yorgun olup olmadığını veya bir ihtiyacı olup olmadığını komutlar aracılığı ile sorar ve öğrenirsiniz. Burada işletim sistemi size sessiz bir bilge gibi davranır, susar ve size tüm kütüphanesini açar. Gelin hep beraber bu soruları sormaya başlayalım.


pwd print working directory - çalıştığım dizini yaz


pwd dizin yapısı içinde, bulunduğunuz yeri gösterir. Linux içindeki herşey dosyalardan oluşmuştur, aklınıza gelebilecek herşey bir dosya operasyonudur. Bu yüzden dizin yapısını anlarsanız linux içindeki işlemleri anlamanız daha kolay olur.
pwd neredeyim, hangi klasördeyim bilgisini size çıktı olarak verir. herhangi bir parametre gerektirmez.

pwd

cd change directory - klasör değiştir

yani klasör değiştir. Bulunduğunuz klasöre bağlı olarak (pwd çıktısı) gideceğiniz yeri tanımlayarak hedef klasöre gidebilirsiniz. Bazı kısayolları vardır.

bulunduğunuz klasörden tmp klasörüne gitmek için

cd /tmp

şuan pwd dediğinizde /tmp klasöründe olduğunuz bilgisi geleceketir

pwd

bulunduğunuz dizinden /usr/bin dizinine gitmenin iki ayrı yolu vardır

1. yöntem

cd ../usr/bin

2. yöntem

cd /usr/bin

ilk yöntemde shell üzerinden kendinizi önce bir üst klasöre taşıyorsunuz ../ ile ve sonrasında gideceğiniz klasörü yazıyorsunuz, özellikle çok derin klasörlerde bu yöntem oldukça işe yaramaktadır.

.    (şuan bulunduğunuz klasör)
..   (üst klasör)
~    (Home -ev dizini)
-    (önce bulunduğunuz klasör)

ls - bulunduğum dizini listele

bulunduğunuz klasör içinde veya verdiğiniz hedef klasör içindeki dosya ve dizinleri listeler, çok ilginç ve kullanışlı parametreleri vardır, Linux içinde en çok kullanılan komuttur.

Bulunduğunuz dizinin klasör ve dosyalarını listeler, gizli dosyalar var ise onlar bu varsayılan listelemede yoklardır

linux içinde .abc şeklinde olan dosyalar yani ilk harfi nokta . olan dosyalar gizli dosyalardır.

Önce hangi klasörde olduğumuza bakalım sonra listeleyelim.

pwd
ls

Bir klasörü listeleyelim (iki tane gizli dosya yaratalım bakalım görebilecekmiyiz)

touch /tmp/.gizli1
touch /tmp/.gizli2
ls /tmp

yoksa dosyalar oluşmadımı?, bunu anlayabilmek için aynı dizini farklı bir parametre ile listelememiz gerekir. Tüm dosyaları (gizli olanlar dahil) listelemek için -a ile ls komutunu kullanmamız gerekir.

ls -a /tmp

popüler bir diğer flag ise -l flag idir, long anlamına gelmektedir ve dosyaları uzun şekilde ayrıntılı şekilde (izinleri, dosya sahibini, dosya büyüklüğünü, vs çıktıda gösterir)

ls -la /tmp

Son olarak benim çok fazlaca kullandığım iki flag daha var, bunlardan biri -t flagi dir ve tarih bilgisini gösterir. Diğer flag ise -r flagidir, çıktıyı tersten sıralamak için kullanılır. yani tüm flagleri birleştirdiğinizde -ltr çıkar, uzun şekilde dosyaları tarihe göre sıralar, listenin sonundaki en son güncellenen dosyadır.

ls -latr /tmp

Bu komutu MS-DOS kullanırken DIR /OD şeklinde öğrenmiştim, yıllar içinde çok işime yaradı, özellikle değişen son dosya size bazen dizin içindeki yapılan işlemler hakkında fikir verecektir. Son güncellenen LOG dosyası veya sisteme erişim sağlamış birisinin yarattığı gizli dosya gibi.

son olarak başka bir trick ise dizindeki en büyük dosyaya göre sıralamak, bunun için kullanacağınız flag ise -S tir.

ls -laSr /tmp

MS-DOS içindeyken bu bilgiye DIR /OS şeklinde ulaşırdık.


6. Dosya görüntüleme ve oluşturma komutları

(touch, file, cat, tac, less, tail, head)


touch - dokun,temas

bir önceki komut gösterimimizde gizli dosya yaratmak için kullandık bu komutu. touch komutu dosya yaratmak için kullanılır, basit olarak bir dosya yaratır ve yüksek olasılıkla 644 hakları verir.(Dosyaların izinlerine daha sonra değineceğiz) Shell üzerinde tanımlı umask hakları ile dosya oluşturacaktır. Varolan bir dosyanın içeriğini değiştirmez sadece oluşturulma zamanını günceller.

touch /tmp/ilkdosyam

touch komutunun çok fazla bilinmeyen üç parametresi

-t Dosya oluşturma zamanı ile dosya oluşur (örn: touch -t 202201011315 /tmp/ilkdosyam [2022 ocak 1 13:15] )
-c dosya yok ise oluşturmayı denemez. scripler içinde çokça kullanılan bir komuttur. sonuç olarak hata üretmez çünkü
-f dosyayı güncellemeye zorlar

Linux ta dosya yaratmak için birçok farklı yöntem vardır, touch en bilinen ve basit yoludur. yaratılan dosyada 644 hakları vardır

altta alternatif bir dosya yaratma yöntemi görüyorsunuz

echo "ilk dosya ici text"> /tmp/ilkdosya

Yukarıdaki komut sonrası bir dosya oluşur /tmp/ilkdosya ve içeriğinde “ilk dosya ici text” vardır. Oluşan dosya yine tanımlı olan umask hakları ile oluşturulmuştur.


file - dosya veya klasör tanımla

Touch ile dosya yaratmayı gördük, şimdi dosyaların tiplerini nasıl anlayacağımız kısmıma geldik. Windows makinelerde extension dediğimiz nokta sonrası dosya isminde dosyanın türünü gösteriyordu, sanırım hala öyledir. Linux ta durum farklı, isterseniz tabi extension olarak nokta sonrasında birşeyler kullanabilirsiniz veya kullanmaya bilirsiniz, çünkü linux extension tanımaz. Tabii bu durumda dosyaların ne dosyası olduğu (video, resim, data, uygulama) nasıl bileceğiz ? bunun için file komutu kullanılır.

file bir dosyanın (dizin, pipe, FIFO, socket, özel dosya) olduğunu anlar önce, sonra dosya ise basitçe dosyanın başındaki 512 byte üzerinden bir tanım yapar.

file /tmp/ilkdosya

cat concatenate - sıralamak

Dosyaları standart output üzerinden ekrana çıkartan komut. bir veya birkaç dosyayı beraber şekilde çıktı olarak ekranda gösterir, kullanımı oldukça kolaydır fakat Linux içindeki en kullanışlı komutlardan biridir,

Dosyaların içini önce veri ile dolduralım Burada > redirection işlemini göstermektedir

echo "ilk dosya icerikleri"> /tmp/ilkdosya
echo "ikinci dosya icerikleri"> /tmp/ikincidosya

basit kullanımı dosya içeriği görmek için

cat /tmp/ilkdosya

Örnek olarak iki tane dosyanız olsun ve bunları birleştirmek isteyin

cat /tmp/ilkdosya /tmp/ikincidosya >/tmp/ucuncudosya

tac concatenate-reverse - tersten sırala

cat komutu ile aynı fakat çıktıları tersten üretmenizi sağlayan bir komut. cat dosyayı baştan sona doğru tararken tac dosyayı sondan başa doğru tarar.

cat /tmp/ucuncudosya

ve ters çıktı

tac /tmp/ucuncudosya

less - more komutuna alternatif olarak çıkmıştır, “more or less”

Text (metin) dosyalarını görüntülemek için kullanılır. Çok büyük bir metin dosyası açtığınızı düşünün, mesela /var/log/apache2/access.log dosyası zaman içinde büyüyen bir metin dosyasıdır, bu dosyayı cat ile görüntülediğinizde tüm çıktı ekrana gelir ve sizin verinin içersinde gezmenize engel olur. less ile istediğiniz gibi text dosyaların içinde gezinebilirsiniz.

arama yapmak için / yazmanız yeterlidir. ayrıca çıkmak için q ve dosya başı için g dosya sonu için G kullanmanız yeterli olacaktır. yukarı aşağı tuşları ve PgUp/PgDown tuşlları navigasyon için yeterli olacaktır.

Aktif olarak değişen bir dosyayı görüntülüyorsanız G harfine basarak sürekli dosyanın sonuna gidebilirsiniz.

büyük bir text dosya oluşturmak için

tree / > /tmp/ilkdosyam

Şimdi oluşmuş dosya içersinde less ile gezinelim.

less /tmp/ilkdosyam

tail - kuyruk kısmını oku, peşine takıl

dosyanın sonunu okur ve varsayılan olarak son 10 satır görüntülenir daha fazla satır göstermek için -n ile satır sayısı vermelisiniz. tail komutu daha çok dosyalardan canlı olarak çıktıları kontrol etmek için kullanılır. Sürekli olarak dosyanın sonuna eklenen verileri okumak için -f parametresini kullanmalısınız(en çok bu parametre kullanılır)

Aklınıza şu soru gelebilir “Less varken veya cat varken neden bu tip bir komuta ihtiyacımız olsun. tail komutu özellikle çok büyük dosyalarda ve birden fazla dosyanın bir klasör içerinde anlık olarak okunması gerekliğinde çok kullanışlıdır. Ayrıca multitail komutu ile kendinize önemli dosyaların dinlediğiniz bir dashboard yapabilirsiniz.

Dosya içindeki son 10 satır görüntülenir

tail /tmp/ilkdosyam

Dosya içindeki son 200 satır görüntülenir

less -200 /tmp/ilkdosyam

veya

tail -n200 /tmp/ilkdosyam

aynı sonucu üretecektir.

tail -f kullanımı için sizlere shell içersinde iki komuyu aynı anda nasıl çalıştıracağımızı göstermemiz gerekiyor. Önce dizinler isminde bir dosya oluşturuyoruz, sonra dizinler dosyasına tree çıktısını üretirken tail -f komutu ile dosyayı okumaya çalışıyoruz.. çok hızlı bir çıktı üretecektir

touch /tmp/dizinler
tree / > /tmp/dizinler & tail -f /tmp/dizinler

tail -f kombinasyonu inanılmaz derecede işinize yarayacak bir komuttur. birden fazla dosya dinleyebileceğinizi unutmayın. tail -f /var/log/nginx/* size nginx dizini içindeki tüm dosyalara canlı şekilde izleme sağlar.


head - başlangıç kısmını oku

tail komutu gibi head komutu isminden anlaşılacağı gibi dosyanın başına gider ve parametre kullanmazsanız(varsayılan) ilk 10 satırını ekrana getirir. Genellikle bu komut çok büyük dosyaların ilk satırlarını okumak için kullanılır. örnek olarak log dosyalarının başlarında yazan bilgileri okumak hangi dosyada ilk kaydın nasıl atılmış olduğuna bakmak için kullanılır.

head /tmp/ilkdosyam

yine istediğiniz gibi görüntülenecek satır sayısını değiştirebilirsiniz

head -n200 /tmp/ilkdosyam

Sonraki Bölüm - Dosya işlemleri

Linux101 - Başlangıç