Cara Menggunakan Bash History Anda di Linux atau terminal macOS
Bash shell adalah lingkungan terminal standar yang disertakan dengan sebagian besar distribusi Linux, disertakan dengan macOS, dan tersedia untuk instalasi pada Windows 10. Ia mengingat perintah yang Anda ketik dan menyimpannya dalam file histori. Anda mungkin tahu beberapa dasar dari sejarah bash, tetapi jauh lebih kuat dari yang Anda sadari.
Pintasan keyboard
Untuk menelusuri riwayat bash Anda, Anda dapat menggunakan beberapa pintasan keyboard berguna dari bash. Tekan pintasan ini dan perintah yang sebelumnya Anda gunakan akan muncul pada prompt.
- Panah Atas atau Ctrl + P: Buka perintah sebelumnya dalam riwayat Anda. Tekan tombol beberapa kali untuk berjalan mundur melalui perintah yang Anda gunakan.
- Panah Bawah atau Ctrl + N: Pergi ke perintah berikutnya dalam sejarah Anda. Tekan tombol beberapa kali untuk berjalan maju melalui perintah yang Anda gunakan.
- Alt + R: Kembalikan perubahan pada perintah yang Anda tarik dari riwayat Anda jika Anda telah mengeditnya di baris saat ini.
Bash juga memiliki mode "penarikan" khusus yang dapat Anda gunakan untuk mencari perintah yang sebelumnya Anda jalankan, daripada menggulirnya satu per satu.
- Ctrl + R: Ingat perintah terakhir yang cocok dengan karakter yang Anda berikan. Tekan pintasan ini dan mulai mengetik untuk mencari perintah bash history Anda.
- Ctrl + O: Jalankan perintah yang Anda temukan dengan Ctrl + R.
- Ctrl + G: Tinggalkan mode pencarian riwayat tanpa menjalankan perintah.
Lihat Riwayat Bash Anda
Anda dapat mencetak seluruh riwayat bash ke layar dengan menjalankan satu perintah:
sejarah
Anda akan melihat daftar semua perintah dalam sejarah bash Anda, bersama dengan nomor di sebelah kiri masing-masing. Perintah dengan "1" di sebelahnya adalah perintah tertua dalam sejarah bash Anda, sedangkan perintah dengan angka tertinggi adalah yang terbaru.
Anda dapat melakukan apapun yang Anda suka dengan output. Misalnya, Anda dapat mengirim pipa ke grep
perintah untuk mencari riwayat perintah Anda.
sejarah | grep your_search
Anda juga dapat menyalurkannya ke ekor
perintah untuk melihat hanya sejumlah kecil dari perintah terbaru yang telah Anda jalankan. Misalnya, perintah berikut akan menampilkan 5 entri terakhir dalam riwayat Anda.
sejarah | ekor -5
Jalankan Perintah Dari Riwayat Anda
Bash dapat dengan cepat "memperluas" perintah sebelumnya, atau memperluasnya dan memodifikasinya. Fitur ini dikenal sebagai "ekspansi sejarah" dan menggunakan tanda seru, yang dikenal sebagai "bang". Cukup ketik pada prompt dan tekan Enter untuk menjalankannya seperti Anda akan menjalankan perintah lain.
Untuk menjalankan perintah tertentu dari riwayat Anda dengan nomornya, gunakan perintah berikut:
!#
Misalnya, katakanlah Anda ingin menjalankan perintah ke-12 dari bash history Anda. Itu perintah dengan "12" di sebelah kiri ketika Anda menjalankan sejarah
perintah. Anda mengetik perintah berikut.
!12
Untuk menjalankan kembali perintah terakhir yang Anda jalankan, ketikkan yang berikut ini. Ini memiliki efek yang sama dengan menekan panah Atas sekali untuk melihat perintah sebelumnya dan kemudian menekan Enter.
!!
Anda juga dapat merujuk ke perintah sejumlah baris kembali. Sebagai contoh, !-2
akan menjalankan perintah kedua hingga terakhir yang Anda jalankan. !!
artinya sama dengan !-1
.
Ekspansi ini bekerja di mana saja di telepon. Anda dapat menambahkan apa pun yang Anda suka sebelum atau sesudah !!
atau ekspresi lain apa pun di bagian ini. Misalnya, Anda bisa mengetik perintah berikut untuk menjalankan kembali perintah terakhir yang Anda jalankan sudo
, memberikannya root privilege. Ini sangat berguna jika Anda lupa menambahkan sudo
sebelum menjalankan perintah.
sudo !!
Atau, misalnya, Anda bisa menjalankan kembali perintah sebelumnya dan menyalurkan outputnya ke grep untuk mencari beberapa teks.
!! | teks grep
Untuk mencari perintah dalam riwayat Anda dan menjalankannya, ketikkan yang berikut ini. Ini akan menjalankan perintah terakhir yang cocok dengan teks yang Anda tentukan:
!teks
Jadi, jika Anda baru-baru ini menjalankan perintah yang dimulai dengan ping
, Anda dapat menjalankan perintah berikut untuk mencarinya. Ini akan mencari mundur melalui riwayat Anda, cari perintah terbaru yang dimulai dengan "pi
“, Dan segera jalankan:
!pi
Anda dapat menambahkan : p
ke salah satu dari ekspansi di atas dan bash akan mencetak perintah ke terminal tanpa menjalankannya. Ini berguna jika Anda ingin mengonfirmasi bahwa Anda memilih perintah yang benar sebelum Anda menjalankannya.
!12: hal
!!: p
!teks: hal
Gunakan Kembali Argumen Dari Sejarah Anda
Bash juga memungkinkan Anda untuk menjalankan perintah baru, tetapi menggunakan argumen dari perintah sebelumnya dalam riwayat Anda. Ini dapat membantu Anda dengan cepat menggunakan kembali argumen yang panjang atau rumit tanpa harus mengetik ulang.
perintah! $
Misalnya, katakan Anda menjalankan perintah sentuh / home / chris / some_long_file_name_you_dont_want_to_type_again
. Anda sekarang ingin menjalankan perintah nano / home / chris / some_long_file_name_you_dont_want_to_type_again
. Daripada mengetik semuanya dari awal, Anda bisa menjalankan:
nano! $
Itu !$
akan membuat bash secara otomatis mengisi argumen terakhir dari perintah Anda sebelumnya.
Ini hanya mengisi argumen terakhir. Jadi, jika Anda berlari ping google.com -c 4
dan kemudian jalankan ping! $
, ini hanya akan berkembang menjadi “ping 4
“.
Untuk memperbaiki situasi ini, Anda dapat menggunakan trik berikut untuk memperluas argumen pertama pada baris, bukan yang terakhir:
perintah! ^
Jadi, jika Anda berlari ping google.com -c 4
lalu berlari ping! ^
, bash akan memperluas ini ke "ping google.com "
.
Untuk mengisi semua argumen yang digunakan dalam perintah sebelumnya dan bukan hanya satu argumen, Anda akan menggunakan yang berikut:
perintah! *
Jadi, jika Anda berlari ping! *
sebagai gantinya, bash akan secara otomatis mengisi semua argumen yang Anda gunakan dalam perintah sebelumnya.
Anda dapat menggunakan trik yang sama yang Anda gunakan untuk menjalankan perintah dari riwayat Anda untuk mendapatkan argumen dari mereka. Cukup gunakan formulir berikut.
perintah! abc: #
Misalnya, kami menjalankan perintah sudo hostname ubuntu
sebelumnya. Jika kita menjalankan perintah berikut, bash akan mencari mundur melalui sejarah untuk menemukan perintah terakhir dimulai dengan huruf yang kita ketik dan isi argumen yang kita tentukan. Jadi, jika kita lari gema! su: 2
, bash akan mencari kembali untuk menemukan perintah terakhir yang dimulai dengan "su
"Dan isi argumen kedua, yaitu"ubuntu
“.
Trik lain berfungsi seperti yang Anda harapkan. Misalnya, mengganti nomor dengan tanda bintang, yang dikenal sebagai wildcard, menyebabkan bash mengisi semua argumen dari perintah:
command! abc: *
Jalankan kembali Perintah Sebelumnya dan Ubah
Bash juga memungkinkan Anda untuk menjalankan kembali perintah sebelumnya dan menentukan sesuatu yang harus diubah. Ini bisa berguna untuk memperbaiki kesalahan ketik pada suatu perintah. Misalnya, perintah berikut ini akan menjalankan kembali perintah sebelumnya, menggantikan teks “abc
"Di dalamnya dengan teks"xyz
“.
^ abc ^ xyz
Misalnya, jika Anda tidak sengaja berlari ping gogle.com
, Anda kemudian bisa lari ^ gog ^ goog
dan bash akan menjalankan perintah ping google.com
sebagai gantinya.
Di mana Riwayat Anda Disimpan, dan Cara Membersihkannya
Shell bash menyimpan histori perintah yang Anda jalankan di file histori akun pengguna Anda di ~ / .bash_history secara default. Misalnya, jika nama pengguna Anda adalah bob, Anda akan menemukan file ini di /home/bob/.bash_history.
Karena riwayat Anda disimpan dalam file, itu berlanjut di antara sesi. Anda dapat menjalankan beberapa perintah, keluar, kembali keesokan harinya, dan perintah-perintah itu masih ada dalam file riwayat Anda yang siap untuk dilihat dan digunakan. Setiap akun pengguna memiliki file riwayatnya sendiri dengan riwayat perintah terpisah.
Untuk menghapus riwayat bash Anda, Anda dapat menjalankan perintah berikut. Ini menghapus konten file .bash_history akun pengguna Anda:
sejarah -c
Bash hanya mengingat sejumlah perintah secara default, mencegah file histori tumbuh terlalu besar. Jumlah entri riwayat yang diingat oleh bash dikendalikan oleh KEBIJAKAN
variabel. Standarnya biasanya 500 atau 1000 entri. Anda dapat menjalankan perintah berikut untuk melihat ukuran bash history di sistem Anda.
echo $ HISTSIZE
Untuk mengatur riwayat Anda ke nol, jalankan perintah berikut.
HISTSIZE = 0
Untuk sesi saat ini, bash tidak akan menyimpan entri riwayat apa pun kecuali jika Anda menjalankan perintah suka HISTSIZE = 1000
untuk mengaturnya kembali ke sejumlah entri tertentu.
Cara Mengabaikan Spasi dan Duplikat
Bash memungkinkan Anda untuk mengabaikan entri riwayat yang dimulai dengan spasi jika Anda mengatur HISTCONTROL
variabel ke abaikan.
HISTCONTROL = ignorespace
Ketikkan spasi sebelum perintah sebelum menjalankannya di bash shell dan perintah itu akan berjalan secara normal, tetapi tidak akan muncul dalam riwayat Anda jika Anda mengaktifkan variabel ini. Ini memungkinkan Anda untuk menjaga riwayat Anda sedikit lebih bersih, memilih untuk menjalankan perintah tanpa mereka muncul di riwayat Anda.
Bash juga memungkinkan Anda untuk mengabaikan perintah duplikat yang dapat mengacaukan riwayat Anda. Untuk melakukannya, atur HISTCONTROL
untuk diabaikan.
HISTCONTROL = ignoredups
Untuk menggunakan keduanya abaikan
dan diabaikan
fitur, atur HISTCONTROL
variabel ke bodoh.
HISTCONTROL = ignoreboth
Perhatikan bahwa variabel bash yang Anda atur hanya akan bertahan untuk sesi saat ini. Anda harus menambahkan ini ke file .bashrc akun pengguna Anda agar nilai-nilai ini secara otomatis diset di setiap sesi bash yang Anda mulai, jika Anda menginginkannya.
Bash shell adalah alat yang kompleks dengan banyak opsi lebih banyak dari ini. Lihat bagian Bash History Builtins dan History Expansion di manual bash resmi, informasi lebih detail dan trik canggih lainnya yang dapat Anda gunakan.