to post messages and comments.

СЯУ, что так можно и что я всегда такое хотел: [подсветка синтаксиса всякой фигни при просмотре в less][https://www.gnu.org/software/src-highlite/source-highlight.html#Using-source_002dhighlight-with-less]. 

Правда оно как-то не очень хочет работать совместно с lesspipe, так что я пока так сделал (вместо рекомендованного способа):
> alias hi='src-hilite-lesspipe.sh'
> lesshi() {
>    src-hilite-lesspipe.sh "[email protected]" | less
> }

Там ещё есть вариант его в ~/.lessfilter прописать (его вызывает lesspipe), но что-то оно сходу не завелось.

Чтобы скопировать всё музло НЕ создавая копию каталогов (как это было бы с rsync -avrh), а чтобы все файлы лежали одной кучей в одной папке - надо написать чё-то типа такого:

cd /dir/with/music

find . -name "*.ogg" -exec cp "{}" ./ \;

Бэкслэш и точка с запятой нужны, без них не пашет.

Хочется в куске баш скрипта повысить привелегии, чтобы намонтировать всякую гадость, как это сделать правильно?

sudo на функцию в баше натравить можно? как это правильно делается?

Скриптег файрвола для одиноко-стоящей в интернетах VPS-очки : ) Бета-Версия: pastebin.com

Пока сочинял, узнал про особенные особенности дефолтной политики цепочек иптаблес. Век жыви и все такое...

Оказывается, можно задать умолчательную политику iptables -P INPUT DROP, тогда специальное правило блокировки входящего трафика не нужно, но если потом, вдрук неподумавши, сделать iptables -F — можно лехко и непринужденно отвалиться от сервера и получить долгую дорогу к нему : )

Поэтому, в случае дефолтно-дропающей политики для входящей цепочки, перед iptables -F нужно всегда говорить iptables -P INPUT ACCEPT

А если хочется предсказуемости и не хочется долгой дороги к консоли — все дефолтные политики делаем ACCEPT, а правило DROP указываем явно, последним в цепочке. Такие дела )

Волшебная опция masterfile-format text; в /etc/bind/named.conf.options — и о чудо, слейв-зоны в бинде 9.9 приезжают в теплом-ламповом-читабельном плэйн-тексте, вместо стильно-молодежно-нечитабельного рава : )

Команда конвертации:

named-compilezone -j -f raw -F text -o ./<text zone file OUT> <zone name> ./<raw zone file IN>

А есть у нас способ проверить, смонтировано ли устройство, и куда? Из шел скрипта, накрайняк из пухтона. Нормальный способ, а не эта xyuta с грепом вывода `mount`

Вот так пишешь кучу скриптов из говна и палок, а потом оказывается, что это очень гибко и удобно и позволяет находить ответы на нужные вопросы за секунды

С ужасом обнаружил, что у меня хрен знает сколько времени стоит алиас mkdir='mkdir -p'. А ведь я часто полагаюсь на возврат ошибки при попытке создать каталог, который уже есть.

как на баше или batch адекватно проверить, что версия программы больше, чем требуемая т.е. у меня есть cabal --numeric-version: выдает, например, 1.16.0 нужно проверять, чтобы было больше чем 1.18.0

если нужно что-то сделать с текстом разукрашенным с помощью ANSI escape кодов <en.wikipedia.org> (выкинуть их нафиг, или сделать текст пригодным для просмотра чем-то кроме less), то может пригодится утилка ansifilter <andre-simon.de> (app-text/ansifilter в gentoo).
Умеет конвертить в text, (La)TeX, html и rtf

Второй день как перебрался на fish shell. Привыкаю. Как оказалось, в оригинальном репозитории очень большой набор completions и функций, включая уже готовый боевой файл конфигурации: github.com

Конструкции языка fish отличаются от конструкций bash. Успел переписать на fish скрипт генерации .ssh/config для автодополнения серверов при наборе ssh в cli. Скрипт забирает в JSON с сервера список серверов (мастер тавтологии!), которые зарегистрированы в системе управления доступом. Параллельно открыл для себя jq (http://stedolan.github.io/jq/) — очень странную и обворожительную cli утилиту для парсинга JSON. Попробуйте, она очень необычная.

Огорчило в fish отсутствие так называемых history substitution. Например, про !! в документации пишут

Because history substitution is an awkward interface that was invented before interactive line editing was even possible. Fish drops it in favor of perfecting the interactive history recall interface. Switching requires a small change of habits: if you want to modify an old line/word, first recall it, then edit. E.g. don't type "sudo !!" — first press Up, then Home, then type "sudo ".

В fish достаточно набрать команду, например, sudo, затем стрелками вверх-вниз переключаться по истории команд. При этом в начале их будет подставляться то самое sudo.

Всё очень непривычно и магически. Нет, zsh мне не нужен :)

Сегодня полностью осознал, что фраза "не работай под рутом" написана кровью. Вместо $ chmod 755 -R ./* набрал $ chmod 755 -R /* . Хорошо, что вовремя заметил и до /mnt не докатилось. Хорошо, что не сказал sudo или не был изначально #.

Несколько позднее в tcsh была добавлена другая, не менее интересная особенность — возможность редактирования командной строки. Теперь введенную строку можно было стереть, заменить слова, переместить курсор в начало или конец строки (абсолютно обыденная сегодня вещь, которая в те времена была в диковинку).

есть консольная утиль, которая выводит "строку статуса" через всякие \r и \b, можно как-нибудь получить текстовый вывод консоли по окончании работы утилиты, т.е. без кодов управления, plain text? Или оно завязано на всякие terminfo и простым образом не удастся получить текст?