ฉันไม่พบ.bash_profile
ใน Ubuntu 14.04 ใน/home/user
ไดเรกทอรีของฉัน ฉันใช้ls -a
คำสั่งเพื่อดู.bash_profile
แต่ไม่มีไฟล์ดังกล่าว
ฉันไม่พบ.bash_profile
ใน Ubuntu 14.04 ใน/home/user
ไดเรกทอรีของฉัน ฉันใช้ls -a
คำสั่งเพื่อดู.bash_profile
แต่ไม่มีไฟล์ดังกล่าว
คำตอบ:
~/.profile
ใช้อูบุนตู
คุณสามารถสร้างของคุณ.bash_profile
ใน Ubuntu แต่.profile
จะไม่ถูกอ่าน
ถ้าเราอ่านเนื้อหา. profile:
cat ~/.profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
ดังนั้นใช้~/.profile
แทน~/.bash_profile
vim ~/.bashrc
แล้ว. ~/.bashrc
เมื่อเรียกใช้งานเชลล์ล็อกอิน bash จะค้นหาไฟล์กำหนดค่าตามลำดับนี้:
[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile
หลังจากค้นหาคนแรกมันก็หยุดมองหาคนอื่นดังนั้นหากมี.bash_profile
ใน$HOME
bash ของฉันจะไม่มองหา.bash_login
และ.profile
อีกต่อไป
จากชื่อไฟล์ทั้งสามนี้ Ubuntu จะใช้ค่าเริ่มต้นโดย.profile
คุณสามารถเปลี่ยนชื่อเป็น.bash_profile
หากคุณต้องการ:
mv ~/.profile ~/.bash_profile
ตอนนี้ถ้าเราเปิดเปลือกทุบตีใหม่โดยใช้bash -l
, su - $USER
, sudo -u $USER -i
หรือคำสั่งอื่น ๆ ที่วิ่งทุบตีเป็นเปลือกเข้าสู่ระบบที่~/.bash_profile
จะได้รับที่มา
สิ่งที่ฉันได้พูดคุยเกี่ยวกับจนถึงตอนนี้ใช้เฉพาะกับตัวเองทุบตีเมื่อคุณเข้าสู่ระบบจาก GUI ผู้จัดการการแสดงผลมีหน้าที่รับผิดชอบในการจัดหาไฟล์ที่ถูกต้อง
Ubuntu ใช้gdm3
เป็นเครื่องมือจัดการหน้าจอถ้าเราดู: /etc/gdm3/Xsession
เราจะเห็นว่าไม่มีไฟล์ใดที่จะได้รับยกเว้น.profile
:
# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
if [ -f "$file" ]; then
source_with_error_check "$file"
fi
done
ดังนั้นหากคุณใช้ GUI เพื่อเข้าสู่ระบบให้เก็บไฟล์ไว้ใน.profile
ชื่อมิฉะนั้นคุณอาจพลาดตัวแปรและการตั้งค่าบางอย่างในสภาพแวดล้อมของคุณ
ฉันเดาตัวเลือกที่ดีกว่าคือการสร้าง symlink ไปที่.profile
:
ln -s ~/.profile ~/.bash_profile
ตอนนี้ข้อมูลของคุณอาศัยอยู่ใน.profile
, gdm
ไม่พลาดโหลดอะไรทุบตี.bash_profile
ที่เป็นจริง.profile
และโดยการแก้ไขแต่ละของพวกเขาคุณจะได้รับผลเดียวกัน
หากคุณยังไม่มีให้.profile
หยิบสำเนาจากที่นี่:
cp /etc/skel/.profile ~/.profile
หรือ
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
man bash
บน Ubuntu ยังคงอธิบายว่าจะค้นหา. bash_profile อย่างไรก่อน
.bash_profile
ก่อนไม่พบ (เพราะไม่มีอยู่) จากนั้น.bash_login
ค้นหาไม่พบอีกครั้ง (เนื่องจาก Ubuntu ไม่ได้ใช้ชื่อเหล่านี้สอง) สุดท้ายจะค้นหา.profile
และใช่มีอยู่ ดังนั้นหากคุณสร้าง a .bash_profile
ขึ้น~
มาคุณจะเขียนทับอูบุนตู~/.profile
มันเป็นพฤติกรรมเริ่มต้นของ bash ที่ไม่มีการแก้ไขใด ๆ ที่นี่
.bash_profile
มันจะไม่อ่าน ฉันเพิ่งรู้ว่านี่เป็นเพราะ Ubuntu ไม่ได้ใช้ 'Bash' เป็นเชลล์ล็อกอิน GUI อีกต่อไป มันใช้ 'Dash' แทน ฉันคิดว่านี่เป็นจริงตั้งแต่ประมาณ 18.04
นั่นหมายความว่าไม่มีไฟล์อยู่ แต่คุณสามารถสร้างไฟล์และbash
ดำเนินการ / แหล่งที่มาของไฟล์หากbash
ถูกเรียกเป็นเปลือกเข้าสู่ระบบ ดังนั้นเวลาคุณเข้าสู่ระบบผ่านเปลือก (ตัวอย่างเช่นผ่านssh
)
หากคุณต้องการให้เนื้อหาดำเนินการทุกครั้งที่คุณเปิดเทอร์มินัลคุณควรแก้ไข.bashrc
ไฟล์แทน
/etc/skel/
ไดเรกทอรี
.bash_profile
หายไป (และไม่ทำงาน) บน Ubuntu ในความคิดเห็นเกี่ยวกับคำตอบอื่น ๆ
คำตอบยอดนิยมที่จะใช้~/.profile
แทน~/.bash_profile
ไม่ได้ผลสำหรับฉัน
การแก้ไข.bashrc
ทำงานได้
เพียงแค่:
vim ~/.bashrc
หมายเหตุ: ฉันใช้ Ubuntu WSL
~/.profile
เพิ่งไม่โหลดตามค่าเริ่มต้นใน Ubuntu 18.04
ถ้าคุณหมายถึง. bashrc คุณจะพบมันในโฟลเดอร์บ้านของคุณ หากไม่มีคุณสามารถคัดลอกจากโฟลเดอร์ / etc / skel ไปยังโฟลเดอร์บ้านของคุณ
หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้โปรดไปที่หน้า stefaan lippens
~/.profile
แทน