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 manuntuk mencari bagian untuk semua perintah menggunakan pola wildcard *(tanda kutip garis miring terbalik sehingga shell tidak menafsirkannya). -amenemukan semua kecocokan, -Wmencetak nama path alih-alih menampilkan halaman, dan -S 1menentukan bagian satu. Ubah bagian 1apa pun yang ingin Anda cari.
The sedperintah strip ekstensi nama file; hapus jika Anda ingin melihat nama file lengkap. sortmengurutkan hasil ( -umenghapus 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 3untuk melihat entri di bagian tiga.
Terima kasih banyak. Saya mendapatkan beberapa duplikat (misalnya jalur di /Applications/Xcode.app dan "Mempercepat" di bagian 7), tetapi tidak ada yang dimasukkan ke uniqdalam pipa tidak diperbaiki.
Terima kasih. Opsi -s tidak ada dalam apropos Mac OS X, yang mungkin berasal dari BSD.
xyz
@ f100 Ah ok, mungkin cobaman -a -s 2 '*'
Ulrich Dangel
Tampaknya lebih seperti itu, tetapi alih-alih mencantumkannya, itu sebenarnya meminta pengunjung untuk masing-masing secara bergantian. Saya telah meretas fungsi untuk melakukan listing yang saya posting di komentar lain. Kemungkinan memiliki masalah tetapi cukup bagi saya :)
xyz
20
Halaman manual biasanya ditempatkan di /usr/share/man, tetapi periksa $MANPATH, dan disusun menjadi beberapa bagian seperti:
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 $MANPATHdengan 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-fileseperti:
Terima kasih - Ini adalah awal yang saya butuhkan. Saya membuat fungsi shell yang dijalankan misalnya lman 2dan 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
xyz
1
Di Mac OS X, satu-satunya hal yang dapat saya lakukan adalah man -k . | grep -F '(3)', yang mencantumkan semuanya di bagian 3.
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:
form Thors answer: $(man --path | tr ':' ' ')untuk mendapatkan jalur saat ini dari halaman manual
find <man paths> -type f -path '*man2*' -exec basename {} \; mendapatkan nama file dari semua file biasa di path man
Jawaban:
Perintah ini mencantumkan nama yang diurutkan dari semua entri di bagian yang diberikan:
Jika Anda ingin melihat nama path, gunakan:
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 bagian1
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:
Misalnya, Anda dapat memintanya
mansect 3
untuk melihat entri di bagian tiga.[Diuji pada macOS.]
sumber
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 :
sumber
man -a -s 2 '*'
Halaman manual biasanya ditempatkan di
/usr/share/man
, tetapi periksa$MANPATH
, dan disusun menjadi beberapa bagian seperti:Jadi untuk membuat daftar semua halaman 2 bagian yang diinstal, lakukan:
Atau yang lebih lengkap:
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:sumber
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
Di Mac OS X, satu-satunya hal yang dapat saya lakukan adalah
man -k . | grep -F '(3)'
, yang mencantumkan semuanya di bagian 3.sumber
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:
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.sumber