Pintasan Keyboard
Untuk menelusuri riwayat bash Anda, Anda dapat menggunakan beberapa bash keyboard berguna bash. Tekan pintasan dan perintah ini yang sebelumnya Anda gunakan akan muncul di prompt.
- Panah Atas atau Ctrl + P: Buka perintah sebelumnya di riwayat Anda. Tekan tombol beberapa kali untuk berjalan mundur melalui perintah yang Anda gunakan.
- Panah Bawah atau Ctrl + N: Buka perintah selanjutnya di riwayat Anda. Tekan tombol beberapa kali untuk berjalan ke depan melalui perintah yang Anda gunakan.
- Alt + R: Kembalikan perubahan apa pun pada perintah yang Anda tarik dari riwayat jika Anda mengeditnya pada baris saat ini.
Bash juga memiliki mode "recall" khusus yang dapat Anda gunakan untuk mencari perintah yang sebelumnya Anda jalankan, daripada menggulirnya satu demi satu.
- Ctrl + R: Ingat kembali perintah terakhir yang sesuai dengan karakter yang Anda berikan. Tekan pintasan ini dan mulailah mengetik untuk mencari riwayat bash Anda untuk sebuah perintah.
- Ctrl + O: Jalankan perintah yang Anda temukan dengan Ctrl + R.
- Ctrl + G: Tinggalkan mode pencarian riwayat tanpa menjalankan perintah.
Lihat Sejarah Bash Anda
Anda dapat mencetak seluruh riwayat bash ke layar dengan menjalankan satu perintah:
history
Anda akan melihat daftar semua perintah dalam riwayat bash Anda, bersama dengan nomor di sebelah kiri masing-masing. Perintah dengan "1" di sebelahnya adalah perintah tertua dalam riwayat bash Anda, sementara perintah dengan angka tertinggi adalah yang terbaru.
grep
perintah untuk mencari sejarah perintah Anda.
history | grep your_search
tail
perintah untuk melihat hanya sejumlah kecil perintah terbaru yang Anda jalankan. Sebagai contoh, perintah berikut akan menunjukkan 5 entri terakhir dalam sejarah Anda.
history | tail -5
Jalankan Perintah Dari Riwayat Anda
Bash dapat dengan cepat "memperluas" perintah sebelumnya, atau memperluas dan memodifikasinya. Fitur ini dikenal sebagai "ekspansi sejarah" dan menggunakan tanda seru, yang dikenal sebagai "bang". Ketik saja pada prompt dan tekan Enter untuk menjalankannya seperti Anda menjalankan perintah lain.
Untuk menjalankan perintah tertentu dari riwayat Anda dengan nomornya, gunakan perintah berikut:
!#
Misalnya, katakanlah Anda ingin menjalankan perintah ke-12 dari riwayat bash Anda. Itu adalah perintah dengan "12" di sebelah kiri saat Anda menjalankan
history
perintah. Anda mengetikkan perintah berikut.
!12
!!
Anda juga bisa merujuk ke perintah sejumlah baris tertentu kembali. Sebagai contoh,
!-2
akan menjalankan perintah kedua ke terakhir yang Anda jalankan.
!!
berarti hal yang sama
!-1
!!
atau salah satu dari ekspresi lain di bagian ini. Misalnya, Anda dapat mengetikkan perintah berikut untuk menjalankan kembali perintah terakhir yang Anda jalankan
sudo
memberikannya hak akses root. Ini sangat berguna jika Anda lupa menambahkan
sudo
sebelum menjalankan perintah.
sudo !!
Atau, misalnya, Anda dapat menjalankan kembali perintah sebelumnya dan menyalurkan outputnya ke grep untuk mencari beberapa teks.
!! | grep text
!text
Jadi, jika Anda baru saja menjalankan perintah yang dimulai dengan
ping
Anda dapat menjalankan perintah berikut untuk mencarinya. Ini akan mencari mundur melalui riwayat Anda, temukan perintah terbaru yang diawali dengan “
pi
“, Dan segera jalankan:
!pi
:p
ke salah satu ekspansi dan bash di atas akan mencetak perintah ke terminal tanpa menjalankannya. Ini berguna jika Anda ingin mengonfirmasi bahwa Anda memilih perintah yang benar sebelum Anda menjalankannya.
!12:p
!!:p
!text:p
Gunakan Kembali Argumen Dari Sejarah Anda
Bash juga memungkinkan Anda untuk menjalankan perintah baru, tetapi gunakan argumen dari perintah sebelumnya dalam riwayat Anda. Ini dapat membantu Anda dengan cepat menggunakan kembali argumen panjang atau rumit tanpa harus mengetik ulang.
command !$
Misalnya, katakanlah Anda menjalankan perintah
touch /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 sebelumnya.
ping google.com -c 4
lalu 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:
command !^
Jadi, jika Anda berlari
ping google.com -c 4
lalu berlari
ping !^
bash akan memperluas ini menjadi “
ping google.com'
command !*
Jadi, jika Anda berlari
ping !*
sebagai gantinya, bash akan secara otomatis mengisi semua argumen yang Anda gunakan pada perintah sebelumnya.
command !abc:#
Sebagai contoh, kami menjalankan perintah
sudo hostname ubuntu
sebelumnya. Jika kita menjalankan perintah berikut, bash akan mencari mundur sepanjang sejarah untuk menemukan perintah terakhir yang dimulai dengan huruf yang kita ketik dan isi argumen yang kita tentukan. Jadi, jika kita lari
echo !su:2
bash akan mencari kembali untuk menemukan perintah terakhir yang dimulai dengan “
su
"Dan isi argumen keduanya, yaitu"
ubuntu
“.
Trik lain bekerja seperti yang Anda harapkan. Misalnya, mengganti nomor dengan tanda bintang, yang dikenal sebagai wildcard, menyebabkan bash untuk 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 dapat berguna untuk mengoreksi kesalahan ketik dalam perintah. Sebagai contoh, perintah berikut 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 berlari
^gog^goog
dan bash akan menjalankan perintah
ping google.com
sebagai gantinya.
Di mana Riwayat Anda Disimpan, dan Cara Membersihkannya
Shell bash menyimpan riwayat perintah yang Anda jalankan di file riwayat akun pengguna Anda di ~ /.bash_history secara default. Misalnya, jika nama pengguna Anda bob, Anda akan menemukan file ini di /home/bob/.bash_history.
Karena riwayat Anda disimpan dalam file, itu tetap ada di antara sesi. Anda dapat menjalankan beberapa perintah, keluar, kembali keesokan harinya, dan perintah-perintah itu akan tetap ada di file riwayat Anda siap untuk dilihat dan digunakan. Setiap akun pengguna memiliki file sejarahnya sendiri dengan riwayat perintah terpisah.
Untuk menghapus riwayat bash Anda, Anda dapat menjalankan perintah berikut. Ini menghapus konten file.bash_history akun pengguna Anda:
history -c
HISTSIZE
variabel. Standarnya biasanya 500 atau 1000 entri. Anda dapat menjalankan perintah berikut untuk melihat ukuran riwayat bash pada sistem Anda.
echo $HISTSIZE
Untuk mengatur sejarah Anda ke nol, jalankan perintah berikut.
HISTSIZE=0
Untuk sesi saat ini, bash tidak akan menyimpan entri riwayat apa pun kecuali Anda menjalankan perintah seperti
HISTSIZE=1000
untuk mengaturnya kembali ke sejumlah entri tertentu.
Cara Mengabaikan Spasi dan Duplikat
Bash memungkinkan Anda mengabaikan entri riwayat yang dimulai dengan spasi jika Anda mengaturnya
HISTCONTROL
variabel menjadi
ignorespace.
HISTCONTROL=ignorespace
Ketik spasi sebelum perintah sebelum menjalankannya di shell bash dan perintah akan berjalan normal, tetapi tidak akan muncul di riwayat Anda jika Anda mengaktifkan variabel ini. Ini memungkinkan Anda untuk menjaga sejarah Anda sedikit lebih bersih, memilih untuk menjalankan perintah tanpa mereka muncul di riwayat Anda.
HISTCONTROL
untuk
ignoredups.
HISTCONTROL=ignoredups
ignorespace
dan
ignoredups
fitur, atur
HISTCONTROL
variabel menjadi
ignoreboth.
HISTCONTROL=ignoreboth
Perhatikan bahwa variabel bash yang Anda tetapkan hanya akan bertahan untuk sesi saat ini. Anda harus menambahkan ini ke file.bashrc akun pengguna agar nilai ini ditetapkan secara otomatis di setiap sesi bash yang Anda mulai, jika Anda menginginkannya.