вкладки при використанні "екрана"


20

Я використовую Ubuntu 10.04. Після встановлення screen:

sudo apt-get install screen

Я здійснив два підключення ssh до двох віддалених серверів, виконуючи такі дії крок за кроком (я виконую наступні дії відповідно до документа тут ):

1. відкрити вікно терміналу, запустити командуscreen

2. натисніть Ctrl+ A+, cщоб створити нову віртуальну консоль

3. ssh usr@IP1

На даний момент у мене є одна віртуальна консоль, яка показує, що я підключений до віддаленого сервера (IP1).

4. натисніть Ctrl+ A+, cщоб створити нову віртуальну консоль

5. ssh usr@IP2

Отже, зараз я підключився до двох віддалених серверів (IP1 та IP2). Але , у мене немає двох вкладок на одному вікні терміналу, замість цього, я повинен використовувати Ctrl+ A+ pі Ctrl+ A+ nдля перемикання між двома віртуальними консолями в одному вікні терміналу.

Чи не так, що використовуючи screen, я міг мати дві вкладки в одному вікні терміналу, причому кожна вкладка відображає одне з'єднання з одним віддаленим сервером. Чому я не маю вкладок у своєму вікні терміналу?

Відповіді:


26

Ось те, .screenrcщо я використовую скрізь, щоб побачити свої screenномери як вкладки в нижній частині вікна та інформаційну лінію над вкладками . Частина, яка вам справді потрібна, знаходиться в розділі "погляд і відчуття".

# skip the startup message
startup_message off

# go to home dir
chdir

# Automatically detach on hangup. 
autodetach on

# Change default scrollback value for new windows
defscrollback 10000

# start with visual bell as default
vbell on
vbell_msg "bell on %t (%n)"

# look and feel
caption always "%{= bb}%{+b w}%n %t %h %=%l %H %c"
hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"

activity "Activity in %t(%n)"

shelltitle "shell"
shell -$SHELL

Ви також можете додати наступне, щоб автоматично додати дві вкладки, коли screenспочатку створено:

screen ssh usr@IP1
screen ssh usr@IP2

Також вміст стану можна оновити, використовуючи коди евакуації, видані з команд оболонок та підказок. Наприклад, я оновлюю стан у поточному каталозі, використовуючи це в моєму .bashrc:

if [ 'screen' == "${TERM}" ]; then
  export PROMPT_COMMAND='printf "\e]2;%s %s\a" "${USER}" "${PWD}" '
fi

4
Мені завжди було цікаво, чому для роботи з екраном незмінно потрібна конфігурація хардкор, щоб змусити екран не працювати. PS Спробуйте shelltitle "$ |shell:"додати ім'я команди до заголовка.
амфетамахін

7

Коли ви натискаєте клавішу Ctrl+, aі "ви бачите на екрані "вкладки", вони не повинні бути вкладками на вашому графічному інтерфейсі терміналу, ви можете це зробити вручну, створивши нову вкладку в користувальницькому графічному інтерфейсі термінала, а потім запустіть новий на вкладці, screen -rщоб повернутися до свого сеансу на екрані, а потім перейдіть до потрібного сеансу за допомогою Ctrl+ aі номера або "для перегляду меню з усіма вкладками.

Ви можете надати ім'я кожному з екрана "вкладки", натиснувши Ctrl + a та A .


1
Потрібно запустити, screen -r -xякщо цей екран уже додано у першій вкладці.
Арседж

3

Я думаю, ви плутаєте вкладки на графічних терміналах, як konsole, з тими на екрані. На екрані ви перемикаєте лише вміст вікна із згаданими ^ A-комбінаціями. Це працює і в не графічному середовищі.


2

Ви можете налаштувати screenпоказ рядка стану, який може повідомити вас про багато речей, я думаю, також, на якому екрані ви знаходитесь, але я не використовую рядок стану, тому не можу сказати точно.

Як я знаю, screenне створюйте вкладки, але вам потрібно перемикатися між екранами за вказаною вами командою, або як я вважаю за краще Ctrl- A 1, Ctrl- A 2тощо.

Щоб мати більше однієї вкладки, ви можете використовувати gnome-terminalфункції, також без екрана: Ctrl- Shift- Tстворить нову вкладку, а Alt- 1, Alt- 2і т.д. переключиться між вкладками.

Також я запитую, чому ви не запустите екран на сервері, тому використовуєте лише одне ssh-з'єднання (але в цьому випадку без будь-якої вкладки).


2

Я знаю, що це досить старе, але оскільки Google привів мене сюди, інші можуть прочитати і це. Тож ось мій $ 0,02 хак для імітації вкладок у межах "екранного" сеансу:

Побудуйте рядок стану за допомогою:

  • ліворуч: дата / час
  • праворуч: місцеве ім'я хоста + середнє навантаження
  • посередині: назви екрана "windows"
    • Поточне вікно: червоний текст на чорному тлі
    • інші вікна: білий текст у кольорі тла рядка статусу (синій, тут)

Введіть ~/.screenrc:

hardstatus alwayslastline "%{kb}%{c}[%{w}%D %d/%m/%Y %c:%s%{c}] %{w}%-w%{rk}%n %t%{wb}%+w %=%{c}[%{W}%H %l%{c}]"

(Можливо, це коштує більше $ 0,02, тому що я досить довго боровся з цим ;-)

Для переходу з поточного вікна в попереднє / наступне за допомогою клавіш F6/ F7:

bindkey -k k6 prev
bindkey -k k7 next
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.