Bagaimana cara mengikuti tautan di halaman manual linux?

92

Apakah ada cara untuk mengikuti tautan yang disebutkan di halaman manual? Misalnya, inilah halaman manual untuk ps; bagaimana cara mengakses tautan yang ditandai dengan warna merah?

Cuplikan layar dari halaman manual ps

ini aku
sumber
1
Juga, saya melihat bahwa man is an interface to the on-line reference manualsyang (jika saya tidak salah) berarti harus menarik semua info dari beberapa halaman web di internet, kan? Jadi, ada yang tahu apa itu tautan http: //?
its_me
10
Di sini "on-line" berarti "di komputer" (berlawanan dengan "di atas kertas"), bukan "di Internet".
Gilles
1
"On-Line": Anda mungkin ingat game-game Quest "Petualangan" untuk PC yang dikeluarkan oleh perusahaan (saat itu) bernama Sierra On-Line. halaman manual: Cara terbaik untuk menelusuri halaman manual adalah dengan menggunakan editor Anda. Dengan begitu, menavigasi, mencari (dll.) Teks akan sangat lancar karena setiap pintasan ada di memori otot Anda sejak lama. Juga, katakan Anda bekerja pada proyek pemrograman - Anda dapat menyalin dari halaman manual ke dalam kode Anda. Tidak kurang dari interaksi yang mulus. Lihat ini dan komentar saya untuk jawaban @Gilles .
Emanuel Berg

Jawaban:

52

Halaman manual berasal dari Unix First Edition . Sementara hiperteks telah ditemukan, masih dalam masa bayi; web adalah dua dekade lagi, dan manual adalah buku cetak yang sebenarnya, sering dengan satu perintah per halaman jika mereka cocok (itu sebabnya mereka disebut halaman).

Format yang digunakan untuk halaman buku panduan telah berevolusi sejak itu, tetapi sebagian besar halaman tidak benar-benar dirancang untuk hypertext, dan manprogram default tidak mendukungnya (itu hanya penampil teks biasa, dengan peretasan untuk mendukung beberapa format dasar). Namun ada program melihat halaman manual yang merekonstruksi beberapa hyperlink, terutama tautan ke halaman manual lain, yang secara tradisional ditulis dalam bentuk di man(1)mana mannama halaman manual dan 1adalah nomor bagian :

  • tkman , penampil halaman manual GUI dengan hyperlink
  • WoMan ( wiki , man comparsion , sebelumnya ), browser halaman manual untuk Emacs, mendukung hyperlink
  • man2html , konverter pria ke HTML (plus peramban web untuk membaca hasilnya)

Anda dapat menelusuri halaman manual dari beberapa sistem operasi, yang dikonversi ke HTML oleh man2htmlatau alat serupa, di sejumlah situs online, misalnya:

Beberapa waktu setelah halaman manual menjadi format dokumentasi yang sudah mapan pada unix dan beberapa saat sebelum web ditemukan, proyek GNU memperkenalkan format dokumentasi info , lebih maju daripada manusia sambil tetap menggunakan markup sederhana yang dirancang untuk terminal teks. Inovasi utama info dibandingkan dengan manusia adalah memiliki dokumentasi multi-halaman dengan hyperlink ke halaman lain. Info masih merupakan format dokumentasi yang disukai untuk proyek-proyek GNU, meskipun sebagian besar halaman Info dihasilkan dari sumber Texinfo (atau terkadang format lain) yang juga dapat menghasilkan HTML. Ketika dokumentasi info untuk suatu program ada, seringkali itu adalah manual utama, sementara halaman manual hanya berisi informasi dasar tentang argumen baris perintah.

Gilles
sumber
5
Jawaban bagus! Juga patut disebutkan adalah bahwa ada mode lain untuk halaman manual di Emacs, yang (paling tidak saya) dapatkan dengan adil M-x man(dan C-h v mode-namesedang Man): setidaknya dalam satu aspek, ini lebih unggul daripada WoMankarena menampilkan tabel ( tangkapan layar ). Tentu saja, itu juga hyperlink.
Emanuel Berg
1
Antarmuka pengguna program info terasa salah dan kontra-intuitif. Saya belum pernah melihat orang menggunakan itu.
Pavel Šimerda
@ PavelŠimerda> Antarmuka pengguna program info terasa salah dan kontra-intuitif. <Emm, dibandingkan dengan apa? Untuk kurang (1) (yang merupakan pager default untuk man (1) di GNU) - hal itu, di mana Anda harus mengingat cara menggulir kembali , karena <backspace> tidak terikat (dan <pgup> mungkin tidak berfungsi sama sekali) ? Kunci utamanya adalah b, dengan cara itu. Untuk pengguna paradigma antarmuka mana ini mungkin intuitif?
Dmitry Alexandrov
@ PavelŠimerda> Saya belum pernah melihat orang menggunakan itu. <Selalu gunakan info (1) untuk membaca halaman manual ketika dikunci di terminal teks untuk alasan yang tepat, yang tidak seperti kurang (1) itu memang mengubah page(N)tautan bodoh menjadi hyperlink. Cukup terkejut bahwa tidak disebutkan dalam jawaban Gilles dalam kualitas itu.
Dmitry Alexandrov
37

Pertama-tama, ini bukan tautan. Itu hanya garis bawah. Halaman manual hanyalah dokumen teks dengan sedikit format sederhana yang dapat ditangani terminal. Garis bawahnya hanyalah highlight, tidak ada "tautan" yang terlibat.

manPerintah normal hanyalah formatter teks. Bahkan manperintah tersebut bahkan tidak menampilkan teks, mancukup memformat informasi yang disimpan dalam file halaman manual [1] dan mengirimkan output yang diformat ke program lain (biasanya less) yang menampilkan output yang diformat ke layar. Program tampilan ini tidak memiliki konsep tautan.

Ada beberapa pembaca dokumentasi khusus yang mungkin dapat melihat pemformatan seperti itu dan membuat tebakan yang berpendidikan bahwa sorotan semacam itu mungkin menunjukkan bahwa ada halaman manual terkait yang dapat ditarik dan dibuat tautan, tetapi saya tidak tahu yang mana yang bisa. Mungkin pinfo?

Jika Anda ingin pemformatan seperti web dengan hyperlink, Anda dapat menemukan hampir semua halaman manual UNIX online dengan tautan yang ditambahkan. Coba ketikkan di man [anything]google dan Anda hampir pasti akan mendapatkannya di hit pasangan pertama.

Dalam contoh Anda, penyorotan visual adalah petunjuk bahwa itu adalah nama program lain yang memiliki halaman manualnya sendiri yang dapat Anda tarik dengan mudah. Coba man 1 top. Angka 1 menunjukkan bagian dari halaman manual untuk dilihat. Lihat pertanyaan ini untuk penjelasan bagian: Apa arti angka-angka di halaman manual?


[1] Jika Anda membuka manfile halaman dalam editor teks, Anda akan melihat manhalaman mentah yang tidak diformat agar mudah dibaca. manHalaman mentah ditulis dalam bahasa markup yang disebut troff. Untuk informasi lebih lanjut tentang troffdan cara menulis manhalaman, lihat: https://liw.fi/manpages/ .

Caleb
sumber
Tahu kenapa itu man 1 top?? Maksud saya itu harus seperti ps 1 topkarena saya menemukan tautan di halaman manual untuk ps. "Pria 1 top" tidak masuk akal bagi saya. Mohon klarifikasi.
its_me
Ada juga beberapa sumber daya yang membuat halaman manual tersedia di internet, dengan referensi diganti oleh href, yang dapat diklik.
gabe.
1
Jika Anda ingin mengikuti top(1)"tautan", Anda perlu membuka tophalaman manual dari bagian 1. Untuk informasi lebih lanjut tentang bagian lihat man (1). ps 1 toptidak masuk akal, karena Anda hanya akan menjalankan psperintah dengan beberapa params aneh.
rvs
2
@ Aahan itu man 1 top karena Anda ingin melihat halaman manual untuk perintah teratas di bagian 1 dari halaman manual online. Referensi atas (1) berarti hanya itu, teratas di bagian 1 dari halaman buku panduan. Untuk melihat itu, Anda mengetik "man 1 top" di prompt. Lihat "man man"
gabe.
1
@Aaran: Bagian "dari manual membahas berbagai topik. Bagian 1 adalah perintah pengguna (hal yang Anda ketikkan pada prompt) bagian 2 adalah panggilan sistem dan sebagainya. Beberapa string muncul di lebih dari satu bagian. Pada mesin saya aktif sekarang readlinkmuncul di bagian 1 dan bagian 2 dan printfdi bagian 1 dan 3. Jika Anda hanya mengetik man command, manusia mencoba bagian dalam urutan numerik dan menampilkan yang pertama kali ditemukan, atau Anda dapat menentukan dengan spesifik man # command, yang harus Anda lakukan untuk mendapatkan dokumentasi untuk readlinksystem call
dmckee
12

Ini adalah jawaban yang sangat terlambat tetapi gunakan w3mman. w3mman adalah pager manual sistem oleh w3m.

https://linux.die.net/man/1/w3mman

Anda dapat mencobanya dengan menginstal paket w3m. Saya percaya paket ini terdaftar dalam repositori perangkat lunak dari sebagian besar distribusi Linux / UNIX dan Cygwin.

akawaguc
sumber
1
Balasan terlambat yang menambahkan beberapa jawaban untuk pertanyaan yang belum disebutkan, tidak pernah menjadi masalah! Selamat datang di Unix & Linux StackExchange!
Bernhard
w3mmanjuga disediakan dengan w3minstalasi Macports default . Sangat bagus :) Terima kasih!
sampablokuper
8

Biarkan saya mencoba menafsirkan pertanyaan Anda sedikit lebih dalam arti di mana saya mencoba mengikuti alur kerja Anda. Apa yang Anda mungkin ingin miliki adalah kombinasi kunci dalam manhalaman yang mengarahkan Anda langsung ke perintah yang digarisbawahi yang sedang Anda baca. Jadi, tidak harus menginstal yang lain, juga tidak membuka konsol lain dan melupakan sintaks yang tepat misalnya.

Solusi paling sederhana ini adalah tanda seru (jika Anda menggunakan lessuntuk menampilkan halaman manual) dan Anda ingin pergi ke yang digarisbawahi top:

!man top

Atau

!man 1 top

Anda harus menutup semuanya dengan menekan qbeberapa kali. Perhatikan juga bahwa ini tidak akan berfungsi jika LESSSECURE=1ditetapkan sebagai variabel lingkungan yang akan dijalankan lessdalam mode aman dan tidak memungkinkan Anda untuk menggunakannya !. Ini akan memberi tahu Anda sesuatu seperti "Perintah tidak tersedia".

Anne van Rossum
sumber
1

Meskipun w3mman adalah solusi untuk mengikuti tautan, tidak menggunakan semua layar (setidaknya di ubuntu 12.10)

Saya lebih suka menggunakan:

$ sudo su -
# apt-get install w3m man2html
# exit
$ alias man=' hman -P w3m'

tambahkan perintah terakhir ke ~ / .bash_aliases atau skrip startup serupa untuk mendapatkannya di setiap sesi.

The -P w3m adalah browser pertama yang hman adalah lynx atau masuk akal-browser tapi aku lebih suka w3m

hman adalah alat yang dibundel pada html2man. Lihat ini

Jika keluar dengan konfirmasi mengganggu Anda, bagi saya gunakan ini

Albfan
sumber
Kesalahan saya, paket harus html2man
albfan
1

Khusus untuk Ubuntu, ada Yelp. Ini diinstal secara default dan secara default dapat menampilkan halaman manual, meskipun permintaan untuk melakukannya, tidak sama dengan manperintah; fungsi alias atau shell dapat bekerja di sekitar titik terakhir (tergantung pada shell Anda).

yelp 'man:exit'

Ini akan default ke bagian dengan cara saya tidak tahu. Pengingat: untuk mendapatkan daftar bagian untuk topik manual, gunakan whatis, seperti pada whatis exit.

Untuk meminta Yelp menampilkan halaman manual dari bagian tertentu, katakan 2, lakukan:

yelp 'man:exit(2)'

Masalah: yelp memiliki bug dan bersiaplah untuk mendapatkan beberapa kesalahan saat menjalankannya dari baris perintah. Selain itu, alias atau fungsi shell khusus dapat membantu mengalihkan semua kesalahan/dev/null

Hibou57
sumber
1

Seperti yang mereka katakan, itu tidak dirancang untuk itu.

Anda dapat menggunakan info mandan kemudian tekan enter setelah Anda berada di bagian LIHAT JUGA pada item Anda.

info - baca dokumen Info

binarytrails
sumber
1

Saya memiliki (beberapa) retasan.

retas 1

Letakkan ini di ~ / .bashrc atau ~ / .zshrc Anda

function man(){
    for arg in "$@"; do
        vim -c 'execute "normal! :let no_man_maps = 1\<cr>:runtime ftplugin/man.vim\<cr>:Man '"${arg}"'\<cr>:wincmd o\<cr>"'
    done
}

Tangkapan layar ..

tangkapan layar manual in vim

Asciinema ..

https://asciinema.org/a/130131

Sekarang..

  1. ketika Anda mengetik man vim, misalnya, itu akan membuka halaman manual ini dalam vim

    • jika Anda mengetik man man vim, misalnya, pertama akan membuka manmanual dan setelah Anda keluar dari vim, itu akan membuka vimmanual
  2. ketika Anda menekan K(itu modal k) ketika Anda berada di halaman manual lain di bagian bawah (bagian LIHAT JUGA ), Anda akan melompat ke manual ini (sayangnya di dalam pager kurang - ini karena kita miliki let no_man_maps = 1; jika Anda tidak lakukan itu, maka vim akan memaksa quntuk menjadi :qdan Anda tidak akan dapat merekam makro dengan mudah, dan vim akan berperilaku winkily dengan cara lain).

    • keluar dari manual kedua ini yang telah Anda masukkan akan membawa Anda kembali ke manual sebelumnya yang Anda lihat
  3. Anda mendapatkan sorotan sintaks yang sangat cantik karena Anda telah memuat ftplugin / man.vim dan ft (otomatis) diatur ke man.

  4. Anda dapat menyalin dan menempel, bernavigasi dengan bebas di vim, dan bahkan memodifikasi buffer dan :w ~/usefulfile. Anda dapat melakukan semua yang biasa Anda lakukan di vim, termasuk merekam makro, menarik ke clipboard dengan "+y(jika Anda punya +clipboard), dll, dll.

Saya merasa jauh lebih baik daripada kurang .

Satu-satunya kekurangan kecil yang saya temukan (yang masih ada jika Anda menggunakan lebih sedikit sebagai pager Anda) adalah jika Anda ingin memiliki banyak manual terbuka dalam satu sesi vim. Saya tidak benar-benar melihat cara untuk melakukan ini.

Beberapa catatan:

  1. jika Anda mencoba menyimpan buffer, Anda akan mendapatkannya E382: Cannot write, 'buftype' option is set

    • Saya suka bahwa Anda tidak dapat menyimpan karena mencegah sengaja menyimpannya
  2. Anda masih bisa menyimpan like :w /tmp/man.man

    • jika Anda menyimpannya dengan .manekstensi, maka membukanya akan mengatur jenis file manuntuk Anda
    • jika Anda tidak menyimpannya dengan .manekstensi, Anda bisa mengatur ft ke mandengan menjalankan:set ft=man
  3. jika Anda perlu melakukan hal-hal saat membuka halaman manual yang dapat Anda gunakan autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!', misalnya.

  4. Saya telah memasukkan yang berikut ini di vimrc saya sehingga saya bisa menekan Kuntuk mencoba membuka manual, dan kemudian tekan Guntuk kembali ke manual sebelumnya:


augroup man
    autocmd!
    autocmd VimEnter *.~ nnoremap B :execute "normal! `Z"<cr>
    autocmd VimEnter *.~ nnoremap <buffer> K :execute "normal! mZyiw:Man \<lt>c-r>\"\<lt>cr>"<cr>
augroup END

retas 2

letakkan ini di ~ / .bashrc atau ~ / .zshrc Anda

function man(){
    declare -a args
    for arg in "$@"; do
        command man "$arg" > "/tmp/${arg}.man"
        args+=("/tmp/${arg}.man")
    done
    vim "${args[@]}"
}

Tangkapan layar ..

beberapa manual dalam vim

Asciinema ..

https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv

Ini menyelesaikan masalah yang meretas wajah 1 dan lebih sedikit (sekarang Anda dapat melihat banyak manual dalam satu buffer), tetapi ini kurang elegan.

Catatan:

  1. PENTING jika Anda ingin hack2 bekerja, maka Anda harus menempatkan :let no_man_maps = 1di Anda ~/.vimrc. Ini karena vim akan sumber .../vim80/man.vimdan qakan dipetakan secara paksa ke :q.

  2. ada lebih banyak pembersihan yang terlibat (sekarang Anda menyimpan setiap manual ke /tmp/*.man )

  3. Anda sekarang dapat, tetapi, melihat beberapa halaman manual dalam satu sesi, seperti yang disebutkan di atas

  4. jika Anda menekan K, Anda masih akan membuka sesi vim baru

    • jika mau, Anda dapat mengikat autocmd (menggunakan autocmd seperti yang di atas) untuk melakukan sesuatu seperti autocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<c-r>\" > /tmp/\<c-r>\".man\<cr>:edit /tmp/\<c-r>\".man\<cr>"atau sesuatu yang gila seperti itu ( belum diuji )
Dylan
sumber
permintaan maaf untuk asciinema berwarna buruk. Warnanya terlihat jauh lebih bagus di terminal saya.
Dylan
0

Saya dapat menggunakan --htmlargumen untuk manmembukanya di browser yang ditentukan oleh variabel lingkungan $ BROWSER, jadi:

BROWSER=google-chrome man ps --help

Saya menggunakan Fedora. Tidak yakin apakah ini berfungsi untuk distro Anda, silakan uji dan laporkan dalam komentar.

tutuDajuju
sumber
Opsi ini sepertinya dikenali di Ubuntu 12.04, tetapi gagal.
Hibou57
Oke, paket groffperlu diinstal. The groffperintah mungkin ada sedangkan paket dengan nama yang sama tidak (perintah datang dengan groff-base, tidak penuh groffpaket). Ya man --html="surf file%c//%s" <command>, dan tidak apa-apa. Ada hiperteks yang sangat sangat terbatas: - /.
Hibou57