<?xml version="1.0" encoding="utf-8"?>
    <rss version="2.0">
        <channel>
            <title>muhas — Заметки аскетичного гика</title>
            <link>https://muhas.ru/</link>
            <description>О linux, о используемых или просто понравившихся инструментах, вобщем обо всем что окружает мою аскетичную компьютерную жизнь и показалось достойным упоминания или заметки «на память»</description>
            <language>ru</language>
            <image>
                <url>https://muhas.ru/md.tpl/img/logo.top.png</url>
                <title>О linux, о используемых или просто понравившихся инструментах, вобщем обо всем что окружает мою аскетичную компьютерную жизнь и показалось достойным упоминания или заметки «на память»</title>
                <link>https://muhas.ru/</link>
            </image>

                        <item>
                <pubDate>Sat, 26 Sep 2020 17:02:00 +0300</pubDate>
                <title><![CDATA[ dscp — dsh like мордочка для scp/ssh]]></title>
                <description>
                    <![CDATA[ 
<h3>tl;dr</h3>
<p>Я не осилил <a href="https://www.netfort.gr.jp/~dancer/software/dsh.html">dsh</a> на арме, вот что-то похожее на шеле: <a href="https://github.com/muhas/dscp">dscp</a></p>
<p>Умеет только последовательно, только ssh, не умеет в параметры <i>ssh</i>, зато может копировать файл на несколько серверов</p>

<h3>Лирическое отступление</h3>
<p>Когда-то давно я начал пользоваться <i>dsh</i> (если кто не знает то это такая фигня которая запускает несколкьо команд <i>ssh/rsh</i> последовательно или паралелно), но в какой-то момент понадобилося что-то похожее и на мобиле, а потом и на малинке. И там и там <i>dsh</i> отсутсвовал 😞 </p>
<p>Конечно есть куча всяких альтернатив и разнообразных distributed/paralell shell вплоть до одновременного запуска в регионах какого-нибудь tmux'а</p>
<p>Но больно уж я привык за долгие годы к тому как я использую dsh (тупо последовательный запуск ssh и иногда остановка по <kbd>^</kbd>+<kbd>c</kbd>), да и конфигов групп набралось изрядно. Cделать аналог где есть то что мне надо не так уж и сложно, ведь на мобиле я и так иногда for для нескольких серваков запускаю. В итоге родился shell-скрипт враппер который делает for по серверам из групп <i>dsh</i> и запускает <i>ssh server command</i>. Постепенно скрпит заменил dsh и на компе, а спустя какое-то время мне задолбало каждый раз писать for для scp на несколько серверов и в скрипт было добавлено такое копирование</p>
<p>Через какое-то время запуск этого скрипта попал в один из рабочих мануалов и я был несколько удивлен вопросом «где брать dscp?)», я-то уже считал что dscp чуть ли не по умолчанию вместе с openssh идет, пришлось дописать usage попутно объясняя как оно работает. Ну а спустя почти пол года (сегодня) решил его выложить публично, несмотря на известные мне проблемы</p>
<p>Сам я использую <i>dscp</i> в <i>termux</i> на телефоне и в арче на малинке, глядишь когда-нить понадобиться паралельный запуск дык и добавлю в скрипт чтение конфига <i>dsh</i>, ну или &amp; в строке запуска ssh 😆</p>

<h3>Пример работы</h3>
<pre><code># группы 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
</code></pre>

<h3>Установка</h3>
<pre><code>DSCP='/usr/local/bin/dscp' && curl -o $DSCP https://raw.githubusercontent.com/muhas/dscp/master/dscp && chmod +x $DSCP && unset DSCP</code></pre>
<p>Для арчеводов есть опакеченое <a href="https://aur.archlinux.org/packages/dscp/">тынц</a></p>

<h3>Мысли вслух</h3>
<p>Что-то много текста о скрипте в несколько десяток строк. Ридми и тот вышел длиннее чем сам скрипт 🤪</p>
<p>Но вдруг кому-то кроме меня такой простой аналог dsh нужен, а самому писать лень</p> ]]>
                </description>
                <link>https://muhas.ru/?p=216</link>
                <guid isPermaLink="true">https://muhas.ru/?p=216</guid>
                                                            <category>linux</category>
                                            <category>dsh</category>
                                            <category>ssh</category>
                                            <category>scp</category>
                                            <category>shell</category>
                                                </item>
                        <item>
                <pubDate>Wed, 06 Jun 2018 00:00:00 +0300</pubDate>
                <title><![CDATA[ fb2 в консоли]]></title>
                <description>
                    <![CDATA[ 
<img src="https://muhas.ru/files/posts/215/fb2-shema.png" alt="fb2 to txt | fb2 в консоли"  align="right" loading="lazy">
<p>Навеело тут беседой на <a href="https://www.linux.org.ru/forum/talks/14257642">ЛОРе</a> и результатом этой беседы в виде башскрипта от топикстартера для чтения <b>fb2</b> в консоли.</p>
<p>Нужность оригинального скрипта с которого начался топик при наличии <b>xsltproc FB2_2_txt.xsl</b> я обсуждать не буду, а вот от bash скрита родившегося у ТС в результате немного бомбит</p>
<ul><li>скрипт используя <b>zcat</b> зачем-то проверяет архив ли это (у <b>zcat</b> есть опция <b>-f</b>, жаль у <b>zless</b> такого нет)</li><li>скрипт игнорирует кодировку файлов, хотя во времена когда почти везде utf8 сие не грех</li><li>оформлено всё цивильненько, аж с маном, лицензией, ченджлогом и файлом версии, проверками всякими, хелапами… хотя суть всего скрипта сводиться к <b>sed</b>'у</li></ul>
<p>При таком хорошем оформлении сам скрипт мне не понравился, ну нафига столько городить ради однострочника? В итоге у меня появилась такая функция</p>
<pre><code class="sh"># сама фунция
fb2read() {
  zcat -f $1| sed -r 's/&lt;body&gt;/\n&amp;\n/;s/&lt;\/body&gt;/\n&amp;\n/;1,/&lt;body&gt;/d;/&lt;\/body&gt;/,$d;s/&lt;[^&gt;]+&gt;//g;/^[[:space:]]*$/d'|enca -c 2&gt;/dev/null
}
# использовать как
fb2read file.fb2[.zip|.gz] | [most|less|more|что там ещё]
# ну или суфиксным алиасом как-нить пристроить
</code></pre>
<p>Помимо корутилсов для конвертации кодировки необходимо ещё <b>enca</b> ну и какой-нибудь <b>most/less</b></p>

<p>Но вообще лучше <a href="https://muhas.ru/?p=52">fbless</a> для консоли пока ещё ничего не придумали</p>
 ]]>
                </description>
                <link>https://muhas.ru/?p=215</link>
                <guid isPermaLink="true">https://muhas.ru/?p=215</guid>
                                                            <category>linux</category>
                                            <category>fictionbook</category>
                                            <category>fb2</category>
                                            <category>shell</category>
                                                </item>
                        <item>
                <pubDate>Sun, 20 Aug 2017 00:00:00 +0300</pubDate>
                <title><![CDATA[ cheat.sh — Ъ шпаргалки]]></title>
                <description>
                    <![CDATA[ 
<img src="https://muhas.ru/files/posts/214/cheat.sh.jpg" alt="cheat.sh — консольные и браузерные шпаргалки" loading="lazy">
<p><b>cheat.sh</b> — огромная коллекция шпаргалок для консольных комманд и языков программирования.</p>
<p>Казалось бы краткое описание звучит не очень, но на деле всё это имеет удобную веб морду с возможностью просмотра и поиска шпаргалок через <b>curl</b>. <br>Только взгляните на это</p>
<pre><code class="bash"># вывод шпаргалки по ls
curl cheat.sh/ls
# поиск в шпаргалках по ключевому слову
curl cheat.sh/~keyword
# ну и немного хелловорда
curl cheat.sh/go/hello
# список шпаргалок
curl cheat.sh/:list # полный список
curl cheat.sh/js/:list # только по яваскрипту</code></pre>
<p><b>cheat.sh</b> умееет автодополнения, имеет поддержку цветовых тем для вывода, может комбинировать шапаргалки/поиск и прочее… Даже, черт возьми, поддерживает интеграцию с емаксом!<br>Кстати, для некоторых языков программирования есть лонгрид шпаргалки вида «изучить за 15минут»</p>
<p>Подробнее на <a href="http://cheat.sh">cheat.sh</a>, <a href="https://github.com/chubin/cheat.sh">github.com/chubin/cheat.sh</a> или с помощью <code>curl cheat.sh/:help</code></p>
<p></p>
 ]]>
                </description>
                <link>https://muhas.ru/?p=214</link>
                <guid isPermaLink="true">https://muhas.ru/?p=214</guid>
                                                            <category>shell</category>
                                            <category>tips</category>
                                            <category>linux</category>
                                                </item>
                        <item>
                <pubDate>Wed, 19 Apr 2017 00:00:00 +0300</pubDate>
                <title><![CDATA[ Wayland. Мыслишки арчевода]]></title>
                <description>
                    <![CDATA[ 
<img src="https://muhas.ru/files/posts/213/wayland.png" alt="Wayland logo" align="right" loading="lazy">
<p>Захожу на ЛОР, а там в новостях о переходе убунты на wayland (ну как обычно с убунтой — новости из будущего). И комментариев под триста штук с криками, мол, в федоре потестили, пущай теперь на убунте тестят раз свой mir с блекджеком и unity не осилили, ну и холивары всякие. Милота!</p>
<p>При чтении вспомнилось что в моём уютном арчике я даже не заметил как я перешел на wayland. Просто в один прекрассный день мне понадобилось рестартнуть gnome-shell. И молвит мне gnome-shell «мил человек, в сесии с вайладом низя». </p>
<p>Это как так? Это когда?</p>
<p>Дополнительные мониторы не отвалились, каких-то видимых артефактов не обнаружилось. В целом работать хуже не стало. Хотя с другой стороны и лучше не стало.</p>
<p>В общем я с тех пор не понимаю чем вайланд плох, ибо мне как простому пользователю гнома (а я уже пару лет как обленился настолько что стал простым пользоватем гнома) ни горячо ни холодно от того что там под копотом у DE — X или Wayland</p>
<p>Пресловутой сетевой прозрачностью иксов я пользовался один раз за всю жизнь — запускал gparted ибо лень было ручками на 16 дисках со страшными путями разделы создавать. И чего-то я больше не хочу такой сетевой прозрачность, этим же не возможно пользоваться если приложение не на каком-нибудь xlib. А вот xrdp пользовал почаще — раза три или четыре</p>
 ]]>
                </description>
                <link>https://muhas.ru/?p=213</link>
                <guid isPermaLink="true">https://muhas.ru/?p=213</guid>
                                                            <category>linux</category>
                                            <category>wayland</category>
                                            <category>gnome</category>
                                                </item>
                        <item>
                <pubDate>Fri, 26 Aug 2016 00:00:00 +0300</pubDate>
                <title><![CDATA[ wego — консольная погода, ascii-art и emoji]]></title>
                <description>
                    <![CDATA[ 
<img src="https://muhas.ru/files/posts/212/wego.png" alt="wego — погода в консоли" loading="lazy">
<p>Моё чувство прекрассного взращенное на черни консольной запреметило замечатульную тулзу для просмотра погоды в консоли.</p>
<p>Cолнышки с облочками в ascii прям мимими, но не только лишь этим прекрасна сия погода. Она имеет несколько фронтендов в виде умолчального ascii-art-table, emoji и голово json'a (Как пример: <tt>wego -frontend emoji</tt>, ну или в конфиге <tt>~/.wegorc</tt>) и бекендов в виде <a href="http://forecast.io">forecast.io</a> и <a href="http://worldweatheronline.com">worldweatheronline.com</a>, к которым к сожалению придется получить ключь api и указать в конфиге. Ну и стандартный набор для погодных приложений — вывод погодны на неделю или меньше, указание координат, наркоманские фарингейты из имерских едениц и целсии из метрической системы, ну и всё это можно указать как в конфиге так и параметрами в командной строке.</p>
<p>В todo на <a href="https://github.com/schachmat/wego">гитхабе</a> у авторов желание иметь больше фронтендов и бекендов, при знании go можно запилить свои, опенсорс же…</p>
<img src="https://muhas.ru/files/posts/212/wego.emoji.png" alt="wego — погода в консоли с emoji" loading="lazy">
<p>В общем милота!</p>
<p>Арчеводам как обычно <a href="https://aur.archlinux.org/packages/wego-git/">PKGBUILD</a> (wego-git)</p>

<p><b>P.S.</b> часть милоты убивает то что в самой софтине нет русского ибо текст запилен прямо во фронтенды, но она может тянуть погоду с русскими текстами. Как итог в таком случае смесь русского с английским что видно на первом скриншоте, но никто же не заставляет юзать русский?</p>
 ]]>
                </description>
                <link>https://muhas.ru/?p=212</link>
                <guid isPermaLink="true">https://muhas.ru/?p=212</guid>
                                                            <category>wego</category>
                                            <category>погода</category>
                                            <category>shell</category>
                                            <category>linux</category>
                                                </item>
                    </channel>
    </rss>
