Как включить в приглашение мой идентификатор виртуальной консоли во FreeBSD

С одной стороны, связанный вопрос очень сбивает с толку. Ответ 9mjb правильный.

С другой стороны, если вы используете rsync на локальном монтировании сетевой файловой системы, он никак не может проверить контрольную сумму удаленного файла без загрузки всего файла! Таким образом, вы собираетесь застрять с медлительностью здесь. Предполагая, что у вас меньше доступной пропускной способности сети, чем скорость диска.

Вот только я тоже не понимаю, какую проблему вы пытаетесь объяснить относительно времени. Если вы используете -a, он должен передавать точное время из исходной системы. Если вы не используете -a, он не будет передавать исходное время из исходной файловой системы, поэтому время в любом случае не будет точно совпадать при последующих передачах. Похоже, вам не нужно поведение -u, но тогда вы можете просто не использовать-u:-).


rsyncработает по умолчанию. (Ценой того, что "если время и размер совпадают, вероятность того, что файлы разные, незначительна, я готов рискнуть не передавать" ).

[rsync] is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination. Rsync is widely used for backups and mirroring and as an improved copy command for everyday use.

Rsync finds files that need to be transferred using a "quick check" algorithm (by default) that looks for files that have changed in size or in last-modified time.

Важно понимать, что алгоритм передачи rsync delta -и «быстрая проверка» — это разные вещи.

Похоже, вам не нужно поведение --checksum. --checksumотключает часть «быстрой проверки». В этом случае не используйте--checksum.

-c, --checksum

This changes the way rsync checks if the files have been changed and are in need of a transfer. Without this option, rsync uses a "quick check" that (by default) checks if each file’s size and time of last modification match between the sender and receiver. This option changes this to compare a 128-bit checksum for each file that has a matching size. Generating the checksums means that both sides will expend a lot of disk I/O reading all the data in the files in the transfer (and this is prior to any reading that will be done to transfer changed files), so this can slow things down significantly.

The sending side generates its checksums while it is doing the file-system scan that builds the list of the available files. The receiver generates its checksums when it is scanning for changed files, and will checksum any file that has the same size as the corresponding sender’s file: files with either a changed size or a changed checksum are selected for transfer.

Note that rsync always verifies that each transferred file was correctly reconstructed on the receiving side by checking a whole-file checksum that is generated as the file is trans‐ ferred, but that automatic after-the-transfer verification has nothing to do with this option’s before-the-transfer "Does this file need to be updated?" check.

2
10.05.2020, 14:36
2 ответа

Установите PS1условно на значение $TTY. Первая виртуальная консоль — /dev/ttyv0, вторая — /dev/ttyv1и т. д.

.

Для zsh сделайте это в ~/.zshrc. Для bash сделайте это в ~/.bashrc.

if [[ $TTY == /dev/ttyv[1-9]* ]]; then
  PS1="[${TTY#/dev/ttyv}] $PS1"
fi

Код для этого одинаков в bash и zsh. Если вам нужны дополнительные эффекты в вашей подсказке (текущий каталог, имя хоста, цвета, … ), формат PS1зависит от оболочки:zsh и bash оба поддерживают экранирование подсказок, но они совершенно разные.

4
28.04.2021, 23:15

КВЦ - это не пульт, который либо последовательный, либо видео, либо немой. Виртуальный терминал ядра по умолчанию во FreeBSD на самом деле 0, его файл устройства имеет имя /dev/ttyv0, а не 1. Это не Linux. Поэтому я предлагаю вам безоговорочно включить его в свою подсказку, по крайней мере, до тех пор, пока вы не привыкнете к фактической нумерации. & #9786;

В оболочке Z это очень просто. У меня естьRPROMPT:

RPROMPT=%y

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

Если вам нужен только номер, а не имя устройства, это просто другая последовательность процентов:

RPROMPT=%j

Однако %jприводит к путанице, если вы также используете это в оболочках, подключенных к эмуляторам терминала с графическим интерфейсом, или к виртуальным терминалам пространства пользователя -, поскольку оболочка Z дает ту же нумерацию для псевдотерминалов -, что и для KVT..

Оболочка FreeBSD Almquist не имеет для этого последовательности подсказок, которую можно поместить в ее PS1переменную оболочки (, и не имеет подсказок -правой -стороны, а также ). Вы просили что-то, что также работает с оболочкой FreeBSD Almquist. В ответе Жиля этого нет, как и в последовательности метасимволов.

Там нетTTYпеременной среды, установленной в сеансах входа в систему KVT (, если вы не используете мой набор инструментов nosh, который добавляет это соглашение для входа в терминал на FreeBSD за счет его vc-get-ttyпрограмма ). Ответ Жиля работает только , потому что оболочка Z предоставляет неявную переменную оболочки TTY. Он не работает с оболочкой FreeBSD Almquist или другими оболочками, которые вы можете использовать, такими как оболочка Korn, где нет ни неявной переменной оболочки, ни какой-либо переменной среды.

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

export TTY="`tty`"
1
28.04.2021, 23:15

Теги

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