Halaman manual untuk fork
, misalnya, ada di bagian Panggilan Sistem yang memiliki nomor 2:
man 2 fork
Bagaimana Anda melihat apa lagi bagian 2 tanpa beralih ke Google?
Halaman manual untuk fork
, misalnya, ada di bagian Panggilan Sistem yang memiliki nomor 2:
man 2 fork
Bagaimana Anda melihat apa lagi bagian 2 tanpa beralih ke Google?
Jawaban:
Perintah ini mencantumkan nama yang diurutkan dari semua entri di bagian yang diberikan:
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u
Jika Anda ingin melihat nama path, gunakan:
man -aWS 1 \* | sed 's/\.[^.]*$//' | sort
Ini memberitahu Anda man
untuk mencari bagian untuk semua perintah menggunakan pola wildcard *
(tanda kutip garis miring terbalik sehingga shell tidak menafsirkannya). -a
menemukan semua kecocokan, -W
mencetak nama path alih-alih menampilkan halaman, dan -S 1
menentukan bagian satu. Ubah bagian 1
apa pun yang ingin Anda cari.
The sed
perintah strip ekstensi nama file; hapus jika Anda ingin melihat nama file lengkap. sort
mengurutkan hasil ( -u
menghapus duplikat).
Untuk penggunaan ulang yang nyaman, ini mendefinisikan fungsi Bash shell:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }
Misalnya, Anda dapat memintanya mansect 3
untuk melihat entri di bagian tiga.
[Diuji pada macOS.]
uniq
dalam pipa tidak diperbaiki.
sort -u
untuk menghapus duplikat.
Untuk membuat daftar semua halaman manual yang terinstal dari bagian tertentu Anda dapat menggunakan apropos :
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
man -a -s 2 '*'
Halaman manual biasanya ditempatkan di /usr/share/man
, tetapi periksa $MANPATH
, dan disusun menjadi beberapa bagian seperti:
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
Jadi untuk membuat daftar semua halaman 2 bagian yang diinstal, lakukan:
ls /usr/share/man/man2/
Atau yang lebih lengkap:
find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'
Yang terakhir akan memiliki masalah jika Anda memiliki direktori $MANPATH
dengan ruang dalam nama mereka.
Pada sebagian besar distribusi, Anda juga dapat memeriksa halaman manual yang tersedia dengan alat paket, misalnya pada distribusi turunan Debian yang dapat Anda gunakan apt-file
seperti:
apt-file search /man2/
lman 2
dan mencantumkan nama tanpa hiasan untuk setiap halaman pada baris baru dan halaman mereka. Tubuh fungsinya adalah:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
Saya tahu ini adalah pertanyaan yang sangat lama, namun jawaban yang diberikan di sini tidak bekerja untuk saya. Oleh karena itu saya datang dengan satu-liner berikut yang bekerja di Ubuntu 18.04 dan macOS Mojave, 10.14.6:
find $(man --path | tr ':' ' ') -type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//' | sort
Lari cepat ke bawah:
$(man --path | tr ':' ' ')
untuk mendapatkan jalur saat ini dari halaman manualfind <man paths> -type f -path '*man2*' -exec basename {} \;
mendapatkan nama file dari semua file biasa di path mansed
menghilangkan ekstensi filesort
menurut abjad.