GNU/Linux >> Belajar Linux >  >> Linux

Cara Menghindari Entri Duplikat Dalam Riwayat Bash Di Linux

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

Linux
  1. Cara menggunakan perintah riwayat Bash

  2. Cara Menghapus Perintah Tertentu Dari Riwayat Bash Di Linux

  3. Mengurai riwayat Bash di Linux

  1. Bagaimana Mengganti Nama File di Linux?

  2. Bagaimana cara memeriksa syslog di Bash di Linux?

  3. Bagaimana cara menyimpan riwayat bash saya di seluruh sesi?

  1. Cara memindahkan file di Linux

  2. Cara Menghapus Riwayat Baris Perintah BASH di Linux

  3. Cara Menghapus Riwayat Bash di Linux