Perintah whatis Linux: melihat deskripsi singkat halaman manual

whatis adalah perintah yang mencari nama halaman manual dan menampilkan deskripsi satu baris dari halaman tersebut. Ini berguna ketika Anda mengetahui nama perintah tetapi ingin memeriksa dengan cepat apa yang dilakukannya, atau melihat apakah nama yang sama ada di beberapa bagian manual.

Secara default, ia mencari nama halaman yang tepat, dan man -f juga dapat digunakan untuk tujuan yang sama. Jika Anda ingin mencari lebih luas berdasarkan subjek atau kata kunci dalam deskripsi, apropos lebih cocok daripada whatis.

Apa itu perintah whatis?

Bagian NAME dari halaman manual berisi nama halaman dan deskripsi singkat. whatis mencari database indeks man-db untuk halaman yang cocok dengan nama yang ditentukan dan menampilkan deskripsi ini dalam satu baris.

Karena tidak membuka manual lengkap, ini baik untuk memeriksa gambaran umum dari beberapa perintah dengan cepat. Namun, ini bukan alat untuk menunjukkan lokasi sebuah executable atau perintah mana yang sebenarnya dipilih oleh shell.

Sintaks dasar dan membaca output

Kurung siku dan elipsis adalah notasi; jangan ketik sebagai bagian dari perintah.

whatis [option] name...

Periksa deskripsi satu baris dari ls.

whatis ls

Contoh output berbahasa Inggris berikut menunjukkan strukturnya; hasil aktual bergantung pada manual dan locale yang terpasang.

ls (1)               - list directory contents

ls adalah nama halaman, (1) adalah bagian manual, dan teks setelah tanda hubung adalah deskripsi satu baris. Untuk melihat seluruh penggunaan, buka menggunakan nomor dan nama bagian hasil.

man 1 ls

Memeriksa Beberapa Nama Sekaligus

Jika Anda menentukan beberapa argumen, Anda dapat melihat hasil untuk setiap nama secara bersamaan.

whatis ls cp mv rm

Ini berguna saat membandingkan fungsi perintah dasar atau memeriksa manual yang terpasang di server. Bahkan jika beberapa nama tidak ada, hasil untuk nama lain mungkin ditampilkan, jadi dalam otomatisasi, Anda harus memeriksa baik status keluar akhir maupun hasil individu.

Saat Nama yang Sama Muncul di Beberapa Bagian

Jika nama halaman yang sama ada di beberapa bagian manual, whatis dapat menghasilkan beberapa baris. Contoh umum adalah passwd, yang dipisahkan menjadi perintah pengguna dan dokumen format file.

whatis passwd

Jika Anda melihat passwd(1) dan passwd(5) dalam hasil, buka masing-masing sebagai berikut.

man 1 passwd
man 5 passwd

Angka dalam tanda kurung bukan versi program tetapi bagian manual. Penggunaan perintah biasanya ditemukan di bagian 1 atau 8, dan format file konfigurasi terutama ditemukan di bagian 5.

Pencarian Ekspresi Reguler dan Karakter Pengganti

Ekspresi Reguler -r

-r atau --regex menafsirkan nama yang dimasukkan sebagai ekspresi reguler. Hasil dapat muncul meskipun hanya sebagian dari nama halaman yang cocok.

whatis -r '^ssh'
whatis --regex 'printf$'

Lebih aman untuk menyertakan karakter khusus dari ekspresi reguler dalam tanda kutip sehingga tidak ditafsirkan oleh shell terlebih dahulu.

Karakter Pengganti -w

-w atau --wildcard menemukan nama menggunakan pola wildcard gaya shell. Pola yang diperluas harus cocok dengan seluruh nama halaman.

whatis -w 'ssh*'
whatis --wildcard '*printf*'

Tanpa tanda kutip, * bisa diperluas ke nama file di direktori saat ini terlebih dahulu.

Membatasi Bagian Manual

Dengan -s atau --sections, Anda dapat mencari hanya bagian yang diinginkan.

whatis -s 1 passwd
whatis -s 5 passwd
whatis --sections=2,3 printf
Bagian Konten utama
1 Perintah Pengguna Umum dan Program yang Dapat Dijalankan
2 Panggilan Sistem
3 Fungsi pustaka
5 Berkas konfigurasi dan format berkas
8 Perintah Manajemen Sistem

Opsi whatis yang sering digunakan

Opsi Deskripsi
-r, --regex Memproses nama yang dimasukkan sebagai ekspresi reguler.
-w, --wildcard Mencari dengan pola wildcard gaya shell.
-s list, --sections=list Mencari hanya bagian manual yang ditentukan.
-l, --long Menonaktifkan perilaku memotong deskripsi agar sesuai dengan lebar terminal.
-M path, --manpath=path Menentukan jalur hierarki manual untuk mencari.
-L locale, --locale=locale Menentukan lokal yang digunakan dalam eksekusi tersebut.

Hubungan antara 'whatis' dan 'man -f'

Dalam lingkungan man-db, man -f mencari deskripsi singkat halaman dengan cara yang sama seperti whatis.

whatis printf
man -f printf

Anda dapat menggunakan format yang lebih mudah diingat. man -f mudah diingat sebagai fungsi yang berkaitan dengan man, dan whatis dengan jelas menunjukkan dalam namanya bahwa itu untuk memeriksa deskripsi satu baris.

Perbedaan antara whatis, apropos, dan type

Perintah Pertanyaan yang dijawab
whatis ls Apa yang dijelaskan oleh halaman manual dengan nama ini?
apropos copy Halaman manual mana yang terkait dengan topik ini?
type ls Bagaimana shell saat ini menafsirkan nama perintah ini?
command -v ls Dapatkah shell saat ini menemukan perintah ini dan dalam bentuk apa?

Memiliki hasil whatis tidak berarti bahwa sebuah file eksekusi dengan nama yang sama saat ini ada di PATH. Sebaliknya, meskipun ada file eksekusi, mungkin tidak ada hasil jika halaman manual tidak diinstal.

Pemecahan Masalah Ketika Tidak Ada Hasil Pencarian

Periksa Nama Halaman dan Status Instalasi

whatis pada dasarnya menemukan nama halaman yang tepat. Jika Anda memasukkan kata-kata dari topik atau deskripsi, gunakan apropos, dan periksa keberadaan sebuah executable dengan command -v.

apropos archive
command -v tar
whatis tar

Memperbarui Basis Data Indeks

Jika manual baru dipasang tetapi tidak ada hasil, indeks man-db mungkin belum diperbarui. Perintah berikut memerlukan hak administrator dan mengubah indeks sistem.

sudo mandb

Sistem juga dapat memperbaruinya secara otomatis selama instalasi paket atau tugas terjadwal. Dalam lingkungan tanpa hak administratif, pertama periksa jalur manual pengguna dan pengaturan distribusi.

Periksa Locale dan MANPATH

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

Dokumen yang diharapkan mungkin tidak ditemukan karena indeks untuk locale tertentu atau MANPATH yang ditentukan pengguna.

Menggunakan Hasil dalam Skrip

Simpan skrip Bash berikut sebagai cek-whatis.sh, lalu jalankan bash cek-whatis.sh ls. Pada man-db, status 16 berarti tidak ada kecocokan; status bukan nol lainnya menunjukkan masalah seperti kesalahan operasi atau perintah yang tidak tersedia. Skrip meneruskan status itu kepada pemanggil. Untuk memastikan program dapat dijalankan, gunakan command -v, karena halaman manual saja tidak membuktikannya.

if [ "$#" -ne 1 ]; then
  printf '%s\n' 'Masukkan satu nama halaman.' >&2
  exit 1
fi
if whatis -- "$1" >/dev/null; then
  printf '%s\n' 'Deskripsi manual ditemukan.'
else
  status=$?
  if [ "$status" -eq 16 ]; then
    printf '%s\n' 'Tidak ada deskripsi yang cocok.' >&2
  else
    printf 'Pencarian gagal: status=%d\n' "$status" >&2
  fi
  exit "$status"
fi

Pertanyaan yang Sering Diajukan

Apakah whatis menampilkan jalur sebenarnya dari sebuah perintah?

Tidak. Ini menampilkan nama dan deskripsi halaman manual. Periksa jalur eksekusi dan tipe perintah dengan type atau command -v.

Bagaimana saya bisa mencari menggunakan kata-kata yang termasuk dalam deskripsi?

Gunakan apropos keyword atau man -k keyword. whatis pada dasarnya cocok bila Anda sudah mengetahui nama halaman.

Mengapa nama yang sama tercetak pada beberapa baris?

Karena ada halaman dengan nama yang sama di bagian manual yang berbeda. Periksa nomor bagian dalam tanda kurung dan buka halaman yang diinginkan dengan man section name.

Ringkasan

whatis adalah alat untuk memeriksa peran nama halaman manual yang diketahui dalam satu baris. Ini membantu membedakan halaman dengan nama yang sama di bagian yang berbeda, meninjau beberapa nama dengan cepat, dan memeriksa kandidat sebelum membuka dokumen yang diperlukan dengan man.

Gunakan apropos untuk mencari berdasarkan topik, dan type atau command -v untuk memeriksa bagaimana shell menemukan perintah.

Merujuk pada dokumen resmi