# Linux & Networking Basics
## System Design

### 1. RHEL Local Instalation 🧑💻
1. Download the related image (in this case [RHEL 9](https://developers.redhat.com/products/rhel/download#rhel-new-product-download-list-61451))


3. Import the iso and config like this following picture:

3. SSH the network `enp0s3` interface

### 2. RHEL Basic Command ⌨️
1. **Navigating Path**
* Current Path

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.
* Listing File and Directory

In this directory the only directory exist is `/docs`. Other that that is the default file that uses for my bash shell configuration.
* Change Directory

From home directory we chage to the docs directory. After we list what's in it, there is `conf.txt` file which are different from home dir.
2. **File Management**
* Create File

Then I add a new file named `Dockerfile` which contains nothing inside.
* Edit File

We can edit the `Dockerfile` using vim text editor.

After the configuration is finished, it can be saved and see the file by `cat` command.
* Copy File

We can copy what's inside the Dockerfile configuration to some other file directory. In the example above we copying the file to `~/docker/Dockerfile.bak`.
* Move File

We also can move the `Dockerfile.bak` in `~/docker` directory to current dir which is `~/docs`.

This command also can used to change the filename.
* Remove File

Delete the backups file and see the result.
3. **Directory Management**
* Create Directory

We can create new directory named anything except [this](https://stackoverflow.com/questions/1976007/what-characters-are-forbidden-in-windows-and-linux-directory-names).
* Copy Directory

We can copy the entire existing `docs/` directory to `kube/`.
* Move Directory

Also we can move the entire existing `docs/` directory to `docker/`.
* Remove Empty Directory

If the directory is empty just simply use command above.
* Remove Directory

If the directory is filled with files, execute it with `-r` option stands for recursive.
4. **User & Group Management**
* User Creation

We can create the user in the same machine. In this case is king and configure the password with command below.

* Group Creation

Then we can add the user to the group for make the permission management to directory or file is easier.

5. **File Permission**
* Change File Permission

As you can see from here, the `code.sh` file is just have a read permission.

We can change it to make the file executable by the `+x` operation.
* Change Directory Ownership

Then to change the ownership we can simply use the command above.
6. **Process Management**
* Listing Process

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.
* Background Jobs

In this directory the only directory exist is `/docs`. Other that that is the default file that uses for my bash shell configuration.
* Killing Process

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.

* Monitoring Process

In this directory the only directory exist is `/docs`. Other that that is the default file that uses for my bash shell configuration.
6. **Service & Daemon Management**
* Service Status

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.
* Control System Service

In this direc
### 3. RHEL Networking 🛜
1. **Basic Network Display**
* Displaying IP Address

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.
* Displaying IP Route

In this directory the only directory exist is `/docs`. Other that that is the default file that uses for my bash shell configuration.
* Displaying Socket Statistic

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.
2. **Change Network Interface with `nmcli`**
* Listing Active Interface

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.
* Create New Connection Named `static-enp0s3`

In this directory the only directory exist is `/docs`. Other that that is the default file that uses for my bash shell configuration.
* Configuring DNS

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.
* Make the connection up and running

In this directory the only directory exist is `/docs`. Other that that is the default file that uses for my bash shell configuration.

### 4. Bridge Network 📲
3. **Configure Bridge Network Interface**
* Create Bridge Interface named `br0`

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.
* Make the connection up and running

As you can see from here, my relative current path is `/home/rafli`. From here you can know what directory you're in which is home dir.

* Test if the new bridge network is properly configured

In this directory the only directory exist is `/docs`. Other that that is the default file that uses for my bash shell configuration.
