
# Basic Linux OS installations
<br />
## Introduction
This document will guide you through the process of installing all the necessary tools to be able to finish your prework successfully.
:::danger
:rotating_light: It is **absolutely essential** that your user account **has Admin rights**. You won't be able to install and use everything you need without those rights. If you are using a work computer with limited privileges, contact your IT person to grant you the admin access.
:::
### Important to know beforehand
- **You won't be able to see the password as you type it in the terminal.**
Sometimes you will be prompted to type a password in the terminal for security reasons. Keep in mind one thing:
:::info
:closed_lock_with_key: **In the terminal, passwords are invisible.**
:::
This means that the _password is not going to be revealed_ as you type. The main reason for this is security. Passwords won't be visually represented, not even with asterisks. If asterisks are shown, then others can see the length of the password, and that could lead to easier guessing what could be the password.
- **Don't type the dollar sign (`$`) in the terminal when adding commands.**
:grin::question: What's up with those **dollar signs `$`** you might see before lines of code? Those are to visually distinguish **terminal commands** from other kinds of code. Remember, **we don't have to type the `$`**.
:::info
So for
```shell
$ some-command
```
you only have to write `some-command` in your terminal.
:::
If all this sounds pretty vague at this moment, do not worry. Soon you will know exactly what we are talking about.
Let's go!
## Step #1: Install [Terminator](https://terminator-gtk3.readthedocs.io/en/latest/)
The terminal is the emulator included in most Linux operating systems. Now we are going to install a terminal emulator for Linux OS, called Terminator.

**Terminator** was created and developed by Chris Jones. Nowadays, it is one of the most popular terminal emulators in the Ubuntu community.
To install Terminator, run the following commands:
```shell
$ sudo apt-get update
$ sudo apt-get install terminator
```
:::warning
:grin::question: What's up with those **dollar signs `$`** you might see before lines of code like the one above? Those are to visually distinguish **terminal commands** from other kinds of code. Remember, **we don't have to type the `$`**.
So, for: `$ sudo apt-get update`, you only have to write `sudo apt-get update`.
:::
## Step #2: Install [ZSH](https://linuxconfig.org/learn-the-basics-of-the-zsh-shell)
[Zsh](https://en.wikipedia.org/wiki/Z_shell) is an interactive login [shell](https://en.wikipedia.org/wiki/Unix_shell). As with the regular terminal, it enables the communication between the user and the computer. It provides many useful features as [bash](<https://en.wikipedia.org/wiki/Bash_(Unix_shell)>) but also adds many new ones.
- To install ZSH on Ubuntu, run the following commands:
```bash
$ apt-get install zsh
$ apt-get install git-core
```
- In the next step, let's run the following:
```bash
$ wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh
```
:::info
:bulb: [wget](https://www.gnu.org/software/wget/) is a utility for making internet requests from the terminal.
:::
We switch the default [bash](<https://en.wikipedia.org/wiki/Bash_(Unix_shell)>) to the new `zsh` we just installed:
```bash
$ chsh -s `which zsh`
```
:::info
:bulb: [`chsh`](https://linux.die.net/man/1/chsh)(Change Shell) is switching from one shell to another. ` `` ` are not quotes but backticks, found on the top left corner of your keyboard.
:::
## Step #3: Install [Oh-My-ZSH](http://ohmyz.sh/)
Many developers choose to add the `Oh-My-Zsh` library on top of ZSH. [Oh-My-Zsh](http://ohmyz.sh/) is an open-source framework for managing your ZSH configuration. Once installed, we'll be able to take advantage of the hundreds of [bundled plugins](https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins) and [pretty themes](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes) that are available on the Internet.
To install Oh-My-ZSH, just run the following command in your terminal:
```bash
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
```
## Step #4: Install [Visual Studio Code](https://code.visualstudio.com/docs/setup/linux)
**VS Code** is a source code editor, an application that facilitates writing code. It is a text editor but is specially made for editing source code of computer programs. This will be your fundamental programming tool when writing and editing code.
Visual Studio Code is officially distributed as a Snap package in the [Snap](https://snapcraft.io/store) store.
You can install it simply by running:
```bash
$ sudo snap install --classic code
```
Once installed, the Snap will take care of automatically updating VS Code in the background. You will get an in-product update notification whenever a new update is available.
:star: If Snap isn't available in your Linux distribution, please check the following [guide](https://docs.snapcraft.io/installing-snapd/6735), which can help you get that setup.
## Step #5: Install [Google Chrome](https://www.google.com/chrome/)
Similar to VS Code, just by visiting [https://www.google.com/chrome/](https://www.google.com/chrome/), it will automatically detect your OS and provide a proper edition for your system.
- Steps to follow:
1. Visit [https://www.google.com/chrome/](https://www.google.com/chrome/) and click on _Download Chrome_
2. In the dialogue box, click on accept and install. A compressed file will then be downloaded from the site.
3. Click on it and follow the installation instructions.
## Step #6: Install [Git](https://git-scm.com/)
**Git** is a system for keeping track of changes you make to files and folders in your projects. Don't get confused; later, we will talk about GitHub. Git lives on your computer, GitHub is the online "storage" where you will keep your work and be able to share it with your collaborators.
- To install Git on [Ubuntu](https://www.ubuntu.com/), enter the following into the terminal:
```
$ sudo apt-get install git
```
To check if it is working, open up a terminal and type:
```
$ git --version
// the result: git version 2.19.0
```
If you can see that, you have git installed!
If you’re still having problems, or if you prefer to install Git from source, here’s more information: [Getting Started Installing Git](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git).
### Basic configuration
The first thing you should do is to set your **username** and **email address**. This is important because every git commit uses this information to identify the user who made changes in the document. _This all will make much more sense when you get familiarized with git and start using it daily._
In your terminal enter the following two lines, one after another:
```bash
$ git config --global user.name "John Doe"
$ git config --global user.email "johndoe@example.com"
```
**:warning: Replace "John Doe" and the johndoe@example.com with your own info.**
<br>
You are good to go! :heart: