Jika Anda menghabiskan banyak waktu di baris perintah, melihat riwayat perintah yang sebelumnya Anda jalankan dapat menjadi fitur yang berguna yang dapat mempersingkat waktu dan meningkatkan produktivitas Anda.
Pada artikel ini, kita akan berbicara tentang perintah history
, yang memungkinkan Anda untuk melihat daftar perintah yang dieksekusi sebelumnya, mencari di dalam daftar riwayat, dan memanipulasi file history.
Menggunakan Perintah history dan Ekspansi history
history adalah shell builtin, dan perilakunya mungkin sedikit berbeda dari shell ke shell. Dalam artikel ini, kita akan membahas perintah history
bawaan dalam versi Bash.
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 history, dan !-n
pada perintah pada baris n
ke belakang. Dalam contoh berikut ini, kami menjalankan perintah pada baris ke 467
dalam daftar history di atas:
!467
Biasanya, history
menampilkan banyak baris output yang tidak sesuai di layar. Untuk melihat output satu halaman sekaligus, gabungkan ke perintah lain seperti 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 history, maka perintah yang Anda ketikkan:
history -5
Gunakan tombol panah atas dan bawah 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 mengawali perintah dengan sudo
, dan alih-alih mengetik ulang perintah, Anda dapat mengetik:
sudo !!
!-1
sama dengan !!
dan jalankan perintah terakhir dari daftar history,!-2
untuk baris kedua hingga terakhir, dan seterusnya.
ekspansi kata (^kata1^kata2^
) memungkinkan Anda menjalankan kembali perintah terakhir menggantikan “kata1” dengan “kata2”. Jika Anda secara tidak sengaja mengetik perintah sduo
alih-alih perintah sudo
, Anda dapat mengulangi perintah menggunakan kata yang benar dengan:
^sduo^sudo^
Gunakan perintah grep
untuk memfilter output. Misalnya, untuk melihat semua perintah yang ada kata “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 baris yang cocok. Untuk pindah ke saran yang cocok berikutnya, tekan Ctrl-R
lagi.
Periksa manual Bash untuk informasi lebih lanjut tentang History Expansion, modifiers, dan designators.
Menyimpan Daftar Riwayat
Secara default, saat memulai sesi baru, Bash membaca daftar riwayat di file .bash_history
. Daftar perintah yang dieksekusi dalam sesi saat ini disimpan dalam memori dan disimpan ke file ketika sesi ditutup.
Jika Anda membuka beberapa sesi shell, hanya riwayat sesi yang ditutup terakhir yang disimpan.
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 history.
history -w
Menghapus daftar History
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 baris atau beberapa baris tertentu antara posisi awal dan akhir dari daftar riwayat, gunakan opsi -d
.
Misalnya, untuk menghapus baris antara 365
dan 375
(termasuk baris nomor tersebut), Anda dapat mengetik:
history -d 365 375
Jika Anda hanya menyediakan satu nomor untuk opsi -d
, perintah tersebut menghapus baris yang diberikan. Ketika bilangan bulat negatif digunakan, baris dihitung mundur dari akhir daftar history.
Perintah di atas menghapus daftar histori, 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 Perintah history
Perilaku history Bash dapat didefinisikan menggunakan beberapa environment variables yang berbeda. Saat memodifikasi perilaku history, set variabel dalam ~/.bashrc
atau file konfigurasi lainnya yang dimuat ketika user masuk.
Secara default, Bash menyimpan 500 baris dalam daftar history 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 riwayat:
ignorespace
– perintah yang dimulai dengan ruang spasi disimpan dalam daftar riwayat.ignoredups
– perintah duplikat tidak disimpan.ignoreboth
– adalah gabungan dari perintahignorespace
danignoredups
,
HISTCONTROL=ignoreboth
Ketika variabel HISTTIMEFORMAT
diatur, Bash menambahkan timestamp eksekusi untuk perintah pada setiap baris.
Misalnya, jika Anda mengatur:
HISTTIMEFORMAT="%F %T: "
Perintah history 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 perintah history untuk melihat perintah panjang yang telah Anda gunakan sebelumnya yang tidak dapat Anda ingat atau untuk menyingkat waktu.