Terminal Session
# using () ---> redirect the output on the file
[aadarsha@labserver ~]$ date; cal ; ls
Sun Jun 7 06:48:59 AM +0545 2026
June 2026
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
dir1 dir2 dir3 file1 file2 file3
[aadarsha@labserver ~]$ date; cal; ls > command_output # Only output of ls command is saved
Sun Jun 7 06:49:34 AM +0545 2026
June 2026
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
[aadarsha@labserver ~]$ cat command_output
command_output
dir1
dir2
dir3
file1
file2
file3
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ (date; cal; ls) > command_output # using () ---> output of all commands is saved
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ cat command_output
Sun Jun 7 06:50:12 AM +0545 2026
June 2026
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
command_output
dir1
dir2
dir3
file1
file2
file3
[aadarsha@labserver ~]$
# use of {} ---> use to define the range
# creating multiple Dir/Sub-dir at a time
[aadarsha@labserver ~]$ ls
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ mkdir dir{1..25}
[aadarsha@labserver ~]$ ls
dir1 dir10 dir11 dir12 dir13 dir14 dir15 dir16 dir17 dir18 dir19 dir2 dir20 dir21 dir22 dir23 dir24 dir25 dir3 dir4 dir5 dir6 dir7 dir8 dir9
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ rmdir dir{10..25}
[aadarsha@labserver ~]$ ls
dir1 dir2 dir3 dir4 dir5 dir6 dir7 dir8 dir9
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ touch file{10..20}
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ ls
dir1 dir2 dir3 dir4 dir5 dir6 dir7 dir8 dir9 file10 file11 file12 file13 file14 file15 file16 file17 file18 file19 file20
[aadarsha@labserver ~]$ rm -f file{16..20}
[aadarsha@labserver ~]$ ls
dir1 dir2 dir3 dir4 dir5 dir6 dir7 dir8 dir9 file10 file11 file12 file13 file14 file15
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ rm -r *
[aadarsha@labserver ~]$ ls
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ mkdir -p dir1/dir2/dir3/dir4/dir5
[aadarsha@labserver ~]$ ls
dir1
[aadarsha@labserver ~]$ tree
.
└── dir1
└── dir2
└── dir3
└── dir4
└── dir5
6 directories, 0 files
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ ls
dir1
# use of {} and -p
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ mkdir -p testcompany/{service/{development,devops/{cloud/{aws,azure,gcp},onpremise},security,AI},support/{technical,others},management}
[aadarsha@labserver ~]$ ls
dir1 testcompany
[aadarsha@labserver ~]$ tree testcompany/
testcompany/
├── management
├── service
│ ├── AI
│ ├── development
│ ├── devops
│ │ ├── cloud
│ │ │ ├── aws
│ │ │ ├── azure
│ │ │ └── gcp
│ │ └── onpremise
│ └── security
└── support
├── others
└── technical
15 directories, 0 files
[aadarsha@labserver ~]$
# Creating a file/dir with special characters in their name
[aadarsha@labserver ~]$ ls
dir1 testcompany
[aadarsha@labserver ~]$ vi "my file" # file name with space inside " "
[aadarsha@labserver ~]$ ls
dir1 'my file' testcompany
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ cat my\ file # escape sequence --> \
This is the test file.
[aadarsha@labserver ~]$
# creating a hidden file
[aadarsha@labserver ~]$ touch .secretdata
[aadarsha@labserver ~]$ ls
dir1 'my file' testcompany
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc dir1 'my file' .secretdata testcompany
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ vi .secretdata
[aadarsha@labserver ~]$ cat .secretdata
this is the hidden file
[aadarsha@labserver ~]$ ls -a -l # ( ls -al ) --> in the most cases options sequence doesn't matter
total 24
drwx------. 4 aadarsha aadarsha 148 Jun 7 07:54 .
drwxr-xr-x. 3 root root 22 May 26 15:36 ..
-rw-------. 1 aadarsha aadarsha 3843 Jun 4 22:45 .bash_history
-rw-r--r--. 1 aadarsha aadarsha 18 Oct 29 2024 .bash_logout
-rw-r--r--. 1 aadarsha aadarsha 144 Oct 29 2024 .bash_profile
-rw-r--r--. 1 aadarsha aadarsha 522 Oct 29 2024 .bashrc
drwxr-xr-x. 3 aadarsha aadarsha 18 Jun 7 07:02 dir1
-rw-r--r--. 1 aadarsha aadarsha 23 Jun 7 07:29 'my file'
-rw-r--r--. 1 aadarsha aadarsha 24 Jun 7 07:54 .secretdata
drwxr-xr-x. 5 aadarsha aadarsha 54 Jun 7 07:24 testcompany
[aadarsha@labserver ~]$
# using wildcard characters
# ? --> matches any single character
# * --> matches no. of characters
# [a-z] --> matches within the range
# [^a-z] --> matches out of the range
# [az] --> matches within the set
# [^az] --> matches out of the set
[aadarsha@labserver ~]$ cd /
[aadarsha@labserver /]$ ls
afs bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[aadarsha@labserver /]$ ls -d ??? # to search on first level directory not inside
afs bin dev etc lib mnt opt run srv sys tmp usr var
[aadarsha@labserver /]$ ls -d b??
bin
[aadarsha@labserver /]$ ls -d b*
bin boot
[aadarsha@labserver /]$ ls -d *t
boot mnt opt root
[aadarsha@labserver /]$ ls -d *r
usr var
[aadarsha@labserver /]$ ls -d r??t
root
[aadarsha@labserver /]$ ls -d [b-p]*
bin boot dev etc home lib lib64 media mnt opt proc
[aadarsha@labserver /]$ ls -d [^b-p]*
afs root run sbin srv sys tmp usr var
[aadarsha@labserver /]$ ls -d [b-p]*
bin boot dev etc home lib lib64 media mnt opt proc
[aadarsha@labserver /]$ ls -d [^b-p]*
afs root run sbin srv sys tmp usr var
[aadarsha@labserver /]$ ls -d *[c-z]
afs bin boot dev etc home mnt opt proc root run sbin srv sys tmp usr var
[aadarsha@labserver /]$ ls -d *[c-f]
etc home proc
[aadarsha@labserver /]$ ls -d *[bh]
lib
[aadarsha@labserver /]$ ls -d [bh]*
bin boot home
[aadarsha@labserver /]$ ls -d [hs]*
home sbin srv sys
[aadarsha@labserver /]$ ls -d [hs]*
home sbin srv sys
[aadarsha@labserver /]$ ls -d [sh]*
home sbin srv sys
[aadarsha@labserver /]$ ls -d [^she]*
afs bin boot dev lib lib64 media mnt opt proc root run tmp usr var
[aadarsha@labserver /]$ ls -d [she]*
etc home sbin srv sys
[aadarsha@labserver /]$ pwd
/
[aadarsha@labserver /]$ cd ~ # home directory
[aadarsha@labserver ~]$ pwd
/home/aadarsha
[aadarsha@labserver ~]$ ls
dir1 'my file' testcompany
# path navigation
[aadarsha@labserver ~]$ tree
.
├── dir1
│ └── dir2
│ └── dir3
│ └── dir4
│ └── dir5
├── my file
└── testcompany
├── management
├── service
│ ├── AI
│ ├── development
│ ├── devops
│ │ ├── cloud
│ │ │ ├── aws
│ │ │ ├── azure
│ │ │ └── gcp
│ │ └── onpremise
│ └── security
└── support
├── others
└── technical
21 directories, 1 file
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ cd /home/aadarsha/testcompany/service/security/
[aadarsha@labserver security]$ pwd
/home/aadarsha/testcompany/service/security
[aadarsha@labserver security]$ cd /home/aadarsha/testcompany/service/security/ # from root: absolute path
[aadarsha@labserver security]$ cd
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ cd /home/aadarsha/testcompany/service/security/ # from root: absolute path
[aadarsha@labserver security]$
[aadarsha@labserver security]$ cd ../../../dir1/dir2/dir3/dir4/ # from current path: relative path
[aadarsha@labserver dir4]$ pwd
/home/aadarsha/dir1/dir2/dir3/dir4
[aadarsha@labserver dir4]$ ls
dir5
[aadarsha@labserver dir4]$ cd
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ ls
dir1 'my file' testcompany
# moving and renaming files/dirs : mv command
# mv [options] <source> <destination>
# [option]
# -i --> ask for confirmation
# -f --> forcefully overwrite
# -i --> ask for confirmation (default for root)
# -f --> forcefully overwrite (default for normal users)
[aadarsha@labserver ~]$ pwd
/home/aadarsha
[aadarsha@labserver ~]$ ls
dir1 'my file' testcompany
[aadarsha@labserver ~]$ rm 'my file'
[aadarsha@labserver ~]$ ls
dir1 testcompany
[aadarsha@labserver ~]$
[aadarsha@labserver ~]$ cd dir1/dir2/dir3/
[aadarsha@labserver dir3]$
[aadarsha@labserver dir3]$ vi ~?