ไฟล์เพื่อจัดเก็บการตั้งค่า bash สำหรับเทอร์มินัลเสมือน


0

เมื่อคุณกด [ALT + F1 ... F6] บนเครื่อง Linux คุณจะเห็น "terminal เสมือน" โดยปกติ เมื่อฉันเข้าสู่ระบบผ่านทางเทอร์มินัลเสมือนบนเครื่อง Debian ของฉัน - ทุบตีไม่ได้ใช้การตั้งค่าจากไฟล์ $ HOME / .bashrc และ $ HOME / .profile! ไฟล์ใดที่ฉันต้องใช้เพื่อทำการตั้งค่า bash สำหรับเทอร์มินัลเสมือน

ฉันพยายามแก้ไขข้อบกพร่องนี้:

    $ strace  -e open  bash --login 2>&1 | grep -P "\.bash|profile"

    open("/etc/profile", O_RDONLY|O_LARGEFILE) = 3
    open("/etc/profile.d/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
    open("/etc/profile.d/bash_completion.sh", O_RDONLY|O_LARGEFILE) = 3
    open("/home/ruslan/.bash_profile", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
    open("/home/ruslan/.bash_login", O_RDONLY|O_LARGEFILE) = 3
    exit
    open("/home/ruslan/.bash_logout", O_RDONLY|O_LARGEFILE) = 3
    open("/etc/bash.bash_logout", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)

~ / .profile - ไม่ปรากฏ!


ที่แปลกมาก. เปลือกของคุณถูกตั้งค่าเป็นทุบตี?
Ignacio Vazquez-Abrams

ฉันคิดว่าใช่. echo $SHELL - /bin/bash
Ruslan K

คำตอบ:


2

เมื่อคอมพิวเตอร์ของคุณบูทเครื่องจะเริ่มต้นinitและตรวจสอบไฟล์ (เช่น/etc/inittab) เพื่อให้กระบวนการเริ่มต้น โดยปกติไฟล์นี้มีสองสามบรรทัดเหมือนหนึ่งบรรทัดด้านล่าง

c5:5:respawn:/sbin/agetty 57600 tty2 xterm-256color

การแปลที่หลวม:
เมื่ออยู่ในการรันระดับ 5 (โหมดผู้ใช้หลายคน) ให้เริ่ม agetty (กระบวนการลงชื่อเข้าใช้) บนคอนโซล 2 (ALT-F2) หากกระบวนการตาย (เช่นหลังจากคุณออกจากระบบ) ให้เริ่มกระบวนการใหม่ (เกิดใหม่)

หากคุณเข้าสู่ระบบนั้น agetty นั้นคุณจะเริ่มเปลือกเข้าสู่ระบบ สิ่งนี้สามารถทุบตี มันอาจเป็นเชลล์อีกตัว (คุณสามารถตั้งค่าเปลือกเริ่มต้นด้วยchsh)

หากคุณมีการกำหนดค่าทุบตีเป็นเปลือกเริ่มต้นแล้วมันจะเริ่มทุบตีและดูในสถานที่เหล่านี้: (หมายเหตุไฟล์นี้จะถูกตรวจสอบเมื่อทุบตีถูกเรียกโดยเฉพาะเป็นเปลือกเข้าสู่ระบบ )

  • / etc / รายละเอียด
  • ~ / .bash_profile
  • ~ / .bash_login
  • ~ / .profile

อย่างที่คุณเห็นสิ่งนี้รวมถึง $ HOME / .profile ที่คุณกล่าวถึงก่อนหน้านี้ แต่ไม่ใช่ $ HOME / .bashrc

ในกรณีที่มีการโต้ตอบ แต่นี่ไม่ใช่การเข้าสู่ระบบเปลือกตรวจสอบทุบตีและ/etc/bashrc~/.bashrc


ฉันสงสัยว่าส่วนสุดท้ายจะตอบคำถามของคุณ (ทดสอบด้วยbash -lหรือbash --login)

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