Dalam panduan singkat ini, kita akan belajar bagaimana menghindari entri duplikat dalam riwayat Bash di Linux. Saat bekerja dari commandline, Anda mungkin telah menjalankan beberapa perintah Linux beberapa kali. Seperti yang sudah Anda ketahui, setiap perintah yang kita jalankan di terminal disimpan dalam file history. Jadi menjalankan perintah yang sama berulang-ulang akan mengisi file riwayat. Cepat atau lambat, Anda akan mendapatkan terlalu banyak entri duplikat dalam file riwayat.
Secara default, 500 entri perintah disimpan dalam file riwayat. Dalam sistem Ubuntu terbaru, ukuran file adalah 1000. Setelah jumlah entri perintah melewati batas default, entri terlama akan dihilangkan dari daftar riwayat. Karenanya Anda tidak dapat mengambil entri lama. Anda tentu saja dapat meningkatkan ukuran file riwayat dan menyimpan entri sebanyak yang Anda inginkan. Namun, daripada meningkatkan ukuran file histori, jauh lebih baik untuk menghindari menyimpan duplikat dalam file histori.
Temukan lokasi file riwayat
Riwayat perintah adalah fitur khusus shell yang disimpan berdasarkan per pengguna. Bergantung pada SHELL yang Anda gunakan, file riwayat disimpan dalam file tertentu. Di sistem Linux yang menggunakan Bash, perintah disimpan di ~/.bash_history berkas secara default. Anda dapat memeriksa lokasi file riwayat shell Anda dengan menjalankan perintah berikut:
$ echo $HISTFILE
Di sini, HISTFILE adalah variabel yang digunakan untuk menentukan nama file di mana riwayat perintah disimpan.
Contoh keluaran dari Ubuntu my saya desktop:
/home/sk/.bash_history
Di CentOS 8 , saya mendapatkan output berikut:
/root/.bash_history
Ubah lokasi file riwayat
Jika Anda ingin mengubah lokasi default, jalankan:
$ echo "export HISTFILE=~/.custom_file" >>~/.bashrc
Ganti "~/.custom_file" dengan milik Anda pada perintah di atas.
Jalankan perintah berikut untuk menerapkan perubahan:
$ source ~/.bashrc
Sekarang mari kita lihat bagaimana menghindari menyimpan perintah yang sama beberapa kali di ~/.bash_history berkas.
Hindari Entri Duplikat Dalam Riwayat Bash Di Linux
Kami mengambil perintah yang terakhir dieksekusi menggunakan perintah "riwayat". Perhatikan contoh berikut:
$ history | grep ls
Contoh keluaran:
8 lsb_release -a 13 ls -l 14 lsb_release -a 17 ls -l 20 ls -l 23 lsb_release -a 27 ls 29 lsb_release -a 32 ls 36 ls 42 ls 44 lsb_release -a 62 history | grep ls
Seperti yang Anda lihat pada keluaran di atas, "ls" perintah telah direkam beberapa kali. Kami dapat mengontrol duplikat ini menggunakan HISTCONTROL variabel. HISTCONTROL dapat memiliki nilai berikut:
- abaikan spasi - baris yang diawali dengan spasi tidak akan disimpan dalam histori.
- diabaikan - baris yang cocok dengan entri riwayat sebelumnya tidak akan disimpan. Dengan kata lain, duplikat diabaikan.
- abaikan keduanya - Ini adalah singkatan untuk nilai "ignorespace" dan "ignoredups". Jika Anda menyetel kedua nilai ini ke variabel HISTCONTROL, baris yang diawali dengan spasi dan duplikatnya tidak akan disimpan.
- terhapus - hilangkan duplikat di seluruh riwayat.
Jadi, untuk menghindari entri duplikat dalam riwayat Bash di Linux, edit ~/.bashrc . Anda berkas:
$ nano ~/.bashrc
Tambahkan baris berikut di akhir:
export HISTCONTROL=ignoredups
Simpan dan tutup file. Di sini, kami mengawali variabel HISTCONTROL dengan "ekspor". Ini berarti variabel tersedia untuk semua sub-proses. Detail selengkapnya, di sini .
Atau, gunakan satu baris berikut:
$ echo "export HISTCONTROL=ignoredups" >>~/.bashrc
Sekarang jalankan perintah berikut untuk menerapkan perubahan:
$ source ~/.bashrc
Atau, keluar dan masuk kembali untuk menerapkan perubahan.
Mulai sekarang, entri duplikat tidak akan direkam. Anda dapat memverifikasinya dengan menjalankan perintah yang sama beberapa kali dan melihat daftar riwayat menggunakan perintah berikut:
$ history
Anda juga dapat mengatur beberapa nilai ke variabel HISTCONTROL dengan dipisahkan titik dua seperti di bawah ini:
export HISTCONTROL=ignoredups:erasedups
Untuk detail lebih lanjut, lihat halaman manual Bash:
$ man bash
Bacaan terkait:
- Cara Menghapus Riwayat Baris Perintah Di Linux
- Cara Menghapus Perintah Tertentu Dari Riwayat Bash Di Linux
- Cara Menampilkan Riwayat Bash Tanpa Nomor Baris