Lihat riwayat perintah yang dijalankan di terminal

75

Apakah ada cara untuk menyimpan semua perintah terminal yang diketik dan melihatnya seperti histori di buku log?

rgr
sumber

Jawaban:

92

Ini dilakukan secara otomatis. Bash menyimpan perintah Anda di ~/.bash_history. Jika Anda ingin melihat riwayatnya, cetak output file ini menggunakan salah satu

cat ~/.bash_history
less ~/.bash_history
...any other pager or output command...

Atau Anda dapat menggunakan perintah builtin bash:

history

Untuk menghapus riwayat, hapus file dan hapus riwayat temp:

rm ~/.bash_history && history -c

Ukuran histori default ke 500 perintah. Namun, Anda dapat meningkatkan ini dengan menambahkan baris ke ~/.bashrcfile Anda untuk mengatur HISTSIZEvariabel:

HISTSIZE=<number of entries, -1 for unlimited>

Ini tidak akan langsung berlaku, tetapi hanya untuk sesi yang baru dimulai. Untuk menerapkan ini, sumber ulang .bashrcfile:

. ~/.bashrc

atau jalankan HISTSIZE=...di sesi Anda saat ini.

s3lph
sumber
1
Secara default itu hanya menyimpan 500 perintah terbaru. Anda dapat mengubah nomor yang akan disimpan, tetapi Anda hanya perlu memulainya secara tidak sengaja dengan pengaturan default satu kali, dan semua riwayat lama Anda akan hilang.
kasperd
Ini tidak berfungsi untuk saya di Ubuntu 16
Nam G VU
31

Anda dapat mengetik historydi terminal untuk melihat semua perintah yang dieksekusi sebelumnya.


Anda dapat memotong output ke beberapa baris (di mana 5 adalah jumlah baris):

history 5

Jika Anda ingin melihat hanya perintah yang berisi string (yaitu mv), Anda bisa melakukan ini:

history | grep mv

Anda dapat mengingat perintah dengan mengetik !diikuti dengan nomor entri.

Katakanlah saya memiliki sejarah seperti ini:

1 ls -la
2 mkdir foo
3 mv bar.txt foo
  • Untuk menjalankan mkdir foo, Anda bisa mengetik !2.
  • Untuk menjalankan perintah terakhir, Anda dapat menggunakan !-1atau!!
  • Untuk menjalankan kedua dari belakang, Anda dapat menggunakan !-2

Jika Anda menjalankan perintah yang gagal karena membutuhkan hak akses root (yaitu touch /etc/foo), Anda dapat menggunakan sudo !!untuk menjalankan perintah terakhir sebagai root.


  • Jika Anda mengetik, !manAnda akan menjalankan perintah terakhir yang dimulai denganman
  • Jika Anda mengetiknya !?man?akan menjalankan perintah terakhir yang berisi man(tidak perlu di garis mulai)

Jika Anda memiliki kesalahan ketik pada suatu perintah, Anda dapat memperbaikinya dengan cara ini. Katakanlah saya mengetik cat .bash_hi, untuk mengganti .bash_hidengan .bash_historysaya hanya perlu mengetik ^hi^history^.


Sumber: https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linlinux-vps

Helio
sumber
2
Anda juga dapat menekan Ctrl-R untuk melakukan pencarian di hostory saat Anda mengetik.
Mhmd
historybekerja untuk saya di Ubuntu 16. Terima kasih dan harus diterima!
Nam G VU
9

Ketik saja :

history > print.txt

File baru bernama print.txt akan dibuat di direktori Anda saat ini.

Bilal
sumber
3
Memotong perintah setelah 1000
Antoine
3

Saya sering hanya ingin perintah baru-baru ini juga. Untuk memposting ke catatan pengembangan saya atau, yah, situs pertukaran bertukar seperti ini ... Ini telah terbukti sangat berguna, menghapus nomor baris yang tidak relevan:

history | cut -c 8- | tail

atau, jika Anda suka sebagai alias, nomor baris dihapus, dan indentasi segera (sama seperti yang diperlukan untuk penurunan harga kode)

alias lastones="history | tail | sed -e 's/^ [0-9]\{1,5\}  /    /gi'"
Frank Nocke
sumber
1
Lebih mudah digunakan fc: askubuntu.com/a/839642/158442
muru
0

Anda mungkin ingin mencoba https://github.com/dvorka/hstr yang memungkinkan penelusuran sederhana , navigasi, dan penyaringan "sarankan gaya kotak" dari riwayat Bash Anda:

masukkan deskripsi gambar di sini

Itu dapat dengan mudah terikat pada Ctrl-rdan / atauCtrl-s

Martin Dvorak
sumber