it-swarm-id.com

Bagaimana cara mengikuti tautan di halaman manual linux?

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

Screenshot of the ps man page

101
its_me

Halaman manual dikembalikan ke nix First Edition . Sementara hypertext telah ditemukan, masih dalam masa pertumbuhan; 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 program man 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 man(1) di mana man adalah nama dari halaman manual dan 1 adalah nomor bagian :

Anda dapat menelusuri halaman manual dari beberapa sistem operasi, dikonversi ke HTML dengan man2html atau alat serupa, di sejumlah situs daring, misalnya:

Beberapa saat setelah halaman manual menjadi format dokumentasi yang sudah ada pada unix dan beberapa saat sebelum web ditemukan, GNU proyek memperkenalkan info format dokumentasi, 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 pilihan untuk GNU proyek, meskipun sebagian besar halaman Info dihasilkan dari Texinfo sumber (atau terkadang format lain) yang juga dapat menghasilkan HTML. dokumentasi info untuk suatu program ada, seringkali manual utama, sedangkan halaman manual hanya berisi informasi dasar tentang argumen baris perintah.

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

Perintah man normal hanyalah formatter teks. Bahkan perintah man bahkan tidak menampilkan teks, man hanya 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 man [anything] ke google dan Anda hampir pasti akan mendapatkan satu di hits 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 tentang bagian-bagian ini: Apa arti angka-angka dalam halaman manual?


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

39
Caleb

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.

13
akawaguc

Biarkan saya mencoba menafsirkan pertanyaan Anda sedikit lebih dalam arti di mana saya mencoba mengikuti alur kerja Anda. Apa yang mungkin ingin Anda miliki adalah kombinasi kunci dalam halaman man 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 less untuk menampilkan halaman manual) dan Anda ingin pergi ke top yang digarisbawahi:

!man top

Atau

!man 1 top

Anda harus menutup semuanya dengan menekan q beberapa kali. Perhatikan juga bahwa ini tidak akan berfungsi jika LESSSECURE=1 Ditetapkan sebagai variabel lingkungan yang akan menjalankan less dalam mode aman dan tidak memungkinkan Anda untuk menggunakan !. Ini akan memberi tahu Anda sesuatu seperti "Perintah tidak tersedia".

11
Anne van Rossum

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.

- P w3m adalah karena browser pertama ke hman adalah lynx atau sensible-browser tetapi saya lebih suka w3m

hman adalah alat yang dibundel pada html2man. Lihat ini

Jika keluar dengan konfirmasi mengganggu Anda, bagi saya gunakan ini

2
albfan

Seperti yang mereka katakan, itu tidak dirancang untuk itu.

Kamu bisa menggunakan info man lalu tekan enter setelah Anda berada di bawah LIHAT JUGA bagian pada item Anda.

info - baca dokumen Info

2
binarytrails

Khusus untuk Ubuntu, ada Yelp. Ini diinstal secara default dan secara default dapat menampilkan halaman manual, meskipun permintaan untuk melakukannya, tidak sama dengan perintah man; alias atau fungsi 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 ke /dev/null

2
Hibou57

Saya memiliki (beberapa) retasan.

retas 1

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

function man(){
    for arg in "[email protected]"; 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 ..

manual in vim screenshot

Asciinema ..

https://asciinema.org/a/130131

Sekarang..

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

    • jika Anda mengetik man man vim, misalnya, pertama akan membuka manual man dan setelah Anda keluar dari vim, ia akan membuka manual vim
  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 bagian dalam dari pager yang lebih sedikit - ini karena kami memiliki let no_man_maps = 1; jika Anda tidak melakukan itu, maka vim akan memaksa q untuk menjadi :q dan Anda tidak akan dapat merekam makro dengan mudah, dan vim mungkin 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) diset 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 biasanya Anda lakukan di vim, termasuk merekam makro, menarik ke clipboard dengan "+y (Jika Anda memiliki +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 beberapa 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 mendapatkan E382: Cannot write, 'buftype' option is set

    • Saya suka Anda tidak dapat menyimpan karena mencegahnya menyimpannya secara tidak sengaja
  2. anda masih dapat menyimpan seperti :w /tmp/man.man

    • jika Anda menyimpannya dengan ekstensi .man, maka membukanya akan menetapkan tipe file menjadi man untuk Anda
    • jika Anda tidak menyimpannya dengan ekstensi .man, Anda bisa mengatur ft ke man dengan menjalankan :set ft=man
  3. jika Anda perlu melakukan sesuatu saat membuka halaman manual, Anda dapat menggunakan 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 K untuk mencoba membuka manual, lalu tekan G untuk 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 "[email protected]"; do
        command man "$arg" > "/tmp/${arg}.man"
        args+=("/tmp/${arg}.man")
    done
    vim "${args[@]}"
}

Tangkapan layar ..

multiple manuals in vim

Asciinema ..

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

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

Catatan:

  1. [~ # ~] penting [~ # ~] jika Anda ingin hack2 agar berfungsi, maka Anda harus memasukkan :let no_man_maps = 1 di ~/.vimrc Anda. Ini karena vim akan mendapatkan .../vim80/man.vim Dan q akan dipetakan ulang 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 teruji )
2
Dylan

Saya bisa menggunakan --html argumen ke man untuk membukanya 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.

1
tutuDajuju