<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Carbon Labs</title>
    <description>The latest articles on DEV Community by Carbon Labs (@carbonlabs).</description>
    <link>https://dev.to/carbonlabs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2331752%2Fb26f1e16-eef5-42b4-b3e5-840db9a808b2.jpg</url>
      <title>DEV Community: Carbon Labs</title>
      <link>https://dev.to/carbonlabs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/carbonlabs"/>
    <language>en</language>
    <item>
      <title>git@github.com: Permission denied (Linux Guide)</title>
      <dc:creator>Carbon Labs</dc:creator>
      <pubDate>Fri, 13 Dec 2024 13:09:42 +0000</pubDate>
      <link>https://dev.to/carbonlabs/gitgithubcom-permission-denied-19g4</link>
      <guid>https://dev.to/carbonlabs/gitgithubcom-permission-denied-19g4</guid>
      <description>&lt;h2&gt;
  
  
  GitHub SSH Authentication and Email Privacy Guide (&lt;a href="mailto:git@github.com"&gt;git@github.com&lt;/a&gt;: Permission denied)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  If you ever encounter the error below, be sure to check this guide:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git@github.com: Permission denied &lt;span class="o"&gt;(&lt;/span&gt;publickey&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
fatal: Could not &lt;span class="nb"&gt;read &lt;/span&gt;from remote repository.

Please make sure you have the correct access rights and the repository exists.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Git installed&lt;/li&gt;
&lt;li&gt;GitHub account&lt;/li&gt;
&lt;li&gt;Linux/Unix terminal (bash)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Check for Existing SSH Keys
&lt;/h2&gt;

&lt;p&gt;First, check if you already have SSH keys:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-al&lt;/span&gt; ~/.ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look for files like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;id_rsa&lt;/code&gt; (private key)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;id_rsa.pub&lt;/code&gt; (public key)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Generate a New SSH Key
&lt;/h2&gt;

&lt;p&gt;If you want to delete the existing keys (id_rsa, id_rsa.pub) and start over, follow these steps:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Remove private key&lt;/span&gt;
&lt;span class="nb"&gt;rm&lt;/span&gt; ~/.ssh/id_rsa

&lt;span class="c"&gt;# Remove public key&lt;/span&gt;
&lt;span class="nb"&gt;rm&lt;/span&gt; ~/.ssh/id_rsa.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or remove multiple key pairs (if you have)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Remove all RSA keys&lt;/span&gt;
&lt;span class="nb"&gt;rm&lt;/span&gt; ~/.ssh/id_rsa&lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If no existing keys are found, generate a new SSH key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh-keygen &lt;span class="nt"&gt;-t&lt;/span&gt; rsa &lt;span class="nt"&gt;-b&lt;/span&gt; 4096 &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="s2"&gt;"your_email@example.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Key Generation Steps:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;When prompted for file location, press Enter to accept default&lt;/li&gt;
&lt;li&gt;Optional: Set a passphrase for additional security&lt;/li&gt;
&lt;li&gt;The system will generate two files: 

&lt;ul&gt;
&lt;li&gt;Private key (&lt;code&gt;id_rsa&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Public key (&lt;code&gt;id_rsa.pub&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can always check it from here:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-al&lt;/span&gt; ~/.ssh
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  3. Email Privacy Configuration
&lt;/h2&gt;

&lt;h3&gt;
  
  
  GitHub Email Privacy
&lt;/h3&gt;

&lt;p&gt;GitHub provides several options to protect your email privacy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Public Email Address&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visible to everyone on GitHub&lt;/li&gt;
&lt;li&gt;Used in commit metadata&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Private Email Address&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provided by GitHub&lt;/li&gt;
&lt;li&gt;Keeps your personal email hidden&lt;/li&gt;
&lt;li&gt;Format: &lt;code&gt;username@users.noreply.github.com&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Configuring Email Privacy
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Step 1: GitHub Account Settings
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to &lt;a href="https://github.com/settings/emails" rel="noopener noreferrer"&gt;GitHub Email Settings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Choose your preferred privacy option:

&lt;ul&gt;
&lt;li&gt;Keep email address private&lt;/li&gt;
&lt;li&gt;Use GitHub-provided private email&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Step 2: Configure Local Git Email
&lt;/h4&gt;

&lt;p&gt;Use the GitHub-provided private email for commits:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Set global Git email (replace with your GitHub username)&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"username@users.noreply.github.com"&lt;/span&gt;

&lt;span class="c"&gt;# Optionally set your name&lt;/span&gt;
git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Verification
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Check current Git configuration:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email
  git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Display Your Public SSH Key
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; ~/.ssh/id_rsa.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the entire output - this is the key you'll add to GitHub.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Add SSH Key to GitHub
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Web Interface Steps:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Log into GitHub.com&lt;/li&gt;
&lt;li&gt;Click on your profile picture → Settings&lt;/li&gt;
&lt;li&gt;Navigate to "SSH and GPG keys"&lt;/li&gt;
&lt;li&gt;Click "New SSH key"&lt;/li&gt;
&lt;li&gt;Give the key a descriptive title (e.g., "MyThinkPad")&lt;/li&gt;
&lt;li&gt;Paste the copied public key&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  6. Configure SSH Agent
&lt;/h2&gt;

&lt;p&gt;Start the SSH agent and add your key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Start the SSH agent&lt;/span&gt;
&lt;span class="nb"&gt;eval&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;ssh-agent &lt;span class="nt"&gt;-s&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;

&lt;span class="c"&gt;# Add your SSH private key&lt;/span&gt;
ssh-add ~/.ssh/id_rsa
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. Test GitHub Connection
&lt;/h2&gt;

&lt;p&gt;Verify your SSH connection:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &lt;span class="nt"&gt;-T&lt;/span&gt; git@github.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Expected output includes a success message with your GitHub username like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="s2"&gt;"Hi &amp;lt;username&amp;gt;! You've successfully authenticated, but GitHub does not provide shell access."&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Troubleshooting Common Issues
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Permission Denied Errors
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Ensure key permissions are correct:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nb"&gt;chmod &lt;/span&gt;600 ~/.ssh/id_rsa
  &lt;span class="nb"&gt;chmod &lt;/span&gt;644 ~/.ssh/id_rsa.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Multiple GitHub Accounts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use different keys for different accounts&lt;/li&gt;
&lt;li&gt;Configure &lt;code&gt;~/.ssh/config&lt;/code&gt; to specify keys&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Best Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use a strong passphrase&lt;/li&gt;
&lt;li&gt;Regularly rotate SSH keys&lt;/li&gt;
&lt;li&gt;Remove keys from GitHub when no longer in use&lt;/li&gt;
&lt;li&gt;Protect your email privacy&lt;/li&gt;
&lt;li&gt;Use GitHub-provided private email for commits&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Verification Checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SSH key generated&lt;/li&gt;
&lt;li&gt;Key added to GitHub&lt;/li&gt;
&lt;li&gt;SSH agent configured&lt;/li&gt;
&lt;li&gt;Email privacy configured&lt;/li&gt;
&lt;li&gt;Successful GitHub connection test&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh" rel="noopener noreferrer"&gt;GitHub SSH Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/settings/emails" rel="noopener noreferrer"&gt;GitHub Email Privacy Settings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>webdev</category>
      <category>developer</category>
    </item>
    <item>
      <title>10 Essential Linux Commands Every Beginner Must Know</title>
      <dc:creator>Carbon Labs</dc:creator>
      <pubDate>Sun, 03 Nov 2024 04:55:29 +0000</pubDate>
      <link>https://dev.to/carbonlabs/10-essential-linux-commands-every-beginner-must-know-4klg</link>
      <guid>https://dev.to/carbonlabs/10-essential-linux-commands-every-beginner-must-know-4klg</guid>
      <description>&lt;p&gt;If you are just starting with Linux, the command line interface (CLI) might seem confusing, or you might have no idea what to do with it. The Linux terminal is not like Windows or macOS, where you can do your tasks through graphical interfaces. Making a new folder, new file, or navigating is easy in Windows - with the help of a few clicks, we can do most things. But Linux users rely on commands. Don't worry - you don't need to memorise hundreds of commands to get started with Linux.&lt;/p&gt;

&lt;p&gt;In this guide, you'll learn the 10 most essential Linux commands that will help you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate through directories confidently&lt;/li&gt;
&lt;li&gt;Manage files and folders effectively&lt;/li&gt;
&lt;li&gt;Handle basic system operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whether you have little knowledge or no knowledge of Linux, or you are just curious about it, these most-used commands will form a great foundation for your Linux expertise.&lt;br&gt;
Let's dive in and learn the Linux command line!&lt;/p&gt;

&lt;h2&gt;
  
  
  1. pwd (Print Working Directory)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;pwd&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Shows your current location in the file system&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;pwd -L&lt;/code&gt;: Show logical path (follows symbolic links)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pwd -P&lt;/code&gt;: Show physical path (shows actual path in filesystem)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;
  /home/username
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;When you're lost in the directory structure&lt;/li&gt;
&lt;li&gt;Before executing file operations to confirm location&lt;/li&gt;
&lt;li&gt;In shell scripts to verify working directory&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. ls (List Directory Contents)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;ls&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Lists files and directories in the current location&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ls -l&lt;/code&gt;: Long format with details&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ls -a&lt;/code&gt;: Show hidden files&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ls -h&lt;/code&gt;: Human-readable file sizes&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ls -R&lt;/code&gt;: Recursive listing&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ls -t&lt;/code&gt;: Sort by modification time&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-lh&lt;/span&gt;
  total 24K
  drwxr-xr-x 2 user user 4.0K Oct 30 10:00 Documents
  &lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 user user 2.5K Oct 30 09:45 file.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;View directory contents&lt;/li&gt;
&lt;li&gt;Check file permissions and sizes&lt;/li&gt;
&lt;li&gt;Find recently modified files&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. cd (Change Directory)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;cd&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Changes your current working directory&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cd ..&lt;/code&gt;: Move up one directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cd ~&lt;/code&gt;: Go to home directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cd -&lt;/code&gt;: Go to previous directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cd /&lt;/code&gt;: Go to root directory&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;Documents
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ../Downloads
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/Projects
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Navigate through directory structure&lt;/li&gt;
&lt;li&gt;Quick access to home directory&lt;/li&gt;
&lt;li&gt;Return to previous location&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. mkdir (Make Directory)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;mkdir&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Creates new directories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mkdir -p&lt;/code&gt;: Create parent directories if needed&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mkdir -m&lt;/code&gt;: Set directory permissions&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mkdir -v&lt;/code&gt;: Verbose mode, print message for each directory&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;NewFolder
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; Projects/Website/src
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-m&lt;/span&gt; 755 SecureFolder
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Create project directories&lt;/li&gt;
&lt;li&gt;Set up directory structures&lt;/li&gt;
&lt;li&gt;Make directories with specific permissions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. rm (Remove)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;rm&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Removes files and directories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;rm -r&lt;/code&gt;: Remove directories and contents&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rm -f&lt;/code&gt;: Force removal without confirmation&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rm -i&lt;/code&gt;: Interactive mode (ask before removal)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rm -v&lt;/code&gt;: Verbose mode&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;rm &lt;/span&gt;file.txt
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; OldProject
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; important.doc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Warning&lt;/strong&gt;: Use with caution - deleted files cannot be recovered!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Delete unwanted files&lt;/li&gt;
&lt;li&gt;Clean up temporary files&lt;/li&gt;
&lt;li&gt;Remove empty/unwanted directories&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. cp (Copy)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;cp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Copies files and directories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cp -r&lt;/code&gt;: Copy directories recursively&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cp -i&lt;/code&gt;: Interactive mode&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cp -v&lt;/code&gt;: Verbose mode&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cp -p&lt;/code&gt;: Preserve permissions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cp &lt;/span&gt;file.txt backup.txt
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; Project ProjectBackup
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; script.sh /usr/local/bin/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Create file backups&lt;/li&gt;
&lt;li&gt;Copy project directories&lt;/li&gt;
&lt;li&gt;Deploy scripts/programs&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. mv (Move/Rename)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;mv&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Moves or renames files and directories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mv -i&lt;/code&gt;: Interactive mode&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mv -n&lt;/code&gt;: No overwrite&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mv -v&lt;/code&gt;: Verbose mode&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;mv -u&lt;/code&gt;: Update (move only newer files)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mv &lt;/span&gt;oldname.txt newname.txt
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mv &lt;/span&gt;file.txt ~/Documents/
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;mv&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; important.doc backup/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Rename files/directories&lt;/li&gt;
&lt;li&gt;Organize files into folders&lt;/li&gt;
&lt;li&gt;Move completed work to new locations&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. grep (Global Regular Expression Print)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;grep&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Searches text patterns in files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;grep -i&lt;/code&gt;: Case insensitive&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;grep -r&lt;/code&gt;: Recursive search&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;grep -l&lt;/code&gt;: Show only filenames&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;grep -n&lt;/code&gt;: Show line numbers&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;grep -v&lt;/code&gt;: Invert match&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s2"&gt;"error"&lt;/span&gt; log.txt
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s2"&gt;"TODO"&lt;/span&gt; ./project
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"warning"&lt;/span&gt; &lt;span class="k"&gt;*&lt;/span&gt;.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Search logs for errors&lt;/li&gt;
&lt;li&gt;Find specific code patterns&lt;/li&gt;
&lt;li&gt;Filter command output&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  9. chmod (Change Mode)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;chmod&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Changes file/directory permissions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Numeric mode: &lt;code&gt;chmod 755 file&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Symbolic mode: &lt;code&gt;chmod u+x file&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;chmod -R&lt;/code&gt;: Recursive change&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;chmod -v&lt;/code&gt;: Verbose mode&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x script.sh
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;644 file.txt
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; 755 directory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Make scripts executable&lt;/li&gt;
&lt;li&gt;Set secure file permissions&lt;/li&gt;
&lt;li&gt;Modify directory access rights&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  10. cat (Concatenate)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Command&lt;/strong&gt;: &lt;code&gt;cat&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it does&lt;/strong&gt;: Display, combine, and create text files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Common options&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;cat -n&lt;/code&gt;: Number lines&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cat -b&lt;/code&gt;: Number non-blank lines&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cat -s&lt;/code&gt;: Squeeze blank lines&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Example&lt;/strong&gt;:
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;file.txt
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;file1 file2 &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; combined.txt
  &lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; newfile.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use cases&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;View file contents&lt;/li&gt;
&lt;li&gt;Combine multiple files&lt;/li&gt;
&lt;li&gt;Create small text files&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;These 10 commands form the foundation of your Linux command-line journey. Practice them regularly, and soon they'll become second nature. Remember to use the &lt;code&gt;man&lt;/code&gt; command (e.g., &lt;code&gt;man ls&lt;/code&gt;) to learn more about any command's options and usage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pro Tips
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Use Tab for auto-completion of commands and file names&lt;/li&gt;
&lt;li&gt;Access command history with up/down arrow keys&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;history&lt;/code&gt; command to see previously used commands&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>ubuntu</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
