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

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

2
Bash ไม่ได้โหลด '.profile' ในเซสชันใหม่บน Linux
ฉันกำลังตั้งค่าเครื่อง Linux ใหม่ที่ฉันได้รับจากแผนกไอทีของเราและสังเกตเห็น.profileว่าไม่ได้โหลดเมื่อฉันเริ่มเซสชันเทอร์มินัลใหม่ เปลือกปัจจุบันคือทุบตีแต่ผมเปลี่ยนจากค่าเริ่มต้นการดวลจุดโทษมันมาพร้อมกับ ฉันจะทำให้โหลด.profileเมื่อเริ่มต้นได้อย่างไร ฉันจะเข้าถึงเปลือกผ่านSSHssh myusername@remotemachine : ฉันมีสิทธิ์ของผู้ดูแลระบบ


1
Bash ช้าในการเริ่มต้นเนื่องจากบรรทัดนี้ใน. bashrc อะไรทำให้เกิดสิ่งนี้
.bashrcไฟล์ของฉันมีบรรทัดที่มีเอฟเฟกต์นี้: alias prog="/path/to/script.sh $(find $(pwd) -name prog)" เมื่อฉันแสดงความคิดเห็นในบรรทัดนี้ Bash จะเริ่มต้นเกือบทันทีเมื่อฉันเปิดเครื่องใหม่ ด้วยบรรทัดนี้มีความล่าช้า 4-5 วินาทีก่อนที่เคอร์เซอร์ของฉันจะปรากฏขึ้น การลบคำสั่งที่ซ้อนอยู่$(pwd)ฯลฯ จะเพิ่มความเร็วขึ้นอีกครั้งเช่นกัน ทำไมสิ่งนี้จึงเกิดขึ้น ฉันยังสามารถใช้คำสั่งที่ซ้อนอยู่ได้ไหม?

4
สี“ รีเซ็ต” ของเทอร์มินัลหลังจาก ssh exit / logout
เมื่อฉันเข้าสู่เซิร์ฟเวอร์ระยะไกลฉันชอบสีของเทอร์มินัลเพื่อเปลี่ยน ฉันใช้ setterm ในรีโมตไฟล์ ~ / .bashrc ของฉันเพื่อทำสิ่งนี้ให้สำเร็จ อย่างไรก็ตามเมื่อฉัน exitสีเทอร์มินัลจะไม่ถูกรีเซ็ตเป็นสีท้องถิ่น ฉันแก้ไขปัญหาแล้ว แต่ฉันไม่แน่ใจว่านี่เป็นทางออกที่ดีที่สุดหรือไม่ นี่คือสิ่งที่ฉันสามารถทำได้ บน ~ / .bash_logout บนรีโมตเซิร์ฟเวอร์ฉันใส่: echo -e "\033[0m" /usr/bin/clear เพิ่งออกมาจากความอยากรู้: ไม่มีใครรู้วิธีที่ดีกว่า? (ฉันได้รับ echo -e "\033[0m" สายจาก http://edoceo.com/liber/linux-bash-shell )
17 bash  colors  bashrc 

2
เป็นความคิดที่ดีหรือไม่ที่จะนำ“ screen -r” ใน. bashrc ของฉัน
ฉันต้องการใช้หน้าจอเพื่อให้เซสชัน SSH มีชีวิตอยู่บนเซิร์ฟเวอร์ของฉัน มันจะดีถ้าฉันสามารถกลับมาทำงานเซสชันใด ๆ โดยอัตโนมัติสำหรับผู้ใช้ของฉันเมื่อฉันเข้าสู่ระบบวิธีที่ตรงไปตรงมาในการทำเช่นนี้จะเพิ่ม "screen -r" เพื่อ. bashrc ของฉันและดูเหมือนว่าจะทำงานได้ดี ฉันแค่สงสัยว่าสิ่งนี้จะทำลายสิ่งใดภายใต้เงื่อนไขที่ฉันยังไม่ได้ทดสอบ ใครที่มีประสบการณ์ตรงนี้ใครสามารถบอกฉันได้ว่านี่คือสิ่งที่ฉันควรทำอย่างไร

4
การทุบตีเสร็จสิ้นทำให้การทุบตีเริ่มต้นช้าลง
เริ่มทุบตีในระบบ Ubuntu ของฉันใช้เวลาประมาณ 2 วินาที ถ้าฉันลบการโหลด / etc / bash_completition ใน. bashrc มันจะเริ่มโดยไม่ชักช้า แน่นอนว่าฉันไม่ต้องการที่จะยอมแพ้และฉันไม่คิดว่าการโหลดไฟล์นั้นเป็นเหตุผลที่ถูกต้องสำหรับการล่าช้า 2 วินาที ความคิดใด ๆ ที่ฉันสามารถค้นหาว่าปัญหาคืออะไรหรือฉันจะเร่งความเร็วในสิ่งต่าง ๆ ได้อย่างไร

4
ทุบตีให้เปลี่ยนสีเมื่อฉันเข้าสู่เซิร์ฟเวอร์
มีวิธีทำให้ bash prompt dynamic หรือไม่ดังนั้นมันจะเปลี่ยนสีเมื่อล็อกอินเข้าสู่เซิร์ฟเวอร์หรือไม่? ดังนั้นฉันต้องการสีที่เป็นสีเขียวเมื่ออยู่ในระบบของฉันและเปลี่ยนเป็นสีแดงเมื่อเชื่อมต่อกับเซิร์ฟเวอร์ ฉันมีเซิร์ฟเวอร์จำนวนมากฉันไม่ต้องการให้เซิร์ฟเวอร์.bashrcเหล่านั้นแตกต่างกัน
15 bash  shell  colors  bashrc 

1
การแทนที่ฟังก์ชันที่ผู้ใช้กำหนดด้วยชื่อเดียวกันกับคำสั่งระบบ
ฟังก์ชันนี้มีอยู่ในหนึ่งในผู้ใช้ของฉัน ~ / .bashrc: function rm() { ls $* echo "rm?" read ans if [ "$ans" == 'y' ]; then /bin/rm $* fi } ในสคริปต์ ksh ของฉันที่ผู้ใช้จำเป็นต้องเรียกใช้ฉันมีบรรทัดดังนี้: [[ "$KEEP" = "" ]] && \rm $FILE ในขณะที่แบ็กสแลชจะหนีนามแฝงที่ผู้ใช้กำหนดเองมันจะไม่หยุดสคริปต์จากการเรียกใช้ฟังก์ชันที่ผู้ใช้กำหนดด้วยชื่อเดียวกัน ด้วยเหตุนี้ฟังก์ชั่น rm () ของผู้ใช้ของฉันจึงถูกเรียกใช้แทนฟังก์ชั่นระบบ ฉันพบคำถาม & การตอบคำถาม superuser นี้แต่การแก้ปัญหาจะใช้กับฟังก์ชั่นบิวอินเท่านั้นไม่ใช่คำสั่งระบบ อะไรที่ดีที่สุดในการบังคับใช้คำสั่ง rm จากการถูกเรียกไม่ใช่นามแฝงหรือฟังก์ชัน ฉันต้องระบุพา ธ …
14 bash  alias  bashrc  ksh 

5
ไม่มีไฟล์ bashrc ในไดเรกทอรีบ้านของฉัน
นี่คือสิ่งที่ฉันจดบันทึกไว้จากการบรรยายของฉัน: ค้นหาไฟล์.bashrcในโฮมไดเร็กตอรี่ของคุณ ทำ vi .bashrc เมื่อคุณวางโฟลเดอร์แอปพลิเคชั่นไว้ที่ใดที่หนึ่งตรวจสอบให้แน่ใจว่าที่อยู่นั้นอยู่ในตัวแปรพา ธ ปัญหาคือฉันไม่มี.bashrcไฟล์ในโฮมไดเร็กตอรี่ของฉัน มี.bash_historyไฟล์ในบ้านของฉันเท่านั้น ถ้าฉันไปที่รูทมีetc/bash.bashrcไฟล์อยู่ที่นั่น แต่สิ่งที่ฉันคิดคือมันจะทำการเปลี่ยนแปลงสำหรับผู้ใช้ทั้งหมดไม่ใช่สำหรับฉัน ฉันต้องการเพิ่มเส้นทางนี้เพียงเพื่อตัวเอง ไม่ควรส่งผลกระทบต่อผู้อื่น นอกจากนี้ยังไม่มี$PATHตัวแปรในไฟล์ bashrc ดังนั้นฉันจึงสับสนมากขึ้น
14 bash  bashrc 

3
อะไรนะ .bashrc จริง ๆ แล้วทำอย่างไร
เมื่อฉันป้อนเช่น นามแฝงใหม่ใน.bashrcไฟล์ของฉันฉันไม่สามารถใช้ในหน้าต่างเทอร์มินัลนั้นทันทีและจนกระทั่งเมื่อเร็ว ๆ นี้ฉันคิดว่าฉันต้องรีสตาร์ทเทอร์มินัลเพื่อโหลด.bashrcไฟล์ซ้ำ ถ้าอย่างนั้นฉันก็พบว่า . .bashrc นี่จะโหลด.bashrcไฟล์ในหน้าต่างปัจจุบันและฉันไม่ต้องรีสตาร์ท ครีบนี้ใช้งานได้ แต่เกิดอะไรขึ้นจริงหรือ ทำไม.bashrcไฟล์ถึงทำการรีโหลด

5
bash: รันคำสั่งที่กำหนดใน commandline และไม่ออก
ฉันจะระบุคำสั่งบน commmandline ของ bash ได้อย่างไรซึ่งจะดำเนินการครั้งเดียวภายใน bash ใหม่หลังจากอ่าน ~ / .bashrc - แต่ทั้งหมดนี้โดยไม่ให้ bash exit หลังจากคำสั่งเสร็จสิ้น? ฉันเล่นซอกับ "boot-up-configuration" สำหรับterminatorที่ตัวแยกบางตัวควรเริ่มบางแอปพลิเคชั่น (vim, mutt, irrsi) หลังจากเริ่มทำงาน แต่ฉันยังต้องการเปลือกหอยปกติในพื้นหลัง (ctrl-z และอื่น ๆ ... ) ดังนั้นหลังจากออกจากแอปพลิเคชันฉันมีเปลือกเดียวกันซึ่งฉันมีในช่วงอายุการใช้งาน eapplications ... อะไรไม่ทำงานสำหรับฉัน (ขึ้นอยู่กับคำตอบที่ได้รับ) ( bash; vim ) # vim waits for the exit of bash... bash -c vim # bash …
13 bash  boot  bashrc  terminator 

2
Bash วิธีการแก้ไขทั่วโลก ^ H และ ^? ปัญหา backspace
ฉันต้องการแก้ไขปัญหานี้บ่อยครั้งที่เชลล์บนเซิร์ฟเวอร์ระยะไกลคิดว่าคีย์ backspace ของเทอร์มินัลของฉัน^?และบางครั้งก็คิดว่ามันเป็น^Hและเกิดขึ้นไม่ถูกต้องและส่งออกอักขระที่ไม่ถูกต้องเมื่อฉันกด backspace หากฉันตั้งเป็น ^ H หรือ ^ ด้วยstty erase ^Hหรือstty erase ^?ในไฟล์. bashrc ของฉันและใช้เทอร์มินัลอื่น ๆ เพื่อเข้าถึงเซิร์ฟเวอร์มันมักจะผิดพลาด ดังนั้นฉันจึงต้องพิมพ์ด้วยตนเองstty erase [whatever]เพื่อแก้ไขเมื่อฉันสังเกตเห็นว่าปุ่ม backspace ผิด สิ่งที่ฉันต้องการทำคือผูกทั้งสอง^?และ^Hย้อนกลับเพราะถ้าฉันสามารถทำสิ่งนี้ได้ฉันสามารถเพิ่มมันลงในไฟล์. bashrc ทั้งหมดของฉันและมันจะจบฝันร้ายนี้อย่างแน่นอน เป็นไปได้ไหม ถ้าเป็นเช่นนั้นได้อย่างไร
12 linux  bash  terminal  shell  bashrc 

3
`ssh <host>` เป็นเชลล์การเข้าสู่ระบบ แต่ `ssh <host> <command>` ไม่ใช่?
ฉันสังเกตว่าเมื่อฉันเรียกใช้คำสั่งโดยตรงบนโฮสต์ SSH โดยใช้ssh &lt;host&gt; &lt;command&gt;ไวยากรณ์ฉันเห็นผลลัพธ์ของ.bashrcแต่ไม่ใช่ผลลัพธ์ของ.bash_profile(หรือ.profile) ตัวอย่างเช่นถ้าฉันวางคำสั่งต่อไปนี้ที่ด้านบนของไฟล์ทั้งสอง echo ${BASH_SOURCE[0]} และแหล่งที่มาด้วยตนเอง.bash_profile(ที่มา.bashrcในการเปิด) ฉันจะเห็น $ . .bash_profile .bash_profile .bashrc นี่เป็นผลลัพธ์เดียวกันกับที่ฉันเห็นว่าฉันลงชื่อเข้าใช้คอมพิวเตอร์เครื่องนี้จากระยะไกลผ่าน SSH โดยใช้ssh &lt;host&gt;รูปแบบของคำสั่ง (และถ้าฉันเก็บไว้ที่.bash_profileอื่นชั่วคราวบรรทัดเหล่านี้จะไม่ถูกสะท้อนเลย) อย่างไรก็ตามถ้าฉันรันคำสั่งบนเครื่องรีโมตโดยตรงด้วยssh &lt;host&gt; &lt;command&gt;รูปแบบของsshเอาต์พุตจะมีลักษณะดังนี้: $ ssh &lt;host&gt; echo foo /home/rlue/.bashrc foo ความเข้าใจของฉันอยู่ที่ความแตกต่างระหว่าง.bash_profileและ.bashrcเป็นว่าอดีตเป็นเปลือกหอยเข้าสู่ระบบในขณะที่หลังสำหรับการโต้ตอบและเปลือกหอยที่ไม่เข้าสู่ระบบ ฉันได้ข้อสรุปดังต่อไปนี้: ssh &lt;host&gt;แหล่งที่มาเท่านั้น.bash_profileในขณะที่ ssh &lt;host&gt; &lt;command&gt;แหล่งข้อมูลเท่านั้น.bashrcซึ่งหมายถึง อดีตเป็นเปลือกเข้าสู่ระบบและหลังไม่ได้ ข้อสรุปเหล่านี้ถูกต้องหรือไม่ เหตุใดจึงssh &lt;host&gt; &lt;command&gt;ถือว่าเป็นเชลล์แบบโต้ตอบและไม่ใช่การเข้าสู่ระบบ SSH ยังไม่ได้เข้าสู่เครื่องระยะไกลเพื่อดำเนินการคำสั่งหรือไม่

4
เหตุใดชื่อนามแฝงที่กำหนดในไฟล์. bashrc จึงไม่ทำงาน
ฉันให้ชื่อนามแฝงในไฟล์. bashrc เหมือนด้านล่าง แต่ชื่อนามแฝงไม่ทำงาน ทำไม? alias c='clear' alias l='ls -lt' alias h='history' alias d='ls -lt |grep "^d"' export ORACLE_HOME=/ora11gr2/app/oracle/product/11.2.0/db2 export ORACLE_LIB=/ora11gr2/app/oracle/product/11.2.0/db2/lib export PATH=$ORACLE_HOME/bin:/usr/vac/bin:/usr/vacpp/bin:. export LD_LIBRARY_PATH=$ORACLE_HOME/lib:.
11 alias  bashrc 

1
.bashrc กำลังโหลดนามแฝงจากไฟล์อื่น
ฉันมีไฟล์. bashrc ซึ่งฉันต้องการตั้งค่าเพื่อให้อ่านนามแฝงจากไฟล์. aliias และตั้งค่า ปัจจุบันฉันมี: # User specific aliases and functions while read alias_line do echo `alias ${alias_line}` done &lt; .aliases แต่เมื่อเข้าสู่ระบบฉันจะได้รับ: -bash: alias: -fu: not found -bash: alias: $ USER ": ไม่พบ -bash: alias: -lart ": ไม่พบ ไฟล์. aliases เป็นดังนี้: psu = "ps -fu $ USER" ll = …
11 bash  alias  bashrc 

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