Prasyarat:
Untuk melaksanakan langkah-langkah yang ditunjukkan dalam tutorial ini, anda memerlukan komponen berikut:
- Sistem Linux yang dikonfigurasikan dengan betul. Semak keluar bagaimana untuk menyediakan VM Ubuntu dalam VirtualBox .
- Kebiasaan asas dengan antara muka baris arahan.
Sejarah Bash
Bash ialah shell lalai dalam kebanyakan sistem Linux moden. Sebagai pengganti 'sh', cangkerang UNIX asal, ia dilengkapi dengan pelbagai ciri dan penambahbaikan seperti manipulasi direktori, kawalan kerja, alias, sejarah arahan dan banyak lagi.
Bash menjejaki semua arahan yang sebelum ini dilaksanakan dari terminal. Ini boleh menjadi sangat berguna dalam pelbagai situasi seperti nyahpepijat. Ia juga boleh mengurangkan keperluan menaip arahan yang sama/serupa berulang kali.
Untuk pengurusan sejarah, Bash dilengkapi dengan dua arahan terbina dalam:
$ taip sejarah
$ taip fc
Untuk menyimpan sejarah, Bash menggunakan dua teknik berbeza:
- Setiap kali bekerja dengan sesi shell, sejarahnya disimpan dalam ingatan.
- Apabila ditutup, sejarah yang disimpan dalam memori dibuang ke dalam fail sejarah.
Fail sejarah lalai yang Bash gunakan terletak di:
$ kucing ~ / .bash_history
Terdapat juga segelintir pembolehubah persekitaran dan pintasan papan kekunci yang mengubah cara Bash mengendalikan sejarah.
Bekerja dengan Sejarah Bash
Penggunaan Asas
Untuk mendapatkan senarai arahan yang dijalankan baru-baru ini, gunakan arahan berikut:
$ sejarah
Di sini, semua arahan yang disimpan dalam penimbal disenaraikan. Setiap arahan telah menetapkan nilai berangka. Perintah tertua diberikan dengan 1.
Kita boleh mengehadkan bilangan arahan untuk dicetak menggunakan arahan berikut:
$ sejarah N
Di sini, N ialah integer dengan N >= 0. Output mengandungi arahan N terakhir daripada sejarah.
Kami juga boleh menggunakan output seiring dengan grep untuk penapisan:
$ sejarah | cengkaman < tali >
Untuk menyemak imbas sejarah yang panjang, kita boleh menggunakan arahan 'kurang':
$ sejarah | kurang
Memadam Perintah daripada Sejarah
Jika anda perlu mengalih keluar arahan tertentu daripada sejarah, gunakan arahan berikut:
$ sejarah$ sejarah -d < nombor_perintah >
$ sejarah
Begitu juga, untuk mengalih keluar arahan dari M ke N daripada sejarah, kita boleh menggunakan arahan berikut:
$ sejarah$ sejarah -d M-N
$ sejarah
Untuk mengosongkan sejarah daripada penimbal RAM untuk sesi terminal semasa, gunakan arahan berikut:
$ sejarah -c$ sejarah
Untuk mengosongkan sejarah daripada fail sejarah yang disimpan pada cakera, kami boleh menulis ganti sepenuhnya dengan NULL:
$ kucing / dev / null > $HISTFILE
Tetapan Sejarah Bash
Terdapat pelbagai cara untuk mengubah cara Bash mengendalikan sejarah. Banyak daripada pilihan ini diuruskan oleh pembolehubah persekitaran.
Untuk menukar nilainya, kami mengedit fail 'bashrc':
$ nano ~ / .bashrc
Selepas mengedit, simpan fail dan muatkan semula dalam Bash.
$ sumber ~ / .bashrc
Untuk membuat perubahan seluruh sistem, edit 'bashrc' yang terletak di lokasi berikut:
$ nano / dan lain-lain / bash.bashrc$ nano / dan lain-lain / bashrc
Saiz Penampan
Seperti yang dinyatakan sebelum ini, Bash menggunakan dua penimbal untuk menyimpan sejarah arahan dalam RAM (untuk sesi semasa) dan dalam fail cakera (untuk semua sesi sebelumnya).
Saiz penimbal ini dikawal oleh dua pembolehubah persekitaran:
- HISTSIZE : Ia mentakrifkan bilangan entri untuk disimpan dalam penimbal RAM.
- HISTFILESSIZE : Ia mentakrifkan bilangan entri untuk disimpan dalam fail cakera.
Kita boleh menukar nilai mereka dalam 'bashrc' untuk memenuhi keperluan kita:
$ nano ~ / .bashrcSebagai contoh, untuk menyimpan 5000 entri dalam kedua-dua penimbal, kemas kini 'bashrc' dengan kod berikut:
$ HISTSIZE = 5000$ HISTFILESSIZE = 5000
Pengecualian Perintah
Secara lalai, Bash menyimpan setiap arahan yang dijalankan dalam penimbal sejarah. Walau bagaimanapun, kita boleh mengkonfigurasinya supaya Bash mengabaikan arahan tertentu. Ia boleh berguna dalam situasi di mana anda perlu menjalankan arahan yang sama berkali-kali, mengisi penimbal dengan spam.
- HISTCONTROL
Mari kita mulakan dengan contoh arahan berikut:
$ bergema 'sami' && sejarah 5$ bergema 'bonk' && sejarah 5
Seperti yang ditunjukkan oleh output perintah sejarah, hanya perintah gema pertama didaftarkan tetapi bukan perintah kedua.
Ini ialah kerja pembolehubah persekitaran HISTIGNORE. Ia memberitahu Bash untuk tidak log arahan dalam penimbal sejarah berdasarkan corak tertentu. Nilai berikut tersedia:
- abaikan : Ia tidak dilog jika arahan sepadan dengan entri sejarah sebelumnya.
- abaikan ruang : Ia tidak akan dilog jika arahan bermula dengan ruang pada permulaan.
- abaikan kedua-duanya : Ia menggunakan peraturan kedua-dua ignoredups dan ignorespace.
- terpadam : Semua baris sebelumnya yang sepadan dengan arahan semasa akan dipadamkan daripada sejarah.
Dalam contoh pertama, kami menunjukkan penggunaan ruang abaikan. Walau bagaimanapun, tidak semua distro boleh menghantar Bash dengan konfigurasi ini. Seperti biasa, kita boleh menambahkannya pada 'bashrc':
$ HISTCONTROL =abaikan kedua-duanya
Ia juga mungkin untuk mendayakan berbilang pilihan menggunakan arahan berikut:
$ HISTCONTROL =ignoredups:ignorespaceDi sini, ignoredups:ignorespace adalah setara dengan ignoreboth.
- HISTIGNORE
Pembolehubah persekitaran ini boleh mengandungi satu atau lebih corak. Sebarang arahan yang sepadan dengan mana-mana corak yang diterangkan oleh HISTIGNORE tidak akan didaftarkan kepada penimbal sejarah. Corak ditakrifkan menggunakan ungkapan biasa.
Strukturnya adalah seperti berikut:
$ HISTIGNORE = 'Contohnya, untuk mengecualikan sejarah dan perintah gema daripada sejarah Bash, kemas kini HISTIGNORE seperti berikut:
$ HISTIGNORE = 'sejarah' : 'gema *'
Kita boleh menggunakan rantaian arahan berikut untuk mengujinya:
$ ls -l / adalah / lob &> / dev / null$ sejarah
$ bergema Hai dunia
$ sejarah
Cap masa
Bash juga boleh dikonfigurasikan untuk log masa arahan dijalankan. Ia boleh berguna dalam pelbagai situasi seperti nyahpepijat.
Untuk mendayakan cap masa dalam sejarah Bash, kemas kini nilai HISTTIMEFORMAT:
$ FORMAT MASA SEJARAH = 'Semua aksara kawalan format masa yang tersedia tersedia dalam halaman manual arahan tarikh.
$ lelaki Tarikh
Senarai berikut termasuk beberapa yang mudah:
- %T: Masa
- %d: Hari
- %m: Bulan
- %y:Tahun
Kegigihan Sejarah
Apabila bekerja dengan CLI, dalam banyak kes, anda akan mendapati diri anda bekerja dengan berbilang terminal. Di sinilah pengurusan sejarah Bash boleh menjadi punca kesakitan.
Secara lalai, fail sejarah dikemas kini sebaik sahaja sesi ditutup. Walaupun ia baik untuk satu sesi, ia tidak mencukupi untuk berbilang sesi serentak. Kami boleh menyelesaikan masalah ini dengan memaksa Bash mengemas kini fail sejarah setiap kali arahan dijalankan.
Untuk berbuat demikian, kemas kini nilai PROMPT_COMMAND:
$ PROMPT_COMMAND = 'sejarah -a'Di sini, pembolehubah PROMPT_COMMAND boleh mengandungi arahan yang sah. Kandungan PROMPT_COMMAND dijalankan sebelum Bash mula mengambil input pengguna. Perintah 'history -a' memaksa sejarah untuk menambahkan kandungan pada fail sejarah.
Peluasan Sejarah dan Penama
Bash dilengkapi dengan beberapa pintasan terbina dalam untuk memanfaatkan ciri sejarahnya. Berikut adalah senarai penentu:
- !! : Menjalankan arahan terakhir daripada sejarah.
- !N : Menjalankan arahan Nth daripada sejarah.
- !-N : Menjalankan arahan Nth sebelum arahan terkini daripada sejarah.
- !
: Menjalankan perintah terbaharu.
Rangkaian arahan berikut menunjukkan penggunaannya:
$ bergema 1$ bergema 2
$ bergema 3
$ sejarah
$ ! bergema
$ ! - 3
$ ! 1
$ !!
Sesetengah penunjuk juga berfungsi dengan hujah arahan dari sejarah:
- !:* : Gunakan semua hujah bagi arahan terkini.
- !:^ : Gunakan hujah pertama bagi arahan terkini.
- !:N : Gunakan hujah ke-N bagi arahan terkini.
- !:M-N : Gunakan hujah dari M hingga N bagi arahan terkini.
- !:$ : Gunakan hujah terakhir bagi arahan terkini.
Rangkaian arahan berikut menunjukkan penggunaannya:
$ bergema 1 2 3 4 5 6 7$ bergema ! : *
$ bergema 1 2 3 4 5 6 7
$ bergema ! :^
$ bergema 1 2 3 4 5 6 7
$ bergema ! : 5
$ bergema 1 2 3 4 5 6 7
$ bergema ! : 1 - 5
$ bergema 1 2 3 4 5 6 7
$ bergema ! :$
Jika anda perlu bekerja dengan parameter perintah yang berbeza, penunjuk akan kelihatan seperti ini:
- !
^ : Menggunakan hujah pertama perintah. - !
$ : Menggunakan hujah terakhir perintah.
Rantaian arahan berikut menunjukkan penggunaannya:
$ ls -lh / adalah / log &> / dev / null$ sentuh 1 .txt 2 .txt 3 .txt 4 .txt 5 .txt
$ bergema ! sentuh ^
$ bergema ! sentuh $
Pintasan Papan Kekunci Sejarah
Selain semua arahan dan pembolehubah persekitaran, Bash juga menyokong segelintir pintasan papan kekunci untuk navigasi sejarah yang lebih mudah:
- Naik kekunci anak panah: Tatal ke belakang
- Bawah kekunci anak panah: Tatal ke hadapan
Terdapat juga pintasan papan kekunci yang tersedia untuk carian sejarah interaktif:
- Ctrl + R : Cari arahan dalam sejarah.
- Ctrl + O : Jalankan arahan yang dipilih.
- Ctrl + G : Keluar daripada carian interaktif.
Kesimpulan
Kami membincangkan tentang sejarah Bash secara terperinci. Kami mempelajari cara Bash menyimpan sejarah arahan dan cara memanfaatkannya dengan cara yang berbeza. Kami menunjukkan cara bekerja dengan sejarah Bash menggunakan pelbagai contoh.
Berminat untuk mengetahui lebih lanjut tentang Bash? The Subkategori pengaturcaraan Bash mengandungi beratus-ratus panduan tentang ciri-ciri berbeza Bash.
Selamat berkomputer!