Trik dan tips untuk mencari informasi di halaman manual [ditutup]

80

Adakah yang punya trik dan tip untuk menemukan informasi di halaman manual?

Casebash
sumber
1
man --help/ man -hdan saudara yang lebih lengkap man manmemiliki tips pencarian dan navigasi.
Anton Tarasenko

Jawaban:

51

Perhatikan nomor bagian: Misalkan Anda ingin bantuan printf. setidaknya ada dua di antaranya: di shell dan di C. Versi bash dari printf ada di bagian 1, versi C di bagian 3 atau 3C. Jika Anda tidak tahu yang mana yang Anda inginkan, ketik man -a printf, dan semua halaman manual akan ditampilkan.

Jika yang Anda cari adalah format printf dengan semua kode% dan itu tidak muncul pada halaman manual printf, Anda dapat melompat ke halaman manual terkait yang terdaftar di bawah JUGA JUGA paragraf. Anda mungkin menemukan sesuatu seperti formats(5), yang menyarankan Anda untuk mengetik man 5 formats.

Jika Anda kesal yang man printfmemberi Anda printf (1) dan yang Anda inginkan adalah printf (3), Anda harus mengubah urutan direktori yang dipindai di MANPATHvariabel lingkungan dan meletakkan yang untuk bahasa C sebelum yang untuk perintah shell. Ini dapat terjadi juga ketika halaman manual Fortran atau TCL / Tk dicantumkan sebelum yang C.

Jika Anda tidak tahu harus mulai dari mana, ketik man intro, atau man -s <section> intro. Ini memberi Anda ringkasan perintah dari bagian yang diminta.

Bagian didefinisikan dengan baik:

  • 1 untuk perintah shell,
  • 2 untuk panggilan sistem,
  • 3 untuk antarmuka pemrograman (kadang-kadang 3C untuk C, 3F untuk Fortran ...)
  • 5 adalah untuk format file dan aturan lain seperti format printf atau regex.

Terakhir tetapi tidak kalah pentingnya: informasi yang dikirim di halaman manual tidak berlebihan, jadi bacalah dengan cermat dari awal hingga akhir untuk meningkatkan peluang Anda untuk menemukan yang Anda butuhkan.

mouviciel
sumber
11
Pada kebanyakan sistem Anda dapat memeriksa man manuntuk melihat keterangan lengkap dari berbagai bagian.
Steven D
1
Akan sangat keren jika ada program untuk mencari halaman dengan «kata kunci». Yaitu saya baru-baru ini tidak dapat mengingat nama fungsi c untuk menemukan substring (itu strstr()) , dan saya tidak punya internet di sekitar saya.
Hi-Angel
3
@ Hai-Angel man -k substringatau apropos substringakan membantu Anda.
Kusalananda
58

Ketik slash /lalu ketikkan string yang akan dicari. Kemudian terus menekan nuntuk mendapatkan ke item berikutnya

Alexander Pogrebnyak
sumber
37

pencarian man -k

Ini akan memberi Anda daftar semua halaman manual yang berhubungan dengan 'pencarian'.

Kristof Provost
sumber
2
Dan untuk mendaftar semua halaman manual yang berhubungan dengan 'pencarian' di bagian tertentu (nomor 3, misalnya) kita dapat menggunakan ini: man -k search -s 3 Disebutkan juga di superuser.com/a/677969/599957
kenichi
Saya tahu komentar seperti ini tidak disukai, tetapi terima kasih, terima kasih, terima kasih! Saya benar-benar telah mencari perintah seperti ini lebih lama dari yang saya mau akui ... bertahun-tahun !!
MikeyE
19

Seperti yang dikatakan @Steven D, jangan lupakan infohalamannya.

Selain itu, jangan terintimidasi oleh infohalaman. Saya kenal banyak orang yang tidak menggunakan halaman info karena sistem navigasi bawaan. Solusi favorit saya adalah menyalurkan informasi melalui less:

info gpg |less

Dengan cara ini, saya dapat menavigasi infohalaman menggunakan pager favorit saya. The infohalaman sekarang akan berperilaku sama seperti manhalaman.

Stefan Lasiewski
sumber
1
hei, itu tip yang bagus tentang navigasi
glenn jackman
18

The aproposutilitas serius berguna untuk menemukan manualnya yang tepat.

Hank Gay
sumber
1
man -k== apropos, bukan?
phunehehe
1
aproposadalah apa yang saya gunakan setiap saat ketika mencari sesuatu yang belum memiliki halaman manual untuk dirinya sendiri.
polemon
1
'man man' mengatakan bahwa 'man -k' setara dengan 'apropos -r'. Saya pikir apropos sedikit lebih kuat. Saya biasanya menggunakan 'man -k' karena sedikit lebih pendek.
Kristof Provost
16

Pager default untuk membaca halaman manual adalah less. Ada dokumentasi di less sini .

Khususnya:

  • Gulir ke atas / bawah dengan satu halaman: b/ space
  • Gulir ke atas / bawah setengah halaman: u/ d
  • Mencari maju / mundur: // ?, lalu ketikkan ekspresi reguler,
    • lalu tekan n untuk pergi ke pertandingan berikutnya atau
    • shift+ Nuntuk pergi ke pertandingan sebelumnya.
    • Jika halaman ditutupi dengan pertandingan yang tidak menarik, tekan spaceuntuk pergi ke halaman berikutnya.
  • Tambahkan @sebelum ekspresi reguler untuk mencari dari awal.
Casebash
sumber
INI adalah jawaban terbaik. Poin ekstra untuk menggunakan simbol kbd. ;)
Chiramisu
Gulir ke atas / bawah dengan satu halaman juga dapat dilakukan dengan ctrl+space/ f, yang mungkin berguna tergantung pada jari mana yang Anda sukai untuk digunakan untuk navigasi.
joelostblom
8

Selalu periksa apa yang ada di bagian LIHAT JUGA. Perintah yang ditunjukkan di bawah bagian ini pada infohalaman dapat dipilih dengan menempatkan kursor pada perintah yang diinginkan dan kemudian menekan tombol enter. Seringkali saya menemukan perintah atau fungsi berguna lainnya seperti itu.

Neth
sumber
7

Jika Anda lebih nyaman dengan editor daripada pager default, Anda dapat mengaturnya MANPAGERdi lingkungan Anda. Misalnya, saya memiliki baris ini di ~/.bashrc:

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

Saya kira, menggunakan kebanyakan pager adalah ide yang bagus. Pager ini sangat kuat, tetapi fitur utama bagi saya - menampilkan halaman manual berwarna. Fitur ini meningkatkan persepsi teks biasa dan memudahkan pencarian informasi yang diperlukan.

Lihat screenshot yang terlampir, teks terlihat sangat bagus, bukan?

kebanyakan pager

dr.
sumber
2
Anda telah meninggalkan bagian informasi yang paling penting: bagaimana cara saya menggunakan mostuntuk melihat halaman manual.
user1968963
2
@ACK_stoverflow - mungkin bukan ide yang baik untuk merekomendasikan orang itu untuk melakukan > ~/.bashrckarena akan menimpa apa yang sudah ada di sana. Lebih baik menambahkan ( >>) atau menambahkan jeruk nipis secara manual menurut saya.
vatsug
@vatsug Wow panggilan yang baik, di sini adalah apa komentar saya seharusnya mengatakan: Instal dan mencobanya: aptitude install most; export MANPAGER="most"; man man. Untuk menjadikannya permanen:echo 'export MANPAGER="most"' >> ~/.bashrc
ACK_stoverflow
4

Di Linux man, Anda dapat melakukan man -K string(perhatikan huruf besar K) untuk melakukan pencarian brute force dari istilah yang diberikan

   -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.

sangat berguna ketika Anda tidak tahu ke mana harus mencari.

enzotib
sumber
3

Jangan abaikan infohalamannya. Banyak alat GNU memiliki halaman info yang jauh lebih luas daripada halaman manual. Seringkali, bagian LIHAT JUGA akan mengatakan "Dokumentasi lengkap untuk foo dikelola sebagai manual Texinfo." Ini terutama berlaku untuk apa pun dalam paket GNU coreutils.

Juga, jika Anda adalah pengguna emacs, jangan lupa Anda dapat membaca info dan halaman manual tanpa meninggalkan editor Anda: M-x infodan M-x woman.

Steven D
sumber
3

Untuk halaman manual yang lebih lama dan lebih kompleks, saya merasa jauh lebih mudah untuk membacanya dari komputer (aneh, saya tahu) dan jadi saya memiliki fungsi-fungsi ini di .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 ;}
jasonwryan
sumber
2

Dari jawaban Kristof, jika Anda (yaitu) mengetik, man -k chmodAnda akan mendapatkan daftar kemungkinan. Perhatikan angka dalam tanda kurung, itu berarti bagian yang harus dicari di halaman manual:

Pada UNIX Anda dapat mencoba:

man -s1 chmod itu akan menampilkan halaman manual untuk perintah chmod

man -s2 chmod itu akan menampilkan halaman manual untuk fungsi C lib chmod ()

Pada Linux Anda harus mengubah -suntuk-S

jyz
sumber
man 1 chmod man 2 chmod melakukan hal yang sama.
Tampilan elips
2

Lihat halaman manual dalam aplikasi grafis yang mudah digunakan:

konqueror man:(command)

Untuk daftar isi tingkat atas:

konqueror man:

Fitur:

  • Jika Anda memasukkan perintah yang memiliki kecocokan di banyak bagian, itu akan membawa Anda ke halaman disambiguasi
  • Ini adalah aplikasi grafis, jadi Anda tidak perlu mengingat urutan kunci rahasia untuk menavigasi halaman
  • Ini termasuk hyperlink ke halaman terkait (termasuk halaman "lihat juga")
  • Anda dapat membuka halaman terkait di tab terpisah
nobar
sumber
Omong-omong, ini juga bekerja dengan info:(command). Beberapa program memberikan lebih banyak informasi melalui "info" daripada melalui "man", dan konqueror menyediakan antarmuka yang jauh lebih baik untuk menjelajahi halaman info ini. Catatan: Hanya menggunakan info:, juga berfungsi untuk mendapatkan daftar isi tingkat atas.
nobar
Efek serupa dapat dicapai dengan menggunakan gmanpaket yang membuat server web manual di localhost / cgi-bin / man / man2html .
nobar
Alternatif di AskUbuntu: askubuntu.com/questions/253705/…
nobar
... yelpmenjadi pengganti drop-in yang lebih ringan untuk konqueror- meskipun memiliki kekurangan tidak menyajikan daftar isi atau halaman disambiguasi untuk nama yang digunakan dalam banyak bagian. Anda harus membedakan ini secara eksplisit dengan menambahkan .(section)- misalnya yelp man:open.2. Anda juga dapat menggunakan <kbd> Ctrl-L </kbd> untuk membuka bilah lokasi.
nobar
2

Dayum, semuanya! Ada apa dengan jawaban yang berbelit-belit ?! Apa pun yang terjadi pada kesederhanaan menjadi kunci kecemerlangan dan apa yang tidak? Sebagian besar kunci vi / vim Anda akan bekerja dengan baik:

/atau ?- Cari maju atau mundur (seperti beberapa orang telah sebutkan). Dalam kasus yang pertama, huruf kecil n akan menggulir pertandingan ke depan, huruf kapital N akan mundur. Yang sebaliknya berlaku untuk yang terakhir-tanda tanya.

Pencarian sedikit lebih kompleks melalui ekspresi reguler. Perbedaan antara man(atau less) dan VIM adalah bahwa Anda harus menggunakan karakter escape () untuk mendeklarasikan metacharacters dalam ekspresi Anda saat menggunakan yang terakhir. Kabar baiknya adalah bahwa ketika Anda menggunakan yang pertama ( manatau less) -tidak banyak. Jadi Anda dapat dengan mudah menempatkan ini untuk digunakan ketika mencari, misalnya, sebuah iptableshalaman manual untuk beberapa istilah seperti: /(iptables|rules). Jika Anda tidak terbiasa dengan ekspresi reguler, ini berarti "Cari contoh kata iptablesATAUrules". Setelah memasukkan ini dan terus menekan n Anda akan menggulir hasil pencarian bergantian dengan hasil yang disorot dengan baik untuk Anda dengan warna yang berbeda (dua, sebenarnya. Haha). Jika Anda mencoba untuk menelusuri halaman dan ingin berkonsentrasi pada istilah atau konsep tertentu - Anda tidak akan melewatkan satu hal pun!

Dan, tentu saja, untuk navigasi yang lebih cepat, vistandbies biasa Anda tetap bertahan (tidak ada permainan kata-kata): ggatau G- awal / akhir dokumen; (Koreksi! Di manAnda dapat menggunakan semua kunci yang disebutkan di bawah tanpa menggunakan Ctrl. Itu vihanya untuk itu ). Ctrl + u or d- Gulir ke atas atau ke bawah; Ctrl + b or f- Hal yang sama, hanya dalam lompatan yang lebih besar. "Halaman mundur atau maju"; eatau y- gulir dengan satu baris, tapi saya pikir kebanyakan orang lebih suka menggunakan tombol panah. Namun, jika Anda ingin tetap "1337" dan "tidak pernah meninggalkan baris rumah" (seperti yang saya lakukan lol) -itu cara untuk pergi.

Yang ingin saya katakan adalah bahwa UNIX memiliki dua rasa utama kontrol program papan ketik, yang keduanya merupakan bagian dari readlineperpustakaan: vi dan emacs. Tingkatkan daging Anda dalam salah satu (tapi, lebih baik-dalam keduanya) dan itu akan membuat hidup Anda jauh lebih rumit. Sebagian besar program CLI di UNIX menggunakan salah satunya. BASHmenggunakan kontrol emacs secara default, tetapi dapat dengan mudah diatur ke "mode vi" dengan mengetik set -o vi. Hal yang sama dapat dikatakan untuk ekspresi reguler, tetapi itu akan jauh dari topik. Saya bahkan akan mengatakan bahwa keduanya adalah "lingua franca" dari UNIX.

Maks
sumber
2

Mirip dengan tetapi sedikit berbeda dari jawaban Rob Hoelz,

Tambahkan yang berikut ini di ~/.vimrc:

let $GROFF_NO_SGR=1
runtime ftplugin/man.vim

Sekarang vimmanadalah penampil halaman manual yang sangat baik, dan :Mandari dalam Vim (atau hanya menekan Kkata kunci) adalah browser halaman manual yang sangat baik.

singkat
sumber
1

Sebagian besar dari kita mengatur variabel PATH. Ini akan menunjukkan kepada Anda cara membuat jalur pencarian pria cocok dengan PATH pencarian perintah Anda.

Katakanlah Anda menambahkan jalur Anda untuk menyertakan utilitas pribadi, khusus untuk pekerjaan Anda, dan yang diinstal secara lokal, seperti export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:. Sebagai efek samping, man footidak akan menampilkan halaman manual yang disimpan di ~ / man, / workgroup / man atau / opt / local / man.

Untuk mengatasi ini, saya menggunakan manpathperintah untuk secara otomatis mengatur jalur pencarian halaman manual. Sebagai contoh, my ~ / .bashrc memiliki yang berikut ini. Ini berfungsi untuk saya pada seratus sistem berbeda yang menjalankan semuanya dari FreeBSD 4.x, Darwin dan CentOS 5:

### 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

Beberapa sistem (Seperti Apple Leopard) mengatur MANPATH secara otomatis, tetapi itu berarti bahwa sistem Anda akan menggunakan variabel MANPATH alih-alih menggunakan manpath. Akibatnya, halaman manual untuk 'MacPorts' (/ opt / local / man) diabaikan. Saya ingin mengendalikan ini sendiri, jadi saya membatalkan MANPATH:

unset MANPATH
manpath >/dev/null
Stefan Lasiewski
sumber
1

Jika Anda sedang mencari informasi mengenai bashbuiltin (seperti time, disown, set, atau [[), bukannya slogging melalui rinci bashhalaman info atau man bash, Anda dapat memasukkan help {builtin-keyword}dan mendapatkan informasi sintaks dasar dengan cepat.

LawrenceC
sumber
1

Jika Anda kesal bahwa man printf memberi Anda printf (1) dan semua yang Anda inginkan adalah printf (3), Anda dapat memberi tahu pria Anda menginginkan printf dari bagian 3 dengan meletakkan bagian sebelum printf, seperti: man 3 printftanpa harus mengubah urutan direktori yang dipindai di variabel lingkungan MANPATH dan letakkan yang untuk bahasa C sebelum yang untuk perintah shell.

Lil o
sumber
1

Saya hanya menggunakan grep . Jika saya ingin tahu apa yang dilakukan -sopsi readperintah, saya akan mencoba perintah ini sampai saya mendapat jawaban:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

Dalam hal ini hanya infoperintah yang memberikan jawaban yang jelas. Jawaban yang luar biasa ini memberikan perincian tentang berbagai sistem bantuan.

Cees Timmerman
sumber
1

man -a printfhanya default ke man 1pada mesin Linux Mint saya. whatis printfmemberi saya informasi terkait.

stu
sumber
1

Untuk mencari efisien untuk beralih karakter tunggal, misalnya -u , Anda dapat sering menggunakan:

/^ *-u($|\s)

Menghemat banyak waktu jika banyak opsi memiliki '-u' sebagai awalan.

matt
sumber
Juga, regex ini akan berguna: /-u($|[,\s]) jika karakter opsi dibingkai dengan koma. Tetapi jika Anda ingin melihat semua entri dari karakter pilihan 'u' (seperti -u]di [--udp|-u]dari netstatmanual) Anda akan membutuhkan sesuatu seperti ini: /-u($|[^a-z]) Dan jika viatau vimdigunakan sebagai pager: /-u\($\|[^a-z]\)
Kenichi
0

Perintah apropos (1) digunakan untuk mencari halaman manual. Namun, sebagian besar implementasi apropos (1) hanya mencari di bagian NAME, yang sangat membatasi.

NetBSD memiliki implementasi pencarian teks lengkap dari apropos (1), yang mampu mencari konten halaman manual yang lengkap. Ada juga antarmuka berbasis web untuk itu: man-k.org , yang dapat Anda coba.

Abhinav Upadhyay
sumber
0

masukkan deskripsi gambar di siniJika Anda merasa sulit untuk membaca manual karena semua teks berwarna putih, Anda dapat mewarnai mereka. Sebagian besar halaman buku dibuka bersama less. Karena less, saya menggunakan pengaturan warna berikut .bashrcdari sini :

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 "$@"
}

Ini untuk bash dan zsh. Untuk most,fish , xtermdan rxvtmelihat link di atas.

Untuk bacaan lebih lanjut:

vikramreddym
sumber
0

Dan bagi orang-orang yang suka membaca halaman info dan man di layar sentuh, Anda dapat mengirim info ke yad atau zenity dan memanfaatkan semua barang gtk3 seperti scroll jari asli. Juga berfungsi baik dengan layar dan mouse refular:

man cat |yad --text-info 

Anda juga dapat menggunakan zenity atau menambahkan opsi yad seperti:

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

Kiat: dengan menunjukkan uri yoh dapat mengklik tautan web di dalam halaman manual dengan mouse / jari.

George Vasiliou
sumber