Jika Anda menghabiskan banyak waktu di baris perintah, melihat riwayat perintah yang telah Anda jalankan sebelumnya bisa menjadi fitur berguna yang dapat membuat pekerjaan Anda sehari-hari menjadi lebih mudah dan meningkatkan produktivitas Anda.
Pada artikel ini, kita akan berbicara tentang history
perintah, yang memungkinkan Anda melihat daftar perintah yang dieksekusi sebelumnya, menelusuri daftar, dan memanipulasi file riwayat.
Menggunakan history
Ekspansi Perintah dan Histori #
history
adalah shell builtin, dan perilakunya mungkin sedikit berbeda dari shell ke shell. Kami akan membahas versi bawaan Bash dari history
.
Dalam bentuknya yang paling sederhana, ketika dipanggil tanpa opsi atau argumen apa pun, history
perintah 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 riwayat, dan !-n
perintah n baris kembali. Pada contoh berikut kita menjalankan perintah pada baris 467
:
!467
Cara lain untuk menjalankan perintah adalah dengan menggunakan !word
ekspansi. word
mengacu pada perintah terbaru yang dimulai dengan 'word'.
Biasanya, history
menampilkan banyak baris output yang tidak muat di layar. Untuk melihat output satu halaman pada satu waktu, kirimkan ke program pager seperti more
atau less
perintah:
history | less
Untuk menampilkan n
terakhir baris, berikan nomor sebagai argumen ke perintah. Misalnya, untuk hanya melihat lima baris terakhir dari daftar riwayat, ketik:
history -5
Gunakan tombol up
dan down
tombol panah untuk menavigasi entri dalam daftar. Ketika perintah yang Anda cari ditampilkan, tekan Enter
untuk mengeksekusinya.
Ketik !!
untuk menjalankan perintah sebelumnya:
!!
Ini sangat berguna ketika Anda lupa untuk menambahkan perintah dengan sudo
, dan alih-alih mengetik ulang perintah, Anda dapat mengetik:
sudo !!
!-1
sama dengan !!
dan menjalankan perintah terakhir dari daftar riwayat, !-2
detik terakhir, dan seterusnya.
^word1^word2^
ekspansi memungkinkan Anda menjalankan kembali perintah terakhir menggantikan "word1" dengan "word2". Jika Anda tidak sengaja mengetik sduo command
alih-alih sudo command
Anda dapat mengulangi perintah menggunakan kata yang benar dengan:
^sduo^sudo^
Gunakan grep
perintah untuk menyaring 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 nano setup.py
perintah cukup ketik:
!356
Cara lain untuk menelusuri riwayat perintah adalah dengan menekan Ctrl-R
. Prompt akan berubah sebagai berikut, dan Anda dapat mulai mencari perintah yang dieksekusi sebelumnya.
(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 Ekspansi Sejarah, pengubah, dan penanda.
Menyimpan Daftar Riwayat #
Secara default, saat memulai sesi baru, Bash membaca daftar riwayat dari .bash_history
file . Daftar perintah yang dijalankan pada sesi saat ini disimpan dalam memori dan disimpan ke file saat sesi ditutup.
Jika Anda membuka beberapa sesi shell, hanya riwayat sesi yang terakhir ditutup yang disimpan.
-a
opsi memungkinkan Anda untuk menyimpan daftar riwayat sesi saat ini ke .bash_history
berkas:
history -a
-w
opsi menulis daftar riwayat lengkap ke file riwayat.
history -w
Menghapus Riwayat #
history
perintah memungkinkan Anda untuk menghapus daftar riwayat lengkap atau menghapus bagian tertentu.
Untuk menghapus daftar riwayat, gunakan -c
pilihan:
history -c
Untuk menghapus baris atau garis tertentu antara posisi awal dan akhir dari daftar riwayat, gunakan -d
pilihan.
Misalnya, untuk menghapus garis antara 365 dan 375 (termasuk garis tersebut), ketikkan:
history -d 365 375
Jika Anda hanya memberikan satu nomor ke -d
pilihan, perintah menghapus baris yang diberikan.
Ketika bilangan bulat negatif digunakan, garis dihitung mundur dari akhir daftar riwayat.
Perintah di atas menghapus daftar riwayat, yang disimpan dalam memori, tetapi tidak menghapus entri dari .bash_history
file pada disk. Untuk menghapus file, Anda perlu menulis daftar riwayat ke file:
history -c
history -w
Memodifikasi Perilaku Riwayat #
Perilaku sejarah Bash dapat didefinisikan menggunakan beberapa variabel lingkungan yang berbeda. Saat memodifikasi perilaku riwayat, setel variabel di ~/.bashrc
atau file konfigurasi lainnya yang dimuat saat pengguna login.
Secara default Bash menyimpan 500 baris dalam daftar riwayat perintah. HISTSIZE
variabel memungkinkan Anda untuk mengubah nilai ini. Untuk menyetelnya ke 10.000 tambahkan baris berikut ke .bashrc
. Anda berkas:
HISTSIZE=10000
HISTCONTROL
variabel menerima daftar nilai yang dipisahkan titik dua yang menentukan bagaimana perintah disimpan dalam daftar riwayat:
ignorespace
- perintah yang dimulai dengan spasi tidak disimpan dalam daftar riwayat.ignoredups
- perintah duplikat tidak disimpan.ignoreboth
- adalah singkatan, termasukignorespace
danignoredups
.
HISTCONTROL=ignoreboth
Ketika HISTTIMEFORMAT
variabel diatur, Bash menambahkan stempel waktu eksekusi untuk perintah di setiap baris.
Misalnya, jika Anda menyetel:
HISTTIMEFORMAT="%F %T: "
Sejarah akan ditampilkan dalam format berikut:
413 2019-10-27 21:13:07: sudo nano /etc/hosts
Kesimpulan #
history
perintah menampilkan daftar perintah yang dieksekusi sebelumnya. Misalnya, Anda dapat menggunakan riwayat untuk melihat perintah panjang yang telah Anda gunakan sebelumnya yang tidak dapat Anda ingat.
Jika Anda memiliki pertanyaan atau umpan balik, silakan tinggalkan komentar.