Bagaimana cara melihat file `.bash_history` melalui baris perintah?

72

Saya ingin melihat konten .bash_historyfile saya tetapi tidak tahu bagaimana menuju ke sana melalui baris perintah.

isupportopensource
sumber
7
Bagaimana denganhistory | less
MadMike
2
Sudahkah Anda memeriksanya /home/username/.bash_history ?
Mitch
2
NB: .bash_historyditambahkan hanya ketika terminal ditutup.
Nicolas VERHELST

Jawaban:

56

Jika Anda ingin mengakses sebenarnya file itu sendiri, hanya menggunakan editor teks favorit Anda (saya menggunakan emacstetapi Anda dapat menggunakan plumadari geditatau vimatau apa pun):

emacs ~/.bash_history

Itu adalah lokasi default jika file histori Anda. Jika Anda tidak menemukan apa pun di sana, Anda mungkin telah mengubah nama file histori. Ini disimpan dalam $HISTFILEvariabel, jadi cetaklah untuk memeriksa nilainya saat ini:

echo $HISTFILE

Jika, alih-alih file, Anda hanya ingin melihat riwayat Anda, Anda dapat menjalankan historyseperti yang disarankan @ minerz029. The historyperintah dengan tidak ada pilihan hanya mencetak isi Anda $HISTFILEdiikuti dengan perintah yang dieksekusi di shell saat ini yang belum ditulis ke file itu, dengan nomor baris.

terdon
sumber
49

Jika Anda benar - benar membutuhkan hasil .bash_historyfile, ganti historydengan
cat ~/.bash_historysemua perintah di bawah ini.

Jika Anda benar-benar menginginkan perintah tanpa angka di depan, gunakan perintah ini alih-alih history:

history | cut -d' ' -f 4-

jika tidak, tidak akan ada perbedaan (kecuali jika Anda menggunakan shell yang berbeda).


15 perintah terakhir

Anda dapat gunakan

history | tail -n 15

untuk mendapatkan hanya 15 baris terakhir dari sejarah Anda dengan yang terakhir dieksekusi dicetak terakhir (di bagian bawah).


Mencari perintah

Atau, gunakan

history | grep "apt-get" | tail -n 15

untuk mendapatkan 15 perintah terakhir yang berisi perintah apt-getterakhir yang dieksekusi dicetak terakhir (di bagian bawah). Anda bisa mengganti apt-getdengan perintah apa pun (atau argumen perintah) yang ingin Anda cari (bisa berupa ekspresi reguler).


Menggulir melalui sejarah

Anda dapat gunakan

history | tac | less

untuk menggulir semua perintah yang dijalankan mulai dari yang paling baru di bagian atas. Tekan quntuk keluar.

Demikian pula, gunakan

history | grep "apt-get" | tac | less

untuk menggulir semua perintah yang dijalankan dengan " apt-get" di dalamnya (termasuk argumen) dimulai dengan yang paling baru di atas. Tekan quntuk keluar.

kiri
sumber
15

Selain jawaban minerz029 yang sangat baik.

Untuk mengulangi - perintah 'history' mencetak sejarah bersama dengan nomor di sebelahnya.

Anda dapat menyalurkan output sejarah ke grep, kurang dll.

Ouput sejarah juga menunjukkan angka di sebelah kiri di sebelah keluaran. misalnya

  469  free
  470  ps -fA
  471  ps -fA | grep xend
  472  free
  473  sudo vi /etc/xen/xend-config.sxp 
  474  cat /etc/default/grub 

Dengan nomor ini Anda dapat menjalankan kembali perintah.

misalnya untuk menjalankan kembali 473 saya akan mengetik ke terminal

 admin@xen1~$ !473

diikuti oleh tombol enter untuk mengulang perintah di sebelah 473 pada output history.

Anda juga dapat mencari secara interaktif mundur dalam sejarah perintah dengan mengetikkan ctrl + rkunci kemudian mulai mengetik beberapa konten perintah dan itu akan mencari dan mengisinya. Ketika Anda menemukannya, Anda dapat mengetik enter untuk mengulanginya, atau tekan [tab]tombol untuk menyalinnya ke baris perintah untuk mengedit perintah terlebih dahulu.

Tentu saja, dua opsi terakhir berfungsi di bash shell. Saya tidak yakin apakah fitur ini berfungsi di shell lain. Tetapi karena bash adalah shell default Ubuntu Anda harus menemukannya di sana.

Matt H
sumber
1

masukkan deskripsi gambar di sini

Anda mungkin ingin mencoba "kotak saran" --seperti riwayat https://github.com/dvorka/hstr - ini membaca riwayat Bash dan memungkinkan untuk navigasi cepat.

Martin Dvorak
sumber