คำถามติดแท็ก prompt

สตริงอักขระที่แสดงโดยเชลล์แบบโต้ตอบเพื่อส่งสัญญาณเชลล์กำลังรออินพุตผู้ใช้

7
ฉันจะเปลี่ยนสิ่งที่ปรากฏที่เปลือกเข้าสู่ระบบได้อย่างไร
ฉันคุ้นเคยกับการปรับแต่งสิ่งต่าง ๆ ให้ดูในเชลล์ผ่านทางพรอมต์ ( .bashrc) แต่ตอนนี้ฉันกำลังพยายามเปลี่ยนสิ่งเริ่มต้นที่แสดงเมื่อฉันเข้าสู่ระบบครั้งแรกในอินสแตนซ์ EC2 ของฉันนี่คือสิ่งที่ฉันเห็นเมื่อ ฉันเข้าสู่ระบบ: __| __|_ ) Fedora 8 _| ( / 32-bit ___|\___|___| Welcome to: Wowza Media Server 2 for Amazon EC2 Version: 2.0.0.08 ในคอมพิวเตอร์ Mint ที่บ้านของฉันนี่คือสิ่งที่ฉันเห็นเมื่อลงชื่อเข้าใช้: Welcome to Linux Mint 11 Katya (GNU/Linux 2.6.38-8-generic x86_64) Welcome to Linux Mint * Documentation: http://www.linuxmint.com Last …
23 bash  login  prompt  profile 

4
ฉันสามารถกำหนดค่า bash เพื่อดำเนินการ "ล้าง" ก่อนทุกคำสั่งที่พิมพ์ในคอนโซลหรือไม่
ฉันต้องการกำหนดค่า bash เพื่อประมวลผลclearคำสั่งทุกครั้งที่ฉันพิมพ์คำสั่งบางคำสั่งในเทอร์มินัล (ก่อนดำเนินการคำสั่งของฉัน) ฉันจะทำสิ่งนั้นได้อย่างไร ฉันใช้ Debian Linux

2
แสดงเนื้อหาด้านล่างของพรอมต์ที่ shell prompt หรือไม่
ช่วยบอกว่าพรอมต์ของฉันเป็นแบบนี้ (_ แทนเคอร์เซอร์ของฉัน) ~ % _ มีวิธีใดที่ฉันจะทำให้มันเป็นแบบนี้ ~ % _ [some status] คำถามเดิมเกี่ยวกับ zsh แต่ตอนนี้มีคำตอบอื่น ๆ
21 bash  zsh  prompt 

5
ทำไมบางครั้งฉันถูกถามซ้ำ ๆ ด้วย“>” ในเครื่อง
เอาล่ะเมื่อฉันรันคำสั่งบางอย่างในทางที่ผิด (สะกดผิด ฯลฯ ) เทอร์มินัลจะแสดงผลลัพธ์ดังนี้: >แทนที่จะเป็นcomputername:workingfolder username$และเมื่อฉันพิมพ์ให้ป้อนมันจะเป็นดังนี้: > > > ถ้าฉันกด Enter 3 ครั้ง

2
การดำเนินการคำสั่ง if จากพรอมต์คำสั่ง
ในทุบตีฉันสามารถทำต่อไปนี้: if [ -f /tmp/test.txt ]; then echo "true"; fi อย่างไรก็ตามหากฉันเพิ่มsudoไว้ด้านหน้ามันจะไม่ทำงานอีกต่อไป: sudo if [ -f /tmp/test.txt ]; then echo "true"; fi -bash: syntax error near unexpected token `then' ฉันจะทำให้มันทำงานได้อย่างไร

3
PS1 = '$ (pwd)' ทำไมมันถึงใช้งานได้และทำไมมันถึงแตกต่างจาก PS1 = $ (pwd)
เหตุใดเมื่อฉันป้อนคำสั่งนี้พรอมต์จึงเปลี่ยนไดเรกทอรีของฉัน PS1='$(pwd)' ฉันกำลังใช้เครื่องหมายคำพูดเดี่ยวซึ่งหมายถึงไม่มีการแก้ไขอาคาecho '$(pwd)'—— →$(pwd) ยิ่งไปกว่านั้นบอกว่าเราชี้แจงว่าทำไมสิ่งนี้ถึงได้ผล ... ทำไมมันถึงแตกต่างจากเดิมPS1=$(pwd)? (ไม่มีเครื่องหมายคำพูดเลย) โดยที่แตกต่างกันฉันหมายความว่าถ้าฉันใช้อัญประกาศแล้วพรอมต์จะเปลี่ยนไปยังไดเรกทอรีปัจจุบันของฉันในขณะที่ฉันนำทางผ่านสถานี แต่ถ้าฉันไม่ใช้เครื่องหมายคำพูดแล้วพรอมต์จะยังคงอยู่ในไดเรกทอรีที่ฉันอยู่เมื่อฉันป้อนคำสั่งครั้งแรกPS1=$(pwd) ทำไม?
18 bash  zsh  prompt  pwd 

2
ฉันจะทำให้คำสั่งปรากฏเป็นตัวหนาใน zsh ได้อย่างไร
ฉันได้ตั้งค่า bash shell ของฉันเพื่อให้คำสั่งใด ๆ ที่ฉันพิมพ์ปรากฏเป็นตัวหนาและผลลัพธ์ของคำสั่งจะแสดงในน้ำหนักปกติ: ฉันทำสิ่งนี้โดยการเพิ่ม\e[01mที่ส่วนท้ายของPS1ตัวแปรของฉันเพื่อเปิดตัวหนาและใช้trap DEBUGเพื่อปิด: trap 'printf "\e[0m" "$_"' DEBUG ด้วยวิธี\e[0mนี้พิมพ์ก่อนที่จะดำเนินการแต่ละคำสั่งและฉันได้รับน้ำหนักตัวอักษรปกติในการส่งออก ฉันจะไปเกี่ยวกับการรับผลเหมือนกันได้zshอย่างไร
18 zsh  colors  prompt 

4
ลดเส้นทางในพรอมต์ zsh
BashมีPROMPT_DIRTRIMตัวเลือกเช่นเมื่อฉันตั้งPROMPT_DIRTRIM=3แล้วเส้นทางยาวเช่น: user@computer: /this/is/some/silly/path จะแสดงแทนเป็น: user@computer: .../some/silly/path มีตัวเลือกที่คล้ายกันzshหรือไม่
18 zsh  prompt 

4
วิธีแสดงชื่อโฮสต์ในพรอมต์ commandline Linux
ฉันมีหลาย VM และตอนนี้ฉันพร้อมรับคำสั่งบรรทัดคำสั่งดูเหมือน-bash-3.2$; เหมือนกันทุก VM เพราะไม่มีชื่อโฮสต์ ฉันต้องดูว่าฉันใช้ VM ชนิดใดอยู่hostnameก่อนที่จะทำการดำเนินการใด ๆ ฉันจะเพิ่มชื่อโฮสต์ในเชลล์พรอมต์ได้อย่างไร ENV: CentOS / ssh
18 bash  prompt  hostname 

6
วิธีทำให้ bash ใส่พรอมต์บนบรรทัดใหม่หลังจากคำสั่ง cat?
สิ่งที่ฉันได้รับ: host:~ user$ cat example.txt some texthost:~ stas$ สิ่งที่ฉันต้องการได้รับ: host:~ user$ cat example.txt some text host:~ stas$ มีวิธีที่ฉันสามารถcatประพฤติเช่นนี้หรือไม่? ฉันใช้ทุบตีใน Mac OS X
17 bash  osx  prompt  cat 


7
กระชับ bash พรอมต์เมื่อใช้ต้นไม้ไดเรกทอรี / ชื่อไฟล์
ในระบบที่มี Ubuntu 14.04 และbashฉันมีPS1ตัวแปรลงท้ายด้วยเนื้อหาดังต่อไปนี้: \u@\h:\w\$ เพื่อให้พรอมต์ปรากฏเป็น user@machinename:/home/mydirectory$ อย่างไรก็ตามบางครั้งไดเรกทอรีปัจจุบันมีชื่อยาวหรืออยู่ภายในไดเรกทอรีที่มีชื่อยาวเพื่อให้พรอมต์ดูเหมือน user@machinename:/home/mydirectory1/second_directory_with_a_too_long_name/my_actual_directory_with_another_long_name$ วิธีนี้จะเติมบรรทัดในเทอร์มินัลและเคอร์เซอร์จะไปยังอีกบรรทัดหนึ่งซึ่งน่ารำคาญ ฉันต้องการที่จะได้รับบางสิ่งบางอย่างแทน user@machinename:/home/mydirectory1/...another_long_name$ มีวิธีการกำหนดPS1ตัวแปรเพื่อ "ห่อ" และ "กระชับ" ชื่อไดเรกทอรีเพื่อไม่เกินจำนวนอักขระที่กำหนดรับพรอมต์ที่สั้นลงหรือไม่

5
ฟังก์ชันทุบตี stateful
ฉันต้องการใช้ฟังก์ชั่นใน Bash ซึ่งจะเพิ่มจำนวน (และคืน) จำนวนการโทรทุกครั้ง น่าเสียดายที่นี่ดูไม่สำคัญเพราะฉันเรียกใช้ฟังก์ชั่นภายใน subshell และดังนั้นจึงไม่สามารถแก้ไขตัวแปรของ parent shell ได้ นี่คือความพยายามของฉัน: PS_COUNT=0 ps_count_inc() { let PS_COUNT=PS_COUNT+1 echo $PS_COUNT } ps_count_reset() { let PS_COUNT=0 } นี้จะใช้ดังนี้ (และด้วยเหตุนี้ฉันต้องเรียกใช้ฟังก์ชันจาก subshell): PS1='$(ps_count_reset)> ' PS2='$(ps_count_inc) ' ด้วยวิธีนี้ฉันจะได้รับพรอมต์หลายบรรทัดที่มีหมายเลข: > echo 'this 1 is 2 a 3 test' น่ารัก แต่เนื่องจากข้อ จำกัด ดังกล่าวไม่ทำงาน โซลูชันที่ไม่ทำงานจะเขียนจำนวนลงในไฟล์แทนตัวแปร อย่างไรก็ตามสิ่งนี้จะสร้างความขัดแย้งระหว่างเซสชันหลายเซสชันพร้อมกัน ฉันสามารถต่อท้าย ID …


6
แสดงเฉพาะไดเรกทอรีปัจจุบันและพาเรนต์ใน bash prompt
ฉันใหม่เพื่อทุบตีและต้องการให้ฉันแสดงบางอย่างที่ tcsh ไม่สำคัญ แต่หลังจากการค้นหา google ที่ดีฉันยังไม่สามารถทำได้ ฉันต้องการให้ฉันรวมเฉพาะไดเรกทอรีปัจจุบันและผู้ปกครองเช่นนี้ /parent/currentdir $ ใน tcsh สามารถทำได้โดย: set prompt = "%C2 %" อย่างไรก็ตามใน bash จนถึงตอนนี้ฉันเพิ่งพบว่าฉันต้องแยกวิเคราะห์ pwd เพื่อให้ได้ผลลัพธ์เดียวกัน ไม่มีวิธีที่ง่ายกว่าเช่นการทำ: export PS1="$(some_command) $"
16 bash  prompt 

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