<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Terminal on Junian Dev</title>
    <link>https://www.junian.dev/tags/terminal/</link>
    <description>Recent content in Terminal on Junian Dev</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>author@junian.dev (Junian Triajianto)</managingEditor>
    <webMaster>author@junian.dev (Junian Triajianto)</webMaster>
    <copyright>Copyright &amp;copy; 2014 - 2026 Junian.dev</copyright>
    
	    <atom:link href="https://www.junian.dev/tags/terminal/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Dahua NVR or DVR/XVR SSH Password</title>
      <link>https://www.junian.dev/tech/dahua-nvr-dvr-xvr-ssh-password/</link>
      <pubDate>Thu, 11 Dec 2025 19:00:00 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/dahua-nvr-dvr-xvr-ssh-password/</guid>
      <description>&lt;p&gt;Recently, I purchased a CCTV Kit in Indonesia. It included 4 security cameras and a DVR/XVR.&lt;/p&gt;
&lt;p&gt;It was branded as a Kris Home Security CCTV Kit. However, upon investigating, I found out that it is actually a white-labeled Dahua product.&lt;/p&gt;
&lt;figure&gt;
    &lt;img src=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQckvrts3MB7NIP_PJ4ohX0QQNHHcNCMpSE85hGT7A8VujQa2lmsvOPLyIrLhz979RdQ_UR0ld5RXFYVdc7JPeEiBvdWddLFWyFCKUy71U9YDW6LfsGaSdAtbBggkudmQs8-SKIHw0uC4i6tV1WVAUcQE2ikar7do2XCmgSlR_fU4SUEpi_EeXbZk0Xo0/s1600/dahua-kris-cctv-kit.jpg&#34; alt=&#34;Kris CCTV Kit, one of the Dahua white-labeled brands&#34;loading=&#34;lazy&#34;
    &gt;&lt;figcaption&gt;Kris CCTV Kit, one of the Dahua white-labeled brands&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;When I was exploring the web interface, I noticed that it has an SSH access feature.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Scoop Package Manager for Windows</title>
      <link>https://www.junian.dev/tech/windows-scoop-package-manager/</link>
      <pubDate>Tue, 28 Oct 2025 19:00:00 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/windows-scoop-package-manager/</guid>
      <description>&lt;p&gt;I’ve always wanted a package manager like &lt;a href=&#34;https://brew.sh/&#34;&gt;Homebrew&lt;/a&gt; for Windows.
Sure, Windows now has &lt;code&gt;winget&lt;/code&gt;, but it doesn’t feel quite like Homebrew.
&lt;code&gt;winget&lt;/code&gt; behaves more like an app installer for the &lt;strong&gt;Program Files&lt;/strong&gt; directory.
It’s not portable, and some command-line apps aren’t even available there.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Not in the mood for reading? Watch the &lt;a href=&#34;https://www.junian.dev/tech/windows-scoop-package-manager/#video&#34;&gt;video&lt;/a&gt; instead.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Then I found out about &lt;strong&gt;Scoop&lt;/strong&gt;.
In my opinion, it’s the closest thing to Homebrew for Windows.
If you’ve used &lt;code&gt;brew&lt;/code&gt; before, you’ll find Scoop very easy to pick up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Concatenate Multiple Videos Into a Single Video File with FFmpeg</title>
      <link>https://www.junian.dev/tech/ffmpeg-concat-videos/</link>
      <pubDate>Sat, 18 Oct 2025 19:00:00 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/ffmpeg-concat-videos/</guid>
      <description>&lt;p&gt;When I make tutorial videos, I usually record them in a single take, meaning a topic can be covered in one video file with some parts edited or trimmed.&lt;/p&gt;
&lt;p&gt;However, sometimes I need to record two or more clips for a single topic. After trimming and editing each one, I then concatenate them into a single video file.&lt;/p&gt;
&lt;p&gt;In this post, I’ll show you how I usually merge those video files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Fix Git Refusing to Merge Unrelated Histories Issue</title>
      <link>https://www.junian.dev/dev/git-refusing-to-merge-unrelated-histories/</link>
      <pubDate>Thu, 25 Sep 2025 03:00:21 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/dev/git-refusing-to-merge-unrelated-histories/</guid>
      <description>&lt;p&gt;When I tried to merge a &lt;code&gt;git&lt;/code&gt; branch from a different repository, I got the following error:&lt;/p&gt;

&lt;figure class=&#34;highlight&#34;&gt;
    &lt;button class=&#34;btn-clipboard chroma&#34; title=&#34;Copy to clipboard&#34;&gt;&lt;i class=&#34;fa icon-clipboard&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; class=&#34;feather feather-copy&#34;&gt;&lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;/&gt;&lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;/&gt;&lt;/svg&gt;&lt;/i&gt;&lt;span class=&#34;msg-clipboard&#34;&gt;&lt;/span&gt;&lt;/button&gt;
    &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;% git merge development-branch
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fatal: refusing to merge unrelated histories&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
    
&lt;/figure&gt;&lt;p&gt;Git is refusing to merge the branch because the histories do not share a common ancestor.&lt;/p&gt;
&lt;p&gt;The error message &lt;code&gt;fatal: refusing to merge unrelated histories&lt;/code&gt; means that the two branches have completely separate histories.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Fix &#39;gpg: decryption failed: No pinentry&#39; on macOS</title>
      <link>https://www.junian.dev/tech/macos-gpg-decryption-failed-no-pinentry/</link>
      <pubDate>Sun, 07 Sep 2025 06:53:08 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/macos-gpg-decryption-failed-no-pinentry/</guid>
      <description>&lt;p&gt;Recently, while using the &lt;code&gt;pass&lt;/code&gt; password manager command-line tool on macOS, I encountered the following error message:&lt;/p&gt;

&lt;figure class=&#34;highlight&#34;&gt;
    &lt;button class=&#34;btn-clipboard chroma&#34; title=&#34;Copy to clipboard&#34;&gt;&lt;i class=&#34;fa icon-clipboard&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; class=&#34;feather feather-copy&#34;&gt;&lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;/&gt;&lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;/&gt;&lt;/svg&gt;&lt;/i&gt;&lt;span class=&#34;msg-clipboard&#34;&gt;&lt;/span&gt;&lt;/button&gt;
    &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg: public key decryption failed: No pinentry
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg: decryption failed: No pinentry&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
    
&lt;/figure&gt;&lt;p&gt;This issue occurs because the required dependency, &lt;code&gt;pinentry&lt;/code&gt;, is missing. On macOS, you need to install &lt;code&gt;pinentry-mac&lt;/code&gt;. To fix this, run:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Speedtest CLI: Resolving HTTP Error 403 Forbidden</title>
      <link>https://www.junian.dev/tech/speedtest-http-error-403-forbidden/</link>
      <pubDate>Sat, 06 Sep 2025 13:35:21 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/speedtest-http-error-403-forbidden/</guid>
      <description>&lt;p&gt;After setting up networking on my headless Raspberry Pi, I wanted to verify that my internet connection was working properly. To do this, I used the Python tool &lt;code&gt;speedtest-cli&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can install &lt;code&gt;speedtest-cli&lt;/code&gt; by using &lt;code&gt;uv&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&#34;highlight&#34;&gt;
    &lt;button class=&#34;btn-clipboard chroma&#34; title=&#34;Copy to clipboard&#34;&gt;&lt;i class=&#34;fa icon-clipboard&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; class=&#34;feather feather-copy&#34;&gt;&lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;/&gt;&lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;/&gt;&lt;/svg&gt;&lt;/i&gt;&lt;span class=&#34;msg-clipboard&#34;&gt;&lt;/span&gt;&lt;/button&gt;
    &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv tool install speedtest-cli&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
    
&lt;/figure&gt;&lt;p&gt;Or the classic &lt;code&gt;pip&lt;/code&gt;:&lt;/p&gt;

&lt;figure class=&#34;highlight&#34;&gt;
    &lt;button class=&#34;btn-clipboard chroma&#34; title=&#34;Copy to clipboard&#34;&gt;&lt;i class=&#34;fa icon-clipboard&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; class=&#34;feather feather-copy&#34;&gt;&lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;/&gt;&lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;/&gt;&lt;/svg&gt;&lt;/i&gt;&lt;span class=&#34;msg-clipboard&#34;&gt;&lt;/span&gt;&lt;/button&gt;
    &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pip install speedtest-cli&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
    
&lt;/figure&gt;&lt;p&gt;However, when I tried to check my internet speed using the command-line tool, I encountered an HTTP Error 403:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Unzip Multiple Files with the Command Line</title>
      <link>https://www.junian.dev/tech/unzip-cli-multiple-files/</link>
      <pubDate>Tue, 08 Oct 2024 16:00:00 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/unzip-cli-multiple-files/</guid>
      <description>&lt;p&gt;Recently, I downloaded a lot of ZIP files from the internet to my Raspberry Pi.
After all the downloads finished, I listed the files and tried to unzip them all.
My first instinct was to type &lt;code&gt;unzip *.zip&lt;/code&gt;, just like other standard Unix commands (&lt;code&gt;rm&lt;/code&gt;, &lt;code&gt;cp&lt;/code&gt;, etc.).
But to my surprise, it didn’t work at all.&lt;/p&gt;
&lt;p&gt;Take a look at the following snippet.
This is an example of the output I get when I try to unzip multiple ZIP files using the &lt;strong&gt;wrong&lt;/strong&gt; command.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Install Homebrew Package Manager on macOS</title>
      <link>https://www.junian.dev/tech/macos-install-homebrew/</link>
      <pubDate>Thu, 12 Sep 2024 16:34:14 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/macos-install-homebrew/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re a macOS user and want a convenient way to manage and install software, Homebrew is the go-to package manager. It simplifies installing, updating, and removing apps and command-line tools.&lt;/p&gt;
&lt;p&gt;In this guide, I&amp;rsquo;ll walk you through the steps to install Homebrew and show you how to use it to install software.&lt;/p&gt;
&lt;h2 id=&#34;open-terminal&#34;&gt;Open Terminal&lt;/h2&gt;
&lt;p&gt;First, we need to access the Terminal, the command-line interface for macOS. Here&amp;rsquo;s how to do it:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mac Owner using PC: How to Use the &#39;open&#39; Command in Windows</title>
      <link>https://www.junian.dev/tech/windows-open-command-like-macos/</link>
      <pubDate>Mon, 29 Apr 2024 16:04:57 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/windows-open-command-like-macos/</guid>
      <description>&lt;p&gt;As a macOS user, one question that always bothers me is what is the Windows equivalent of the &lt;code&gt;open&lt;/code&gt; command used in macOS.&lt;/p&gt;
&lt;p&gt;When I&amp;rsquo;m using the macOS Terminal, I usually open a file using a default program by using the &lt;code&gt;open&lt;/code&gt; command like this:&lt;/p&gt;

&lt;figure class=&#34;highlight&#34;&gt;
    &lt;button class=&#34;btn-clipboard chroma&#34; title=&#34;Copy to clipboard&#34;&gt;&lt;i class=&#34;fa icon-clipboard&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; class=&#34;feather feather-copy&#34;&gt;&lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;/&gt;&lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;/&gt;&lt;/svg&gt;&lt;/i&gt;&lt;span class=&#34;msg-clipboard&#34;&gt;&lt;/span&gt;&lt;/button&gt;
    &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;open filename.txt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
    
&lt;/figure&gt;&lt;p&gt;How about on Windows?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fix Corrupted Zip Archive</title>
      <link>https://www.junian.dev/tech/cli-fix-corrupted-zip/</link>
      <pubDate>Thu, 02 Apr 2020 09:11:03 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/cli-fix-corrupted-zip/</guid>
      <description>&lt;p&gt;When you download a ZIP file from the internet, there is a chance that you may end up with a corrupted file.
This is not necessarily a network issue.
The uploader may not have verified the archive correctly.&lt;/p&gt;
&lt;p&gt;Here is an example output when trying to unzip a corrupted ZIP file downloaded from the internet.&lt;/p&gt;

&lt;figure class=&#34;highlight&#34;&gt;
    &lt;button class=&#34;btn-clipboard chroma&#34; title=&#34;Copy to clipboard&#34;&gt;&lt;i class=&#34;fa icon-clipboard&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; class=&#34;feather feather-copy&#34;&gt;&lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;/&gt;&lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;/&gt;&lt;/svg&gt;&lt;/i&gt;&lt;span class=&#34;msg-clipboard&#34;&gt;&lt;/span&gt;&lt;/button&gt;
    &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ unzip archive.zip
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Archive:  archive.zip
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;warning &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;archive.zip&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;:  &lt;span class=&#34;m&#34;&gt;1520265671&lt;/span&gt; extra bytes at beginning or within zipfile
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;attempting to process anyway&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;error &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;archive.zip&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;:  start of central directory not found&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  zipfile corrupt.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;please check that you have transferred or created the zipfile in the
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  appropriate BINARY mode and that you have compiled UnZip properly&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
    
&lt;/figure&gt;&lt;p&gt;Don’t worry about it.
The &lt;code&gt;zip&lt;/code&gt; command can be used to repair the archive.
It will attempt to recover as much data as possible and write it to a new ZIP file.
The syntax looks like this:&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
