Здесь есть два мировоззрения:
termcap и terminfo переводят это мировоззрение, которое видят программы, в мировоззрение, которое видят терминалы.
Программы, представляющие полноэкранные текстовые пользовательские интерфейсы (например, vim
, nano
, less
, mc
и т. Д.) Используйте termcap / terminfo для переключения в режим адресации курсора при запуске и обратно в режим прокрутки, когда они приостанавливают работу, завершают оболочку или выходят из нее. Библиотека ncurses делает это, но то же самое делает и программы, не использующие ncurses, которые строятся непосредственно поверх termcap / terminfo.
Прокрутка внутри TUI, представленная less
или vim
, не имеет ничего общего с прокруткой назад. Это реализовано внутри этих программ, которые просто перерисовывают свой полноэкранный текстовый пользовательский интерфейс по мере необходимости.
Обратите внимание, что эти программы не «не оставляют содержимого» в альтернативном экранном буфере. Терминал просто больше не отображает то, что они оставили.
] less
находится в конце конвейера).Фактические управляющие последовательности - это то, что соответствующие стандарты называют последовательностями управления установкой частного режима . Соответствующие номера частного режима - 47, 1047, 1048 и 1049. Обратите внимание на различия в том, какие дополнительные действия подразумеваются каждым из них, помимо переключения в / из альтернативного экранного буфера.
Нет. У каждого пользователя есть один crontab. Почему? Потому что crontab — это «таблица» («вкладка») всех заданий cron, связанных с одним пользователем.
Если вы хотите запустить несколько вещей с помощью cron
, просто добавьте несколько строк в свой crontab.
Если у вас есть несколько файлов со спецификациями заданий cron, просто объедините их:
cat crontab1 crontab2 crontab3 >my-crontab
crontab my-crontab
Два способа обхода одного crontab.
Поместите записи crontab в файлы в каком-нибудь каталоге, например ~/crontab.d/thisandthat.cron
, затем зафиксируйте любые изменения в системном crontab с помощью:
cat ~/crontab.d/*.cron | crontab -
Расширение .cron
во избежание случайного включения файлов резервных копий из редакторов. Обратите внимание, что, поскольку все файлы объединены вместе, любые переменные, установленные в файлах, также будут применяться к файлам, которые будут добавлены позже.
Вы также можете сделать что-то похожее на то, как /etc/cron.hourly
и друзья реализованы в Debian. Главный /etc/crontab
содержит такие правила:
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Вы можете настроить одну запись crontab для запуска нескольких программ. run-parts dir
в Debian похож на for f in dir/* ; сделать "$f" ; done
за исключением того, что он пропускает нечетные имена файлов, опять же, чтобы избежать запуска файлов резервных копий, созданных редакторами и т. д.
Вы можете просто прочитать фактическую запись и добавить новую сразу после нее.
Как только вы запустите этот:
crontab -u smarak /tmp/my-crontab
В идеале вы могли бы сделать что-то вроде:
crontab -u smarak <(cat /root/my-alternate-crontab) <(crontab -l)
Но кажется, что crontab не принимает приведенную выше форму, поэтому здесь работа -вокруг:
cat /root/my-alternate-crontab <(crontab -l)| crontab -u smarak -
Это работает для меня. Надеюсь, это поможет.