# Access to Linux/Unix-based OS

Before starting any development work on your Django application, we recommend you get access to a Linux distribution or suitable Unix-based OS, and in particular, focus on familiarizing yourself with the terminal interface. A lot of the help and support you will get for Django will assume you can access and navigate such an environment. And getting familiar with terminal will make you feel right at home when you come to deploy your application on a live server, which will most likely be running a headless Linux-based OS.

### Windows 10 User? Get WSL

While native Linux and MacOS users will have access to a suitable terminal right off the bat, Windows users will need to work through some additional steps.

If you are on Windows, one option would be to get yourself a virtual machine player, like [VirtualBox](https://www.virtualbox.org/). But if you are on Windows 10, we instead recommend you use Windows Subsystem for Linux (WSL). WSL will provide a means for you to run Linux images on your Windows machine without the typical overhead of a virtual machine, and will grant you all the functionality you need to develop your Django application.

{% hint style="info" %}
If you are running Windows 10 version 2004 (or higher) or Windows 11, you can now simply run 'wsl --install' via PowerShell to install WSL2 and Ubuntu. See [here](https://docs.microsoft.com/en-us/windows/wsl/install) for more.
{% endhint %}

![](/files/-MG_DyvEMGOMBpLALha3)

You can work through [these instructions](https://docs.microsoft.com/en-us/windows/wsl/install-manual) to install WSL on Windows 10. But take note of the section explaining the requirements and how to upgrade to WSL2. If you meet the requirements, we highly recommend you make the upgrade. You'll no doubt have better performance than using WSL, and won't have as much trouble running some of the less common distribution packages.

### Ubuntu, Debian, Fedora? Huh?

Once you are set up with a virtual machine player, WSL or WSL2, it's time to install a distribution. Those running a virtual machine player can pick whatever distribution type and version they are comfortable with. For example, you can obtain Ubuntu [here](https://ubuntu.com/download/desktop). And likewise, those running WSL or WSL2 can also choose from long list of compatible distributions.

But we realize the long list of options may be daunting for new users. So if you aren't sure which to pick or don't have a particular preference, we suggest virtual machine users download Ubuntu 20.04 LTS (or higher) from [Ubuntu directly](https://ubuntu.com/download/desktop) and follow [this guide](https://itsfoss.com/install-linux-in-virtualbox/) to get set up. While WSL or WSL2 users go ahead and install Ubuntu [from the Windows Store](https://www.microsoft.com/en-us/p/ubuntu-2004-lts/9n6svws3rx71?rtc=1\&activetab=pivot:overviewtab).

![](/files/-MG_EqSUGVPa2UP7pN_8)

If you are running WSL, or upgraded to WSL2 before installing your Linux distribution, you should now be good to start up the distribution. However, if you decided to upgrade to WSL2 after installing your Ubuntu distribution, you may need to switch your Ubuntu distribution to use WSL2 [via these instructions](https://docs.microsoft.com/en-us/windows/wsl/wsl-config) first.

### Start Using Terminal

If everything worked successfully, you should be able to start up your Unix-based OS, access the terminal, and see something similar to the below.

![](/files/-MG_1tCDi5l1460LFquM)

For WSL users -- you should be able to browse to your local hard drive (let's assume it's mounted as C:), simply by running:

```
cd /mnt/c
```

### Practice Makes Perfect

From here, we recommend you start getting familiar with basic terminal commands. In particular:

* `pwd` - display path name of current directory
* `cd` - change directory
* `mkdir` - make a new directory / file folder
* `touch` - make a new file
* `..` go up one level
* `cd ~` - return to home directory
* `clear` - clear the display screen
* `ls` - list of all files with the current directory


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.djangomango.com/create-your-development-environment/access-to-a-unix-based-os.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
