Linux Commands Examples

In this post we will see all linux commands with detailed examples.

I sincerely thank Sushree Satapathy for her time and efforts for contributing this article and open source community.

whatis

Display one-line manual page descriptions

sushree@Sushree:/$ whatis pwd
pwd (1)          - print name of current/working directory

whereis

To find the source, binary, and manuals sections for specified commands or files

sushree@Sushree:~/Desktop/opensourcetutorial$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

who

Shows who is logged on

sushree@Sushree:/$ who
sushree  :0           2019-02-10 11:52 (:0)
sushree  pts/0        2019-02-10 12:46 (:0)

who am i

Print the user name associated with the current effective user ID.

sushree@Sushree:/$ who am i
sushree  pts/0        2019-02-10 12:46 (:0)

cat

Concatenate files and print on the standard output

SYNTAX : cat [OPTION]… [FILE]…

sushree@Sushree:~/Desktop/opensourcetutorial$ ls
hello.txt  hello.txt~  welcome.txt  welcome.txt~
sushree@Sushree:~/Desktop/opensourcetutorial$ cat hello.txt welcome.txt
Hello World..!!
Welcome to www.opensourcetutorials.in

cal

Displays a calendar

sushree@Sushree:~/Desktop/opensourcetutorial$ cal
February 2019      
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

pwd

Print name of current/working directory

SYNTAX : pwd [OPTION]…

sushree@Sushree:~$ pwd
/home/sushree

ls

List directory contents

SYNTAX : ls [OPTION]… [FILE]…

sushree@Sushree:~$ ls
Desktop    Downloads         Music     Public     Videos
Documents  examples.desktop  Pictures  Templates  VirtualBox VMs

Note : The directories are listed in lexicographical order.

-r

reverse order while sorting

sushree@Sushree:~$ ls -r
VirtualBox VMs  Templates  Pictures  examples.desktop  Documents
Videos          Public     Music     Downloads         Desktop

-l

use a long listing format

sushree@Sushree:~$ ls -l
total 48
drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop
drwxr-xr-x 2 sushree sushree 4096 Aug 10  2018 Documents
drwxr-xr-x 3 sushree sushree 4096 Feb  5 23:07 Downloads
-rw-r--r-- 1 sushree sushree 8980 May 12  2017 examples.desktop
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Music
drwxr-xr-x 2 sushree sushree 4096 Apr 16  2018 Pictures
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Public
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Templates
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Videos
drwxrwxr-x 4 sushree sushree 4096 Jan 21 22:36 VirtualBox VMs

The information can be broken down into ten fields as shown below. Let us consider the Desktop directory.

drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

Detail Description
d file type
rwx owner’s mode of access(permission)
r-x group’s mode of access(permission)
r-x other’s mode of access(permission)
2 number of hard links
sushree owner of the file
sushree group of the file
4096 size of the file in bytes
Aug 10 2018 last modified time stamp
Desktop Name

**d**rwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

The first field file type can be of the following types:

Detail FileType Description
d Directory A file used to store other files.
- Regular file Includes readable files, images files, binary files, and compressed files.
l Symbolic link Points to another file.
s Socket Allows for communication between processes.(duplex)
p Pipe Allows for communication between processes executed under different user names and permission.(unidirectional)
b Block file Used to communicate with hardware.(read/write data in blocks)
c Character file Used to communicate with hardware.(read/write data character by character)

The next nine set of characters indicate the permissions/mode of access o the file. There are three different types of permissions as shown below Permission | Effect on file | Effects on directory

Permisson Use Description
Read ( r ) Allows for file contents to be read or copied. Without execute permission on the directory, allows for a non-detailed listing of files. With execute permission, ls -l can provide a detailed listing.
Write ( w ) Allows for contents to be modified or overwritten. Allows for files to be added or removed from a directory. For this permission to work, the directory must also have execute permission.
Execute( x) Allows for a file to be run as a process, although script files require read permission, as well. Allows a user to change to the directory if parent directories have write permission as well.

The nine characters can be broken down into sets of three. They correspond to the owner of the file, the group that own’s the file and others(excluding the owner and the group)

In case of the Desktop directory, the owner has read, write and execute permission, the group which owns the directory has read and execute permission & the others have read and execute permission.


drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

The next field indicates the number of hard links to the file.

drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

The next field indicates the owner of the file.

drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

The next field indicates the group that owns the file.

drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

The field that follows is the size of the file in bytes.

drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

The next field is the last modified date of thee file.

drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

The last field  is the name of file.

Linux command options can be combined without a space between them and with a single - (dash).

The following are the file types

-lr

Long listing format in the reverse order

sushree@Sushree:~$ ls -lr
total 48
drwxrwxr-x 4 sushree sushree 4096 Jan 21 22:36 VirtualBox VMs
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Videos
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Templates
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Public
drwxr-xr-x 2 sushree sushree 4096 Apr 16  2018 Pictures
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Music
-rw-r--r-- 1 sushree sushree 8980 May 12  2017 examples.desktop
drwxr-xr-x 3 sushree sushree 4096 Feb  5 23:07 Downloads
drwxr-xr-x 2 sushree sushree 4096 Aug 10  2018 Documents
drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

Note : The order of the options doesnot affect the output.

sushree@Sushree:~$ ls -rl
total 48
drwxrwxr-x 4 sushree sushree 4096 Jan 21 22:36 VirtualBox VMs
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Videos
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Templates
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Public
drwxr-xr-x 2 sushree sushree 4096 Apr 16  2018 Pictures
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Music
-rw-r--r-- 1 sushree sushree 8980 May 12  2017 examples.desktop
drwxr-xr-x 3 sushree sushree 4096 Feb  5 23:07 Downloads
drwxr-xr-x 2 sushree sushree 4096 Aug 10  2018 Documents
drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop

-t

sort by modification time, newest first

sushree@Sushree:~$ ls -lt
total 48
drwxr-xr-x 3 sushree sushree 4096 Feb  5 23:07 Downloads
drwxrwxr-x 4 sushree sushree 4096 Jan 21 22:36 VirtualBox VMs
drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop
drwxr-xr-x 2 sushree sushree 4096 Aug 10  2018 Documents
drwxr-xr-x 2 sushree sushree 4096 Apr 16  2018 Pictures
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Music
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Public
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Templates
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Videos
-rw-r--r-- 1 sushree sushree 8980 May 12  2017 examples.desktop

-lrt

sort by modification time and reverse order for the same modification time stamp

sushree@Sushree:~$ ls -lrt
total 48
-rw-r--r-- 1 sushree sushree 8980 May 12  2017 examples.desktop
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Videos
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Templates
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Public
drwxr-xr-x 2 sushree sushree 4096 May 12  2017 Music
drwxr-xr-x 2 sushree sushree 4096 Apr 16  2018 Pictures
drwxr-xr-x 2 sushree sushree 4096 Aug 10  2018 Documents
drwxr-xr-x 2 sushree sushree 4096 Jan 18 12:14 Desktop
drwxrwxr-x 4 sushree sushree 4096 Jan 21 22:36 VirtualBox VMs
drwxr-xr-x 3 sushree sushree 4096 Feb  5 23:07 Downloads

cd

Change the shell working directory

SYNTAX : cd [options] [path]

sushree@Sushree:~$ pwd
/home/sushree
sushree@Sushree:~$ ls
Desktop    Downloads         Music     Public     Videos
Documents  examples.desktop  Pictures  Templates  VirtualBox VMs
sushree@Sushree:~$ cd Desktop
sushree@Sushree:~/Desktop$ pwd
/home/sushree/Desktop

cd ..

Change the shell to parent directory

sushree@Sushree:~/Desktop$ pwd
/home/sushree/Desktop
sushree@Sushree:~/Desktop$ cd ..
sushree@Sushree:~$ pwd
/home/sushree

cd ~

Change directory to the home directory of the current user

sushree@Sushree:~/Desktop/opensourcetutorial$ pwd
/home/sushree/Desktop/opensourcetutorial
sushree@Sushree:~/Desktop/opensourcetutorial$ cd ~
sushree@Sushree:~$ pwd
/home/sushree

cd using absolute path

sushree@Sushree:~$ pwd
/home/sushree
sushree@Sushree:~$ cd /home/sushree/Desktop/opensourcetutorial/
sushree@Sushree:~/Desktop/opensourcetutorial$ pwd
/home/sushree/Desktop/opensourcetutorial

cd using relative path

sushree@Sushree:~$ pwd
/home/sushree
sushree@Sushree:~$ cd Desktop/opensourcetutorial/
sushree@Sushree:~/Desktop/opensourcetutorial$ pwd
/home/sushree/Desktop/opensourcetutorial

cd command

Change directory two directories up

sushree@Sushree:~$ cd Desktop/opensourcetutorial/
sushree@Sushree:~/Desktop/opensourcetutorial$ cd ../../
sushree@Sushree:~$ pwd
/home/sushree
sushree@Sushree:~$

chmod

Change the file permissions (mode of access)

There are two techniques

1. Symbolic Method

SYNTAX : chmod []… FILE

Use combinations of letters and symbols to add or remove permissions.

The who are indicated using the following characters

Symbol Meaning
u User: The user who owns the file.
g Group: The group who owns the file.
o Others: Anyone other than the user owner or member of the group owner.
a All: Refers to the user, group and others.

The operators can be indicated using the following characters

Symbol Meaning
+ Add the permission
= Assign the permission
- Remove the permission

The permissions can be indicated using the following characters

Symbol Meaning
r read
w write
x execute

The option will be followed by the path to the file whose permission is to be modified.

sushree@Sushree:~/Desktop/opensourcetutorial$ ls -l
total 4
drwxrwxr-x 2 sushree sushree 4096 Feb 10 23:42 sush.txt
sushree@Sushree:~/Desktop/opensourcetutorial$ chmod u-w sush.txt
sushree@Sushree:~/Desktop/opensourcetutorial$ ls -l
total 4
dr-xrwxr-x 2 sushree sushree 4096 Feb 10 23:42 sush.txt

2. Absolute Method

SYNTAX : chmod [OPTION]… OCTAL-MODE FILE…

Use numbers to represent the permissions where each triplet is an octal number

The following is the list of octal values for setting the file permissions

Octal Value File Permissions Set Permissions Description
0 No permissions
1 –x Execute permission only
2 -w- Write permission only
3 -wx Write and execute permissions
4 r– Read permission only
5 r-x Read and execute permissions
6 rw- Read and write permissions
7 rwx Read, write, and execute permissions
sushree@Sushree:~/Desktop/opensourcetutorial$ ls -l
total 4
dr-xrwxr-x 2 sushree sushree 4096 Feb 10 23:42 sush.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ chmod 775 sush.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ ls -l
total 4
drwxrwxr-x 2 sushree sushree 4096 Feb 10 23:42 sush.txt

The octal nnumber 775 represents rwx rwx r-x. Therefore, the users gets the write access back.

chown

Change file owner and group

Changing ownership requires administrative access. Even an owner does noot have the right to give ownership of his file to another user. However, group ownership does not require administrative rights.

SYNTAX : chown [OPTIONS] [OWNER] FILE

Changing user ownership

sushree@Sushree:~/Desktop/opensourcetutorial$ ls -l
total 8
-rw-rw-r-- 1 sushree sushree 16 Feb 11 00:49 hello.txt
-rw-rw-r-- 1 sushree sushree 38 Feb 11 00:49 welcome.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ sudo su
[sudo] password for sushree:

root@Sushree:/home/sushree/Desktop/opensourcetutorial# chown root hello.txt
root@Sushree:/home/sushree/Desktop/opensourcetutorial# ls -l
total 8
-rw-rw-r-- 1 root    sushree 16 Feb 11 00:49 hello.txt
-rw-rw-r-- 1 sushree sushree 38 Feb 11 00:49 welcome.txt

Changing group ownership

root@Sushree:/home/sushree/Desktop/opensourcetutorial# ls -l
total 8
-rw-rw-r-- 1 sushree sushree 16 Feb 11 00:49 hello.txt
-rw-rw-r-- 1 sushree sushree 38 Feb 11 00:49 welcome.txt

root@Sushree:/home/sushree/Desktop/opensourcetutorial# chown root:root hello.txtroot@Sushree:/home/sushree/Desktop/opensourcetutorial# ls -l
total 8
-rw-rw-r-- 1 root    root    16 Feb 11 00:49 hello.txt
-rw-rw-r-- 1 sushree sushree 38 Feb 11 00:49 welcome.txt

mv

It is a file management command used to Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

SYNTAX : mv SOURCE DESTINATION

The mv command requires two arguments. The first argument is the path of the file to be moved (source) and the second is the path where the file is to be moved (destination).

If the file is moved from source to destination without specfying a new name, it will retain its old name.

sushree@Sushree:~/Desktop$ ls
opensourcetutorial  osgeolive-12.0-vm.7z  osgeolive-12.0-vm.vmdk

sushree@Sushree:~/Desktop$ cd opensourcetutorial/

sushree@Sushree:~/Desktop/opensourcetutorial$ ls
hello.txt  welcome.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ mv hello.txt /home/sushree/Desktop/

sushree@Sushree:~/Desktop/opensourcetutorial$ cd ..

sushree@Sushree:~/Desktop$ ls
hello.txt  opensourcetutorial  osgeolive-12.0-vm.7z  osgeolive-12.0-vm.vmdk

however, the file can be renamed using the mv command by specifying the new name in the destination argument.

sushree@Sushree:~/Desktop$ ls
hello.txt  opensourcetutorial  osgeolive-12.0-vm.7z  osgeolive-12.0-vm.vmdk

sushree@Sushree:~/Desktop$ mv hello.txt /home/sushree/Desktop/opensourcetutorial/newhello.txt

sushree@Sushree:~/Desktop$ cd opensourcetutorial/

sushree@Sushree:~/Desktop/opensourcetutorial$ ls
newhello.txt  welcome.txt

Moving the file in the same directory will result in renaming the file.

sushree@Sushree:~/Desktop/opensourcetutorial$ ls
newhello.txt  welcome.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ mv newhello.txt rename.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ ls
rename.txt  welcome.txt

Multiple files can be moved using the mv command

sushree@Sushree:~/Desktop/opensourcetutorial$ ls
rename.txt  welcome.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ mv rename.txt welcome.txt /home/sushree/Desktop/

sushree@Sushree:~/Desktop/opensourcetutorial$ ls

sushree@Sushree:~/Desktop/opensourcetutorial$ cd ..

sushree@Sushree:~/Desktop$ ls
opensourcetutorial    osgeolive-12.0-vm.vmdk  welcome.txt
osgeolive-12.0-vm.7z  rename.txt

mv command requires write and execute permission on both the source and destination.

sushree@Sushree:~/Desktop$ ls -l
total 14118052
-rw-rw-r-- 1 sushree sushree          17 Feb 17 21:07 hello.txt
drwxrwxr-x 2 sushree sushree        4096 Feb 17 21:11 opensourcetutorial
-rw-r--r-- 1 sushree sushree  3359521331 Jan 16 07:28 osgeolive-12.0-vm.7z
-rw------- 1 sushree sushree 11097341952 Jan 21 22:35 osgeolive-12.0-vm.vmdk
-rw-rw-r-- 1 sushree sushree          38 Feb 11 00:49 welcome.txt

sushree@Sushree:~/Desktop$ mv hello.txt /home/sushree/Desktop/opensourcetutorial/hello.txt

sushree@Sushree:~/Desktop$ ls -l
total 14118048
drwxrwxr-x 2 sushree sushree        4096 Feb 17 21:12 opensourcetutorial
-rw-r--r-- 1 sushree sushree  3359521331 Jan 16 07:28 osgeolive-12.0-vm.7z
-rw------- 1 sushree sushree 11097341952 Jan 21 22:35 osgeolive-12.0-vm.vmdk
-rw-rw-r-- 1 sushree sushree          38 Feb 11 00:49 welcome.txt

sushree@Sushree:~/Desktop$ chmod u-w opensourcetutorial/
sushree@Sushree:~/Desktop$ chmod u-x opensourcetutorial/

sushree@Sushree:~/Desktop$ ls -l
total 14118048
dr--rwxr-x 2 sushree sushree        4096 Feb 17 21:12 opensourcetutorial
-rw-r--r-- 1 sushree sushree  3359521331 Jan 16 07:28 osgeolive-12.0-vm.7z
-rw------- 1 sushree sushree 11097341952 Jan 21 22:35 osgeolive-12.0-vm.vmdk
-rw-rw-r-- 1 sushree sushree          38 Feb 11 00:49 welcome.txt

sushree@Sushree:~/Desktop$ mv welcome.txt /home/sushree/Desktop/opensourcetutorial/
mv: cannot stat ‘/home/sushree/Desktop/opensourcetutorial/welcome.txt’: Permission denied

cp

Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

SYNTAX : cp [OPTIONS] SOURCE DESTINATION

sushree@Sushree:~/Desktop$ ls -l
total 14118052
-rw-rw-r-- 1 sushree sushree          17 Feb 17 21:07 hello.txt
drwxrwxr-x 2 sushree sushree        4096 Feb 17 21:12 opensourcetutorial
-rw-r--r-- 1 sushree sushree  3359521331 Jan 16 07:28 osgeolive-12.0-vm.7z
-rw------- 1 sushree sushree 11097341952 Jan 21 22:35 osgeolive-12.0-vm.vmdk
-rw-rw-r-- 1 sushree sushree          38 Feb 11 00:49 welcome.txt

sushree@Sushree:~/Desktop$ cp hello.txt /home/sushree/Desktop/opensourcetutorial/

sushree@Sushree:~/Desktop$ cd opensourcetutorial/
sushree@Sushree:~/Desktop/opensourcetutorial$ ls
hello.txt

sushree@Sushree:~/Desktop$ ls -l
total 14118048
dr--rwxr-x 2 sushree sushree        4096 Feb 17 21:12 opensourcetutorial
-rw-r--r-- 1 sushree sushree  3359521331 Jan 16 07:28 osgeolive-12.0-vm.7z
-rw------- 1 sushree sushree 11097341952 Jan 21 22:35 osgeolive-12.0-vm.vmdk
-rw-rw-r-- 1 sushree sushree          38 Feb 11 00:49 welcome.txt

sushree@Sushree:~/Desktop$ cp /home/sushree/Desktop/opensourcetutorial/hello.txt /home/sushree/Desktop/
cp: cannot stat ‘/home/sushree/Desktop/opensourcetutorial/hello.txt’: Permission denied

rm

remove files or directories

SYNTAX : rm [OPTION]… FILE…

sushree@Sushree:~/Desktop$ ls
hello.txt           osgeolive-12.0-vm.7z    welcome.txt
opensourcetutorial  osgeolive-12.0-vm.vmdk
sushree@Sushree:~/Desktop$ rm hello.txt
sushree@Sushree:~/Desktop$ ls
opensourcetutorial  osgeolive-12.0-vm.7z  osgeolive-12.0-vm.vmdk  welcome.txt

date

Display the current time in the given FORMAT, or set the system date.

SYNTAX : date [OPTION]… [+FORMAT]

sushree@Sushree:~/Desktop$ date
Sun Feb 24 11:35:17 IST 2019

Display date in a given format

The following are the format specifier

Format Specifier Description
%D Display date as mm/dd/yy.
%d Display the day of the month (01 to 31).
%a Displays the abbreviated name for weekdays (Sun to Sat).
%A Displays full weekdays (Sunday to Saturday).
%h Displays abbreviated month name (Jan to Dec).
%b Displays abbreviated month name (Jan to Dec).
%B Displays full month name(January to December).
%m Displays the month of year (01 to 12).
%y Displays last two digits of the year(00 to 99).
%Y Display four-digit year.
%T Display the time in 24 hour format as HH:MM:SS.
%H Display the hour.
%M Display the minute.
%S Display the seconds.

Display UTC(Coordinated Universal Time ) time

sushree@Sushree:~$ date -u
Sat Mar 30 04:15:45 UTC 2019

Display the date specified in the string in date format

sushree@Sushree:~$ date --date="09/20/2018"
Thu Sep 20 00:00:00 IST 2018

Here the date specified is 20th September 2018 which has been displayedd in the date format.

Displaying past date

sushree@Sushree:~$ date --date="1 year ago"
Fri Mar 30 09:54:23 IST 2018

sushree@Sushree:~$ date --date="5 secs ago"
Sat Mar 30 09:54:49 IST 2019

sushree@Sushree:~$ date --date="6 months ago"
Sun Sep 30 09:55:49 IST 2018

Displaying futre date

sushree@Sushree:~$ date --date="next monday"
Mon Apr  1 00:00:00 IST 2019

sushree@Sushree:~$ date --date="5 year"
Sat Mar 30 09:57:39 IST 2024

sushree@Sushree:~$ date --date="tomorrow"
Sun Mar 31 09:58:30 IST 2019

Set the system date

sushree@Sushree:~$ date --set="Tue Nov 13 15:23:34 UTC 2018"
sushree@Sushree:~$ date
Tue Nov 13 15:23:34 UTC 2018

#stat

Displays file status or inofrmation

sushree@Sushree:~/Desktop/opensourcetutorial$ stat a.txt
File: ‘a.txt’
Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 809h/2057d	Inode: 2121285     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ sushree)   Gid: ( 1000/ sushree)
Access: 2019-03-31 18:27:02.261105369 +0530
Modify: 2019-03-31 18:27:02.261105369 +0530
Change: 2019-03-31 18:27:02.261105369 +0530
Birth: -

It includes information like the name of the file, size, number of blocks it is using, inode number, number of hard links, last modified time, last access time etc.

touch

Touch command allows to create a blank file. In case if the file already exist it will change the access time of the file.

SYNTAX : touch [OPTION]… FILE…

To create an empty file

sushree@Sushree:~/Desktop/opensourcetutorial$ ls
hello.txt
sushree@Sushree:~/Desktop/opensourcetutorial$ touch welcome.txt
sushree@Sushree:~/Desktop/opensourcetutorial$ ls
hello.txt  welcome.txt

To create multiple files at a time, specify space separated names of the files

sushree@Sushree:~/Desktop/opensourcetutorial$ ls
hello.txt  welcome.txt
sushree@Sushree:~/Desktop/opensourcetutorial$ touch test.txt test1.txt test2.txtsushree@Sushree:~/Desktop/opensourcetutorial$ ls
hello.txt  test1.txt  test2.txt  test.txt  welcome.txt

To create multiple files with a variety of patterns

sushree@Sushree:~/Desktop/opensourcetutorial$ touch {a..c}.txt
sushree@Sushree:~/Desktop/opensourcetutorial$ ls
a.txt  b.txt  c.txt  hello.txt  test1.txt  test2.txt  test.txt  welcome.txt

To change the access time

sushree@Sushree:~/Desktop/opensourcetutorial$ stat a.txt
File: ‘a.txt’
Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 809h/2057d	Inode: 2121285     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ sushree)   Gid: ( 1000/ sushree)
Access: 2019-03-31 18:27:02.261105369 +0530
Modify: 2019-03-31 18:27:02.261105369 +0530
Change: 2019-03-31 18:27:02.261105369 +0530
Birth: -

sushree@Sushree:~/Desktop/opensourcetutorial$ touch -a a.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ stat a.txt
File: ‘a.txt’
Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 809h/2057d	Inode: 2121285     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ sushree)   Gid: ( 1000/ sushree)
Access: 2019-03-31 18:33:50.857102355 +0530
Modify: 2019-03-31 18:27:02.261105369 +0530
Change: 2019-03-31 18:33:50.857102355 +0530
Birth: -

Note : the access time changes from 18:27 to 18:33 whereas the modified time still remains the same.

To change the last modified time

sushree@Sushree:~/Desktop/opensourcetutorial$ stat a.txt
File: ‘a.txt’
Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 809h/2057d	Inode: 2121285     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ sushree)   Gid: ( 1000/ sushree)
Access: 2019-03-31 18:33:50.857102355 +0530
Modify: 2019-03-31 18:27:02.261105369 +0530
Change: 2019-03-31 18:33:50.857102355 +0530
Birth: -

sushree@Sushree:~/Desktop/opensourcetutorial$ touch -m a.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ stat a.txt
File: ‘a.txt’
Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 809h/2057d	Inode: 2121285     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ sushree)   Gid: ( 1000/ sushree)
Access: 2019-03-31 18:33:50.857102355 +0530
Modify: 2019-03-31 18:34:09.045102221 +0530
Change: 2019-03-31 18:34:09.045102221 +0530
Birth: -

Note : the modified time changes from 18:27 to 18:34

To change both the access time as well as the modified time

sushree@Sushree:~/Desktop/opensourcetutorial$ stat a.txt
File: ‘a.txt’
Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 809h/2057d	Inode: 2121285     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ sushree)   Gid: ( 1000/ sushree)
Access: 2019-03-31 18:33:50.857102355 +0530
Modify: 2019-03-31 18:34:09.045102221 +0530
Change: 2019-03-31 18:34:09.045102221 +0530
Birth: -

sushree@Sushree:~/Desktop/opensourcetutorial$ touch -am a.txt

sushree@Sushree:~/Desktop/opensourcetutorial$ stat a.txt
File: ‘a.txt’
Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 809h/2057d	Inode: 2121285     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ sushree)   Gid: ( 1000/ sushree)
Access: 2019-03-31 18:43:52.241097918 +0530
Modify: 2019-03-31 18:43:52.241097918 +0530
Change: 2019-03-31 18:43:52.241097918 +0530
Birth: -