The Best Way To Run Linux Shell On Windows

Arunkl
TheSecMaster
Published in
11 min readApr 17, 2023
Linux penguin and windows logo on a dark blue background
Source: thesecmaster.com

If you are a user who uses Windows PC for general purpose work and then just want to try out some Linux distributions on your Windows, then this post may not suit you. This post is for those who use computers for programming and development or engineering and scientific works. In this post, we are not going to show you how to run full-size Linux distributions like Ubuntu, Kali, Linux Mint, or any other operating system. However, we will show you how to run the Linux shell on Windows using Cygwin, an open-source tool that allows running the Linux shell, commands, install Linux packages and scripts on Windows. If you are a developer, system administrator, security engineer, or any IT professional, if your work needs to run the Linux shell on your Windows machine, then this post is for you.

Let’s see more about Cygwin and how to use Cygwin to run the Linux shell on Windows in this post.

Table of Contents

· What Is Cygwin?
· Benefits Of Using Cygwin:
· Why Should You Run Linux The Shell On Windows?
· Basic Requirements To Run Cygwin:
· How To Run The Linux Shell On Windows?
· How To Install A Package Manager In Cygwin?
· How To Install Packages In Cygwin?
· How To Uninstall Cygwin From Windows?

What Is Cygwin?

Cygwin is a free and open-source software development environment for Microsoft Windows. It consists of two parts: a DLL (cygwin1.dll) that acts as a Linux API emulation layer providing substantial Linux API functionality and an extensive collection of tools, libraries, and documentation.

Cygwin provides native integration of Windows-based applications, data, and other system resources with applications, tools, and data of the Unix-like environment. Thus it is possible to launch Windows applications from the Cygwin environment, as well as to use Cygwin tools and POSIX applications within the Windows operating system.

Cygwin consists of two parts:

  1. The Cygwin DLL provides the POSIX API functionality.
  2. An extensive set of tools, libraries, and documentation that provide a Unix-like environment.

Cygwin provides a number of features that are not typically found on other Windows platforms, such as:

  • POSIX compliance — including support for POSIX applications, tools, and data.
  • Unix-like file permissions and ownership.
  • Unix-like process management.
  • Unix domain sockets.
  • Pipes and FIFOs.
  • Selectable POSIX signal handling.
  • Full-featured /bin/sh compatible shell.

In addition, Cygwin also provides a wide variety of GNU and other open-source tools which have been ported to the Windows platform and access to the Win32 API.

In summary, Cygwin is not a virtual machine — instead, it is a collection of tools that allow Windows applications and programs to interact with each other as if they were running in a Unix-like environment.

Benefits Of Using Cygwin:

There are arrays of benefits of using Cygwin. Some include:

  1. Cygwin is a great tool for developing and managing software projects.
  2. Cygwin is a great way to get UNIX tools on a Windows system.
  3. Cygwin can be used to compile and run many popular UNIX programs on a Windows system.
  4. Cygwin provides a complete UNIX-like environment for Windows, which is very handy for developers who need to work in both environments.
  5. Cygwin is also very portable, so it can be easily installed on many different types of systems.
  6. Cygwin speeds up the development process by allowing developers to work on multiple platforms simultaneously.
  7. Cygwin makes it easy to port software from one platform to another, making it an ideal tool for developing cross-platform applications.
  8. Cygwin simplifies the process of debugging and troubleshooting software issues by providing access to a wealth of tools and information.
  9. Cygwin is free and easy to use, making it an attractive option for developers of all experience levels.

Why Should You Run Linux The Shell On Windows?

Linux shell is a command-line interface that allows you to interact with the operating system. Shells are used to access computer systems and perform tasks such as managing files, running applications, and configuring settings.

As a Windows user, you may be used to using the command prompt or PowerShell for doing various tasks. But what if you could use a Linux shell on Windows?

Doing so would give you access to a wide range of powerful tools and utilities that are not available on Windows. In addition, you would be able to use Bash scripts and commands, which can automate many tasks.

Here are some reasons why you should run the Linux shell on Windows:

  • You Can Use Powerful Tools and Utilities: When you use a Linux shell on Windows, you have access to all the powerful tools and utilities that are available on Linux. This includes things like grep, awk, sed, and more. These tools can be extremely helpful when it comes to managing and analyzing data.
  • You Can Use Bash Scripts: Bash scripts are a great way to automate tasks. If you know how to write a Bash script, you can automate just about anything. This can save you a lot of time and effort in the long run.
  • Development Options: Many popular applications and programming languages are designed to work best on Linux. It speeds up the development process by allowing developers to work on multiple platforms simultaneously.
  • It’s Free: Another great thing about running a Linux shell on Windows is that it’s free. You won’t have to pay anything to set it up or use it.
  • For Fun: Finally, it’s just plain fun! Using a Linux shell can be a great way to learn more about how Linux works and get a feel for this different operating system. Plus, it can be a great way to make your Windows machine feel a bit more like a Unix box.😉

So if you’re looking for a new and exciting way to use your Windows machine, give running a Linux shell a try! You just might be surprised at how much you enjoy it.

Basic Requirements To Run Cygwin:

Cygwin doesn’t require more memory or processor to install and run. However, it all depends on how many packages you need to install and what type of tools you want to run. When it comes to Windows, it runs on any 32/64 bit Windows from older Windows XP/Server 2003 to the latest Windows 11/Server 2019.

How To Run The Linux Shell On Windows?

When you first install packages, the setup program doesn’t install every package. The default installation includes only the minimal base packages from Cygwin, which take up about 100 MB. However, you can choose packages you need to install.

How to Run the Linux Shell on Windows?

  1. Download the Cygwin package

Download the Cygwin executable for your Windows from here.

Download the Cygwin package

2. Execute the Cygwin installer

Double click on the installer program. Cygwin installer will great you with this screen. Click Next.

Execute the Cygwin installer

3. Choose how and where you need to store the downloaded packages

All the options are self-explanatory. Choose anyone that suits your requirements. We have chosen the first option which is to install from the internet.

We have chosen the first option which is to install from the internet.

4. Provide the Root directory in Cygwin

Provide the Root directory in Cygwin

5. Provide the location to store the Cygwin packages

Provide the location to store the Cygwin packages

6. Configure the proxy for the internet connection

It is good to choose the default if no changes are needed.

Configure the proxy for the internet connection

7. Choose a site to download the packages

Choose a site to download the packages

8. Select the packages to install

Browse the categories and select the packages to install. Then click Next. You can type the package name in the search box to select the package to install.

Select the packages to install

9. Installation in progress.

Installation in progress.

10. Finish the installation

Finish the installation

11. Launch the Cygwin Terminal

Type “Cygwin” in the search box and launch the terminal.

Type “Cygwin” in the search box and launch the terminal.

12. Running Linux shell on Windows using Cygwin

Running Linux shell on Windows using Cygwin

How To Install A Package Manager In Cygwin?

Well, you can install any packages from Cygwin package repositories in a way you install the packages during the installation process. However, Cygwin has a command-line package manager too to install the packages from the same Cygwin repositories. ‘apt-cyg‘ that works more or less like a Debian apt package manager. The package apt-cyg is freely available in the GitHub repository. All you need to do is download and install ‘apt-cyg’ on your machine to make use of it. In fact, having a CLI package manager is great convenient when working on Linux-like enshrinement.

  1. Download the apt-cyg package:
$ wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
Download the apt-cyg package

2. Install the apt-cyg package:

$ install apt-cyg /bin
Install the apt-cyg package

How To Install Packages In Cygwin?

If you have apt-cyg package installed on your Cygwin, it is easy to install, remove, update, download, and search the packages from the Cygwin repository like as apt commands in Ubuntu.

apt-cyg command syntax:

install
Install package(s).

remove
Remove package(s) from the system.

update
Download a fresh copy of the master package list (setup.ini) from the
server defined in setup.rc.
download
Retrieve package(s) from the server, but do not install/upgrade anything.

show
Display information on given package(s).

depends
Produce a dependency tree for a package.

rdepends
Produce a tree of packages that depend on the named package.

list
Search each locally-installed package for names that match regexp. If no
package names are provided in the command line, all installed packages will
be queried.

listall
This will search each package in the master package list (setup.ini) for
names that match regexp.

category
Display all packages that are members of a named category.

listfiles
List all files owned by a given package. Multiple packages can be specified
on the command line.

search
Search for downloaded packages that own the specified file(s). The path can
be relative or absolute, and one or more files can be specified.

searchall
Search cygwin.com to retrieve file information about packages. The provided
target is considered to be a filename and searchall will return the
package(s) which contain this file.

Examples 1: Installing nano text editor in Cygwin

$ apt-cyg install nano
Installing nano text editor in Cygwin

Example 2: Installing openssl in Cygwin

$ apt-cyg install openssl
Installing openssl in Cygwin

In this case, the installation has skipped as the nano editor is ready installed.

How To Uninstall Cygwin From Windows?

If you don’t want to keep the Cygwin anymore and want to uninstall it from your computer. We will give you some heads up that helps you uninstall Cygwin from your computer. There are multiple ways to uninstall:

Method 1: Uninstall Cygwin from Windows Control Panel -> Programs & Features.

Method 2: From Registry Editor.

  1. Open Run Windows Key + R
  2. Type ‘regedit
  3. Go to the following paths and delete the Cygwin folder:

1.HKEY_CURRENT_USER\Software\Cygwin (or the publisher’s name)

2.HKEY_LOCAL+MACHINE\SOFTWARE\Cygwin (or the publisher’s name)

3.Search Registry for Cygwin or the publisher’s name If you find any, delete it.

4. Reboot the system

Method 3: Uninstall through CMD

  1. Open Run Windows Key + R
  2. Type ‘cmd
  3. Type ‘takeown /r /d y /f cygwin‘ to gain ownership of the Cygwin folder.
  4. Type ‘icacls cygwin /t /grant Everyone:F‘ to give yourself and any other people full access to the Cygwin folder.
  5. Type ‘rmdir /s /q cygwin‘ to delete the entire Cygwin folder including all subfolders.
  6. Go ahead and manually delete the residues of Cygwin files or folders.

1. Is Cygwin the same as Linux?

Cygwin is a free and open-source software development environment for Microsoft Windows. It consists of two parts: a DLL (cygwin1.dll) that acts as a Linux API emulation layer providing substantial Linux API functionality, and an extensive collection of tools, libraries, and documentation.

Cygwin provides native integration of Windows-based applications, data, and other system resources with applications, tools, and data of the Unix-like environment. Thus it is possible to launch Windows applications from the Cygwin environment, as well as to use Cygwin tools and POSIX applications within the Windows operating system.

2. Is Cygwin safe to install?

Off-course yes, Cygwin is a large collection of GNU and Open Source tools that provide functionality similar to a Linux distribution on Windows. Most of the tools are covered by the GNU GPL, some are public domain, and others have an X11 style license. Be sure to read the text of the GNU General Public License (GPL).

3. How do I install everything in Cygwin?

In the Cygwin Set-Up window, select the ‘Category’ and make it ‘Install’ from ‘Default’ for all the categories, then click Next to install everything.

4. How do I add new packages to the existing Cygwin installation?

Well, you can install any packages from Cygwin package repositories in a way you install the packages during the installation of Cygwin. However, Cygwin has a command-line package manager too to install the packages from the same Cygwin repositories. ‘apt-cyg‘works more or less like a Debian apt package manager. The package apt-cyg is freely available in the GitHub repository. All you need to do is download and install ‘apt-cyg’ on your machine to use it. Having a CLI package manager is great and convenient when working on Linux-like enshrinement.

$ wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
$ install apt-cyg /bin

5. How to upgrade Cygwin?

The procedure remains the same, either for installation or upgrade. Download the latest Cygwin installer file, then execute it. Cygwin will read the version of Cygwin with all the installed packages or tools and upgrade if a new version is found.

6. How to upgrade a package in Cygwin?

You can upgrade the package in two ways:

1. Download and run the Cygwin installer then search and select the package you want to upgrade. Choose the new version from the dropdown then click Next to upgrade the package.

2. Install the apt-cyg package manager tool and use apt-cyg to upgrade the package as like apt command used to upgrade Ubuntu repositories.

We hope this post will help you know more about Cygwin and how to use Cygwin to run Linux shell on Windows. Please share this post and help to secure the digital world. Visit our social media page on Facebook, LinkedIn, Twitter, Telegram, Tumblr, & Medium and subscribe to receive updates like this.

This post is originally published at thesecmaster.com

We thank everybody who has been supporting our work and requests you check out thesecmaster.com for more such articles.

--

--