Saya menemukan diri saya melakukan <command> --help | grep <feature>
sangat sering setiap hari. Saya bertanya-tanya apakah mungkin membuat sesuatu seperti ^^
itu mengembang "--help | grep"
dan kemudian saya melakukan ini:
ls ^^ size
Itu akan menjalankan yang berikut:
ls --help | grep size
bash
bash-expansion
yukashima huksay
sumber
sumber
qh () { type -all "$1" ; { "$1" --help || man "$1" ;} | egrep -i -- "$2" ;}
# maka Anda bisa: qh ls size, qh ls "something | another" etc. the (optionnal)type -all "$1"
juga menambahkan info tentang $ 1: dikatakan jika Anda akan meluncurkan alias, fungsi, dan perintah, dll. Dan itu memberikan info dari man "$ 1" jika perintah $ 1 tidak memiliki opsi "--help" (ini kadang-kadang terjadi)-a
, tetapi tidak mengatakan apa-apa tentang-l
atau-all
, tetapi fungsi tidak bekerja.Dengan
zsh
, Anda akan menggunakan alias global :Dengan
bash
, Anda mungkin dapat menggunakan ekspansi histori yang merupakan salah satu yang terjadi cukup awal pada penguraian shell yang dapat digunakan untuk mengganti pipa:Perdana sejarah dengan teks yang ingin Anda gantikan dan karakter khusus Anda tidak mungkin menggunakan sebaliknya (seperti di
£
sini yang kebetulan ada di keyboard saya):Kemudian gunakan ekspansi riwayat untuk mengambil itu:
Atau Anda dapat
readline
memperluas--help|grep
beberapa tombol atau urutan tombol tekan. Untuk itubash
hanya berlaku untuk (dan bukan aplikasi lain sepertigdb
menggunakan readline), Anda dapat menggunakan perintahbind
bash builtin yang merupakanbash
API untuk mengkonfigurasireadline
, misalnya di~/.bashrc
:Atau tambahkan ke
~/.inputrc
(file konfigurasi readline Anda):(ada cangkang lain seperti
rc
ataues
yang menggunakan readline dan di mana melakukan pengikatan itu masuk akal tetapi AFAICT, mereka tidak mengaturrl_readline_name
variabel sebelum memohonreadline
sehingga Anda tidak akan dapat menambahkan beberapa$if
pernyataan untuk mereka (mereka akan ditampilkanother
seperti semua aplikasi yang menggunakan readline tanpa memberi tahu nama aplikasi mereka)).Perhatikan bahwa Anda harus memasukkan yang kedua
^
dalam waktu setengah detik (secara default) setelah yang pertama agar terjadi substitusi.sumber
Anda dapat menggunakan binding readline:
tambahkan garis seperti
ke ~ / .inputrc Anda
Kemudian tekan ^ X ^ R dalam jangka waktu Anda, dan penjilidan akan diaktifkan.
Penguncian
ls ^^
sekarang akan menghasilkanls --help | grep
.sumber
Menggunakan
less
untuk melihat pesan bantuanAnda mungkin menemukan berguna untuk melihat konteks garis yang sesuai dengan permintaan pencarian Anda.
Sintaks untuk memanggil
bash
fungsi ini mirip dengan fungsiqh
dalam jawaban @ tgwtdt, dengan argumen pertama adalah perintah untuk memeriksa, dan argumen kedua adalah istilah pencarian. Sebagai contoh:Ini membuka pesan bantuan lengkap
less
, menyoroti setiap instance dari istilah pencarian, dan menggulir ke instance pertama dari istilah pencarian. Anda kemudian dapat menekann
untuk menggulir maju ke baris berikutnya yang berisi istilah pencarian,n
lagi untuk berikutnya, dan seterusnya. Untuk menggulir kembali ke instance sebelumnya, tekanN
. GunakanHome
,End
,Page Up
,Page Down
,Up Arrow
, danDown Arrow
tombol untuk navigasi umum. Tekanq
atauQ
untuk keluarless
dan kembali ke baris perintah.sumber
Saya menyukai solusinya dengan @tgwtdt, jadi saya sedikit meningkatkannya.
Ini melakukan hal yang sama, tetapi melakukan sedikit untuk menangani kesalahan dan juga mencoba untuk memproses built-in.
qh using () bukan {} so qh1 () dan out adalah lokal (dalam subkulit).
sumber