fork
Örneğin, bir adam sayfası , 2 numaralı Sistem Çağrıları bölümündedir:
man 2 fork
Bölüm 2’nin Google’a başvurmadan başka neler olduğunu nasıl görüyorsunuz?
fork
Örneğin, bir adam sayfası , 2 numaralı Sistem Çağrıları bölümündedir:
man 2 fork
Bölüm 2’nin Google’a başvurmadan başka neler olduğunu nasıl görüyorsunuz?
Yanıtlar:
Bu komut verilen bölümdeki tüm girişlerin sıralanmış isimlerini listeler:
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u
Yol adlarını görmek istiyorsanız, şunu kullanın:
man -aWS 1 \* | sed 's/\.[^.]*$//' | sort
Bu man
, joker desenini kullanarak tüm komutlar için bir bölüm arama yapmasını söyler *
(ters eğik çizgi, böylece kabuk yorumlamaz). -a
tüm eşleşmeleri bulur -W
, sayfaları görüntülemek yerine yol adlarını yazdırır ve birinci -S 1
bölümü belirler. Değişim 1
aramak istediğiniz için ne olursa olsun bölümü.
sed
Komut uzantılarına şeritler; tam dosya adlarını görmek istiyorsanız onu kaldırın. sort
sonuçları sıralar ( -u
kopyaları siler).
Yeniden kullanım için, bu bir Bash kabuk işlevini tanımlar:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }
Örneğin, mansect 3
bölüm 3'teki girişleri görmek için onu çağırabilirsiniz .
[MacOS'ta test edildi.]
uniq
boru hattına bir şey koyarak hiçbiri düzeltmiyor .
sort -u
Çoğaltmaları kaldırmak için sort komutunu güncelledim .
Yüklenen tüm man sayfalarını belirli bir bölümden listelemek için apropos kullanabilirsiniz :
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
man -a -s 2 '*'
Manpages genellikle yerleştirilir /usr/share/man
ancak kontrol edilir $MANPATH
ve şöyle bölümlere ayrılır:
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
Böylece, tüm yüklü bölüm 2 man sayfalarını listelemek için şunları yapın:
ls /usr/share/man/man2/
Veya daha eksiksiz olanı:
find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'
İkincisi $MANPATH
, adlarında boşluk olan dizinler varsa sorun yaşar.
Çoğu dağıtımda, mevcut kılavuz sayfalarını bir paket aracıyla da kontrol edebilirsiniz, örneğin, aşağıdaki apt-file
gibi kullanabileceğiniz Debian türetilmiş dağıtımlarında :
apt-file search /man2/
lman 2
ve her sayfa için süslenmemiş adı yeni bir satırda listeleyen ve onları sayfalayan bir kabuk işlevi yaptım . Fonksiyonun vücudu şudur:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
Bunun çok eski bir soru olduğunu biliyorum, ancak burada verilen cevapların hepsi benim için işe yaramadı. Bu nedenle Ubuntu 18.04 ve macOS Mojave, 10.14.6'da çalışan aşağıdaki bir liner ile geldim:
find $(man --path | tr ':' ' ') -type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//' | sort
Hızlı koşmak:
$(man --path | tr ':' ' ')
man sayfalarının güncel yollarını bulmak içinfind <man paths> -type f -path '*man2*' -exec basename {} \;
İnsan yollarındaki tüm normal dosyaların isimlerini alırsed
dosya uzantısından kurtulursort
alfabetik.