Vì tôi sử dụng lệnh * nixscreen
cả ngày và tôi không thể tìm thấy ai bắt đầu câu hỏi này, tôi nghĩ rằng nó nên được bắt đầu. Bạn biết bài tập: wiki cộng đồng, một câu trả lời cho mỗi tính năng để tất cả chúng ta đều có thể bỏ phiếu.
Vì tôi sử dụng lệnh * nixscreen
cả ngày và tôi không thể tìm thấy ai bắt đầu câu hỏi này, tôi nghĩ rằng nó nên được bắt đầu. Bạn biết bài tập: wiki cộng đồng, một câu trả lời cho mỗi tính năng để tất cả chúng ta đều có thể bỏ phiếu.
Câu trả lời:
Tôi thích sử dụng nó để kết nối với bảng điều khiển nối tiếp, tức là
screen /dev/ttyS0 19200
Lệnh này chỉ đơn giản là mở ra một kết nối đến cổng nối tiếp 0 (ttyS0) với tốc độ baud là 19200
Tính năng tốt nhất của screen
Byobu (trước đây là cấu hình màn hình) đi kèm với Ubuntu theo mặc định kể từ Jaunty: https://launchpad.net/byobu
Đó là trình quản lý cấu hình với các mặc định rất đẹp, hàng tấn thông báo trạng thái và các phím tắt hữu ích (ví dụ: f2 cho màn hình mới, f3-f4 cho trước / tiếp theo, v.v.)
Tôi thực sự không đi đâu mà không có nó nữa :)
Từ amswer của KTamas: Nhiều người có thể sử dụng cùng một màn hình, tức là nếu một người bạn của bạn ssh
vào máy tính của bạn, thì anh ta có thể kết nối với màn hình của bạn. Thật tuyệt vời khi hai hoặc ba người đang làm việc trên cùng một dự án.
Không chính xác là một "tính năng ẩn"; nhưng một tập tin .screenrc thiết lập đúng có thể tạo ra một thế giới khác biệt. Một trong những ví dụ tốt hơn có thể được tìm thấy bằng cách googling screenrc và 'brad sims' - anh ta có một tệp tuyệt vời để tinker.
Điều đó nói rằng, cài đặt yêu thích của tôi sẽ là 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
Tôi không thể nhớ mình đã lấy cái này từ ai (ai đó trên dotfile.org). Tôi đã sửa đổi nó một chút cho 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
Sau đó, tôi đặt các bí danh bash sau:
vim() {
scr vim $*
}
man() {
scr man $*
}
info() {
scr info $*
}
watch() {
scr watch $*
}
ssh() {
scr ssh $*
}
Nó mở một màn hình mới cho các bí danh ở trên và sử dụng ssh, nó đổi tên tiêu đề màn hình với tên máy chủ ssh.
Chúc mừng z0mbix
Một điều tôi thấy hữu ích là màn hình có thể mô phỏng chiều rộng lớn hơn thiết bị đầu cuối của bạn. Tôi thấy điều này hữu ích nếu tôi đang sử dụng less
các tệp nhật ký thực và tôi không muốn các dòng bị ngắt. Sử dụng:
Ctrl-A:width -w 999
Tôi có thể thiết lập screen
với rộng hơn thiết bị đầu cuối của mình và đăng nhập các dòng less
không bao bọc.
-s
sẽ nói với nó không bọc dòng. Bạn có thể sử dụng Left
và Right
để cuộn các dòng.
Một tính năng hay: bạn có thể sử dụng backtick
để lấy thêm thông tin để hiển thị trong chú thích. Ví dụ: tôi có một tập lệnh xuất ra một bản tóm tắt một dòng về số lượng thư mới trong các thư mục khác nhau và tôi có tập lệnh xuất hiện ở dòng dưới cùng nếu phiên màn hình của tôi cùng với tên máy chủ có cấu hình giống như sau:
backtick 1 15 15 /home/waltermundt/bin/newmail
caption always
caption string "%{.kW}%1` example.com %{.bW}%-w%{.rW}%n %t%{-}%+w %{.gW}%h%{-}"
Chìa khóa là bit% 1`, dùng để chỉ đầu ra của công việc backtick 1.
(Tôi sử dụng hardstatus
làm chuỗi tiêu đề xterm và được đặt khác đi, do đó, sử dụng caption
thay vì hardstatus alwayslastline
.)
Không phải là một tính năng "ẩn", nhưng khả năng chia sẻ phiên màn hình với một người dùng hoạt động khác là rất hữu ích.
Có nhiều cách phức tạp để thiết lập chia sẻ màn hình, bao gồm quyền kiểm soát truy cập và quản lý tên người dùng. Những gì tôi thường làm với đồng nghiệp là nhanh và bẩn hơn nhiều:
chmod 777 $(tty)
sudo su <username>
screen -x <session>
Điều này không yêu cầu bất kỳ cấu hình trước hoặc chia sẻ mật khẩu.
Một tờ cheat nhỏ tôi đã tự in ra;
(Lưu ý: Mọi thứ đều có trước Ctrl-A)
A: đổi tên một cửa sổ ": hiển thị danh sách các cửa sổ d: phiên điều tra
Và screen -D -R
để deattach và gắn lại một phiên đang chạy (trong trường hợp bạn bằng cách nào đó mất quyền truy cập vào phiên của bạn).
Không có tính năng nào trong số này là các tính năng thực sự ẩn, nhưng đây là những tính năng tôi thấy là hữu ích nhất.
Đó là một tính năng cốt lõi, nhưng tất nhiên tốt nhất là Ctrl-A:nói chuyện trực tiếp với màn hình. : screen -t title ssh hostname
v.v.