.profile ไม่ได้มีที่มาใน Debian Wheezy LXDE


11

ฉันจะเพิ่ม$HOME/binไปจาก$PATH ~/.profileอย่างไรก็ตามดูเหมือนว่ามันไม่ได้มีที่มาในระหว่างการเข้าสู่ระบบ ผมใช้ผู้จัดการเข้าสู่ระบบ - ผมคิดว่าไม่lxdm startxฉันรู้เรื่องนี้ว่าสคริปต์ใดที่ถูกเรียกใช้งาน

เพื่อแสดงให้เห็นดูว่าจะมีการเพิ่มหลังจากที่ฉันอย่างชัดเจนแหล่งที่มา$HOME/bin ~/.profileแต่มันไม่ควรจะได้รับมาในระหว่างการเข้าสู่ระบบแบบกราฟิก?

sashoalm@aspire:~$ echo $PATH 
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sashoalm@aspire:~$ source ~/.profile 
sashoalm@aspire:~$ echo $PATH 
/home/sashoalm/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
sashoalm@aspire:~$ 

คุณลองเพิ่มไปยัง / etc / profile แล้วหรือยัง?
MariusMatutiae

3
ฉันไม่ต้องการให้เป็นสากลสำหรับผู้ใช้ทั้งหมดเพียงแค่ผู้ใช้คนเดียว
sashoalm

คำตอบ:


13

แต่มันไม่ควรจะได้รับมาในระหว่างการเข้าสู่ระบบแบบกราฟิก?

มีการถกเถียงกันเล็กน้อยเกี่ยวกับสิ่งที่การเข้าสู่ระบบกราฟิกบางท่าใช้ท่าทางที่ผิดปกติ

ฉันเพิ่ม $ HOME / bin ไปที่ $ PATH จาก ~ / .profile อย่างไรก็ตามดูเหมือนว่ามันไม่ได้มีที่มาในระหว่างการเข้าสู่ระบบ ฉันใช้ตัวจัดการการเข้าสู่ระบบ - lxdm ฉันคิดว่า

แก้ไข. DM ส่วนใหญ่จะอ่าน~/.profileเมื่อคุณเข้าสู่ระบบอย่างไรก็ตามพวกเขาจะต้องทำสิ่งนี้อย่างชัดเจนเนื่องจาก~/.profileมีการจัดหาแบบดั้งเดิมโดยเชลล์ล็อกอินและ DM (ล็อกอิน GUI) ไม่ใช่เชลล์!

ซึ่งเป็นเหตุผลที่ผมได้เห็นจากlightdmคนไม่จัดหา~/.profileชัดเจน - เพราะ DM ไม่ได้เป็นเปลือก

คุณสามารถมา~/.profileตัวเองจาก~/.xsession- ดูที่นี่


2
การจัดหา~/.profileจาก~/.xsessionอาจจะทำงานเมื่อคำตอบนี้ถูกเขียน แต่ดูเหมือนจะไม่ทำงานอีกต่อไป ฉันได้รับมันทำงานโดยการจัดหาใน~/.xsessionrcแทน
Filip S.

2

หากทุบตีเป็นเปลือกเข้าสู่ระบบของคุณแล้วมันจะพยายาม~/.bash_profile, ~/.bash_loginและ~/.profileในคำสั่งนี้ อย่างไรก็ตามมันจะหยุดที่แรกที่พบ

หากคุณ~/.profileไม่ได้มาจากแหล่งหมายความว่าคุณมีหนึ่งในสองอื่น ๆ (อาจทั้งสอง) ในHOMEไดเรกทอรีของคุณ คุณควรตรวจสอบว่าอันไหนแล้วใส่PATHคำสั่งใหม่ในอันแรก


3
ในขณะที่เป็นเหตุผลที่เป็นไปได้ไฟล์เหล่านั้นไม่มีอยู่ในระบบของฉัน (ฉันได้ตรวจสอบก่อนถาม)
sashoalm

2

เห็นด้วยกับ @goldilocks ส่วนใหญ่ เพียงแค่ต้องการที่จะเพิ่มที่สคริปต์เพื่อให้แหล่งที่มา~/.profileเป็นแทน~/.xsessionrc~/.xsession

นี่คือเหตุผล:

qxu@debian:/etc/X11/Xsession.d$ cat 40x11-common_xsessionrc
# This file is sourced by Xsession(5), not executed.

#Source user defined xsessionrc (locales and other environment variables)
if [ -r "$USERXSESSIONRC" ]; then
  . "$USERXSESSIONRC"
fi

qxu@debian:/etc/X11$ grep USERXSESSIONRC Xsession
USERXSESSIONRC=$HOME/.xsessionrc

1

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

ดังนั้นเมื่อ~/.bash_profileมีอยู่~/.profileจะไม่ถูกอ่าน


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