Ubah Konfirmasi Cygwin

Jawaban:

26

The PS1variabel lingkungan mengendalikan prompt:

PS1='\w $ '

Untuk informasi lebih lanjut tentang ini dan topik konfigurasi prompt lainnya, ketik man bash(anggap sebagai bashshell Anda) dan lihat bagian "PROMPTING".

Untuk membuat perubahan ini permanen, edit ~/.bashrcfile Anda untuk menambahkan baris di atas.

Greg Hewgill
sumber
1
~ / .bashrc tidak dieksekusi untuk shell login. perbarui ~ / .bash_profile sebagai gantinya. Saya menggunakan string prompt berikut, yang memiliki beberapa informasi berguna lainnya, bukan hanya path: PS1 = '[\ e [32m] \ t [\ e [33m] \ w [\ e [31m] \! [\ e [0m] \ $ '
bobmcn
1
Jangan lupa bahwa biasanya .profile sources .bashrc, sehingga pada dasarnya shell login diinisialisasi dengan hal yang sama daripada shell non-login plus apa yang ada di .profile. Jika itu masalahnya, masukkan prompt baru Anda di .ashrc membunuh dua burung dengan satu batu.
1

Shell login adalah karakter yang argumen pertama nol adalah a -, atau yang dimulai dengan opsi --login. Ketika bash dipanggil sebagai shell login interaktif, atau sebagai shell non-interaktif dengan opsi --login, ia pertama kali membaca dan mengeksekusi perintah dari file / etc / profile, jika file itu ada. Setelah membaca file itu, ia mencari ~ / .bash_profile, ~ / .bash_login, dan ~ / .profile, dalam urutan itu, dan membaca serta mengeksekusi perintah dari yang pertama yang ada dan dapat dibaca. Opsi --noprofile dapat digunakan ketika shell mulai untuk menghentikan perilaku ini Ketika shell interaktif yang bukan shell login dimulai, bash membaca dan mengeksekusi perintah dari ~ / .bashrc, jika file itu ada.

Jadi itu tergantung ... saya tidak menggunakan --login, jadi saya harus menambahkannya ke ~ / .bashrc

jr00n
sumber
1

Tidak yakin mengapa memiliki lebih sedikit konteks lebih baik daripada memiliki lebih banyak ... Fakta bahwa ada baris baru di prompt berarti panjang prompt tidak boleh menjadi masalah, tetapi coba ini:

PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

atau

export PS1='\[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Ini memberi Anda prompt berwarna:

/full/path/to/current/folder
$your command text here

Dengan begitu, Anda selalu melihat konteks folder lengkap Anda tetapi masih mendapatkan garis penuh untuk memasukkan teks. (Saya meninggalkan ruang adat mengikuti '$' karena berwarna untuk kejelasan).

Colours are:
    1. '/full/path/...' = yellow;
    2. '$' (on next line) = cyan;
    3. 'your command text...' = light grey.

Bagi mereka yang menginginkan konteks 'user @ hostname' juga:

PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

atau

export PS1='\[\e[1;32m\]\u\[\e[1;35m\]@\[\e[1;32m\]\h \[\e[1;33m\]\w\n\[\e[1;36m\]\$\[\e[0m\] '

Ini memberi Anda prompt berwarna:

user@hostname /full/path/to/current/folder
$your command text here

Ini adalah pilihan saya.

Colours are:
    1. 'user' = (light) green;
    2. '@' = pink;
    3. 'hostname' = (light) green;
    4. '/full/path/...' = yellow;
    5. '$' (on next line) = cyan;
    6. 'your command text...' = light grey.

(Tidak, tidak ada kesalahan ejaan dalam pos ini - Bahasa Inggris Ratu;))

skeetastax
sumber
1

.bashrc tidak berfungsi untuk saya. Saya menambahkan ini ke akhir / etc / profile dan berhasil:

export PS1="\[\e[33m\]\w\[\e[0m\] \$ "

Saya menggunakan Cygwin versi 2.11.2 (versi terbaru pada 2018-12-18).

Samuel
sumber
0

Letakkan ini di ~ / .bashrc Anda. Memberi prompt berwarna dan menjaga status dalam satu baris.

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ "
Sandeep
sumber