ฉันกำลังพยายามเขียนสคริปต์ bash shell ใน Ubuntu 11.10 Linux distro ที่จะถูกดำเนินการโดยอัตโนมัติเมื่อเข้าสู่ระบบ แต่ฉันไม่สามารถเข้าใจได้ว่าสิ่งใดที่จะเขียนในสคริปต์ว่าจะดำเนินการโดยอัตโนมัติเมื่อเข้าสู่ระบบ
ฉันกำลังพยายามเขียนสคริปต์ bash shell ใน Ubuntu 11.10 Linux distro ที่จะถูกดำเนินการโดยอัตโนมัติเมื่อเข้าสู่ระบบ แต่ฉันไม่สามารถเข้าใจได้ว่าสิ่งใดที่จะเขียนในสคริปต์ว่าจะดำเนินการโดยอัตโนมัติเมื่อเข้าสู่ระบบ
คำตอบ:
หากคุณต้องการให้เป็นส่วนกลางให้แก้ไข
/etc/profile
หรือเพิ่มสคริปต์ใน
/etc/profile.d
หากคุณต้องการให้เฉพาะผู้ใช้แก้ไข
/home/$USER/.profile
/usr/local/bin/pihole -c
คำสั่งเกี่ยวกับการอัตโนมัติของผู้ใช้ที่เฉพาะเจาะจง เพิ่มบรรทัดนี้ไปที่/home/$USER/.profile
- ไม่มีอะไรเกิดขึ้น เมื่อฉันเพิ่มสคริปต์ลงไป/etc/profile.d
มันก็ใช้งานได้ แต่มันก็เป็นแบบโกลบอลและรันมันแม้ว่าฉันจะเปิดเซสชัน ssh (ซึ่งไม่ใช่สิ่งที่ฉันต้องการ) การเพิ่มไปยังการ.bashrc
ทำงานด้วย แต่ทำงานได้ตลอดเวลาที่ฉันเปิดเปลือกใหม่ (ซึ่งไม่ใช่สิ่งที่ฉันต้องการ) คำถาม: ทำไมการเพิ่ม/home/$USER/.profile
ไม่ทำงาน ???
เพียงเพิ่มสคริปต์ทุบตีลงในแอปพลิเคชันเริ่มต้น
ในฟิลด์คำสั่งให้ป้อน
bash /full/path/to/bash/script.sh/
หากคุณต้องการทุบตีเฉพาะเจาะจงมากขึ้นคุณสามารถเขียนรหัสใน ~ / .bash_profile หรือ ~ / .bash_login
และคุณสามารถแหล่งสคริปต์ใด ๆ ในนั้น:
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
/etc/profile
หรือ$HOME/.profile
หรือ$HOME/.bash_profile
ฉันอยากจะแนะนำอย่างยิ่งต่อการใช้/etc/profile.d/yourscript.sh
ถ้ามันสร้างผลลัพธ์ เมื่อคุณใช้เซสชันที่ไม่มีการโต้ตอบคุณจะได้รับ$TERM is not set
ข้อความ สิ่งนี้จะสังเกตได้เมื่อใช้โปรโตคอล ssh เช่น scp โดยทั่วไปแล้วไม่ใช่เรื่องใหญ่ แต่ Veeam ไม่ชอบและจะส่งสัญญาณเตือน ฉันรู้ว่า Veeam ไม่ใช่หัวข้อที่นี่ แต่มันก็คุ้มค่าที่จะกล่าวถึงว่าแอปพลิเคชั่นบางตัวอาจไม่สนใจ$TERM is not set
คำเตือน
กล่าวโดยย่อหากสคริปต์สร้างผลลัพธ์ให้วางไว้ในตำแหน่งที่ระบุในบรรทัดแรก อย่างไรก็ตามหากคุณกำลังแก้ไขสภาพแวดล้อมและสคริปต์ของคุณไม่ได้สร้างผลลัพธ์ให้ใช้ส่วนหลัง
.sh
แน่นอนเกินไป/etc/profile.d/
chmode +x /etc/profile.d/myscript.sh