I have implemented a linux bash shell. The code is in C.
-
cd
-
cd command changes your present working directory to the directory or path entered as an argument.
-
Syntax : $ cd [directory_name / directory_path]
-
Example :
-
cd directory or cd dir1/dir2/dir3
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ cd try myterminal@arka:~/home/arkasarkar/Desktop/CAOS/try $ myterminal@arka:~/home/arkasarkar $ cd Desktop/CAOS/try myterminal@arka:~/home/arkasarkar/Desktop/CAOS/try $
-
cd .. , changes to the parent directory of the current directory.
myterminal@arka:~/home/arkasarkar/Desktop/CAOS/try $ cd .. myterminal@arka:~/home/arkasarkar/Desktop/CAOS $
-
cd ~, changes to the home directory
myterminal@arka:~/home/arkasarkar/Desktop/CAOS/try $ cd ~ myterminal@arka:~/home/arkasarkar $
-
cd , works just like cd ~ command
myterminal@arka:~/home/arkasarkar/Desktop/CAOS/try $ cd myterminal@arka:~/home/arkasarkar $
-
cd / , changes to the root directory
myterminal@arka:~/home/arkasarkar/Desktop $ cd / myterminal@arka:~/ $
-
-
-
echo
-
echo command is used to display line of text/string that are passed as an argument.
-
Syntax : echo [option] [text]
-
Example:
-
echo “[text]”
myterminal@arka:~/home/arkasarkar $ echo "hello" hello myterminal@arka:~/home/arkasarkar $Arka Sarkar 2018222
-
echo -n [text] , -n omits a new trailing line after printing the text.
myterminal@arka:~/home/arkasarkar $ echo -n "hello" hellomyterminal@arka:~/home/arkasarkar $
-
echo * , displays all the files/folders
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ echo * a.out cat.c date.c demo1.c history.txt ls.c makefile mkdir.c rm.c try
-
-
history
-
Displays all the commands previously executed.
-
Syntax : history [option]
-
Example: * history
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ history history mkdir try try2 try3 mkdir t ls mkdir ry mkdir try ls ls ls -l ls -l -h -a cd demo ls cd ls ........ Cont..
- history - c
- clears the history.
- history - c
-
pwd
-
Displays the present working directory
-
Syntax : pwd
-
Example : * pwd
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ pwd current working directory :- /home/arkasarkar/Desktop/CAOS
-
exit
-
Exits the terminal
-
Syntax : exit
-
Example:
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ exit
-
ls
-
Ls command displays all the files / folders in the present working directory
-
Syntax : ls [option]
-
Example:
-
ls
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ ls a.out cat.c date.c demo1.c history.txt ls.c makefile mkdir.c rm.c try
-
ls -l , shows long format → all permisions, space , time modifed.
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ ls -l total 60 -rwxr-xr-x 1 arkasarkar arkasarkar 17584 Sep 1 22:05 a.out -rw-rw-r-- 1 arkasarkar arkasarkar 1281 Sep 1 13:39 cat.c -rw-rw-r-- 1 arkasarkar arkasarkar 1142 Aug 30 16:08 date.c -rw-rw-r-- 1 arkasarkar arkasarkar 4944 Sep 1 22:05 demo1.c -rw-rw-r-- 1 arkasarkar arkasarkar 1039 Sep 1 22:18 history.txt -rw-rw-r-- 1 arkasarkar arkasarkar 757 Aug 30 01:58 ls.c -rw-r--r-- 1 arkasarkar arkasarkar 38 Aug 31 13:31 makefile -rw-rw-r-- 1 arkasarkar arkasarkar 1420 Aug 30 02:02 mkdir.c -rw-rw-r-- 1 arkasarkar arkasarkar 1144 Aug 30 16:03 rm.c drwxr-xr-x 2 arkasarkar arkasarkar 4096 Sep 1 21:12 try
-
ls -lh, formats into human readable form.
total 60K -rwxr-xr-x 1 arkasarkar arkasarkar 18K Sep 1 22:05 a.out -rw-rw-r-- 1 arkasarkar arkasarkar 1.3K Sep 1 13:39 cat.c -rw-rw-r-- 1 arkasarkar arkasarkar 1.2K Aug 30 16:08 date.c -rw-rw-r-- 1 arkasarkar arkasarkar 4.9K Sep 1 22:05 demo1.c -rw-rw-r-- 1 arkasarkar arkasarkar 1.2K Sep 1 22:20 history.txt -rw-rw-r-- 1 arkasarkar arkasarkar 757 Aug 30 01:58 ls.c -rw-r--r-- 1 arkasarkar arkasarkar 38 Aug 31 13:31 makefile -rw-rw-r-- 1 arkasarkar arkasarkar 1.4K Aug 30 02:02 mkdir.c -rw-rw-r-- 1 arkasarkar arkasarkar 1.2K Aug 30 16:03 rm.c drwxr-xr-x 2 arkasarkar arkasarkar 4.0K Sep 1 21:12 try
-
-
cat
-
Read content from a file and displays it.
-
Syntax : cat [filename]
-
Example :
-
cat [filename]
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ cat del.txt Hello myterminal@arka:~/home/arkasarkar/Desktop/CAOS $
-
-
date
-
Displays current date
-
Syntax : date [arg]
-
Example:
-
date
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ date Sun Sep 1 22:31:43 IST 2019
-
date -R
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ date -R Sun, 01 Sep 2019 22:31:54 +0530
-
-
rm
-
rm removes files or directories entered by the user.
-
Syntax : rm [option] [filename]
-
Example:
-
rm [filename]
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ rm del.txt
-
rm -r [dir_name] , deletes a directory and its contents
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ rm -r del
-
rm -f [filename] , forcefully deletes a file if write protected.
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ rm -f del.txt
-
rm * , deletes all the files of the parent directory ( not the directories)
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ rm *
-
rm -r * , empties the parent directory
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ rm -r *
-
-
mkdir
-
mkdir creates an empty directory in the present working directory
-
Syntax : mkdir [dir_name]
-
Example :
-
mkdir [dir_name]
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ mkdir hello myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ ls a.out date.c hello ls.c mkdir.c try cat.c demo1.c history.txt makefile rm.c
-
mkdir [dir1_name] [dir2_name]
myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ mkdir hello hello2 myterminal@arka:~/home/arkasarkar/Desktop/CAOS $ ls a.out date.c hello history.txt makefile rm.c cat.c demo1.c hello2 ls.c mkdir.c try
-
demo1.c is the main file. Compile it on the terminal using gcc demo1.c -o main and run the executable main as ./main commands.