Напечатать что-то в определенном месте на терминале в bash

Вот что я сделал, чтобы установить его и запустить службу в CentOS 7.5. Вероятно, лучше всего полностью удалить Opennms и Postresql, прежде чем начать. Я сделал это, запустив его как root.

Заранее убедитесь, что у вас установлены следующие javaпакеты:

java-1.8.0-openjdk
java-1.8.0-openjdk-devel
java-1.8.0-openjdk-src
java-1.8.0-openjdk-headless
javapackages-tools
jdk
jdk1.8.0_144

Я установил некоторые из этих пакетов, когда дошел до конца, и программа установки выдавала мне ошибки, так что вы можете подождать, пока не перейдете к части Java внизу, если вы не можете установить их на этом этапе из-за Репозитории opennms недоступны.

Во-первых,Я создал каталог в /opt/opennms, а затем загрузил внутрь tar.gz и распаковал его, используя инструкции по этой ссылке (. Я использовал wgetвместоcurl -L:

https://www.opennms.org/en/install-centos

wget https://github.com/opennms-forge/opennms-install/archive/1.2.tar.gz
tar xvfz 1.2.tar.gz
cd opennms-install-1.2
bash bootstrap-yum.sh

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

https://docs.opennms.org/opennms/releases/latest/guide-install/guide-install.html#gi-install-opennms-rhel

Postgresqlи Opennmsуже были установлены, поэтому я снова перешел к части настройкиPostresql(Я создал другое имя для пользователя, но это не имеет значения):

Включить и запустить postgresqlслужбу

systemctl enable postgresql
systemctl start postgresql
su - postgres

Создать пользователя базы данных:

createuser -P opennms
createdb -O opennms opennms
exit

Создайте пароль для суперпользователя Postgresql, где YOUR-POSTGRES-PASSWORD— пароль по вашему выбору.

su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'YOUR-POSTGRES-PASSWORD';"
exit

Разрешить доступ по локальной сети:

vim /var/lib/pgsql/data/pg_hba.conf

Убедитесь, что файл выглядит так:

host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

Потом:

systemctl restart postgresql

Затем измените конфигурацию базы данных:

vim ${OPENNMS_HOME}/etc/opennms-datasources.xml

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



`

На этом этапе вы можете установить пакеты javaи jdk, перечисленные выше, если вы еще этого не сделали.

ИнициализироватьOpennms:

{OPENNMS_HOME}/bin/runjava -s
{OPENNMS_HOME}/bin/install -dis

Если переменная OPENNMS_HOMEне установлена, она равна /opt/opennmsили можно запускать команды с полными путями:

/opt/opennms/bin/run/java -s
/opt/opennms/bin/run/install -dis

Вы можете получить некоторые сообщения об ошибках, но если все прошло хорошо, все будет в порядке. Должен быть создан файл для подтверждения:

/opt/opennms/etc/configured

Наконец:

systemctl enable opennms
systemctl start opennms

Если запустится без ошибок, значит все готово.

Возможно, это не сработает для вас точно так же, как для меня, и вам, возможно, придется изменить несколько вещей, но, надеюсь, это даст вам некоторый прогресс.

8
17.05.2020, 13:35
3 ответа

Написать MSG в строке 11, столбце 31 на терминале и вернуть приглашение оболочки в нижнюю часть окна:

echo "$( tput cup 10 30 )${MSG}$( tput cup ${LINES} 0))" && echo
2
28.04.2021, 23:13

Это должно сработать, еслиBATTERY=50

Он находит количество столбцов вашего терминала, затем настраивает курсор на ваш текст и печатает «BAT $BATTERY%»

echo "$(tput cup 0 $(expr $(tput cols) - 7))BAT $BATTERY%" && echo

2
28.04.2021, 23:13

Используйте escape-последовательности терминала для перемещения курсора. Практически все терминалы используют общий набор escape-последовательностей, которых здесь достаточно, они стандартизированы ANSI и стали популярными в VT100. Но вы можете использовать базу данных terminfo для поиска управляющих последовательностей для вашего терминала с двойным преимуществом переносимости и удобочитаемости. Вы можете использовать утилитуtputдля передачи возможностей terminfo .

print_in_top_right () {
  local columns=$(tput cols)           # get the terminal width
  local text=${1:0:$columns}           # truncate the text to fit on a line if needed
  tput sc                              # Save the Cursor position
  tput cup 0 $((columns - ${#text}))   # move the CUrsor Position to the top line, with just enough space for $text on the right
  printf %s "$text"
  tput rc                              # Restore the Cursor position saved by sc
}

Обратите внимание, что как только терминал прокручивается, этот фрагмент текста будет прокручиваться вместе с ним. Нет универсального средства для сохранения текста, наложенного на терминал. Если вы хотите этого, вам нужен эмулятор терминала с этой функцией, который обычно резервирует выделенную линию для этой цели. Большинство графических эмуляторов терминала позволяют вам видеть заголовок окна, который вы можете установить с помощью xterm -совместимой управляющей последовательностиOSC 2(OSCisESC ]).

set_window_title () {
  printf '\e]2;%s\007' "$1"
}
10
28.04.2021, 23:13

Теги

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