Android

Perintah sejarah di linux (bash history)

how to Delete some/all commands from history in Unix/linux

how to Delete some/all commands from history in Unix/linux

Daftar Isi:

Anonim

, kita akan berbicara tentang perintah history , yang memungkinkan Anda untuk melihat daftar perintah yang dieksekusi sebelumnya, mencari daftar, dan memanipulasi file histori.

Menggunakan Perintah history dan Ekspansi Sejarah

history adalah shell builtin, dan perilakunya mungkin sedikit berbeda dari shell ke shell. Kami akan membahas versi Bash bawaan dalam history .

Dalam bentuknya yang paling sederhana, ketika dipanggil tanpa opsi atau argumen apa pun, perintah history menampilkan seluruh daftar riwayat dengan nomor baris.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

Mengetik !n mengeksekusi perintah ke-n dari daftar histori, dan !-n pada perintah n ke belakang. Pada contoh berikut, kami menjalankan perintah pada baris 467 :

!467

Cara lain untuk menjalankan perintah adalah dengan menggunakan !word Ekspansi !word . word mengacu pada perintah terbaru yang dimulai dengan 'kata'.

Biasanya, history menampilkan banyak garis keluaran yang tidak sesuai di layar. Untuk melihat output satu halaman pada suatu waktu, kirimkan ke program pager seperti perintah more atau less :

history | less

Untuk menampilkan n baris terakhir, berikan angka sebagai argumen pada perintah. Misalnya, untuk melihat hanya lima baris terakhir dari daftar riwayat yang Anda ketikkan:

history -5

Gunakan tombol panah up dan down untuk menavigasi entri dalam daftar. Ketika perintah yang Anda cari ditampilkan, tekan Enter untuk menjalankannya.

Ketik !! untuk menjalankan perintah sebelumnya:

!!

Ini sangat berguna ketika Anda lupa untuk mengambil perintah dengan sudo , dan alih-alih mengetik ulang perintah, Anda dapat mengetik:

sudo !!

!-1 sama dengan !! dan menjalankan perintah terakhir dari daftar sejarah !-2 detik ke terakhir, dan seterusnya.

^word1^word2^ ekspansi memungkinkan Anda menjalankan kembali perintah terakhir menggantikan "word1" dengan "word2". Jika Anda secara tidak sengaja mengetik sduo command alih-alih sduo command sudo command Anda dapat mengulangi perintah tersebut menggunakan kata yang benar dengan:

^sduo^sudo^

Gunakan perintah grep untuk memfilter output. Misalnya, untuk melihat semua perintah termasuk "nano", Anda akan menjalankan:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

Sekarang, jika Anda ingin menjalankan kembali perintah nano setup.py cukup ketik:

!356

Cara lain untuk mencari melalui sejarah perintah adalah dengan menekan Ctrl-R . Prompt akan berubah menjadi yang berikut, dan Anda dapat mulai mencari perintah yang sebelumnya dieksekusi.

(reverse-i-search)`':

Shell akan menampilkan garis yang cocok. Untuk pindah ke saran yang cocok berikutnya, tekan Ctrl-R lagi.

Periksa manual Bash untuk informasi lebih lanjut tentang Perluasan Sejarah, pengubah, dan perancang.

Menyimpan Daftar Riwayat

Secara default, saat memulai sesi baru, Bash membaca daftar riwayat dari file .bash_history . Daftar perintah yang dieksekusi dalam sesi saat ini disimpan dalam memori dan disimpan ke file ketika sesi ditutup.

Opsi -a memungkinkan Anda untuk menyimpan daftar riwayat sesi saat ini ke file .bash_history :

history -a

Opsi -w menulis daftar riwayat lengkap ke file riwayat.

history -w

Kliring Sejarah

Perintah history memungkinkan Anda untuk menghapus daftar riwayat lengkap atau menghapus bagian-bagian tertentu.

Untuk menghapus daftar riwayat, gunakan opsi -c :

history -c

Untuk menghapus garis atau garis tertentu antara posisi awal dan akhir dari daftar riwayat, gunakan opsi -d .

Misalnya, untuk menghapus garis antara 365 dan 375 (termasuk garis itu), Anda harus mengetik:

history -d 365 375

Ketika bilangan bulat negatif digunakan, garis dihitung mundur dari akhir daftar sejarah.

Perintah di atas menghapus daftar riwayat, yang disimpan dalam memori, tetapi tidak menghapus entri dari file .bash_history pada disk. Untuk menghapus file, Anda perlu menulis daftar riwayat ke file:

history -c history -w

Memodifikasi Perilaku Sejarah

Perilaku riwayat Bash dapat didefinisikan menggunakan beberapa variabel lingkungan yang berbeda. Saat memodifikasi perilaku histori, setel variabel dalam ~/.bashrc atau file konfigurasi lainnya yang dimuat ketika pengguna masuk.

Secara default, Bash menyimpan 500 baris dalam daftar sejarah perintah. Variabel HISTSIZE memungkinkan Anda untuk mengubah nilai ini. Untuk mengaturnya menjadi 10.000, tambahkan baris berikut ke file .bashrc Anda:

HISTSIZE=10000

Variabel HISTCONTROL menerima daftar nilai yang dipisahkan oleh titik dua yang menentukan bagaimana perintah disimpan dalam daftar sejarah:

  • ignorespace - perintah yang dimulai dengan ruang tidak disimpan dalam daftar riwayat. ignoredups - perintah duplikat tidak disimpan. ignoreboth - adalah singkatan, termasuk ignorespace dan ignoredups .

HISTCONTROL=ignoreboth

Ketika variabel HISTTIMEFORMAT diatur, Bash menambahkan timestamp eksekusi untuk perintah pada setiap baris.

Misalnya, jika Anda mengatur:

HISTTIMEFORMAT="%F %T: "

Sejarah akan ditampilkan dalam format berikut:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

Kesimpulan

Perintah history menampilkan daftar perintah yang dieksekusi sebelumnya. Misalnya, Anda dapat menggunakan histori untuk melihat perintah panjang yang Anda gunakan sebelumnya yang tidak dapat Anda ingat.

terminal sejarah