<?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: Niloy Majumder</title>
    <description>The latest articles on DEV Community by Niloy Majumder (@bluefloyd).</description>
    <link>https://dev.to/bluefloyd</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%2F957344%2F61c5e5fe-9f11-4bd6-8375-577f84aa0689.jpg</url>
      <title>DEV Community: Niloy Majumder</title>
      <link>https://dev.to/bluefloyd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bluefloyd"/>
    <language>en</language>
    <item>
      <title>A Complete Beginner's Guide to Zsh Setup on WSL</title>
      <dc:creator>Niloy Majumder</dc:creator>
      <pubDate>Sun, 22 Jun 2025 18:50:46 +0000</pubDate>
      <link>https://dev.to/bluefloyd/a-complete-beginners-guide-to-zsh-setup-on-wsl-34l3</link>
      <guid>https://dev.to/bluefloyd/a-complete-beginners-guide-to-zsh-setup-on-wsl-34l3</guid>
      <description>&lt;p&gt;bluefloyd • June 23rd 2025&lt;/p&gt;

&lt;p&gt;If you're a new developer using WSL (Windows Subsystem for Linux) and want a terminal that feels fast, looks amazing, and helps you work smarter, setting up &lt;code&gt;zsh&lt;/code&gt; with a few enhancements can completely change your workflow. In this blog post, I'll walk you through my complete Zsh setup on WSL, step-by-step.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyx43d7rjht9d4s4r9h4s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyx43d7rjht9d4s4r9h4s.png" alt="zsh preview" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧰 Setup
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Zsh (with Oh My Zsh)&lt;/li&gt;
&lt;li&gt;Powerlevel10k theme&lt;/li&gt;
&lt;li&gt;Plugins: Autosuggestions &amp;amp; Syntax Highlighting&lt;/li&gt;
&lt;li&gt;Nerd Fonts&lt;/li&gt;
&lt;li&gt;GUI Terminal &amp;amp; Dircolors themes&lt;/li&gt;
&lt;li&gt;Useful dev aliases&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Before diving into the ZSH setup, let's make sure you have WSL (Windows Subsystem for Linux) with Ubuntu installed on your system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verify WSL and Ubuntu Installation
&lt;/h2&gt;

&lt;p&gt;Open your terminal (Command Prompt or PowerShell) and run the following command to check if WSL is installed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;wsl &lt;span class="nt"&gt;--list&lt;/span&gt; &lt;span class="nt"&gt;--verbose&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If Ubuntu is installed properly, you should see an output similar to this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  NAME      STATE           VERSION
&lt;span class="k"&gt;*&lt;/span&gt; Ubuntu    Running         2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you don’t have WSL or Ubuntu set up yet, you can install them by following Microsoft’s official guide here: &lt;a href="https://learn.microsoft.com/en-us/windows/wsl/install" rel="noopener noreferrer"&gt;Install WSL&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now get back into the main process.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Step-by-Step Zsh Setup on WSL (Ubuntu)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Install Zsh &amp;amp; Oh My Zsh
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;zsh &lt;span class="nt"&gt;-y&lt;/span&gt;
sh &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  2. Set Zsh as Your Default Shell
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;chsh &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;which zsh&lt;span class="si"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;You may need to restart WSL for the change to apply.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  3. Install Powerlevel10k Theme
&lt;/h3&gt;

&lt;p&gt;Copy the following into your WSL terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &lt;span class="nt"&gt;--depth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 https://github.com/romkatv/powerlevel10k.git &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="p"&gt;/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/themes/powerlevel10k
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, edit &lt;code&gt;~/.zshrc&lt;/code&gt;:&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="nv"&gt;ZSH_THEME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"powerlevel10k/powerlevel10k"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run:&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;source&lt;/span&gt; ~/.zshrc
p10k configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  For &lt;a href="https://github.com/ohmyzsh/ohmyzsh/wiki/Themes" rel="noopener noreferrer"&gt;more theme&lt;/a&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4. Install Nerd Font (for Icons)
&lt;/h3&gt;

&lt;p&gt;Powerlevel10k needs a Nerd Font. I recommend &lt;strong&gt;MesloLGS NF&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Download here: &lt;a href="https://github.com/romkatv/powerlevel10k#manual-font-installation" rel="noopener noreferrer"&gt;https://github.com/romkatv/powerlevel10k#manual-font-installation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install on Windows&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set it as the font in Windows Terminal &amp;gt; Settings &amp;gt; Ubuntu profile &amp;gt; Appearance &amp;gt; Font Face&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. Install Plugins
&lt;/h3&gt;

&lt;p&gt;I didn't install so many plugins as I don't need many of them, so I only used plugins for editing text and a couple of plugins for formatting. However, if you need to install more plugins you can visit the list of extensions from here &lt;a href="https://github.com/ohmyzsh/ohmyzsh/wiki/plugins" rel="noopener noreferrer"&gt;Zsh Plugins&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Autosuggestions:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/zsh-users/zsh-autosuggestions &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/plugins/zsh-autosuggestions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Syntax Highlighting:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/zsh-users/zsh-syntax-highlighting.git &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ZSH_CUSTOM&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="p"&gt;~/.oh-my-zsh/custom&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;/plugins/zsh-syntax-highlighting
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add plugins to your &lt;code&gt;~/.zshrc&lt;/code&gt;:&lt;br&gt;
Then find the plugins=(...) line and add:&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="nv"&gt;plugins&lt;/span&gt;&lt;span class="o"&gt;=(&lt;/span&gt;git zsh-autosuggestions zsh-syntax-highlighting&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then reload:&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;source&lt;/span&gt; ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🎨 Color Scheme (optional): Solarized Dark Dircolors Theme
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/seebi/dircolors-solarized.git ~/.solarized-dircolors
&lt;span class="nb"&gt;cp&lt;/span&gt; ~/.solarized-dircolors/dircolors.ansi-dark ~/.dircolors
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In &lt;code&gt;~/.zshrc&lt;/code&gt;, add:&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;eval&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;dircolors&lt;/span&gt; &lt;span class="nt"&gt;-b&lt;/span&gt; ~/.dircolors&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Useful Developer Aliases
&lt;/h2&gt;

&lt;p&gt;Add these to the bottom of your &lt;code&gt;~/.zshrc&lt;/code&gt;:&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;alias &lt;/span&gt;&lt;span class="nv"&gt;ll&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'ls -la --color=auto'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;gs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'git status'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;ga&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'git add .'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;gc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'git commit -m'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;gp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'git push'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;codehere&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'code .'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;open&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'explorer.exe'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;desktop&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'cd /mnt/c/Users/$USER/Desktop'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then reload the &lt;code&gt;zsh&lt;/code&gt; config file:&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;source&lt;/span&gt; ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;This setup turns your terminal into a beautiful, fast, and powerful command center for development. This is my first tech blog, since I'm also a newbie, trying to explore things, get ideas, and share this with the world, so I might have some mistakes. Pardon me. Thank you for reading.&lt;br&gt;
If you give this setup a try, I’d love to hear your thoughts in the comments!&lt;/p&gt;

&lt;p&gt;Connect with me:&lt;br&gt;
&lt;a href="https://linekedin.com/in/niloymajumderr" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt; or &lt;a href="https://github.com/niloymajumder" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>bash</category>
      <category>terminal</category>
      <category>zsh</category>
      <category>shell</category>
    </item>
  </channel>
</rss>
