Jadi saya menggunakan di updalam shell saya (Bash pada OSX atau Ubuntu, sebagian besar) tetapi beberapa waktu saya tahu bahwa saya ingin barang-barang setelah lokasi kursor saat ini. Apakah ada cara untuk membuat garis saya lengkap dengan garis di atas? Memukul upkemudian leftmenjengkelkan.
Trik lain juga akan keren, kecuali tab, yang kita semua ketahui :)
Berikut ini contoh (permintaan per ~ dukun):
Saya mengetik mkdir /where/the/hell/is/that/thing
dan kemudian saya ingin cd ke direktori yang sama. Tapi sekarang saya tahu tentang meta-b :)
keyboard-shortcuts
bash
Dan Rosenstark
sumber
sumber
Jawaban:
Coba ini:
lalu tekan alt+.
tergantung pada OS dan terminal Anda mungkin harus mengetik esckemudian.
Anda juga dapat menekan alt+ 1+ .untuk memilih argumen tertentu sebelumnya.
Ini jauh lebih baik daripada !! atau! $ karena Anda benar-benar dapat melihat apa yang akan Anda jalankan, dan itu membutuhkan waktu penekanan tombol yang lebih sedikit.
sunting: sebenarnya metatidak alt, jadi mungkin juga bekerja dengan tombol "windows" tergantung pada bagaimana keyboard Anda diatur ..
sumber
Anda harus membaca man bash di sistem Anda, khususnya bagian tentang Readline , karena ini adalah mekanisme input interaktif bash. The Bash manual di gnu.org memiliki bagian bagus di Commandline Editing yang akan membantu mengisi beberapa kesenjangan.
Secara default, Anda dapat menggunakan ini untuk bergerak di commandline (cukup cantumkan beberapa di sini; lihat tautan untuk daftar lengkap):
Anda dapat menggunakan ini untuk "membunuh" (alias "potong") teks dari baris:
Jadi, Anda dapat menggabungkan ini untuk memilih potongan dari beberapa baris perintah yang ingin Anda ulangi, membunuhnya, lalu menempelkannya ke akhir perintah berikutnya.
Sekarang, untuk membuatnya lebih menyenangkan, mari kita pertimbangkan Ekspansi Sejarah bash . Ini adalah bahwa
!!
bahwa jawaban Studer ini menyebutkan . Ekspansi sejarah dipecah menjadi perancang acara , perancang kata , dan pengubah .Perancang acara terlihat seperti ini (sekali lagi, lihat tautan untuk daftar lengkap):
!
- memulai substitusi sejarah!n
- perintah ke-n dalam daftar riwayat bash, untuk beberapa bilangan bulat n (berfungsi untuk negatif juga)!!
- perintah sebelumnya; setara dengan!-1
!string
- perintah terbaru yang dimulai dengan stringPenunjuk kata memilih bagian-bagian tertentu dari suatu peristiwa. Gunakan
:
untuk memisahkan acara dari kata designator. Kata-kata diberi nomor dari 0 mulai dari awal baris, dan dimasukkan ke dalam baris saat ini dipisahkan oleh spasi tunggal.$
- menunjuk argumen terakhir (mis. argumen!!:$
terakhir dari perintah terakhir; dapat disingkat menjadi!$
)n
- menunjuk kata ke-n (mis.!str:2
adalah argumen ke-2 dari perintah terbaru yang dimulai dengan str ;!!:0
adalah perintah dari perintah terakhir)Jadi, untuk menindaklanjuti contoh Anda, jika perintah terakhir Anda
mkdir /some/really/long/path
, hanya menjalankan!!
akan menjalankan kembali perintah itu lagi. Tetapi Anda ingincd
masuk ke jalur itu:Sekarang katakanlah Anda melakukan beberapa perintah lain dan kemudian ingin merujuk kembali ke jalur itu lagi. Jika itu adalah perintah mkdir terakhir yang Anda jalankan, Anda dapat menggunakan ini untuk mengulangi jalur itu:
sumber
bind -p
ataubind -P
akan cetak ikatan kunci Anda saat ini; itulah referensi utama untuk apa yang digunakan bash Anda .Jika Anda adalah pengguna vi, Anda dapat memasukkan shell ke mode vi dengan mengetik
set -o vi
.Anda kemudian dapat melakukan segala macam hal yang kuat di baris perintah setelah mengetik
Esc + k
.Yang paling saya gunakan adalah
Esc+K
maka/
setiap teks yang diketik setelah slash akan digunakan untuk mencari melalui sejarah baris perintah Anda.mis.
Esc + k
/smbclient
akan memberikan perintah smbclient terakhir yang Anda ketikkan. Anda dapat menggulir semua pencarian menggunakan tombol vi standar (j
dank
untuk naik dan turun tapi saya pikir panah atas dan bawah juga berfungsi).Bantuan lebih lanjut di sini , ada juga beberapa hal bash inbuilt di tautan yang mungkin lebih dari yang Anda cari.
Cheers, Stu.
sumber
Anda dapat menggunakan
!!
yang mewakili perintah terakhir:sumber
!!
adalah sinonim untuk!-1
: gnu.org/software/bash/manual/bashref.html#Event-DesignatorsDalam contoh yang Anda berikan, gunakan! $ Untuk mewakili parameter terakhir dari perintah sebelumnya:
Anda juga dapat menggunakan variasi bernomor untuk mengeluarkan parameter spesifik dari perintah sebelumnya.
sumber
Baru-baru ini saya menemukan cheat-sheet readline ini sangat berguna. Banyak hal yang tidak saya ketahui. Saya biasa menggunakan
!$
semua waktu sampai saya tahu tentang Alt+ ., yang sekarang saya gunakan sepanjang waktu. :)sumber