Чтобы добавлять сообщения и комментарии, .

@anton0xf:
anton0xf

СЯУ, что так можно и что я всегда такое хотел: [подсветка синтаксиса всякой фигни при просмотре в 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 "$@" | less
> }

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

@lolicon:
lolicon

xon.sh

@loz:
loz

Теперь можно официально выкидывать zsh, смысла в нем больше нет.
github.com

@Stepper:
Stepper

Поисковик по исходному коду
opengrok.github.io

@Zert:
Zert

Чем в шелле json нормально генерить? О вариации с echo/printf знаю, хочется чего-то более удобного. Есть инструменты?

@Stepper:
Stepper

Химия
hij.ru

@Stepper:
Stepper

Про удобный удаленный шелл и админство
habrahabr.ru/post/267797/

@don-Rumata:
don-Rumata

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

cd /dir/with/music

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

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

@qnikst:
qnikst

cat cabal.config | cut -c14- | sed -e 's/ ==/-/' -e 's/,//' | tr '\n' ' '

а как такое пишут те, кто умеет в shell commands?

@Shizokl:
Shizokl

Такой-то вин haskellforall.com

@qnikst:
qnikst

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

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

@Dant:
Dant

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

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

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

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

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

@Dant:
Dant

Волшебная опция 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>

@don-Rumata:
don-Rumata

Инфа по версиям релизов бубна хранится в changelogs.ubuntu.com для обычных и в changelogs.ubuntu.com для лтс.

@segfault:
segfault

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

@avallach2000:
avallach2000

Говорите, портянки на баше в классическом ините? Нет, ребята, пиздец он вот где: code.google.com
Ахтунг, по ссылке 18,716(!) строк кода.

@Dant:
Dant

Как переучиться с net-tools ifconfig-like команд на iproute2 ip-like, перестать беспокоиться и начать жыть : )

linoxide.com
blog.linoxide.com

@Zert:
Zert

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

@avallach2000:
avallach2000

В общем, мы все умрём, вот. ^_^:
1. ko.com.ua
2. defensecode.com

@qnikst:
qnikst

у кого-нибудь есть идеи как прописать алиас (функцию) :e, которая будет открывать в EDITOR последний файл этим EDITOR-ом открывавшийся (в данном инстансе терминала)? интересует bash/zsh.

@veet:
veet

cat blah.txt | 7z a -an -mx=5 -t7z -si -so | openssl enc -base64 -K key.pub > blah.enc не работает, а -tgzip — ок. Что я делаю не так?

@anton0xf:
anton0xf

СЯУ о (c)wdiff. и как я раньше жил без этой фигни? (ну т.е. перебивался kdiff3 и пр.)

@GotF:
GotF

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

@max630:
max630

users.livejournal.com

@qnikst:
qnikst

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

@qrilka:
qrilka

обнаружил для себя stedolan.github.io — полезная вещь

@anton0xf:
anton0xf

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

@freefd:
freefd

Второй день как перебрался на 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 мне не нужен :)

@anton0xf:
anton0xf

добавил 'tabs -4' в ~/.zshrc — сломал консольный emacs

@partizan:
partizan

котаны, а напомните мне как назывался подуль для питона, который позволял выполнять команды в шелле? ну типа
mod.ls("/path/")
и все такое

@don-Rumata:
don-Rumata

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

@AlexVK:
AlexVK

explainshell.com
Thnx @kvi

@a13:
a13

dd if=/dev/zero | pv | dd of=/dev/null

@ng358ex-2:
ng358ex-2

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

@qrilka:
qrilka

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

@Equidamoid:
Equidamoid

Шикарный модуль для вызова shell-команд без многословного шаманства с subprocess:
amoffat.github.io

@segfault:
segfault

Есть такая утилита tree.
В генте app-text/tree
Очень удобно, например вот так
tree -d -I 'cabal-dev|dist'
получим дерево директорий наших проектов удобно напечатанное прямо в соснольке.

@xorkrus:
xorkrus

Дано: консоль на удаленном бздя-сервере; охуенная радиостанция в mp3
Задача: риповать второе с первого. с разбивкой по трекам, заполнением тегов.
Вопрос: как?

@ramok:
ramok

в след за линусовым find, который по умолчанию ищет в текущем каталоге, этому тоже научили grep -r. grep -r pattern без .

@Self-Perfection:
Self-Perfection

Подумалось мне, что надо бы поучить perl, и я даже почти дал себе зарок некоторое время использовать для парсинга логов только perl, вместо стандартных grep/cut/sed/awk/.... Но первый же эксперимент мне не понравился. Оригинальный однострочник:

$ time awk '{a[$7]+=1} END{for(k in a){print k}}' $LOG |wc -l
840

real 0m0.292s
user 0m0.254s
sys 0m0.034s

И перевод его на perl:

$ time perl -lane 'END{print scalar(keys %a)} $a{$F[6]}=();' $LOG
840

real 0m6.416s
user 0m6.380s
sys 0m0.018s

получилось длиннее и медленнее. Печально.