man Sayfalarında Yolumuzu Bulma
Not
Okumadıysanız POSIX, SUS ve LSB ve Linux Kernel Arayüzü sayfalarına önce bakmanızı öneririm.
Linux projesi kapsamında yürütülen man-pages projesinin amacı programcılara sunulan C API’ını dokümante etmektir [1]:
The Linux man-pages project documents the Linux kernel and C library interfaces that are employed by user-space programs. With respect to the C library, the primary focus is the GNU C library (glibc), although, where known, documentation of variations in other C libraries available for Linux is also included.
Linux sistem programlama yapacaksak man sayfaları hep önümüzde durmalı. man-pages ayrı bir proje ve bu proje 2004 yılından beri The Linux Programming Interface kitabının yazarı Michael Kerrisk tarafından yürütülmektedir. man sayfası kavramı Linux’a özgü değil, Unix zamanından beri hayatımızda [2]. man, manual kelimesinin kısaltılması, yani kullanım kılavuzu olarak düşünebiliriz. Bu sayfalar hem programcılara hem de kullanıcılara doküman sağlıyorlar. Hadi gelin bakalım!
Yerel man sayfaları
Ubuntu gibi birçok Linux dağıtımı man sayfaları yüklü olarak gelmektedir. Eğer
BASH gibi bir shell’i açıp, man
yazdığınız zaman bir hata almıyor ve önünüze
çeşitli seçenekler dokülüyorsa sizde man
programı ve muhtemelen ilgili
dokümanlar yüklü demektir. Eğer hata alıyorsanız kullandığınız dağıtım ile
ilgili internette bir arama yapın. man
programı ile man-pages içerisinde
kolayca gezinip, arama yapabileceğiz.
man ls
yazdığınız zaman ls
komutunun dokümantasyonunu görüyorsunuz örneğin.
Doküman açıldıktan sonra h
tuşuna basarak man
programının içerisinde yani
dokümanların içerisinde gezinme ile ilgili yardım alabilirsiniz. /
ile de
doküman içerisinde arama yapabilirsiniz. man man
yazarak da man
programı
hakkında bilgi alabilirsiniz (manception ?).
Section(s)
Man sayfaları section denen bölümlere ayrılmıştır. Bir kelime birden fazla
section’da geçebilir. Eğer man
programı, aynı kelimeyi birden fazla yerde
bulursa tek bir sonuç döner ve nereden sonuç döneceği ise (yani hangi sırada
arama yapacağı) /etc/manpath.config
içerisinde belirtilmiştir (en azından
Ubuntu’da bu dosya belirtiliyor.)
Dikkat
man
sayfasının ilk sonucu dönmesi yanıltıcı olabilir, diğer dokümanları
göremeyebilirsiniz, o yüzden okumaya devam edin…
Her section’nun bir numarası vardır. Ad ve açıklamalar şu şekildedir:
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions, e.g. /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g.
man(7), groff(7), man-pages(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
Not
Bunlar temel section isimleridir. 3perl
gibi başka section isimleri olabilir ama
biz genelde section 1, 2, 3 dokümanları kullanacağız. 2 numaralı section kernele
yapabileceğimiz sistem çağrılarını anlatmaktadır.
Örneğin man 1 chmod
bizlere chmod
isimli kabuk komutunu anlatırken
man 2 chmod
ise C API tarafından sunulan chmod()
fonksiyonunu anlatmaktadır.
man 2 chmod
:
CHMOD(2) Linux Programmer's Manual CHMOD(2)
NAME
chmod, fchmod, fchmodat - change permissions of a file
SYNOPSIS
#include <sys/stat.h>
int chmod(const char *pathname, mode_t mode);
int fchmod(int fd, mode_t mode);
...
CHMOD(2)
içerisindeki 2
, bize section numarasını gösteriyor.
man 1 chmod
:
CHMOD(1) User Commands CHMOD(1)
NAME
chmod - change file mode bits
SYNOPSIS
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
DESCRIPTION
This manual page documents the GNU version of chmod. chmod changes the
file mode bits of each given file according to mode, which can be ei‐
Bir kelime ile ilgili tüm section’ları farklı biçimlerde bulabiliriz:
$ man -f chmod
chmod (2) - change permissions of a file
chmod (1) - change file mode bits
$ whatis chmod
chmod (2) - change permissions of a file
chmod (1) - change file mode bits
$ apropos chmod
chmod (1) - change file mode bits
chmod (2) - change permissions of a file
fchmod (2) - change permissions of a file
fchmodat (2) - change permissions of a file
man -f
ile whatis
ve man -k
ile aprops
aynı anlamdadır. man -a chmod
derseniz chmod
ile ilgili tüm dokümanları arka arkaya okuyabilirsiniz.
GNU Info System
man sayfaları kadar yaygın olmasa da GNU Info System bir başka dokümantasyon
aracıdır. man’a göre sunduğu çeşitli avantajlar da vardır. [3] HTML’in
icadından önce, 1986 yılında ortaya çıkmasına rağmen buradaki dokümanlar
birbirleri ile linkler üzerinden bağlıdır. info ls
yazarak neye benzediğini
görebilirsiniz. Özellikle make
gibi GNU araçlarında info make
yazmak daha
iyi bir dokümantasyon sunabilir.
x
in dokümanında man x
yeterli gelmiyorsa, info x
ile bakmakta fayda var.
Daha iyisi bazen çıkıyor. GNU Info en kötü man
sayfasını gösteriyor.
GUI Yardım Araçları
GNOME üzerindeyseniz yelp man:chmod.2
veya yelp info:cpio
(GNU Info)
yazabilirsiniz. Plasma (KDE) üzerindeyseniz khelpcenter
kullanabilirsiniz.
Şahsen GUI yardım araçlarını pek kullanmıyorum. Klasik man pages
kullanmayacaksam online olanlar daha çok hoşuma gidiyor.
Online
man sayfalarına online olarak da (hem de güzel formatlanmış şekilde) erişmek mümkün. Örneğin man7.org sayfası resmi online Linux man sayfasıdır. Kişisel olarak mankier.com, tldr, and the Arch Linux online man pages sitelerini de beğeniyorum. Kaynaklar kısmında daha geniş ve güncel bir liste tutmaya çalışıyorum.