Command Line (Tutorial)
Tags: productivity, unix, commandline, webdev
Published: 2020-03-15 05:52:32

---
title: Command Line (Tutorial)
published: true
description: A must-learn skill in software development which allows us to perform tasks through commands that we can do through our mouse.
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/yst9a3j7i3tc04isw1qk.jpg
tags: #productivity #unix #commandline #webdev
---

## 💻 Command Line:
***The command line is a tool or interfaces for interacting with a computer using only text rather than the mouse.***

Command-Line is an essential tool for software development. We can execute a wide variety of programs on our computer through this. In this tutorial, we are going to learn the necessary UNIX commands for development.

> **UNIX** command is a type of command that is used in LINUX and macOS.

**To run some basic UNIX command in windows you need to download Git Command Line Interface from  [Git SCM](https://git-scm.com/).**

___

## 🔰 Getting Started:

✨ Let's start to learn (can use it as a reference guide)🏃‍♂️🏃‍♂️🏃‍♂️...

####✔ Check the Current Directory ➡ ``pwd``:
On the command line, it's important to know the directory we are currently working on. For that, we can use ``pwd`` command.

![Checking the Current Directory](https://dev-to-uploads.s3.amazonaws.com/i/zc8x64v83cupsyn77bw5.gif)

It shows that I'm working on my **Desktop** directory.

#### ✔ Display List of Files ➡ ``ls``:
To see the list of files and directories in the current directory use ``ls`` command in your CLI.

![Displaying List of Files](https://dev-to-uploads.s3.amazonaws.com/i/mb3bqmhd0wblcskhito4.gif)

Shows all of my files and directories of my **Desktop** directory.

- To show the contents of a directory pass the directory name to the `ls` command i.e. `ls directory_name`.
- Some useful `ls` command options:-

| Option        | Description                                            |
| ------------- |:------------------------------------------------------:|
| ls -a         | list all files including hidden file starting with '.' |
| ls -l         | list with the long format                              |
| ls -la        | list long format including hidden files                |

####✔ Create a Directory ➡ ``mkdir``:
We can create a new folder using the ``mkdir`` command. To use it type ``mkdir folder_name``.

![Creating a Directory](https://dev-to-uploads.s3.amazonaws.com/i/axpfdcqa2xx2vf270w6l.gif)

Use `ls` command to see the directory is created or not.

I created a **cli-practice** directory in my working directory i.e. **Desktop** directory.

####✔ Move Between Directories ➡ ``cd``:
It's used to change directory or to move other directories. To use it type ``cd directory_name``.

![Moving Between Directories](https://dev-to-uploads.s3.amazonaws.com/i/hqqz7mdl0z2wyr7axiak.gif)

Can use `pwd` command to confirm your directory name.

Changed my directory to the **cli-practice** directory. And the rest of the tutorial I'm gonna work within this directory.

####✔ Parent Directory ➡ ``..``:
We have seen ``cd`` command to change directory but if we want to move back or want to move to the parent directory we can use a special symbol ``..`` after ``cd`` command, like ``cd ..``

####✔ Create Files ➡ ``touch``:
We can create an empty file by typing ``touch file_name``. It's going to create a new file in the current directory (the directory you are currently in) with your provided name.

![Creating Files](https://dev-to-uploads.s3.amazonaws.com/i/qnlntplxwyiotd4ouxks.gif)

I created a **hello.txt** file in my current working directory. Again you can use `ls` command to see the file is created or not.

Now open your **hello.txt** file in your text editor and write ***Hello Everyone!*** into your **hello.txt** file and save it.

####✔ Display the Content of a File ➡ ``cat``:
We can display the content of a file using the ``cat`` command. To use it type ``cat file_name``.

![Displaying the Content of a File](https://dev-to-uploads.s3.amazonaws.com/i/8k5jyuh8fzr8lltoz2eq.gif)

Shows the content of my **hello.txt** file.

####✔ Move Files & Directories ➡ ``mv``:
To move a file and directory, we use `mv` command.

By typing `mv file_to_move destination_directory`, you can move a file to the specified directory.

By entering `mv directory_to_move destination_directory`, you can move all the files and directories under that directory.

Before using this command, we are going to create two more directories and another **txt** file in our **cli-practice** directory.

`mkdir html css
touch bye.txt`

![Creating Directories and File](https://dev-to-uploads.s3.amazonaws.com/i/84r3xpz86tl2838f7ghj.gif)

Yes, we can use multiple directories & files names one after another to create multiple directories & files in one command.

![Moving Files & Directories](https://dev-to-uploads.s3.amazonaws.com/i/t31sfyg3gisqq1m7yamn.gif)

Moved my **bye.txt** file into my **css** directory and then moved my **css** directory into my **html** directory.

####✔ Rename Files & Directories ➡ ``mv``:
`mv` command can also be used to rename a file and a directory.

You can rename a file by typing `mv old_file_name new_file_name` & also rename a directory by typing `mv old_directory_name new_directory_name`.

![Renaming Files & Directories](https://dev-to-uploads.s3.amazonaws.com/i/e87msrwtaquirwr9uj7k.gif)

Renamed my **hello.txt** file to the **hi.txt** file and **html** directory to the **folder** directory.

####✔ Copy Files & Directories ➡ ``cp``:
To do this, we use the `cp` command.

- You can copy a file by entering `cp file_to_copy new_file_name`.

![Copying Files](https://dev-to-uploads.s3.amazonaws.com/i/krufbxwa4aqr3h2woh9s.gif)

Copied my **hi.txt** file content into **hello.txt** file. For confirmation open your **hello.txt** file in your text editor.

- You can also copy a directory by adding the `-r` option, like `cp -r directory_to_copy new_directory_name`.

*The `-r` option for "recursive" means that it will copy all of the files including the files inside of subfolders.*

![Copying Directories](https://dev-to-uploads.s3.amazonaws.com/i/ti0mg364x7bzenxg9ngk.gif)

Here I copied all of the files from the **folder** to **folder-copy**.

####✔ Remove Files & Directories ➡ ``rm``:
To do this, we use the `rm` command.

- To remove a file, you can use the command like `rm file_to_remove`.

![Removing Files](https://dev-to-uploads.s3.amazonaws.com/i/v80xozyz0gqorwf6t1ww.gif)

Here I removed my **hi.txt** file.

- To remove a directory, use the command like `rm -r directory_to_remove`.

![Removing Directories](https://dev-to-uploads.s3.amazonaws.com/i/79v6p4j0c74a11w24ugp.gif)

I removed my **folder-copy** directory from my **cli-practice** directory i.e. current working directory.

####✔ Clear Screen ➡ ``clear``:
Clear command is used to clear the terminal screen.

####✔ Home Directory ➡ ``~``:
The Home directory is represented by ``~``. The Home directory refers to the base directory for the user. If we want to move to the Home directory we can use ``cd ~`` command. Or we can only use ``cd`` command.

---
###🛠 Tools I used for this tutorial:-
1. [Fluent Terminal](https://github.com/felixse/FluentTerminal)
2. [Git Bash Shell](https://git-scm.com)

***Github repo of this tutorial [Learn Basic Commands](https://github.com/iamismile/learn-basic-commands).***
---

Thanks for reading and stay tuned.🙂👋