Prasyarat:
Untuk melakukan langkah-langkah yang ditunjukkan dalam tutorial ini, Anda memerlukan komponen berikut:
- Sistem Linux yang dikonfigurasi dengan benar. Periksa cara mengatur VM Ubuntu di VirtualBox .
- Keakraban dasar dengan antarmuka baris perintah.
Sejarah Bas
Bash adalah shell default di sebagian besar sistem Linux modern. Sebagai penerus 'sh', shell UNIX asli, ia hadir dengan banyak fitur dan peningkatan seperti manipulasi direktori, kontrol pekerjaan, alias, riwayat perintah, dan banyak lagi.
Bash melacak semua perintah yang sebelumnya dijalankan dari terminal. Ini bisa sangat berguna dalam berbagai situasi seperti debugging. Itu juga dapat mengurangi kebutuhan untuk mengetik perintah yang sama / serupa berulang kali.
Untuk manajemen riwayat, Bash hadir dengan dua perintah bawaan:
$ jenis sejarah
$ jenis fc
Untuk menyimpan sejarah, Bash menggunakan dua teknik berbeda:
- Setiap kali bekerja dengan sesi shell, riwayatnya disimpan dalam memori.
- Saat ditutup, riwayat yang disimpan di memori dibuang ke file riwayat.
File riwayat default yang digunakan Bash terletak di:
$ kucing ~ / .bash_history
Ada juga beberapa variabel lingkungan dan pintasan keyboard yang mengubah cara Bash menangani riwayat.
Bekerja dengan Sejarah Bash
Penggunaan Dasar
Untuk mendapatkan daftar perintah yang baru dijalankan, gunakan perintah berikut:
$ sejarah
Di sini, semua perintah yang disimpan dalam buffer dicantumkan. Setiap perintah telah menetapkan nilai numerik. Perintah tertua ditugaskan dengan 1.
Kami dapat membatasi jumlah perintah untuk mencetak menggunakan perintah berikut:
$ sejarah N
Di sini, N adalah bilangan bulat dengan N >= 0. Keluarannya berisi perintah N terakhir dari riwayat.
Kami juga dapat menggunakan output bersamaan dengan grep untuk memfilter:
$ sejarah | pegangan < rangkaian >
Untuk menelusuri sejarah yang panjang, kita dapat menggunakan perintah “kurang”:
$ sejarah | lebih sedikit
Menghapus Perintah dari Sejarah
Jika Anda perlu menghapus perintah tertentu dari riwayat, gunakan perintah berikut:
$ sejarah$ sejarah -D < nomor_perintah >
$ sejarah
Demikian pula, untuk menghapus perintah dari M ke N dari riwayat, kita dapat menggunakan perintah berikut:
$ sejarah$ sejarah -D M N
$ sejarah
Untuk menghapus riwayat dari buffer RAM untuk sesi terminal saat ini, gunakan perintah berikut sebagai gantinya:
$ sejarah -C$ sejarah
Untuk menghapus riwayat dari file riwayat yang disimpan di disk, kita dapat menimpanya sepenuhnya dengan NULL:
$ kucing / dev / batal > $HISTFILE
Pengaturan Riwayat Bash
Ada beberapa cara untuk mengubah cara Bash menangani sejarah. Banyak dari opsi ini dikelola oleh variabel lingkungan.
Untuk mengubah nilainya, kami mengedit file 'bashrc':
$ nano ~ / .bashrc
Setelah mengedit, simpan file dan muat ulang di Bash.
$ sumber ~ / .bashrc
Untuk membuat perubahan di seluruh sistem, edit 'bashrc' yang terletak di lokasi berikut:
$ nano / dll. / bash.bashrc$ nano / dll. / bashrc
Ukuran buffer
Seperti disebutkan sebelumnya, Bash menggunakan dua buffer untuk menyimpan riwayat perintah dalam RAM (untuk sesi saat ini) dan dalam file disk (untuk semua sesi sebelumnya).
Ukuran buffer ini dikendalikan oleh dua variabel lingkungan:
- UKURAN SEJARAH : Menentukan jumlah entri yang akan disimpan dalam buffer RAM.
- UKURAN HISTFILE : Menentukan jumlah entri yang akan disimpan dalam file disk.
Kita dapat mengubah nilainya di 'bashrc' agar sesuai dengan kebutuhan kita:
$ nano ~ / .bashrcMisalnya, untuk menyimpan 5000 entri di kedua buffer, perbarui 'bashrc' dengan kode berikut:
$ UKURAN SEJARAH = 5000$ UKURAN HISTFILE = 5000
Pengecualian Perintah
Secara default, Bash menyimpan setiap perintah yang dijalankan di buffer riwayat. Namun, kita dapat mengonfigurasinya agar Bash mengabaikan perintah tertentu. Ini bisa berguna dalam situasi di mana Anda harus menjalankan perintah yang sama berkali-kali, mengisi buffer dengan spam.
- HISTCONTROL
Mari kita mulai dengan contoh perintah berikut:
$ gema 'biarawan' && sejarah 5$ gema 'bodoh' && sejarah 5
Seperti yang ditunjukkan oleh output dari perintah history, hanya perintah echo pertama yang didaftarkan tetapi bukan yang kedua.
Ini adalah cara kerja variabel lingkungan HISTIGNORE. Ini memberitahu Bash untuk tidak mencatat perintah di buffer sejarah berdasarkan pola tertentu. Nilai berikut tersedia:
- diabaikanup : Itu tidak dicatat jika perintah cocok dengan entri riwayat sebelumnya.
- abaikanruang : Itu tidak akan dicatat jika perintah dimulai dengan spasi di awal.
- abaikan keduanya : Ini menerapkan aturan diabaikan dan mengabaikan ruang.
- erasedups : Semua baris sebelumnya yang cocok dengan perintah saat ini akan dihapus dari riwayat.
Pada contoh pertama, kami mendemonstrasikan penggunaan ruang abaikan. Namun, tidak semua distro dapat mengirimkan Bash dengan konfigurasi ini. Seperti biasa, kita dapat menambahkannya ke 'bashrc':
$ HISTCONTROL =abaikan keduanya
Dimungkinkan juga untuk mengaktifkan beberapa opsi menggunakan perintah berikut:
$ HISTCONTROL =ignoredups:ignorespaceDi sini, diabaikan: ruang abaikan setara dengan abaikan keduanya.
- HISTIGNORE
Variabel lingkungan ini dapat berisi satu atau lebih pola. Perintah apa pun yang cocok dengan pola apa pun yang dijelaskan oleh HISTIGNORE tidak akan didaftarkan ke salah satu buffer riwayat. Pola didefinisikan menggunakan ekspresi reguler.
Strukturnya adalah sebagai berikut:
$ HISTIGNORE = 'Misalnya, untuk mengecualikan perintah riwayat dan gema dari riwayat Bash, perbarui HISTIGNORE sebagai berikut:
$ HISTIGNORE = 'sejarah' : 'gema *'
Kita dapat menggunakan rantai perintah berikut untuk mengujinya:
$ ls -l / dulu / lob &> / dev / batal$ sejarah
$ gema Halo Dunia
$ sejarah
Penandaan waktu
Bash juga dapat dikonfigurasi untuk mencatat waktu saat perintah dijalankan. Ini dapat berguna dalam berbagai situasi seperti debugging.
Untuk mengaktifkan stempel waktu dalam riwayat Bash, perbarui nilai HISTTIMEFORMAT:
$ FORMAT WAKTU HIST = 'Semua karakter kontrol format waktu yang tersedia tersedia di halaman manual dari perintah tanggal.
$ pria tanggal
Daftar berikut mencakup beberapa yang sederhana:
- %T: Waktu
- %Hari H
- %m: Bulan
- %y:Tahun
Kegigihan Sejarah
Saat bekerja dengan CLI, dalam banyak kasus, Anda akan mendapati diri Anda bekerja dengan banyak terminal. Di sinilah manajemen sejarah Bash bisa menjadi sumber rasa sakit.
Secara default, file riwayat diperbarui setelah sesi ditutup. Meskipun bagus untuk satu sesi, itu tidak cukup untuk beberapa sesi simultan. Kami dapat mengatasi masalah ini dengan memaksa Bash untuk memperbarui file riwayat setiap kali perintah dijalankan.
Untuk melakukannya, perbarui nilai PROMPT_COMMAND:
$ PROMPT_COMMAND = 'sejarah -a'Di sini, variabel PROMPT_COMMAND dapat berisi perintah yang valid. Konten PROMPT_COMMAND dijalankan sebelum Bash mulai menerima input pengguna. Perintah 'sejarah –a' memaksa riwayat untuk menambahkan konten ke file riwayat.
Ekspansi Sejarah dan Penanda
Bash hadir dengan beberapa pintasan bawaan untuk memanfaatkan fitur riwayatnya. Berikut daftar penunjukannya:
- !! : Menjalankan perintah terakhir dari sejarah.
- !N : Menjalankan perintah ke-N dari histori.
- !-N : Menjalankan perintah ke-N sebelum perintah terbaru dari riwayat.
- !
: Menjalankan perintah terbaru.
Rantai perintah berikut menunjukkan penggunaannya:
$ gema 1$ gema 2
$ gema 3
$ sejarah
$ ! gema
$ ! - 3
$ ! 1
$ !!
Beberapa penunjuk juga bekerja dengan argumen perintah dari sejarah:
- !:* : Gunakan semua argumen dari perintah terbaru.
- !:^ : Gunakan argumen pertama dari perintah terbaru.
- !:N : Gunakan argumen Nth dari perintah terbaru.
- !:M N : Gunakan argumen dari M ke N dari perintah terbaru.
- !:$ : Gunakan argumen terakhir dari perintah terbaru.
Rantai perintah berikut menunjukkan penggunaannya:
$ gema 1 2 3 4 5 6 7$ gema ! : *
$ gema 1 2 3 4 5 6 7
$ gema ! :^
$ gema 1 2 3 4 5 6 7
$ gema ! : 5
$ gema 1 2 3 4 5 6 7
$ gema ! : 1 - 5
$ gema 1 2 3 4 5 6 7
$ gema ! :$
Jika Anda perlu bekerja dengan parameter dari perintah lain, penunjuknya terlihat seperti ini:
- !
^ : Menggunakan argumen pertama dari perintah. - !
$ : Menggunakan argumen terakhir dari perintah.
Rantai perintah berikut menunjukkan penggunaannya:
$ ls -lh / dulu / catatan &> / dev / batal$ menyentuh 1 .txt 2 .txt 3 .txt 4 .txt 5 .txt
$ gema ! menyentuh ^
$ gema ! menyentuh $
Pintasan Keyboard Sejarah
Selain semua perintah dan variabel lingkungan, Bash juga mendukung beberapa pintasan keyboard untuk navigasi riwayat yang lebih mudah:
- Ke atas tombol panah: Gulir ke belakang
- Turun tombol panah: Gulir ke depan
Ada juga pintasan keyboard yang tersedia untuk pencarian riwayat interaktif:
- Ctrl + R : Cari perintah dalam riwayat.
- Ctrl + O : Jalankan perintah yang dipilih.
- Ctrl + G : Keluar dari pencarian interaktif.
Kesimpulan
Kami membahas tentang sejarah Bash secara detail. Kami belajar bagaimana Bash menyimpan sejarah perintah dan bagaimana memanfaatkannya dengan berbagai cara. Kami mendemonstrasikan cara bekerja dengan riwayat Bash menggunakan berbagai contoh.
Tertarik untuk mempelajari lebih lanjut tentang Bash? Itu Sub-kategori pemrograman Bash berisi ratusan panduan tentang berbagai fitur Bash.
Selamat menghitung!