Perintah apropos Linux: mencari halaman manual berdasarkan kata kunci

apropos adalah perintah yang mencari kata kunci dalam nama dan deskripsi satu baris halaman manual ketika Anda tidak mengetahui nama perintah yang tepat. Misalnya, ini berguna untuk menemukan kandidat ketika Anda mengetahui tugas yang ingin dilakukan, seperti "kompresi file," "pembuatan pengguna," atau "alamat jaringan," tetapi tidak mengetahui perintah terkait.

man -k menyediakan fungsi pencarian yang sama. Karena istilah pencarian default dapat diproses sebagai ekspresi reguler, memahami hubungan di antara beberapa kata, pencarian kecocokan persis, wildcard, dan aturan pengutipan shell dapat menghasilkan hasil yang lebih akurat.

Apa itu perintah apropos?

Setiap halaman manual memiliki deskripsi singkat yang merangkum nama dan fungsinya. apropos mencari nama halaman dan deskripsi dalam basis data indeks man-db dan menampilkan entri yang cocok.

Ini bukan perintah untuk mencari seluruh konten manual. Oleh karena itu, hasilnya cepat dan baik untuk menemukan kandidat topik tertentu, tetapi halaman yang tidak mengandung kata kunci dalam deskripsinya mungkin tidak muncul meskipun isi halaman memiliki konten terkait.

Sintaks dasar dan membaca hasil

Tanda kurung siku dan elipsis berikut adalah notasi, bukan teks yang harus diketik.

apropos [option] keyword...

Berikut adalah contoh menemukan manual terkait dengan penyalinan file.

apropos copy

Contoh berikut menggambarkan bentuk hasil berbahasa Inggris; entri dan deskripsi aktual bergantung pada dokumentasi yang terpasang.

cp (1)               - copy files and directories
scp (1)              - OpenSSH secure file copy

Kolom pertama adalah nama halaman manual, angka dalam tanda kurung adalah bagian, dan deskripsi setelah tanda hubung adalah penjelasan satu baris. Setelah Anda menemukan item yang diinginkan, tentukan bagian untuk membuka halaman yang tepat.

man 1 cp
man 1 scp

Berbagai metode pencarian kata kunci

Default adalah menampilkan jika setidaknya satu cocok

Saat menentukan beberapa kata kunci, secara default, item yang cocok dengan salah satunya dapat ditampilkan. Jangkauan pencarian bisa menjadi luas, sehingga menghasilkan terlalu banyak hasil.

apropos network address

Gunakan -a jika semua kata kunci diperlukan

-a atau --and hanya menampilkan item yang cocok dengan semua kata kunci yang ditentukan. Ini berguna untuk mengurangi hasil yang tidak relevan.

apropos -a network address
apropos --and user password

Anda dapat menggunakan tanda kutip untuk mengelompokkan beberapa kata menjadi satu ekspresi pencarian, tetapi ingat bahwa pencarian default adalah ekspresi reguler.

Ekspresi reguler, pencarian tepat, dan wildcard

Pencarian Ekspresi Reguler Dasar

apropos dari man-db memperlakukan kata kunci sebagai ekspresi reguler secara default. Karakter seperti titik, kurung, dan asterisk dapat memiliki makna khusus, jadi untuk mencarinya secara literal, Anda perlu melakukan escape atau menggunakan mode pencarian lain.

apropos '^ssh'
apropos 'file.*system'

Contoh pertama mencari nama atau deskripsi yang dimulai dengan ssh. Contoh kedua mencari file yang diikuti oleh nol atau lebih karakter dan kemudian system.

Pencocokan Tepat -e

-e atau --exact mencocokkan kata kunci secara tepat dengan nama halaman atau deskripsi. Jika Anda sudah mengetahui nama halaman yang tepat, whatis mungkin lebih sederhana.

apropos -e printf

Wildcard Gaya Shell -w

-w atau --wildcard memperlakukan kata kunci sebagai pola wildcard gaya shell. Beri tanda kutip pada pola agar shell saat ini tidak memperluas tanda bintang menjadi nama file terlebih dahulu.

apropos -w 'ssh*'
apropos --wildcard '*password*'

Batasi Cakupan Pencarian ke Bagian

Menggunakan -s atau --sections untuk membatasi bagian manual dapat mengurangi hasil dengan nama yang sama dari dokumen lain atau entri yang tidak terkait.

apropos -s 1 archive
apropos -s 2,3 socket
apropos --sections=5 password
Bagian Konten utama
1 Perintah dan program yang dijalankan oleh pengguna umum
2 Panggilan sistem yang disediakan oleh kernel Linux
3 Fungsi pustaka program
5 File konfigurasi dan format file
8 Perintah manajemen sistem yang terutama digunakan oleh administrator

Daftar bagian dapat dipisahkan dengan koma atau titik dua. Tergantung pada implementasi dan dokumentasi yang diinstal, mungkin terdapat subbagian seperti 3p atau 3perl.

Opsi apropos yang umum digunakan

Opsi Deskripsi
-a, --and Hanya mencetak item yang cocok dengan semua kata kunci.
-e, --exact Mencocokkan kata kunci secara tepat dengan nama halaman atau deskripsi.
-r, --regex Menganggap kata kunci sebagai ekspresi reguler. Ini adalah metode pencarian default di man-db.
-w, --wildcard Mencari dengan pola wildcard gaya shell.
-s list, --sections=list Hanya mencari di bagian manual yang ditentukan.
-l, --long Menonaktifkan pemotongan deskripsi agar sesuai dengan lebar terminal.
-M path, --manpath=path Tentukan jalur hierarki manual untuk mencari secara langsung.
-L locale, --locale=locale Sementara waktu tentukan locale yang akan digunakan untuk pencarian.

Apa hubungan antara apropos dan man -k?

Dalam lingkungan man-db, man -k adalah antarmuka yang menggunakan opsi pencarian apropos. Dua perintah berikut dapat digunakan untuk tujuan yang sama.

apropos filesystem
man -k filesystem

Anda dapat memilih sesuai dengan kebiasaan penggunaan Anda. Jika Anda ingin menekankan bahwa ini adalah proses menemukan manual, man -k cocok; jika Anda ingin mengingatnya sebagai perintah pencarian independen, apropos lebih intuitif.

Hal-hal yang perlu diperiksa ketika tidak ada hasil pencarian yang muncul

Ubah ke kata kunci yang lebih umum

Gunakan kata-kata bahasa Inggris yang kemungkinan besar benar-benar termasuk dalam deskripsi. Jika manual terjemahan tidak terpasang, hasil mungkin tidak muncul untuk istilah pencarian yang dilokalkan.

apropos compress
apropos archive
apropos -a user account

Memperbarui Database Indeks

Segera setelah menginstal manual baru atau jika indeks rusak, hasil dari apropos mungkin kosong. Dalam lingkungan man-db, Anda dapat memperbarui indeks dengan hak admin.

sudo mandb

Perintah ini mengubah indeks sistem dan mungkin memerlukan waktu; jalankan jika memang diperlukan. mandb membuat atau memperbarui cache indeks halaman manual. Karena sistem dapat memperbaruinya secara otomatis selama pemasangan paket atau tugas berkala, tidak perlu menjalankannya berulang kali tanpa alasan.

Memeriksa Jalur Manual dan Lokal

manpath
printf '%s\n' "$MANPATH"
locale

Jika Anda telah mengatur MANPATH secara manual atau menginstal dokumen di jalur khusus, hierarki manual default mungkin dilewati dalam pencarian. Opsi -M dapat digunakan untuk sementara menentukan jalur berbeda saat mendiagnosis masalah.

Saat Digunakan dalam Skrip Shell

Di man-db, apropos mengembalikan status 0 jika berhasil, 1 untuk kesalahan penggunaan atau konfigurasi, 2 untuk kesalahan operasional, dan 16 jika tidak ada hasil. Simpan contoh berikut sebagai cek-apropos.sh, lalu jalankan dengan bash cek-apropos.sh printf; $1 menerima nama yang dicari. Contoh melaporkan status ketika tidak berhasil; untuk mengembalikannya ke pemanggil, tambahkan exit "$status" pada cabang else.

if apropos -e "$1" >/dev/null; then
 printf '%s\n' 'Entri manual yang cocok ditemukan.'
else
 status=$?
 printf 'Pencarian gagal atau tidak ada hasil: status=%d\n' "$status" >&2
fi

Nilai status keluar dapat bervariasi pada implementasi lain. Sebelum menggunakannya untuk otomatisasi, periksa man apropos pada sistem Anda saat ini.

Perbandingan Perintah yang Mirip dengan apropos

Perintah Tujuan
apropos keyword Mencari topik atau kata kunci dalam nama halaman dan deskripsi satu baris.
whatis name Memeriksa deskripsi satu baris dari nama halaman manual yang tepat.
man name Membaca isi lengkap dari halaman manual yang dipilih.
man -K string Mencari seluruh teks manual yang terpasang untuk sebuah string. Ini mungkin memakan waktu lama.

Pertanyaan yang Sering Diajukan

Bisakah saya mencari dengan kata kunci yang dilokalkan?

Ya, jika deskripsi manual yang dilokalkan telah dipasang dan dipilih oleh lokal saat ini. Banyak sistem hanya menyertakan deskripsi dalam bahasa Inggris, jadi cobalah kata kunci bahasa Inggris ketika pencarian yang dilokalkan tidak menghasilkan hasil.

Bagaimana jika istilah pencarian memiliki spasi?

Untuk melewatkannya sebagai satu ekspresi, bungkus dengan tanda kutip. Jika Anda melewatkan beberapa kata kunci independen dan menggunakan -a, itu hanya akan menemukan entri di mana setiap kata cocok.

Haruskah saya menggunakan apropos alih-alih which?

Mereka memiliki tujuan yang berbeda. apropos menemukan manual yang relevan, dan command -v atau type memeriksa bagaimana nama perintah yang dimasukkan sebenarnya diinterpretasikan.

Ringkasan

apropos berguna ketika Anda ingin menemukan perintah atau dokumen berdasarkan kata kunci fungsionalitas tanpa mengetahui namanya. Anda dapat menemukan kandidat dengan pencarian dasar, memenuhi beberapa kondisi dengan -a, dan mempersempit bagian dengan -s untuk mengatur hasil secara efisien.

Setelah menemukan halaman yang Anda inginkan, buka dengan man bersama nomor bagiannya.

Rujuk ke dokumen resmi