Saya akhirnya bosan ketika ingin membaca tentang pesta 's read
dan itu -s
pilihan dengan man bash
. Saya akhirnya menemukan tempat yang tepat (sekitar baris 4500), tetapi itu membuat frustrasi seperti biasa, karena keduanya /read
dan bahkan /\s-s\s
pencarian memiliki terlalu banyak kecocokan.
Jadi, pertanyaannya adalah: Bagaimana saya bisa membaca halaman manual yang panjang secara efisien, atau mendapatkan informasi yang sama dengan cara lain, secara lokal ? Sebagai contoh spesifik, bagaimana mencapai dokumentasi yang relevan setelah melihat read -s pwd
dalam skrip shell? Jawaban yang bagus bisa berupa potongan skrip shell, atau petunjuk tentang beberapa alat dan bagaimana alat itu digunakan, atau sesuatu yang lain sama sekali, asalkan itu membantu dalam menemukan tempat yang tepat untuk dibaca.
Catatan: Saya tidak memberi tag dengan bash karena saya ingin pertanyaannya adalah tentang membaca halaman manual secara umum, meskipun itu sangat mungkin adalah halaman manual humongous yang paling sering ditemui.
man
halaman yang panjang saya menggunakan skrip kecil saya meninggalkan di panel atas saya. yuugian.com/demo/gkman.txt Bagikan dan nikmatibash
dirinya sendiri: sama seperti Anda, saya juga sebagian besar membutuhkanSHELL BUILTINS
bagian dari manual, yaitu sekitar 3500 baris . Jadi mengetahui ini, waktu berikutnya saya hanya akan mengatakanman bash
dan kemudian turun 66 persen, dengan mengetik66%
, lalu beberapa kali PgDn dan saya di sana. Walaupun saya memilih 66 karena dapat dihafal sebagai "Rute 66" , sebenarnya sedikit lebih dari itu, meskipun tidak begitu mudah untuk menghafal kecuali itu adalah awal dari ponsel Anda #, dll. :) Setidaknya "Rute 66" "bersifat universal dan dikenal di seluruh dunia.Jawaban:
Untuk mendapatkan bantuan cepat pada Bash bawaan, gunakan
help
:adalah apa yang kamu inginkan.
Untuk pemformatan seperti halaman manual, gunakan
atau, bahkan lebih baik,
Jika Anda masih bersikeras mencarinya di halaman manual, saya menemukan apa yang dengan cepat membawa saya ke penjelasan perintah
Ini berfungsi karena ketika suatu perintah pertama kali dijelaskan, namanya sedikit indentasi dari awal baris. Dalam kasus tertentu
read
, ini memerlukan sedikit penelusuran sebelum Anda sampai keread
dokumentasi yang sebenarnya karena (karena alasan yang jelas) kata "baca" banyak diulang di seluruh halaman manual. The [[] berarti untuk mencocokkan [yang biasanya mendahului parameter opsional. (Saya biasanya meninggalkan / ^ \ s * dan cukup melakukan / <perintah bawaan> [[])Alternatif lain
Jika Anda tidak keberatan perubahan format, Anda dapat mengonversi halaman manual Anda menjadi file DVI atau PDF:
atau
Tentu saja, mengingat dokumen DVI atau PDF, Anda kemudian dapat melakukan pencarian teks dengan mudah.
sumber
help
hebat, saya bertanya-tanya bagaimana saya belum pernah mendengarnya ...ps2pdf
tidak berguna karena tidak dapat (tampaknya) membuat indeks dalam bentuk apa pun.Pendekatan 1
man bash
lalu/read \[
kemudian/-s
Pendekatan 2
Anda dapat mencoba alat sumber terbuka untuk menjelaskan argumen baris perintah yang disebut menjelaskan .
Ini dapat digunakan secara lokal. Baca dokumentasi di https://github.com/idank/explainshell
Peringatan: Biasanya berfungsi, tetapi hanya dengan perintah yang ditemukan di repositori manpage Ubuntu
Dalam kasus Anda, itu tidak dapat mengenali
-s
saklarread -s pwd
.Pendekatan 3
Saya telah menemukan alat lain yang tampaknya menjanjikan tetapi tidak berfungsi pada sistem saya.
jelaskan: Dokumentasi Pendek untuk Perintah Unix
sumber
/-s\b
untuk menghindari hit like--some-other-command
(sambil tetap menemukan string seperti-s,
, yang tidak akan Anda dapatkan jika Anda mencari/-s
dengan spasi).Apa yang biasanya saya lakukan dalam hal ini adalah jalankan saja
man
, cariSHELL BUILTIN COMMANDS
heading, lalu cari builtin, yaituNamun, dalam bash Anda bisa melakukannya
atau, tergantung pada sistem, salah satu dari
Secara umum, saya memiliki skrip yang disebut
he
("bantuan singkat") untuk melakukan ini. Anda akan menjalankannya seperti ini:sumber
desc
menjadihe
. github.com/mikelward/scripts/blob/master/heTidak ada cara umum untuk menemukan informasi di halaman manual, tidak ada cara umum untuk menemukan informasi dalam buku. Itu tergantung pada apa yang Anda cari.
Saat Anda mencari informasi tentang shell builtin, Anda dapat mencari builtin di awal baris, menyimpan lekukan, dan diikuti oleh spasi: search
^ *read␣
(mis. Type/^ *read␣
Enter) (␣
adalah spasi). Ini bekerja dengan tanda hubung, pdksh, mksh dan bash. Halaman manual Zsh terpecah sehingga Anda perlu membacazshbuiltins
halaman manual. Ksh93 memiliki simbol khusus sebelum nama beberapa bawaan, Anda perlu mencari^ *†*␣
di UTF-8 atau^ *-*␣
di ASCII. Ada beberapa positif palsu tetapi ini akan membuat Anda cepat ke jalur yang benar. Mencari^ *read($| [-[])
mengurangi jumlah positif palsu.Anda dapat mempercepat pencarian dengan memberi tahu pager Anda ke mana Anda ingin pergi. Misalnya
PAGER='less "+/^ *read \["' man bash
membuka halaman bash man pada deskripsiread
builtin. Anda dapat membuat ini fungsi:sumber
mksh
manual,/ read
(dua spasi, nama perintah, satu spasi) biasanya menemukan tempat yang tepat (ini adalah trik yang saya gunakan sendiri, dan cepat untuk mengetik). Terima kasih telah menanyakannya; Saya akan menempatkan membuat (agak) referensi terpisah untuk semua utilitas yang disertakan dengan mksh di TODO saya./ read
cenderung memiliki banyak false positive ketika implementasi man Anda membenarkan teks.Untuk melompat langsung ke bagian SHELL BUILTINS COMMANDS di halaman bash man, saya mendefinisikan alias berikut di
$HOME/.bash_aliases
file saya .sumber
Hanya untuk menawarkan alternatif lain, jika Anda lebih suka menggunakan browser web yang memungkinkan Anda untuk dengan mudah mencari melalui halaman saat ini, Anda dapat menggunakan sesuatu seperti man.cgi yang digunakan di freeBSD.org yang juga memungkinkan Anda melihat halaman manual dari berbagai sistem untuk melihat bagaimana mereka berbeda. Saya telah melihat yang serupa di situs lain jadi saya berharap ada variasi lain di sekitar.
Tautan bantuan dalam apropos menawarkan beberapa info untuk mendapatkan salinan skrip untuk diletakkan di server Anda sendiri dengan tautan untuk mengunduh koleksi halaman manual.
sumber
Saya sempat membuat fungsi bash untuk tujuan itu. Cuplikan ini dapat misalnya ditempel di akhir
~/.bashrc
:Komentar menjelaskan sedikit tentang apa fungsinya. String pencarian default pada pencarian tertentu diberikan kata dari awal baris, melompati ruang awal. Contoh:
Catatan: Skrip ini tidak memiliki konsep bagian halaman manual ... Saya akan melihat apakah saya mengubah itu nanti, tetapi mengatur
MANSECT
variabel lingkungan dari man membantu.sumber
trap 'rm -f "$tmp"'
man "$1" | vim -R - "+/$2"
melakukan hal serupa?$2
, jadi tidak.trap
. Saya tidak menemukan cara yang bersih untuk melakukannya dalam suatu fungsi tanpa membuat subkulit.+/REGEX
Menyatukan potongan-potongan dari diskusi lain di sini di sini adalah fungsi cepat yang dapat Anda tinggalkan di Anda
.bashrc
yang akan membawa Anda langsung ke built-in (jika ada). Kalau tidak terbukaman
seperti biasa:sumber
Dari distro Linux apa pun Anda harus dapat menggunakan
info bash
jika Anda ingin memiliki paragraf terpisah berdasarkan jenis tindakan di mana informasinya identik dengan halaman manual.sumber