วิธีสร้าง ~ / .bash_profile และ ~ / .profile


25

ดังนั้นฉันไม่ได้.bash_profileไม่มี.profileในโฟลเดอร์บ้านของฉัน ฉันจะสร้างพวกเขาได้อย่างไร หลังจากนั้นฉันควรทำอย่างไรทุกครั้งที่ฉันเปิดอ่านไฟล์เหล่านี้

คำตอบ:


28

คุณสามารถใช้touchคำสั่ง

ตัวอย่างเช่น

cd ~

เพื่อไปที่โฮมไดเร็กตอรี่

ตอนนี้เราจะสร้างไฟล์ชื่อ.bash_profile(จุดหมายความว่ามันจะถูกซ่อนไว้)

จากนั้นใช้nanoหรือviในเทอร์มินัล ถ้าคุณรู้ว่าสิ่งที่มีการใช้งานเพียงแค่vi nanoหากต้องการเปิดไฟล์เหล่านี้คุณจะต้องใช้:

sudo nano .bash_profile

sudoทำให้แน่ใจว่าคุณจะสามารถบันทึกไฟล์เหล่านี้ได้ aliasesที่นี่คุณสามารถเพิ่ม nanoหรือviจะสร้างไฟล์ใหม่โดยอัตโนมัติหากไม่มีอยู่ในไดเรกทอรีปัจจุบันของคุณใน Terminal

หลังจากที่คุณเสร็จแล้วกดCtrl+ O, EnterและCtrl+ Xเพื่อบันทึกและเลิก ในที่สุดใช้

source ~/.bash_profile

เพื่อทำการโหลดเทอร์มินัลใหม่และมันจะอ่านสิ่งที่คุณใส่ในไฟล์เหล่านั้น

แน่นอนคุณสามารถใช้นามแฝงได้เช่นกันหากคุณต้องการ :)

เพื่อตอบคำถามสุดท้ายไฟล์เหล่านี้จะถูกอ่านโดยอัตโนมัติทุกครั้งที่คุณเปิด Terminal อย่างไรก็ตามหากมีข้อผิดพลาด (ตัวอย่างเช่นอย่าใส่ช่องว่างระหว่างนามแฝง) มันจะบอกคุณ

ข้อมูลมากกว่านี้

ดังที่จอร์จชี้ให้เห็น.bash_profileจะทำงานเฉพาะกับเชลล์ล็อกอินเท่านั้น สำหรับเชลล์ที่ไม่ได้ล็อกอินคุณจะต้องสร้าง.bashrcไฟล์ด้วย:

    sudo nano .bashrc

การเชื่อมโยง

.bash_profile เทียบกับ. bashrc

ความสำคัญของ. bashrc


5
เหตุใดคุณจึงใช้touchเพื่อสร้างไฟล์ว่างก่อน nanoทำสิ่งนี้โดยอัตโนมัติ
nohillside

5
นอกจากนี้คุณอาจไม่ต้องการทั้ง ~ / .profile และ ~ / .bash_profile - ถ้า bash เห็น. bash_profile มันจะไม่รบกวนกับ. profile ในที่สุดมันก็จะได้รับการทำงานสำหรับเปลือก "เข้าสู่ระบบ"; เชลล์ nonlogin รัน ~ / .bashrc แทน ดูคำถามก่อนหน้านี้ดังนั้นที่นี่และที่นี่
Gordon Davisson

@GordonDavisson เป็นสิ่งที่ดีที่มี~/.profileสำเนา~/.bash_profileหรือไม่? และถ้าคุณมีทั้งคู่คุณมีอะไรอยู่ข้างใน~/.profileที่ไม่สามารถทำได้~/.bash_profile?
Thi G.

2
@ThiG: ฉันจะไม่ได้มีหนึ่งสำเนาอื่น ๆ ; คุณมีแนวโน้มที่จะเพิ่มบางอย่างลงในรายการหนึ่งลืมที่จะเพิ่มลงในอีกรายการหนึ่งและสับสน ดูคำแนะนำของฉันสำหรับคำถาม SO นี้สำหรับสิ่งที่ฉันจะพิจารณาวิธีปฏิบัติที่ดีที่สุด
Gordon Davisson

sudoทำให้แน่ใจว่าคุณทำให้เสียสิทธิ์ผู้ใช้ อย่าทำอย่างนั้น
Max Ried

2

คุณสามารถคัดลอกไฟล์เหล่านั้นจาก / etc / skel / ซึ่งเป็นไฟล์ Skeleton สำหรับผู้ใช้ใหม่ที่สร้างโดยคำสั่งเช่น useradd บน distros แบบ Debian:

cp -nr /etc/skel/. ~/

ไฟล์เหล่านี้จะถูกโหลดโดยเชลล์โดยอัตโนมัติทุกครั้งที่คุณเข้าสู่ระบบวิธีการโหลดไฟล์โปรไฟล์เหล่านี้จะอธิบายหน้าคู่มือเชลล์ของคุณ ในกรณีที่คุณใช้ bash shell ในลักษณะพิเศษ (เช่นผ่าน ssh, ansible ฯลฯ ... ) คุณควรใช้คำสั่ง 'bash -ilc "ที่คุณต้องการใช้ใน ENV ที่จัดทำโดยไฟล์โปรไฟล์เหล่านั้น"' -i หมายถึงเปลือกโต้ตอบสิ่งที่มักจะต้องใช้โดย. bashrc -l เปลือกเข้าสู่ระบบซึ่งทำให้. profile จะโหลด (หรือ. bash_profile อยู่ - ดูหน้าคู่มือของทุบตี) ซึ่งโหลด. bashrc


0

ฉันชอบที่จะใช้โปรแกรมแก้ไขข้อความ GUI เช่น BBEdit หรือ TextWrangler เครื่องมือแก้ไขข้อความเหล่านี้สามารถจัดการไฟล์ที่มองไม่เห็นเช่น. profile และ. bash_profile และพวกเขามีข้อได้เปรียบในการใช้อินเตอร์เฟส GUI ซึ่งแตกต่างจาก nano ซึ่งเป็นคอนโซลอินเตอร์เฟส

TextWrangler

BBEdit


0

คุณยังสามารถใช้โปรแกรมแก้ไขข้อความ GUI เช่น TextEdit:

touch ~/.bash_profile
open -e ~/.bash_profile

open -eopen -a TextEditเป็นทางลัดสำหรับ

คุณไม่จำเป็นต้องสร้าง. profile หรือ. bashrc Terminal และ iTerm 2 เปิดเชลล์ใหม่เป็นเชลล์ล็อกอินดังนั้นทุบตีจะไม่อ่าน. bashrc หากทั้ง. bash_profile และ. profile มีอยู่แล้ว bash จะอ่านเฉพาะ. bash_profile เมื่อเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบ .profile ถูกอ่านโดย ksh เมื่อถูกเรียกใช้เป็นเชลล์ล็อกอินแบบโต้ตอบและโดยทุบตีเมื่อมันถูกเรียกใช้เป็น sh เป็นเชลล์ล็อกอินแบบโต้ตอบ

ผมได้บอกจริง iTerm 2 ที่จะเปิดใหม่เป็นเปลือกหอยเปลือกหอยที่ไม่ได้เข้าสู่ระบบและ .bash_profile . ~/.bashrcของฉันเพียงแค่มีสายเช่น tmux และโหมดเชลล์ใน emacs เปิดเชลล์ใหม่เป็นเชลล์ที่ไม่ได้ล็อกอินโดยค่าดีฟอลต์ .bash_profile ยังคงอ่านเมื่อฉัน ssh กับคอมพิวเตอร์ของฉัน


ให้ฉันดูว่าฉันได้รับหรือไม่... คุณมีทั้งคู่~/.bash_profileและ~/.profile? แล้วคุณ~/.bashrcล่ะ
Thi G.

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