Tôi đã không chỉnh sửa / tạo tệp .screenrc trong một thời gian, nhưng đây là những gì tôi hiện đang sử dụng:
# Turn off the screen startup message
startup_message off
# Define format of bottom navigation/status/date/etc. line
hardstatus alwayslastline "%{yk}[ %H ] %-Lw%50>%{gk}(%{-}%n-%t%{gk})%{-}%+Lw%< %=%{yk}[ %c %d.%m.%Y ]"
# Increase scrollback buffer to 30000 lines
defscrollback 30000
Tôi thực sự không nhớ mọi thứ trong dòng hardstatus của mình là gì, nhưng tôi muốn tìm hiểu làm thế nào tôi có thể thay đổi màu tên máy chủ dựa trên người dùng đã đăng nhập. Điều này có khả thi không? Ngay bây giờ, tên máy chủ có màu vàng khi tôi đăng nhập dưới bất kỳ người dùng nào; nhưng tôi muốn nó có màu đỏ nếu tôi root. Đây có phải là thứ có thể thay đổi trong tệp .bashrc của tôi không? Tôi có cái này trong .bashrc để thay đổi tên cửa sổ màn hình mới thành tên máy chủ của máy chủ mà tôi đã kết nối với:
# Set screen window title
case "$TERM" in
screen)
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
;;
esac
Cảm ơn vì bất kì sự giúp đỡ!
BIÊN TẬP
Tôi đã thử thêm tệp này vào tệp .bashrc của mình, nhưng nó chỉ đặt mã ANSI ở phía trước tên máy chủ trong màn hình cứng của tôi:
case "$TERM" in
screen)
if (( $UID == 0 )); then
PROMPT_COMMAND='echo -ne "\033k$FRED$HOSTNAME$RS\033\\"'
else
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
fi
;;
esac
CHỈNH SỬA 2
Tôi cũng đã thêm mã màu ANSI thực tế (ví dụ \[\033[31m\]
:) và mã thoát màn hình (ví dụ %kr
:) vào câu lệnh trên trong tôi .bashrc
, nhưng không hoạt động.
EDIT 3
Nếu tôi sử dụng điều này làm dòng lệnh nhắc nhở, tên máy chủ sẽ xuất hiện màu đỏ phía trước PS1 của tôi:
PROMPT_COMMAND='echo -ne "\033[31m$HOSTNAME\033\\"'
Nếu tôi sử dụng lời nhắc sau, tên cửa sổ sẽ thay đổi thành tên máy chủ (CÓ!); nhưng màu vẫn là mặc định (KHÔNG!):
PROMPT_COMMAND='echo -ne "\033[31m\033k$HOSTNAME\033\\"'
Tôi cũng đã thử thay thế \033[31m
(và chỉ [31m
) bằng lối thoát màu màn hình (% kr), nhưng điều đó cũng không hoạt động.