Baca semua sejarah perintah terminal di OS X

10

Akan sangat bagus untuk mengakses semua perintah saya yang berjalan di terminal pada OS X sehingga saya dapat meninjau dan menggunakannya sebagai lembar pengingat yang sedang berjalan.

Saya menggunakan permintaan Reverse-I-Search, dan telah memperbarui .bash_profile saya untuk menyimpan semua riwayat saya sebagaimana disebutkan di sini di Mactoids: Cara mencari riwayat perintah Terminal .

  1. Mulai Terminal.

  2. Arahkan ke folder Beranda dengan memasukkan:

    cd ~/
    
  3. Buat .bash_profile dengan memasukkan:

    touch .bash_profile
    
  4. Sekarang, edit .bash_profile di editor teks favorit Anda atau ketik ini di jendela Terminal untuk secara otomatis membuka file di TextEdit default:

    open -e .bash_profile
    
  5. Terakhir, tambahkan ini ke file .bash_profile:

    HISTFILESIZE=1000000000 HISTSIZE=1000000
    
  6. Simpan dan keluar.

Apakah Anda punya ide bagaimana saya dapat mengakses untuk menampilkan riwayat perintah terminal di OS X?

Cameron McGrane
sumber
4
Saya kira Anda sudah membaca man bash, jadi Anda harus tahu bahwa sejarah disimpan dalam file ~/.bash_history. Apa lagi yang perlu Anda ketahui, dapatkah Anda klarifikasi?
Ya, karena saya baru perintah 'pria' ada kemudian membaca manual menemukan jawabannya dan memutuskan untuk mengajukan pertanyaan di atas hanya untuk bersenang-senang. Terima kasih fideli untuk jawaban yang cepat, jelas dan bersahaja.
Cameron McGrane

Jawaban:

6

Semua riwayat Anda disimpan di ~/.bash_history, di mana kedua reverse-i-searchdan tombol atas / bawah digunakan. File itu dipangkas secara teratur, tetapi jika Anda mengikuti panduan dalam tautan Anda, .bash_historyfile itu praktis tidak akan pernah dipangkas.

fideli
sumber
Pemangkasan FIFO atau LIFO?
Pacerier
@Pacerier, saya tidak bisa sepenuhnya yakin karena saya tidak lagi menggunakan macOS tetapi jika saya harus menebak, pemangkasan FIFO.
fideli
2

Secara pribadi, saya lebih suka melakukannya dengan cara yang lebih sederhana dan mencetak semuanya , daripada memeriksa sesi terbaru yang tidak mencakup semua jendela Terminal dan semua perintah.

Dapatkan riwayat lengkap

cd ~/.bash_sessions
cat *.historynew *.history

Jika Anda ingin mengurutkan berdasarkan tanggal sesi

cd ~/.bash_sessions
cat `ls -tr *.historynew *.history`
laimison
sumber
1

Jika Anda masih membutuhkan perbaikan untuk ini, berikut adalah cara saya melakukannya. Dengan ini, saya bisa SIMPAN dan AKSES riwayat di semua tab (yaitu jika Anda memasukkan perintah pada satu tab, lalu buka tab baru dan tekan, itu akan menyarankan perintah yang baru saja Anda masukkan di tab sebelumnya)

Anda akan membutuhkan 2 hal: 1. Masukkan perintah ini di terminal Anda untuk memastikan histappend dihidupkan:

shopt -s histappend && shopt histappend

2. Anda juga perlu tahu di mana perintah histori Anda disimpan.

File histori saya disimpan di ~ / .bash_sessions sehingga kode saya akan direfleksikan. Jika milik Anda disimpan di ~ / .bash_history, atau direktori lain, cukup tukarkan itu dengan ~ / .bash_sessions saat kami memasukkannya ke dalam bash_profile kami.

Setelah Anda mengetahuinya, buka bash_profile Anda dan tambahkan kode berikut:

source ~/.bash_sessions/*.history        #<--sources prev sessions through your bash_profile. If you don't use ~/.bash_sessions to store your history, replace it with whatever you use (i.e. source ~/.bash_history/*.history

export HISTCONTROL=ignoredups:erasedups #<-- auto-erases duplicates in your history
export HISTSIZE=1000                    #<-- assigns # of results to return
export HISTFILESIZE=100000              #<-- assigns # of results to store in your .bash_history
shopt -s histappend                     #<-- appends & saves history throughout all tabs

export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"  <--appends history from all tabs, clears & uses appended history file as current  
sharpharp
sumber
1
Ketahuilah bahwa menjalankan source ~/.bash_sessions/*.historymengeksekusi semua perintah
panchicore