zsh yang Memudahkan Pengguna Kibor Rusak

Bismillahirrahmanirrahim.

utilities-terminalKibor saya rusak pada tombol panah kiri, kanan, 2 (termasuk @), 4 ($), 0 (‘)’), DEL, HOME, F5 (FN+REDUPKAN LAYAR), F11 (FN+VOLUME TURUN), PAUSE, dan INSERT. Saya telah me-remap itu semua kepada tombol-tombol lain dengan xev dan xmodmap. sudah lama menginginkan bash saya mampu melakukan autocomplete lebih canggih setelah menekan TAB, yakni setelah autocomplete saya harus bisa memilih direktori/berkas dengan tombol panah dari sugesti yang ditampilkan. Namun bash belum bisa melakukan itu sedangkan sudah lama pula saya ingin menggunakan zsh yang superkeren. Ya, saya kenal zsh dari pengguna Archlinux Indonesia yang punya shell prompt sangar. Kalau Anda sangsi betapa kerennya zsh, cobalah melirik laman ini. Siang ini saya menggunakan zsh yang sudah lama saya pasang di Precise dan melakukan sedikit konfigurasi. Akhirnya fitur autocomplete dengan pilihan itu saya dapatkan dan saya tidak repot lagi walau kibor saya rusak. Berikut ini catatan saya.

Langkah Pertama


zsh-keren-4

Langkah Kedua


zsh-keren-3

Langkah Ketiga


zsh-keren-1

Pembuktian


zsh-keren-5

Kesimpulan

zsh dengan pengaturannya yang tepat, akan sangat membantu pengguna yang kibornya rusak seperti milik saya.

Notabene

Ya, saya belum mengubah prompt shell milik zsh saya. Itu bisa dilakukan nanti.

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)