ในเทอร์มินัลแก้ไขข้อความที่มาก่อน $


13

ในเทอร์มินัลฉันสามารถเห็นเส้นทางที่ฉันอยู่:

macbook-romeo:School romeovs$ echo "example command"

ซึ่งฉันพบว่าค่อนข้างมีประโยชน์ แต่ก็มีสิ่งที่ไม่จำเป็นมากมายที่นี่เช่นกัน: macbook-romeoไม่มีประโยชน์เนื่องจากฉันมักจะอยู่บน macbook (duh) จากนั้นอีกครั้งromeovsมีประโยชน์มาก (นี่คือชื่อผู้ใช้ของฉัน)

มีการแก้ไขสิ่งที่แสดงที่นี่หรือไม่ เช่น

22:50 - School - Romeo$ echo "example"

ซึ่ง22:50เป็นเวลาที่ปัจจุบันหรือไม่? (นี่เป็นเพียงตัวอย่างของหลักสูตรฉันไม่ต้องการเวลาฉันจะใช้ข้อความที่เรียบง่ายกว่านี้เล็กน้อย)

คำตอบ:


11

นี้บทความ OSX ประจำวันมีคำแนะนำรายละเอียดเกี่ยวกับวิธีการทำ ในระยะสั้นคุณต้องแก้ไข~/.bash_profileไฟล์ของคุณและแก้ไขตัวแปร PS1

ด้านล่างนี้เป็นรายการตัวแปรที่เป็นไปได้ที่คุณสามารถแสดงได้:

  • \ d - วันที่ปัจจุบัน
  • \ t - เวลาปัจจุบัน
  • \ h - ชื่อโฮสต์
  • # - หมายเลขคำสั่ง
  • \ u - ชื่อผู้ใช้
  • \ W - ไดเรกทอรีการทำงานปัจจุบัน (เช่น: Desktop /)
  • \ w - ไดเรกทอรีการทำงานปัจจุบันเส้นทางแบบเต็ม (เช่น: / Users / Admin / Desktop)

11

คุณจำเป็นต้องปรับเปลี่ยนแฟ้ม .bashrc ที่พบในไดเรกทอรีบ้านของคุณ

เปิดเทอร์มินัลแล้วทำดังนี้:

  • cd ~
  • touch .bashrc
  • open .bashrc

เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์. bashrc ของคุณ

ส่งออก PS1 = '\ t - \ W - \ u \ $'

  • บันทึกไฟล์และปิดโปรแกรมแก้ไขของคุณ
  • กลับไปที่เทอร์มินัลแล้วป้อนคำสั่งต่อไปนี้:

    แหล่ง. bashrc

บูม! ตอนนี้คุณควรได้รับพรอมต์ที่คุณต้องการ! (ถ้าเป็นพรอมต์ที่คุณต้องการให้เป็นตัวอย่าง)


เมื่อฉันทำสิ่งนี้ฉันได้รับต่อไปนี้MBP-15:~ Daniel$ source .bashrc -bash: export: = ': ไม่ใช่ตัวระบุที่ถูกต้อง -bash: ส่งออก:\t - \W - \u$ ': not a valid identifier MBP-15:~ Daniel$
Daniel Compton

@DanielCompton ขอบคุณที่ชี้ให้เห็นว่าฉันได้รับการปรับปรุงคำตอบของฉันเพื่อให้การทำงาน :)
macaco

4

สิ่งนี้ถูกควบคุมโดยตัวแปรเชลล์ $ PS1

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

ดูผลลัพธ์ต่อไปนี้สำหรับตัวอย่าง:

Last login: Fri Oct 21 21:59:28 on ttys000

Dans-MacBook-Air:~ stuffe$ echo $PS1

\h:\W \u\$

Dans-MacBook-Air:~ stuffe$ PS1="Hello World $"

Hello World $PS1=`date`

Fri 21 Oct 2011 22:03:23 BSTsleep 60

Fri 21 Oct 2011 22:03:24 BSTPS1="`date +%H:%M` $"

22:04 $PS1="\h:\W \u\$"

Dans-MacBook-Air:~ stuffe$

ความเป็นไปได้ไม่มีที่สิ้นสุด มีบางสิ่งที่คุณสามารถทำกับ PS2 ได้เช่นกัน แต่ฉันคิดว่ามันจะมีผลถ้าคุณเป็นคนราก - รายละเอียดมืดมน Unix ของฉันเป็นเวลานานแล้วและขึ้นอยู่กับ Solaris ไม่ใช่ Mac OS X แต่พื้นฐานก็เหมือนกัน

ข้อมูลเพิ่มเติม: ตามที่แนะนำในการตอบกลับอื่น ๆ มีแฟล็กในตัวเช่น \ h และ \ W และอื่น ๆ ที่คุณสามารถใช้ได้ แต่คุณยังสามารถใช้เอาต์พุตของคำสั่งเกือบทุกคำได้เช่นกันโดยใช้ "เครื่องหมายขีดย้อนหลัง" ใช้ในตัวอย่างวันที่ของฉันด้านบน) คำสั่งด้านหลังเห็บได้รับการเรียกใช้และเอาท์พุทแทนช่วยให้คุณรวมอะไรแม้ว่าจะไม่มีการสร้างในธงแม้สำหรับสิ่งที่ดูเหมือนจะโง่สิ่งที่คุณสามารถคิด ต้องการรวมเวลาของรายการสุดท้ายลงในไฟล์บันทึกข้อผิดพลาดหรือไม่? ใช้สิ่งที่ชอบ:

PS1="`tail -1 $LOGFILE | awk '{print $1}'` $ "

(อ่านบรรทัดสุดท้ายของไฟล์ที่อ้างอิงโดย $ LOGFILE และพิมพ์คอลัมน์ที่ 1 สมมติว่าเป็นตัวคั่นฟิลด์เริ่มต้น) ฯลฯ หากคุณสามารถดำเนินการได้คุณสามารถรวมมันได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.