logo

muhas.ru — это просто блог…

О linux, о используемых или просто понравившихся инструментах, вобщем обо всем что окружает мою аскетичную компьютерную жизнь и показалось достойным упоминания или заметки «на память»

dscp — dsh like мордочка для scp/ssh

tl;dr

Я не осилил dsh на арме, вот что-то похожее на шеле: dscp

Умеет только последовательно, только ssh, не умеет в параметры ssh, зато может копировать файл на несколько серверов

Лирическое отступление

Когда-то давно я начал пользоваться dsh (если кто не знает то это такая фигня которая запускает несколкьо команд ssh/rsh последовательно или паралелно), но в какой-то момент понадобилося что-то похожее и на мобиле, а потом и на малинке. И там и там dsh отсутсвовал 😞

Конечно есть куча всяких альтернатив и разнообразных distributed/paralell shell вплоть до одновременного запуска в регионах какого-нибудь tmux'а

Но больно уж я привык за долгие годы к тому как я использую dsh (тупо последовательный запуск ssh и иногда остановка по ^+c), да и конфигов групп набралось изрядно. Cделать аналог где есть то что мне надо не так уж и сложно, ведь на мобиле я и так иногда for для нескольких серваков запускаю. В итоге родился shell-скрипт враппер который делает for по серверам из групп dsh и запускает ssh server command. Постепенно скрпит заменил dsh и на компе, а спустя какое-то время мне задолбало каждый раз писать for для scp на несколько серверов и в скрипт было добавлено такое копирование

Через какое-то время запуск этого скрипта попал в один из рабочих мануалов и я был несколько удивлен вопросом «где брать dscp?)», я-то уже считал что dscp чуть ли не по умолчанию вместе с openssh идет, пришлось дописать usage попутно объясняя как оно работает. Ну а спустя почти пол года (сегодня) решил его выложить публично, несмотря на известные мне проблемы

Сам я использую dscp в termux на телефоне и в арче на малинке, глядишь когда-нить понадобиться паралельный запуск дык и добавлю в скрипт чтение конфига dsh, ну или & в строке запуска ssh 😆

Пример работы

# группы dsh выглядят обычно так
# cat /.dsh/group/servergroup
server1
server2
server3

# копирование
dscp servergroup cp ~/testfile /tmp/test
# запустит
scp ~/testfile server1:/tmp/test
scp ~/testfile server2:/tmp/test
scp ~/testfile server3:/tmp/test

# запуск аля dsh
dscp servergroup uname -a
# запустит
ssh server1 uname -a
ssh server2 uname -a
ssh server3 uname -a

Установка

DSCP='/usr/local/bin/dscp' && curl -o $DSCP https://raw.githubusercontent.com/muhas/dscp/master/dscp && chmod +x $DSCP && unset DSCP

Для арчеводов есть опакеченое тынц

Мысли вслух

Что-то много текста о скрипте в несколько десяток строк. Ридми и тот вышел длиннее чем сам скрипт 🤪

Но вдруг кому-то кроме меня такой простой аналог dsh нужен, а самому писать лень

fb2 в консоли

fb2 to txt | fb2 в консоли

Навеело тут беседой на ЛОРе и результатом этой беседы в виде башскрипта от топикстартера для чтения fb2 в консоли.

Нужность оригинального скрипта с которого начался топик при наличии xsltproc FB2_2_txt.xsl я обсуждать не буду, а вот от bash скрита родившегося у ТС в результате немного бомбит

  • скрипт используя zcat зачем-то проверяет архив ли это (у zcat есть опция -f, жаль у zless такого нет)
  • скрипт игнорирует кодировку файлов, хотя во времена когда почти везде utf8 сие не грех
  • оформлено всё цивильненько, аж с маном, лицензией, ченджлогом и файлом версии, проверками всякими, хелапами… хотя суть всего скрипта сводиться к sed

При таком хорошем оформлении сам скрипт мне не понравился, ну нафига столько городить ради однострочника? В итоге у меня появилась такая функция

# сама фунция
fb2read() {
  zcat -f $1| sed -r 's/<body>/\n&\n/;s/<\/body>/\n&\n/;1,/<body>/d;/<\/body>/,$d;s/<[^>]+>//g;/^[[:space:]]*$/d'|enca -c 2>/dev/null
}
# использовать как
fb2read file.fb2[.zip|.gz] | [most|less|more|что там ещё]
# ну или суфиксным алиасом как-нить пристроить

Помимо корутилсов для конвертации кодировки необходимо ещё enca ну и какой-нибудь most/less

Но вообще лучше fbless для консоли пока ещё ничего не придумали

cheat.sh — Ъ шпаргалки

cheat.sh — консольные и браузерные шпаргалки

cheat.sh — огромная коллекция шпаргалок для консольных комманд и языков программирования.

Казалось бы краткое описание звучит не очень, но на деле всё это имеет удобную веб морду с возможностью просмотра и поиска шпаргалок через curl.
Только взгляните на это

# вывод шпаргалки по ls
curl cheat.sh/ls
# поиск в шпаргалках по ключевому слову
curl cheat.sh/~keyword
# ну и немного хелловорда
curl cheat.sh/go/hello
# список шпаргалок
curl cheat.sh/:list # полный список
curl cheat.sh/js/:list # только по яваскрипту

cheat.sh умееет автодополнения, имеет поддержку цветовых тем для вывода, может комбинировать шапаргалки/поиск и прочее… Даже, черт возьми, поддерживает интеграцию с емаксом!
Кстати, для некоторых языков программирования есть лонгрид шпаргалки вида «изучить за 15минут»

Подробнее на cheat.sh, github.com/chubin/cheat.sh или с помощью curl cheat.sh/:help

Wayland. Мыслишки арчевода

Wayland logo

Захожу на ЛОР, а там в новостях о переходе убунты на wayland (ну как обычно с убунтой — новости из будущего). И комментариев под триста штук с криками, мол, в федоре потестили, пущай теперь на убунте тестят раз свой mir с блекджеком и unity не осилили, ну и холивары всякие. Милота!

При чтении вспомнилось что в моём уютном арчике я даже не заметил как я перешел на wayland. Просто в один прекрассный день мне понадобилось рестартнуть gnome-shell. И молвит мне gnome-shell «мил человек, в сесии с вайладом низя».

Это как так? Это когда?

Дополнительные мониторы не отвалились, каких-то видимых артефактов не обнаружилось. В целом работать хуже не стало. Хотя с другой стороны и лучше не стало.

В общем я с тех пор не понимаю чем вайланд плох, ибо мне как простому пользователю гнома (а я уже пару лет как обленился настолько что стал простым пользоватем гнома) ни горячо ни холодно от того что там под копотом у DE — X или Wayland

Пресловутой сетевой прозрачностью иксов я пользовался один раз за всю жизнь — запускал gparted ибо лень было ручками на 16 дисках со страшными путями разделы создавать. И чего-то я больше не хочу такой сетевой прозрачность, этим же не возможно пользоваться если приложение не на каком-нибудь xlib. А вот xrdp пользовал почаще — раза три или четыре

wego — консольная погода, ascii-art и emoji

wego — погода в консоли

Моё чувство прекрассного взращенное на черни консольной запреметило замечатульную тулзу для просмотра погоды в консоли.

Cолнышки с облочками в ascii прям мимими, но не только лишь этим прекрасна сия погода. Она имеет несколько фронтендов в виде умолчального ascii-art-table, emoji и голово json'a (Как пример: wego -frontend emoji, ну или в конфиге ~/.wegorc) и бекендов в виде forecast.io и worldweatheronline.com, к которым к сожалению придется получить ключь api и указать в конфиге. Ну и стандартный набор для погодных приложений — вывод погодны на неделю или меньше, указание координат, наркоманские фарингейты из имерских едениц и целсии из метрической системы, ну и всё это можно указать как в конфиге так и параметрами в командной строке.

В todo на гитхабе у авторов желание иметь больше фронтендов и бекендов, при знании go можно запилить свои, опенсорс же…

wego — погода в консоли с emoji

В общем милота!

Арчеводам как обычно PKGBUILD (wego-git)

P.S. часть милоты убивает то что в самой софтине нет русского ибо текст запилен прямо во фронтенды, но она может тянуть погоду с русскими текстами. Как итог в таком случае смесь русского с английским что видно на первом скриншоте, но никто же не заставляет юзать русский?