3CS LSP Unit 1-1
3CS LSP Unit 1-1
3CS LSP Unit 1-1
WHAT IS LINUX
Linux is an open-source operating system like other operating systems such as
Microsoft Windows, Apple Mac OS, iOS, Google android, etc. An operating system is software
that enables the communication between computer hardware and software. It conveys input to
get processed by the processor and brings output to the hardware to display it
1) Kernel: Linux kernel is the core part of the operating system. It establishes communication
between devices and software. Moreover, it manages system resources. It has four
responsibilities:
Device management: A system has many devices connected to it like CPU, a memory
device, sound cards, graphic cards, etc. A kernel stores all the data related to all the
devices in the device driver (without this kernel won't be able to control the devices).
Thus kernel knows what a device can do and how to manipulate it to bring out the best
performance. It also manages communication between all the devices. The kernel has
certain rules that have to be followed by all the devices.
Memory management: Another function that kernel has to manage is the memory
management. The kernel keeps track of used and unused memory and makes sure that
processes shouldn't manipulate data of each other using virtual memory addresses.
Process management: In the process, management kernel assigns enough time and gives
priorities to processes before handling CPU to other processes. It also deals with security
and ownership information.
Handling system calls: Handling system calls means a programmer can write a query or
ask the kernel to perform a task.
2) System Libraries: System libraries are special programs that help in accessing the kernel's
features. A kernel has to be triggered to perform a task, and this triggering is done by the
applications. But applications must know how to place a system call because each kernel has a
different set of system calls. Programmers have developed a standard library of procedures to
communicate with the kernel. Each operating system supports these standards, and then these are
transferred to system calls for that operating system. The most well-known system library for
Linux is Glibc (GNU C library).
3) System Tools: Linux OS has a set of utility tools, which are usually simple commands. It is
software which GNU project has written and publish under their open source license so that
software is freely available to everyone. With the help of commands, you can access your files,
edit and manipulate data in your directories or files, change the location of files, or anything.
4) Development Tools: With the above three components, your OS is running and working. But
to update your system, you have additional tools and libraries. These additional tools and
libraries are written by the programmers and are called tool chain. A tool chain is a vital
development tool used by the developers to produce a working application.
5) End User Tools: These end tools make a system unique for a user. End tools are not required
for the operating system but are necessary for a user. Some examples of end tools are graphic
design tools, office suites, browsers, multimedia players, etc.
LINUX COMMANDS
1. sudo command: Short for super user do, sudo is one of the most popular basic Linux
commands that lets you perform tasks that require administrative or root permissions. When
using sudo, the system will prompt users to authenticate themselves with a password. Then,
the Linux system will log a timestamp as a tracker. By default, every root user can run sudo
commands for 15 minutes/session.
Syntax:
sudo (command)
You can also add an option, such as:
-k or –reset-timestamp invalidates the timestamp file.
-g or –group=group runs commands as a specified group name or ID.
-h or –host=host runs commands on the host.
2. Man command: man command in Linux is used to display the user manual of any
command that we can run on the terminal. It provides a detailed view of the command which
includes NAME, SYNOPSIS, DESCRIPTION, OPTIONS, EXIT STATUS, RETURN
VALUES, ERRORS, FILES, VERSIONS, EXAMPLES, AUTHORS and SEE ALSO.
Syntax:
$man [OPTION]... [COMMAND NAME]...
3. Echo command: In Linux, the echo command can be used for displaying a line of string/text
that is passed as the arguments. This command is a built-in that is mostly and widely used in
various batch files and shell scripts to outcome status test to a file and screen.
Syntax:
echo [option] [string]
4. printf command: “printf” command in Linux is used to display the given string, number or
any other format specifier on the terminal window. It works the same way as “printf” works in
programming languages like C.
Syntax:
$printf [-v var] format [arguments]
5. Passwd command: Both Unix and Linux-like operating systems apply the passwd commands
for changing the password of the user. The passwd command is used for updating the
authentication password or token of the user which is saved in the /etc/shadow file.
Syntax:
$ passwd
6. Uname command: uname stands for UNIX name. It is a utility to check the system
information of your Linux computer. The uname command is commonly used to checks OS
details, OS architecture (32 bit or 64 bit), Linux Kernel version, and Kernel release.
Syntax:
uname [options]
7. who command: The Linux "who" command lets you display the users currently logged in to
your UNIX or Linux operating system. The information shown or displayed through this
command depends on how you are using this command. If you are using this command without
any option or argument, it will display only a small amount of information based on the
following points:
Time of last system boot
Current run level of the system
List of logged-in users and more
Syntax:
who
8. date Command
The date command is used to display date, time, time zone, and more.
Syntax:
date
9. Stty command: stty command in Linux is used to change and print terminal line settings.
Basically, this command shows or changes terminal characteristics.
Syntax:
stty [-F DEVICE | --file=DEVICE] [SETTING]...
stty [-F DEVICE | --file=DEVICE] [-a|--all]
stty [-F DEVICE | --file=DEVICE] [-g|--save]
10. pwd Command: The pwd command is used to display the location of the current working
directory.
Syntax:
pwd
11. cd Command: The cd command is used to change the current directory.
Syntax:
cd <directory name>
12. mkdir Command: The mkdir command is used to create a new directory under any
directory.
Syntax:
mkdir <directory name>
16. mv Command: The mv command is used to move a file or a directory form one location to
another location.
Syntax:
mv <file name> <directory path>
18. cat Command: The cat command is a multi-purpose utility in the Linux system. It can be
used to create a file, display content of the file, copy the content of one file to another file, and
more.
Syntax:
cat [OPTION]... [FILE]..
To create a file, execute it as follows:
cat > <file name>
// Enter file content
Press "CTRL+ D" keys to save the file. To display the content of the file, execute it as follows:
cat <file name>
19. more command: As 'cat' command displays the file content. Same way 'more' command also
displays the content of a file. Only difference is that, in case of larger files, 'cat' command output
will scroll off your screen while 'more' command displays output one screenful at a time.
Following keys are used in 'more' command to scroll the page:
Enter key: To scroll down page line by line.
Space bar: To go to next page.
b key: To go to the backward page.
/ key: Lets you search the string.
Syntax:
more <file name>
20. wc Command: The wc command is used to count the lines, words, and characters in a file.
Syntax:
wc <file name>
21. lp command: In Linux, different commands are used to print a file or output. Printing from a
Linux terminal is a straightforward process. The lp and lpr commands are used to print from the
terminal. And, the lpg command is used to display queued print jobs. To print files
from Linux terminal, execute the lp and lpr command. It will print the file from the default
printer.
Syntax:
lp < file name>
lpr <file name>
22. od command: The 'od' term stands for octal dump. It displays content of a file in different
human-readable formats like hexadecimal, octal and ASCII characters.
Syntax:
od -b <fileName> (display files in octal format)
od -t x1 <fileName> (display files in hexadecimal bytes format)
od -c <fileName> (display files in ASCII (backslashed) character format)
23. tar command: The tar command is short for tape archive in Linux. This command is used
for creating Archive and extracting the archive files. In Linux, it is one of the essential
commands which facilitate archiving functionality. We can use this command for creating
uncompressed and compressed archive files and modify and maintain them as well.
Syntax:
tar [options] [archive-file] [directory or file to be archived]
24. Gzip command: Gzip (GNU zip) is a compressing tool, which is used to truncate the file
size. By default original file will be replaced by the compressed file ending with extension (.gz).
To decompress a file you can use gunzip command and your original file will be back.
Syntax:
gzip <file1> <file2> <file3>. . .
gunzip <file1> <file2> <file3>. . .
NETWORKING COMMANDS
1. Unlink command: unlink is a command-line utility for removing a single file.
Syntax:
unlink filename
Where filename is the name of the file you want to remove. On success, the command doesn’t
produce any output and returns zero. The unlink command accepts only two options, --
help which displays the command help and --version which shows the version information.
2. Du command: Command du stands for Disk Usage. It is used to check the information of disk
usage of files and directories on a system. Command du displays a list of all the files along with
their respective sizes. By default, size given is in kilobytes. File names are used as arguments to
get the file size.
Syntax:
du
Options
Command Option
3. df Command: The df command is used to display the disk space used in the file system. It
displays the output as in the number of used blocks, available blocks, and the mounted directory.
Syntax:
df
4. mount command: The mount command attaches the file system of an external device to the
file system of a system. It instructs the operating system that file system is ready to use and
associate it with a particular point in the system's hierarchy. Mounting will make files,
directories and devices available to the users.
Syntax:
mount -t type <device> <directory>
5. umount command: The umount command detaches the specified file system(s) from the file
hierarchy. A file system is specified by giving the directory where it was mounted. Giving the
special device on which the file system lives may also work, but is an obsolete method, mainly
because it fails in case this device was mounted on more than one directory.
Syntax:
umount [-hV]
umount -a [-dflnrv] [-t vfstype] [-O options]
umount [-dflnrv] {dir|device}...
6. find command: The find command helps us to find a particular file within a directory. It is
used to find the list of files for the various conditions like permission, user ownership,
modification, date/time, size, and more. The find utility comes by default with most of the Linux
distros, so we don't need to install any additional package. It is one of the most essential and used
commands of the Linux system.
Syntax:
find <location> <comparison-criteria> <search-term>
The following symbols are used to specify the directory:
(.) : For current directory name
(/): For the root directory
7. Ulimit command: With this command we can enforce control at the global, group or user
level furthermore we can also prevent unwanted processes and users from consuming a lot of
system resources.
Syntax:
Ulimit options
8. Ps command: The ps command is used to view currently running processes on the system. It
helps us to determine which process is doing what in our system, how much memory it is using,
how much CPU space it occupies, user ID, command name, etc. The ps command may display
different results for different systems because it displays information about the currently running
process of a system.
Syntax:
ps
9. finger command: In the Linux operating system, a command-line utility known as “finger” is
used to display all available information about the system’s user.
Syntax:
finger [ option ] [ username ]
10. ARP Commands: The ARP commands to view, display, or modify the details/information
in an ARP table/cache. The ARP cache or table has the dynamic list of IP and MAC addresses of
those devices to which your computer has communicated recently in a local network.
The purpose of maintaining an ARP table is that when you want to communicate with another
device, your device does not need to send the ARP request for the MAC address of that device.
The ARPcommands also helps to find out the duplicate IP address and invalid entries in an ARP
table/cache.
arp -a: This command is used to display the ARP table for a particular IP address. It also
shows all the entries of the ARP cache or table.
arp -g: This command works the same as the arp -a command.
arp -d: This command is used when you want to delete an entry from the ARP table for a
particular interface. To delete an entry, write arp -d command along with the IP
address in a command prompt you want to delete.
Syntax:
arp -d 192.168.43.255
arp -d *: You can also delete all the entries from the ARP table. This command will
remove or flush all the entries from the table.
arp -s: This command is used to add the static entry in the ARP table, which resolves
the InetAddr (IP address) to the EtherAddr (physical address). To add a static entry in
an ARP table, write arp -s command along with the IP address and MAC address of the
device in a command prompt.
Syntax:
arp -s 192.168.43.160 00-aa-00-62-c6-09
11. FTP Commands: FTP is used to transfer the files from one device to another device on
the Internet. FTP command is very useful to the FTP client.
Table of the FTP commands:
4. ascii It is used to set the file transfer mode to ASCII (It is the default mode
for most FTP programs).
5. binary This command is used to set the file transfer mode to binary.
12. debug It is used to set the debugging mode on/off. This command does not
require a connection to a remote system.
15. get It is used to copy a file from the server to the client device.
17. help It is used to display the local help information. This command does
not require a connection to a remote system.
20. literal This command is used to send the argument to the remote machine.
21. ls It is used to list the names of the files in the current remote directory.
23. mdir It is used to lists the contents of the multiple remote directories.
24. mget It is used to copy multiple files from the remote machine to the local
machine.
25. mkdir It is used to make a new directory within the current remote directory.
26. mls This command is used to list the names of the files in the many server
directories.
27. mput This command is used to copy many files from the user device to the
server device.
28. open This command is used to open the connection with another system.
30. put This command is used to copy a file from the user device to the server
device.
31. pwd This command is used to search the path-name of the local directory
on the remote system.
33. quote This command is used to send the argument to the remote machine.
34. recv This command is used to receiver the file of the remote machine.
36. rename This command is used to rename the file of the system.
37. rmdir This command is used to remove the directory in the local remote
directory.
39. status This command is used to display the current status of the system.
41. user This command is used to transfer the new user detail.
12. telnet Command: In Linux, the telnet command is used to create a remote connection with a
system over a TCP/IP network. It allows us to administrate other systems by the terminal. We
can run a program to conduct administration.
Syntax:
telnet hostname/IP address
13. rlogin command : rlogin starts a terminal session on the remote host host. The
standard Berkeley "rhosts" authorization mechanism is used. The options are as follows:
Syntax:
rlogin [-8EKLdx] [-e char] [-l username] host
3. sort command: The 'sort' command sorts the file content in an alphabetical order.
Syntax:
sort <fileName>
4. nl command: Linux offers a wide range of commands for text formatting and
editing. While editing a text file, you might want to display the lines with line numbers
appended before them, and here comes the role-play of the nl command in
Linux. nl command is a Unix/Linux utility that is used for numbering lines, accepting input
either from a file or from STDIN. It copies each specified file to STDOUT, with line
numbers appended before the lines.
Syntax:
nl [OPTION]... [FILE]...
5. uniq Command: The uniq command is used to form a sorted list in which every word will
occur only once.
Syntax:
command <fileName> | uniq
6. grep: The 'grep' command stands for "global regular expression print". grep command
filters the content of a file which makes our search easy.
(i) grep with pipe: The 'grep' command is generally used with pipe (|).
Syntax:
command | grep <searchWord>
(ii)grep without pipe: It can be used without pipe also.
Syntax:
grep <searchWord> <file name>
7. egrep command: egrep is a pattern searching command which belongs to the family
of grep functions. It works the same way as grep -E does. It treats the pattern as an extended
regular expression and prints out the lines that match the pattern. If there are several files with
the matching pattern, it also displays the file names for each line.
Syntax:
egrep [ options ] 'PATTERN' files
8. fgrep command: The fgrep filter is used to search for the fixed-character strings in a file.
There can be multiple files also to be searched. This command is useful when you need to
search for strings which contain lots of regular expression metacharacters, such as “^”, “$”,
etc.
Syntax:
fgrep [options] [ -e pattern_list] [pattern] [file]
9. cut Command: The cut command is used to select a specific column of a file. The '-d' option
is used as a delimiter, and it can be a space (' '), a slash (/), a hyphen (-), or anything else. And,
the '-f' option is used to specify a column number.
Syntax:
cut -d(delimiter) -f(columnNumber) <fileName>
10. paste command: Paste command is one of the useful commands in Unix or Linux
operating system. It is used to join files horizontally (parallel merging) by outputting lines
consisting of lines from each file specified, separated by tab as delimiter, to the standard
output. When no file is specified, or put dash (“-“) instead of file name, paste reads from
standard input and gives output as it is until a interrupt command [Ctrl-c] is given.
Syntax:
paste [OPTION]... [FILES]...
11. join command: The join command in UNIX is a command line utility for joining lines of
two files on a common field. Suppose you have two files and there is a need to combine these
two files in a way that the output makes even more sense.
Syntax:
$join [OPTION] FILE1 FILE2
12. tee Command: The tee command is quite similar to the cat command. The only difference
between both filters is that it puts standard input on standard output and also write them into a
file.
Syntax:
cat <fileName> | tee <newFile> | cat or tac |.....
13. Pg command: pg displays a text file, pausing after each "page" (the height of
the terminal screen). After each page, a prompt is displayed. The user may then either press
the newline key to view the next page or one of the keys described below.
If no file name is given on the command line, pg reads from standard input. If standard output is
not a terminal, pg acts like cat but precedes each file with its name if there is more than one. If
input comes from a pipe, pg stores the data in a buffer file while reading to make navigation
possible.
Syntax:
pg [-number] [-p string] [-cefnrs] [+line] [+/pattern/] [file...]
14. comm.: The 'comm' command compares two files or streams. By default, 'comm' will always
display three columns. First column indicates non-matching items of first file, second column
indicates non-matching items of second file, and third column indicates matching items of both
the files. Both the files has to be in sorted order for 'comm' command to be executed.
Syntax:
comm <file1> <file2>
15. cmp command: cmp command in Linux/UNIX is used to compare the two files byte by
byte and helps you to find out whether the two files are identical or not.
When cmp is used for comparison between two files, it reports the location of the first
mismatch to the screen if difference is found and if no difference is found i.e the files
compared are identical.
cmp displays no message and simply returns the prompt if the files compared are
identical.
Syntax:
cmp [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]
16. diff command: The Linux diff command is used to compare two files line by line and
display the difference between them. This command-line utility lists changes you need to apply
to make the files identical.
Syntax:
diff [option] file1 file2
Output Syntax: When working with diff, it is crucial to know how to interpret the output, which
consists of:
Output starting with < refers to the content in the first file.
Output starting with > refers to the content in the second file.
Line numbers corresponding to the first file.
A special symbol. Special symbols indicate how the first file needs to be edited to match
the second file. The output may display:
a (add)
c (change)
d (delete)
Line numbers corresponding to the second file.
17. tr command: The command 'tr' stands for 'translate'. It is used to translate, like from
lowercase to uppercase and vice versa or new lines into spaces.
Syntax:
command | tr <'old'> <'new'>
18. cpio command: GNU cpio is a tool for creating and extracting archives, or copying files
from one place to another. It handles many cpio formats and reading and writing tar files.
(i) Copy-out mode syntax:
(ii) Copy-in mode syntax:
(iii) Copy-pass mode syntax: