GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana mengelola riwayat perintah Linux Anda

Anda mungkin tahu tentang menggunakan tombol panah atas dan bawah untuk menggulir riwayat Bash Anda, tetapi tahukah Anda bahwa ada lebih banyak lagi riwayat Bash daripada sekadar mengulangi perintah? Ada lebih banyak cerita. Atau, haruskah itu lebih ke sejarah ? Dalam kedua kasus tersebut, perintah histori adalah salah satu perintah yang tidak jelas yang kuat dan berguna untuk diketahui setidaknya pada tingkat dasar. Artikel ini akan menghilangkan misteri dari riwayat Bash untuk menjadikannya alat sysadmin yang lebih ramah.

Latar belakang

Di Bash, riwayat perintah Anda disimpan dalam file (.bash_history ) di direktori home Anda. Awalan (.) membuat file tersembunyi dari tampilan normal. Untuk melihatnya, keluarkan ls -a perintah.

$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc

Anda dapat mengoperasikan file .bash_history seperti yang Anda lakukan pada file teks ASCII biasa lainnya.

Tiga variabel lingkungan terkait yang perlu Anda perhatikan adalah HISTFILE, HISTFILESIZE, dan HISTSIZE.

  • HISTFILE—/home//.bash_history
  • HISTFILESIZE—1000
  • HISTSIZE—1000

Variabel HISTFILE menyimpan nama dan lokasi file riwayat Bash Anda. HISTFILESIZE adalah berapa banyak perintah yang dapat disimpan dalam .bash_history mengajukan. HISTSIZE adalah jumlah perintah yang di-cache. Setelah Anda mencapai 1000 perintah, perintah terlama akan dibuang karena yang baru disimpan.

$ echo $HISTSIZE
1000
$ echo $HISTFILESIZE
1000
$ echo $HISTFILE
/home/khess/.bash_history

Setiap pengguna, termasuk root, memiliki variabel dan ukuran ini yang ditetapkan secara default. Jika Anda ingin mengubah variabel ini, edit file .bashrc di direktori home Anda. Misalnya, jika Anda ingin mengubah variabel ukuran menjadi 500 perintah, edit .bashrc file dan gunakan entri berikut:

export HISTSIZE=500
export HISTFILESIZE=500

Untuk menggunakan nilai baru tanpa log off dan kembali lagi, Anda dapat menjalankan .bashrc berkas.

$ . ~/.bashrc

Nilai Anda sekarang aktif untuk shell Anda saat ini dan subkulit apa pun.

$ echo $HISTSIZE
500
$ echo $HISTFILESIZE
500

Jika Anda tidak ingin riwayat Anda menyimpan perintah duplikat, Anda dapat menginstruksikan riwayat Anda untuk mengabaikan entri duplikat dengan menambahkan yang berikut ini ke file .bashrc Anda:

export HISTCONTROL=ignoredups

Masalahnya

Masalah dengan riwayat Bash adalah bahwa itu tidak ditulis ke .bash_history file sampai Anda log off. Ini membuat tidak mungkin menggunakan perintah history untuk scripting. Misalnya, Anda sedang mengajar kelas Linux, dan Anda ingin memeriksa apakah siswa telah menjalankan perintah tertentu untuk menyalin file mereka ke drive eksternal yang terpasang. Jika siswa tetap masuk ke sistem, Anda tidak akan dapat menentukan apakah penyalinan telah dilakukan karena skrip Anda menggunakan file riwayat mereka (/home/student/.bash_history) untuk memeriksa apakah perintah telah berjalan.

Solusinya

Untuk mengatasi fitur ini, gunakan tulis opsi untuk history memerintah. Sebagai bagian dari instruksi kelas, Anda akan meminta siswa menjalankan perintah ini untuk menyimpan riwayat mereka meskipun mereka tidak keluar.

$ history -w

Ini menulis semua riwayat perintah sesi saat ini ke HISTFILE. Dan sekarang skrip cek Anda dapat dengan mudah menemukan apakah perintah telah dijalankan. Anda juga harus percaya bahwa siswa akan menjalankan perintah history.

[ Lihat pelajaran sejarah Seth Kenlon: Jadikan riwayat Bash lebih berguna dengan tips ini ]

Masalah lain

Karena HISTSIZE dan HISTFILESIZE relatif besar (1000 perintah), kemungkinan siswa menjalankan perintah sebelumnya. Anda dapat menambahkan entri export HISTCONTROL=ignoredups ke dalam .bashrc mereka, tetapi ini tidak akan membantu jika siswa menjalankan perintah serupa dua hari lalu karena file hanya akan menampilkan satu perintah.

Solusi untuk masalah ini

Untuk mengatasi masalah ini, Anda harus menghapus riwayat siswa saat masuk. Edit file .bashrc lagi dan tambahkan perintah berikut ke dalamnya.

history -c

Perintah ini menghapus riwayat mereka pada setiap log masuk dan menghilangkan masalah mengambil perintah yang dijalankan sebelumnya. Anda tidak perlu khawatir tentang mengambil perintah dari sesi sebelumnya karena sistem akan log off pengguna yang menganggur setelah jangka waktu tertentu jika Anda mengatur batas waktu menganggur di /etc/profile . Edit /etc/profile file dan tambahkan entri berikut.

TMOUT=300

Variabel TMOUT menggunakan beberapa detik waktu idle. Dalam hal ini, 300 detik adalah lima menit. Anda dapat mengatur nilai ini ke beberapa detik. Nilai ini akan berlaku pada log masuk berikutnya untuk semua pengguna. Untuk menyetel nilai waktu tunggu individual, gunakan .bashrc tetapi sadarilah bahwa pengguna dapat mengubah file ini sesuka hati.

[ Unduh sekarang:Panduan sysadmin untuk skrip Bash. ] 

Menutup

Bash history adalah alat yang berguna, tetapi bisa membuat frustasi jika Anda tidak terbiasa dengan opsi dan kebiasaannya. Ada lebih banyak pilihan yang tersedia dalam sejarah. Periksa halaman manual untuk informasi lebih lanjut. Dan ingat bahwa setiap perintah yang Anda masukkan adalah sejarah yang sedang dibuat.


Linux
  1. Cara menggunakan perintah history di Linux

  2. Bagaimana cara memonitor server Linux Anda?

  3. Cara Menghapus Riwayat Bash di Linux

  1. Cara Menggunakan Perintah apt untuk Mengelola Paket di Linux

  2. Cara Menghapus Perintah Tertentu Dari Riwayat Bash Di Linux

  3. Perintah sejarah Linux

  1. Cara Menghapus Riwayat Baris Perintah BASH di Linux

  2. Cara menggunakan Perintah Su di Linux

  3. Cara Menyimpan riwayat Perintah Pengguna Terpilih di Linux