Bagaimana cara mencari riwayat perintah shell dengan editor teks?

8

Saya tahu bahwa Ctrl+ Rmari Anda mencari sejarah perintah, tapi ini sedikit primitif. Apakah ada cara untuk mengekspor semua sejarah perintah saya (bukan hanya sesi terminal saat ini, tetapi riwayat lengkap) ke file teks? Saya kemudian dapat menggunakan editor teks untuk mencarinya dengan nyaman. Atau jika file riwayat sudah ada, di mana itu?

becko
sumber
Saya akan berasumsi bahwa Anda maksud riwayat perintah shell Anda, dan telah diedit untuk menggunakan shell default, bash.
muru

Jawaban:

13

Dari man bash:

HISTFILE
    The name of the file in which command history is saved.
    The default value  is  ~/.bash_history.
    If unset, the command history is not saved when a shell exits.

Jadi, variabel tersebut HISTFILEakan berisi nama file tempat sejarah akan disimpan.

$ echo "$HISTFILE"
/home/user/.bash_history

Anda sekarang dapat mencari polanya:

$ grep "vim" "$HISTFILE"
vim foo.text
vim bar.text
vim file.txt

Seperti @Dennis telah tunjukkan, jika mau, Anda dapat menjalankan history -auntuk menambahkan sejarah perintah sesi berjalan ke $HISTFILEfile. Pada dasarnya perintah akan ditambahkan secara otomatis setelah Anda menutup sesi, history -aakan melakukan hal yang sama saat itu juga.

Jalankan help historyuntuk mendapatkan lebih banyak gagasan tentang historybuiltin itu sendiri.

heemayl
sumber
1
Perhatikan bahwa file riwayat biasanya tidak berisi baris yang dimasukkan sejak awal sesi bash saat ini, yang dapat diperbaiki dengan mengeksekusi history -a.
Dennis
@ Dennis: Poin bagus .. ditambahkan ..
heemayl
4

Coba ini:

history > output.txt
less output.txt

Kemudian cari dengan mengetik /+searchterm

Nightman
sumber
3

Riwayat bash disimpan di direktori home Anda ~/.bash_history.

Pada dasarnya Ctrl+ Rpencarian dari file ini.

Sh1d0w
sumber