Laman » bagaimana untuk » Bagaimana Menggunakan Sejarah Bash anda di Terminal Linux atau macOS

    Bagaimana Menggunakan Sejarah Bash anda di Terminal Linux atau macOS

    Cakera bash adalah persekitaran terminal standard yang disertakan dengan kebanyakan pengedaran Linux, termasuk dengan macOS, dan tersedia untuk pemasangan pada Windows 10. Ia mengingati perintah yang anda taip dan menyimpannya dalam fail sejarah. Anda mungkin tahu beberapa asas dari sejarah bash, tetapi ia jauh lebih kuat daripada yang anda dapati.

    Pintasan papan kekunci

    Untuk menatal sejarah bash anda, anda boleh menggunakan beberapa pintasan papan kekunci berguna bash. Tekan pintasan dan arahan yang anda gunakan sebelum ini akan muncul pada prompt.

    • Up Arrow atau Ctrl + P: Pergi ke arahan sebelumnya dalam sejarah anda. Tekan kekunci kali beberapa kali untuk berjalan ke belakang melalui arahan yang telah anda gunakan.
    • Anak panah ke bawah atau Ctrl + N: Pergi ke perintah seterusnya dalam sejarah anda. Tekan kekunci kali beberapa kali untuk berjalan ke depan melalui arahan yang telah anda gunakan.
    • Alt + R: Mbalikkan sebarang perubahan kepada arahan yang anda telah tarik dari sejarah anda jika anda telah menyuntingnya pada baris semasa.

    Bash juga mempunyai mod "ingat semula" yang istimewa yang anda boleh gunakan untuk mencari arahan yang pernah anda jalankan, bukannya menatal melalui mereka satu persatu.

    • Ctrl + R: Ingat arahan terakhir yang sepadan dengan aksara yang anda berikan. Tekan pintasan ini dan mula menaip untuk mencari sejarah bash anda untuk arahan.
    • Ctrl + O: Jalankan arahan yang anda dapati dengan Ctrl + R.
    • Ctrl + G: Tinggalkan mod cari sejarah tanpa menjalankan arahan.

    Lihat Sejarah Bash anda

    Anda boleh mencetak sejarah bash keseluruhan anda ke skrin dengan menjalankan satu arahan:

    sejarah

    Anda akan melihat senarai semua arahan dalam sejarah bash anda, bersama dengan nombor di sebelah kiri masing-masing. Perintah dengan "1" di sebelahnya adalah perintah tertua dalam sejarah bash anda, manakala arahan dengan nombor tertinggi adalah yang paling baru.

    Anda boleh melakukan apa sahaja yang anda suka dengan output. Contohnya, anda boleh paip ke greparahan untuk mencari sejarah arahan anda.

    sejarah | grep your_search

    Anda juga boleh paip ke ekor arahan untuk melihat hanya sebilangan kecil arahan baru-baru ini yang anda jalankan. Sebagai contoh, arahan berikut akan menunjukkan 5 entri terakhir dalam sejarah anda.

    sejarah | ekor -5

    Jalankan Perintah Dari Sejarah Anda

    Bash dengan cepat boleh "mengembangkan" arahan terdahulu, atau mengembangkannya dan mengubahnya. Ciri ini dikenali sebagai "pengembangan sejarah" dan menggunakan tanda seru, yang dikenali sebagai "bang". Cuma ketikkannya pada prompt dan tekan Enter untuk menjalankannya seperti anda akan menjalankan arahan lain.

    Untuk menjalankan arahan tertentu dari sejarah anda dengan nombornya, gunakan perintah berikut:

    !#

    Sebagai contoh, katakan anda ingin menjalankan perintah ke-12 dari sejarah bash anda. Itulah perintah dengan "12" di sebelah kiri ketika anda menjalankan sejarah perintah. Anda akan menaip arahan berikut.

    !12

    Untuk menjalankan semula arahan terakhir yang anda lari, taipkan yang berikut. Ini mempunyai kesan yang sama seperti menekan anak panah Atas sekali untuk melihat arahan sebelumnya dan kemudian menekan Enter.

    !!

    Anda juga boleh merujuk kepada arahan beberapa baris belakang. Sebagai contoh, !-2 akan menjalankan arahan kedua untuk terakhir yang anda lari. !! ertinya perkara yang sama seperti !-1 .

    Perkembangan ini berfungsi di mana-mana sahaja pada baris. Anda boleh menambah apa sahaja yang anda suka sebelum atau selepas !! atau mana-mana ungkapan lain dalam seksyen ini. Sebagai contoh, anda boleh menaip perintah berikut untuk mengubah arahan terakhir yang anda lalui sudo, memberi keistimewaan akar. Ini amat berguna jika anda lupa untuk menambah  sudo sebelum menjalankan arahan.

    sudo !!

    Atau, sebagai contoh, anda boleh mengalihkan arahan sebelumnya dan menaikkan outputnya kepada grep untuk mencari beberapa teks.

    !! | teks grep

    Untuk mencari arahan dalam sejarah anda dan jalankannya, taipkan yang berikut. Ini akan menjalankan perintah terakhir yang sepadan dengan teks yang anda tentukan:

    !teks

    Jadi, jika anda baru-baru ini berlari perintah yang bermula dengan ping, anda boleh menjalankan arahan berikut untuk mencarinya. Ini akan mencari ke belakang melalui sejarah anda, cari arahan yang paling baru yang bermula dengan "pi", Dan segera jalankannya:

    !pi

    Anda boleh menambah a : p kepada mana-mana pengembangan di atas dan bash akan mencetak arahan ke terminal tanpa menjalankannya. Ini berguna jika anda ingin mengesahkan anda memilih arahan yang betul sebelum anda menjalankannya.

    !12: p
    !!: p
    !teks: p

    Gunakan semula Argumen Dari Sejarah Anda

    Bash juga membolehkan anda menjalankan arahan baru, tetapi menggunakan hujah daripada arahan terdahulu dalam sejarah anda. Ini dapat membantu anda dengan cepat menggunakan semula hujah-hujah yang panjang atau rumit tanpa perlu mengetik semula mereka.

    arahan! $

    Sebagai contoh, katakan anda telah menjalankan perintah itu sentuh / home / chris / some_long_file_name_you_dont_want_to_type_again . Anda kini mahu menjalankan arahan itu nano / home / chris / some_long_file_name_you_dont_want_to_type_again. Daripada menaip semuanya dari awal, anda boleh menjalankan:

    nano! $

    The !$ akan membuat bash secara automatik mengisi hujah terakhir dari arahan sebelumnya.

    Ini hanya mengisi hujah terakhir. Jadi, jika anda berlari ping google.com -c 4 dan kemudian lari ping! $ , ini hanya akan berkembang menjadi "ping 4".

    Untuk membetulkan keadaan ini, anda boleh menggunakan helah berikut untuk mengembangkan hujah pertama pada baris, dan bukannya yang terakhir:

    perintah! ^

    Jadi, jika anda berlari ping google.com -c 4 dan kemudian berlari ping! ^ , bash akan memperluaskannya kepada "ping google.com ".

    Untuk mengisi semua argumen yang digunakan dalam arahan sebelumnya dan bukannya satu argumen sahaja, anda akan menggunakan perkara berikut:

    perintah! *

    Jadi, jika anda berlari ping! * Sebaliknya, bash akan secara automatik mengisi semua argumen yang anda gunakan dalam perintah sebelumnya.

    Anda boleh menggunakan helah yang sama yang anda gunakan untuk menjalankan arahan dari sejarah anda untuk mendapatkan hujah daripada mereka. Hanya gunakan borang berikut.

    perintah! abc: #

    Sebagai contoh, kami berlari arahan sudo hostname ubuntu lebih awal. Jika kita menjalankan arahan berikut, bash akan mencari ke belakang melalui sejarah untuk mencari arahan terakhir yang bermula dengan huruf yang kita ketik dan isi hujah yang kita tentukan. Jadi, jika kita berlari echo! su: 2 , bash akan mencari kembali untuk mencari arahan terakhir bermula dengan "su"Dan isi hujah kedua, iaitu"ubuntu".

    Petua lain berfungsi seperti yang anda harapkan. Sebagai contoh, menggantikan nombor dengan asterisk, dikenali sebagai wildcard, menyebabkan bash untuk mengisi semua argumen dari arahan:

    perintah! abc: *

    Rerun Perintah Sebelumnya dan Ubahsuai Ini

    Bash juga membolehkan anda meretas semula arahan sebelumnya dan menentukan sesuatu yang perlu diubah. Ini berguna untuk membetulkan kesilapan menaip dalam arahan. Sebagai contoh, arahan berikut akan mengalihkan arahan terdahulu, menggantikan teks "abc"Di dalamnya dengan teks"xyz".

    ^ abc ^ xyz

    Contohnya, jika anda tidak sengaja berlari ping gogle.com, anda boleh lari ^ gog ^ goog dan bash akan menjalankan arahan itu ping google.com sebaliknya.

    Di mana Sejarah Anda Disimpan, dan Bagaimana Jelas Ia

    Shell bash menyimpan sejarah arahan yang anda jalankan dalam fail sejarah akaun pengguna anda di ~ / .bash_history secara lalai. Sebagai contoh, jika nama pengguna anda bob, anda akan mendapati fail ini di /home/bob/.bash_history.

    Kerana sejarah anda disimpan dalam fail, ia tetap berlaku di antara sesi. Anda boleh menjalankan beberapa arahan, keluar, kembali keesokan harinya, dan arahan itu masih dalam fail sejarah anda yang sedia untuk dilihat dan digunakan. Setiap akaun pengguna mempunyai fail sejarah sendiri dengan sejarah arahan berasingan.

    Untuk membersihkan sejarah bash anda, anda boleh menjalankan arahan berikut. Ini memadamkan kandungan fail .bash_history akaun pengguna anda:

    sejarah -c

    Bash hanya mengingati bilangan arahan yang terhad secara lalai, menghalang fail sejarah daripada berkembang terlalu besar. Jumlah catatan sejarah yang dikenang dikenang oleh HISTSIZEpembolehubah. Lalai biasanya 500 atau 1000 penyertaan. Anda boleh menjalankan arahan berikut untuk melihat saiz sejarah bash pada sistem anda.

    echo $ HISTSIZE

    Untuk menetapkan sejarah anda menjadi kosong, jalankan arahan berikut.

    HISTSIZE = 0

    Untuk sesi semasa, bash tidak akan menyimpan apa-apa catatan sejarah melainkan arahan anda seperti arahan HISTSIZE = 1000 untuk menetapkan semula kepada beberapa entri tertentu.

    Bagaimana Abaikan Spasi dan Duplikat

    Bash membolehkan anda mengabaikan catatan sejarah yang bermula dengan ruang jika anda menetapkan HISTCONTROLpembolehubah kepada mengabaikan.

    HISTCONTROL = ignorespace

    Taip ruang sebelum perintah sebelum menjalankannya dalam shell bash dan perintah akan berjalan secara normal, tetapi tidak akan muncul dalam sejarah anda jika anda mengaktifkan pembolehubah ini. Ini membolehkan anda menyimpan sejarah anda dengan lebih bersih, memilih untuk menjalankan arahan tanpa mereka muncul dalam sejarah anda.

    Bash juga membolehkan anda mengabaikan arahan pendua yang dapat mengawal sejarah anda. Untuk berbuat demikian, tetapkan HISTCONTROL kepada tidak disedari.

    HISTCONTROL = ignoredups

    Untuk menggunakan kedua-dua mengabaikan dan tidak disedari ciri, tetapkan HISTCONTROL pembolehubah kepada bodoh.

    HISTCONTROL = ignoreboth

    Perhatikan bahawa pemboleh ubah bash yang anda tetapkan hanya akan berterusan untuk sesi semasa. Anda perlu menambah ini ke fail .bashrc akaun pengguna anda untuk mempunyai nilai-nilai ini secara automatik ditetapkan dalam setiap sesi bash yang anda mulakan, jika anda lebih suka.

    Cakera bash adalah alat rumit dengan banyak lagi pilihan daripada ini. Berunding dengan Bash History Builtins dan History Expansion sections di manual bash manual maklumat yang lebih terperinci dan helah lanjutan lain yang anda boleh gunakan.