ความแตกต่างระหว่าง. profile และ. bash_profile คืออะไรและคุณกำหนดค่าเมื่อใด (Mac) [ซ้ำ]


23

ซ้ำเป็นไปได้:
ความแตกต่างระหว่าง. bashrc และ. bash_profile

อะไรคือความแตกต่างระหว่าง.profileและ.bash_profileและคุณกำหนดค่าเมื่อใด

คือถ้าฉันกำหนดค่า.bash_profileฉันยังต้องกำหนดค่า.profileหรือไม่

คำตอบ:


12

สมมติว่าbashเป็นเชลล์เริ่มต้นของคุณความแตกต่างได้อธิบายไว้ในbashman page ( man bash):

   When bash is invoked as an interactive login shell, or as  a  non-interac-
   tive  shell  with the --login option, it first reads and executes commands
   from the file /etc/profile, if that file exists.  After reading that file,
   it  looks  for  ~/.bash_profile,  ~/.bash_login,  and  ~/.profile, in that
   order, and reads and executes commands from the first one that exists  and
   is readable.  The --noprofile option may be used when the shell is started
   to inhibit this behavior.

มีรายละเอียดเพิ่มเติมใน man page ที่ครอบคลุมโหมดความเข้ากันได้ของ POSIX-shell ซึ่ง.profileมาจากไหน อ่านส่วน man page ทั้งหมดสำหรับรายละเอียดทั้งหมด


ใน Ubuntu 18.04 การเปิดหน้าต่างเทอร์มินัลใหม่ไม่ได้เรียก.profileเท่านั้น.bashrc:(
CpILL

5

ถ้าคุณกำหนดค่าคุณจะไม่จำเป็นต้องกำหนดค่า.bash_profile.profile

ฉันชอบที่จะรักษานามแฝงและคำสั่งของตัวเอง.profileเพื่อที่ว่าถ้าฉันทำอะไรผิดฉันรู้ว่าฉันสามารถลบสิ่งนี้.profileโดยไม่ส่งผลกระทบต่อระบบในแอพพลิเคชั่นขนาดใหญ่หรืออื่น ๆ ที่ปรับเปลี่ยน.bash_profile(เช่น MacPorts)

ในการใช้ a .profileคุณอาจต้องรวมบรรทัดsource ~/.profileในไฟล์ของคุณ.bash_profileเพื่อให้.profileอ่านได้ (ดูคำตอบของ Ned Deily)


3

.profile จะถูกดำเนินการโดย bash เมื่อคุณได้รับกระบวนการเชลล์ปกติ - เช่นคุณเปิดเครื่องมือเทอร์มินัล .bash_profile ถูกดำเนินการโดย bash สำหรับเชลล์ล็อกอิน - ดังนั้นนี่คือเมื่อคุณ telnet / ssh เข้าไปในเครื่องของคุณจากระยะไกล ตัวอย่างเช่นหากคุณอยู่ในเครื่องจากระยะไกล (สมมติว่าคุณเปิด X Terminal) คุณจะได้รับการเรียกใช้. bash_profile ในขั้นต้น หากใน XTerminal นั้นให้คุณพิมพ์ "xterm" และวางไข่อีก X Terminal จากนั้นโปรไฟล์จะถูกดำเนินการสำหรับอินสแตนซ์ที่สองของ XTerminal ไฟล์อยู่ในโฮมไดเร็กตอรี่ของคุณ (~). หากฉันไม่ผิดพลาดโดยค่าเริ่มต้นพวกเขาทั้งคู่จะเรียกใช้งาน ~ / .bashrc เพื่อให้คุณสามารถแก้ไขการตั้งค่า / ตัวแปรทั่วไปสำหรับทั้งการเข้าสู่ระบบและไม่ใช่การเข้าสู่ระบบเชลล์ (เช่นการตั้งค่า PATH, นามแฝง / ทางลัด ฯลฯ )


ใน Ubuntu 18.04 เปิดหน้าต่างเทอร์มินัลใหม่ไม่เรียก.profile?
CpILL

1

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

ฉันใช้ OS X ด้วยและไม่จำเป็นต้องใช้. bash_profile หรือ. bash_login และใช้เฉพาะ. profile แต่ระยะทางของคุณอาจแตกต่างกันไป ...

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