Riwayat pesta saya secara misterius berhenti bekerja, dan saya tidak tahu bagaimana cara memperbaikinya. Ini adalah .bashrc saya terlihat seperti:
HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history
Namun, ketika saya menjalankannya echo $HISTFILE
mencetak /Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew
.
Saya adalah pemilik file .bash_history, jadi saya tidak terlalu yakin bagaimana cara memperbaiki masalah ini.
Terima kasih!
$HISTFILE
, karena minat? Saya tidak memiliki.bashrc
OSX danecho $HISTFILE
melaporkan tempat yang saya harapkan - apakah mengomentari kalimat yang dimaksud berpengaruh?HISTFILE="$HOME/.bash_history”
. Tanpa tanda kutip, versi Anda tidak akan valid jika jalur ke direktori home Anda berisi spasi (atau mungkin karakter khusus lainnya).Jawaban:
Terminal menetapkan setiap sesi terminal sebagai pengidentifikasi unik dan mengkomunikasikannya melalui variabel lingkungan TERM_SESSION_ID sehingga program yang berjalan di terminal dapat menyimpan / mengembalikan status spesifik aplikasi ketika berhenti dan memulai kembali Terminal dengan Resume diaktifkan.
Folder baru (~ / .bash_sessions /) digunakan untuk menyimpan file HISTFILE dan .session yang unik untuk sesi.
Selama startup shell file sesi dieksekusi. File lama dihapus secara berkala.
Perilaku default mengatur untuk menyimpan dan mengembalikan riwayat perintah bash secara independen untuk setiap sesi terminal yang dipulihkan. Itu juga menggabungkan perintah ke dalam sejarah global untuk sesi baru.
Anda dapat menonaktifkan perilaku ini dan membagikan satu riwayat dengan pengaturan
Jika HISTTIMEFORMAT didefinisikan, riwayat per sesi dinonaktifkan secara default (baca lebih lanjut di / private / etc / bashrc_Apple_Terminal)
Mekanisme save / restore dinonaktifkan jika file berikut ada:
Apple sudah mengubah beberapa perilaku sejak El Capitan rilis, jadi lebih baik baca lebih lanjut tentang ini di sini
less /private/etc/bashrc_Apple_Terminal
sumber
~/.bash_sessions_disable
file dimaksudkan sebagai upaya terakhir dalam kasus ada masalah yang tidak dapat diselesaikan secara spesifik. Ini menonaktifkan lebih dari sekedar sejarah perintah per-sesi, dan Anda dapat menonaktifkan hanya sejarah perintah per-sesi. Lihat komentar di/etc/bashrc_Apple_Terminal
untuk detailnya.export SHELL_SESSION_HISTORY=0
.bashrc
dan.bash_profile
unix.stackexchange.com/a/310150/15362Saya melihat sesuatu yang serupa setelah peningkatan El Capitan. Cukup menambahkan file
.bash_sessions_disable
file di direktori home Anda menonaktifkan sesi bash baru dan.bash_history
kembali digunakan.Utas Reddit ini memiliki lebih banyak info dan tautan lebih lanjut.
sumber
~/.bash_sessions_disable
file dimaksudkan sebagai upaya terakhir dalam kasus ada masalah yang tidak dapat diselesaikan secara spesifik. Ini menonaktifkan lebih dari sekedar sejarah perintah per-sesi, dan Anda dapat menonaktifkan hanya sejarah perintah per-sesi. Lihat komentar di/etc/bashrc_Apple_Terminal
untuk detailnya.SHELL_SESSION_HISTORY=0
di bagian atas~/.bash_profile
.Anda dapat memecahkan masalah RVM dengan memperbarui ke versi RVM terbaru atau menjalankan ini:
Lihat https://github.com/rvm/rvm/issues/3540 untuk info lebih lanjut.
sumber
Jawaban dari utas Reddit ini menyelamatkan saya:
sumber
Jika itu adalah Mac, saya kira itu adalah shell login default
bash
dan itu berjalan.profile
sebagai gantinya.bashrc
. Jadi, Anda mengedit file yang salah.sumber
$HISTFILE
di berbagai bagianprofile
? Mungkin Anda sumber skrip lain yang mengubah variabel? Saya memeriksa keduanyaTerminal
daniTerm
,bash
3
dan4
keduanya memiliki standarnya$HOME/.bash_history
.$HISTFILE
perubahan itu terjadi. Jadi, cukup buat duaecho $HISTFILE
mengelilingi kode Anda. Yang harus Anda lakukan adalah menemukan potongan kode di mana$HISTFILE
perubahan dengan memindahkan keduaecho $HISTFILE
baris lebih dekat dan lebih dekat satu sama lain baris demi baris hingga sesuatu terungkap. Itu saja.echo $HISTFILE
di setiap baris, hanya untuk melihat apakah ada perbedaan. Namun, itu hanya dicetak/Users/username/.bash_history
berkali-kali. Saya kemudian berlariecho $HISTFILE
di shell, dan itu dihasilkan/Users/nelsonliu/.bash_sessions/CD275A29-1DF1-4ED8-B8CE-F706B11B812F.historynew
.Saya melihat masalah ini di High Sierra. Entah bagaimana, .bash_history saya sendiri telah dimiliki oleh root dan bahkan tidak memiliki izin baca untuk pengguna lain (ketika isi direktori home dilihat dengan ls -al)
Tidak ada konsekuensi apa pun dalam file .bash_history ini, jadi saya melakukan sudo rm .bash_history diikuti oleh sentuhan .bash_history untuk membuat yang baru.
Semua tampak baik sekarang
sumber
~/.bash_profile
file saya :export HISTTIMEFORMAT='%F %T '