ทำไมสิ่งนี้ถึงเกิดขึ้น
MacOS และ Ubuntu ได้รับการกำหนดค่าแตกต่างกันออกไปเพื่อจัดการรายการที่ซ้ำกันในประวัติคำสั่งของ bash การกำหนดค่าเหล่านี้จะถูกเก็บไว้ในจำนวนที่เรียกว่า " จุดไฟล์ " สิ่งเหล่านี้อยู่ในรูปของ ~ / .bash * รวมถึงระบบ / etc / profile ไฟล์ทั้งหมดเหล่านี้อาจถูกปรับแต่งตามความชอบและความแตกต่างระหว่างเชลล์แบบโต้ตอบ, เชลล์ล็อกอิน, เชลล์ระยะไกลฯลฯ ไฟล์เหล่านี้จะถูกอ่านตามลำดับที่เฉพาะเจาะจงและให้บริการฟังก์ชั่นเฉพาะ
วิธีการรับพฤติกรรมเดียวกันบน macOS
หากคุณต้องการเพียงแค่นี้การปรับแต่งเพียงครั้งเดียวของ "ละเว้นคำสั่งที่ซ้ำกันของบรรทัดคำสั่ง" คุณอาจไปกับคำตอบของ Allan เช่นเพิ่มหนึ่งบรรทัดเดียวเช่นไฟล์ bash_profile ของคุณ ไม่มี "วิธีที่เหมาะสม" แต่มีตัวเลือกมากมาย
ในกรณีที่นี่ไม่ใช่การปรับแต่งเฉพาะสำหรับ bash ของคุณนี่อาจไม่ใช่ตัวเลือกที่ดีที่สุด:
หมายเหตุอื่น ๆ :
- สิ่งใดก็ตามที่ควรมีให้สำหรับแอปพลิเคชันกราฟิกหรือ sh (หรือ bash ที่เรียกใช้เป็น sh) ต้องอยู่ใน ~ / .profile
- ~ / .bashrc ต้องไม่แสดงผลใด ๆ
- สิ่งใดก็ตามที่ควรมีให้สำหรับการเข้าสู่ระบบเปลือกเท่านั้นควรเข้าสู่ ~ / .profile
- ตรวจสอบให้แน่ใจว่า ~ / .bash_login ไม่มีอยู่
ซึ่งหมายความว่าเมื่อสิ่งต่าง ๆ มีความซับซ้อนมากขึ้นเป็นความคิดที่ดีที่จะกระจายการปรับแต่งออกเป็นหลาย ๆ ไฟล์แต่ละไฟล์นั้นมีความเชี่ยวชาญและมีการเรียงลำดับอย่างมากในเนื้อหา:
ทั้งหมดexports
อาจอยู่ในไฟล์ของตนเองเพื่อการกำกับดูแลที่ง่ายขึ้น
สร้างไฟล์ที่อ่านโดย bash ที่รูทของไดเรกทอรีผู้ใช้ของคุณตัวอย่างเช่นชื่อ.exports
ที่มี:
# Omit duplicates and commands that begin with a space from history.
export HISTCONTROL='ignoreboth';
สิ่งนี้จะต้องเป็น "แหล่งที่มา" เพื่อให้ไฟล์ถูกอ่านโดยการทุบตีในการเริ่มต้นแบบโต้ตอบ:
การจัดหาไฟล์
หากคุณมีการกำหนดค่าเชลล์จำนวนมากคุณอาจต้องการแบ่งออกเป็นไฟล์ย่อยหลายไฟล์และใช้ซอร์สในตัวเพื่อโหลดไฟล์จาก. bashrc ของคุณด้วยการเพิ่มsource ~/.exports
เข้าไป
อีกทางหนึ่งเพื่อให้แน่ใจว่าไฟล์มีอยู่จริงก่อนที่จะโหลด
if [ -f ~/.exports ]; then
. ~/.exports
fi
คำสั่ง. ~/.exports
จะมา~/.exports
ในบริบทของเชลล์ที่รันอยู่ในปัจจุบัน
สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการเพิ่มชื่อแทนไฟล์แยกต่างหากช่วยให้สามารถโหลดซ้ำได้ง่ายขึ้นเมื่อคุณทำการเปลี่ยนแปลง
zsh
และเพื่อปรับแต่ง zshด้วยสคริปต์ต่างๆ