строка состояния tmux повредила после catting двоичный файл, как сбросить?

echo rm $(sed -n -e 's/[^A-Za-z0-9]/\\&/g' -e 's/LUN Path:  *//p')

Первое s команда добавляет обратную косую черту перед каждым символом, который не является новой строкой, буквой или цифрой. Вторая команда разделяет LUN Path: префикс от строк, которые имеют его и распечатывают только строки, которые имеют префикс. Получившая строка подвергается расширению имени файла и разделению слова в оболочке; так как всех проблематичных символов кроме новых строк оставили, надлежащие имена файлов будут переданы команде.

97
04.10.2012, 15:57
8 ответов

Попытайтесь переименовать окно 4

  • Переключатель к окну 4: Control+b 4
  • Окно Rename: Control+b, Control+u myNewname

(Thats запятая в середине)

Или: Control+b :rename-window myNewname

86
27.01.2020, 19:30
  • 1
    Переименование работ окна как очарование –  exhuma 31.03.2015, 11:30
  • 2
    Необходимо очистить имя прежде, чем ввести новое. Самый легкий путь с ctrl+u, таким образом, полная последовательность ctrl+b , ctrl+u newname –  z0r 22.05.2015, 07:46
  • 3
    Сладкий - это работает на byobu также (f8, <newname>) –  ali_m 18.11.2015, 18:55
  • 4
    , Почему Control-u необходимый? Control-, уже переименовывает право? Хотя я могу подтвердить, что это было необходимо в моем случае, действительно ли это - символ сброса некоторого вида? –  hbogert 30.01.2017, 12:20
  • 5
    Управление-u очищает строку. если Вы каждый fatfinger, Ваш пароль в терминале и знает это, можно очистить запись с помощью управления-u, вместо того, чтобы поразить клавишу Backspace 20 раз А-ч –  Rqomey 01.02.2017, 00:00

Определенная проблема, которую Вы видите, имеет отношение к имени/заголовку окна 4. Комбинация того, чтобы быть слишком длинным (очевидно), и содержащий странные символы, которые заставляют tmux измерять его как являющийся короче (таким образом, этому не удается правильно ограничить строку состояния шириной экрана) я не уверен, как сбросить его (на моем, это отслеживает название приоритетного процесса), Вам, вероятно, придется закрыть окно.

26
27.01.2020, 19:30
  • 1
    для переименования окна ^b - , –  Rob 06.12.2012, 06:17
  • 2
    В случае, если сочетание клавиш в комментарии @Rob смущает Вас, это Ctrl-b затем ,. –  Doug Paul 17.02.2014, 20:09
  • 3
    Обратите внимание что, когда при переименовании окна поле предварительно заполняется с текущим именем окна (и курсор в конце того имени). Так как мое имя окна было длинной последовательностью мусора, я должен был удержать Backspace в течение минуты для очистки текущего имени. Для меня визуальная обратная связь в конечном счете прояснила, что все старое название было стерто. –  Doug Paul 17.02.2014, 20:10
  • 4
    можно также использовать Ctrl-b :переименовывать-окно <имя идет сюда>; это использует tmux систему команд вместо сочетания клавиш для той команды. –  Abbafei 31.07.2015, 05:08

tmux мог бы только составить часть проблемы. Вам, вероятно, придется вызвать stty sane в командной строке. Это сбрасывает драйверы TTY в ядре к некоторому набору значений по умолчанию, которые обычно позволяют Вам продолжить двигаться. Если драйверы TTY испорчены достаточно, Вам, вероятно, придется ввести stty sane "слепой", то есть, без экранной обратной связи.

2
27.01.2020, 19:30
  • 1
    stty sane не решает проблему также. У меня действительно есть экранная обратная связь в каждом из tmux области я могу ввести и иметь обратную связь как нормальную, но как только tmux должен потянуть что-то (например, запуск нового приложения, переключение или изменение размеров областей) перемещения строки состояния в области... –  gerrit 04.10.2012, 15:39

Попытаться перезагрузить свой файл конфигурации?

Ctrlb, затем: :source-file ~/.tmux.conf

2
27.01.2020, 19:30

Для очистки беспорядка вам понадобятся две последовательности команд:

Во-первых, запустите это в окне с гарью (это работает, даже если вы находитесь в ssh):

stty sane; printf '\033k%s\033\\\\033]2;%s\007' "`basename "$SHELL"`" "`uname -n`"; tput reset; tmux refresh

Затем запустите это на компьютере, на котором запущен tmux (это работает внутри и вне tmux):

Следующая команда влияет на все экземпляры tmux, что может изменить левый статус не только текущего окна. Если вам не нужна эта функция, оставьте ее в стороне.

tmux list-windows -a | while IFS=: read -r a b c; do tmux set-window-option -t "$a:$b" automatic-rename on; done

Объяснено в деталях

Это было собрано, чтобы рассмотреть все биты, найденные в других ответах и комментариях. В настоящее время, похоже, остался только незначительный бит со второй командой. (См. ниже "недостающий бит").

Чтобы понять, как это работает, давайте сначала уничтожим строку состояния tmux и tty. После этого мы исправим ее снова, используя метод, который должен быть всегда доступен (в отличие от команды reset).

Как сделать tmux терминал (предполагает UTF-8) непригодным для использования

stty -echo; printf '\016\033k%2000s\\\033\033]2;\355\007' $'\302\217'

Предупреждение: После выполнения вышеприведенной команды оболочка выглядит слепой и глухой и, похоже, говорит только чушь на каком-то неизвестном инопланетном языке. Как это исправить, смотрите ниже.

Объяснено:

  • stty -echo убивает ответ типа терминала

  • printf '\016' делает SO, так что вы находитесь на альтернативном наборе символов

  • printf '\033]2; %s\007' 'right status text' устанавливает правильный статус, в данном случае $'\355', что раскрывает ошибку представления

  • printf '\033k%2000s\033\\\' $'\302\217' устанавливает имя заголовка окна

Это может быть комбинация, которую вы видите на терминале после того, как какая-то интерактивная команда упала и вернулась в оболочку. (С помощью /bin/cat вы не можете спровоцировать stty -echo IMHO, но интерактивные команды типа vim обычно устанавливают это. )

Теперь уберите этот беспорядок

stty sane; printf '\033k%s\033\\\033]2;%s\007' "$(basename "$SHELL")" "$(uname -n)"; tput reset; tmux refresh

Примечание: Если вы используете копирование и вставку (вероятно, вам нужно удерживать Shift во время вставки), вы, вероятно, не сможете увидеть свою вставку, если вы использовали вышеупомянутую команду, чтобы испортить ваш tty. Следовательно, просто слепо нажмите клавишу Enter после вставки.

Объяснено:

  • stty sane устанавливает "вменяемые" параметры терминала, так что вы получите назад свое эхо при наборе

  • printf '\033k%s\033\\\' "$(basename "$SHELL")" возвращает заголовок окна в нормальное состояние. Вы можете использовать tmux rename-window "$(basename "$SHELL")" в качестве альтернативы, однако tmux rename-window ограничен tmux, где управляющая последовательность всегда работает.

  • printf '\033]2;%s\007' "$(uname -n)" сбрасывает статус-права, чтобы они отображались по умолчанию. (Обратите внимание, что вы не должны использовать tmux set status-right "something", потому что он просто выводит заголовок панели, который был поврежден, так что status-right просто раскрывает некоторую ошибку представления. Также обратите внимание, что я не нашел команду tmux для установки заголовка панели напрямую. )

  • tput reset сбрасывает терминал, на всякий случай

  • tmux refresh обновляет экран, чтобы избавиться от другого мусора, который мог появиться

Недостающий бит

Команда printf '\033k%s\033\\\' "$(basename "$SHELL")" теряет стандартную способность tmux представлять текущую команду в левой области состояния. После выполнения printf '\033k%s\033\\' "something" эта способность пропадает, и я пока не нашел хорошего способа, как вернуть ее в прежнее состояние.

Но, как отмечено в комментариях ниже, вы можете активировать аналогичную возможность tmux в качестве замены с помощью следующей настройки tmux:

set-window-option automatic-rename on
  • Либо сделайте это в командной строке tmux, которую можно вызвать в текущем окне с помощью "Escape" : (где "Escape" - это ваша командная клавиша tmux), а затем введите команду.

  • Или выполните tmux set-window-option automatic-rename on в вашем текущем терминале, но это не сработает, если вы не находитесь непосредственно на нужном уровне оболочки, например, это не работает в sudo или ssh.

  • Или откройте другое окно в текущей сессии tmux и выполните следующую команду:

    for a in `tmux list-windows | sed 's/:.*//'; do tmux set-window-option -t "$a" automatic-rename on; done`.
    
  • Или откройте другой shell на компьютере, на котором запущен tmux и выполните следующую команду (это вне tmux):

    tmux list-windows -a | while IFS=: read -r a b c; do tmux set-window-option -t "$a:$b" automatic-rename on; done
    

PS: Спасибо всем, кто помог собрать это решение.

61
27.01.2020, 19:30

Просто сделайте это $ RESET && TMUX RESAME-WOOK

5
27.01.2020, 19:30

Под «создать» я думаю, что вы имеете в виду «установить». Поскольку ваша публикация помечена Ubuntu то, что вы хотите, это минимальная установка ISO , которую вы можете загрузить отсюда . Обратите внимание, что даже минимальный дистрибутив будет содержать чуть больше двух пакетов.

Если вы действительно хотите создать свою собственную Linux (не рекомендуется для начинающих), вы можете попробовать проект Linux с нуля .

-121--200919-

У вас не будет работающей системы с gnome-session-fallback и «обычным терминалом ubuntu» (что бы это ни было). Для одного из них gnome-session-fallback имеет множество других пакетов, как требуемых прямых и косвенных зависимостей.

Если вы хотите установить абсолютный строгий минимум, чтобы получить рабочий gnome-session-fallback , вы можете использовать два подхода:

  • Используйте обычный установщик Ubuntu для установки ОС, затем, после установки, используйте aptitude или другой инструмент для прохождения установленных пакетов (их должно быть пару сотен) и удалите все, что вы думаете, вы не Если он жалуется, что это важный пакет или требуется что-то еще, то не удаляйте его. Тем не менее, вы должны быть очень осторожны с некоторыми из вещей, которые вы удалите, вы можете легко сломать систему, если вы не знаете, что вы делаете.
  • Для загрузки используйте систему прямого доступа, систему аварийного восстановления или другие средства, а для установки системы используйте debootstrap . debootstrap действительно установит только абсолютный минимум, намного меньше, чем установщик Ubuntu. Но это экспертный метод: вы должны убедиться, чтобы установить загрузчик и ядро самостоятельно и настроить несколько файлов (например, /etc/hostname и /etc/fstab ) вручную, потому что debootstrap не делает этого для вас.

После этого используйте apt-get --no-install-recommends install для установки gnome-session-fallback и «обычный терминал ubuntu» (что бы это ни было). При этом будут задействованы только необходимые зависимости.

-121--200918-
tmux set-option -g status off && tmux set-option -g status on 

исправили это для меня, когда что-то, кроме имени окна, было повреждено, и мне не удалось выяснить, что это было.

5
27.01.2020, 19:30

, чтобы исправить проблему для меня:

Я просто убил панель задач и окно и создал новое окно и панель.

На панели задач CTRL + A X и CTRL + A C .

-3
27.01.2020, 19:30

Теги

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