Laman » bagaimana untuk » Cara Menyesuaikan (dan Colorize) Prompt Bash Anda

    Cara Menyesuaikan (dan Colorize) Prompt Bash Anda

    Kebanyakan pengedaran Linux mengkonfigurasi penanda Bash untuk melihat sesuatu seperti username @ hostname: directory $ . Tetapi anda boleh mengkonfigurasi prom Bash untuk memasukkan apa sahaja yang anda suka, dan juga memilih apa sahaja warna yang anda suka.

    Langkah-langkah contoh di sini telah dilakukan pada Ubuntu 16.04 LTS. Proses ini harus sama pada pengedaran Linux yang lain, walaupun permintaan Bash default dan setting dalam file .bashrc mungkin sedikit berbeda.

    Di mana Penyandaran Prompt disimpan

    Konfigurasi turus Bash anda disimpan dalam fail .bashrc akaun pengguna anda, yang berada di ~ / .bashrc. Jadi, jika nama pengguna anda adalah bob, fail itu berada /home/bob/.bashrc.

    Anda boleh membuka fail untuk melihat pembolehubah Bash semasa. Kami akan menggunakan nano sebagai editor teks contoh kami, walaupun anda juga boleh menggunakan vi, emacs, atau mana-mana editor teks lain yang anda selesa dengan. Buka Terminal dan jalankan:

    nano ~ / .bashrc

    Tatal ke bawah ke PS1 = seksyen. Pemboleh ubah pertama kelihatan agak rumit kerana ia mengandungi maklumat warna-kami akan menerangkannya kemudian. Pembolehubah kedua, tanpa maklumat warna, berbunyi seperti berikut:

    $ debian_chroot: + ($ debian_chroot) \ u @ \ h: \ w \ $

    Ini masih agak rumit disebabkan oleh $ debian_chroot: + ($ debian_chroot) bit. Ini hanya memberitahu Bash untuk memberitahu anda jika anda menggunakan persekitaran chroot Debian dan biasanya tidak akan ditunjukkan. Mengabaikannya, inilah struktur lalai daripada pembolehubah prompt Bash:

    \ u @ \ h: \ w \ $

    \ u menunjukkan nama pengguna anda, @ menunjukkan @ tanda, \ h menunjukkan nama hos (nama komputer), : menunjukkan: watak, \ w menunjukkan direktori kerja, dan \ $ menunjukkan $ jika anda merupakan akaun pengguna biasa atau # jika anda akar. Jadi, meletakkan semuanya bersama-sama, anda dapat username @ hostname: working_directory $.

    Untuk menukar prompt Bash anda, anda hanya perlu menambah, mengalih keluar, atau menyusun semula aksara khas dalam pembolehubah PS1. Tetapi terdapat banyak lagi pembolehubah yang anda boleh gunakan daripada yang lalai.

    Biarkan editor teks untuk sekarang dalam nano, tekan Ctrl + X untuk keluar. Kami akan menunjukkan kepada anda bagaimana untuk bereksperimen dengan pembolehubah sebelum sebenarnya menulis yang baru ke dalam fail .bashrc anda.

    Bagaimana Membuat Promosi Bash Custom

    Konfigurasi turus Bash anda disimpan dalam pembolehubah PS1. Untuk menyimpan kandungan pembolehubah PS1 ke dalam pembolehubah baru, jalankan arahan berikut:

    DEFAULT = $ PS1

    Anda kini boleh menetapkan pembolehubah PS1 kepada nilai yang berlainan untuk mencuba. Contohnya, baris pertama di sini akan menetapkan gesaan anda untuk mendapat "user $" asas, sementara yang kedua akan menetapkan jawapan anda kepada "pengguna: work_directory $" asas.

    PS1 = "\ u \ $" PS1 = "\ u: \ w \ $"

    Sekiranya anda mahu kembali kepada permulaan lalai anda, jalankan arahan berikut.

    PS1 = $ DEFAULT

    Bash akan dipulihkan kepada ucapan terima lalainya kepada fakta bahawa anda telah menyimpan tetapan lalai tadi. Perhatikan bahawa sebarang perubahan yang anda buat di sini hanya bersifat sementara untuk sesi Bash semasa, jadi anda sentiasa boleh melog masuk dan log masuk semula atau tutup dan membuka semula tetingkap terminal untuk kembali kepada perbaruan lalai anda. Tetapi garis di atas membolehkan anda kembali dengan mudah ke bash lalai anda tanpa kerumitan untuk melog masuk atau menutup tetingkap.

    Anda boleh menambah sebarang aksara atau teks kepada pembolehubah. Oleh itu, untuk mendayakan awalan lalai dengan "Hello World", anda boleh menggunakan:

    PS1 = "Hello World \ u @ \ h: \ w \ $"

    Sekarang bahawa anda mempunyai asas-asas ke bawah, anda hanya perlu tahu apa semua aksara khas. Anda mungkin tidak peduli dengan banyak perkara ini, tetapi inilah senarai penuh seperti yang ditunjukkan dalam manual Bash:

    • Watak loceng: \ a
    • Tarikh, dalam format "Bulan Bulan Tarikh" (mis., "Isnin 26 Mei"): \ d
    • Format ini dihantar kepada strftime (3) dan hasilnya dimasukkan ke dalam rentetan segera; hasil format kosong dalam perwakilan masa yang khusus di tempat. Kawat gigi diperlukan: \ D format
    • Watak melarikan diri: \ e
    • Nama tuan rumah, sehingga yang pertama '.': \ h
    • Nama hos: \ H
    • Bilangan pekerjaan yang kini diuruskan oleh cengkerang: \ j
    • Nama bas nama peranti terminal shell: \ l
    • Garis baru: \ n
    • Pulangan kereta: \ r
    • Nama shell, nama lapangan $ 0 (bahagian berikut slash akhir): \ s
    • Masa, dalam format 24 jam HH: MM: SS: \ t
    • Masa, dalam format HH: MM: SS 12 jam: \ T
    • Masa, dalam format 12 jam am / malam: \ @
    • Masa, dalam format HH: MM 24 jam: \ A
    • Nama pengguna pengguna semasa: \ u
    • Versi Bash (mis., 2.00): \ v
    • Pembebasan Bash, versi + patchlevel (mis., 2.00.0): \ V
    • Direktori kerja semasa, dengan $ HOME disingkat dengan tilde (menggunakan pembolehubah $ PROMPT_DIRTRIM): \ w
    • Nama bas $ PWD, dengan $ HOME disingkat dengan tilde: \ W
    • Nombor sejarah arahan ini: \!
    • Nombor arahan arahan ini: \ #
    • Jika uid yang berkesan ialah 0, #, jika tidak $: \ $
    • Watak yang kod ASCII adalah nilai oktal nnn: \ nnn
    • Cincin belakang: \\
    • Mulakan urutan aksara bukan percetakan. Ini boleh digunakan untuk membenamkan urutan kawalan terminal ke dalam prompt: \ [
    • Tamatkan urutan aksara bukan percetakan: \]

    Oleh itu, jika anda mahu menambahkan tarikh dan masa kepada prompt Bash anda dan letakkan direktori kerja pada arahan pada baris kedua, anda boleh menggunakan pembinaan berikut:

    PS1 = "[\ d \ t] \ u @ \ h \ n \ w \ $"

    Kurungan segi empat di sini tidak perlu sama sekali, tetapi membantu memecahkan perkara secara visual dan membuat garis lebih mudah dibaca. Seperti yang kita diliputi sebelum ini, anda boleh menambah apa-apa teks atau watak-watak biasa kepada pembolehubah yang anda suka, jadi berasa bebas untuk menggunakan apa sahaja kerja untuk anda.

    Terdapat satu helah yang lebih kuat yang perlu anda ketahui: Anda boleh menambah output apa-apa arahan kepada prompt. Apabila tiba masanya muncul, Bash akan menjalankan arahan dan mengisi maklumat semasa. Untuk melakukan ini, masukkan sahaja arahan yang anda mahu jalankan antara dua ' watak. Itu bukan apostrophe-itulah aksen kubur, yang muncul di atas kekunci Tab pada papan kekunci anda.

    Sebagai contoh, katakan anda ingin melihat versi kernel Linux dalam prompt. Anda boleh menggunakan baris seperti berikut:

    PS1 = "\ u @ \ h pada 'uname -s -r' \ w \ $"

    Sebagai contoh lain, katakan bahawa anda ingin melihat purata uptime dan beban sistem, seperti yang ditunjukkan oleh uptime perintah. Anda boleh menggunakan pembinaan berikut, yang meletakkan uptime pada baris tersendiri sebelum sisa masa.

    PS1 = "('uptime') \ n \ u @ \ h: \ w $"

    Jangan ragu untuk bereksperimen dengan watak-watak dan perintah khas yang berbeza untuk memasang arahan perintah ideal anda.

    Bagaimana Menambah Warna pada Prompt Bash Anda

    Sebaik sahaja anda telah mengenal pasti semangat pilihan anda, anda boleh menambah warna padanya. Ini sebenarnya sangat mudah, tetapi ia menjadikan pembolehubah kelihatan sangat teruk dan rumit jika anda tidak memahami apa yang anda cari.

    Sebagai contoh, pemboleh ubah warna piawai asal dari sebelumnya ialah:

    $ debian_chroot: + ($ debian_chroot) \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $

    Atau, alihkan bit debian_chroot sekali lagi:

    \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $

    Ini sebenarnya sebenarnya \ u @ \ h: \ w $ pemboleh ubah dari sebelumnya, tetapi dengan maklumat warna. Sebenarnya, kita boleh memecahkannya ke dalam beberapa bahagian:

    \ [\ 033 [01; 32m \]\ u @ \ h \ [\ 033 [00m]: \ [\ 033 [01; 34m \]\ w \ [\ 033 [00m]\ $

    Bahagian pertama ialah \ u @ \ h bit, didahului oleh maklumat warna yang menjadikannya hijau. Yang kedua ialah : watak, didahului oleh maklumat warna yang menghilangkan mana-mana pewarna. Yang ketiga ialah \ w bit, didahului oleh maklumat warna yang menjadikannya biru. Yang keempat ialah \ $ sedikit, didahului oleh maklumat warna yang menghilangkan sebarang warna.

    Sebaik sahaja anda memahami bagaimana untuk membina tag warna anda sendiri, anda boleh menambah apa sahaja warna yang anda suka kepada apa jua bahagian Bash anda yang anda suka anda suka.

    Inilah yang anda perlu ketahui: Anda mesti memasukkan maklumat kod warna keseluruhan di antara \ [  dan \] wataks. Di dalam tag, anda mesti bermula sama ada \ 033 [ atau \ e [ untuk menunjukkan kepada Bash bahawa ini adalah maklumat warna. Kedua-duanya \ 033 [ dan \ e [ lakukan perkara yang sama. \ e [ adalah lebih pendek supaya mungkin lebih mudah digunakan, tetapi kami akan menggunakannya \ 033 [ di sini kerana ia sepadan dengan apa yang digunakan secara lalai. Pada akhir tag, anda mesti habis m \ untuk menunjukkan tanda akhir warna.

    Memecahkan itu, inilah yang akan kelihatan seperti setiap warna. Satu-satunya perbezaan ialah maklumat yang anda tambahkan menggantikan COLOR untuk menentukan warna sebenar:

    \ [\ 033 [WARNAm \]

    Bash membolehkan anda mengubah warna teks latar depan, tambah atribut seperti "berani" atau "garis bawah" pada teks, dan tetapkan warna latar belakang.

    Berikut ialah nilai untuk teks latar depan:

    • Hitam: 30
    • Biru: 34
    • Cyan: 36
    • Hijau: 32
    • Ungu: 35
    • Merah: 31
    • Putih: 37
    • Kuning: 33

    Sebagai contoh, kerana teks ungu adalah kod warna 32, anda akan menggunakannya \ [\ 033 [32m \]  untuk teks ungu.

    Anda juga boleh menentukan atribut untuk teks. Atribut ini mesti ditambah sebelum nombor warna, dipisahkan oleh titik koma (;). Teks dengan atribut ini akan kelihatan berbeza dalam emulator terminal yang berlainan.

    Berikut ialah nilai untuk atribut teks:

    • Teks Biasa: 0
    • Teks Bold atau Cahaya: 1 (Ia bergantung kepada emulator terminal.)
    • Teks Dim: 2
    • Teks yang digariskan: 4
    • Berkedip Teks: 5 (Ini tidak berfungsi dalam kebanyakan emulator terminal.)
    • Teks Terbalik: 7 (Ini mengubah latar depan dan warna latar belakang, jadi anda akan melihat teks hitam pada latar belakang putih jika teks semasa adalah teks putih pada latar belakang hitam.)
    • Teks Tersembunyi: 8

    Anda tidak perlu menyertakan atribut teks biasa. Itulah kegagalannya.

    Sebagai contoh, kerana teks merah adalah kod 31 dan teks tebal adalah kod 1, anda akan menggunakannya \ [\ 033 [1; 31m \] untuk teks merah tebal.

    Anda juga boleh menentukan warna latar belakang, tetapi anda tidak boleh menambah atribut kepada warna latar belakang.

    Berikut ialah nilai untuk warna latar belakang:

    • Latar belakang hitam: 40
    • Latar belakang biru: 44
    • Latar belakang Cyan: 46
    • Latar belakang hijau: 42
    • Latar belakang ungu: 45
    • Latar belakang merah: 41
    • Latar belakang putih: 47
    • Latar belakang kuning: 43

    Sebagai contoh, sejak latar biru adalah kod 44, \ [\ 033 [44m \] akan menentukan latar belakang biru.

    Anda boleh menentukan kedua-dua latar depan dan tag warna latar belakang. Sebagai contoh, 42 mewakili latar belakang hijau dan 31 mewakili teks merah. Jadi, untuk membuat permintaan lalai menjadi teks merah pada latar belakang hijau, anda akan menggunakan:

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \ $ "

    Kami hanya menyatakan satu warna latar belakang dan kemudian satu warna teks latar depan di sini, yang bermula pada permulaan gesaan dan diterapkan kepada semua teks dalam gesaan. Walau bagaimanapun, anda boleh menentukan seberapa banyak tag warna yang anda mahu dalam pemboleh ubah untuk mewarna bahagian-bahagian yang berlainan dari petikan anda walau bagaimanapun anda suka.

    Warna teks latar belakang dan latar depan terus melepasi gesaan melainkan anda menetapkan kod warna 00 mengosongkan maklumat warna. Anda juga boleh menggunakan tag ini dalam pemboleh ubah untuk menetapkan semula pemformatan kembali ke tempat asal di dalam prompt anda. Sebagai contoh, garisan berikut akan menamatkan semua pewarna sebelum \ $ watak.

    PS1 = "\ [\ 033 [42m \] \ [\ 033 [31m \] \ u @ \ h: \ w \\ [\ 033 [00m \] \ $ "

    Cara Set Prompt lalai baru anda

    Sebaik sahaja anda selesai bereksperimen dengan warna, anda sepatutnya mempunyai arahan Bash yang anda suka dalam sesi semasa. Tetapi anda mungkin mahu membuat arahan segera yang baru supaya ia digunakan secara automatik dalam semua sesi Bash anda.

    Untuk melakukan ini, anda hanya perlu mengubah kandungan pembolehubah PS1 dalam fail .bashrc, yang kita lihat sebelum ini.

    Buka fail .bashrc dalam editor teks pilihan anda, seperti:

    nano ~ / .bashrc

    Tatal ke bawah dan cari bahagian PS1 =. Hanya gantikan pemboleh ubah lalai dengan pemboleh ubah tersuai anda. Anda mungkin mahu meninggalkan $ debian_chroot: + ($ debian_chroot)  bit sahaja, bagaimanapun-mereka tidak akan muncul kecuali anda berada dalam persekitaran chroot, bagaimanapun.

    Masukkan pembolehubah PS1 berwarna anda di bawah jika ["$ color_prompt" = ya]; kemudian talian. Masukkan pembolehubah tanpa warna di bawah lain talian.

    Simpan fail dan tutup editor teks anda. Sebagai contoh, untuk menyimpan fail dalam nano, tekan Ctrl + O, tekan Enter, kemudian tekan Ctrl + X untuk keluar.

    Pada masa akan datang anda memulakan shell Bash baru-contohnya, dengan melog masuk di terminal atau dengan membuka tetingkap terminal baru-anda akan melihat jawapan tersuai anda.