Baris arahan Linux-Terminal, seperti semua cengkerang, menyimpan sejarah perintah yang dijalankan pada masa lalu oleh pengguna. Sejarah ini berterusan dan kekal dalam ingatan walaupun kami menghidupkan semula sistem kami. Perintah yang tersimpan ini dapat diingat dan digunakan kembali oleh kami dengan cara yang paling optimum untuk menggunakan ciri penjimatan sejarah pada kebanyakan cengkerang dengan cekap.
Linux bash dilengkapi dengan perintah yang sangat kuat yang disebut "sejarah". Perintah ini adalah perintah bash bawaan, digunakan untuk mengekstrak informasi sejarah tentang perintah yang telah dilaksanakan oleh pengguna Linux pada semua sesi sebelumnya. Dalam tutorial ini, kami akan membolehkan anda memanfaatkan sejarah shell anda dengan mempelajari penggunaan arahan sejarah yang betul. Linux menyimpan sejarah arahan untuk pengguna tertentu dalam fail ~ /.bash_history secara lalai.
Kami akan menggunakan aplikasi Terminal Linux untuk menjalankan perintah yang disebutkan dalam tutorial ini.
Melihat Keseluruhan Sejarah
Seorang pengguna dapat melihat keseluruhan sejarah untuk perintah shellnya dari file sejarah yang disimpan secara eksklusif untuk pengguna tersebut dengan menggunakan perintah sederhana berikut:
$ riwayat
Sejarah akan dicetak di skrin dalam format lalai berikut:
Dalam gambar di atas, anda dapat melihat senarai semua arahan dengan nombor yang diberikan untuk setiap perintah tersebut. Perintah nombor 1 sesuai dengan perintah pertama yang anda jalankan dan perintah bernombor terakhir mewakili perintah terakhir yang anda jalankan.
Sekiranya anda telah menjalankan banyak perintah sejak menggunakan bash, anda akan melihat bahawa terdapat ratusan bahkan ribuan perintah yang dipaparkan di sini. Untuk mengakses beberapa perintah yang relevan, anda dapat menyaring hasil yang ditunjukkan oleh fitur sejarah. Anda juga dapat menyesuaikan perintah sejarah untuk menunjukkan sejumlah perintah tertentu untuk anda.
Menyaring Hasil Sejarah
Sekiranya anda ingin menyaring output sejarah anda berdasarkan kata kunci tertentu yang mungkin anda gunakan dalam perintah sebelumnya, anda boleh menggunakan perintah sejarah seperti berikut:
$ sejarah | grep [kata kunci]
Contoh: Dalam contoh ini, saya ingin melihat hanya arahan ping yang pernah saya jalankan di cengkerang. Oleh itu, saya akan menggunakan arahan berikut:
$ sejarah | grep ping
Anda dapat melihat bahawa output saya sekarang hanya memaparkan perintah termasuk iklan "ping" kata kunci carian saya
Melihat Sebilangan Perintah Terkini
Anda juga dapat melihat sejumlah perintah tertentu, misalnya:
- N bilangan arahan terkini
ATAU
- N bilangan perintah tertua
N Bilangan Perintah Terkini
Anda dapat melihat sejumlah arahan yang baru dijalankan melalui arahan berikut:
$ sejarah | ekor -n
Contoh:
Dalam contoh ini, saya ingin melihat 3 perintah terakhir yang saya jalankan, dengan kata kunci 'ping':
$ sejarah | grep ping | ekor -3
Keluaran hanya memaparkan 3 arahan ping terkini dan bukannya keseluruhan sejarah
N Bilangan Perintah Tertua
Anda dapat melihat bilangan tertentu perintah jangka tertua melalui perintah berikut:
$ sejarah | kepala -n
Contoh:
Dalam contoh ini, saya ingin melihat 3 perintah tertua yang saya jalankan, dengan kata kunci 'ping':
$ sejarah | grep ping | kepala -3
Keluaran hanya memaparkan 3 perintah ping tertua dan bukannya keseluruhan sejarah
Senaraikan Semua Perintah dengan Tarikh dan Cap Waktu
Sekiranya anda ingin melihat sejarah arahan anda bersama dengan tarikh dan cap waktu, sila gunakan arahan eksport berikut:
$ eksport HISTTIMEFORMAT = "% F,% T"
Sekarang apabila anda ingin melihat sejarah, jalankan perintah sejarah untuk melihat output dalam format berikut:
Harap perhatikan bahawa perubahan format ini bersifat sementara dan akan dikembalikan ke standard sebelumnya ketika anda menutup sesi.
Menavigasi Perintah dari Sejarah
Semasa anda berada di baris perintah, anda dapat menavigasi perintah yang dijalankan sebelumnya dan juga mengingat beberapa arahan yang baru digunakan dengan memberikan kata kunci.
Menatal Perintah
Anda boleh menggunakan kawalan papan kekunci berikut untuk menavigasi perintah sejarah
Panah Atas / Ctrl + P | Dengan menggunakan kawalan ini, anda dapat memaparkan perintah sebelumnya yang anda gunakan. Anda boleh menekan kawalan ini berkali-kali untuk kembali ke perintah tertentu dalam sejarah. |
Panah Bawah / Ctrl + N | Dengan menggunakan kawalan ini, anda dapat memaparkan perintah seterusnya yang anda gunakan. Anda boleh menekan kawalan ini berkali-kali untuk meneruskan arahan tertentu dalam sejarah. |
Alt + R | Sekiranya anda mengedit perintah, yang telah anda tarik dari sejarah, pada baris semasa, anda boleh menggunakan kawalan ini untuk mengembalikannya ke perintah asal. |
Perintah Mengingat
Anda boleh mengingat, menjalankan atau memilih untuk tidak menjalankan perintah tertentu dari sejarah, menggunakan kawalan berikut:
Ctrl + R | Dengan menggunakan kawalan ini, anda dapat mengingat perintah dari sejarah dengan menentukan rentetan carian. |
Ctrl + O | Dengan menggunakan kawalan ini, anda boleh menjalankan perintah yang anda ingat melalui Ctrl + R |
Ctrl + G | Dengan menggunakan kawalan ini, anda dapat keluar dari sejarah tanpa menjalankan perintah yang anda ingat melalui Ctrl + R |
Contoh:
Dalam contoh ini, saya menekan ctrl + R dan kemudian memberikan rentetan carian 'ar'. Sejarah memaparkan arahan 'arch'.
Ketika saya menjalankan perintah 'arch' dengan menekan ctrl + O, ia memaparkan arsitektur CPU sistem saya:
Memanfaatkan Sejarah Bash
Keajaiban sebenar sejarah bash adalah dengan menggunakan pelbagai perintah dan menyesuaikan perintah sejarah itu sendiri untuk memanfaatkan ciri sejarah dengan sebaik-baiknya:
Menjalankan Perintah dari Sejarah
- Seperti yang telah kita lihat sebelumnya, perintah sejarah memaparkan perintah dengan mengaitkan nombor dengan masing-masing. Dengan menggunakan perintah berikut, anda boleh menjalankan perintah tertentu dari sejarah, berdasarkan nombornya:
$ !#
Contoh:
Di sini saya menjalankan perintah nombor 95 dari sejarah saya:
$ !95
Keluaran memaparkan hasil 'lscpu' yang disenaraikan sebagai nombor perintah 95 dalam sejarah bash saya. Perintah ini memaparkan spesifikasi CPU dan sistem operasi saya.
- Anda boleh menjalankan semula arahan sebelumnya dengan menggunakan arahan berikut:
$ !!
Contoh:
Di sini anda dapat melihat bahawa saya menjalankan arahan 'arch'. Dengan menjalankan perintah yang disebutkan di atas, saya dapat menjalankan kembali perintah 'arch' untuk melihat arsitektur CPU saya seperti berikut:
- Untuk mencari perintah dari sejarah dan kemudian menjalankannya, gunakan arahan berikut:
$ ![kata kunci]
Contoh:
Saya akan menggunakan arahan berikut untuk menjalankan semula perintah terakhir dengan kata kunci 'dconf' di dalamnya:
$ !dconf
Anda boleh mengesahkan semula pada gambar berikut bahawa itu adalah perintah dconf terakhir yang saya jalankan.
Menggunakan Hujah dari Perintah Terdahulu
Linux bash membolehkan anda menjalankan perintah baru dengan menggunakan argumen dari arahan sebelumnya. Ia sangat berguna apabila anda ingin mengelakkan menaip semula hujah yang panjang atau rumit. Anda boleh menggunakan arahan berikut untuk tujuan ini:
Menggunakan argumen terakhir dari arahan sebelumnya
$ [Perintah] !$
Pemboleh ubah !$ mempunyai argumen terakhir dari arahan sebelumnya yang tersimpan di dalamnya.
Contoh:
Dalam contoh ini, saya akan membuat fail dengan nama panjang.
Nano [nama panjangOfaFile]
Saya kemudian akan menyalinnya ke lokasi lain dengan mengelakkan menaip nama panjang lagi seperti berikut:
Cp !$ [pemegang destinasi]
Anda dapat melihat bahawa saya dapat menyalin fail tanpa menaip semula nama fail dengan menggunakan pemboleh ubah !$
Menggunakan argumen pertama dari arahan sebelumnya
Kadang-kadang, hanya argumen pertama dari arahan sebelumnya yang berguna dalam yang sekarang.
Sekiranya demikian, anda boleh menggunakan arahan berikut:
$ [arahan] !^
Contoh:
Dalam contoh berikut, saya menjalankan perintah ping dengan menentukan nama host dan kiraan sebagai argumen. Sekarang saya mahu menggunakan nama host (argumen pertama) dan bukannya 2 (argumen terakhir) dalam arahan baru saya. Saya akan menggunakan arahan berikut untuk tujuan ini:
$ ping !^
Menggunakan semua argumen dari arahan sebelumnya
Anda juga boleh menggunakan semua argumen dari arahan sebelumnya dengan menggunakan perintah berikut:
$ !*
Menggunakan satu argumen dari perintah sejarah
Anda juga dapat menggunakan perintah dari sejarah anda dengan menggunakan kembali argumen mereka. Gunakan arahan berikut untuk tujuan ini:
$ [arahan] ![kata kunci]: #
Contoh:
$ gema !cp: 2
Perintah ini akan mengambil parameter berikut:
arahan: gema
Kata kunci: cp
#: 2 (argumen kedua perintah)
Keluaran berikut menunjukkan argumen ke-2 dari perintah cp terakhir yang saya jalankan:
Menggunakan semua argumen dari perintah sejarah
Perintah berikut akan menyimpan semua argumen dari perintah sejarah yang dicari dan menggunakannya dalam arahan semasa:
perintah $ ![kata kunci]: *
Contoh:
Dalam arahan berikut, saya akan mencetak semua argumen perintah cp terakhir dengan menggunakan perintah echo seperti berikut:
$ gema ![cp]: *
Mengubah dan Menjalankan Perintah Terdahulu
Sekiranya anda salah menaip perintah atau anda ingin menjalankan semula perintah dengan menukar beberapa teks di dalamnya; berikut adalah cara untuk melakukannya:
$ ^ [previoustext] ^ [teks baru]
Contoh:
Saya tersalah taip arahan 'grep' sebagai 'gep' dan sekarang saya mahu menjalankan perintah dengan membetulkan teks:
$ ^ gep ^ grep
Sekarang anda dapat melihat bahawa arahan saya yang diperbaiki akan berjalan dengan baik seperti berikut:
Menghapus Sejarah
Untuk menghapus sejarah bash anda, gunakan arahan berikut:
$ sejarah -c
Perintah ini akan membersihkan sejarah anda dan membuang semua kandungan dari fail ~ /.sejarah_bash
Dalam tutorial ini kita telah belajar bahawa semasa mencetak keseluruhan isi sejarah mungkin tidak begitu berguna, mengoptimumkan output melalui perintah yang kita pelajari adalah pengubah permainan yang sebenarnya. Berlatih bersama dengan artikel ini akan membolehkan anda melihat perintah yang tepat yang anda inginkan, menjalankan semula dan menggunakan kembali perintah tersebut, dan juga menggunakan argumen dari perintah yang dijalankan sebelumnya untuk mengoptimumkan yang baru.