Man sayfalarında bilgi bulmak için püf noktaları ve ipuçları [kapalı]


80

İnsan sayfalarında bilgi bulmak için püf noktaları ve püf noktaları olan var mı?


1
man --help/ man -hve daha eksiksiz olan kardeşinin man manarama ve navigasyon ipuçları var.
Anton Tarasenko

Yanıtlar:


51

Bölüm numarasına dikkat edin: Yardım etmek istediğinizi varsayalım printf. bunlardan en az ikisi vardır: kabuk ve C'de. printf'in bash bölümü bölüm 1'de, C sürümü bölüm 3 veya 3C'dedir. Hangisini istediğinizi bilmiyorsanız, yazın man -a printfve tüm manuel sayfalar görüntülenir.

Eğer aradığınız şey tüm% kodlarını içeren printf formatıysa ve printf man sayfasında görünmüyorsa, SEE ALSO paragrafında listelenen ilgili man sayfalarına atlayabilirsiniz. formats(5)Yazmanızı öneren bir şey bulabilirsiniz man 5 formats.

Eğer man printfprintf (1) 'i veren rahatsızsanız ve istediğiniz tek şey printf (3) ise, MANPATHortam değişkeninde taranan dizinlerin sırasını değiştirmeniz ve C komutunu kabuk komutları için olanların önüne koymanız gerekir. Bu, Fortran veya TCL / Tk man sayfaları C sayfalarından önce listelendiğinde de olabilir.

Nereden başlayacağınızı bilmiyorsanız man intro, veya yazın man -s <section> intro. Bu size istenen bölümün komutlarının bir özetini verir.

Bölümler iyi tanımlanmıştır:

  • 1, kabuk komutları içindir,
  • 2 sistem çağrıları içindir,
  • 3 arayüzleri programlamak içindir (bazen C için 3C, Fortran için 3F ...)
  • 5, dosya formatları ve printf veya regex formatları gibi diğer kurallar içindir.

Son fakat en az olmayan: man sayfalarında verilen bilgiler gereksiz değildir, bu nedenle ihtiyacınız olanı bulma şansınızı artırmak için baştan sona dikkatlice okuyun.


11
Çoğu sistemde man man, çeşitli bölümlerin tam bir tanımını görmek için kontrol edebilirsiniz .
Steven D

1
Sayfaları bir «anahtar kelimeler» ile aramak için bir program olsaydı harika olurdu. Yani Geçenlerde bir alt bulmak için c işlevin adını hatırlayamadım ( strstr()) ve çevremde hiç bir internet vardı.
Hi-Angel

3
@ Hi-Angel man -k substringya apropos substringda sana yardım ederdi.
Kusalananda

58

Slash yazın /ve ardından aranacak dizeyi yazın. Ardından bir nsonraki öğeye geçmek için basmaya devam edin


37

adam -k arama

Bu size 'arama' ile ilgili tüm man sayfalarının bir listesini verecektir.


2
Ve kimse bu kullanabilirsiniz (örneğin, sayı 3) belirli bölümünde 'ara' ile ilgili tüm man sayfalarını listelemek için: man -k search -s 3 Ayrıca söz superuser.com/a/677969/599957
Kenichi'yi

Bunun gibi yorumların kaşlarını çattığını biliyorum ama teşekkür ederim, teşekkür ederim! Kelimenin tam anlamıyla itiraf etmeyi umduğumdan daha uzun zamandır böyle bir emir arıyordum.
MikeyE

19

@Steven D'nin dediği gibi infosayfaları unutma .

Ayrıca, infosayfalardan korkmayın. Dahili navigasyon sistemi nedeniyle bilgi sayfalarını kullanmayan pek çok insan tanıyorum. En sevdiğim çözüm bilgi sayfalarını şu şekilde yönlendirmektir less:

info gpg |less

Bu sayede, infofavori çağrı cihazımı kullanarak sayfalarda gezinebilirim . infoSayfaları artık aynı davranacaktır mansayfalarında.


1
hey, bu navigasyon hakkında harika bir ipucu
glenn jackman

18

Yardımcı aproposprogram uygun manpage bulmak için ciddi şekilde kullanışlıdır.


1
man -k== apropos, değil mi?
phunehehe

1
aproposBen her zaman kullandığım, kendisi için man sayfası olmayan bir şey ararken.
polemon

1
'man man', 'man -k' nin 'apropos -r' ye eşdeğer olduğunu söyler. Apropoların biraz daha güçlü olduğunu düşünüyorum. Genel olarak 'man -k' kullanıyorum, çünkü biraz daha kısa.
Kristof Provost

16

Bir man sayfasını okumak için varsayılan çağrı cihazı less. Burada belgeler less var .

Özellikle:

  • Bir sayfa yukarı / aşağı kaydırın: b/ space
  • Yarım sayfa yukarı / aşağı kaydırın: u/ d
  • İleriye doğru / geriye doğru arama: // ?, ardından normal bir ifade yazın,
    • daha sonra bir n sonraki maça gitmek için
    • shift+ Nönceki maça gitmek için.
    • Sayfa ilginç olmayan eşleşmelerle kaplıysa space, sonraki sayfaya gitmek için tuşuna basın.
  • @Baştan aramak için normal ifadeden önce bir tane ekleyin .

BU en iyi cevaptır. Kbd sembollerini kullanmak için ekstra noktalar. ;)
Chiramisu

Aşağı bir sayfa tarafından da yapılabilir yukarı / ilerleyin ctrl+space/ ' fsenin navigasyon için kullanmayı tercih hangi parmaklar bağlı yardımcı olabilir.
joelostblom

8

Her zaman SEE ALSO bölümünde neler olduğunu kontrol edin. infoSayfada bu bölümün altında gösterilen komutlar , imleci istenen komuta yerleştirip sonra enter tuşuna basılarak seçilebilir. Sık sık diğer yararlı komutları veya işlevleri bu şekilde buluyorum.


7

Editörünüzle varsayılan çağrı cihazında olduğunuzdan daha rahatsanız, MANPAGERortamınıza ayarlayabilirsiniz . Örneğin, bu satır benim ~/.bashrc:

export MANPAGER="col -b | vim -c 'set ft=man nomod nolist ignorecase' -"

4

Sanırım çoğu çağrı cihazını kullanmak iyi bir fikir. Bu çağrı cihazı çok güçlü, ama benim için ana özelliği - renkli adam sayfalarını görüntüleme. Bu özellik, düz metinlerin algılanmasını geliştirir ve gerekli bilgilerin aranmasını kolaylaştırır.

Ekteki ekran görüntüsüne bakın, metin çok hoş görünüyor, değil mi?

en çağrı cihazı


2
En önemli bilgiyi dışarıda bıraktınız: mostman sayfalarını görüntülemek için nasıl kullanırım .
user1968963

2
@ACK_stoverflow - Muhtemelen > ~/.bashrcorada olanların üzerine yazacağını düşündüğünüz bir erkeğe önerilmesi iyi bir fikir değildir . >>Bence ekleyerek ( ) veya kireci elle eklemek daha iyidir.
vatsug

Kurun ve denemek: iyi çağrı @vatsug Vay, burada benim yorum söylediler gereken budur: aptitude install most; export MANPAGER="most"; man man. Kalıcı hale getirmek için:echo 'export MANPAGER="most"' >> ~/.bashrc
ACK_stoverflow

4

Linux'ta man, man -K stringbelirli bir terimin kaba kuvvet araması yapmak için yapabilirsiniz (büyük K notunu)

   -K, --global-apropos
          Search for text in all manual  pages.   This  is  a  brute-force
          search,  and is likely to take some time; if you can, you should
          specify a section to reduce the number of pages that need to  be
          searched.   Search terms may be simple strings (the default), or
          regular expressions if the --regex option is used.

Nerede arayacağınızı bilmiyorsanız çok kullanışlıdır.


3

infoSayfaları görmezden gelme . Çoğu GNU aracı, erkek sayfalardan çok daha geniş bilgi sayfalarına sahiptir. Çoğu zaman, SEE ALSO bölümünde "foo için tüm dökümanlar bir Texinfo kılavuzu olarak tutulmaktadır." Bu özellikle GNU coreutils paketindeki her şey için geçerlidir.

Ayrıca, bir emacs kullanıcısıysanız, editörünüzden ayrılmadan bilgi ve manuel sayfaları okuyabileceğinizi unutmayın: M-x infove M-x woman.


3

Daha uzun, daha karmaşık sayfalarda, onları bir bilgisayardan okumayı çok daha kolay buluyorum (garip, biliyorum) ve bu fonksiyonlarımda var. .bashrc

# Print man pages 
manp() { man -t "$@" | lpr -pPrinter; }

# Create pdf of man page - requires ghostscript and mimeinfo
manpdf() { man -t "$@" | ps2pdf - /tmp/manpdf_$1.pdf && \
    xdg-open /tmp/manpdf_$1.pdf ;}

2

Kristof cevaplarından, eğer (yani) man -k chmodyazarsanız, olasılıkların bir listesini alırsınız. Parantez içindeki sayıya dikkat edin, bu kılavuz sayfalarında aranacak bölüm anlamına gelir:

UNIX'te deneyebilirsiniz:

man -s1 chmod chmod komutu için man sayfasını gösterecek

man -s2 chmod C lib fonksiyonu chmod () 'in man sayfasını gösterir.

Linux'ta değiştirmek gerekir -siçin-S


adam 1 chmod adam 2 chmod aynı şeyi yapar.
Eliptik manzara

2

Kullanıcı sayfalarını kullanıcı dostu bir grafik uygulamada görüntüleyin:

konqueror man:(command)

Üst düzey içindekiler tablosu için:

konqueror man:

Özellikleri:

  • Birden çok bölümde eşleşmesi olan bir komut girerseniz, sizi bir belirsizlik sayfasına götürür
  • Grafik bir uygulamadır, sayfada gezinmek için şifreli anahtar dizileri hatırlamanıza gerek yoktur
  • İlgili sayfalara köprüler içerir ("ayrıca bakınız" sayfaları da dahil)
  • İlgili sayfaları ayrı sekmelerde açabilirsiniz.

Bu arada, bu da işe yarıyor info:(command). Bazı programlar "info" ile "man" dan çok daha fazla bilgi sağlar ve konqueror bu bilgi sayfalarına göz atmak için çok daha güzel bir arayüz sunar. Not: Sadece kullanmak info:, aynı zamanda bir üst düzey içindekiler tablosu almak için de çalışır.
nobar

Benzer bir etki localhost / cgi-bin / man / man2htmlgman adresinde bir manpage web sunucusu oluşturan paket kullanılarak da elde edilebilir .
nobar

AskUbuntu Alternatifleri: askubuntu.com/questions/253705/…
nobar

... yelpdaha hafif ağırlıklı bir yedek parça olarak değiştirilmekle birlikte konqueror- birden fazla bölümde kullanılan isimler için bir içindekiler tablosu veya açıklayıcı bir sayfa sunmama eksikliğine rağmen. Bunları açıkça ekleyerek ayırmanız gerekir .(section)- örn yelp man:open.2. Konum çubuğunu açmak için <kbd> Ctrl-L </kbd> tuşlarını da kullanabilirsiniz.
nobar

2

Dayum millet! Katılan cevapların nesi var ?! Sadelik için parlaklık için anahtar olan ne oldu, değil mi? Vi / vim anahtarlarınızın çoğu yüzerek çalışır:

/veya ?- İleri veya geri arama yapın (bazılarının daha önce belirttiği gibi). Birincisi durumunda, bir küçük harf n eşleşmeleri ileriye doğru kaydırır, büyük harf N geriye doğru gider. İkinci soru işareti için bunun tersi geçerlidir.

Düzenli ifadeler ile biraz daha karmaşık aramalar. man(Veya less) ve VIM arasındaki fark , ifadeyi kullanırken ifadenizdeki meta karakterleri bildirmek için escape () karakterini kullanmanız gerektiğidir. İyi haber şu ki, eski ( manveya less) kullanırken -çok fazla değil. Böylece kolaylıkla arama yaparken, örneğin, bir için, kullanmak için bu koyabilirsiniz iptablesşöyle Birden çok terim için adam sayfasında: /(iptables|rules). Düzenli ifadelere yabancıysanız, "Kelimelerin örneklerini arayın iptablesVEYArules". Bunu girdikten ve n tuşuna basmaya devam ettikten sonra, aramanın alternatif sonuçlarını kaydırırken, sonuçlar sizin için farklı renklerle güzel bir şekilde vurgulanır (iki, aslında. Haha). Sayfa boyunca göz atmaya çalışıyorsanız ve Belirli terimlere veya kavramlara odaklanmak istiyorum, tek bir şeyi kaçırmayacaksınız!

Ve elbette, daha hızlı gezinmek için normal vistandbileriniz hala ayakta (hedeflenen amaç yok): ggveya G- belgenin başlangıcı / bitişi; (Düzeltme! İçinde manaşağıda belirtilen tüm tuşları Ctrl kullanmadan kullanabilirsiniz. Bu visadece içindir). Ctrl + u or d- Yukarı veya aşağı kaydırın; Ctrl + b or f- Aynı şey, sadece daha büyük sıçramalarda. "Sayfa geri veya ileri"; eveya y- tek bir satıra ilerleyin, ancak çoğu insanın sadece ok tuşlarını kullanacağını düşünüyorum. Ancak, "1337" kalmak ve "ev satırından asla ayrılmamak" (lol yaptığım gibi) - gitmek için bir yoldur.

Söylemeye çalıştığım, UNIX’in readlinekütüphane bölümünün her iki parçası olan iki ana klavye program kontrol tadı var : vi ve emac Pirzola ya ikisinde (ama her ikisinde de) ikisini yapın ve bu sizin hayatınızı çok daha az karmaşık hale getirecektir. UNIX'teki CLI programlarının çoğu ikisinden birini kullanır. BASHemacs kontrollerini varsayılan olarak kullanır, ancak yazarak kolayca "vi moduna" ayarlanabilir set -o vi. Aynı düzenli ifadeler için söylenebilir, ancak bu konu dışı olacak. Bunların ikisinin de UNIX'in "lingua franca" olduğunu söylemek kadar ileri giderdim.


2

Rob Hoelz'in cevabına benzer fakat biraz farklı,

Şunlara aşağıdakileri ekleyin ~/.vimrc:

let $GROFF_NO_SGR=1
runtime ftplugin/man.vim

Şimdi vimmanmükemmel bir manpage görüntüleyicisi ve :ManVim'in içinden (veya sadece Kbir anahtar kelimeye çarparak ) mükemmel bir manpage tarayıcısı.


1

Çoğumuz PATH değişkenini ayarladık. Bu, adam arama yolunu otomatik olarak PATH komutunuzla nasıl eşleştireceğinizi gösterir.

Gibi kişisel, işe özgü ve yerel olarak kurulmuş yardımcı programlarınızı eklemek için yolunuzu eklediğinizi varsayalım export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:. Bir yan etki olarak, man foo~ / man, / workgroup / man veya / opt / local / man 'da depolanan man sayfalarını göstermez.

Bunu çözmek manpathiçin, man sayfa arama yolunu otomatik olarak ayarlamak için komutu kullanıyorum . Örneğin, benim ~ / .bashrc aşağıdakileri içerir. Bu benim için FreeBSD 4.x, Darwin ve CentOS 5'ten her şeyi çalıştıran yüzlerce farklı sistemde çalışıyor:

### PATH & MANPATH
# My personal utilities
export PATH=$PATH:$HOME/bin

### Set the manpath based on the PATH, after man(1) parses man.conf
# - No need to modify man.conf or manually modify MANPATH_MAP
# - Works on Linux, FreeBSD & Darwin, unlike /etc/manpaths.d/
# See "SEARCH PATH FOR MANUAL PAGES" in man(1)
# Just set the man search path. Don't print output to screeen.
manpath >/dev/null

Bazı sistemler (Apple Leopard gibi), MANPATH'ı otomatik olarak ayarlar, ancak bu, sisteminizin kullanmak yerine MANPATH değişkenini kullanacağı anlamına gelir manpath. Sonuç olarak, 'MacPorts' (/ opt / local / man) için man sayfaları dikkate alınmaz. Bunu kendim kontrol etmek istiyorum, bu yüzden MANPATH'ı üzdüm:

unset MANPATH
manpath >/dev/null

1

Eğer bir ilgili bilgi arıyorsanız bashyerleşiği (örneğin time, disown, set, veya [[) yerine detaylı slogging ait bashbilgi sayfasında veya man bashgirebilirsiniz help {builtin-keyword}ve hızlı bir şekilde temel sözdizimi bilgi alabilirsiniz.


1

Man printf'in size printf (1) verdiğini ve tüm isteğinizin printf (3) olduğunu merak ediyorsanız, printf'den önceki bölümü koyarak, printf'ten istediğinizi yazdırabilirsiniz man 3 printf. MANPATH ortam değişkeninde taranan dizinlerin sırası ve C komutu için olanları kabuk komutları için olanların önüne koy.


1

Ben sadece kullanıyorum grep. Komut -sseçeneğinin ne yaptığını merak edersem, readbir cevap bulana kadar bu komutları denerdim:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

Bu durumda sadece infokomut net bir cevap verdi. Bu mükemmel cevap , farklı yardım sistemlerine ilişkin ayrıntıları verir.


1

man -a printfman 1Linux Mint makinemde sadece varsayılanlar . whatis printfbana ilgili bilgiyi verir.


1

Örneğin -u, tek bir karakter anahtarını verimli bir şekilde aramak için , genellikle şunları kullanabilirsiniz:

/^ *-u($|\s)

Birçok seçenek önek olarak '-u' varsa, çok zaman kazandırır.


Ayrıca, bu regex yararlı olacaktır: /-u($|[,\s]) seçenek karakteri virgül ile çerçevelenmiş olması durumunda. Eğer (gibi seçenek karakteri 'u' tüm girişleri görmek istiyorum Ama eğer -u]içinde [--udp|-u]bir netstatkılavuzun) böyle bir şey gerekir: /-u($|[^a-z]) Ve eğer viyoksa vimçağrı cihazı olarak kullanılır: /-u\($\|[^a-z]\)
Kenichi'yi

0

Yerinde (1) komut man sayfalarını arama yapmak için kullanılır. Ancak, apropoların (1) çoğu uygulaması sadece NAME bölümünde çok sınırlayıcı olanı araştırmaktadır.

NetBSD , man sayfalarının tüm içeriğini arayabilen, apropoların (1) tam metin arama uygulamasını içermektedir. Bunun için web tabanlı bir arayüz de var: man-k.org , deneyebilirsiniz.


0

görüntü tanımını buraya girinTüm beyaz renkli metinlerden dolayı man sayfalarını okumayı zor buluyorsanız, bunları renklendirebilirsiniz. Çoğu erkek sayfası ile açılır less. İçin less, ben şu renk ayarlarını kullanmak .bashrcden buraya :

man() {
    LESS_TERMCAP_md=$'\e[01;31m' \red
    LESS_TERMCAP_me=$'\e[0m' \
    LESS_TERMCAP_se=$'\e[0m' \
    LESS_TERMCAP_so=$'\e[01;44;33m' \yellow on blue
    LESS_TERMCAP_ue=$'\e[0m' \
    LESS_TERMCAP_us=$'\e[01;32m' \green
    command man "$@"
}

Bu bash ve zsh içindir. İçin most, fish, xtermve rxvtyukarıdaki bağlantıya bakın.

Daha fazla okumak için:


0

Ayrıca, bir dokunmatik ekrandaki adam ve bilgi sayfalarını okumaktan hoşlananlar için, insan / bilgiyi yad veya zenite'ye yönlendirebilir ve yerel parmak kaydırma gibi tüm gtk3 güzelliklerinden yararlanabilirsiniz. Refular ekran ve fare ile de harika çalışır:

man cat |yad --text-info 

Zenity'yi kullanabilir veya aşağıdaki gibi yad seçenekleri ekleyebilirsiniz:

man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &

İpucu: Gösteriye göre uri yoh, man sayfalarının içindeki web bağlantılarına fare / parmakla tıklayabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.