Rahasia Keabadian bash History

Bismillahirrahmanirrahim.

utilities-terminalSaya adalah pengguna Linux yang (saat ini) mengerti betapa cepatnya Terminal. Cepat, ya, cepat. Cepat sekali menyelesaikan suatu tugas dibandingkan GUI. Pada waktu yang lampau, saya lebih sering menggunakan Synaptic. Saat ini, saya lebih sering menggunakan Terminal. Kenapa? Karena cepat. Ajaibnya, Terminal (lebih tepatnya bash) menyimpan seluruh perintah yang pernah saya ketik. Ini sangat berguna untuk troubleshooting dan menulis artikel. Jelas, saya akan sangat terganggu kalau history dari bash saya terhapus. Ya, kenyatannya, bash memang akan melakukan truncating terhadap berkas .bash_history (berkas yang berisi riwayat seluruh perintah Anda) kalau ada instansi bash baru dipanggil pada waktu yang bersamaan atau jumlah total history Anda sudah melampaui tetapan variabel HISTSIZE dalam .bashrc. Lalu, bagaimana membuat supaya riwayat perintah bash tidak akan pernah dihapus berapa pun instansi bash dibuka bersamaan atau berapa pun total barisnya? Berikut catatan saya.

Tunggu, Saya Gagal!

Saya gagal dan saya merasa terganggu. Berulang kali saya googling dan menerapkan macam-macam tutorial. Intinya, tutorial yang saya temukan menyarankan untuk mengubah-ubah isi variabel dalam .bashrc atau menuliskan sejumlah perintah bash yang berkaitan dengan history (misalnya opsi -a dan -r) ke dalam .bashrc. Saya merasa kehilangan, karena bagi saya bash history itu sangat penting. Bisa dihitung, sudah beberapa bulan saya menerapkan macam-macam tutorial dan semuanya selalu menghasilkan history yang kembali lagi ke 500 baris (ukuran default untuk truncating). Ini terjadi karena saya sangat sering membuka banyak Konsole bersamaan, plus Dophin saya juga terintegrasi dengan Konsole. Jadi terang saja banyak bash berbeda yang saya buka dalam waktu yang sama. Itu berlangsung setiap hari. Sudah banyak-banyak mengetik perintah, lalu hilang dengan begitu mudah. Saya terus menerus gagal. Saya tidak suka itu.

Emang, bash History Penting?

Penting! Saya pengguna Linux sekaligus penulis. Sejarah itu sangat-sangat penting, bahkan dalam suatu shell. Kalau tidak ada history, atau kalau history terbuang, maka saya tidak bisa lagi mengetahui perintah yang saya lakukan paling awal. Berikut ini saya daftarkan kejelekannya.

  1. Tidak bisa melacak perintah mana sebelumnya yang mengakibatkan suatu error.
  2. Tidak bisa mengetahui perintah apa saja yang pernah saya lakukan.
  3. Tidak tahu berapa jumlah pasti perintah yang saya lakukan selama menggunakan Ubuntu.
  4. Tidak bisa melacak apa saja aplikasi yang telah saya instal.
  5. Juga aplikasi yang saya hapus.
  6. Juga bentuk-bentuk perintah tertentu yang pernah saya lakukan tetapi saya lupakan.
  7. Tidak bisa melakukan history | grep <string_tertentu>.
  8. Tidak bisa menulis tutorial karena bahannya sudah hilang (bash history juga bahan tulisan).

Rahasia Itu

Cukup ubah saja nama dari berkas yang menampung history. Kalau nama default-nya .bash_history, maka ganti saja menjadi .bash_history_saya atau apa saja. Tentu nama dalam variabel .bashrc yang diubah, bukan nama berkas fisiknya.

mari-menggunakan-kde-5-17

  1. Perhatikan baris nomor 9 pada gambar di atas. Saya mengubah nama berkas untuk penyimpan history. Ternyata, bash itu punya kebiasaan melakukan truncate kepada nama berkas .bash_history secara eksak. Jadi secara logis, kalau kita ubah nama berkasnya, maka dia tidak akan bisa melakukan truncate lagi. History saya pun aman.
  2. Perhatikan juga baris 13 dan 14. Jangan tanggung-tanggung kalau memberi batasan jumlah perintah. Namun ingat, angka yang bisa ditulis di sini adalah integer. Jadi batas totalnya juga batas integer.

Hasil

Lihat skrinsot ini. Saya menunggu selama 2 pekan lebih (sejak 26 Agustus 2014) untuk mencapai 2000 baris bash history. Setelah terbukti bisa mencapainya, saya baru menulis tulisan ini. Ini 2000 baris dalam waktu 2 pekan lebih menandakan bahwa bash history saya sudah tidak dihapus lagi oleh bash hanya karena saya setiap hari buka banyak instansinya bersamaan. Saya berhasil.

mari-menggunakan-kde-5-16

Referensi

  1. http://unix.stackexchange.com/questions/1288/preserve-bash-history-in-multiple-terminal-windows (ini laman yang saya ikuti dan saya percaya, tetapi akhirnya gagal juga)
  2. http://superuser.com/questions/555310/bash-save-history-without-exit
  3. http://askubuntu.com/questions/499376/bash-history-not-saved-after-closing-terminal
  4. http://signal0.com/2012/07/19/keeping_bash_history_forever.html
  5. http://www.numerati.com/2011/08/03/bash-goodies-turbocharging-your-history/
  6. http://pastebin.com/aMpbdGQm (log tanya jawab dari kanal IRC #bash @ freenode yang diawali oleh saya dan dijawab para pakar bash, yang menjadi sumber petunjuk keberhasilan saya)
Iklan

7 thoughts on “Rahasia Keabadian bash History

    • Ketika yang dibuka cuma 1 tab baru, history tidak hilang. Tetapi kalau lebih dari itu, itu baru hilang dan menjengkelkan sekali. Saya termasuk pengguna Chromium yang bisa buka ~20 tab sekali waktu, jadi Terminal pun ikut terpengaruh. Ilang deh, history saya.

      • subhanallah,

        oh, berarti aku baru kehilanganya…

        semoga di otak ku masih tersimpan, mumpung baru beberapa baris,

        simulasi berhasil,
        meski masih text mode,

        penelitian selanjutnya adalah simulasi gui,

        dengan linux, belajar otodidak dengan simulasi tanpa merusak system,

        sangat mungkin untuk diwujudkan

Dilarang menggunakan emotikon

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s