ไฟล์. bashrc อยู่ที่ไหนใน Linux?


14

ฉันไม่พบ. bash_login และ. bash_profile ของฉัน

root@linux:~# locate .bash*
/etc/bash.bashrc
/etc/skel/.bashrc
/etc/skel/.bashrc.original
/home/noroot/.bashrc
/home/noroot/.bashrc.original
/root/.bash_history
/root/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
/usr/share/kali-defaults/.bashrc
root@linux:~# 

มีไฟล์. bashrc และ. bash_profile เพียงไฟล์เดียวสำหรับผู้ใช้ทุกคนหรือไม่

และ. bashrc และ. bash_profile มักจะพบในไดเรกทอรี / home / "ชื่อผู้ใช้" หรือไม่?

คำตอบ:


15

คนเดียวที่ทุบตีดูตามค่าเริ่มต้นอยู่ในไดเรกทอรีบ้านของผู้ใช้ใช่ โดยทั่วไปแล้วยังมีแหล่งเดียวสำหรับพวกเขาใน Linux - / etc / skel แม้ว่าโฮมไดเรกทอรีของผู้ใช้ไม่จำเป็นต้องอยู่ภายใต้ / home แม้ว่า

ฉันเห็นคุณแก้ไขคำถามเพื่อถามว่าไฟล์. bash_login และ. bash_profile ของคุณอยู่ที่ไหน ขึ้นอยู่กับ#พรอมต์ฉันจะถือว่าคุณกำลังใช้งานนี้เป็นราก ในกรณีนี้ไฟล์ของคุณคือ

/root/.bash_history
/root/.bashrc

ดูคำตอบเดิมของฉันด้านบนเกี่ยวกับไดเรกทอรีบ้านของผู้ใช้ - ไม่ใช่เสมอ / home; /rootในกรณีนี้ไดเรกทอรีบ้านรากเป็น


10

ตามman bash:

เมื่อ bash ถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบหรือเป็นเชลล์แบบไม่โต้ตอบที่มีตัวเลือก --login มันจะอ่านและเรียกใช้คำสั่งจากไฟล์ / etc / profile ก่อนหากไฟล์นั้นมีอยู่ หลังจากอ่านไฟล์นั้นจะค้นหา ~ / .bash_profile, ~ / .bash_login และ ~ / .profile ตามลำดับและอ่านและเรียกใช้คำสั่งจากไฟล์แรกที่มีอยู่และอ่านได้

~/.bash_profile
    The personal initialization file, executed for login shells

~/.bashrc
    The individual per-interactive-shell startup file

นอกจากนี้ยังมี/etc/bashrc( /etc/bash.bashrcใน Debian-based Linux) System wide functions and aliasesซึ่งประกอบด้วย โดยค่าเริ่มต้นนี้ถูกตั้งค่าแม้สำหรับเชลล์ที่ไม่ใช่แบบโต้ตอบและไม่ใช่การล็อกอิน

แก้ไข:

tildeในเส้นทางที่ระบุhome directoryของล็อกอินในปัจจุบันผู้ใช้ Bash สามารถใช้หนึ่งใน~/.bash_profile, ~/.bash_login, or ~/.profile(ต่อผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน) ตามลำดับสำหรับการอ่านและการดำเนินการคำสั่ง (โดยทั่วไปแล้วระบบปฏิบัติการที่ใช้เดเบียนจะไม่มี~/.bash_profile or ~/.bash_login. ไฟล์พวกเขาใช้ไฟล์ไฟล์~/.profileนี้อธิบายว่ามันจะถูกอ่านและใช้งานเว้นแต่ว่า~/.bash_profile or ~/.bash_loginจะถูกสร้างขึ้น

#~/.profile: executed by the command interpreter for login shells.

#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login ที่มีอยู่


คำถามนี้จะตอบคำถามของฉันในทางใด

1
@BROY มันตอบคำถามที่คุณควรจะถามมากกว่าที่คุณทำ
Shadur

ฉันเคยเห็นบางคนใส่ไฟล์. bash_profile ลงในไดเรกทอรีของโครงการแล้วนั่นเป็นเรื่องที่ถูกหยิบขึ้นมาโดยการทุบตีจริงหรือ ฉันไม่คิดว่าควรจะเกิดขึ้นตามค่าเริ่มต้น
Alexander Mills

6

ตำแหน่งbashrcไฟล์ของคุณขึ้นอยู่กับ distro ... นี่คือรายการพื้นฐานสำหรับระบบbashrc:
/etc/bashrc(Redhat, Fedora, ฯลฯ )
/etc/bash.bashrc(Debian, Ubuntu, Linux Mint, Backtrack, Kali ฯลฯ )
/etc/bash.bashrc.local(Suse, OpenSuse ฯลฯ )
จากนั้นมี ส่วนตัวผู้ใช้คนเดียวbashrcซึ่งส่วนใหญ่จะถูกเก็บไว้ใน~/.bashrcพื้นทุก distro ... ถ้าคุณไม่มี distros อยู่ในรายการหรือมีระบบพิเศษคุณสามารถค้นหาbashrcตำแหน่งบน google สำหรับ distro นั้นหรือ ระบบ ...
ขอแสดงความนับถือ
น่าสนใจ ...


1

ตามที่ผู้คนระบุไว้แล้วคุณสามารถค้นหาโครงกระดูกของ bashrc ใน /etc/skel/.bashrc หากผู้ใช้ที่แตกต่างกันต้องการการกำหนดค่า bash ที่แตกต่างกันคุณต้องใส่ไฟล์. bashrc ในโฟลเดอร์หลักของผู้ใช้นั้น

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

นี่คือตัวอย่างของสิ่งที่คุณจะมีในไฟล์. bashrc ของคุณ:

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