จะเขียนเชลล์สคริปต์ที่เรียกใช้งานบนล็อกอินได้อย่างไร?


16

ฉันกำลังพยายามเขียนสคริปต์ bash shell ใน Ubuntu 11.10 Linux distro ที่จะถูกดำเนินการโดยอัตโนมัติเมื่อเข้าสู่ระบบ แต่ฉันไม่สามารถเข้าใจได้ว่าสิ่งใดที่จะเขียนในสคริปต์ว่าจะดำเนินการโดยอัตโนมัติเมื่อเข้าสู่ระบบ

คำตอบ:


18

หากคุณต้องการให้เป็นส่วนกลางให้แก้ไข

 /etc/profile 

หรือเพิ่มสคริปต์ใน

 /etc/profile.d

หากคุณต้องการให้เฉพาะผู้ใช้แก้ไข

 /home/$USER/.profile

1
อย่าลืมว่าส่วนขยายที่ควรจะเป็นถ้าคุณใส่สคริปต์ของคุณภายในของ.sh แน่นอนเกินไป /etc/profile.d/chmode +x /etc/profile.d/myscript.sh
Brian Haak

ยืด Raspbian พยายามที่จะเรียกใช้/usr/local/bin/pihole -cคำสั่งเกี่ยวกับการอัตโนมัติของผู้ใช้ที่เฉพาะเจาะจง เพิ่มบรรทัดนี้ไปที่/home/$USER/.profile- ไม่มีอะไรเกิดขึ้น เมื่อฉันเพิ่มสคริปต์ลงไป/etc/profile.dมันก็ใช้งานได้ แต่มันก็เป็นแบบโกลบอลและรันมันแม้ว่าฉันจะเปิดเซสชัน ssh (ซึ่งไม่ใช่สิ่งที่ฉันต้องการ) การเพิ่มไปยังการ.bashrcทำงานด้วย แต่ทำงานได้ตลอดเวลาที่ฉันเปิดเปลือกใหม่ (ซึ่งไม่ใช่สิ่งที่ฉันต้องการ) คำถาม: ทำไมการเพิ่ม/home/$USER/.profileไม่ทำงาน ???
ดึง

3

เพียงเพิ่มสคริปต์ทุบตีลงในแอปพลิเคชันเริ่มต้น

ในฟิลด์คำสั่งให้ป้อน

bash /full/path/to/bash/script.sh/

2
คุณจะเพิ่ม "bash /.../script.sh" ลงในแอปพลิเคชันเริ่มต้นจากบรรทัดคำสั่งได้อย่างไร
aleb

1
OP ไม่เคยพูดถึง GUI สิ่งที่ถ้าพวกเขากำลังอยู่บนเซิร์ฟเวอร์ระยะไกลผ่านทาง SSH และไม่ได้มี GUI ที่? ไม่มีการใช้แท็กเดสก์ท็อปกับคำถาม ...
Doktor J

ชื่อกล่าวถึงโดยเฉพาะเมื่อเข้าสู่ระบบและไม่มีอะไรเกี่ยวกับ GUI GUI ของเดสก์ท็อป
RichieHH

0

หากคุณต้องการทุบตีเฉพาะเจาะจงมากขึ้นคุณสามารถเขียนรหัสใน ~ / .bash_profile หรือ ~ / .bash_login

และคุณสามารถแหล่งสคริปต์ใด ๆ ในนั้น:

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

0

/etc/profileหรือ$HOME/.profileหรือ$HOME/.bash_profile

ฉันอยากจะแนะนำอย่างยิ่งต่อการใช้/etc/profile.d/yourscript.shถ้ามันสร้างผลลัพธ์ เมื่อคุณใช้เซสชันที่ไม่มีการโต้ตอบคุณจะได้รับ$TERM is not setข้อความ สิ่งนี้จะสังเกตได้เมื่อใช้โปรโตคอล ssh เช่น scp โดยทั่วไปแล้วไม่ใช่เรื่องใหญ่ แต่ Veeam ไม่ชอบและจะส่งสัญญาณเตือน ฉันรู้ว่า Veeam ไม่ใช่หัวข้อที่นี่ แต่มันก็คุ้มค่าที่จะกล่าวถึงว่าแอปพลิเคชั่นบางตัวอาจไม่สนใจ$TERM is not setคำเตือน

กล่าวโดยย่อหากสคริปต์สร้างผลลัพธ์ให้วางไว้ในตำแหน่งที่ระบุในบรรทัดแรก อย่างไรก็ตามหากคุณกำลังแก้ไขสภาพแวดล้อมและสคริปต์ของคุณไม่ได้สร้างผลลัพธ์ให้ใช้ส่วนหลัง

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