man komutu: kullanımı ve seçenekleri, bölüm numaraları ve man -k ile arama

Test ortamıRHEL ailesiAlmaLinux 9.8man-db 2.9root hesabıDebian 12 · man-db 2.11 normal hesap
Kabuk komutlarıman, whatis, aproposKonum/usr/bin/man

Linux sunucusunda bir komutun veya yapılandırma dosyasının nasıl kullanıldığına bakılırken man komutuyla kılavuz sayfası açılır, ad bilinmiyorsa man -k ile kısa açıklamalarda arama yapılır. AlmaLinux 9 ve Debian 12 sunucularında passwd sayfası arandığında, Debian 12'de 1. bölümdeki komut sayfası ile 5. bölümdeki dosya biçimi sayfası birlikte bulunuyordu, AlmaLinux 9'da ise 5. bölümde sayfa yoktu.

Aşağıdaki çıktı AlmaLinux 9.8 sunucusunda root hesabıyla ve Debian 12 sunucusunda normal bir hesapla çalıştırılarak alındı. Simülatördeki ana makine adı ve bağlantı adresi örnek değerlerdir.

1️⃣ man komutunun temel kullanımı

  • ↪️ Sayfa açma, ekranda gezinme, olmayan sayfa

man'in ardına bir komut adı yazılınca o komutun kılavuz sayfası açılır. man sayfayı bir sayfalayıcı programa verip ekran ekran gösterdiği için çalıştırıldıktan sonra hemen komut istemine dönmez. Sayfalayıcı MANPAGER veya PAGER ortam değişkeniyle belirlenir; ikisi de boşsa less kullanılır.

Çıktı bir boruya (pipe) verilirse sayfalayıcı olmadan yalnızca metin çıkar. [man ls] çıktısının ilk 12 satırı head ile alındığında ilk satırda LS(1) vardı, ardından NAME, SYNOPSIS ve DESCRIPTION başlıkları sırayla geliyordu.

man ls | head -n 12
LS(1)                            User Commands                           LS(1)

NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information  about  the FILEs (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort  is  speci-
       fied.

İlk satırdaki LS(1) ifadesinde parantez içindeki 1 sayısı, bu sayfanın bulunduğu bölümün numarasıdır.

Sayfa içinde [Space] sonraki ekranı gösterir, [/kelime] ve Enter ise kelimeyi arar. [n] aynı kelimenin geçtiği sonraki yere gider, [q] man'i kapatır.

Olmayan bir ad yazılırsa [No manual entry for] hatası çıkar; çıkış kodu 16 idi.

man no-such-cmd9
No manual entry for no-such-cmd9
echo $?
16

man sayfasının EXIT STATUS başlığı, 16 değerini sayfalardan, dosyalardan veya kelimelerden en az birinin bulunamadığı durumun değeri olarak açıklar. Kullanım hatası 1 olduğu için bir betikte iki durum ayrı ayrı ele alınabilir.

2️⃣ man bölüm numaraları

  • ↪️ 1 komutlar, 5 yapılandırma dosyaları, 8 yönetim komutları

Aynı adlı sayfa birden çok bölümde varsa man, bölümleri belirli bir sırayla arar ve bulduğu ilk sayfayı açar. Bölümler 1'den 9'a kadardır; sunucu işlerinde en sık açılanlar 1. bölümdeki komutlar, 5. bölümdeki dosya biçimleri ve 8. bölümdeki yönetim komutlarıdır.

Bölümİçerdiği sayfalarAlmaLinux 9.8 sunucusunda görülen örnek
1Çalıştırılabilir programlar ve kabuk komutlarıls, passwd, crontab, man
2Sistem çağrıları (çekirdeğin sağladığı işlevler)
3Kütüphane işlevleri
4Özel dosyalar (genellikle /dev altında)
5Dosya biçimleri ve kurallar, örn. /etc/passwdcrontab
6Oyunlar
7Çeşitli (makro paketleri ve kurallar)
8Sistem yönetimi komutları, genellikle root içinuseradd, mandb
9Çekirdek rutinleri (standart dışı)

crontab'de komut ile yapılandırma dosyası biçimi aynı adı taşıdığı için iki bölümde sayfa vardır. [man -f crontab] ile bakıldığında 1. ve 5. bölüm satırları birlikte çıktı.

man -f crontab
crontab (1)          - maintains crontab files for individual users
crontab (5)          - files used to schedule the execution of programs

Bölüm numarası olmadan [man crontab] çalıştırılırsa 1. bölümdeki crontab komut sayfası açılır. Zamanlanmış görev dosyasının biçimini görmek için adın önüne 5 yazılır.

man 5 crontab | head -n 4
CRONTAB(5)                       File Formats                       CRONTAB(5)

NAME
       crontab - files used to schedule the execution of programs

İlk satır CRONTAB(5) ve File Formats olarak değişti, NAME satırında da komut açıklaması yerine zamanlanmış görev dosyasının açıklaması çıktı.

Belirtilen bölümde o adla bir sayfa yoksa hata çıkar. AlmaLinux 9.8 sunucusunda /etc/passwd dosya biçimini görmek için [man 5 passwd] çalıştırıldığında 5. bölümde sayfa olmadığını bildiren bir hata çıktı.

man 5 passwd
No manual entry for passwd in section 5

Debian 12 sunucusunda [man -f passwd] çıktısında 5. bölümdeki passwd satırı da vardı. Hangi bölümde sayfa bulunduğu sunucuda kurulu kılavuzlara göre değiştiği için bölüm numarası eklemeden önce [man -f] ile bakılır.

man -f passwd
passwd (1)           - change user password
passwd (1ssl)        - OpenSSL application commands
passwd (5)           - the password file

8. bölümde, hesap oluşturan useradd gibi çoğunlukla root hesabının çalıştırdığı yönetim komutları bulunur.

man -f useradd
useradd (8)          - create a new user or update default new user information

3️⃣ man komutu seçenekleri ve -k, -f ile arama

  • ↪️ whatis, apropos ve man -w ile dosya konumu

[man -f] aynı adlı sayfaların tek satırlık açıklamasını yazdırır ve whatis ile aynı şekilde çalışır. AlmaLinux 9.8 sunucusunda [man -f passwd] ve [whatis passwd] çalıştırıldığında aynı iki satır çıktı.

man -f passwd
passwd (1)           - update user's authentication tokens
passwd (1ossl)       - OpenSSL application commands

1ossl satırı, passwd adını paylaşan bir OpenSSL komutunun sayfasıdır.

Ad bilinmiyorsa [man -k] ile sayfa adlarında ve kısa açıklamalarda arama yapılır. apropos ile aynı şekilde çalışır ve kelime düzenli ifade olarak okunur.

man -k '^passwd'
passwd (1)           - update user's authentication tokens
passwd (1ossl)       - OpenSSL application commands

^ satır başı anlamına geldiği için yalnızca passwd ile başlayan satırlar çıktı. Açıklamada geçen bir kelimeyle de arama yapılabilir; [man -k 'directory contents'] ls ile birlikte dir ve vdir sayfalarını buldu.

man -k 'directory contents'
dir (1)              - list directory contents
ls (1)               - list directory contents
vdir (1)             - list directory contents

[man -k] yalnızca NAME başlığındaki kısa açıklamalarda aradığı için seçenek adıyla veya gövde metnindeki bir kelimeyle sayfa bulunamaz. Gövde metninde de arayan [man -K] bütün sayfaları sırayla okuduğundan uzun sürer.

Aranan kelime yoksa [nothing appropriate] çıkar; çıkış kodu 16 idi.

man -k no-such-word9
no-such-word9: nothing appropriate.
echo $?
16

[man -w] sayfayı açmadan yalnızca kaynak dosyanın konumunu yazdırır.

man -w ls
/usr/share/man/man1/ls.1.gz
man -w 5 crontab
/usr/share/man/man5/crontab.5.gz

İki dosya /usr/share/man altındaki man1 ve man5 klasörlerindeydi ve klasör adındaki sayı bölüm numarasıyla aynıydı. [man -w 1ossl passwd] ile bulunan 1ossl sayfa dosyası da 1. bölümle aynı man1 klasöründeydi.

Seçenekler aşağıdaki iki sekmede toplandı.

SeçenekKopyalaAçıklama
-f, --whatisAynı adlı sayfaların tek satırlık açıklamasını yazdırır. whatis ile aynı işi görür
-k, --aproposSayfa adlarında ve kısa açıklamalarda arar. apropos ile aynı işi görür
-w, --where, --path, --locationSayfayı açmadan yalnızca kaynak dosyanın konumunu yazdırır
-a, --allAdı eşleşen bütün sayfaları sırayla yazdırır
SeçenekKopyalaAçıklama
-K, --global-aproposBütün sayfaların gövde metninde kelime arar. Uzun sürer
-S, -s, --sectionslisteAranacak bölümleri ve sırasını virgül veya iki noktayla ayrılmış bir liste olarak belirtir
-P, --pagersayfalayıcıSayfayı gösterecek sayfalayıcıyı belirtir. Varsayılan değer less
-M, --manpathyolSayfaların aranacağı kılavuz yolunu belirtir
-L, --localelocaleBu çalıştırmada kullanılacak locale değerini belirtir
-l, --local-fileSistem kılavuzlarında aramadan, belirtilen dosyayı sayfa olarak gösterir
-u, --updateKurulu sayfaların dizin önbelleklerini günceller
-V, --versionSürüm bilgisini yazdırır

🔲 man komutu simülatörü

Aşağıdaki simülatörde [man ls] ile sayfa açılıp [Space], [/list], [n], [q] çipleriyle ekranlar arasında geçilebilir. Aynı sanal sunucuda [man 5 crontab] örneğindeki gibi bölüm numarası eklenebilir veya [man -f], [man -k], [man -w] yazılabilir.

man komutu simülatörüman-db 2.9 · root hesabı
[root@server work]#
Yalnızca tarayıcının içinde çalışır. Sayfa ekranında Space, /kelime, n, q çiplerine basılır; klavyedeki ↑↓ tuşlarıyla daha önce yazılan komutlar geri çağrılır.

4️⃣ man sayfasının yapısı

  • ↪️ NAME, SYNOPSIS, DESCRIPTION, OPTIONS başlıklarını okuma

Bir man sayfası, büyük harfli başlıklar taşıyan kısımlara ayrılır. Yalnızca başlıklar grep ile çekilip karşılaştırıldığında ls sayfasında seçenek açıklamaları DESCRIPTION içindeydi, crontab sayfasında ise ayrı bir OPTIONS başlığı vardı.

man ls | grep -E '^[A-Z]+( [A-Z]+)*$'
NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSO
man crontab | grep -E '^[A-Z]+( [A-Z]+)*$'
NAME
SYNOPSIS
DESCRIPTION
OPTIONS
CAVEATS
SEE ALSO
FILES
STANDARDS
DIAGNOSTICS
AUTHOR

Başlık adları sayfadan sayfaya biraz değişir; sık rastlananlar aşağıdaki gibidir.

Başlıkİçeriği
NAMEAd ve tek satırlık açıklama (man -f ve man -k komutlarının yazdırdığı satır)
SYNOPSISKomutun yazılış biçimi
DESCRIPTIONÇalışma açıklaması (ls sayfasında seçenek açıklamaları da bu başlıktadır)
OPTIONSHer seçenek için bir paragraf
EXIT STATUSÇıkış kodlarının anlamı
FILESKomutun okuduğu veya yazdığı dosyalar
SEE ALSOBirlikte bakılacak sayfalar

SYNOPSIS içindeki işaretler man sayfasının belirlediği kurallara uyar. Köşeli parantez içindekiler atlanabilir. Dikey çizgiyle (|) ayrılan seçenekler birlikte kullanılamaz, üç nokta (...) eklenmiş bir argüman ise birden çok kez yazılabilir.

ls için SYNOPSIS, ls [OPTION]... [FILE]... biçimindedir; bu yüzden komut seçenekleri ve dosya adı gibi komut satırı argümanlarının hepsi atlanabilir veya birden çok kez yazılabilir.

[--help], programın kendisinin yazdırdığı kullanım özeti olduğu için sayfalayıcı olmadan doğrudan terminale çıkar. [ls --help] çıktısının ilk satırındaki Usage, SYNOPSIS ile aynı biçimdeydi; toplam uzunluk 121 satırdı ve [man ls] çıktısının 245 satırından kısaydı.

ls --help | head -n 3
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

man sayfasında [--help] çıktısında olmayan AUTHOR, SEE ALSO gibi başlıklar da vardır. Tek bir seçeneğe hızlıca bakılacaksa [--help], yapılandırma dosyası biçimi veya çıkış kodları gibi başlıklara ayrılmış bir açıklama gerekiyorsa man açılır.

🔢 SSS & önerilen içerikler

cd, bash'in içindeki yerleşik bir komut olduğu için [man cd] bütün yerleşik komutları toplayan sayfaya gider. AlmaLinux 9.8 sunucusunda [type cd] komutu [cd is a shell builtin] yazdırdı, [man -w cd] ise builtins.1.gz dosyasının konumunu yazdırdı. Tek bir yerleşik komutun kullanımına [help cd] ile doğrudan bakılabilir.

[man -a ad] çalıştırılırsa adı eşleşen sayfalar sırayla açılır. Yalnızca dosya konumlarına bakılacaksa [-w] de eklenir. AlmaLinux 9.8 sunucusunda [man -w -a crontab] çalıştırıldığında man1 ve man5 klasörlerindeki crontab dosyalarının iki satırı çıktı.

[man -k] ve [man -f] komutlarının aradığı dizini mandb oluşturur ve günceller. Bu yüzden dizine henüz girmemiş bir sayfa arama sonuçlarında çıkmaz; dizin, root hesabıyla [mandb] çalıştırılarak yeniden oluşturulur.

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 10   +   6   =