Позволит ли какой-либо (недавний) эмулятор терминала Linux сохранить мою сессию (вкладки, историю и т. Д.)?

2811
srking

Со временем я стал инвестировать в свои терминальные сеансы: вкладки, историю команд, расположение окон и заголовок и т. Д. В конце концов, перезагрузка требует, чтобы я начал все сначала, что тратит мое время.

Два эмулятора терминала, с которыми я знаком, имели, по крайней мере, частичную возможность, но функциональность с тех пор была удалена: konsole потеряла эту функциональность где-то на пути к KDE4. gnome-terminal потерял опцию --save-config как «устаревшую» где-то до версии 3.10.2, то есть ответ здесь больше не применим: сохранить несколько макетов gnome-терминала?

Я хочу захватить текущее состояние всех терминальных сеансов и восстановить их после перезагрузки. Сценарий решения будет хорошо, если он не требует ручного обновления для отслеживания изменений сеанса.

6
Определите «состояние». Например, если вы читаете файл с помощью «less», хотите ли вы, чтобы тот же файл запоминался при следующем открытии терминала, или вы просто хотите, чтобы были настроены вкладки / панели и запущены соответствующие программы? Будет ли что-то вроде моего [ответа здесь] (http://superuser.com/a/610048/151431) работать для вас? terdon 9 лет назад 1
Состояние означает: окна, вкладки, историю команд, расположение окон, заголовки окон и вкладок. Мне не нужно сохранять состояние для произвольных процессов, запущенных в терминальной сессии, например, «меньше». Даже bash нуждается в некотором уговоре, так как история команд не сохраняется в каждом случае без некоторых хитростей. Я проверю вашу ссылку. Самым близким, что я нашел, являются закладки Konsole. srking 9 лет назад 1
В этом случае `terminator` может сделать это, как я объяснил в ссылке, которую я дал в моем предыдущем комментарии. Дайте мне знать, если вам нужно что-то еще, и я настрою это соответствующим образом и отправлю здесь новый ответ. Если нет, я буду голосовать, чтобы закрыть это как дубликат. terdon 9 лет назад 0
@terdon, спасибо, я рад узнать о терминаторе. После краткого эксперимента у меня есть недостатки: (1) не сохраняет историю bash для каждой оболочки и (2) не может переименовывать вкладки? Я подозреваю, что не могу делать то, что я хочу, не катя некоторые хрупкие сценарии. srking 9 лет назад 1
1) Ничто не спасет историю bash на оболочку. Это работает не так, это зависит не от эмулятора терминала, а от функции «history» самого bash. Как это будет работать? Хотели бы вы, чтобы команда `history` выдала разные выходные данные на каждой отдельной панели? Если так, то нет. 2) Да, он не называет их. Вы могли бы что-то решить с помощью `echo -ne" \ 033] 0; FOO \ 007 ", который бы устанавливал заголовок на` FOO`, но я не думаю, что сам терминатор может сделать это (эта команда не зависит от терминала, это bashism. Подробнее см. здесь [http://tldp.org/HOWTO/Xterm-Title-4.html)). terdon 9 лет назад 0
@terdon: Да, bash-isms необходимы для сохранения / восстановления истории, но это может работать, когда каждая оболочка bash имеет свой уникальный HISTFILE. В этом отношении может помочь программа терминала, позволяющая запускать команды настройки истории при запуске. Похоже, что Terminator позволяет запускать каждую оболочку, но это трудоемкий процесс для начинающих пользователей. Консервированное решение, управляемое через графический интерфейс, было бы идеальным. srking 9 лет назад 1
Ах, да, я понимаю, что вы имеете в виду. Вам придется `экспортировать HISTFILE = 'foo'` для каждой вкладки. Извините, понятия не имею о способе графического интерфейса, мне никогда не нужно было этого делать. Если через некоторое время вы не получите здесь никаких полезных ответов, отметьте их как мод и попросите их перейти на [unix.se]. Возможно, вам повезет больше. Убедитесь, что вы включили пояснения, которые вы дали в комментариях о том, что именно вам нужно. terdon 9 лет назад 0
Я искал именно это целую вечность. У меня точно такая же проблема, как и у OP - у меня 20-30 вкладок в течение нескольких месяцев, затем я должен перезагрузиться, и я не хочу тратить впустую все вкладки, отдельную историю, подсказки пути и т. Д. Но я думаю, это то, что открыто -source, мы можем взять Terminator и добавить материал HISTFILE для каждой вкладки :) BjornW 9 лет назад 0

3 ответа на вопрос

1
sgp667

this isn't exactly what you asked for but tmux has such capabilities.

Just make sure to install the tmux-resurrect plugin along with it, which allows for restoring the tmux environment (windows, splits, and certain running programs) after a restart.

On the bright side, tmux will work with all

1
pulse

Вот терминальная вилка xfce, с возможностью сохранить / восстановить сессию только из меню: https://github.com/repu1sion/xfce4-terminal

0
Kaurin

Я думаю, что это не совсем ответ на ваш вопрос, но вот как я его настроил:

Куча скриптов, которые открывают разные «пресеты Gnome-Terminal».

Например, в этом скрипте я открываю gnome-терминал с тремя вкладками и вызываю SSH с параметрами в каждой.

#!/bin/sh PATH=/usr/bin:/bin   gnome-terminal \ --tab -t CustomTabText1 -e 'sh -c "ssh hostname.one"' \ --tab -t CustomTabText2 -e 'sh -c "ssh hostname.two"' \ --tab -t CustomTabText3 -e 'sh -c "ssh hostname.three"' 

Я также использовал конфигурационный файл ssh, чтобы отразить определенные параметры SSH хоста. Конечно, если вам нужно исключение, просто передайте параметры в SSH в скрипте gnome-Terminal, который будет иметь приоритет над файлом конфигурации SSH.

Для запуска простых команд, таких как «ssh machine», вам не нужно запускать оболочку (sh -c). Он необходим для выполнения перенаправлений и конвейерной обработки, расширения с использованием подстановочных знаков, условий и т. Д., Но не для выполнения простых команд. Raúl Salinas-Monteagudo 9 лет назад 0

Похожие вопросы