ใช้คำสั่งใน Putty โดยไม่ต้องกลัวว่าจะขาดการเชื่อมต่อ


13

คุณใช้คำสั่ง "หน้าจอ" ได้อย่างมีประสิทธิภาพได้อย่างไร
ใช่ไหม:

  1. พิมพ์ "หน้าจอ"

  2. พิมพ์คำสั่ง

  3. ขาดการเชื่อมต่อ

  4. ตรวจสอบอีกครั้งในเซสชันที่หายไป

ฉันจะทำตามขั้นตอนที่ 4 ได้อย่างไร

คำตอบ:


18

ด้วยหน้าจอ:

  1. screen
  2. ชนิด command
  3. Ctrl- A- Dเพื่อแยกออกจากหน้าจอ
  4. ออกจากระบบจากเซสชั่น
  5. screen -RD เพื่อแนบหน้าจออีกครั้ง (หากมีมากกว่าหนึ่งรายการคุณจะได้รับรายการเซสชันหน้าจอปัจจุบันและคุณจะต้องระบุหมายเลขเซสชัน) จากเซสชันใหม่

วิธีที่ง่ายกว่าซึ่งมีประโยชน์สำหรับคำสั่งที่ออกจาก logfiles หรือเพียงแค่โยนเอาต์พุตที่เกี่ยวข้องและไม่ต้องการการโต้ตอบคือnohup:

  1. nohup command > logfile &
  2. ออกจากระบบจากเซสชัน
  3. tail -f logfile จากเซสชันใหม่

หมายเหตุ: ขั้นตอนที่ 3 เป็นทางเลือกทั้งหมด หากคุณปิดเซสชัน PuTTY โดยไม่ต้องถอดออกคุณยังสามารถติดตั้งscreen -RDใหม่ได้
Duncan Jones

4

หน้าจอเป็นจริงที่มีประสิทธิภาพและช่วยให้คุณทำสิ่งที่คุณถาม

หากต้องการดูเซสชันทั้งหมดของคุณให้พิมพ์

screen -list

เมื่อคุณระบุเซสชันของหน้าจอเพื่อเชื่อมต่อใหม่แล้วให้ลอง

screen -dr SCREENID

ซึ่งจะแยกออกและแนบเซสชันของคุณอีกครั้ง

คุณสามารถทำได้ดีกว่า

screen -D -R

ซึ่งจะแยกออกจากระบบจากระยะไกลหากจำเป็นแล้วติดตั้งใหม่หรือถ้าไม่มีเซสชันนั้นจะสร้างและแจ้งให้ผู้ใช้ทราบ คุณสามารถเพิ่ม "-t NAME" เพื่อให้ชื่อเชลล์หรือโปรแกรม

ภายในหน้าจอให้ใช้

command-c

เพื่อสร้างหน้าต่างใหม่ (ดังนั้นคุณไม่ต้องการเซสชัน 4000000 หน้าจอเพื่อยกเลิกการเชื่อมต่อและเชื่อมต่อใหม่) และเปลี่ยนระหว่างเซสชันเหล่านั้นด้วย

command-int

การจัดทำดัชนีจาก 0 แน่นอน: P

เนื่องจากคุณดูไม่คุ้นเคยกับหน้าจอฉันจะถือว่าคุณสามารถใช้ข้อมูลอื่น ๆ ได้ ฉันชอบคำสั่งต่อไปนี้เช่น:

-e xy

ซึ่งทำให้ x เป็นอักขระคำสั่งและ y เป็นอักขระเพื่อสร้างอักขระคำสั่งตามตัวอักษร ค่าเริ่มต้นคือ Ctrl-a และ `a

ยังมีอะไรอีกมากมายสำหรับคุณที่นี่: หน้าจอ! มันมีไว้สำหรับโปรแกรมเมอร์



2

นี่คือสิ่งที่ฉันเลือกใช้หน้าจอ (ซึ่งฉันเพิ่งเริ่มทำ):

  • screen -S <name>สร้างหน้าจอชื่อ '<name>' สิ่งนี้มีประโยชน์มากหากคุณต้องการให้มีการใช้หน้าจอหลายครั้งพร้อมกัน ตัวอย่างเช่นฉันมีหนึ่งที่ฉันใช้ตามปกติและอย่างใดอย่างหนึ่งที่ฉันใช้สำหรับกระบวนการถาวรของฉัน
  • screen -ls แสดงรายการหน้าจอที่กำลังทำงาน
  • screen -r <name>ดำเนินการต่อในหน้าจอเดี่ยว screen -dr <name>ถ้าหน้าจอที่แนบมาแล้วสักแห่งใช้

นอกจากนี้เมื่อคุณเริ่มใช้หน้าจอเมื่อใดก็ตามที่คุณวางแผนที่จะปล่อยให้กด^a d(= Ctrl-Aตามด้วยd ) เพื่อแยกหน้าจอที่คุณกำลังทำงานอยู่ในปัจจุบัน จากนั้นสามารถดำเนินการต่อในภายหลัง

นอกจากนี้ฉันสามารถแนะนำให้ดู^a ?รายการคำสั่งต่าง ๆ ที่คุณสามารถใช้ได้ขณะอยู่ในหน้าจอ

สิ่งสำคัญที่สุดสำหรับฉันคือ:

  • ^a c เพื่อสร้างหน้าต่างใหม่ในเซสชันหน้าจอของคุณ
  • ^a ^a เพื่อสลับระหว่างหน้าต่างที่ใช้ล่าสุดทั้งสอง
  • ^a " เพื่อแสดงรายการหน้าต่างปัจจุบันในเซสชันของคุณ
  • ^a Esc เพื่อเลื่อนในบัฟเฟอร์หน้าจอของคุณ
  • ^a k เพื่อฆ่าหน้าต่างปัจจุบัน
  • ^a x เพื่อล็อคเซสชันหน้าจอของคุณในกรณีที่คุณต้องออกจากคอมพิวเตอร์และไม่ต้องการให้ผู้อื่นยุ่งกับมัน

1

การค้นหาโดย Google อย่างรวดเร็วพบคู่มือหน้าจอนี้

http://www.rackaid.com/resources/linux-tutorials/general-tutorials/using-screen/

ดังนั้นจากขั้นตอน b) คุณสามารถแยกหน้าจอโดยใช้:

"Ctrl - A" "d"

หลังจากนั้นหลังจากการเชื่อมต่อขาดหายไปและการเชื่อมต่อของคุณพบหน้าจออีกครั้งโดยใช้:

# screen -ls

แล้วติดตั้งใหม่โดยใช้:

# screen -r <screen_session_name>


1

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

# screen management
if [ $SSH_TTY ] && [ ! $WINDOW ]; then
  SCREENLIST=`screen -ls | grep 'Attached'`
  if [ $? -eq "0" ]; then
    echo -e "Screen is already running and attached:\n ${SCREENLIST}"
  else
    screen -U -R
  fi
fi


0

ขั้นตอนที่ 4 คือ "screen -r"

หากคุณตัดการเชื่อมต่ออย่างรุนแรงคุณอาจต้องทำ "screen -r -d" เพื่อบังคับให้ยกเลิกการเชื่อมต่อจากเซสชัน ssh เก่าของคุณซึ่งคิดว่ายังคงเปิดอยู่


0
 For windows system

 Open putty 
 then login in server

หากคุณต้องการที่จะเห็นหน้าจอในคอนโซลจากนั้นคุณต้องเขียนคำสั่ง

 Screen -ls

ถ้าคุณต้องเข้าถึงหน้าจอคุณต้องใช้คำสั่งด้านล่าง

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