Исправлена ​​ли строка состояния терминала вместо командной строки?

В командной строке Unix часто используется полезная информация, но у меня слишком много вещей, на которые я хочу следить, чтобы соответствовать всем этим в одном приглашении: текущее окно экрана Gnu, текущий каталог, текущее время, имя хоста, текущая ветка git , фаза луны, вы-имя-это.

Было бы разумнее иметь фиксированную область состояния внизу (или верхней) терминала, чтобы отобразить всю эту информацию, и оставить запрос в одиночку. (Я написал «область фиксированного статуса», а не «фиксированную строку состояния», потому что я не хочу ограничивать себя одной строкой).

(Этот регион, конечно, не повлияет на нормальный интерактивный выход.)

Существует ли стандартная Unix для реализации такой фиксированной области состояния и позволит мне обновить ее через функцию precmd ?

3 Solutions collect form web for “Исправлена ​​ли строка состояния терминала вместо командной строки?”

Вы можете разделить экран по горизонтали на screen , установить одну область, размер которой вы хотите для своего региона статуса , и запустить в нем некоторое время watch -t cat ~/.status а затем заполнить содержимое этого ~/.status в вашем precmd() ,

Если ваш терминал поддерживает терминальную адресацию, сохраните курсор и верните курсор, это может сработать:

 PS1="$(tput sc;tput cup 0 0;tput rev;tput el)\u@\h \W$( tput rc;tput sgr0)\$ " 

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

В bash вы можете сказать ему игнорировать последовательности управления курсором, используя квадратные скобки обратной косой черты:

 PS1="\[$(tput sc;tput cup 0 0;tput rev;tput el)\]\u@\h \W\[$( tput rc;tput sgr0)\]\$ " 

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

 TOSL=$(tput sc;tput cup 0 0;tput rev;tput el) FROMSL=$(tput sgr0; tput rc) PS1='$(echo -n "$TOSL $LOGNAME@$HOSTNAME ${PWD/#$HOME/~}$FROMSL">/dev/tty)\$ ' 

AT & T Unix имела команду sysline , которая предоставляла строку состояния для терминалов, которые не имеют ее в аппаратном обеспечении. Возможно, теперь есть эквивалент GNU …

  • (SOLVED) Запуск Ettercap дает мне ошибку
  • Ctrl + a + d выход терминала?
  • Терминал: запомнить рабочий каталог
  • Прекратить прием сигналов при запуске музыки с терминала
  • В чем разница между различными переменными $ TERM?
  • Как изменить содержимое строки на терминале, а не писать новую?
  • Не удалось настроить параметры сети в центрах 7
  • поддержка tmux, TERM и 256 цветов
  • Как исправить вывод моего терминала персонажем?
  • Как я могу решить выходное шахматное явление в tmux
  • Возможно ли сделать групповой чат в терминале Linux через локальную сеть?
  • Interesting Posts

    найти то, что пишет

    Добавить cron в Crontab

    Можно ли перезаписать файл, созданный mktemp?

    Что вызывает повреждение сегментации в обслуживании?

    Как эта команда find использует «find … -exec sh -c» … «sh {} +» работает?

    SSH-туннель: «канал x: не будет отправлять данные после закрытия»

    Не удалось выполнить проверку IP-адреса при первой загрузке

    iostat: ожидание против svctm

    В новом выводе nixos, основанном на двоичном дистрибутиве, почему я получаю ошибку, ссылаясь на nativeBuildInputs?

    Что определяет количество доступных на диске идентификаторов?

    Добавьте Ubuntu в список параметров загрузки Grub

    Копия полного файла подкачки пуста

    Невозможно подключиться к Интернету (даже пинговать собственный маршрутизатор) на любом дистрибутиве

    DNS внезапно перестает работать для определенной сети на определенной машине, DNS_PROBE_FINISHED_BAD_CONFIG

    Как подавить предупреждающее сообщение?

    Linux и Unix - лучшая ОС в мире.