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

.bashrc เป็นหนึ่งในสคริปต์ที่เชลล์ Bash อ่านและดำเนินการเมื่อเริ่มต้นเป็นเชลล์แบบโต้ตอบ (แต่ไม่ใช่ล็อกอิน)


3
ไฟล์. bashrc คืออะไร
Unix shells เมื่อเริ่มอ่าน.bashrcไฟล์และรันคำสั่งที่เขียนไว้ ไฟล์นี้คืออะไรและมันทำงานอย่างไร
100 unix  bashrc 


3
'rc' ใน '. bashrc` ฯลฯ หมายถึงอะไร? [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว: VIMRC, SCREENRC, BASHRC, KSHRC เป็นต้น“ RC” หมายถึงอะไร? 3 คำตอบ นี่มันน่าอาย ฉันรู้สึกเหมือนฉันเพิ่งรู้ว่าฉันไม่รู้จักชื่อเพื่อนร่วมงานที่ซื่อสัตย์หลังจากทำงานกับพวกเขาเป็นเวลา 10 ปี "เฮ้เอ่อ ... * ไอ! *ขอบคุณสำหรับงานที่ยอดเยี่ยมที่เจ้าทำในนามของข้าเมื่อเช้านี้ ... " ทำในสิ่งที่ตัวอักษรที่rcมีความหมายใน.bashrc, .kshrcฯลฯ ? ถ้าคุณรู้โปรดอ้างอิงแหล่งที่มา แม้ว่าคุณจะไม่ทราบก็ตามฉันก็ยินดีต้อนรับสมมติฐานข้อเสนอแนะหรือทางเลือกอื่น ๆ ที่ไม่มีมูลหากมีการระบุว่าเป็นเช่นนั้น
91 linux  unix  bash  bashrc 

5
Mac OS X .bashrc ไม่ทำงาน
ฉันมี.bashrcไฟล์หนึ่งบรรทัดในโฮมไดเร็กตอรี่ของฉัน: alias countlines='find . -type f -print0 | xargs -0 cat | wc -l' แต่มันไม่ได้สร้างนามแฝง ทำไมจึงเป็นเช่นนั้น
77 macos  bash  bashrc 

7
แสดงชื่อไดเรกทอรีปัจจุบันเท่านั้น (ไม่ใช่เส้นทางแบบเต็ม) เมื่อแจ้ง bash
วิธีที่ bash prompt ของฉันได้รับการกำหนดค่าในปัจจุบันมันแสดงเส้นทางทั้งหมดไปยังไดเรกทอรีปัจจุบัน สิ่งนี้น่ารำคาญเมื่อฉันอยู่ลึกเข้าไปในแผนผังไดเรกทอรีเนื่องจากพรอมต์กลายเป็นเวลานานจนทุกคำสั่งห่อหุ้มในบรรทัดถัดไป ฉันจะทำให้มันแสดงเฉพาะส่วนสุดท้ายของเส้นทางได้อย่างไร นี่คือสิ่งที่ฉันมีใน.bashrc: PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"' ;; *) ;; esac


2
ทุบตีถ้าในบรรทัดเดียว
ฉันต้องการทราบว่าฉันจะเขียนได้อย่างไรหากเงื่อนไขในสคริปต์ทุบตีในบรรทัดเดียว ตัวอย่างเช่นฉันจะเขียนสิ่งนี้ในบรรทัดเดียวได้อย่างไรแล้ววางอีกอันเหมือนในบรรทัดถัดไป if [ -f "/usr/bin/wine" ]; then export WINEARCH=win32 fi ฉันถามสิ่งนี้เพราะฉันมีนามแฝงไม่มากใน. bashrc ของฉันและฉันมี. bashrc (ซิงค์) เหมือนกันในหลาย ๆ ระบบ แต่ฉันไม่ต้องการนามแฝงทั้งหมดในแต่ละระบบ ฉันใส่พวกเขาส่วนใหญ่ไว้ในงบถ้าและมันทำงานได้อย่างสวยงามในขณะนี้ แต่พวกเขาใช้พื้นที่จำนวนมาก 3 บรรทัดแต่ละบรรทัดบวกกับบรรทัดว่างระหว่างพวกเขา (ฉันชอบให้พวกเขามองเห็นได้ง่าย) ฉันจะใช้เทคนิคนี้สำหรับตัวแปรสภาพแวดล้อมด้วย

3
iTerm / zsh ไม่อ่าน. bashrc หรือ. bash_profile
ใน~/.bash_profile ฉันมี: if [ -f ~/.bashrc ]; then source ~/.bashrc fi ใน~/.bashrcฉันมีนามแฝงบาง เมื่อฉันโหลดหน้าต่าง iTerm ใหม่ชื่อแทนของฉันไม่ทำงาน ถ้าฉันมา~/.bashrcพวกเขาทำงาน ถ้าฉันมา~.bash_profileพวกเขาทำงาน อย่างน้อยหนึ่งในนั้นควรจะมีแหล่งที่มาโดยอัตโนมัติ? สิ่งที่อาจทำให้ไม่ทำงานอย่างถูกต้อง?
39 macos  bash  terminal  zsh  bashrc 

6
โปรไฟล์ MinGW Bash
ฉันใช้MinGWบน Windows 7 ฉันมี.bashrcนามแฝงอยู่ด้วย ไฟล์อยู่ในโฟลเดอร์บ้านของฉันซึ่งเป็นตำแหน่งที่ MinGW เริ่มฉันดังนั้นจึงเชื่อว่าโฟลเดอร์นั้นเป็นโฟลเดอร์บ้านของฉัน มันไม่ได้โหลดเนื้อหาของโฟลเดอร์โดยอัตโนมัติ ฉันต้องเรียกใช้bashคำสั่งเพื่อให้นามแฝงทำงานได้ .bash_profileฉันได้พยายามเปลี่ยนชื่อมัน สิ่งนี้ทำให้สิ่งเลวร้ายลงเนื่องจากไม่โหลดอัตโนมัติและไม่โหลดเมื่อฉันทำงานbashด้วยตนเอง ฉันจะแก้ไขปัญหานี้ได้อย่างไร

3
ตัวแปรสภาวะแวดล้อมใน bash_profile หรือ bashrc?
ฉันพบคำถามนี้ [บล็อก]: ความแตกต่างระหว่าง. bashrc และ. bash_profileมีประโยชน์มาก แต่หลังจากเห็นคำตอบที่ได้รับการโหวตมากที่สุด (ดีมากโดยวิธีการ) ฉันมีคำถามเพิ่มเติม ในตอนท้ายของการโหวตมากที่สุดคำตอบที่ถูกต้องฉันเห็นข้อความดังต่อไปนี้: โปรดทราบว่าคุณอาจเห็นที่นี่และมีคำแนะนำให้ใส่คำจำกัดความตัวแปรสภาพแวดล้อมใน ~ / .bashrc หรือเปิดใช้เชลล์การเข้าสู่ระบบในเทอร์มินัลเสมอ ทั้งคู่เป็นความคิดที่ไม่ดี ทำไมมันเป็นความคิดที่ไม่ดี (ฉันไม่ได้พยายามจะต่อสู้ฉันแค่อยากจะเข้าใจ)? หากฉันต้องการตั้งค่าตัวแปรสภาพแวดล้อมและเพิ่มลงใน PATH (เช่น JAVA_HOME) ซึ่งเป็นสถานที่ที่ดีที่สุดในการใส่รายการส่งออก ใน~ / .bash_profileหรือ~ / .bashrc ? หากคำตอบของคำถามหมายเลข 2 คือ~ / .bash_profile แสดงว่าฉันมีคำถามอีกสองข้อ: 3.1 สิ่งที่คุณจะวางภายใต้~ / .bashrc ? นามแฝงเท่านั้น 3.2 ในเชลล์ที่ไม่ใช่การเข้าสู่ระบบฉันเชื่อว่า~ / .bash_profileไม่ได้ถูก "หยิบขึ้นมา" หากการส่งออกรายการ JAVA_HOME อยู่ใน bash_profile …

2
เปิดโปรแกรม terminal gnome โดยทางโปรแกรมและดำเนินการคำสั่งหลังจาก bashrc ถูกใช้งาน
สำหรับการเริ่มต้นสภาพแวดล้อม dev ของฉันฉันเขียนสคริปต์เล็กน้อย ส่วนหนึ่งคือการเปิดเทอร์มินัลคำพังเพยที่มีหลายแท็บโดยอัตโนมัติคำสั่งบางอย่างควรจะดำเนินการ บางคำสั่งเหล่านั้นขึ้นอยู่กับ. bashrc ที่ดำเนินการแล้ว แต่เมื่อใช้งาน gnome-terminal --tab -e "command" --tab --tab คำสั่งจะถูกดำเนินการก่อน. bashrc ถูกดำเนินการ มีความเป็นไปได้ไหมที่จะทำให้ gnome-terminal -e อัตโนมัติทำงานเหมือนใช้งานด้วยตนเอง? (คำสั่งที่เหมือนกันเช่น "cd / foo / bar" ไม่ทำงานกับ gnome-terminal -e)

7
ที่ไหน. bashrc สำหรับรูต?
ฉันรู้ว่ามันไม่ใช่วิธีปฏิบัติที่ดีที่สุด แต่ในระบบ dev ของฉันฉันเข้าสู่ระบบด้วย root อะไรคือสิ่งที่เทียบเท่ากับไฟล์. bashrc ดังนั้นฉันจึงสามารถตั้งชื่อฟังก์ชันบางอย่างได้ ฉันได้พบ/etc/bash.bashrc& /etc/bash.bashrc.localแต่ฉันไม่แน่ใจว่าจะป๋อมคำสั่งของฉัน กำลังเรียกใช้ x86_64 SUSE ขอบคุณ mjb
31 linux  root  bashrc 

2
Linux: พร้อมต์การทุบตีการระบายสีจะทำให้แคร่คืนสินค้า
เมื่อฉันลอง colorize bashprompt เช่นนี้: export PS1="\e[0;31m[\u@\h \W]\$ \e[m " มันจะคืนค่าขนส่งกลับ (แทนที่จะไปที่บรรทัดใหม่เมื่อบรรทัดเต็มบรรทัดจะเริ่มในบรรทัดเดียวกันและลบข้อความอินพุต) ถ้าฉันลบลำดับสีมันใช้งานได้ดี ฉันใช้ Ubuntu 11.10 และเทอร์มินัล (guake มีจุดบกพร่องเดียวกันด้วย)

3
เป็นไปได้หรือไม่ที่จะแทนที่คำสั่งที่สร้างขึ้นในคำสั่ง“ cd”?
ทุกครั้งที่ฉัน 'cd' ไปยังไดเรกทอรีอื่นบนเครื่องของฉัน (ในกรณีนี้ใช้ Mac OS X 10.6.7) ผ่านทางบรรทัดคำสั่ง (ซึ่งเป็น bash) ฉันพิมพ์ 'ls' ทันทีเพื่อรับรายการเนื้อหา ในไดเรกทอรีนั้น ฉันกำลังพยายามหาวิธีแทนที่ 'cd' เพื่อให้มันเปลี่ยนไปยังไดเรกทอรีที่ร้องขอจากนั้นให้รายการในภาพเดียว ฉันสามารถรับฟังก์ชั่นพื้นฐานที่ฉันกำลังมองหาทำงานโดยเพิ่มบรรทัดต่อไปนี้ลงใน ~ / .bash_profile ของฉัน function cl() { cd "$@"; ls -l; } ทำงานได้ตามที่คาดไว้ เปลี่ยนเป็นไดเร็กทอรีที่ร้องขอจากนั้นแสดงเนื้อหาให้ฉัน ที่ฉันพบปัญหาพยายามแทนที่ "cd" ตัวเองแทนที่จะสร้างคำสั่ง "cl" ใหม่ สิ่งต่อไปนี้ไม่ได้ทำงาน ##### Attempt 1 ##### # Hangs the command line function cd() …

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