man Komutu: Linux Kilavuz Sayfalarini Etkili Kullanma Rehberi

man Komutu: Linux Kilavuz Sayfalarini Ustalasma Rehberi

Linux dnyasina ilk adim attiginda terminal penceresine bakip “simdi ne yapacagim?” diye dusunmemis bir sysadmin yoktur. Komutlari ezberlemek zorunda degilsin, cunku Linux zaten sana her seyi anlatan devasa bir belgeleme sistemi sunuyor: man sayfalarini. Yillarca sistem yonetimi yapan biri olarak soyleyebilirim ki, man komutunu gercekten kullanmayi ogrendiginde bir suru seyin daha kolay hale geldigini fark edeceksin.

man Komutu Nedir?

man komutu, “manual” yani el kitabi kelimesinin kisaltmasidir. Linux ve Unix sistemlerde komutlarin, sistem cagrilarinin, konfigurasyon dosyalarinin ve daha fazlasinin resmi belgelerine erisimi saglar. Bir komutu nasil kullanacagini, hangi parametreleri aldigini, hangi dosyalari etkiledigini ogrenmek istiyorsan ilk gidecek yer man sayfalaridir.

Interneti acip Stack Overflow’a kosturmadan once man sayfasina bakmak, hem daha hizli hem de daha dogru bilgiye ulasmanin yoludur. Ustelik cevrimici baglanti olmadan bile calisir, bu da sunucu basindasin ve internet erisimin yokken hayat kurtarici olur.

Temel Kullanim

En basit haliyle bir komut icin man sayfasini acmak son derece kolay:

man ls
man cp
man grep
man ssh

Komutu girdikten sonra less benzeri bir arayuz acar. Bu arayuzde gezinmek icin:

  • Asagi ok veya j: Bir satir asagi
  • Yukari ok veya k: Bir satir yukari
  • Space veya Page Down: Bir sayfa asagi
  • b veya Page Up: Bir sayfa yukari
  • q: Cikis
  • /kelime: Arama (n ile sonraki esleme, N ile onceki)
  • G: En sona git
  • gg: En basa don

Man Sayfasi Bolum Yapisi

Her man sayfasi belirli bir yapida duzenlenmistir. Bu yapiya asina olunca aradigin bilgiyi cok daha hizli bulabilirsin:

  • NAME: Komutun adi ve kisa aciklamasi
  • SYNOPSIS: Komutun kullanim soznizimi
  • DESCRIPTION: Komutun detayli aciklamasi
  • OPTIONS: Kullanilabilecek parametreler
  • EXAMPLES: Kullanim ornekleri (her man sayfasinda olmayabilir)
  • FILES: Ilgili konfigurasyon dosyalari
  • SEE ALSO: Ilgili diger komutlar
  • BUGS: Bilinen hatalar
  • AUTHOR: Gelistirici bilgisi

SYNOPSIS bolumundeki notasyona dikkat etmelisin. Kose parantez [] icerisindeki seyler opsiyonel, kose parantez disindakiler zorunlu parametreler anlamina gelir. Boru | isareti “veya” anlamina gelir, uclu nokta ... ise o parametrenin tekrarlanabilecegini gosterir.

Man Sayfasi Bolum Numaralari

Bu konu biraz kafayi karistirabilir ama cok onemli. Man sayfalari farkli kategorilere ayrilmistir:

| Bolum | Icerik | |——-|——–| | 1 | Kullanici komutlari | | 2 | Sistem cagrilari | | 3 | C kutuphanesi fonksiyonlari | | 4 | Ozel dosyalar (/dev altindakiler) | | 5 | Dosya formatlari ve konvansiyonlar | | 6 | Oyunlar | | 7 | Cesitli (makrolar, standartlar vs.) | | 8 | Sistem yonetimi komutlari |

Neden onemli? Cunku ayni isimde birden fazla man sayfasi olabilir. Mesela passwd hem bir kullanici komutu (bolum 1) hem de bir dosya formati (bolum 5) olarak belgelenmistir:

# Kullanici komutu olarak passwd
man 1 passwd

# /etc/passwd dosya formati
man 5 passwd

# Hangi bolumlerde oldugunu gormek icin
man -f passwd

man -f komutu aslinda whatis komutunun esdegeridir ve belirttigin kelimeyi iceren tum man sayfalarini listeler.

Sistem yonetimi yaparken bolum 8 cok isinize yarar. mount, fsck, iptables gibi sistem yonetim araclari buradadir:

man 8 mount
man 8 iptables
man 8 cron

Arama ve Kesif Ozellikleri

apropos ile Konu Bazli Arama

Bir seyi yapmak istiyorsun ama hangi komutu kullanacagini bilmiyorsun. Iste apropos tam da bunun icin var. man -k ile esittir:

# Baglanti ile ilgili komutlari bul
apropos network

# Parcalama, yedekleme ile ilgili
apropos backup

# Bellek ile ilgili
man -k memory

Gercek hayat senaryosu: Bir sunucuda disk durumunu kontrol etmen gerekiyor ama hangi komutu kullanacagini bilmiyorsun:

apropos disk
# ya da
apropos partition

Bu komut sana fdisk, parted, df, du, lsblk gibi adimlari gosterecek ve oradan dogru araci secebileceksin.

whatis ile Hizli Aciklama

Bir komutun ne ise yaradigini tek satirda gormek istiyorsan:

whatis tar
whatis awk
whatis sed
whatis netstat

Bu ozelligi kullanarak kisa notlar alabilir ya da bir scripti incelerken karsilastigin bilmedigin komutlari hizlica anlayabilirsin.

Gercek Dunya Senaryolari

Senaryo 1: SSH Konfigurasyon Sorunu

Bir gece 02:00’de SSH sunucusu problemler cikaryor. Hangi parametrenin ne ise yaradigini kontrol etmen lazim:

# SSH daemon man sayfasi - bolum 5'te konfigurasyon dosyasi var
man 5 sshd_config

# Direkt /etc/ssh/sshd_config ile ilgili bilgi
# MaxAuthTries, PermitRootLogin gibi direktifleri burada bulursun

Man sayfasinda / ile arama yaparak direkt ilgilendigin direktife atlayabilirsin. Mesela /PermitRootLogin yazarak o bolume gidebilirsin.

Senaryo 2: crontab Soznizimini Unutmak

Kim crontab soznizimini hic karistirmamistir? O befsi yildiz ve sayilari her seferinde karistiririz:

man 5 crontab

Burada hangi alanin dakika, hangi alanin saat, hangi alanin gun oldugunu net aciklamali sekilde bulursun. Ayrica ozel yazimlari (@reboot, @daily gibi) da bu sayfada ogrenebilirsin.

Senaryo 3: tar ile Yedekleme

Tar komutunun parametrelerini her seferinde googlelamak yerine:

man tar

Man sayfasinda /EXAMPLES diyerek direkt ornek bolumune gidebilirsin. Cok sayida tar komutu ozel karakterler ve uzun parametreler icerir, bunlari man sayfasindan dogru ogrenmek uzun vadede cok zaman kazandiriyor.

# tar man sayfasinda arama ornegi
# man tar acikken /create yazarsan arsiv olusturma orneklerini bulursun
man tar
# Sonra /EXAMPLES

Gelismis man Kullanimi

man’i Daha Verimli Kullanmak

# Man sayfasini tek bir komutu referans gostererek terminalde tut
# -P ile farkli pager kullanabilirsin
man -P less ls

# Man sayfasini duz metin olarak stdout'a yaz
man ls | cat

# Sadece belirli bir bolumu goster (DESCRIPTION gibi)
man ls | col -b > ls_help.txt

# Birden fazla terminale man sayfasini gonder
man -H ls
# Bu komutu destekleyen sistemlerde HTML formatinda tarayicida acar

MANPATH Degiskeni

Man sayfalarinin nerede oldugunu sistemin MANPATH degiskeni belirler. Ozellikle kaynak koddan derlediginde veya ek yazilimlar kurdugunuzda man sayfalarinin bulunmayabilir:

# Mevcut MANPATH'i gor
manpath
# ya da
echo $MANPATH

# Gecici olarak man path ekle
export MANPATH=$MANPATH:/usr/local/share/man

# Kalici yapmak icin .bashrc veya .bash_profile'a ekle
echo 'export MANPATH=$MANPATH:/usr/local/share/man' >> ~/.bashrc

Man Veritabanini Guncelleme

apropos ve whatis komutlari bir veritabanindan beslenirler. Bu veritabani eski ya da bozuk olursa “nothing appropriate” gibi hatalar alirsin:

# Veritabanini guncelle (root yetkisi gerekebilir)
sudo mandb

# Sadece belirli bir yolu guncelle
sudo mandb /usr/local/share/man

Bu islemi yeni paketler kurdugunuzda veya sistemi guncellediginde arada bir yapman iyi bir alisaknliktir.

Man Sayfasi Alternatifleri

Man sayfalari bazen fazla teknik veya yogun olabilir. Bu durumlarda birkac alternatif var:

info Komutu

GNU projesinin bazil araclari icin daha kapsamli belgeler info sayfalarinda bulunur:

info grep
info coreutils
info bash

tldr – Pratik Ozet Sayfalar

tldr (Too Long Didn’t Read) topluluk tarafindan yazilmis kisa ve pratik ornekler sunuyor. Yeni baslayanlar ve hizli referans arayanlar icin mukemmel:

# Once kur
sudo apt install tldr
# ya da
npm install -g tldr

# Kullanim
tldr tar
tldr rsync
tldr find

Ama dikkat: tldr man sayfasinin yerini tutmaz. Detayli parametre bilgisi icin her zaman man sayfasina basvurmalisin.

–help Parametresi

Hizli bakis icin cogu komut --help parametresini destekler:

ls --help
grep --help
curl --help

Man Sayfasi Yazma ve Ekleme

Kendi scriptleriniz veya araclarniz icin man sayfasi yazmak profesyonel bir dokunusdur. Temel olarak groff veya troff formatinda yazilirlar:

# Ornek basit man sayfasi yapisi
# /usr/local/share/man/man1/myscript.1 dosyasina yaz

.TH MYSCRIPT 1 "Aralik 2024" "1.0" "Kullanici Komutlari"
.SH NAME
myscript - Otomatik yedekleme scripti
.SH SYNOPSIS
.B myscript
[fIoptionsfR] fIdizinfR
.SH DESCRIPTION
Bu script belirtilen dizini otomatik yedekler.
.SH OPTIONS
.TP
.BR -v ", " --verbose
Detayli cikti goster

Yazdiktan sonra mandb’yi guncelleyerek yeni sayfanin sistemde gorunmesini saglarsn.

Pratik Ipuclari

  • Man sayfasinda N (buyuk harf) ile onceki eslesmeye gitmeyi unutma, arama yaparken ikiye dogru da gidebilirsin
  • Bazi sistemlerde LESS ortam degiskenini ayarlayarak man sayfalarinda renk aktif edebilirsin: export LESS='-R'
  • man man yazarak man komutunun kendi man sayfasini okuyabilirsin, yani man sayfalarini nasil kullanacagini man sayfasindan ogrenmek mumkun
  • Sunucularda .bashrc’ye alias h='man' eklemek bazilarinin isini kolaylastirir
  • Uzak sunucularda internetin olmadigini dusununce man sayfalarinina ne kadar degerli oldugunu anlarsn

Sonuc

man komutu, Linux sistem yonetiminde senin en yakn dostu olmak uzere tasarlanmistir. Bir komutu nasil kullanacagini bulmak icin her defasinda tarayici acmak yerine dogrudan kaynaktan, resmi belgelerden beslenebilirsin. Bolum numaralarini, apropos ile konu aramayni, man sayfasi yapinisi ogrendikten sonra terminal basinda hissettigin belirsizlik giderek azalacaktir.

Yeni bir komutla karsilastiginda ilk refleksin man komut olmali. Zamanla bu aliskanlk seni hem daha hizli hem de daha guvenilir bir sistem yoneticisi yapacak. Cunku man sayfalarinda bilgi okumak, o bilgiyi blog yazisindan ya da forumdan okumaktan farklidir: Resmi, dogru ve sisteminizin versiyonuyla tam uyumlu bilgiye ulasmis olursun.

Son olarak soylemeliyim: man man yazmayi denedin mi? Baslangic icin guzel bir egzersiz.

Yorum yapın