Beranda » bagaimana » Cara Menyesuaikan (dan Mewarnai) Bash Prompt Anda

    Cara Menyesuaikan (dan Mewarnai) Bash Prompt Anda

    Sebagian besar distribusi Linux mengkonfigurasi Bash prompt agar terlihat seperti username @ hostname: direktori $ . Tetapi Anda dapat mengonfigurasi Bash prompt untuk memuat apa pun yang Anda suka, dan bahkan memilih warna apa pun yang Anda suka.

    Contoh langkah-langkah di sini dilakukan pada Ubuntu 16.04 LTS. Prosesnya harus sama pada distribusi Linux lain, meskipun prompt Bash default dan pengaturan dalam file .bashrc mungkin sedikit berbeda.

    Di mana Variabel Prompt Disimpan

    Konfigurasi Bash prompt Anda disimpan dalam file .bashrc akun pengguna Anda, yaitu di ~ / .bashrc. Jadi, jika nama pengguna Anda adalah bob, filenya ada di /home/bob/.bashrc.

    Anda dapat membuka file untuk melihat variabel Bash saat ini. Kami akan menggunakan nano sebagai editor teks contoh kami, meskipun Anda juga bisa menggunakan vi, emacs, atau editor teks lain yang Anda sukai. Buka Terminal dan jalankan:

    nano ~ / .bashrc

    Gulir ke bawah ke PS1 = bagian. Variabel pertama terlihat agak rumit karena termasuk informasi warna-kami akan menjelaskannya nanti. Variabel kedua, tanpa informasi warna, berbunyi sebagai berikut:

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

    Ini masih sedikit rumit karena $ debian_chroot: + ($ debian_chroot) bit. Ini hanya memberitahu Bash untuk memberi tahu Anda jika Anda menggunakan lingkungan chroot Debian dan biasanya tidak akan ditampilkan. Mengabaikan itu, inilah struktur default dari variabel Bash prompt:

    \ u @ \ h: \ w \ $

    \ u menunjukkan nama pengguna Anda, @ menunjukkan tanda @, \ h menunjukkan nama host (nama komputer), : menunjukkan: karakter, \ w menunjukkan direktori kerja, dan \ $ menunjukkan $ jika Anda akun pengguna normal atau # jika Anda root. Jadi, mengumpulkan semua itu, Anda dapatkan username @ hostname: working_directory $.

    Untuk mengubah prompt Bash Anda, Anda hanya perlu menambahkan, menghapus, atau mengatur ulang karakter khusus dalam variabel PS1. Tetapi ada lebih banyak variabel yang dapat Anda gunakan daripada yang standar.

    Tinggalkan editor teks untuk nano sekarang-di, tekan Ctrl + X untuk keluar. Kami akan menunjukkan kepada Anda cara bereksperimen dengan variabel sebelum benar-benar menulis yang baru ke file .bashrc Anda.

    Cara Membuat Prompt Bash Kustom

    Konfigurasi Bash prompt Anda disimpan dalam variabel PS1. Untuk menyimpan konten variabel PS1 ke variabel baru, jalankan perintah berikut:

    DEFAULT = $ PS1

    Anda sekarang dapat mengatur variabel PS1 ke nilai yang berbeda untuk percobaan. Misalnya, baris pertama di sini akan mengatur prompt Anda ke prompt "user $" dasar, sedangkan yang kedua akan mengatur prompt Anda ke prompt "user: working_directory $" dasar.

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

    Jika Anda ingin kembali ke prompt default Anda, jalankan saja perintah berikut.

    PS1 = $ DEFAULT

    Bash akan dikembalikan ke prompt standarnya berkat fakta bahwa Anda menyimpan pengaturan default sebelumnya. Perhatikan bahwa setiap perubahan yang Anda lakukan di sini hanya sementara untuk sesi Bash saat ini, sehingga Anda selalu dapat keluar dan masuk kembali atau menutup dan membuka kembali jendela terminal untuk kembali ke prompt default Anda. Tetapi baris di atas memungkinkan untuk dengan mudah kembali ke permintaan Bash default Anda tanpa perlu keluar atau menutup jendela.

    Anda dapat menambahkan karakter atau teks apa pun ke variabel. Jadi, untuk mengawali prompt default dengan "Hello World", Anda dapat menggunakan:

    PS1 = "Halo Dunia \ u @ \ h: \ w \ $"

    Sekarang setelah Anda menguasai dasar-dasarnya, Anda hanya perlu tahu apa semua karakter khusus itu. Anda mungkin tidak akan memedulikan banyak dari ini, tapi inilah daftar lengkapnya seperti yang muncul di manual Bash:

    • Karakter bel: \Sebuah
    • Tanggal, dalam format "Tanggal Bulan Hari Kerja" (mis., "Sel 26 Mei"): \ d
    • Format dilewatkan ke strftime (3) dan hasilnya dimasukkan ke string prompt; format kosong menghasilkan representasi waktu spesifik lokal. Kawat gigi diperlukan: \ D format
    • Karakter melarikan diri: \ e
    • Nama host, hingga '.' Yang pertama: \ h
    • Nama inang: \ H
    • Jumlah pekerjaan yang saat ini dikelola oleh shell: \ j
    • Nama dasar nama perangkat terminal shell: \ l
    • Baris baru: \ n
    • Pengembalian kereta: \ r
    • Nama shell, nama dasar $ 0 (bagian setelah garis miring terakhir): \ s
    • Waktu, dalam format 24 jam HH: MM: SS: \ t
    • Waktu, dalam format HH: MM: SS 12 jam: \ T
    • Waktu, dalam format 12 jam pagi / malam: \ @
    • Waktu, dalam format HH 24 jam: MM: \SEBUAH
    • Nama pengguna pengguna saat ini: \ u
    • Versi Bash (mis., 2.00): \ v
    • Pelepasan Bash, versi + patchlevel (mis., 2.00.0): \ V
    • Direktori kerja saat ini, dengan $ HOME disingkat dengan tilde (menggunakan variabel $ PROMPT_DIRTRIM): \ w
    • Nama dasar $ PWD, dengan $ HOME disingkat dengan tilde: \ W
    • Nomor sejarah perintah ini: \!
    • Nomor perintah dari perintah ini: \ #
    • Jika uid efektif adalah 0, #, jika tidak $: \ $
    • Karakter yang kode ASCII-nya adalah nilai oktal nnn: \ nnn
    • Garis miring terbalik: \\
    • Mulai urutan karakter non-cetak. Ini dapat digunakan untuk menanamkan urutan kontrol terminal ke prompt: \ [
    • Akhiri urutan karakter yang tidak dicetak: \]

    Jadi, jika Anda ingin menambahkan tanggal dan waktu ke Bash prompt Anda dan menempatkan direktori kerja pada perintah di baris kedua, Anda bisa menggunakan konstruksi berikut:

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

    Kurung kotak di sini tidak diperlukan sama sekali, tetapi bantu hancurkan semuanya secara visual dan buat kalimat lebih mudah dibaca. Seperti yang telah kita bahas sebelumnya, Anda dapat menambahkan teks atau karakter normal apa pun ke variabel yang Anda suka, jadi silakan gunakan apa pun yang berfungsi untuk Anda.

    Ada satu lagi trik ampuh yang harus Anda ketahui: Anda dapat menambahkan output dari perintah apa saja ke prompt. Setiap kali muncul, Bash akan menjalankan perintah dan mengisi informasi saat ini. Untuk melakukan ini, cukup sertakan perintah yang ingin Anda jalankan di antara keduanya ' karakter. Itu bukan tanda kutip - itu aksen makam, yang muncul di atas tombol Tab pada keyboard Anda.

    Sebagai contoh, katakanlah Anda ingin melihat versi kernel Linux di prompt. Anda dapat menggunakan garis seperti berikut:

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

    Sebagai contoh lain, katakanlah Anda ingin melihat waktu operasi dan rata-rata sistem, seperti yang ditampilkan oleh uptime perintah. Anda bisa menggunakan konstruksi berikut ini, yang menempatkan uptime pada jalurnya sendiri sebelum sisa prompt.

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

    Jangan ragu untuk bereksperimen dengan berbagai karakter dan perintah khusus untuk merakit prompt perintah ideal Anda.

    Cara Menambahkan Warna ke Prompt Bash Anda

    Setelah Anda menemukan prompt yang Anda inginkan, Anda dapat menambahkan warna ke dalamnya. Ini sebenarnya sangat sederhana, tetapi itu membuat variabel terlihat sangat berantakan dan rumit jika Anda tidak mengerti apa yang Anda lihat.

    Misalnya, variabel prompt warna default dari sebelumnya adalah:

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

    Atau, menghapus bit debian_chroot sekali lagi:

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

    Ini sebenarnya hanya \ u @ \ h: \ w $ variabel dari sebelumnya, tetapi dengan informasi warna. Sungguh, kita dapat memecahnya menjadi beberapa bagian:

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

    Bagian pertama adalah \ u @ \ h bit, didahului oleh informasi warna yang mengubahnya menjadi hijau. Yang kedua adalah : karakter, didahului oleh informasi warna yang menghilangkan pewarnaan apa pun. Yang ketiga adalah \ w bit, didahului oleh informasi warna yang mengubahnya biru. Yang keempat adalah \ $ bit, didahului oleh informasi warna yang menghilangkan pewarnaan apa pun.

    Setelah Anda memahami cara membuat tag warna Anda sendiri, Anda dapat menambahkan warna apa pun yang Anda suka ke bagian apa pun dari Bash yang Anda sukai.

    Inilah yang perlu Anda ketahui: Anda harus memasukkan seluruh informasi kode warna di antara \ [  dan \] karakters. Di dalam tag, Anda harus mulai dengan keduanya \ 033 [ atau \ e [ untuk menunjukkan kepada Bash bahwa ini adalah informasi warna. Kedua \ 033 [ dan \ e [ lakukan hal yang sama. \ e [ lebih pendek sehingga mungkin lebih nyaman untuk digunakan, tetapi kami akan gunakan \ 033 [ di sini karena cocok dengan apa yang digunakan secara default. Di akhir tag, Anda harus diakhiri dengan m \ untuk menunjukkan akhir dari tag warna.

    Memecah itu, inilah yang akan terlihat seperti setiap tag warna. Satu-satunya perbedaan adalah informasi yang Anda tambahkan menggantikan COLOR untuk menentukan warna sebenarnya:

    \ [\ 033 [WARNAm \]

    Bash memungkinkan Anda untuk mengubah warna teks latar depan, menambahkan atribut seperti "tebal" atau "garis bawah" ke teks, dan mengatur warna latar belakang.

    Berikut adalah nilai-nilai untuk teks latar depan:

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

    Misalnya, karena teks ungu adalah kode warna 32, Anda akan menggunakannya \ [\ 033 [32m \]  untuk teks ungu.

    Anda juga dapat menentukan atribut untuk teks. Atribut ini harus ditambahkan sebelum nomor warna, dipisahkan dengan tanda titik koma (;). Teks dengan atribut ini akan terlihat berbeda di emulator terminal yang berbeda.

    Berikut adalah nilai untuk atribut teks:

    • Teks Normal: 0
    • Teks Tebal atau Terang: 1 (Tergantung emulator terminal.)
    • Teks Dim: 2
    • Teks yang digarisbawahi: 4
    • Teks Berkedip: 5 (Ini tidak berfungsi di sebagian besar emulator terminal.)
    • Teks Terbalik: 7 (Ini membalikkan warna latar depan dan latar belakang, sehingga Anda akan melihat teks hitam pada latar belakang putih jika teks saat ini adalah teks putih pada latar belakang hitam.)
    • Teks Tersembunyi: 8

    Anda sebenarnya tidak perlu menyertakan atribut teks normal. Lagipula itu standarnya.

    Misalnya, karena teks merah adalah kode 31 dan teks tebal adalah kode 1, Anda akan menggunakannya \ [\ 033 [1; 31m \] untuk teks merah tebal.

    Anda juga bisa menentukan warna latar belakang, tetapi Anda tidak bisa menambahkan atribut ke warna latar belakang.

    Berikut adalah nilai untuk warna latar belakang:

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

    Misalnya, karena latar belakang biru adalah kode 44, \ [\ 033 [44m \] akan menentukan latar belakang biru.

    Anda dapat menentukan tag warna foreground dan background. Misalnya, 42 mewakili latar belakang hijau dan 31 mewakili teks merah. Jadi, untuk membuat prompt default menjadi teks merah dengan latar belakang hijau, Anda akan menggunakan:

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

    Kami hanya menentukan satu warna latar belakang dan kemudian satu warna teks latar depan di sini, yang dimulai pada awal prompt dan diterapkan ke semua teks dalam prompt. Namun, Anda dapat menentukan tag warna sebanyak yang Anda inginkan dalam variabel untuk mewarnai bagian berbeda dari prompt Anda sesuka Anda.

    Warna teks latar dan latar depan terus melewati permintaan kecuali jika Anda menentukan kode warna 00 menghapus informasi warna. Anda juga dapat menggunakan tag ini di dalam variabel untuk mengatur ulang pemformatan kembali ke default di suatu tempat di prompt Anda. Misalnya, baris berikut akan mengakhiri semua pewarnaan sebelum \ $ karakter.

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

    Cara Mengatur Prompt Default Baru Anda

    Setelah Anda selesai bereksperimen dengan warna, Anda harus memiliki prompt Bash yang Anda sukai di sesi saat ini. Tapi Anda mungkin ingin membuat prompt baru itu permanen sehingga secara otomatis digunakan di semua sesi Bash Anda.

    Untuk melakukan ini, Anda hanya perlu mengubah konten variabel PS1 dalam file .bashrc, yang telah kita lihat sebelumnya.

    Buka file .bashrc di editor teks pilihan Anda, seperti:

    nano ~ / .bashrc

    Gulir ke bawah dan temukan bagian PS1 =. Cukup ganti variabel default dengan variabel khusus Anda. Anda mungkin ingin meninggalkan $ debian_chroot: + ($ debian_chroot)  bit saja, namun-mereka tidak akan muncul kecuali Anda berada di lingkungan chroot.

    Masukkan variabel PS1 berwarna Anda di bawah jika ["$ color_prompt" = ya]; kemudian baris. Masukkan variabel tanpa warna di bawah lain baris.

    Simpan file dan tutup editor teks Anda. Misalnya, untuk menyimpan file di nano, tekan Ctrl + O, tekan Enter, lalu tekan Ctrl + X untuk keluar.

    Lain kali Anda memulai Bash shell baru - misalnya, dengan masuk di terminal atau dengan membuka jendela terminal baru - Anda akan melihat permintaan khusus Anda.