Linux: Directories

A table summarizing Linux directories for a quick reference.

March 30, 2025

Generate SSH Keys

Adding New ssh Key Create .ssh key: ssh-keygen -t rsa -b 4096 -C "email" Save it the keys in a specific directory location Add the key to ssh agent ssh-add /home/user/.ssh/ssh-filename Verify the key has been added ssh-add -l Output: Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa): /home/username/.ssh/temp Enter passphrase for "/home/username/.ssh/temp" (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/username/.ssh/temp Your public key has been saved in /home/username/.ssh/temp.pub The key fingerprint is: SHA256:zUJ0dU9gncA7rVf6+C5BsMmBVdHmCMUqzkEGWpu6QWM temp@gmail.com The key's randomart image is: +---[RSA 4096]----+ | +..++=O=o| | + ++ ++.++| | E +o . Bo+.| | o + oo =oo.o| | o Sooo .o..| | o .o .o. | | . .+ | | o .| | +o| +----[SHA256]-----+' username@fedora:~$ ssh-add /home/username/.ssh/temp Identity added: /home/username/.ssh/temp (temp@gmail.com) username@fedora:~$ ssh-add -l 4096 SHA256:<keys> <email> (RSA) 4096 SHA256:<keys> <email> (RSA) 3072 SHA256:<keys> <email> (RSA) 4096 SHA256:<keys> <email> (RSA)

March 29, 2025
git-screenshot

Git Basics: Essential Commands

A quick reference guide to the most essential Git commands for everyday use, including initializing repositories, making commits, branching, and working with remotes.

March 29, 2025 Â· 2 min Â· Yashwanth Rathakrishnan

Instant Page Deploy Hugo: holy

I noticed that I’m keep deploying many pages on Github and still looking at the documentation. So I decided to make a short documentation how to do it fast (keeping me from looking at the documentation) Create a hugo site in a specific directory you want: hugo new site sitename Replace the sitename with the actual sitename you want to create. Head inside the directory(hugo site) cd sitename git init Download a theme (we’re using holy theme here) git submodule add https://github.com/serkodev/holy.git themes/holy echo "theme = 'holy'" >> hugo.toml Let’s test it locally! hugo server Create a GitHub Repository Head inside the Repository on GitHub Goto Settings > Pages Change the Source settings to “GitHub Actions” Create a file named hugo.yaml inside .github/workflows mkdir -p .github/workflows touch .github/workflows/hugo.yaml Copy and paste the text into YAML file # Sample workflow for building and deploying a Hugo site to GitHub Pages name: Deploy Hugo site to Pages on: # Runs on pushes targeting the default branch push: branches: - main # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: "pages" cancel-in-progress: false # Default to bash defaults: run: shell: bash jobs: # Build job build: runs-on: ubuntu-latest env: HUGO_VERSION: 0.144.2 steps: - name: Install Hugo CLI run: | wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ && sudo dpkg -i ${{ runner.temp }}/hugo.deb - name: Install Dart Sass run: sudo snap install dart-sass - name: Checkout uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 - name: Setup Pages id: pages uses: actions/configure-pages@v5 - name: Install Node.js dependencies run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" - name: Build with Hugo env: HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache HUGO_ENVIRONMENT: production TZ: America/Los_Angeles run: | hugo \ --gc \ --minify \ --baseURL "${{ steps.pages.outputs.base_url }}/" - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: ./public # Deployment job deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 Head inside the root directory of your sitename hugo git add -A git commit -m "deploying the sitename" git push origin main

March 7, 2025

Getting Started with nmcli (NetworkManager CLI)

What is nmcli? The nmcli means NetworkManager Command Line Interface. It’s command-line utility tool used for controlling NetworkManager and reporting network status. In simple terms, we use that to interact with network related devices. How to use it? I don’t have proper way to explain, but let’s learn it with a case-scenario: Connect to a wifi network: Turn on the wifi module: sudo nmcli radio wifi on List the available networks: sudo nmcli device wifi list In case, it didn’t display any network, please rescan the available network and list it: ...

February 23, 2025
NVIDIA-linux

Switch to NVIDIA GPU on Fedora Linux

Note: Make sure to Disable Secure Boot, else whatever you do it won’t work :) Install & Switch 1. Install the required dependencies sudo dnf install akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cuda 2. Edit the environment configuration file for your shell sudo nano /etc/environment 3. Add the following lines to enable the GPU __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only 4. Restart the system sudo reboot Download and execute this script to automate the above process! ...

January 27, 2025