<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Arapi Tech Blog]]></title><description><![CDATA[Network, DevOps, Programming]]></description><link>https://blog.arapitech.com/</link><image><url>https://blog.arapitech.com/favicon.png</url><title>Arapi Tech Blog</title><link>https://blog.arapitech.com/</link></image><generator>Ghost 5.86</generator><lastBuildDate>Fri, 06 Feb 2026 17:22:32 GMT</lastBuildDate><atom:link href="https://blog.arapitech.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[NAT Static Route Redistribution into OSPF]]></title><description><![CDATA[<h2 id="via-loopback-ip">Via Loopback IP</h2><p></p><h3 id="network-diagram">Network Diagram</h3><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/NAT-Static-Route-Redistribution-into-OSPF-Loopback-Diagram.drawio.svg" class="kg-image" alt loading="lazy" width="453" height="161"></figure><h3 id="configuration-flowchart">Configuration Flowchart</h3><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/NAT-Static-Route-Redistribution-into-OSPF-Loopback-Flowchart.drawio.svg" class="kg-image" alt loading="lazy" width="542" height="579"></figure><h2 id="via-null-route">Via Null Route</h2><h3 id="network-diagram-1">Network Diagram</h3><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/NAT-Static-Route-Redistribution-into-OSPF-Null-Route-Diagram.drawio.svg" class="kg-image" alt loading="lazy" width="453" height="161"></figure><h3 id="configuration-flowhcart">Configuration Flowhcart</h3><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/NAT-Static-Route-Redistribution-into-OSPF-Null-Route-Flowchart.drawio-1.svg" class="kg-image" alt loading="lazy" width="542" height="501"></figure>]]></description><link>https://blog.arapitech.com/nat-static-route-redistribution-into-ospf/</link><guid isPermaLink="false">66f6488837848c20c33dc772</guid><category><![CDATA[Networking]]></category><category><![CDATA[NAT]]></category><category><![CDATA[OSPF]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Fri, 27 Sep 2024 06:00:03 GMT</pubDate><content:encoded><![CDATA[<h2 id="via-loopback-ip">Via Loopback IP</h2><p></p><h3 id="network-diagram">Network Diagram</h3><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/NAT-Static-Route-Redistribution-into-OSPF-Loopback-Diagram.drawio.svg" class="kg-image" alt loading="lazy" width="453" height="161"></figure><h3 id="configuration-flowchart">Configuration Flowchart</h3><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/NAT-Static-Route-Redistribution-into-OSPF-Loopback-Flowchart.drawio.svg" class="kg-image" alt loading="lazy" width="542" height="579"></figure><h2 id="via-null-route">Via Null Route</h2><h3 id="network-diagram-1">Network Diagram</h3><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/NAT-Static-Route-Redistribution-into-OSPF-Null-Route-Diagram.drawio.svg" class="kg-image" alt loading="lazy" width="453" height="161"></figure><h3 id="configuration-flowhcart">Configuration Flowhcart</h3><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/NAT-Static-Route-Redistribution-into-OSPF-Null-Route-Flowchart.drawio-1.svg" class="kg-image" alt loading="lazy" width="542" height="501"></figure>]]></content:encoded></item><item><title><![CDATA[SVI - Switched Virtual Interface]]></title><description><![CDATA[An SVI (Switched Virtual Interface) is a logical interface on a switch used to enable Layer 3 communication within a VLAN.]]></description><link>https://blog.arapitech.com/svi-switched-virtual-interface/</link><guid isPermaLink="false">66f4ee7a37848c20c33dc70c</guid><category><![CDATA[Networking]]></category><category><![CDATA[Routing]]></category><category><![CDATA[Switching]]></category><category><![CDATA[VLAN]]></category><category><![CDATA[SVI]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Thu, 26 Sep 2024 05:23:34 GMT</pubDate><content:encoded><![CDATA[<p></p><h2 id="network-diagram">Network Diagram</h2><h2 id></h2><figure class="kg-card kg-image-card kg-width-wide"><img src="https://blog.arapitech.com/content/images/2024/09/SVI---Switched-Virtual-Interface.drawio-2.svg" class="kg-image" alt loading="lazy" width="311" height="266"></figure><h2 id="overview">Overview</h2><p>A <strong>Switched Virtual Interface (SVI)</strong> is a logical (virtual) interface in a Layer-3 switch that enables routing capabilities for a specific VLAN, allowing the switch to perform routing between different VLANs.</p><h2 id="key-points">Key Points:</h2><ol><li><strong>Inter-VLAN Routing</strong>: SVIs act as a virtual Layer-3 interface for each VLAN, allowing for routing between VLANs within the same switch. Instead of using an external router (router-on-a-stick configuration), SVIs can route traffic directly inside the switch.</li><li><strong>Single VLAN Association</strong>: Each SVI is linked to a specific VLAN. You can create multiple SVIs on a Layer-3 switch, one for each VLAN.</li><li><strong>IP Address Assignment</strong>: Each SVI is assigned an IP address, which is used as the default gateway for devices within that VLAN. This IP address must not overlap with any other interfaces on the switch.</li><li><strong>SVIs on Layer-3 Switches</strong>: SVIs are mainly found on Layer-3 switches.</li><li><strong>Switch Management:</strong> An SVI can be used to manage the switch by assigning an IP address to the VLAN used for management traffic (like the default VLAN).</li></ol><h2 id="requirements">Requirements</h2><p>For an SVI to come up, the following requirements must be met:</p><ul><li>The SVI must have a IP address that does <strong>not overlap</strong> with any other interfaces</li><li>The VLAN assigned must be in <strong>Active </strong>state</li><li>For the VLAN to be in Active state, one of two conditions must be met:<ol><ol><li>An access port assigned to that VLAN</li><li>A trunk port allowing traffic for that VLAN</li></ol></ol></li></ul><h2 id="configuration">Configuration</h2><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">Configuring an SVI does not auto-create a VLAN. This must be done separately, preferably before configuring the SVI.</div></div>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="624"></colgroup><tbody><tr style="height:49.418627929687496pt"><td style="border-left:solid #d9d9d9 1pt;border-right:solid #d9d9d9 1pt;border-bottom:solid #d9d9d9 1pt;border-top:solid #d9d9d9 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">interface vlan </span><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">10</span></p><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">&#xA0;&#xA0;description </span><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">SVI for VLAN10</span></p><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">&#xA0;&#xA0;ip address </span><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">192.168.10.10 255.255.255.0</span></p><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">&#xA0;&#xA0;no shutdown</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="232"><col width="392"></colgroup><tbody><tr style="height:0pt"><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;background-color:#f3f3f3;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:10pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Command</span></p></td><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;background-color:#f3f3f3;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:10pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Explanation</span></p></td></tr><tr style="height:0pt"><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">interface vlan </span><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">[id]</span></p></td><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Enters configurations for SVI of specified VLAN</span></p></td></tr><tr style="height:0pt"><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">description </span><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">[description]</span></p></td><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Adds description for user readability</span></p></td></tr><tr style="height:0pt"><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">ip address </span><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:400;font-style:italic;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">[ip address] [mask]</span></p></td><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Assigns IP address and subnet mask to SVI.&#xA0;</span></p><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Must be non-overlapping.</span></p></td></tr><tr style="height:0pt"><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:&apos;Roboto Mono&apos;,monospace;color:#434343;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">no shutdown</span></p></td><td style="border-left:solid #cccccc 1pt;border-right:solid #cccccc 1pt;border-bottom:solid #cccccc 1pt;border-top:solid #cccccc 1pt;vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.7999999999999998;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:9pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Brings up SVI.</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<h2 id="verification">Verification</h2><pre><code class="language-text">show ip interface brief
show interface description
show vlan brief</code></pre><hr><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.google.com/document/d/1TritPJbKNvxb6waiLoZ0uLj169P3hwJ3svxNJ6JHzF8/edit?usp=sharing&amp;ref=blog.arapitech.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">SVI - Switched Virtual Interface</div><div class="kg-bookmark-description">Switched Virtual Interface Table of Contents SVI - Switched Virtual Interface	1 What is an SVI?	1 Key Features of an SVI:	1 Use Cases for SVIs:	3 Summary:	3 SVI Requirements	4 SVI Configuration	5 SVI Verification	6 SVI Network Diagram Overview A Switched Virtual Interface (SVI) is a l&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://ssl.gstatic.com/docs/documents/images/kix-favicon-2023q4.ico" alt><span class="kg-bookmark-author">Google Docs</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://lh7-us.googleusercontent.com/docs/AHkbwyISdJ87Q-FEqLkqvK6rERtkCXGWhU6b_YYmfivSE8RanOB6eQ_vynE43UGFJMlOBvCM62lXD68RtElbaSeueWIuG0FHBrxrtQCrOTP3GX1FCittOQ7j=w1200-h630-p" alt></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.google.com/spreadsheets/d/1S8hBoVmIwyCmadS3H7G5DVfxHEbT80W2HihwDV2vso8/edit?usp=sharing&amp;ref=blog.arapitech.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Tech Directory</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://ssl.gstatic.com/docs/spreadsheets/spreadsheets_2023q4.ico" alt><span class="kg-bookmark-author">Google Docs</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://lh7-us.googleusercontent.com/docs/AHkbwyLDr21ZbZpWv2joMx12hQO1ZdX4AAy-gP7DbKQVI3mCcPXz3GHs87BhNaRiT5D8SGiuGJ7dVSmsMMzs0AUu7fw-cRLQDr91-7EWE_9MqT03BFMYv9Fx=w1200-h630-p" alt></div></a></figure>]]></content:encoded></item><item><title><![CDATA[VMware: Virtualized AMD-V/RVI is not supported on this platform]]></title><description><![CDATA[<p>Today I was setting up <strong>Cisco Modeling Labs</strong> on <strong>VMware Workstation Pro</strong>. While setting up the virtual machine I encountered the following error:</p><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/Pasted-image-20240923200136.png" class="kg-image" alt loading="lazy" width="512" height="340"></figure><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/Pasted-image-20240923201058.png" class="kg-image" alt loading="lazy" width="353" height="208"></figure><p></p><p>The first error says:</p><blockquote>Virtualized AMD-V/RVI is not supported on this platform.</blockquote><p>And the second says:</p><blockquote>VMware Workstation does not support nested virtualization on this host.</blockquote>]]></description><link>https://blog.arapitech.com/vmware-virtualized-amd-v-rvi-is-not-supported-on-this-platform/</link><guid isPermaLink="false">66f216ec37848c20c33dc6c0</guid><category><![CDATA[Troubleshooting]]></category><category><![CDATA[Virtualization]]></category><category><![CDATA[VMware]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Tue, 24 Sep 2024 01:45:57 GMT</pubDate><content:encoded><![CDATA[<p>Today I was setting up <strong>Cisco Modeling Labs</strong> on <strong>VMware Workstation Pro</strong>. While setting up the virtual machine I encountered the following error:</p><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/Pasted-image-20240923200136.png" class="kg-image" alt loading="lazy" width="512" height="340"></figure><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/Pasted-image-20240923201058.png" class="kg-image" alt loading="lazy" width="353" height="208"></figure><p></p><p>The first error says:</p><blockquote>Virtualized AMD-V/RVI is not supported on this platform.</blockquote><p>And the second says:</p><blockquote>VMware Workstation does not support nested virtualization on this host. &quot;<br>Module &apos;HV&apos; power on failed.</blockquote><h2 id="troubleshooting">Troubleshooting</h2><p></p><h3 id="nested-virtualization-must-be-enabled-in-the-bios">Nested Virtualization must be enabled in the BIOS</h3><p></p><h3 id="disabling-optional-features">Disabling Optional Features</h3><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/image.png" class="kg-image" alt loading="lazy" width="771" height="511" srcset="https://blog.arapitech.com/content/images/size/w600/2024/09/image.png 600w, https://blog.arapitech.com/content/images/2024/09/image.png 771w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/image-1.png" class="kg-image" alt loading="lazy" width="1180" height="740" srcset="https://blog.arapitech.com/content/images/size/w600/2024/09/image-1.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/09/image-1.png 1000w, https://blog.arapitech.com/content/images/2024/09/image-1.png 1180w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/Pasted-image-20240923200626.png" class="kg-image" alt loading="lazy" width="428" height="381"></figure><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/image-2.png" class="kg-image" alt loading="lazy" width="521" height="628"></figure><p></p><h3 id="disabling-hyper-v">Disabling Hyper V</h3><p></p><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/image-3.png" class="kg-image" alt loading="lazy" width="771" height="514" srcset="https://blog.arapitech.com/content/images/size/w600/2024/09/image-3.png 600w, https://blog.arapitech.com/content/images/2024/09/image-3.png 771w" sizes="(min-width: 720px) 720px"></figure><p></p><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/image-4.png" class="kg-image" alt loading="lazy" width="545" height="211"></figure><pre><code>In an elevated Command Prompt write this :

To disable:

bcdedit /set hypervisorlaunchtype off
To enable:

bcdedit /set hypervisorlaunchtype auto 
Restart to take effect.</code></pre><p></p><p>To en</p><pre><code>
bcedit /set hypervisorlaunchtype off</code></pre><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/image-5.png" class="kg-image" alt loading="lazy" width="832" height="177" srcset="https://blog.arapitech.com/content/images/size/w600/2024/09/image-5.png 600w, https://blog.arapitech.com/content/images/2024/09/image-5.png 832w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/09/image-6.png" class="kg-image" alt loading="lazy" width="859" height="443" srcset="https://blog.arapitech.com/content/images/size/w600/2024/09/image-6.png 600w, https://blog.arapitech.com/content/images/2024/09/image-6.png 859w" sizes="(min-width: 720px) 720px"></figure><p></p><p></p><p></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://learn.microsoft.com/en-us/powershell/module/dism/disable-windowsoptionalfeature?view=windowsserver2022-ps&amp;ref=blog.arapitech.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Disable-WindowsOptionalFeature (DISM)</div><div class="kg-bookmark-description">Use this topic to help manage Windows and Windows Server technologies with Windows PowerShell.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://learn.microsoft.com/favicon.ico" alt><span class="kg-bookmark-author">Microsoft Learn</span><span class="kg-bookmark-publisher">JasonGerend</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://learn.microsoft.com/en-us/media/open-graph-image.png" alt></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://learn.microsoft.com/en-us/troubleshoot/windows-client/application-management/virtualization-apps-not-work-with-hyper-v?ref=blog.arapitech.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Disable Hyper-V to run virtualization software - Windows Client</div><div class="kg-bookmark-description">Discusses an issue in which virtualization applications don&#x2019;t work together with Hyper-V, Device Guard, and Credential Guard. Provides a resolution.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://learn.microsoft.com/favicon.ico" alt><span class="kg-bookmark-author">Microsoft Learn</span><span class="kg-bookmark-publisher">Deland-Han</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://learn.microsoft.com/en-us/media/open-graph-image.png" alt></div></a></figure><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><ul><li></li><li>Link to VMware Workstation Pro (<a href="https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion?ref=blog.arapitech.com">click here</a>)</li><li>Check out Cisco Modeling Labs Personal (<a href="https://learningnetworkstore.cisco.com/cisco-modeling-labs-personal/cisco-modeling-labs-personal/CML-PERSONAL.html?ref=blog.arapitech.com">click here</a>)</li></ul>]]></content:encoded></item><item><title><![CDATA[NetBox: UnboundLocalError When Syncing Data Source]]></title><description><![CDATA[While working on integrating a new data source in NetBox, I encountered an UnboundLocalException error. This article documents my troubleshooting steps to resolution.]]></description><link>https://blog.arapitech.com/netbox-unboundlocalerror-when-syncing-data-source/</link><guid isPermaLink="false">6697bf0337848c20c33dc3e7</guid><category><![CDATA[Troubleshooting]]></category><category><![CDATA[Networking]]></category><category><![CDATA[Netbox]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Sat, 27 Jul 2024 13:27:00 GMT</pubDate><media:content url="https://blog.arapitech.com/content/images/2024/07/UnboundLocalError-Cover.png" medium="image"/><content:encoded><![CDATA[<h2 id="error-unboundlocalerror">Error: UnboundLocalError</h2><img src="https://blog.arapitech.com/content/images/2024/07/UnboundLocalError-Cover.png" alt="NetBox: UnboundLocalError When Syncing Data Source"><p>When adding a new Data Source to NetBox, it provides an <strong>UnboundLocalError</strong> message.</p><p><strong>Local Data Source Error:</strong></p>
<!--kg-card-begin: html-->
<body>
  <p style="font-size: 16px; background-color:#F8F8FF; color:red; font-family:&apos;Courier New&apos;">
    UnboundLocalError(&quot;cannot access local variable &apos;_&apos; where it is not associated with a value&quot;)
  </p>
</body>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/07/image.png" class="kg-image" alt="NetBox: UnboundLocalError When Syncing Data Source" loading="lazy" width="744" height="304" srcset="https://blog.arapitech.com/content/images/size/w600/2024/07/image.png 600w, https://blog.arapitech.com/content/images/2024/07/image.png 744w" sizes="(min-width: 720px) 720px"></figure><p><strong>Remote Git Data Source Error:</strong></p>
<!--kg-card-begin: html-->
<body>
  <p style="font-size: 16px; background-color:#F8F8FF; color:red; font-family:&apos;Courier New&apos;">
    UnboundLocalError(&quot;local variable &apos;_&apos; referenced before assignment&quot;)
  </p>
</body>
<!--kg-card-end: html-->
<figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/07/7A9409B2-B25F-4542-88AA-4FDA9B06EED3_1_201_a.jpeg" class="kg-image" alt="NetBox: UnboundLocalError When Syncing Data Source" loading="lazy" width="749" height="363" srcset="https://blog.arapitech.com/content/images/size/w600/2024/07/7A9409B2-B25F-4542-88AA-4FDA9B06EED3_1_201_a.jpeg 600w, https://blog.arapitech.com/content/images/2024/07/7A9409B2-B25F-4542-88AA-4FDA9B06EED3_1_201_a.jpeg 749w" sizes="(min-width: 720px) 720px"></figure><h2 id="solution">Solution</h2><p>The <strong>UnboundLocalError </strong>failure occurs when the <strong><code>dulwich</code> </strong>package is missing from the venv environment. To fix this, add <strong><code>dulwich</code> </strong>to the <strong><code>requirements.txt</code></strong> file, run the <strong><code>upgrade.sh</code></strong> script, and then restart the NetBox service.</p><p>If using Amazon S3 bucket, then <strong><code>boto3</code> </strong>must be added to the requirements.</p><blockquote>Source: <a href="https://netboxlabs.com/docs/netbox/en/stable/features/synchronized-data/?ref=blog.arapitech.com"><em>NetBox OSS 4.0.8 Documentation - Synchronized Data</em></a></blockquote><p><strong>Add <code>dulwich</code> and <code>boto3</code> to Requirements File</strong></p><pre><code class="language-shell">printf &quot;dulwich\nboto3\n&quot; | sudo tee -a /opt/netbox/requirements.txt
# or
sudo sh -c &quot;printf &apos;dulwich\nboto3\n&apos; &gt;&gt; /opt/netbox/requirements.txt&quot;
</code></pre><p><strong>Exit Venv Then Run Upgrade Script</strong></p><pre><code class="language-shell">deactivate
sudo /opt/netbox/upgrade.sh
</code></pre><p><strong>Restart NetBox Service then Activate Venv</strong></p><pre><code>sudo systemctl restart netbox netbox-rq
source /opt/netbox/venv/bin/activate</code></pre><p>NetBox should now be able to sync with a local or remote Data Source!</p>]]></content:encoded></item><item><title><![CDATA[NetAuto RegEx]]></title><description><![CDATA[<pre><code>REGEX_IP_WITH_CIDR = (&quot;^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/[1-9][0-9]{0,1}$&quot;)

REGEX_IP_NO_CIDR = (&quot;^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}</code></pre>]]></description><link>https://blog.arapitech.com/netauto-regex/</link><guid isPermaLink="false">66a4027537848c20c33dc5e5</guid><category><![CDATA[Python]]></category><category><![CDATA[Networking]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Fri, 26 Jul 2024 21:20:21 GMT</pubDate><content:encoded><![CDATA[<pre><code>REGEX_IP_WITH_CIDR = (&quot;^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/[1-9][0-9]{0,1}$&quot;)

REGEX_IP_NO_CIDR = (&quot;^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$&quot;)</code></pre>]]></content:encoded></item><item><title><![CDATA[Troubleshooting Git Issues]]></title><description><![CDATA[<h3 id="permission-denied">Permission Denied</h3><pre><code class="language-shell">user@server# git clone git@github.com:daniel-arapi/myRepo.git
Cloning into &apos;myRepo&apos;...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
</code></pre><h5 id="verify-connectivity-to-github">Verify Connectivity to GitHub</h5><pre><code class="language-shell">root@server# ssh</code></pre>]]></description><link>https://blog.arapitech.com/troubleshooting-git-issues/</link><guid isPermaLink="false">669fb2e137848c20c33dc584</guid><category><![CDATA[Git]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Tue, 23 Jul 2024 14:24:35 GMT</pubDate><content:encoded><![CDATA[<h3 id="permission-denied">Permission Denied</h3><pre><code class="language-shell">user@server# git clone git@github.com:daniel-arapi/myRepo.git
Cloning into &apos;myRepo&apos;...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
</code></pre><h5 id="verify-connectivity-to-github">Verify Connectivity to GitHub</h5><pre><code class="language-shell">root@server# ssh -T git@github.com
Hi daniel-arapi! You&apos;ve successfully authenticated...
</code></pre><h5 id="verify-ssh-agent-is-running">Verify SSH Agent is Running</h5><pre><code class="language-shell">$ eval &quot;$(ssh-agent -s)&quot;
&gt; Agent pid 59566</code></pre><h5 id="add-ssh-keys-to-ssh-agent">Add SSH Keys to SSH Agent</h5><pre><code class="language-`shell">ssh-add ~/.ssh/your-ssh-keys
</code></pre>]]></content:encoded></item><item><title><![CDATA[Connecting to Multiple GitHub Acounts]]></title><description><![CDATA[Allow your device to access multiple GitHub accounts simultanously.]]></description><link>https://blog.arapitech.com/untitled-2/</link><guid isPermaLink="false">669a5cfa37848c20c33dc508</guid><category><![CDATA[Linux]]></category><category><![CDATA[Git]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Fri, 19 Jul 2024 13:11:17 GMT</pubDate><content:encoded><![CDATA[<p></p><h3 id="generate-ssh-key-pair-and-add-to-github">Generate SSH key pair and add to GitHub</h3><pre><code class="language-shell">ssh-keygen -t rsa -C [email] -f ~/.ssh/[filename]
ssh-keygen -t rsa -C username@gmail.com -f ~/.ssh/github</code></pre><ul><li><code>-t</code> | Specify encryption type, usually <code>rsa</code> (legacy) or <code>ed25519</code> (current)</li><li><code>-C</code> | Email used to authenticate to your GitHub account</li><li><code>-f</code> | Specify filename for new SSH keys</li></ul><p>The command above will create two files:</p><ul><li><code>~/.ssh/github</code> - Your SSH Private Key</li><li><code>~/.ssh/github.pub</code> - Your SSH Public Key</li></ul><pre><code>cat ~/.ssh/github.pub</code></pre><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">Make sure to add public SSH keys to GitHub</div></div><h3 id="modify-ssh-config-file">Modify SSH Config File</h3><p>Open <code>~/.ssh/config</code> file using vim. If it does not exist it then it will create one. Then configure the file using the example below (modify to your use case):</p><pre><code class="language-shell">vim ~/.ssh/config</code></pre><pre><code class="language-text">Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/ssh_keys_github

Host arapitech.com
  HostName arapitech.com
  User git
  IdentityFile ~/.ssh/ssh_keys_arapitech</code></pre><h3 id="add-remote-branch-and-clone">Add Remote Branch and Clone</h3><p>Go back to your working directory and add the remote branch</p><pre><code class="language-text">git remote add origin &lt;ssh url from GitHub&gt;
git remote add origin git@github.com:myUserName/myRepo.git
git clone git@github.com:myUserName/myRepo.git</code></pre>]]></content:encoded></item><item><title><![CDATA[Redirect to File and Print Output to CLI Using Tree]]></title><description><![CDATA[Using tee command to redirect to file while printing output to screen simultanously.]]></description><link>https://blog.arapitech.com/redirect-to-file-and-print-output-to-cli-using-tree/</link><guid isPermaLink="false">669a4aec37848c20c33dc4ad</guid><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Fri, 19 Jul 2024 11:42:07 GMT</pubDate><content:encoded><![CDATA[<p>The <code>tee</code> command in Linux is used to read from standard input and write to standard output and files simultaneously. It effectively duplicates the output, allowing it to be seen on the terminal while also saving it to a file. This can be particularly useful for logging output while still viewing it in real-time.</p><h6 id="redirect-output-to-file-print-on-screen">Redirect output to file + print on screen</h6><p>Output is most commonly redirected using the <code>&gt;</code> (overwrite) or <code>&gt;&gt;</code> (append) commands. What if you want to print out this output simultaneously?</p><ul><li>Use the <code>tee</code> without any flags to overwrite the output.</li><li>Use the <code>tee</code> command with the <code>-a</code> flag to append the output.</li></ul><p><strong>Simple redirect example using </strong><code>tee</code>:</p><pre><code class="language-shell">echo &quot;sample output&quot; | tee myFile.txt # Overwrite
echo &quot;sample output&quot; | tee -a myFile.txt # Append</code></pre><p><strong>Redirecting stdout + stderr using </strong><code>tee</code>:</p><pre><code class="language-shell">./myScript.py 2&gt;&amp;1 | tee myFile.txt # Overwrite
./myScript.py 2&gt;&amp;1 | tee -a myFile.txt # Append
</code></pre><ul><li><code>2</code> - captures stderr</li><li><code>&gt;</code> - redirects the captured stderr</li><li><code>&amp;1</code> - redirects the captured stderr into stdout, combining both</li><li><code>|</code> - pipes the output of previous command into the next command</li><li><code>tee</code> - redirects to file (overwrite); use <code>-a</code> flag to append instead</li></ul>]]></content:encoded></item><item><title><![CDATA[Cloud Comparison Chart]]></title><description><![CDATA[An handy cheat-sheet outlining key differences between various cloud vendors.]]></description><link>https://blog.arapitech.com/cloud-comparison-chart/</link><guid isPermaLink="false">6698b7d737848c20c33dc47a</guid><category><![CDATA[Cloud]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Thu, 18 Jul 2024 06:37:40 GMT</pubDate><media:content url="https://blog.arapitech.com/content/images/2024/07/cloud-logos-cover.jpg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://media.licdn.com/dms/image/D4E22AQHTYt3-VE2iTg/feedshare-shrink_1280/0/1720464830677?e=1724284800&amp;v=beta&amp;t=WRkLTyU1V0AT5BM88Xm3ChIZDdkXmP-8yh884NRxh0U" class="kg-image" alt="Cloud Comparison Chart" loading="lazy" width="1280" height="1977"></figure>]]></content:encoded></item><item><title><![CDATA[Useful Software and Tools for IT Professionals to Boost Productivity]]></title><description><![CDATA[<p></p><p>A compiled list of handy programs and tools for any IT professional. </p><h3 id="productivity">Productivity</h3><table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://ticktick.com/?ref=blog.arapitech.com">TickTick</a></td>
<td>Calendar app</td>
</tr>
<tr>
<td><a href="https://evernote.com/?ref=blog.arapitech.com">Evernote</a></td>
<td>Note taking</td>
</tr>
<tr>
<td><a href="https://calendly.com/?ref=blog.arapitech.com">Calendly</a></td>
<td>Calendar scheduling</td>
</tr>
<tr>
<td><a href="https://bookmarkninja.com/?ref=blog.arapitech.com">Bookmark Ninja</a></td>
<td>Bookmark manager</td>
</tr>
<tr>
<td><a href="https://notion.io/?ref=blog.arapitech.com">Notion</a></td>
<td>Note taking and task management</td>
</tr>
<tr>
<td><a href="https://airtable.com/?ref=blog.arapitech.com">Airtable</a></td>
<td>Database</td>
</tr>
</tbody>
</table>
<h3 id="utilities">Utilities</h3><table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://www.voidtools.com/?ref=blog.arapitech.com">Everything </a></td>
<td>File search</td>
</tr>
<tr>
<td><a href="https://getgreenshot.org/?ref=blog.arapitech.com">Greenshot</a></td>
<td>Screenshots</td>
</tr>
<tr>
<td><a href="https://windirstat.net/?ref=blog.arapitech.com">WinDirStat</a></td>
<td>Disk space analyzer</td>
</tr>
<tr>
<td><a href="https://apps.apple.com/us/app/disk-space-analyzer-inspector/id446243721?mt=12&amp;ref=blog.arapitech.com">Inspector</a></td>
<td>Disk</td></tr></tbody></table>]]></description><link>https://blog.arapitech.com/useful-software-and-tools-for-it-professionals-to-boost-productivity/</link><guid isPermaLink="false">668ec4bf37848c20c33dc328</guid><category><![CDATA[Tips]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Wed, 10 Jul 2024 17:29:54 GMT</pubDate><media:content url="https://blog.arapitech.com/content/images/2024/07/240_F_140531219_chCHBmALfRuKyyfZasWWT8eIM4f6wC2P.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.arapitech.com/content/images/2024/07/240_F_140531219_chCHBmALfRuKyyfZasWWT8eIM4f6wC2P.jpg" alt="Useful Software and Tools for IT Professionals to Boost Productivity"><p></p><p>A compiled list of handy programs and tools for any IT professional. </p><h3 id="productivity">Productivity</h3><table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://ticktick.com/?ref=blog.arapitech.com">TickTick</a></td>
<td>Calendar app</td>
</tr>
<tr>
<td><a href="https://evernote.com/?ref=blog.arapitech.com">Evernote</a></td>
<td>Note taking</td>
</tr>
<tr>
<td><a href="https://calendly.com/?ref=blog.arapitech.com">Calendly</a></td>
<td>Calendar scheduling</td>
</tr>
<tr>
<td><a href="https://bookmarkninja.com/?ref=blog.arapitech.com">Bookmark Ninja</a></td>
<td>Bookmark manager</td>
</tr>
<tr>
<td><a href="https://notion.io/?ref=blog.arapitech.com">Notion</a></td>
<td>Note taking and task management</td>
</tr>
<tr>
<td><a href="https://airtable.com/?ref=blog.arapitech.com">Airtable</a></td>
<td>Database</td>
</tr>
</tbody>
</table>
<h3 id="utilities">Utilities</h3><table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://www.voidtools.com/?ref=blog.arapitech.com">Everything </a></td>
<td>File search</td>
</tr>
<tr>
<td><a href="https://getgreenshot.org/?ref=blog.arapitech.com">Greenshot</a></td>
<td>Screenshots</td>
</tr>
<tr>
<td><a href="https://windirstat.net/?ref=blog.arapitech.com">WinDirStat</a></td>
<td>Disk space analyzer</td>
</tr>
<tr>
<td><a href="https://apps.apple.com/us/app/disk-space-analyzer-inspector/id446243721?mt=12&amp;ref=blog.arapitech.com">Inspector</a></td>
<td>Disk space analzyer</td>
</tr>
</tbody>
</table>
<h3 id="security">Security</h3><table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://nordvpn.com/?ref=blog.arapitech.com">NordVPN</a></td>
<td>VPN</td>
</tr>
<tr>
<td><a href="https://bitwarden.com/?ref=blog.arapitech.com">Bitwarden</a></td>
<td>Password manager</td>
</tr>
<tr>
<td><a href="https://www.dashlane.com/?ref=blog.arapitech.com">Dashlane</a></td>
<td>Password manager</td>
</tr>
<tr>
<td><a href="https://authy.com/?ref=blog.arapitech.com">Authy</a></td>
<td>2FA</td>
</tr>
</tbody>
</table>
<h3 id="diagrams">Diagrams</h3><table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://www.drawio.com/?ref=blog.arapitech.com">Draw IO</a></td>
<td>Flowcharts / Diagams</td>
</tr>
<tr>
<td><a href="https://www.lucidchart.com/?ref=blog.arapitech.com">Lucidchart</a></td>
<td>Flowcharts / Diagrams</td>
</tr>
<tr>
<td><a href="https://xmind.app/?ref=blog.arapitech.com">Xmind</a></td>
<td>Mind maps</td>
</tr>
<tr>
<td><a href="https://asciiflow.com/?ref=blog.arapitech.com">Ascii Flow</a></td>
<td>Ascii diagrams</td>
</tr>
<tr>
<td><a href="https://textik.com/?ref=blog.arapitech.com">Textik</a></td>
<td>Ascii diagrams</td>
</tr>
</tbody>
</table>
<h3 id="other">Other</h3><table>
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://regex101.com/?ref=blog.arapitech.com">Regex101</a></td>
<td>Regular expressions</td>
</tr>
<tr>
<td><a href="https://www.tablesgenerator.com/?ref=blog.arapitech.com">Tables Generator</a></td>
<td>Markdown tables</td>
</tr>
<tr>
<td><a href="https://tabletomarkdown.com/?ref=blog.arapitech.com">Tables to Markdown</a></td>
<td>Markdown tables</td>
</tr>
</tbody>
</table>
<p></p><p><strong>View full version in Google Sheets:</strong></p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.google.com/spreadsheets/d/1k5b14ReSHGqFi0K75F5lkHZADGRUjr8CC1S-xq9r2ZE/edit?usp=sharing&amp;ref=blog.arapitech.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Handy Software and Tools</div><div class="kg-bookmark-description">Sheet1 Productivity
Category,Name,URL,Compatibility
Calendar,TickTick,&lt;a href=&#x201C;https://ticktick.com/&#x201D;&gt;https://ticktick.com/&lt;/a&gt;,Web, Windows, Mac, Linux, iPhone, Android
Note Taking,Evernote,&lt;a href=&#x201C;https://evernote.com/&#x201D;&gt;https://evernote.com/&lt;/a&gt;,Web, Windows, Mac, iPhone, Android
Schedule Me&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://ssl.gstatic.com/docs/spreadsheets/spreadsheets_2023q4.ico" alt="Useful Software and Tools for IT Professionals to Boost Productivity"><span class="kg-bookmark-author">Google Docs</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://lh7-us.googleusercontent.com/docs/AHkbwyLkjn0dUPnYYWD8Kx5z_PvArXAIRg_8Rogq0oiVDYt4o2G2T2ayziTyLkmnilkVD6rF5aOFrC3VD_XZ4VBKLA1aGefrXkjp76raeNRt3LbGJjhE5Z0=w1200-h630-p" alt="Useful Software and Tools for IT Professionals to Boost Productivity"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[Git Authentication Failure When Pushing to GitHub Repository]]></title><description><![CDATA[Enabling 2FA on a GitHub account requires a 2FA token to be used to authenticate. This article goes over some tips to workaround this issue.
]]></description><link>https://blog.arapitech.com/git-authentication-failure-when-pushing-to-github-repository/</link><guid isPermaLink="false">668ec3b037848c20c33dc317</guid><category><![CDATA[Troubleshooting]]></category><category><![CDATA[Git]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Wed, 10 Jul 2024 17:27:22 GMT</pubDate><media:content url="https://blog.arapitech.com/content/images/2024/07/e9c6ec80-8902-11eb-9f55-5de819da8bf5.jpeg" medium="image"/><content:encoded><![CDATA[<h2 id="problem">Problem</h2><img src="https://blog.arapitech.com/content/images/2024/07/e9c6ec80-8902-11eb-9f55-5de819da8bf5.jpeg" alt="Git Authentication Failure When Pushing to GitHub Repository"><p>After enabled 2FA on my GitHub account, I received the following authentication failure while doing a <strong><code>git push</code></strong> to my branch:</p><figure class="kg-card kg-image-card"><img src="https://www.arapitech.com/content/images/2024/05/git-push-authentication-failed-1.png" class="kg-image" alt="Git Authentication Failure When Pushing to GitHub Repository" loading="lazy" width="1824" height="332"></figure><p>Notice that the error states that support for password authentication was removed on January 13, 2024.</p><h2 id="solution">Solution</h2><p>With 2FA (Two-Factor Authentication) enabled in your GitHub account, you will not be able to push via HTTPS using your account password. Instead you will need to provide your 2FA authentication code.  </p><div class="kg-card kg-callout-card kg-callout-card-yellow"><div class="kg-callout-emoji">&#x26A0;&#xFE0F;</div><div class="kg-callout-text">Enabling 2FA on a GitHub account will require the use of a 2FA token to push to the repository.</div></div><p>A simple workaround is to switch from using HTTPS to SSH. You can do this by navigating to the <code>.git/</code> directory and opening the <code>config</code><strong> </strong>file. The image below displays the following modifications:</p><ul><li>Comment out the HTTPS URL</li><li>Insert the SSH URL</li><li>Insert user section containing name and email</li></ul><figure class="kg-card kg-image-card"><img src="https://www.arapitech.com/content/images/2024/05/git-config-file-1-1.png" class="kg-image" alt="Git Authentication Failure When Pushing to GitHub Repository" loading="lazy" width="1510" height="1212"></figure><p>You can retrieve the SSH url from the GitHub repository, as shown below:</p><figure class="kg-card kg-image-card"><img src="https://www.arapitech.com/content/images/2024/05/github-repository-ssh-url-1.png" class="kg-image" alt="Git Authentication Failure When Pushing to GitHub Repository" loading="lazy" width="1128" height="828"></figure><p><strong>Additional Resource:</strong></p><ul><li><a href="https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication?ref=arapitech.com">Accessing GitHub using two-factor authentication</a></li><li><a href="https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens?ref=arapitech.com">Managing your personal access tokens</a></li><li><a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent?ref=arapitech.com">Generating a new SSH key and adding it to the ssh-agent</a></li><li><a href="https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication?ref=arapitech.com">Accessing GitHub using two-factor authentication</a></li><li><a href="https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication?ref=arapitech.com">Configuring two-factor authentication</a></li></ul>]]></content:encoded></item><item><title><![CDATA[Custom OpenSSL Install on Linux]]></title><link>https://blog.arapitech.com/custom-install-of-openssl-on-linux/</link><guid isPermaLink="false">667bf9f037848c20c33dc19d</guid><category><![CDATA[Linux]]></category><category><![CDATA[OpenSSL]]></category><category><![CDATA[Level-Proficient]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Wed, 26 Jun 2024 15:55:38 GMT</pubDate><media:content url="https://blog.arapitech.com/content/images/2024/06/0_U3ck3l6IdHNL5_0L.png" medium="image"/><content:encoded/></item><item><title><![CDATA[Understanding Directory Paths for Custom Linux Installations]]></title><description><![CDATA[<p>In many online forums, I have come across custom installation made in the following paths:</p><ul><li><code>/opt</code></li><li><code>/usr/local/bin</code></li><li><code>/usr/local/src</code></li><li><code>/usr/local/include</code></li></ul><p>This begs the question, what is the correct path for performing custom installations?</p><h2 id="opt-vs-usr">Opt vs Usr</h2><p>n Red Hat Linux, custom installations typically belong in</p>]]></description><link>https://blog.arapitech.com/understanding-directory-paths-for-custom-linux-installations/</link><guid isPermaLink="false">667bc6e237848c20c33dc038</guid><category><![CDATA[Linux]]></category><category><![CDATA[Level-Basic]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Wed, 26 Jun 2024 07:50:15 GMT</pubDate><content:encoded><![CDATA[<p>In many online forums, I have come across custom installation made in the following paths:</p><ul><li><code>/opt</code></li><li><code>/usr/local/bin</code></li><li><code>/usr/local/src</code></li><li><code>/usr/local/include</code></li></ul><p>This begs the question, what is the correct path for performing custom installations?</p><h2 id="opt-vs-usr">Opt vs Usr</h2><p>n Red Hat Linux, custom installations typically belong in the <code>/opt</code> or <code>/usr/local</code> directories. Here&#x2019;s how you can use these directories:</p><ol><li><code><strong>/opt</strong></code>: This directory is intended for the installation of add-on application software packages. A package placing files in <code>/opt</code> must locate its static files in a separate <code>/opt/&lt;package&gt;</code> or <code>/opt/&lt;provider&gt;</code> directory tree, where <code>&lt;package&gt;</code> is a name that describes the software package and <code>&lt;provider&gt;</code> is the provider&apos;s LANANA registered name. This is useful for standalone or third-party software applications that aren&apos;t part of the standard operating system distribution.</li><li><code><strong>/usr/local</strong></code>: This directory is for use by the system administrator when installing software locally. It should have the same subdirectories as <code>/usr</code>. This directory is typically used for software installed from source, or software not provided by the official distribution repositories. It&#x2019;s the traditional place for locally compiled binaries, libraries, etc.</li></ol><p>Both directories are used to avoid conflicts with the files managed by the package management system, and to ensure that non-standard software does not overwrite files from the base system.</p><h2 id="which-usr-directory">Which Usr Directory</h2><p>or custom installations on a Red Hat Linux system, the placement within the <code>/usr/local</code> hierarchy depends on the type of files being installed. Here&apos;s how these directories are typically used:</p><ul><li><strong><code>/usr/local/bin</code></strong>: This directory is intended for executable programs installed for use by all users. If you&apos;re compiling and installing a program from source, the executable files should generally be placed here.</li><li><strong><code>/usr/local/src</code></strong>: This directory is intended for storing source code. If you download or create source code for custom software, it&apos;s a common practice to place the source code here before compiling and installing it.</li><li><strong><code>/usr/local/include</code></strong>: This directory is used for storing header files used in C and C++ programming. If your installation involves custom libraries that need to be included in other programs, the associated header files should be placed here.</li><li><code><strong>/usr/local/lib</strong></code>: Although you didn&apos;t ask about this directory, it&apos;s also relevant. It is used for storing library files that are used by the executables in <code>/usr/local/bin</code>.</li></ul><p>Here&#x2019;s how you might use these in context:</p><ul><li>If you are compiling a program from source, you might download and extract the source code to <code>/usr/local/src</code>. After configuring and compiling the software, you would install the binaries (executables) into <code>/usr/local/bin</code>, libraries into <code>/usr/local/lib</code>, and header files into <code>/usr/local/include</code>.</li></ul><p>This organization helps maintain a clear separation of source files, binaries, libraries, and header files, adhering to traditional Unix filesystem hierarchy conventions.</p>]]></content:encoded></item><item><title><![CDATA[Significance of Different Linux Prompt Symbols: $, #, %]]></title><description><![CDATA[<p>In a Linux environment, the symbols <code>$</code>, <code>#</code>, and <code>%</code> seen in the command line prompts signify different types of users or shell sessions:</p><ul><li><code>$</code> - Regular user</li><li><code>#</code> - Root user</li><li><code>%</code> - C shell</li></ul><p>These symbols help users quickly identify the type of account or shell they are operating within, potentially preventing execution of</p>]]></description><link>https://blog.arapitech.com/linux-prompt-symbols/</link><guid isPermaLink="false">667a0b1e37848c20c33dbf01</guid><category><![CDATA[Linux]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Tue, 25 Jun 2024 00:29:42 GMT</pubDate><content:encoded><![CDATA[<p>In a Linux environment, the symbols <code>$</code>, <code>#</code>, and <code>%</code> seen in the command line prompts signify different types of users or shell sessions:</p><ul><li><code>$</code> - Regular user</li><li><code>#</code> - Root user</li><li><code>%</code> - C shell</li></ul><p>These symbols help users quickly identify the type of account or shell they are operating within, potentially preventing execution of harmful commands in more sensitive environments (like root).</p><p>There are also minor differences depending on the Unix/Linux Distribution. For example:</p><ul><li>Debian prompt:  <code>guest@linux:~$</code></li><li>RedHat prompt: <code>[guest@linux ~]$</code></li><li>SuSE Linux prompt: <code>guest@linux:~&gt;</code></li></ul>]]></content:encoded></item><item><title><![CDATA[Changing Linux CLI Prompt]]></title><description><![CDATA[<p></p><h3 id="overview">Overview</h3><p>By default, your Linux CLI prompt will look something like this:</p><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/06/image-22.png" class="kg-image" alt loading="lazy" width="2000" height="332" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/image-22.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/image-22.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/image-22.png 1600w, https://blog.arapitech.com/content/images/2024/06/image-22.png 2000w" sizes="(min-width: 720px) 720px"></figure><p>When changing directories, I often find myself executing the <code>pwd</code> command to check my current path, as shown:</p><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/06/image-23.png" class="kg-image" alt loading="lazy" width="2000" height="446" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/image-23.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/image-23.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/image-23.png 1600w, https://blog.arapitech.com/content/images/2024/06/image-23.png 2352w" sizes="(min-width: 720px) 720px"></figure><p>So a trick I like to do is change prompt format to show me the path that I am currently</p>]]></description><link>https://blog.arapitech.com/changing-linux-cli-prompt/</link><guid isPermaLink="false">6679f25a37848c20c33dbe45</guid><category><![CDATA[Linux]]></category><category><![CDATA[Level-Basic]]></category><dc:creator><![CDATA[Daniel Arapi]]></dc:creator><pubDate>Mon, 24 Jun 2024 23:42:50 GMT</pubDate><content:encoded><![CDATA[<p></p><h3 id="overview">Overview</h3><p>By default, your Linux CLI prompt will look something like this:</p><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/06/image-22.png" class="kg-image" alt loading="lazy" width="2000" height="332" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/image-22.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/image-22.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/image-22.png 1600w, https://blog.arapitech.com/content/images/2024/06/image-22.png 2000w" sizes="(min-width: 720px) 720px"></figure><p>When changing directories, I often find myself executing the <code>pwd</code> command to check my current path, as shown:</p><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/06/image-23.png" class="kg-image" alt loading="lazy" width="2000" height="446" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/image-23.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/image-23.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/image-23.png 1600w, https://blog.arapitech.com/content/images/2024/06/image-23.png 2352w" sizes="(min-width: 720px) 720px"></figure><p>So a trick I like to do is change prompt format to show me the path that I am currently in. I have listed a few examples below.</p><h3 id="prompt-codes">Prompt Codes</h3><table>
<thead>
<tr>
<th><strong>Option</strong></th>
<th><strong>Description</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><code>\u</code></td>
<td>Username</td>
</tr>
<tr>
<td><code>@</code></td>
<td>The <code>@</code> symbol</td>
</tr>
<tr>
<td><code>\h</code></td>
<td>Hostname</td>
</tr>
<tr>
<td><code>\H</code></td>
<td>Full hostname</td>
</tr>
<tr>
<td><code>\w</code></td>
<td>Absolute full path</td>
</tr>
<tr>
<td><code>\W</code></td>
<td>Relative path</td>
</tr>
<tr>
<td><code>\d</code></td>
<td>Date format: <code>Mon Jun 24</code></td>
</tr>
<tr>
<td><code>\t</code></td>
<td>Time 24-hr format: <code>19:58:33</code></td>
</tr>
<tr>
<td><code>\T</code></td>
<td>Time 12-hr format: <code>07:58:47</code></td>
</tr>
<tr>
<td><code>\A</code></td>
<td>Time 24-hr format: <code>20:00</code></td>
</tr>
<tr>
<td><code>\n</code></td>
<td>New line</td>
</tr>
<tr>
<td><code>\$</code></td>
<td>Specifies if operating as root <code>#</code> or user <code>$</code></td>
</tr>
</tbody>
</table>
<p></p><h2 id="prompt-styling-options">Prompt Styling Options</h2><h3 id></h3><p><strong>Style 1</strong></p><pre><code class="language-shell">PS1=&apos;[\u@\h: \w]\$ &apos;</code></pre><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/06/image-21.png" class="kg-image" alt loading="lazy" width="2000" height="617" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/image-21.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/image-21.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/image-21.png 1600w, https://blog.arapitech.com/content/images/2024/06/image-21.png 2352w" sizes="(min-width: 720px) 720px"></figure><p><strong>Style 2</strong></p><pre><code class="language-shell">PS1=&apos;$PWD$ &apos;</code></pre><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/06/image-15.png" class="kg-image" alt loading="lazy" width="2000" height="617" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/image-15.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/image-15.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/image-15.png 1600w, https://blog.arapitech.com/content/images/2024/06/image-15.png 2352w" sizes="(min-width: 720px) 720px"></figure><p><strong>Style 3</strong></p><pre><code class="language-shell">PS1=&quot;\[\`if [[ \$? = &quot;0&quot; ]]; then echo &apos;\e[32m\h\e[0m&apos;; else echo &apos;\e[31m\h\e[0m&apos; ; fi\`:\w\n\$ &quot;</code></pre><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/06/image-17.png" class="kg-image" alt loading="lazy" width="2000" height="524" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/image-17.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/image-17.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/image-17.png 1600w, https://blog.arapitech.com/content/images/2024/06/image-17.png 2000w" sizes="(min-width: 720px) 720px"></figure><p><strong>Style 4</strong></p><pre><code class="language-BASH">PS1=&apos;\[`[ $? = 0 ] &amp;&amp; X=2 || X=1; tput setaf $X`\]\h\[`tput sgr0`\]:$PWD\n\$ &apos;</code></pre><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/06/image-18.png" class="kg-image" alt loading="lazy" width="2000" height="595" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/image-18.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/image-18.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/image-18.png 1600w, https://blog.arapitech.com/content/images/2024/06/image-18.png 2000w" sizes="(min-width: 720px) 720px"></figure><p><strong>Style 5</strong></p><pre><code class="language-shell">PS1=&quot;\u@\H &quot;</code></pre><figure class="kg-card kg-image-card"><img src="https://blog.arapitech.com/content/images/2024/06/image-24.png" class="kg-image" alt loading="lazy" width="2000" height="390" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/image-24.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/image-24.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/image-24.png 1600w, https://blog.arapitech.com/content/images/2024/06/image-24.png 2352w" sizes="(min-width: 720px) 720px"></figure><p><strong>Date and Time</strong></p><p>Use the following options to display different formats for date and time:</p><ul><li><strong><code>d</code></strong><em>&#xA0;&#x2013;&#xA0;</em>Displays today&#x2019;s date in [weekday]/[month]/[day]</li></ul><pre><code class="language-shell">PS1=&quot;\u@\H&gt;\d &quot;</code></pre><ul><li><strong><code>t</code></strong><em>&#xA0;&#x2013;</em>&#xA0;Displays the current time in 24-hour notation</li></ul><pre><code class="language-shell">PS1=&quot;\u@\H&gt;\t &quot;</code></pre><ul><li><strong><code>T</code></strong>&#xA0;<em>&#x2013;</em>&#xA0;Displays the current time in 12-hour notation</li></ul><pre><code class="language-shell">PS1=&quot;\u@\H&gt;\T &quot;</code></pre><ul><li><strong><code>A</code></strong><em>&#xA0;&#x2013;</em>&#xA0;Displays the current time in 24-hour notation, with just hours and minutes</li></ul><pre><code class="language-shell">PS1=&quot;\u@\H&gt;\A &quot;</code></pre><p>For further reading, checkout: <a href="https://phoenixnap.com/kb/change-bash-prompt-linux?ref=blog.arapitech.com">https://phoenixnap.com/kb/change-bash-prompt-linux</a></p><h2 id="save-changes">Save Changes </h2><p>To permanently save changes for the current user, the configuration will need to be added to the <code>~/.bashrc</code> file.</p><h3 id="method-1-echo-command">Method 1: Echo Command</h3><p>You can simply paste this in your terminal and it will append the output to the end of your file.</p><figure class="kg-card kg-code-card"><pre><code class="language-shell">&gt; echo &quot;PS1=&apos;[\u@\h: \w]\$ &apos;&quot; &gt;&gt; ~/.bashrc</code></pre><figcaption><p dir="ltr"><span style="white-space: pre-wrap;">Echo the command and append to bashrc via redirect</span></p></figcaption></figure><h3 id="method-2-edit-file">Method 2: Edit File</h3><p>Open the file using <code>vim ~/.bashrc</code> and scroll all the way to the bottom of the file and insert the configuration at the end of the file. Save, and exit, and now your changes are saved. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.arapitech.com/content/images/2024/06/codeimage-snippet_26--1-.png" class="kg-image" alt loading="lazy" width="2000" height="1001" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/codeimage-snippet_26--1-.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/codeimage-snippet_26--1-.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/codeimage-snippet_26--1-.png 1600w, https://blog.arapitech.com/content/images/size/w2400/2024/06/codeimage-snippet_26--1-.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Screenshot of all files in home directory, including hidden files.</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.arapitech.com/content/images/2024/06/codeimage-snippet_26--2-.png" class="kg-image" alt loading="lazy" width="2000" height="1841" srcset="https://blog.arapitech.com/content/images/size/w600/2024/06/codeimage-snippet_26--2-.png 600w, https://blog.arapitech.com/content/images/size/w1000/2024/06/codeimage-snippet_26--2-.png 1000w, https://blog.arapitech.com/content/images/size/w1600/2024/06/codeimage-snippet_26--2-.png 1600w, https://blog.arapitech.com/content/images/size/w2400/2024/06/codeimage-snippet_26--2-.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Example of the bashrc file</span></figcaption></figure>]]></content:encoded></item></channel></rss>