เปลี่ยน Cygwin Prompt


17

การแจ้ง cygwin เริ่มต้นของ"user@computer path \ n $"นั้นยาวเกินไปสำหรับฉัน ฉันต้องการรักษาเส้นทาง

ฉันอยากให้มันกลายเป็น:

เส้นทาง $

มีไฟล์ปรับแต่งที่ฉันสามารถแก้ไขได้หรือไม่?



คำตอบ:


26

PS1ตัวแปรสภาพแวดล้อมการควบคุมพรอมต์:

PS1='\w $ '

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้และการกำหนดค่าอื่น ๆ ที่พร้อมท์ให้พิมพ์man bash(สมมติว่าbashเป็นเชลล์ของคุณ) และดูส่วน "PROMPTING"

หากต้องการทำการเปลี่ยนแปลงนี้อย่างถาวรให้แก้ไข~/.bashrcไฟล์ของคุณเพื่อเพิ่มบรรทัดด้านบน


1
~ / .bashrc ไม่ได้รับการดำเนินการสำหรับเปลือกเข้าสู่ระบบ อัปเดต ~ / .bash_profile แทน ฉันใช้สตริงพรอมต์ต่อไปนี้ซึ่งมีข้อมูลที่เป็นประโยชน์อื่น ๆ ไม่ใช่แค่เส้นทาง: PS1 = '[\ e [32m] \ t [\ e [33m] \ w [\ e [31m] \! [\ e [0m] \ $ '
bobmcn

1
อย่าลืมว่าโดยปกติแล้วแหล่งที่มา. profile. bashrc ดังนั้นในกรณีนี้เชลล์การเข้าสู่ระบบจะเริ่มต้นด้วยสิ่งเดียวกันมากกว่าเชลล์ที่ไม่ใช่การเข้าสู่ระบบบวกกับสิ่งที่อยู่ใน. profile หากเป็นเช่นนั้นให้ใส่คำสั่งใหม่ใน. bashrc ฆ่านกสองตัวด้วยหินก้อนเดียว

1

เปลือกเข้าสู่ระบบเป็นหนึ่งที่มีอักขระตัวแรกของศูนย์อาร์กิวเมนต์เป็น - หรือหนึ่งเริ่มต้นด้วยตัวเลือก --login เมื่อ bash ถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบหรือเป็นเชลล์ที่ไม่มีการโต้ตอบกับตัวเลือก --login มันจะอ่านและเรียกใช้คำสั่งจากไฟล์ / etc / profile ก่อนหากไฟล์นั้นมีอยู่ หลังจากอ่านไฟล์นั้นจะค้นหา ~ / .bash_profile, ~ / .bash_login และ ~ / .profile ตามลำดับและอ่านและเรียกใช้คำสั่งจากไฟล์แรกที่มีอยู่และอ่านได้ อาจใช้ตัวเลือก --noprofile เมื่อเชลล์เริ่มต้นเพื่อยับยั้งพฤติกรรมนี้เมื่อเชลล์โต้ตอบที่ไม่ใช่ล็อกอินเชลล์เริ่มทำงาน bash จะอ่านและดำเนินการคำสั่งจาก ~ / .bashrc หากมีไฟล์นั้นอยู่

ดังนั้นมันขึ้นอยู่กับ ... ฉันไม่ได้ใช้ --login ดังนั้นฉันต้องเพิ่มใน ~ / .bashrc


1

ไม่แน่ใจว่าทำไมการมีบริบทน้อยกว่าดีกว่ามีมากกว่า ... ความจริงที่ว่ามีบรรทัดใหม่ในพรอมต์หมายความว่าความยาวของพรอมต์ไม่ควรเป็นปัญหา แต่ลองทำสิ่งนี้:

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

หรือ

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

สิ่งนี้จะทำให้คุณได้รับพร้อมท์สี:

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

ด้วยวิธีนี้คุณจะเห็นบริบทโฟลเดอร์ทั้งหมดของคุณเสมอ แต่ยังคงได้รับบรรทัดเต็มเพื่อป้อนข้อความ (ฉันออกจากพื้นที่จารีตประเพณีตาม '$' เพราะมีสีเพื่อความชัดเจน)

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

สำหรับผู้ที่ต้องการบริบท 'user @ hostname' ด้วย:

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

หรือ

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

สิ่งนี้จะทำให้คุณได้รับพร้อมท์สี:

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

นี่คือความชอบของฉัน

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.

(ไม่ไม่มีการสะกดผิดในโพสต์นี้ - ภาษาอังกฤษของราชินี))


1

.bashrc ไม่ทำงานสำหรับฉัน ฉันเพิ่มสิ่งนี้ลงในตอนท้ายของ / etc / profile และมันใช้ได้

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

ฉันใช้ Cygwin รุ่น 2.11.2 (รุ่นล่าสุด ณ ปี 2018-12-18)


0

ใส่สิ่งนี้ใน ~ / .bashrc ของคุณ ให้พร้อมต์สีและเก็บสถานะไว้ในบรรทัดเดียว

export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\$ "
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.