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
LESSortam degiskenini ayarlayarak man sayfalarinda renk aktif edebilirsin:export LESS='-R' man manyazarak 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.