<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux | Ukant Jadia</title><link>https://ukantjadia.github.io/tag/linux/</link><atom:link href="https://ukantjadia.github.io/tag/linux/index.xml" rel="self" type="application/rss+xml"/><description>Linux</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Mon, 30 Dec 2024 14:15:59 +0530</lastBuildDate><image><url>https://ukantjadia.github.io/media/icon_hu5e29e1df12b63ca0c9252c8db4842f1b_8915_512x512_fill_lanczos_center_3.png</url><title>Linux</title><link>https://ukantjadia.github.io/tag/linux/</link></image><item><title>A Beginner's Guide to DevOps with Terraform and GitHub</title><link>https://ukantjadia.github.io/project/devops-journy/</link><pubDate>Mon, 30 Dec 2024 14:15:59 +0530</pubDate><guid>https://ukantjadia.github.io/project/devops-journy/</guid><description>&lt;h1 id="a-beginners-guide-to-devops-with-terraform-and-github">A Beginner&amp;rsquo;s Guide to DevOps with Terraform and GitHub&lt;/h1>
&lt;p>As a fresh graduate in Computer Science and Engineering, my exploration into the world of DevOps has been nothing short of an enlightening adventure. Coming from a machine learning background, I often found myself compelled to understand how backend systems could be crafted with such elegance. This curiosity fueled my capstone project, where I aimed to create a CI/CD pipeline that elegantly demonstrated the power of tools like Terraform and GitHub.&lt;/p>
&lt;h2 id="what-is-devops-and-why-is-it-important">What is DevOps and Why is it Important?&lt;/h2>
&lt;p>DevOps blends development and operations, aiming to minimize the distance between these two traditionally siloed groups. The goal is to improve collaboration, increase deployment frequency, and deliver more stable operating environments. The DevOps culture promotes continuous integration and continuous delivery (CI/CD), which significantly enhances the software development lifecycle.&lt;/p>
&lt;h3 id="key-components-of-devops">Key Components of DevOps&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Continuous Integration (CI)&lt;/strong>: Developers frequently integrate their changes in a shared repository.&lt;/li>
&lt;li>&lt;strong>Continuous Delivery (CD)&lt;/strong>: Automating the delivery of applications to selected infrastructure environments.&lt;/li>
&lt;li>&lt;strong>Infrastructure as Code (IaC)&lt;/strong>: Managing infrastructure through code, ensuring that setups are easy to replicate.&lt;/li>
&lt;/ul>
&lt;h3 id="a-personal-exploration-into-devops">A Personal Exploration into DevOps&lt;/h3>
&lt;p>Reflecting on my academic journey, the decision to delve into a DevOps project stemmed from a fundamental question: How can vast complexities be integrated seamlessly? My project aimed to demystify this by constructing a basic CI/CD pipeline orchestrated through Terraform and GitHub.&lt;/p>
&lt;h2 id="setting-the-stage-understanding-my-project">Setting the Stage: Understanding My Project&lt;/h2>
&lt;p>The core of my project revolved around leveraging Terraform for infrastructure automation, along with GitHub for version control and CI/CD capabilities. This combination would provide a straightforward yet powerful example of deploying applications in a cloud environment.&lt;/p>
&lt;h3 id="project-objectives">Project Objectives&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Demonstrate CI/CD using GitHub Actions&lt;/strong>: Show how automatic deployment can facilitate rapid product releases.&lt;/li>
&lt;li>&lt;strong>Use Terraform for Infrastructure Management&lt;/strong>: Illustrate how infrastructure can be provisioned and managed as code.&lt;/li>
&lt;li>&lt;strong>Visualize Workflows&lt;/strong>: Employ tools like Eraser.io to create flowcharts to help visualize the project&amp;rsquo;s structure.&lt;/li>
&lt;/ul>
&lt;h2 id="getting-started-with-terraform">Getting Started with Terraform&lt;/h2>
&lt;p>When I first explored Terraform, I was struck by how declarative it is. Terraform allows you to define your infrastructure in configuration files which can then be executed to provision that infrastructure automatically.&lt;/p>
&lt;h3 id="example-terraform-configuration">Example Terraform Configuration&lt;/h3>
&lt;p>Here’s a simple example of a Terraform configuration file that provisions an AWS EC2 instance:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="l">provider &amp;#34;&amp;#34;aws&amp;#34;&amp;#34; {&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">region = &amp;#34;&amp;#34;us-west-2&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>}&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="l">resource &amp;#34;&amp;#34;aws_instance&amp;#34;&amp;#34; &amp;#34;&amp;#34;my_instance&amp;#34;&amp;#34; {&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">ami = &amp;#34;&amp;#34;ami-0c55b159cbfafe1f0&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">instance_type = &amp;#34;&amp;#34;t2.micro&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">tags = {&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="l">Name = &amp;#34;&amp;#34;MyInstance&amp;#34;&amp;#34;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>}&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>}&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="key-features-of-terraform">Key Features of Terraform&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Infrastructure as Code&lt;/strong>: Treat infrastructure setup as code, making it easier to maintain and version control.&lt;/li>
&lt;li>&lt;strong>Execution Plan&lt;/strong>: Terraform generates a clear execution plan which shows what will happen before any changes are applied.&lt;/li>
&lt;/ul>
&lt;h2 id="integrating-github-actions-into-the-pipeline">Integrating GitHub Actions into the Pipeline&lt;/h2>
&lt;p>GitHub Actions provides a robust platform for automating workflows directly in your GitHub repository. For my project, I set up actions to automatically test and deploy the application upon code commit.&lt;/p>
&lt;h3 id="github-actions-workflow-configuration">GitHub Actions Workflow Configuration&lt;/h3>
&lt;p>This YAML file illustrates a basic GitHub Actions workflow:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-yaml" data-lang="yaml">&lt;span class="line">&lt;span class="cl">&lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">CI/CD Pipeline&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">push&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">branches&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">main ]&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">&lt;/span>&lt;span class="nt">jobs&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">build&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">runs-on&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">ubuntu-latest&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">steps&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Check out the code&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">actions/checkout@v2&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Set up Node.js&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">uses&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">actions/setup-node@v2&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">with&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">node-version&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="s1">&amp;#39;14&amp;#39;&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Install dependencies&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">npm install&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Run tests&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">npm test&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>- &lt;span class="nt">name&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">Deploy to production&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="w"> &lt;/span>&lt;span class="nt">run&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="w"> &lt;/span>&lt;span class="l">npm run deploy&lt;/span>&lt;span class="w">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="benefits-of-using-github-actions">Benefits of Using GitHub Actions&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Seamless Integration&lt;/strong>: Works directly with your repositories.&lt;/li>
&lt;li>&lt;strong>Customizability&lt;/strong>: Create tailored workflows to fit specific project needs.&lt;/li>
&lt;/ul>
&lt;h2 id="visualizing-the-workflow">Visualizing the Workflow&lt;/h2>
&lt;p>To visualize how data flows through the different stages of the pipeline, I employed Eraser.io. This tool allowed me to create flowcharts that represented the overall CI/CD process from code push to deployment.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="Project Workflow Diagram" srcset="
/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_db3a68c6db8bf6bb22c39db4b0c12eb5.webp 400w,
/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_60e706c65945e27497b28bc21c1ec67c.webp 760w,
/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/devops-journy/image/intro/image_huea26ebdf79552f1cb16da2d020438785_337448_db3a68c6db8bf6bb22c39db4b0c12eb5.webp"
width="611"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>&lt;em>Figure 1: The flow of code and data in the CI/CD pipeline&lt;/em>&lt;/p>
&lt;h2 id="the-elegance-of-cicd-a-real-world-application">The Elegance of CI/CD: A Real-World Application&lt;/h2>
&lt;p>As I progressed through my project, witnessing the pipeline&amp;rsquo;s operation became one of the most rewarding aspects. It was astounding to see how a simple workflow could articulate the path of requests or data between containers and servers.&lt;/p>
&lt;h3 id="key-takeaways-from-the-cicd-pipeline-experience">Key Takeaways from the CI/CD Pipeline Experience&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Visual Learning&lt;/strong>: The flowcharts provided invaluable insight into how requests and data moved, making the whole process comprehensible.&lt;/li>
&lt;li>&lt;strong>Hands-on with Real Tools&lt;/strong>: Working directly with GitHub and Terraform solidified my understanding of cloud infrastructure and automation.&lt;/li>
&lt;/ul>
&lt;h2 id="final-thoughts">Final Thoughts&lt;/h2>
&lt;p>Reflecting on this project, I can confidently say that building a CI/CD pipeline using Terraform and GitHub not only quenched my curiosity about backend processes but also equipped me with practical skills for my career ahead. This journey reaffirmed my belief that technology can create elegant solutions to complex problems. I hope my exploration encourages others to dive into the DevOps ocean, where every wave brings new learning opportunities.&lt;/p>
&lt;h2 id="references">References&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://github.com/ukantjadia/devops-qr-code" target="_blank" rel="noopener">GitHub Repository - DevOps QR Code&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://app.eraser.io/workspace/FvUVWqTvzrhkXkz8aEch?origin=share" target="_blank" rel="noopener">Eraser.io Workspace&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/ukantjadia/devops-qr-code/blob/Main/task.md" target="_blank" rel="noopener">GitHub Task Documentation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/ukantjadia/devops-qr-code/blob/Main/README.md" target="_blank" rel="noopener">GitHub README Documentation&lt;/a>&lt;/li>
&lt;/ol>
&lt;p>&lt;em>Feel free to explore these resources further to expand your knowledge and understanding of DevOps and CI/CD pipelines.&lt;/em>&lt;/p></description></item><item><title>Markdown to Html Conversion</title><link>https://ukantjadia.github.io/post/markdown-to-html-conversion/</link><pubDate>Sat, 30 Dec 2023 14:22:57 +0530</pubDate><guid>https://ukantjadia.github.io/post/markdown-to-html-conversion/</guid><description>&lt;h1 id="conversion-of-markdownmd-to-html-markup-language">Conversion of Markdown(.md) to html markup language&lt;/h1>
&lt;ul>
&lt;li>get the &lt;code>pandoc&lt;/code>&lt;/li>
&lt;li>Use the following command&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pandoc&lt;/span> &lt;span class="n">smaple_readme.md&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">t&lt;/span> &lt;span class="n">html&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">o&lt;/span> &lt;span class="n">sample_readme.html&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>In shell it would be written like&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">cat&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$(&lt;/span>pandoc &lt;span class="nv">$1&lt;/span>.md -t html -o &lt;span class="nv">$1&lt;/span>.html &lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>It will be run the loop with wildcard like&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> i in ~/locat/.md/file/* &lt;span class="p">;&lt;/span> &lt;span class="k">do&lt;/span> &lt;span class="k">$(&lt;/span>var&lt;span class="k">)&lt;/span> &lt;span class="p">;&lt;/span> &lt;span class="k">done&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="modification">Modification&lt;/h1>
&lt;ul>
&lt;li>check extension of each file with if condition and print the non md file
like&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl">if [ $1 -ne *.md ]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">then
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> echo &amp;#34;UNEXPECTED Document format $1 &amp;#34;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> continue
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">else:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> `further code`
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">fi
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Learn tmux, a Terminal Multiplexer</title><link>https://ukantjadia.github.io/post/learn-termux-a-terminal-multiplexer/</link><pubDate>Sat, 30 Dec 2023 14:22:29 +0530</pubDate><guid>https://ukantjadia.github.io/post/learn-termux-a-terminal-multiplexer/</guid><description>&lt;h1 id="tmux">tmux&lt;/h1>
&lt;!-- ---
## bullet point
1. install
2. what it is
3. what it can do
4. tmux key binding
5. tmux conf
6. extra features
7. patching for history backups
8.
---
### data 💽 -->
&lt;h2 id="installation">Installation&lt;/h2>
&lt;ul>
&lt;li>Linux : &lt;code>sudo apt-get install tmux&lt;/code>&lt;/li>
&lt;li>Fedora : &lt;code>sudo dnf -y install tmux&lt;/code>&lt;/li>
&lt;li>Cent-OS : &lt;code>sudo yum -y install tmux&lt;/code>&lt;/li>
&lt;li>Arch Linux : &lt;code>sudo pacman -S tmux&lt;/code>&lt;/li>
&lt;li>to start : &lt;code>tmux&lt;/code>&lt;/li>
&lt;li>NOTE: Prefix key : &lt;code>Ctrl+b&lt;/code>&lt;/li>
&lt;li>&lt;a href="https://github.com/tmux/tmux" target="_blank" rel="noopener">github&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="what-is-tmux-">What is tmux ??&lt;/h2>
&lt;ul>
&lt;li>It is terminal multiplexer.&lt;/li>
&lt;li>It acts as a window manager in your terminal.&lt;/li>
&lt;li>It also allows to create multiple window and panes in a single terminal window.&lt;/li>
&lt;/ul>
&lt;h2 id="what-it-can-do">What it can do&lt;/h2>
&lt;ul>
&lt;li>Tmux keeps the sessions , windows and panes in a server located at &lt;code>/tmp/tmux&lt;/code>&lt;/li>
&lt;li>If your terminal window is crash or killed(&lt;em>detach&lt;/em>) then still all your process and session is alive, until you kill the tmux server(reboot).&lt;/li>
&lt;li>Again you can pick the session from where you left by simply &lt;em>attaching&lt;/em> to the session.&lt;/li>
&lt;li>tmux is also helpful while working with remote machine.&lt;/li>
&lt;/ul>
&lt;h2 id="tmux-key-binds">tmux key binds&lt;/h2>
&lt;p>NOTE: Prefix key &lt;code>C-b&lt;/code> == &lt;code>Ctrl+b&lt;/code>&lt;/p>
&lt;ul>
&lt;li>to start : &lt;code>tmux&lt;/code>&lt;/li>
&lt;li>Splitting Pane :
&lt;ul>
&lt;li>for left and right : &lt;code>C-b+%&lt;/code>&lt;/li>
&lt;li>for top and bottom : &lt;code>C-b+&amp;quot;&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Navigates through panes :
&lt;ul>
&lt;li>&lt;code>C-b+&amp;lt;arrow_keys&lt;/code>&lt;/li>
&lt;li>to move left : &lt;code>C-b ⬅&lt;/code>&lt;/li>
&lt;li>to move right : &lt;code>C-b ➡&lt;/code>&lt;/li>
&lt;li>to move up : &lt;code>C-b ⬆&lt;/code>&lt;/li>
&lt;li>to move down : &lt;code>C-b ⬇&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Closing pane: type &lt;code>exit&lt;/code> or &lt;code>C-b x&lt;/code>&lt;/li>
&lt;li>Creating windows : &lt;code>C-b c&lt;/code>
&lt;ul>
&lt;li>rename windows : &lt;code>C-b ,&lt;/code>&lt;/li>
&lt;li>to kill window : &lt;code>C-b &amp;amp;&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Navigates through windows :
&lt;ul>
&lt;li>for previous window : &lt;code>C-b p&lt;/code>&lt;/li>
&lt;li>for next window : &lt;code>C-b n&lt;/code>&lt;/li>
&lt;li>for required : &lt;code>C-b &amp;lt;number&amp;gt;&lt;/code>
where number is number in front of the window&amp;rsquo;s name in your status bar&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Session handling :
&lt;ul>
&lt;li>to detach your current session : &lt;code>C-b d&lt;/code>&lt;/li>
&lt;li>for list of session to detach : &lt;code>C-b D&lt;/code>
&lt;ul>
&lt;li>for list of session : &lt;code>C-b s&lt;/code>&lt;/li>
&lt;li>for list of session : &lt;code>tmux ls&lt;/code> it worked without a tmux session&lt;/li>
&lt;li>to attach to session from list : &lt;code>tmux attach -t 0&lt;/code>
&lt;code>-t 0&lt;/code> -t for specific target and 0 name of the session&lt;/li>
&lt;li>attach to a new session : &lt;code>tmux new -s database&lt;/code>
&lt;code>new -s database&lt;/code> new for new , -s for session , database as name of session
&lt;code>new -w __&lt;/code> -w for new window&lt;/li>
&lt;li>rename session : &lt;code>C-b $&lt;/code>
rename before starting the session : &lt;code>tmux rename-session -t 0 database&lt;/code>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>to enter command prompt mode : &lt;code>C-b :&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>NOTE : to see the more key bindings use &lt;strong>&lt;code>C-b ?&lt;/code>&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>It will show the all binding available in it&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="links-">Links 🔗&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="https://medium.com/hackernoon/a-gentle-introduction-to-tmux-8d784c404340" target="_blank" rel="noopener">blog&lt;/a>&lt;/li>
&lt;li>&lt;a href="">key-binds_img&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://youtu.be/icEE9HHtawc" target="_blank" rel="noopener">YT-video&lt;/a>&lt;/li>
&lt;li>tmux key binds :&lt;/li>
&lt;li>&lt;a href="https://sourcedigit.com/wp-content/uploads/2014/09/Tmux-Key-Binding-Commands.png" target="_blank" rel="noopener">default-key-binds&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://sourcedigit.com/wp-content/uploads/2014/09/Tmux-Resize-Pane-Commands.png" target="_blank" rel="noopener">resize-pane-using-command&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://sourcedigit.com/wp-content/uploads/2014/09/Screen-Terminal-Multiplexer-Commands.png" target="_blank" rel="noopener">to-control-screen&lt;/a>&lt;/li>
&lt;li>&lt;a href="obsidian://open?vault=Obsidian&amp;amp;file=11%2FDaily-Note%2Ftmux-1.png">key-binds&lt;/a>&lt;/li>
&lt;/ol></description></item><item><title>Information Gathering, the First Step for Exploitation</title><link>https://ukantjadia.github.io/post/information-gathering-first-step-for-exploitatoin/</link><pubDate>Sat, 30 Dec 2023 14:20:17 +0530</pubDate><guid>https://ukantjadia.github.io/post/information-gathering-first-step-for-exploitatoin/</guid><description>&lt;h1 id="recon">Recon&lt;/h1>
&lt;p>There are two type of Reconnaissance&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Passive Reconnaissance :&amp;ndash; Doing the recon without coming in direct contact of the target. \&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Active Reconnaissance :&amp;ndash; Doing the active notecible action on the target site.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="passive-reconnaissance-includes">Passive Reconnaissance includes&lt;/h2>
&lt;ul>
&lt;li>local/Geo Information
&lt;ul>
&lt;li>Satellite Images&lt;/li>
&lt;li>Building layout&lt;/li>
&lt;li>Cabin location, fence, count of head in building, ways to exit, break areas, security fencing.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Job information&lt;/li>
&lt;li>Senior manager name, meeting routine, job title.&lt;/li>
&lt;li>Image from social sites like badge photo, cubical, desktop.&lt;/li>
&lt;/ul>
&lt;h2 id="web-and-network-information">Web and Network Information&lt;/h2>
&lt;h3 id="targe-validation">Targe Validation&lt;/h3>
&lt;p>First thing you have to do is, validate your target.&lt;/p>
&lt;p>Weather the description of given target is having the relating with the given ip&lt;/p>
&lt;h3 id="finding-subdomain">Finding Subdomain&lt;/h3>
&lt;p>Testing only one domain or some domain is decrease the chances of finding the flaw.&lt;/p>
&lt;p>Testing the all in-scope sub-domain is a good practice.&lt;/p>
&lt;p>Tool can be use for finding the subdomain are&lt;/p>
&lt;p>Google fu, dig, Nmap, sublist3r, bluto, crt.sh etc.&lt;/p>
&lt;h3 id="fingerprinting">Fingerprinting&lt;/h3>
&lt;p>We need to know which website running what on front or back.&lt;/p>
&lt;p>What&amp;rsquo;s running on the host.&lt;/p>
&lt;p>What&amp;rsquo;s web server, ssh, ftp, services.&lt;/p>
&lt;h3 id="data-breaches">Data Breaches&lt;/h3>
&lt;p>Just check if the credentials or account is pawned or not&lt;/p>
&lt;p>Use this to check&lt;/p>
&lt;p>havebeenpawned, Breach-prose, weleakinfo.&lt;/p>
&lt;p>&lt;strong>NOTE:&lt;/strong> Better Recon, enumeration makes you better pentester.&lt;/p>
&lt;h1 id="email-address-gathering-with-hunterio">Email Address gathering with Hunter.io&lt;/h1>
&lt;ul>
&lt;li>
&lt;p>You can use Hunter.io to find the people email address working or related to the domain you enter.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>In free plan it only provide the 20 searches as free, so do not abuse the searches.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>It also tell the where it get all emails written in source.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>You have to login with valid email id to have account.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>It also provide the category of email address, the department of the email owner.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h1 id="breach-phrase-from-github">Breach-Phrase from github&lt;/h1>
&lt;ul>
&lt;li>It is tool on the GitHub, it checks for the leaked credentials in its own in-build data of credentials&lt;/li>
&lt;li>This in build data is gather from the dark web store.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>NOTE:&lt;/strong> the gather email address are plays important role in further recon and enumeration.&lt;/p>
&lt;h1 id="utilizing-the-harvester">Utilizing the Harvester&lt;/h1>
&lt;ul>
&lt;li>It searches with the domain.&lt;/li>
&lt;li>It can gather the subdomain name, e-mail addresses, virtual hosts, open ports/banner, and employee name from different public sources like search engine, social site&lt;/li>
&lt;/ul>
&lt;h1 id="hunting-subdomain">Hunting Subdomain&lt;/h1>
&lt;p>We need see/identify what are the available or working subdomain out there.
use this&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Sublist3r&lt;/p>
&lt;ul>
&lt;li>Sometimes it only give the 3 level subdomain&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>crt.sh&lt;/p>
&lt;ul>
&lt;li>It give the all registered subdomain that can be 3 level or 4 level&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>OWASP Amass is more efficient tool than above mentioned&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Sublist3r is slow during to fast up increase the threads
&lt;strong>NOTE:&lt;/strong> Found subdomain may or may not alive.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h1 id="identifying-the-web-technologies">Identifying the Web Technologies&lt;/h1>
&lt;ul>
&lt;li>To Fingerprinting the web page or to get the services running in the background&lt;/li>
&lt;li>wappalyzer is browser extension which show the frontend and backend services.&lt;/li>
&lt;li>Terminal tool is whatweb
&lt;ul>
&lt;li>use &lt;code>whatweb -h&lt;/code> for more details of tool&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Basic Git Commands</title><link>https://ukantjadia.github.io/post/basic-git-commands/</link><pubDate>Sat, 30 Dec 2023 14:15:59 +0530</pubDate><guid>https://ukantjadia.github.io/post/basic-git-commands/</guid><description>&lt;h1 id="what-you-should-do-in-git">what you should do in git&lt;/h1>
&lt;ol>
&lt;li>git init -b main&lt;/li>
&lt;li>git remote add origin &amp;lt;repo_link&amp;gt;&lt;/li>
&lt;li>git remote -v&lt;/li>
&lt;/ol>
&lt;hr>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> to the root file of the project
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;+ Project &amp;#34;&lt;/span> &amp;gt;&amp;gt; README.md
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git init
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git add .
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git commit -m &lt;span class="s2">&amp;#34;README&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git branch -M Main
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git remote add origin &amp;lt;repo_link&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git push -u origin Main
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;ul>
&lt;li>pushing an existing repo from cli
git remote add origin &lt;a href="https://github.com/UserCtf777/Inkdrop.git" target="_blank" rel="noopener">https://github.com/UserCtf777/Inkdrop.git&lt;/a>
git branch -M Main
git push -u origin Main&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>after clonning any repo it have the address of origin, simply you cannot add your repo url for backup/project/ICR
for that you have to change the origin url follow the following command&lt;/p>
&lt;ul>
&lt;li>
&lt;p>to check the origin url try the remote verbose
git remote -v&lt;/p>
&lt;/li>
&lt;li>
&lt;p>to change the remote origin try
git remote set-url origin &amp;lt;repo_url&amp;gt;&lt;/p>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;ul>
&lt;li>
&lt;p>new error found&lt;/p>
&lt;/li>
&lt;li>
&lt;p>sometimes when we clone the repo we use depth=1 to remove it&amp;rsquo;s history&lt;/p>
&lt;/li>
&lt;li>
&lt;p>this give the error during pushing it to other origin&lt;/p>
&lt;/li>
&lt;li>
&lt;p>error looks like&lt;/p>
&lt;/li>
&lt;li>
&lt;pre>&lt;code> ![remote rejected] Main -&amp;gt; Main (shallow update not allowed)
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;pre>&lt;code> error: failed to push some refs to
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>to solve this try
git remote set-url &amp;lt;old_url&amp;gt;
git fetch &amp;ndash;unshallow old&lt;/p>
&lt;/li>
&lt;/ul>
&lt;ol>
&lt;li>git init -b main&lt;/li>
&lt;li>git remote add origin &amp;lt;repo_link&amp;gt;&lt;/li>
&lt;li>git remote -v&lt;/li>
&lt;/ol>
&lt;hr>
&lt;p>cd to the root file of the project
echo &amp;ldquo;+ Project &amp;quot; &amp;raquo; README.md
git init
git add .
git commit -m &amp;ldquo;README&amp;rdquo;
git branch -M Main
git remote add origin &amp;lt;repo_link&amp;gt;
git push -u origin Main&lt;/p>
&lt;hr>
&lt;ul>
&lt;li>pushing an existing repo from cli
git remote add origin &lt;a href="https://github.com/UserCtf777/Inkdrop.git" target="_blank" rel="noopener">https://github.com/UserCtf777/Inkdrop.git&lt;/a>
git branch -M Main
git push -u origin Main&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>after clonning any repo it have the address of origin, simply you cannot add your repo url for backup/project/ICR
for that you have to change the origin url follow the following command&lt;/p>
&lt;ul>
&lt;li>
&lt;p>to check the origin url try the remote verbose
git remote -v&lt;/p>
&lt;/li>
&lt;li>
&lt;p>to change the remote origin try
git remote set-url origin &amp;lt;repo_url&amp;gt;&lt;/p>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;ul>
&lt;li>
&lt;p>new error found&lt;/p>
&lt;/li>
&lt;li>
&lt;p>sometimes when we clone the repo we use depth=1 to remove it&amp;rsquo;s history&lt;/p>
&lt;/li>
&lt;li>
&lt;p>this give the error during pushing it to other origin&lt;/p>
&lt;/li>
&lt;li>
&lt;p>error looks like&lt;/p>
&lt;/li>
&lt;li>
&lt;pre>&lt;code> ![remote rejected] Main -&amp;gt; Main (shallow update not allowed)
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;pre>&lt;code> error: failed to push some refs to
&lt;/code>&lt;/pre>
&lt;/li>
&lt;li>
&lt;p>to solve this try
git remote set-url &amp;lt;old_url&amp;gt;
git fetch &amp;ndash;unshallow old
+!/bin/bash&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>cd ~/work/obs/Obsidian&lt;/p>
&lt;p>git add .
git commit -m &amp;lsquo;daily update&amp;rsquo;
git push&lt;/p>
&lt;p>+!/bin/bash&lt;/p>
&lt;ul>
&lt;li>
&lt;p>to make dir work as git repo
git init&lt;/p>
&lt;/li>
&lt;li>
&lt;p>to check the changes
git status&lt;/p>
&lt;/li>
&lt;li>
&lt;p>to sort/simplify the changes
git add .&lt;/p>
&lt;/li>
&lt;li>
&lt;p>git log shows the log of all commit done
git log&lt;/p>
&lt;/li>
&lt;li>
&lt;p>restore to discard the changes
git restore .&lt;/p>
&lt;/li>
&lt;li>
&lt;p>to commit the changes [with &amp;lsquo;-m&amp;rsquo; for successful commit/{-m =&amp;gt; metadata of changes}]
git commit -m &amp;ldquo;daily update&amp;rdquo;&lt;/p>
&lt;/li>
&lt;li>
&lt;p>git push to add new file to the repo
git push&lt;/p>
&lt;/li>
&lt;li>
&lt;p>command to add remote repo / it skip the authentication part during git push
git remote add origin &lt;a href="mailto:git@github.com">git@github.com&lt;/a>:UserCtf777/Obsidian.git
git branch -M master
git push -m origin master&lt;/p>
&lt;/li>
&lt;li>
&lt;p>To solve the conflicts during rebasing
git rebase &amp;ndash;continue + fix conflicts and run this
git rebase &amp;ndash;skip + to skip this patch/changes
git rebase &amp;ndash;abort + to checkout the original branch&lt;/p>
&lt;/li>
&lt;li>
&lt;p>When we have unresolved conflicts before merging or having error related to add
git fetch + to gain the latest changes from server
git merge origin master + to give a try to automatice merging&lt;/p>
&lt;/li>
&lt;li>
&lt;p>it will only work if branch has to merge something&amp;ndash; it can be checked with git status
git merge &amp;ndash;abort + the unresolved conflicts will be cleared off&lt;/p>
&lt;/li>
&lt;li>
&lt;p>to edit the conflicts
git rebase &amp;ndash;edit-todo
git rebase &amp;ndash;continue&lt;/p>
&lt;/li>
&lt;li>
&lt;p>if conflicts dosen&amp;rsquo;t resolve then
git rebase &amp;ndash;abort&lt;/p>
&lt;/li>
&lt;li>
&lt;p>it will give the path of unresolved files&lt;/p>
&lt;/li>
&lt;li>
&lt;p>if you know how to edit then resolve them&lt;/p>
&lt;/li>
&lt;li>
&lt;p>OR you can remove that confict by
git rm &lt;file>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>if nothing is ahppening you can skip the commit wiht
git rebase &amp;ndash;skip&lt;/p>
&lt;/li>
&lt;/ul></description></item><item><title>Enumeration Second Step for Exploitation</title><link>https://ukantjadia.github.io/post/enumeration-second-step-for-explotation/</link><pubDate>Sat, 30 Dec 2023 14:15:39 +0530</pubDate><guid>https://ukantjadia.github.io/post/enumeration-second-step-for-explotation/</guid><description>&lt;h1 id="enumeration">Enumeration&lt;/h1>
&lt;h2 id="kioptrix-level-1">Kioptrix level 1&lt;/h2>
&lt;ul>
&lt;li>Now as beginner we should a have vulnerable machine to test&lt;/li>
&lt;li>Use &lt;a href="Vhttps://www.vulnhub.com/entry/kioptrix-level-1-1,22/">kioptrix level a&lt;/a> from vulnhub.&lt;/li>
&lt;li>This is used for beginner to develop there skill by testing the vulnerable machine.&lt;/li>
&lt;li>Download it, and set up it on your virtual software.&lt;/li>
&lt;li>Make sure the network connection is set to &lt;code>NAT&lt;/code>&lt;/li>
&lt;li>Open the root folder(which contain all configuration files) and open configuration file and change &lt;code>Bridge&lt;/code> to &lt;code>NAT&lt;/code>&lt;/li>
&lt;li>&lt;code>I Coppied&lt;/code> select this option form pop dialogue&lt;/li>
&lt;li>Once the setup is done do the &lt;code>arp-scan -l&lt;/code>&lt;/li>
&lt;li>On your system it will discover the available host in your ip CHIR&lt;/li>
&lt;li>Ignore the x.x.x.1 and x.x.x.254 because this are your network identity and broadcast ip, Rest all machine are lying in your ip range.&lt;/li>
&lt;/ul>
&lt;h2 id="nmap-stealthy-scan">Nmap stealthy scan&lt;/h2>
&lt;p>What normal two-way connection looks like&lt;/p>
&lt;blockquote>
&lt;p>SYN &amp;lt;-&amp;gt; SYNACK &amp;lt;-&amp;gt; ACK&lt;/p>
&lt;/blockquote>
&lt;ul>
&lt;li>Stealthy scan doesn&amp;rsquo;t establish the connection it ask for the open port on the serve as server reply the status it will take the step back without establishing the connection.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>SYN &amp;lt;-&amp;gt; SYNACK &amp;lt;-&amp;gt; RST&lt;/p>
&lt;/blockquote>
&lt;ul>
&lt;li>Use this Namp flags for better enumeration
&lt;code>nmap -T4 -p- -A &amp;lt;ip_address&amp;gt;&lt;/code>&lt;/li>
&lt;li>Go through the scan properly&lt;/li>
&lt;li>Visit ip/webpage, check weather there you can do anything like directory busting.&lt;/li>
&lt;li>Get all services running, also check the header and behaviour.&lt;/li>
&lt;li>Do whatever you can do.&lt;/li>
&lt;li>Then use nikto web vulnerability tool.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>&lt;code>nikto -host &amp;lt;url&amp;gt;&lt;/code>&lt;/p>
&lt;/blockquote>
&lt;h2 id="directory-busting">Directory busting&lt;/h2>
&lt;ul>
&lt;li>dirbuster / birb / gobuster&lt;/li>
&lt;/ul>
&lt;h2 id="dirbuster">Dirbuster&lt;/h2>
&lt;ul>
&lt;li>start dirbuster from terminal&lt;/li>
&lt;li>fill the slot with information of your target&lt;/li>
&lt;li>for word file use &lt;code>/usr/share/wordlist/dirbuster&lt;/code>&lt;/li>
&lt;li>File extension depends on you or the time you have.&lt;/li>
&lt;li>Received/common url can be a information disclosure of anything like stats, user-data, server header, response.&lt;/li>
&lt;/ul></description></item><item><title>Dwmbar vs Dwmblocks, a Task Manager</title><link>https://ukantjadia.github.io/post/dwmbar-vs-dwmblocks-a-taskmanger/</link><pubDate>Sat, 30 Dec 2023 14:15:02 +0530</pubDate><guid>https://ukantjadia.github.io/post/dwmbar-vs-dwmblocks-a-taskmanger/</guid><description>&lt;h1 id="2022-05-17">2022-05-17&lt;/h1>
&lt;h2 id="problem-statement">problem statement&lt;/h2>
&lt;p>with dwmbar the cpu uses is touching its picks and that thing i don&amp;rsquo;t like&lt;/p>
&lt;h2 id="solution">solution&lt;/h2>
&lt;p>to solve this i am trying to get the dwmblocks of Bugswriter&lt;/p>
&lt;h2 id="error-or-problem-faced">error or problem faced&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>get repo&lt;/p>
&lt;/li>
&lt;li>
&lt;p>run make and you may get this error 🔽&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Pasted image 20220518015013.png&lt;/p>
&lt;/li>
&lt;li>
&lt;p>solving this we get this&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="solution-1">Solution&lt;/h2>
&lt;p>okh now the error is fixed&lt;/p>
&lt;p>So first know what is error about&lt;/p>
&lt;p>&lt;strong>error&lt;/strong>
we are trying to automatically compile the dwmblocks.c file and in the code the library which is ariseing the error that is -lX11
The path to solve this is we have to do the maual compilation of an C language file and that is very easy&lt;/p>
&lt;p>command for compilation is &lt;code>gcc dwmblocks.c -lX11 -o dwmblocks&lt;/code> ▶ gcc as in-build compiler, dwmblocks.c file to compile, -lX11 is lib adding manually during compilation, -o to get output with, dwmblocks as name of output file&lt;/p>
&lt;p>edit the config file according to required blocks&lt;/p>
&lt;p>NOTE📌 : cp the dwmblocks file to the &lt;code>/usr/local/bin&lt;/code> so it can run from any where&lt;/p>
&lt;p>take the dwmbloks script form lukesmith voidrice build use this&lt;/p>
&lt;p>add bar scripts in the &lt;code>/usr/local/bin&lt;/code> this path is given in the documentation of dwmblocks&lt;/p>
&lt;p>now you are ready to run&lt;/p>
&lt;p>&lt;strong>Command&lt;/strong>&lt;/p>
&lt;p>&lt;code>idconfig&lt;/code> &amp;ndash;&amp;gt; configure dynamic linker run-time bindings.&lt;/p>
&lt;p>Used to create links and cache to the most recent shared
libraries .&lt;/p>
&lt;p>&lt;code>gcc &amp;lt;-lib-to-add&amp;gt; -o &amp;lt;output-file-name&amp;gt;&lt;/code>&lt;/p>
&lt;p>&lt;code>gcc dwmblocks.c -lX11 -o dwmblocks&lt;/code>&lt;/p></description></item><item><title>Networking Command Netstat</title><link>https://ukantjadia.github.io/post/networking-command-netstat/</link><pubDate>Sat, 30 Dec 2023 14:14:11 +0530</pubDate><guid>https://ukantjadia.github.io/post/networking-command-netstat/</guid><description>&lt;h1 id="learn-netstat">Learn Netstat&lt;/h1>
&lt;blockquote>
&lt;p>A basic &lt;code>Linux&lt;/code> network command&lt;/p>
&lt;/blockquote>
&lt;h2 id="netstat">NETSTAT&lt;/h2>
&lt;ul>
&lt;li>Prints the network connection and routing tables.&lt;/li>
&lt;li>Like an CCTV monitor for every connection come in and go out from your machine.&lt;/li>
&lt;li>MiniManual&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;ul>
&lt;li>&lt;code>netstat -ant&lt;/code> : &lt;code>a&lt;/code> for all connection, &lt;code>n&lt;/code> for numeric, &lt;code>t&lt;/code> for all TCP connection//&lt;code>u&lt;/code> for the UDP connection&lt;/li>
&lt;li>&lt;code>netstat -rnec&lt;/code> :&lt;code>r&lt;/code> for the route information, &lt;code>n&lt;/code> numeric, &lt;code>e&lt;/code> extend, &lt;code>c&lt;/code> continous prints the result&lt;/li>
&lt;li>&lt;code>netstat -stuw&lt;/code> : &lt;code>s&lt;/code> for statistics summary,&lt;code>t/u&lt;/code> for tcp/udp, &lt;code>w&lt;/code> prints raw data&lt;/li>
&lt;li>&lt;code>netstat -tulpn&lt;/code> : it shows the connectio with PID numbers&lt;/li>
&lt;li>&lt;code>lsof -i&lt;/code> : it establish the connection&lt;/li>
&lt;/ul>
&lt;/blockquote></description></item><item><title>A Twitter Bot- WiseMonkey77</title><link>https://ukantjadia.github.io/project/wisemonkey77/</link><pubDate>Sun, 07 Aug 2022 00:00:00 +0000</pubDate><guid>https://ukantjadia.github.io/project/wisemonkey77/</guid><description>&lt;p>This was an X(Twitter) bot that posted images containing a quote taken from the best quote REST API, every 24 hours, using cron jobs. I utilize the pillow library for adding quotes on the image. It generates images tweets them and also adds them to the local database&lt;/p>
&lt;p>The automated posting is done due to the cron jobs in the Linux OS.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710056367827" srcset="
/project/wisemonkey77/image/index/1710056367827_hu3346a2e8a4ffde1a0331467c5285e76d_104730_023541de5c8fae3978c7a7358af0706b.webp 400w,
/project/wisemonkey77/image/index/1710056367827_hu3346a2e8a4ffde1a0331467c5285e76d_104730_7e5d13b59d9bcce13f0f1a4c3d800351.webp 760w,
/project/wisemonkey77/image/index/1710056367827_hu3346a2e8a4ffde1a0331467c5285e76d_104730_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/wisemonkey77/image/index/1710056367827_hu3346a2e8a4ffde1a0331467c5285e76d_104730_023541de5c8fae3978c7a7358af0706b.webp"
width="663"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="1710056397878" srcset="
/project/wisemonkey77/image/index/1710056397878_huec2e25320fb329153e3e067bae0cd305_135648_58f6bae73422c2fb8f8418f874792490.webp 400w,
/project/wisemonkey77/image/index/1710056397878_huec2e25320fb329153e3e067bae0cd305_135648_43a566b10475013d8bde3a8c3313ee7c.webp 760w,
/project/wisemonkey77/image/index/1710056397878_huec2e25320fb329153e3e067bae0cd305_135648_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://ukantjadia.github.io/project/wisemonkey77/image/index/1710056397878_huec2e25320fb329153e3e067bae0cd305_135648_58f6bae73422c2fb8f8418f874792490.webp"
width="624"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item></channel></rss>