<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bash on JOURNAL.ROBBI.MY</title><link>https://journal.robbi.my/tags/bash/</link><description>Recent content in Bash on JOURNAL.ROBBI.MY</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 02 Jan 2023 11:04:52 +0800</lastBuildDate><atom:link href="https://journal.robbi.my/tags/bash/index.xml" rel="self" type="application/rss+xml"/><item><title>Ubuntu Chromium DEB file are actually snap wrapper</title><link>https://journal.robbi.my/posts/210730122225/</link><pubDate>Fri, 30 Jul 2021 12:22:25 +0800</pubDate><guid>https://journal.robbi.my/posts/210730122225/</guid><description>&lt;p&gt;&lt;img src="https://journal.robbi.my/posts/210730122225/sIoDOKw.png" alt="" title="malicious files, it actually using Chromium snap package"
 class="mx-auto block cursor-zoom-in"
 data-zoomable
 loading="lazy" /&gt;
&lt;/p&gt;
&lt;p&gt;The screenshot taken is the latest &lt;a href="https://bazaar.launchpad.net/~chromium-team/chromium-browser/focal-stable/view/head:/chromium-browser"&gt;rev:head&lt;/a&gt; (currently when the post published) of chromium-browser/focal package files repository. I really surprise about this kind of packaging. Oh my God, how comes this is allowable?&lt;/p&gt;
&lt;p&gt;Seems it start putting and using wrapper to use snap on &lt;a href="https://bazaar.launchpad.net/~chromium-team/chromium-browser/focal-stable/files/1505?remember=1550"&gt;rev:1505&lt;/a&gt;, correct me if I wrong because I don&amp;rsquo;t use &lt;code&gt;bazaar&lt;/code&gt; source code management so much compare to &lt;code&gt;cvs&lt;/code&gt;, &lt;code&gt;mercurial&lt;/code&gt; and &lt;code&gt;git&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Control Your Snap Package</title><link>https://journal.robbi.my/posts/210730085657/</link><pubDate>Fri, 30 Jul 2021 08:56:57 +0800</pubDate><guid>https://journal.robbi.my/posts/210730085657/</guid><description>&lt;p&gt;Press &lt;strong&gt;&lt;a href="#how-to-control-and-configure-your-snap-stuff"&gt;here&lt;/a&gt;&lt;/strong&gt; to skip the rant&lt;/p&gt;
&lt;p&gt;I checking my email today and saw &lt;em&gt;Bret Busby&lt;/em&gt; posted on Ubuntu-users mailing-list asking about &lt;a href="https://lists.ubuntu.com/archives/ubuntu-users/2021-July/304651.html"&gt;&amp;ldquo;How do we disable the snap stuff&amp;rdquo;&lt;/a&gt; and likely it trigger some Ubuntu kipas-susah-mati replies when he typed:&lt;/p&gt;


 &lt;blockquote&gt;
 &lt;p&gt;As this snap stuff &lt;mark class="bg-warning/30 px-1 rounded"&gt;can not be trusted&lt;/mark&gt;
 to not make &lt;mark class="bg-warning/30 px-1 rounded"&gt;unauthorised changes&lt;/mark&gt;

, and, cannot be trusted to not &lt;mark class="bg-warning/30 px-1 rounded"&gt;sabotage the system operation&lt;/mark&gt;

(this unauthorised snap interference probably explains the error
messages that I have been getting, about incomplete and partial
upgrades and resultant systems instability across my systems), how do
we disable this &lt;mark class="bg-warning/30 px-1 rounded"&gt;malicious snap&lt;/mark&gt;
 thing?&lt;/p&gt;</description></item><item><title>Fedora - dnf history with fedora-repos-archive</title><link>https://journal.robbi.my/posts/210101055200/</link><pubDate>Fri, 01 Jan 2021 05:52:00 +0000</pubDate><guid>https://journal.robbi.my/posts/210101055200/</guid><description>&lt;p&gt;Fedora use &lt;code&gt;dnf&lt;/code&gt; as package manager and &lt;code&gt;dnf&lt;/code&gt;have option to see transaction history and undo/rollback the transaction.&lt;/p&gt;
&lt;p&gt;For example I updated &lt;code&gt;icecat&lt;/code&gt; web browser via &lt;code&gt;dnf update icecat&lt;/code&gt; to newer version that just released and then after installed the newer package, I can check and see my last transaction history :&lt;/p&gt;
&lt;div class="code-block"&gt;
 &lt;div class="code-header font-mono"&gt;
 &lt;span class="code-lang"&gt;bash&lt;/span&gt;
 &lt;div class="code-window-controls"&gt;
 &lt;button class="code-copy" onclick="copyCode(this)" title="Copy to clipboard"&gt;📋 Copy&lt;/button&gt;
 &lt;span class="ctrl-min"&gt;&lt;/span&gt;
 &lt;span class="ctrl-max"&gt;&lt;/span&gt;
 &lt;span class="ctrl-close"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="code-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ dnf &lt;span style="color:#8be9fd;font-style:italic"&gt;history&lt;/span&gt; info last
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Transaction ID : &lt;span style="color:#bd93f9"&gt;15&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Begin &lt;span style="color:#8be9fd;font-style:italic"&gt;time&lt;/span&gt; : Thu &lt;span style="color:#bd93f9"&gt;31&lt;/span&gt; Dec &lt;span style="color:#bd93f9"&gt;2020&lt;/span&gt; 09:31:29 AM +08
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Begin rpmdb : 1448:392d27370be7608526fcef0475d4bee78ebffc22
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;End &lt;span style="color:#8be9fd;font-style:italic"&gt;time&lt;/span&gt; : Thu &lt;span style="color:#bd93f9"&gt;31&lt;/span&gt; Dec &lt;span style="color:#bd93f9"&gt;2020&lt;/span&gt; 09:31:47 AM +08 &lt;span style="color:#ff79c6"&gt;(&lt;/span&gt;&lt;span style="color:#bd93f9"&gt;18&lt;/span&gt; seconds&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;End rpmdb : 1448:46959b33ef3c9604fe74ec6a98b5d13771f73f3b
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User : robbi &amp;lt;robbi&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Return-Code : Success
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Releasever : &lt;span style="color:#bd93f9"&gt;33&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Command Line : update icecat
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Comment :
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Packages Altered:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Upgrade icecat-78.6.0-2.rh1.fc33.x86_64 @updates
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Upgraded icecat-78.5.0-2.rh2.fc33.x86_64 @@System&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;As we can see, I just updated my &lt;code&gt;icecat&lt;/code&gt; web browser from &lt;em&gt;78.5.0-2.rh2.fc33&lt;/em&gt; to &lt;em&gt;78.6.0-2.rh1.fc33&lt;/em&gt; via &lt;code&gt;dnf&lt;/code&gt; at 31 Dec 2020 09:31:29 AM.&lt;/p&gt;</description></item><item><title>Setup SSH login without password (windows)</title><link>https://journal.robbi.my/posts/201210071100/</link><pubDate>Thu, 10 Dec 2020 19:11:00 +0000</pubDate><guid>https://journal.robbi.my/posts/201210071100/</guid><description>&lt;div class="code-block"&gt;
 &lt;div class="code-header font-mono"&gt;
 &lt;span class="code-lang"&gt;bash&lt;/span&gt;
 &lt;div class="code-window-controls"&gt;
 &lt;button class="code-copy" onclick="copyCode(this)" title="Copy to clipboard"&gt;📋 Copy&lt;/button&gt;
 &lt;span class="ctrl-min"&gt;&lt;/span&gt;
 &lt;span class="ctrl-max"&gt;&lt;/span&gt;
 &lt;span class="ctrl-close"&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="code-content"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# Currently on Windows with MingGW64 terminal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ uname -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;MINGW64_NT-10.0-18363 AYAM-ITEK-KAMBING 3.1.6-340.x86_64 2020-07-09 14:33 UTC x86_64 Msys
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# we must make sure the permissions to files and folders are correct&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ chmod &lt;span style="color:#bd93f9"&gt;600&lt;/span&gt; ~/.ssh/authorized_keys 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ chmod &lt;span style="color:#bd93f9"&gt;700&lt;/span&gt; ~/.ssh/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# copy the public key contents from LOCAL MACHINE to REMOTE MACHINE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ssh-copy-id -i ~/.ssh/id_rsa.pub robbi@172.217.24.174 -p2222
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/ssh-copy-id: INFO: Source of key&lt;span style="color:#ff79c6"&gt;(&lt;/span&gt;s&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt; to be installed: &lt;span style="color:#f1fa8c"&gt;&amp;#34;~/.ssh/id_rsa.pub&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key&lt;span style="color:#ff79c6"&gt;(&lt;/span&gt;s&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt;, to filter out any that are already installed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/ssh-copy-id: INFO: &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt; key&lt;span style="color:#ff79c6"&gt;(&lt;/span&gt;s&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt; remain to be installed -- &lt;span style="color:#ff79c6"&gt;if&lt;/span&gt; you are prompted now it is to install the new keys
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Number of key&lt;span style="color:#ff79c6"&gt;(&lt;/span&gt;s&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt; added: &lt;span style="color:#bd93f9"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Now try logging into the machine, with: &lt;span style="color:#f1fa8c"&gt;&amp;#34;ssh -p &amp;#39;2222&amp;#39; &amp;#39;robbi@172.217.24.174&amp;#39;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;and check to make sure that only the key&lt;span style="color:#ff79c6"&gt;(&lt;/span&gt;s&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt; you wanted were added.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6272a4"&gt;# try to ssh into remote machine&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ ssh robbi@172.217.24.174 -p &lt;span style="color:#bd93f9"&gt;2222&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Last login: Fri Dec &lt;span style="color:#bd93f9"&gt;11&lt;/span&gt; 03:02:27 &lt;span style="color:#bd93f9"&gt;2020&lt;/span&gt; from 10.0.2.2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;[&lt;/span&gt;robbi@r0x ~&lt;span style="color:#ff79c6"&gt;]&lt;/span&gt;$ uname -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Linux r0x 5.9.11-200.fc33.x86_64 &lt;span style="color:#6272a4"&gt;#1 SMP Tue Nov 24 18:18:01 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff79c6"&gt;[&lt;/span&gt;robbi@r0x ~&lt;span style="color:#ff79c6"&gt;]&lt;/span&gt;$ cat /etc/fedora-release
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Fedora release &lt;span style="color:#bd93f9"&gt;33&lt;/span&gt; &lt;span style="color:#ff79c6"&gt;(&lt;/span&gt;Thirty Three&lt;span style="color:#ff79c6"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Sending JSON data file using CURL to API endpoint</title><link>https://journal.robbi.my/posts/201130102300/</link><pubDate>Mon, 30 Nov 2020 10:23:00 +0000</pubDate><guid>https://journal.robbi.my/posts/201130102300/</guid><description>&lt;p&gt;I developed warehouse system and use restful as communication method between our software and client software. We let end point of our system to talk each other with API designed.&lt;/p&gt;
&lt;p&gt;For simple and small test using Postman or SOAP-UI is enough for me but to when to test this system with massive data via API is quite headache, plus the mock features on Postman limited and not &amp;ldquo;mocking&amp;rdquo; enough as I want.&lt;/p&gt;</description></item><item><title>Posix - Speed up "find" + "exec" command (recursive)</title><link>https://journal.robbi.my/posts/201108111900/</link><pubDate>Sun, 08 Nov 2020 11:19:00 +0000</pubDate><guid>https://journal.robbi.my/posts/201108111900/</guid><description>&lt;p&gt;I learn some trick today on how to speed up &lt;code&gt;find&lt;/code&gt;, &lt;code&gt;exec&lt;/code&gt; command. Let check this out:&lt;/p&gt;
&lt;div class="code-block my-6"&gt;
 &lt;div class="code-header font-mono"&gt;
 &lt;span class="code-lang"&gt;
 &lt;svg class="inline size-[1em] me-1 align-text-bottom" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"&gt;&lt;path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/&gt;&lt;/svg&gt;
 gist · RobbiNespu
 &lt;/span&gt;
 &lt;a href="https://gist.github.com/RobbiNespu/aa81b691956d4283912e65762a69e094" target="_blank" rel="noopener" class="code-copy"&gt;View on GitHub ↗&lt;/a&gt;
 &lt;/div&gt;
 &lt;div class="code-content"&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# let see how many files we have
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ find . -type f | wc -l
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;36367
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# lets check every file status
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ time find . -type f -exec stat {} \; &amp;gt; /dev/null
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;real 0m40.107s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;user 0m14.381s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sys 0m26.410s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# lets check every file status
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ time find . -type f -exec stat {} + &amp;gt; /dev/null
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;real 0m1.281s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;user 0m0.626s
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sys 0m0.656s&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
 &lt;/div&gt;
&lt;p&gt;Wow that’s quite a huge difference! Impressive! All we did was swap the &lt;code&gt;\;&lt;/code&gt; for a &lt;code&gt;+&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Setup python 3.6 enviroment with virtualenv</title><link>https://journal.robbi.my/posts/190723090000/</link><pubDate>Tue, 23 Jul 2019 09:00:00 +0800</pubDate><guid>https://journal.robbi.my/posts/190723090000/</guid><description>&lt;p&gt;My wife ask me to convert few of PDF files to Excell spreadsheet. I did same thing last year by creating some small scripting program in python to do the conversion, but I don&amp;rsquo;t know where I put my code right now. Maybe lost during formating my laptop last year..haha &amp;#x1f61c;&lt;/p&gt;
&lt;p&gt;I am 懒 right now (guess what I wrote in hànzì) and I don&amp;rsquo;t remember how I did last time. Hahaha.. With my Google-fu skill, I found out DfTables offer free API for converting document to another format. Nice! &amp;#x1f62c;&lt;/p&gt;</description></item></channel></rss>