Сергей СупруновFreeBSD - полезные советы
Как не «проморгать» нужную строку
# script /var/log/build.log
Script started, output file is /var/log/build.log
# make buildworld
# exit
exit
Script done, output file is /var/log/build.log
То есть вы всё видите на экране, но при этом весь вывод, равно как и ввод, дублируются в указанном файле. Главное, чтобы места на диске хватило. Только не забывайте, что в этот же файл попадут и управляющие символы, так что этот метод не слишком подходит для «логирования» интенсивной интерактивной работы, особенно если вам часто приходится использовать Backspace.
Удалите из системы всё лишнее
# /usr/local/sbin/pkg_cutleaves -x
Package 1 of 38:
autoconf-2.59_2 - Automatically Un*x platforms (2.59)
autoconf-2.59_2 - [keep]/(d)elete/(f)lush marked pkgs/(a)bort?
** Keeping autoconf-2.59_2.
Package 2 of 38:
bash-2.05b.007_5 - The GNU Bourne Again Shell
bash-2.05b.007_5 - [keep]/(d)elete/(f)lush marked pkgs/(a)bor
И так по всем пакетам: если хотите оставить просто жмёте , если удалить вводите и потом .
Понятно, что если какой-то из удаляемых пакетов «держит» другие в качестве зависимости, то эти другие сами станут «листовыми». Поскольку запускать «pkg_cutleaves -x» рекурсивно, пока не останутся только нужные пакеты, не самое весёлое занятие, разработчики предусмотрели ещё один ключ: -R. Команда «pkg_cutleaves -R» работает аналогично приведённому выше, за тем исключением, что если в системе есть пакеты, от которых зависит только удаляемый, то они будут удалены автоматически и рекурсивно, без дополнительных вопросов. Как обычно в таких случаях, настоятельно рекомендую ознакомиться с man pkg_cutleaves и внимательно отвечать на каждый вопрос программы.
О пользе обратных кавычек
$ cat /usr/src/sys/`uname -p`/conf/`uname -i`
Ещё один пример:
$ touch arch`date "+%Y-%m-%d"`
В итоге вы получите файл с именем вида arch2006-07-21, зависящим от даты исполнения команды. При необходимости можно создавать и вложенные конструкции, например:
$ echo a`echo b\`echo c\\\`echo d\\\`c\`b`a
abcdcba
Обратите внимание на то, как приходится экранировать служебные символы для того, чтобы они «срабатывали» на нужном уровне вложенности (сам слэш тоже нуждается в экранировании, поэтому на «уровне d» мы вынуждены
использовать целых три символа «\»). Наибольшую пользу обратные кавычки приносят при использовании в скриптах, автоматизирующих те или иные действия.
Обновляйте коллекцию портов без усилий
# portsnap fetch && portsnap update
При первом запуске между этими командами понадобится ещё одна: «portsnap extract». Для автоматического скачивания обновлений (например, по расписанию cron) вместо portsnap fetch следует использовать portsnap cron.