Variabel PS1 default pada mesin saya (Kubuntu 13.10) adalah ini:
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Saya sedang mencari referensi untuk cara kerja variabel $ PS1 yang, minimal, memungkinkan saya untuk memahami variabel PS1 di atas.
PS1
di terminal, misalnyaPS1="How r u, \u?"
. Perubahan hanya akan berlangsung sampai Anda menutup terminal.Jawaban:
Referensi
Sejauh ini, belum ada referensi tunggal untuk semua yang bisa masuk dalam Bash prompt - tetapi karena ini adalah fitur yang telah berkembang selama beberapa dekade dan mungkin bervariasi dari distro ke distro, mungkin itu terlalu banyak untuk ditanyakan. Saya sudah mencoba meringkas apa yang menurut saya paling berguna di sini.
Cara ini adalah yang paling lengkap, tetapi sangat panjang dan bertele-tele. Beberapa bagian yang lebih berguna:
\[
dan\]
perlu.Panduan ini menjelaskan cara
${}
kerja Bash secara umum, dan pertanyaan Tanya pada Ubuntu ini menjelaskan lebih banyak tentang cara kerjanyadebian_chroot
.Di antara itu, saya pikir setiap karakter dalam variabel default Ubuntu PS1 dijelaskan.
Penjelasan prompt Ubuntu
Ada tiga bagian ke prompt:
\[\e]0;\u@\h: \w\a\]
menyetel bilah judul jendela xterm:\[
memulai bagian karakter yang tidak dapat dicetak\e]0;
adalah urutan pelarian untuk 'set xterm title' (Saya percaya angka selain 0 akan mengatur properti xterm lainnya, meskipun saya belum menguji ini)\u@\h: \w
judul untuk digunakan (lihat di bawah untuk\u
,\h
dan\w
)\a
menandai akhir dari judul\]
menandai akhir dari karakter yang tidak dapat dicetak${debian_chroot:+($debian_chroot)}
meluas ke nilai $ debian_chroot dalam tanda kurung jika $ debian_chroot disetel. Lihat pertanyaan ini untuk informasi lebih lanjut tentang $ debian_chroot.\u@\h:\w\$
adalah prompt itu sendiri:\u
meluas ke nama pengguna saat ini\h
meluas ke nama host saat ini\w
memperluas ke direktori kerja saat ini\$
meluas ke#
untuk root dan$
untuk semua pengguna lainsumber
Menurut dengan Bash Reference Manual ,
PS1
adalah:Beberapa referensi lain yang baik dapat:
Prompt PS1 menjelaskan untuk Linux / Unix
Apa yang dilakukan "$ {debian_chroot: + ($ debian_chroot)}" di prompt terminal saya?
Bash Shell PS1: 10 Contoh untuk Membuat Linux Prompt Anda seperti Angelina Jolie
sumber
\[
dan\]
, meskipun - apakah Anda punya referensi untuk itu?\[
- mulai urutan karakter non-cetak, yang dapat digunakan untuk menanamkan urutan kontrol terminal ke prompt;\]
- akhiri urutan karakter yang tidak dicetak.ss64.com tampaknya memiliki referensi terbaik yang saya temukan.
Ini menjelaskan variabel-variabel berikut:
The
\[ ... \]
mendefinisikan serangkaian karakter non-cetak. Mereka diminta untuk melacak posisi kursor dengan benar.The
\e
di prompt Anda memulai urutan pelarian. Lebih banyak tentang yang ada di sini (catatan "Esc" pada halaman itu adalah\e
urutannya).tput
untuk mendapatkan kode pelarian untuk Anda.${debian_chroot:+($debian_chroot)}
adalah ekspansi parameter. Lihat di sini($debian_chroot)
jika$debian_chroot
tidak diatur apa-apa.sumber