<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Cli - Tag - Vindrin</title><link>https://vindrin.top/tags/cli/</link><description>Cli - Tag - Vindrin</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>vindrin@outlook.com (Vindrin)</managingEditor><webMaster>vindrin@outlook.com (Vindrin)</webMaster><lastBuildDate>Thu, 05 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vindrin.top/tags/cli/" rel="self" type="application/rss+xml"/><item><title>Markdown Note Sync CLI</title><link>https://vindrin.top/project/markdown-note-sync/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/project/markdown-note-sync/</guid><description><![CDATA[<h1 id="markdown-note-sync-cli">Markdown Note Sync CLI</h1>
<p>Keep your notes in Markdown. Sync them anywhere. No proprietary formats.</p>
<h2 id="problem">Problem</h2>
<p>I take notes in Markdown across multiple machines. I wanted something simpler than Obsidian Sync — just a CLI that diffs and pushes changes.</p>
<h2 id="commands">Commands</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Initialize sync config</span>
</span></span><span class="line"><span class="cl">mnotes init --remote user@server:/notes
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Sync (two-way)</span>
</span></span><span class="line"><span class="cl">mnotes sync
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># Show diff before syncing</span>
</span></span><span class="line"><span class="cl">mnotes diff</span></span></code></pre></div></div>
<h2 id="how-it-works">How it works</h2>
<ol>
<li>Hash every local <code>.md</code> file</li>
<li>Compare with remote hash index</li>
<li>Push new/changed files, pull remote-only files</li>
<li>Conflict = keep both with timestamp suffix</li>
</ol>
<h2 id="dependencies">Dependencies</h2>
<ul>
<li><code>paramiko</code> — SSH</li>
<li><code>watchdog</code> — optional auto-sync on file change</li>
</ul>
<h2 id="status">Status</h2>
<p><code>v0.2.1</code> — stable for two machines. Three-way sync is future work.</p>]]></description></item><item><title>Linux Command Essentials</title><link>https://vindrin.top/docs/linux-essentials/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><author>vindrin@outlook.com (Vindrin)</author><guid>https://vindrin.top/docs/linux-essentials/</guid><description><![CDATA[<h1 id="linux-command-essentials">Linux Command Essentials</h1>
<p>Survival guide for the command line.</p>
<h2 id="navigation">Navigation</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">pwd</span>                     <span class="c1"># current directory</span>
</span></span><span class="line"><span class="cl">ls -la                  <span class="c1"># list with details + hidden files</span>
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /path/to/dir
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> ~                    <span class="c1"># home</span>
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> -                    <span class="c1"># previous directory</span></span></span></code></pre></div></div>
<h2 id="file-operations">File operations</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cp file1 file2          <span class="c1"># copy</span>
</span></span><span class="line"><span class="cl">cp -r dir1 dir2         <span class="c1"># copy directory</span>
</span></span><span class="line"><span class="cl">mv file1 file2          <span class="c1"># move / rename</span>
</span></span><span class="line"><span class="cl">rm file                 <span class="c1"># delete file</span>
</span></span><span class="line"><span class="cl">rm -rf dir              <span class="c1"># delete directory (careful!)</span>
</span></span><span class="line"><span class="cl">mkdir -p a/b/c          <span class="c1"># create nested directories</span></span></span></code></pre></div></div>
<h2 id="text--search">Text &amp; search</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat file.txt            <span class="c1"># print file</span>
</span></span><span class="line"><span class="cl">less file.txt           <span class="c1"># paged view</span>
</span></span><span class="line"><span class="cl">grep <span class="s2">&#34;pattern&#34;</span> file     <span class="c1"># search in file</span>
</span></span><span class="line"><span class="cl">grep -r <span class="s2">&#34;pattern&#34;</span> .     <span class="c1"># recursive search</span>
</span></span><span class="line"><span class="cl">find . -name <span class="s2">&#34;*.py&#34;</span>     <span class="c1"># find files by name</span></span></span></code></pre></div></div>
<h2 id="process-management">Process management</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">ps aux                  <span class="c1"># list processes</span>
</span></span><span class="line"><span class="cl">top / htop              <span class="c1"># interactive monitor</span>
</span></span><span class="line"><span class="cl"><span class="nb">kill</span> &lt;pid&gt;              <span class="c1"># terminate process</span>
</span></span><span class="line"><span class="cl"><span class="nb">kill</span> -9 &lt;pid&gt;           <span class="c1"># force kill</span></span></span></code></pre></div></div>
<h2 id="permissions">Permissions</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chmod <span class="m">755</span> file          <span class="c1"># rwxr-xr-x</span>
</span></span><span class="line"><span class="cl">chmod +x script.sh      <span class="c1"># make executable</span>
</span></span><span class="line"><span class="cl">chown user:group file   <span class="c1"># change owner</span></span></span></code></pre></div></div>
<h2 id="networking">Networking</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">curl https://url        <span class="c1"># HTTP request</span>
</span></span><span class="line"><span class="cl">wget https://url        <span class="c1"># download file</span>
</span></span><span class="line"><span class="cl">ss -tlnp                <span class="c1"># open ports</span></span></span></code></pre></div></div>]]></description></item></channel></rss>