Saya mulai mempelajari beberapa Regex, oleh karena itu saya menggunakan perintah ini berulang kali:
grep pattern /usr/share/dict/american-english
Hanya bagian dengan perubahan pola, jadi saya harus menulis ungkapan panjang " / usr / share / dict / american-english " lagi dan lagi.
Seseorang membuat pernyataan bahwa adalah mungkin untuk memperluas argumen perintah dari sejarah perintah dengan mengetikkan kombinasi karakter samar bukannya ekspresi penuh. Bisakah Anda memberi tahu saya kombinasi karakter samar itu?
bash
command-line
command-history
history-expansion
Abdul Al Hazred
sumber
sumber
bash
,dash
,zsh
,mksh
, danksh
kerang (setidaknya, yang saya tahu tentang) akan semua mengenali$_
arg terakhir parameter khusus (beberapa melakukannya hanya dalam modus interaktif, meskipun) . Itu hanya memperluas seperti variabel:grep somepattern filename; grep otherpattern "$_"
. Anda biasanya dapat melihat isinya di keluaranset
.Jawaban:
Anda dapat menggunakan
<M-.>
(atau<Esc>.
jika kunci Meta Anda digunakan untuk sesuatu yang lain), yaitu, Meta-dot (atau <esc> dot), di mana Meta biasanya merupakan kunci Alt, untuk mengingat argumen terakhir dari perintah sebelumnya. Jadi, pertama Anda mengetikDan kemudian jika Anda ingin mencari sesuatu yang lain, Anda akan mengetik
Setelah mengetik spasi dan kemudian Esc.(yaitu, pertama-tama menekan tombol escape, dan kemudian tombol periode):
Anda juga dapat menggunakan salah satu dari berikut ini:
Dimana
!:2
dan masing-masing!$
berarti "argumen kedua" dan "argumen terakhir".sumber
editing-mode vi
set Anda perlu menambahkan ikatan~/.inputrc
untukyank-last-arg
dan untuk Zsh Anda harus mengikatinsert-last-word
...zsh
,bash
,ksh
,mksh
, ataudash
kerang Anda dapat hanya menggunakan$_
. POSIXLY yang mengikat sudah diatur, namun,ESC _
kapanset -o vi
berlaku._letter
ikatan alias - tetapi hanya karena saya masih tidak tahu cara membuatnya bekerja dengan bsdeditline
.Secara umum (dengan Bash)
<Esc> N <Esc> .
akan memanggil kembali argumen Nth dari perintah sebelumnya ke baris perintah saat ini (di mana N adalah berbasis 0).Untuk argumen kedua dari perintah terakhir, itu akan menjadi:
<Esc> 1 <Esc> .
Jika Anda menginginkan argumen ketiga, maka
<Esc> 2 <Esc> .
... dan seterusnya.
Seperti yang disebutkan orang lain, jika Anda ingin argumen terakhir dari perintah sebelumnya, ada jalan pintas khusus untuk itu hanya:
<Esc> .
sumber