ปัจจุบันคือ:
michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$
นอกการเปลี่ยนชื่อเครื่องและโครงสร้างไดเรกทอรีของฉัน ...
ฉันจะทำให้มันเป็นอย่างนี้ได้อย่างไร:
michael:controllers$
ปัจจุบันคือ:
michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$
นอกการเปลี่ยนชื่อเครื่องและโครงสร้างไดเรกทอรีของฉัน ...
ฉันจะทำให้มันเป็นอย่างนี้ได้อย่างไร:
michael:controllers$
คำตอบ:
เพียงแค่ใส่PS1='\u:\W\$ '
แล้วกด Enter
ในของคุณ~/.bashrc
ค้นหาส่วนต่อไปนี้:
ถ้า ["$ color_prompt" = ใช่]; แล้วก็ PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ ยู @ \ ชั่วโมง \ [\ 033 [00M \]: \ [\ 033 [01; 34m \] w \ \ [\ 033 [00m \] \ $ ' อื่น PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u @ \ h: \ w \ $' Fi
ลบ@\h
และแทนที่\w
ด้วยตัวพิมพ์ใหญ่\W
เพื่อให้กลายเป็น:
ถ้า ["$ color_prompt" = ใช่]; แล้วก็ PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ U \ [\ 033 [00M \]: \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] \ $ ' อื่น PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u: \ W \ $' Fi
บันทึกออกจากปิดเทอร์มินัลแล้วเริ่มอีกอันเพื่อดูผลลัพธ์
HOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]
pwd | sed "s # (/ [^ /] \ {1, \} / [^ /] \ {1, \} / [^ /] \ {1, \} /). * (/ [^ /] \ { 1, \} / [^ /] \ {1, \}) / \ {0,1 \} # \ 1_ \ 2 # g "' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>'
เรียกใช้รหัสนี้ในเทอร์มินัลปัจจุบัน
PROMPT_DIRTRIM=3
ตอนนี้ bash prompt จะแสดงเฉพาะ 3 ชื่อไดเรกทอรีล่าสุดเท่านั้น คุณสามารถเลือก 1 เพื่อแสดงเฉพาะไดเรกทอรีปัจจุบัน ข้อมูลเพิ่มเติมสามารถดูได้ในเอกสาร GNU
ผลกระทบ:
/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists#
หากคุณต้องการทำอย่างถาวรเพิ่มบรรทัดต่อไปนี้~/.bashrc
ในตอนต้น:
PROMPT_DIRTRIM=3
หรือตัวเลขอื่นที่มากกว่าศูนย์
promptdir() { PROMPT_DIRTRIM=$1; }
เพื่อทำให้การใช้ชีวิตง่ายขึ้น ...
นี่คือการตั้งค่าที่ฉันต้องการ:
เพิ่มใน ~/.bashrc
PS1='[\u@\h \W]\$ '
ดูเหมือนว่านี้:
[user@hostname dirname]$
(มีช่องว่างหลัง$
เครื่องหมาย)
ส่วนตัวฉันต้องการเห็นเฉพาะโฟลเดอร์ปัจจุบันใน bash prompt ฉันสามารถทำได้ด้วยคำสั่งต่อไปนี้:
PS1='\W\$ '
หากคุณต้องการให้มันมีผลหลังจากการเริ่มต้นแต่ละครั้งให้เพิ่มคำสั่งด้านบนลงใน ~ / .bashrc ของคุณ
ฉันรู้ว่านี่เก่ามาก แต่เนื่องจากไม่มีใครแนะนำให้สร้างนามแฝงฉันคิดว่าฉันโพสต์ ใช้Bash Prompt Escape Sequencesฉันทำนามแฝงshorten
ใน~/.bash_aliases
ที่นี่คุณจะสังเกตเห็น var $ ฟ้าจะกำหนดสีพรอมต์ที่คุณสามารถละเว้นหรือการเปลี่ยนแปลงขึ้นอยู่กับการตั้งค่าของฉันยังล้างขั้วเมื่อเรียกสั้นลง
alias c='clear'
alias shorten='PS1="$Blue$USER:\W$ "&& c'
เพื่อให้บรรลุสตริงพรอมต์ที่ต้องการของ OP:
alias shorten='PS1="$USER:\W$ "'
ฉันได้สีที่กำหนดไว้ใน~/.bashrc
การคัดลอกและวางจากhttps://wiki.archlinux.org/index.php/Color_Bash_Prompt ในด้านหมายเหตุสิ่งที่มีสีรหัส ansi? ฉันสับสนแค่มองมัน
Blue='\e[0;34m' # Blue
ฉันเขียนฟังก์ชันที่คุณสามารถปรับเปลี่ยนให้เหมาะกับความต้องการของคุณ:
function termprompt() {
PS1="${PS1//@\\h/}" # Remove @host
PS1="${PS1//\\w/\\W}" # Change from full directory to last name
}
วางฟังก์ชั่นนี้ไว้ที่หรือใกล้กับด้านล่างสุดของบรรทัด~/.bashrc
หลังจากPS1
คำนวณเสร็จสมบูรณ์
คุณจะพิมพ์termprompt
ทุกครั้งที่คุณต้องการพรอมต์ให้สั้นลงหรือtermprompt
โทรจากด้านล่าง~/.bashrc
เพื่อความคงทน
ข้อได้เปรียบของเทคนิคนี้กับคำตอบอื่น ๆ อีกมากมายคือ.bashrc
สามารถตั้งค่าได้PS1
สี่วิธี (xterm + no-color, xterm + color, no-xterm + no-color, no-xterm + color) คำตอบนี้รองรับวิธีปัจจุบันทั้งสี่วิธีและวิธีการในอนาคตด้วย
ข้อดีอีกอย่างคือวิธีนี้มีรหัสควบคุมที่ซับซ้อนน้อยกว่าในการเข้าไปสำรวจเพื่อแทรกการเปลี่ยนแปลงของคุณ