Làm cách nào để chọn nội dung hiển thị trong thanh tiêu đề PuTTY từ Linux?


8

Trong cấu hình PuTTY, có một tùy chọn trong Terminal → Các tính năng được gọi là Tắt thay đổi tiêu đề cửa sổ được điều khiển từ xa . Nếu không bật, thanh tiêu đề của PuTTY sẽ thay đổi mỗi khi tôi nhấn return trong bảng điều khiển.

Tôi đã nghĩ rằng đó là một giải pháp rõ ràng hơn để đặt văn bản thanh tiêu đề từ Linux hơn là chỉ định một cho mọi khách hàng PuTTY mà tôi đã đặt xung quanh. Vậy tôi có thể sửa đổi những gì Linux đặt làm tiêu đề cửa sổ?


$ uname -a
Linux drevo 2.6.32-5-amd64 # 1 SMP Thứ hai ngày 16 tháng 1 16:22:28 UTC 2012 x86_64 GNU / Linux

$ cat / etc / debian_version
6.0.4

Câu trả lời:


6

Hầu hết các chương trình thiết bị đầu cuối - bao gồm konsole, putty và xterm - mô phỏng thiết bị đầu cuối VT100 cũ. Thiết bị đầu cuối này cho phép bạn thiết lập một số thứ nhất định, bao gồm đậm, màu sắc, đặt tiêu đề thiết bị đầu cuối, v.v., sử dụng các chuỗi ký tự đặc biệt được gọi là chuỗi thoát.

Shell bash có một biến gọi là PROMPT_COMMAND, nếu được đặt, sẽ được đánh giá trước mỗi lời nhắc bạn in ra (tôi tin rằng zsh có một cái gì đó tương tự, trên thực tế tôi nghĩ rằng bash đã lấy mã từ chúng). Bạn có thể xuất các chuỗi thoát trong PROMPT_COMMAND và nó sẽ đặt thanh tiêu đề của bạn.

Đây là những gì tôi có trong tôi (Linux / bash):

USER=$(/usr/bin/id -un)
HOSTNAME=$(uname -n)
HOSTNAME=${HOSTNAME%%.*}
PROMPT_COMMAND='echo -ne "\e]0;$USER@${HOSTNAME}: $(pwd -P)\a"'

Bạn có thể đặt cái này trong ~ / .bashrc của bạn

Có rất nhiều tùy chỉnh bạn có thể làm với thiết bị đầu cuối của mình. Tôi thích in đậm trong lời nhắc của mình, để dễ dàng nhìn thấy phần cuối của lời nhắc. Điều này làm cho nó có màu vàng đậm, tốt so với nền đen mặc định của tôi:

PS1="\[\e[33;1m\]\h:\$\[\e[0m\] "

Nhìn xung quanh để tùy chỉnh Prompt Linux, bạn sẽ tìm thấy nhiều HowTos hơn bạn sẽ biết phải làm gì với. Chọn một trong đó bạn thấy dễ đọc nhất.


14

Tiêu đề thiết bị đầu cuối được đặt bằng cách sử dụng các chuỗi thoát đặc biệt trong đầu ra của bàn điều khiển. Theo mặc định, dấu nhắc bash bao gồm các chuỗi thoát này và đặt tiêu đề cho thư mục làm việc hiện tại.

Vì vậy, bạn sẽ phải chỉnh sửa biến PS1 của mình (hầu hết thời gian được đặt ~/.bashrc), nếu không, bash sẽ ghi đè tiêu đề của bạn mỗi khi dấu nhắc được hiển thị.

Sau đó, bạn có thể đặt tiêu đề bằng cách đặt đoạn mã sau vào tập lệnh được thực thi khi đăng nhập, ví dụ ~/.profile:

echo -e "\033]0;<your string>\007"

Lưu ý, đây là người duy nhất trả lời câu hỏi.
Erik Aronesty

Thay đổi -ethành -ennếu bạn muốn tránh dòng trống thêm được xuất ra bằng lệnh echo.
ADTC

2

Tôi đã tìm kiếm nhiều diễn đàn và tôi không tìm thấy câu trả lời cho câu hỏi:
Làm thế nào để có được tất cả đầu ra lệnh cho tiêu đề Putty?

Cần nó cho các chương trình khác để biết khi nào một số công việc trên máy chủ được thực hiện và nó được thực hiện đúng hay sai. Stink stdout và stdin không hoạt động. Tôi đã sử dụng nhiều điều chỉnh với độ trễ chờ và đối với một số lệnh hoạt động, đối với các lệnh khác thì không. XSEL và XCLIP không thể được cài đặt trên máy chủ đó.

Vì vậy, đây là giải pháp:

  1. Nhận đầu ra lệnh trong một tập tin.
  2. Echo tập tin đó để tiêu đề.

Trên máy khách Putty và máy chủ SUSE, nó trông như thế này:

ls /home | grep domagaja > logutoit.txt 
echo -e "\033]0\\;$(cat logutoit.txt)\\007\\c"

Hy vọng ai đó sẽ có thể sử dụng này. Tất nhiên, nó sẽ không hoạt động cho tất cả các loại máy chủ và cài đặt máy khách putty, nhưng ý tưởng sẽ hoạt động tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.