Пакет Исходного выделения поставляется с esc.outlang определением выходного языка, которое выделяется с escape-последовательностями ANSI.
Удобная обертка src-hilite-lesspipe.sh
также включен в пакет, так отображение выделенного вывода в терминале справедливо src-hilite-lesspipe.sh source.file
.
На самом деле src-hilite-lesspipe.sh
основная причина должна помочь автоматизации использования source-highlight
с less
. Вы просто устанавливаете:
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Затем любой less source.file
покажет выделенный исходный код. (Код на неизвестном языке пройдет неизменный. Выделение будет также пропущено в случае перенаправленного содержания, как less < source.file
.)
Вы могли использовать mount
для перемонтирования каталогов, Вам нужно в Вашей тюрьме:
# mount --bind /bin /chroot/bin
# mount --bind /lib /chroot/lib
# chroot /chroot
Для использования в /etc/fstab
:
/bin /chroot/bin none bind
/lib /chroot/lib none bind
Удачи!
Если Вы не хотели монтировать каталоги, как jgr сказал, можно использовать cp
к recursivly копируют каталоги и создают hardlinks для всех файлов:
cp -alf /bin /chroot/bin
cp -alf /lib /chroot/lib
chroot /chroot
Таким образом, Ваш chroot's /bin
и /lib
может иметь немного отличающуюся структуру / содержание, чем основные каталоги.
#!/bin/bash
copy_file_and_dependencies() {
PROGRAM="$1"
DEPENDENCIES="$(ldd "$PROGRAM" | awk '{ print $3 }' | grep -v '(' | grep -v 'not a dynamic executable')"
mkdir -p "${JAIL}$(dirname $PROGRAM)"
cp -Lv "$PROGRAM" "${JAIL}${PROGRAM}"
for f in $DEPENDENCIES; do
mkdir -p "${JAIL}$(dirname $f)"
cp -Lv "$f" "${JAIL}${f}"
done
}
export -f copy_file_and_dependencies
copy_file_and_dependencies /etc/ld.so.cache
copy_file_and_dependencies /bin/sh
# ...