ฉันไม่พบ.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ใน$HOMEbash ของฉันจะไม่มองหา.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แทน