Saya selalu menggunakan bash untuk bekerja, dan tidak pernah mengalami masalah dengannya. Sekarang, ia tidak menyimpan perintah apa pun dalam riwayat lagi. Jika saya membuka terminal jendela, mencoba beberapa perintah, sepertinya semuanya berjalan dengan baik dan menunjukkan kepada saya riwayat menggunakan tombol panah. Tetapi Jika saya menutup jendela (dan itu adalah waktu yang seharusnya menyimpan file .bash_history) dan membuka jendela yang lain, tidak ada tanda-tanda perintah terakhir.
Bagaimana saya bisa mengetahui apa yang salah? Atau mengatur ulang semuanya dari kosong.
Aku yang melakukan ini:
Menambahkan variabel ke berkas .bash_profile
SHELL_SESSION_HISTORY = 0
Mulai ulang terminal dan setelah itu terminal bekerja seperti yang saya inginkan. (Ini menyimpan perintah setelah saya menutup terminal)
P.S. Saya juga menggunakan variabel HISTFILESIZE
dan HISTSIZE
HISTSIZE adalah jumlah baris atau perintah yang disimpan dalam memori dalam daftar riwayat saat sesi bash Anda sedang berlangsung.
HISTFILESIZE adalah jumlah baris atau perintah yang (a) diizinkan dalam berkas histori pada saat startup sesi, dan (b) disimpan dalam berkas histori di akhir sesi bash Anda untuk digunakan pada sesi berikutnya.
Mulai OS X 10.11 El Capitan, skrip yang terinstal di sistem /etc/bashrc_Apple_Terminal
berkoordinasi dengan Terminal untuk menyimpan/memulihkan riwayat perintah yang terpisah untuk setiap terminal yang dipulihkan untuk Melanjutkan.
Baca komentar di /etc/bashrc_Apple_Terminal
untuk penjelasan tentang cara mengelola riwayat perintah per terminal dan cara menyesuaikannya.
Jika Anda menyesuaikan PROMPT_COMMAND
, pastikan untuk menggabungkannya dengan nilai sebelumnya agar Anda tidak menghapus perintah yang disediakan sistem:
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }your_code_here"
Jika Anda memasang penangan sinyal EXIT
dengan trap
, pastikan untuk melakukan hal yang serupa (atau panggil shell_session_update dari penangan Anda jika Anda tidak dapat menemukan cara menggabungkan ke nilai sebelumnya - ini sedikit rumit).
Ketika Anda keluar dari shell, kode ini akan menyimpan perintah baru ke riwayat terminal di ~/.bash_sessions
. Untuk melihat apakah ada masalah, alih-alih menutup terminal, keluarlah dari shell secara manual dengan exit
(atau Control-D). Ia akan mencatat pesan-pesan kemajuan. Perhatikan jika proses tidak selesai atau jika ada peringatan atau pesan kesalahan yang ditampilkan.
Secara umum, bashrc_Apple_Terminal
mencoba mendeteksi dan menonaktifkan riwayat per sesi jika pengguna terlihat telah melakukan kustomisasi yang tidak sesuai dengannya. Sepertinya Anda mungkin telah menemukan satu hal yang tidak dapat ditangani. Harap pertimbangkan untuk mengajukan laporan bug ke Apple: https://developer.apple.com/bug-reporting/
Untuk berjaga-jaga jika ada orang lain di luar sana yang telah menginstal RVM (Ruby Version Manager): Periksa apakah Anda memiliki baris berikut dalam berkas ~/.profile
, ~/.bashrc
, atau ~/.bash_profile
.
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Ini mungkin RVM mencegah pintu keluar "hook" untuk menjalankan bash_sessions.
Itu adalah masalah bagi saya. Coba beri komentar.
Sumber: Reddit