Selain melihat riwayat, apakah ada cara untuk memfilter riwayat saya?
Katakanlah saya ingin mencari perintah yang dimulai dengan "ssh"?
sumber
Selain melihat riwayat, apakah ada cara untuk memfilter riwayat saya?
Katakanlah saya ingin mencari perintah yang dimulai dengan "ssh"?
Tekan Ctrl+ Rdan ketik ssh
. Ctrl+ Rakan memulai pencarian dari perintah terbaru ke yang lama (pencarian terbalik). Jika Anda memiliki lebih dari satu perintah yang dimulai dengan ssh
, Tekan Ctrl+ Rlagi dan lagi hingga Anda menemukan kecocokan.
Setelah menemukan kecocokan, Anda dapat menekan Enteruntuk menjalankan perintah atau kursor kiri / kanan untuk hanya memilih teks perintah.
Tidak ada opsi membalikkan default untuk Ctrl+ Runtuk membalikkan arah pencarian tetapi di sini Anda akan menemukan beberapa saran tentang itu.
Jika Anda hanya ingin mencari riwayat Anda, Anda bisa menggunakan history | grep ssh
, mengganti ssh untuk apa pun yang ingin Anda cari.
Saya melakukan sedikit variasi di atas, bekerja dengan baik untuk saya (jika Anda mengacu pada sejarah bash Anda
Di folder rumah saya, saya membuat file bernama
Di dalam pergi ini
Catatan: di atas sepertinya tidak berfungsi lagi di 14.04 jadi ini melakukan hal yang sama -
Kemudian mengetik banyak dari perintah sebelumnya saya ingin & menggunakan tombol halaman atas / halaman dn mencari sejarah, selalu dimulai dengan halaman atas
sumber
Menekan Ctrl+ Rakan memulai mode "reverse-i-search", mengetik "ssh" akan mencari riwayat Anda untuk perintah yang mengandung "ssh".
sumber
Berikut adalah metode lain menggunakan perintah klasik (lebih cenderung bekerja lintas distro). Command history disimpan dalam file
.bash_history
di direktori home Anda, sehingga Anda dapat melakukan ini:Jangan lupa
-i
benderanya jika Anda membutuhkan pencarian case-sensitive.sumber
history | grep ssh
hanya akan menunjukkan sesi sementara ssh jadi saya akan pergi untuk jawaban ini.Saya menemukan fungsi berikut di suatu tempat di Internet dan telah menggunakannya dengan sangat baik. Letakkan ini di
~/.bashrc
:Sekarang kembali memuat shell Anda:
exec bash
. Anda sekarang memiliki perintah baru, yang dapat Anda gunakan seperti ini:Ini akan menampilkan daftar perintah yang cocok dari riwayat Anda. Untuk menjalankan perintah, ketik
!
diikuti dengan nomor perintah. Ini sebuah contoh:Saya menyukai pendekatan ini lebih baik daripada Ctrl+ Rkarena memungkinkan pencarian yang jauh lebih fleksibel, dan saya dapat melihat banyak hasil sekaligus.
sumber
Letakkan ini di
~/.bashrc
:contoh:
sumber
Jika Anda menggunakan shell di Emacs (
M-x shell
), Anda dapat menggunakanM-r
(itu sama dengan Ctrl+ Rdi terminal ).sumber
Riwayatnya baik tetapi terbatas - Saya lebih suka mengatur lingkungan bash saya sehingga saya mencatat semua perintah yang pernah saya jalankan, selain direktori tempat mereka dijalankan. Lalu saya menjalankan perintah untuk mendaftar semua perintah Saya telah menjalankan di direktori saat ini, yang saya dapat pipa untuk grep dll - itu disebut 'piring' lihat:
https://github.com/wolfwoolford/dish
Jika Anda ingin memotong ke pengejaran, cukup masukkan ini di .bashrc Anda ( https://github.com/wolfwoolford/dish/blob/master/dishrc )
Ada juga perintah yang sangat berguna yang Anda dapatkan secara gratis yang disebut 'dishg' - atau hidangan global - yang mencetak setiap perintah yang pernah dijalankan, terlepas dari direktori. Jelas ini hanya berguna ketika digunakan dengan grep dan ekor dll ...
Saya telah menggunakannya selama bertahun-tahun dan ini benar-benar hal pertama yang saya instal setiap kali saya menyiapkan kotak baru. Log perintah yang Anda jalankan ke file teks dalam direktori tersembunyi (~ / .dish) .. Saya tidak pernah memiliki masalah dengan ruang disk ...
sumber
Ingin menulis ini sebagai komentar untuk @ssmy tetapi tidak dapat memformat dalam komentar untuk bekerja sama.
Setelah mencari melalui sejarah dengan
history | grep ssh
Anda kemudian dapat menjalankan perintah yang Anda inginkan dengan mengetikkan nomor yang diawali dengan tanda seru, misalnya!42
.Contoh:
sumber