เนื่องจากฉันใช้คำสั่ง * nixscreen
ทั้งวันและฉันไม่พบใครเริ่มคำถามนี้ฉันคิดว่ามันควรจะเริ่มต้น คุณรู้ว่าการเจาะลึก: วิกิชุมชนหนึ่งคำตอบต่อคุณลักษณะหนึ่งอย่างเพื่อให้เราทุกคนสามารถลงคะแนนได้
เนื่องจากฉันใช้คำสั่ง * nixscreen
ทั้งวันและฉันไม่พบใครเริ่มคำถามนี้ฉันคิดว่ามันควรจะเริ่มต้น คุณรู้ว่าการเจาะลึก: วิกิชุมชนหนึ่งคำตอบต่อคุณลักษณะหนึ่งอย่างเพื่อให้เราทุกคนสามารถลงคะแนนได้
คำตอบ:
ฉันชอบที่จะใช้มันเพื่อเชื่อมต่อกับคอนโซลซีเรียลเช่น
screen /dev/ttyS0 19200
คำสั่งนี้จะเปิดการเชื่อมต่อกับพอร์ตอนุกรม 0 (ttyS0) ด้วยความเร็ว baud ที่ 19200
คุณสมบัติที่ดีที่สุดscreen
คือ Byobu (เดิมคือหน้าจอโปรไฟล์) ซึ่งมาพร้อมกับ Ubuntu โดยค่าเริ่มต้นตั้งแต่ Jaunty: https://launchpad.net/byobu
มันเป็นตัวจัดการการกำหนดค่าที่มีค่าเริ่มต้นที่ดีมากการแจ้งเตือนสถานะมากมายและแป้นพิมพ์ลัดที่มีประโยชน์ (เช่น f2 สำหรับหน้าจอใหม่ f3-f4 สำหรับหน้าที่ก่อนหน้า / ถัดไปเป็นต้น)
ฉันไม่ไปไหนเลยถ้าไม่มีอีกแล้ว :)
จากผู้ให้คำปรึกษาของ KTamas: มีมากกว่าหนึ่งคนที่สามารถใช้หน้าจอเดียวกันได้เช่นหากเพื่อนของคุณssh
เข้าสู่คอมพิวเตอร์คุณจะสามารถเชื่อมต่อกับหน้าจอของคุณได้ เป็นเรื่องที่ยอดเยี่ยมเมื่อคนสองหรือสามคนทำงานในโครงการเดียวกัน
ไม่ได้เป็น "คุณสมบัติที่ซ่อนอยู่" อย่างแน่นอน แต่การติดตั้งไฟล์. screenrc อย่างเหมาะสมสามารถสร้างโลกที่แตกต่าง หนึ่งในตัวอย่างที่ดีกว่าคือสามารถพบได้โดย googling screenrc และ 'brad sims' - เขามีไฟล์ที่ยอดเยี่ยมสำหรับคนจรจัด
ที่กล่าวว่าการตั้งค่าที่ฉันชอบจะเป็น bindkey:
# bind F7 to detach screen session from this terminal
# bind F8 to kill current screen window.
# bind F9 to create a new screen
# bind F10 to rename current screen window
# bind F11 to move to previous window
# bind F12 to move to next window
bindkey -k k7 detach
bindkey -k k8 kill
bindkey -k k9 screen
bindkey -k k; title
bindkey -k F1 prev
bindkey -k F2 next
ฉันจำไม่ได้ว่าฉันขโมยสิ่งนี้จากใครบางคนบน dotfile.org ฉันแก้ไขมันเล็กน้อยสำหรับ ssh:
#!/bin/sh
# scr - Runs a command in a fresh screen
#
# Get the current directory and the name of command
wd=`pwd`
cmd=$1
shift
# We can tell if we are running inside screen by looking
# for the STY environment variable. If it is not set we
# only need to run the command, but if it is set then
# we need to use screen.
if [ -z "$STY" ]; then
$cmd $*
else
# Screen needs to change directory so that
# relative file names are resolved correctly.
screen -X chdir $wd
# Ask screen to run the command
if [ $cmd == "ssh" ]; then
screen -X screen -t ""${1##*@}"" $cmd $*
else
screen -X screen -t "$cmd $*" $cmd $*
fi
fi
จากนั้นฉันจะตั้งชื่อแทนทุบตีต่อไปนี้:
vim() {
scr vim $*
}
man() {
scr man $*
}
info() {
scr info $*
}
watch() {
scr watch $*
}
ssh() {
scr ssh $*
}
มันจะเปิดหน้าจอใหม่สำหรับนามแฝงข้างต้นและถ้าใช้ ssh ก็จะเปลี่ยนชื่อหน้าจอด้วยชื่อโฮสต์ ssh
ไชโย z0mbix
สิ่งหนึ่งที่ฉันคิดว่ามีประโยชน์คือหน้าจอนั้นสามารถเลียนแบบความกว้างที่ใหญ่กว่าเทอร์มินัลของคุณ ฉันพบว่ามีประโยชน์หากฉันใช้less
ไฟล์บันทึกจริงและฉันไม่ต้องการให้มีการตัดบรรทัด โดยใช้:
Ctrl-A:width -w 999
ฉันสามารถตั้งscreen
ให้กว้างกว่าเทอร์มินัลของฉันได้และการล็อกไลน์less
จะไม่ขาด
-s
จะบอกว่าไม่ให้ล้อมเส้น คุณสามารถใช้Left
และRight
เพื่อเลื่อนเส้น
ความสามารถในการเปลี่ยนปุ่มควบคุมด้วย -ethat เมื่อหน้าจอเริ่มต้น ฉันใช้มันเพื่อให้ฉันสามารถซ้อนหน้าจอเซสชันไว้ภายในกันได้ ตัวอย่าง: "screen -e ^ w ^ x" ทำให้ปุ่มควบคุม ctr-w
คุณลักษณะที่ดีอย่างหนึ่ง: คุณสามารถใช้backtick
เพื่อดึงข้อมูลเพิ่มเติมเพื่อแสดงในคำบรรยายภาพ ตัวอย่างเช่นฉันมีสคริปต์ที่แสดงสรุปหนึ่งบรรทัดของการนับจดหมายใหม่ในโฟลเดอร์ต่าง ๆ และฉันมีที่ปรากฏในบรรทัดล่างถ้าเซสชันหน้าจอของฉันพร้อมกับชื่อโฮสต์ที่มีการกำหนดค่าที่มีลักษณะดังนี้:
backtick 1 15 15 /home/waltermundt/bin/newmail
caption always
caption string "%{.kW}%1` example.com %{.bW}%-w%{.rW}%n %t%{-}%+w %{.gW}%h%{-}"
กุญแจคือบิต% 1` ซึ่งหมายถึงเอาต์พุตของ backtick job 1
(ฉันใช้hardstatus
เป็นสตริงชื่อ xterm และตั้งค่าแตกต่างกันดังนั้นจึงใช้caption
แทนhardstatus alwayslastline
)
ไม่ใช่คุณสมบัติ "ซ่อนอยู่" แต่ความสามารถในการแชร์เซสชันหน้าจอกับผู้ใช้อื่นที่ใช้งานอยู่นั้นมีประโยชน์มาก
มีวิธีที่ซับซ้อนในการตั้งค่าการแชร์หน้าจอรวมถึงสิทธิ์การควบคุมการเข้าถึงและการจัดการชื่อผู้ใช้ สิ่งที่ฉันทำกับเพื่อนร่วมงานบ่อยที่สุดนั้นรวดเร็วและสกปรกมากขึ้น:
chmod 777 $(tty)
sudo su <username>
screen -x <session>
สิ่งนี้ไม่ต้องการการกำหนดค่าล่วงหน้าหรือการแชร์รหัสผ่าน
เอกสารโกงเล็กน้อยที่ฉันพิมพ์ด้วยตัวเอง
(หมายเหตุ: ทุกอย่างนำหน้าด้วยCtrl-A)
ตอบ: เปลี่ยนชื่อหน้าต่าง ": แสดงรายการหน้าต่าง d: เซสชันแยก
และscreen -D -R
เพื่อ deattach และ reattach เซสชันที่กำลังทำงานอยู่ (ในกรณีที่คุณสูญเสียการเข้าถึงเซสชั่นของคุณ)
สิ่งเหล่านี้ไม่ใช่คุณสมบัติที่ซ่อนอยู่ แต่สิ่งเหล่านี้เป็นคุณสมบัติที่ฉันพบว่ามีประโยชน์มากที่สุด
มันเป็นคุณสมบัติหลัก แต่แน่นอนดีที่สุดคือCtrl-A:การพูดคุยกับหน้าจอโดยตรง : screen -t title ssh hostname
เป็นต้น