В зависимости от оболочки переменные COLUMNS
(и LINES
) могут быть автоматически установлены при изменении размера окна. bash, zsh, ksh do. dash не делает. tcsh этого не делает.
Из man bash
:
COLUMNS Используется командой select compound для определения ширины терминала при печати списков выделения. Автоматически устанавливается, если Опция checkwinsize включена или в интерактивной оболочке при получение SIGWINCH.
и
LINES
Используется командой select compound для определения столбца длина для печати списков выбора. Автоматически устанавливается, если Опция checkwinsize включена или в интерактивной оболочке при получение SIGWINCH.
Я нахожу полезным следующий псевдоним:
$ alias ttystat='echo $(tty) $TERM ${COLUMNS}x$LINES'
$ ttystat
/dev/pts/2 xterm 192x51
Это довольно старый вопрос, но сегодня я наткнулся на тот же вариант использования и нашел решение настолько простым, что, вероятно, оно было недоступно 7 месяцев назад.
По этой ссылке можно найти дополнительную информацию, но по сути это так:
скажем, у нас есть модемное устройство (AT-команды) на / dev / ttyUSB2 и контейнер «xenial1» , можно добавить ttyUSB2 в контейнер с помощью следующей команды:
$ lxc config device add xenial1 ttyUSB2 unix-char path=/dev/ttyUSB2
не имеет значения, запущен контейнер или нет
Эта конфигурация постоянно сохраняется в профиле контейнера по умолчанию:
$ lxc config show xenial1
architecture: x86_64
config:
security.privileged: "true"
volatile.base_image: <numbers>
volatile.eth0.hwaddr: xx:xx:xx:xx:xx:xx
volatile.idmap.base: "0"
volatile.idmap.next: '[]'
volatile.last_state.idmap: '[]'
volatile.last_state.power: RUNNING
devices:
root:
path: /
type: disk
ttyUSB1:
path: /dev/ttyUSB1
type: unix-char
ttyUSB2:
path: /dev/ttyUSB2
type: unix-char
ephemeral: false
profiles:
- default
Чтобы удалить устройство используйте команду «удалить» вместо «добавить».
ПРИМЕЧАНИЕ: мой контейнер является «привилегированным», поэтому это решение может не работать с непривилегированными контейнерами
если вы используете непривилегированный контейнер, вы также можете установить правильные разрешения для этого устройства... я убедился, что это было так, когда я пытался использовать веб-камеру в контейнере... может быть, это также помогает здесь...
lxc config device add containerName yourNameForTheDevice unix-char path=/path/to/device
lxc config device set containerName yourNameForTheDevice mode 666
также имейте в виду тот факт, что прохождение USB -работает только с lxd 2.5 или выше, как пишет Стефан Грабер в https://stgraber.org/(, прокрутите вниз до USB-устройств в контейнерах ). так что, возможно, вам также нужно добавить репозиторий от разработчиков lxd -.... на данный момент «обычные» репозитории ubuntu -xenial имеют только lxd -версии 2.0.9
проверьте, какая у вас версия с помощью
dpkg -l lxd
взгляните на эту страницу и рассмотрите возможность использования этого репозитория :https://launchpad.net/~ubuntu-lxc/+archive/ubuntu/lxd-stable
если вы это сделаете, вы можете обновить его до версии 2.15