ใช้หน้าจอ GNU เป็นล็อกอิน“ เชลล์”


22

อะไรคือวิธีที่ดีที่สุดที่จะให้หน้าจอทำงานโดยอัตโนมัติเมื่อคุณเปิดเชลล์ใหม่ไม่ว่าจะด้วยการเข้าสู่ระบบ xterm หรืออย่างอื่น

ฉันเห็นคำแนะนำที่พบบ่อยที่สุดคือการใส่exec screenในไฟล์ rc หรือ login / profile ของเชลล์ปกติ แต่สำหรับตัวอย่างเช่น tcsh, login shells จะเรียกใช้ .login สุดท้ายในขณะที่เชลล์ที่ไม่ใช่ล็อกอินอ่าน. csrcr ล่าสุด หากฉันใส่exec screenใน. csrrc เชลล์การเข้าสู่ระบบจะไม่ส่งไฟล์ .login และถ้าฉันใส่ในไฟล์. lsgin เชลล์ที่ไม่ใช่การเข้าสู่ระบบจะไม่เรียกใช้หน้าจอ ฉันคิดว่ามีปัญหาที่คล้ายกันกับกระสุนอื่น ๆ


1
นี่ไม่ได้ตอบคำถาม แต่มันก็คุ้มค่าพูดถึง: tmuxเป็นขั้นตอนการปฏิวัติขึ้นจากหน้าจอและพยายามที่จะใกล้เคียงกับแป้นพิมพ์ที่เข้ากันได้กับหน้าจอ หน้านี้ระบุวิธีเริ่มใช้งานโดยอัตโนมัติจาก. bashrc
datashaman

คำตอบ:


19

วิธีหนึ่งคือ:

# if $STY is not set...
if [ -z "$STY" ]; then
    exec screen -ARR
fi

โปรดทราบว่าสิ่งนี้เขียนขึ้นสำหรับbashแต่ควรคล้ายกันcshด้วย นำไป.cshrcใช้กับเชลล์ทั้งหมด


อีกวิธีหนึ่ง: คุณสามารถตั้งค่าscreenเป็นชื่อล็อกอินเชลล์ใน/etc/passwdตัวเองและใส่บรรทัดนี้เป็น~/.screenrc: (แก้ไขเส้นทางแน่นอน)

defshell / bin / csh

แต่สิ่งนี้อาจทำให้โปรแกรมที่รันเชลล์ล็อกอินกำหนดไว้/etc/passwdสำหรับคำสั่งต่าง ๆ

( แก้ไข:อย่าลืมเพิ่มหน้าจอ/etc/shells)


1
ไม่ทราบเกี่ยวกับตัวแปร STY มาก่อนและในขณะที่ค้นหาในคู่มือหน้าจอฉันยังพบว่าคุณสามารถรันหน้าจอด้วยหน้าจอเพื่อรันคำสั่งในหน้าต่างใหม่ (เช่น "หน้าจอ vi" จะเปิด vi ใน หน้าต่างใหม่โดยไม่มีเชลล์ควบคุม) BTW สำหรับ csh คุณจะใส่ไว้ในไฟล์ .login ไม่ใช่. cshrc คุณไม่ต้องการให้มันรันสำหรับเชลล์ "all" มีบางอย่างที่ใช้ได้กับทุบตีวางไว้ใน. profile หรือ. bash_login ไม่ใช่ใน. ทุบตี
haridsv

4

คำถามเก่า แต่ googling สำหรับสิ่งเดียวกันทำให้ฉันมาที่นี่ดังนั้นนี่คือคำตอบสำหรับคนอื่น ๆ ที่เข้ามาในหน้านี้

สิ่งที่ดีที่สุดที่ฉันพบคือbyobuถ้า distro ของคุณมี มาพร้อมกับตัวเลือกในการทำงานเมื่อเข้าสู่ระบบและควบคุมหลายหน้าจอพร้อมกัน

คุณสามารถแยกและออกจากระบบในที่เดียวจากนั้นเข้าสู่เซสชั่นเดียวกันที่สถานที่อื่น

ฉันพบว่าหน้าจอนั้นยอดเยี่ยมสำหรับการใช้งานกระบวนการเซิร์ฟเวอร์ แต่ byobu นั้นยอดเยี่ยมสำหรับทุกวัน


-2

วิธีการเกี่ยวกับการใช้ chsh:

chsh /usr/bin/screen

สิ่งนี้ตั้งค่าล็อกอินเชลล์เริ่มต้นใน / etc / passwd (คุณทำได้ที่นั่นด้วย)


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