Osy Microproject
Osy Microproject
Wagh Polytechnic,Nashik
Micro-Project Proposal
Name of Programme: Information Technology
Academic Year: 2021-22 Semester: IF-5-I
Name of Course: Operating Systems Course code:
22516
Title of Micro-Project: Prepare help guide using shell script for all the major Linux
commands.
Team Member : Akash Dongare
1.0 Rationale
From this project students will get help in shell scripting. Because of this everyone
get information about Linux Commands.
Micro-Project Report
Name of Programme: Information Technology
Academic Year: 2021-22 Semester: IF-5-I
Name of Course: Operating Systems Course code:
22516
Title of Micro-Project:
1.0 Rationale
The purpose of this document is to provide the reader with a fast and simple introduction to using the
Linux command shell and some of its basic utilities. It is assumed that the reader has zero or very limited
exposure to the Linux command prompt. This document is designed to accompany an instructor-led
tutorial on this subject, and therefore some details have been left out. E
• The project work is distributed among the group members as per the group discussion.
• After finding all information and data starting work on project by all group members.
• On the basis of information we explain all topics of the project.
• Finally, all the information and data we present in the form of the project.
• After that we show our work and project to our teacher and submit the project and report.
5.0 Actual Resources used:
S. No. Name of Resource/material Specifications Qty Remarks
1 Computer System Windows 10 1
2 Reference Book Text Book 1
3 website www.google.com 1
1.0 Introduction
The purpose of this document is to provide the reader with a fast and simple introduction to using
the Linux command shell and some of its basic utilities. It is assumed that the reader has zero or very
limited exposure to the Linux command prompt. This document is designed to accompany an
instructor-led tutorial on this subject, and therefore some details have been left out. Explanations,
practical examples, and references to DOS commands are made, where appropriate.
“\” vs. “/”: In DOS, the forward-slash “/” is the command argument delimiter, while
the backslash “\” is a directory separator. In Linux/UNIX, the “/” is the
directory separator, and the “\” is an escape character. More about these
special characters in a minute!
Filenames: The DOS world uses the “eight dot three” filename convention, meaning
that all files followed a format that allowed up to 8 characters in the
filename, followed by a period (“dot”), followed by an option extension, up
to 3 characters long (e.g. FILENAME.TXT). In UNIX/Linux, there is no such
thing as a file extension. Periods can be placed at any part of the filename,
and “extensions” may be interpreted differently by all programs, or not at
all.
1.4 Special Characters
Before we continue to learn about Linux shell commands, it is important to know that there are
many symbols and characters that the shell interprets in special ways. This means that certain typed
characters: a) cannot be used in certain situations, b) may be used to perform special operations, or,
c) must be “escaped” if you want to use them in a normal way.
Character Description
\ Escape character. If you want to reference a special character, you must “escape” it with a
backslash first.
Example: touch /tmp/filename\*
/ Directory separator, used to separate a string of directory names.
Example: /usr/src/linux
. Current directory. Can also “hide” files when it is the first character in a filename.
.. Parent directory
~ User's home directory
* Represents 0 or more characters in a filename, or by itself, all files in a directory.
Example: pic*2002 can represent the files pic2002, picJanuary2002,
picFeb292002, etc.
? Represents a single character in a filename.
Example: hello?.txt can represent hello1.txt, helloz.txt, but not
hello22.txt
[ ] Can be used to represent a range of values, e.g. [0-9], [A-Z], etc.
Example: hello[0-2].txt represents the names hello0.txt, hello1.txt, and
hello2.txt
| “Pipe”. Redirect the output of one command into another command.
Example: ls | more
> Redirect output of a command into a new file. If the file already exists, over-write it.
Example: ls > myfiles.txt
>> Redirect the output of a command onto the end of an existing file.
Example: echo “Mary 555-1234” >> phonenumbers.txt
< Redirect a file as input to a program.
Example: more < phonenumbers.txt
; Command separator. Allows you to execute multiple commands on a single line.
Example: cd /var/log ; less messages
&& Command separator as above, but only runs the second command if the first one finished
without errors.
Example: cd /var/logs && less messages
& Execute a command in the background, and immediately get your shell back.
Example: find / -name core > /tmp/corefiles.txt &
1.5 Executing Commands
Your shell's “PATH” variable includes the most common program locations, such as /bin,
/usr/bin, /usr/X11R6/bin, and others.
To execute commands that are not in your current PATH, you have to give the complete
location of the command.
Examples: /home/bob/myprogram
Command Syntax
Commands can be run by themselves, or you can pass in additional arguments to make them do
different things. Typical command syntax can look something like this:
command [-argument] [-argument] [--argument] [file]
When you're stuck and need help with a Linux command, help is usually only a few keystrokes away!
Help on most Linux commands is typically built right into the commands themselves, available
through online help programs (“man pages” and “info pages”), and of course online.
Many commands have simple “help” screens that can be invoked with special command flags.
These flags usually look like “-h” or “--help”.
Example: grep --help
The best source of information for most commands can be found in the online manual pages, known
as “man pages” for short. To read a command's man page, type “man command”.
To search for a particular word within a man page, type “/word”. To quit from a man page, just
type the “Q” key.
Sometimes, you might not remember the name of Linux command and you need to search for it. For
example, if you want to know how to change a file's permissions, you can search the man page
descriptions for the word “permission” like this:
man -k permission
If you look at the output of this command, you will find a line that looks something like:
chmod (1) - change file access permissions
Now you know that “chmod” is the command you were looking for. Typing “man chmod” will show
you the chmod command's manual page!
Some programs, particularly those released by the Free Software Foundation, use info pages as their
main source of online documentation. Info pages are similar to man page, but instead of being
displayed on one long scrolling screen, they are presented in shorter segments with links to other
pieces of information. Info pages are accessed with the “info” command, or on some
Linux distributions, “pinfo” (a nicer info browser).
The Linux filesystem is a tree-like hierarchy hierarchy of directories and files. At the base of the
filesystem is the “/” directory, otherwise known as the “root” (not to be confused with the root
user). Unlike DOS or Windows filesystems that have multiple “roots”, one for each disk drive, the
Linux filesystem mounts all disks somewhere underneath the / filesystem. The following table
describes many of the most common Linux directories.
3.1 The Linux Directory Layout
Directory Description
The nameless base of the filesystem. All other directories, files, drives, and devices
are attached to this root. Commonly (but incorrectly) referred to as the “slash” or
“/” directory. The “/” is just a directory separator, not a directory itself.
/bin Essential command binaries (programs) are stored here (bash, ls, mount,
tar, etc.)
/boot Static files of the boot loader.
/dev Device files. In Linux, hardware devices are acceessd just like other files, and they
are kept under this directory.
/etc Host-specific system configuration files.
/home Location of users' personal home directories (e.g. /home/susan).
/lib Essential shared libraries and kernel modules.
/proc Process information pseudo-filesystem. An interface to kernel data structures.
/root The root (superuser) home directory.
/sbin Essential system binaries (fdisk, fsck, init, etc).
/tmp Temporary files. All users have permission to place temporary files here.
/usr The base directory for most shareable, read-only data (programs, libraries,
documentation, and much more).
/usr/bin Most user programs are kept here (cc, find, du, etc.).
/usr/include Header files for compiling C programs.
/usr/lib Libraries for most binary programs.
/usr/local “Locally” installed files. This directory only really matters in environments where
files are stored on the network. Locally-installed files go in /usr/local/bin,
/usr/local/lib, etc.). Also often used for
software packages installed from source, or software not officially shipped with the
distribution.
/usr/sbin Non-vital system binaries (lpd, useradd, etc.)
/usr/share Architecture-independent data (icons, backgrounds, documentation, terminfo, man
pages, etc.).
/usr/src Program source code. E.g. The Linux Kernel, source RPMs, etc.
/usr/X11R6 The X Window System.
/var Variable data: mail and printer spools, log files, lock files, etc.
3.2 Commands for Navigating the Linux Filesystems
The first thing you usually want to do when learning about the Linux filesystem is take some time to
look around and see what's there! These next few commands will: a) Tell you where you are, b) take
you somewhere else, and c) show you what's there. The following table describes the basic
operation of the pwd, cd, and ls commands, and compares them to certain DOS commands that
you might already be familiar with.
ls /usr/bin/d* dir d*.* List all files whose names begin with the letter “d” in
the /usr/bin directory.
4.0 Piping and Re-Direction
Before we move on to learning even more commands, let's side-track to the topics of piping
and re-direction. The basic UNIX philosophy, therefore by extension the Linux philosophy, is to have
many small programs and utilities that do a particular job very well. It is the responsibility of the
programmer or user to combine these utilities to make more useful command sequences.
4.1 Piping Commands Together
The pipe character, “|”, is used to chain two or more commands together. The output of the first
command is “piped” into the next program, and if there is a second pipe, the output is sent to the
third program, etc. For example:
ls -la /usr/bin | less
In this example, we run the command “ls -la /usr/bin”, which gives us a long listing of all of
the files in /usr/bin. Because the output of this command is typically very long, we pipe the
output to a program called “less”, which displays the output for us one screen at a time.
There are times when it is useful to save the output of a command to a file, instead of displaying it to
the screen. For example, if we want to create a file that lists all of the MP3 files in a directory, we can
do something like this, using the “>” redirection character:
ls -l /home/vic/MP3/*.mp3 > mp3files.txt
A similar command can be written so that instead of creating a new file called mp3files.txt, we
can append to the end of the original file:
ls -l /home/vic/extraMP3s/*.mp3 >> mp3files.txt
5.0 Other Linux Commands
The following sections describe many other commands that you will find on most Linux
systems.
I can't possibly cover the details of all of these commands in this document, so don't forget that you
can check the “man pages” for additional information. Not all of the listed commands will be
available on all Linux or UNIX distributions.
The following commands are used to find files. “ls” is good for finding files if you already know
approximately where they are, but sometimes you need more powerful tools such as these:
Linux Description
Command
which Shows the full path of shell commands found in your path. For example, if you want
to know exactly where the “grep” command is located on the filesystem, you can
type “which grep”. The output should be something like: /bin/grep
whereis Locates the program, source code, and manual page for a command (if all
information is available). For example, to find out where “ls” and its man page are,
type: “whereis ls” The output will look something like:
ls: /bin/ls /usr/share/man/man1/ls.1.gz
locate A quick way to search for files anywhere on the filesystem. For example, you can find
all files and directories that contain the name “mozilla” by typing:
locate mozilla
find A very powerful command, but sometimes tricky to use. It can be used to search for
files matching certain patterns, as well as many other types of searches. A simple
example is:
find . -name \*mp3
This example starts searching in the current directory “.” and all subdirectories,
looking for files with “mp3” at the end of their names.
5.3 Informational Commands
The following commands are used to find out some information about the user or the system.
less An improved replacement for the “more” command. Allows you to scroll
backwards as well as forwards.
grep Search for a pattern in a file or program output. For example, to find out which TCP
network port is used by the “nfs” service, you can do this:
grep “nfs” /etc/services
This looks for any line that contains the string “nfs” in the file “/etc/services” and
displays only those lines.
lpr Print a file or program output. Examples:
lpr mp3files.txt - Print the mp3files.txt file ls -la | lpr -
Print the output of the “ls -la” command.
Shortcut Description
Up/Down Arrow Keys Scroll through your most recent commands. You can scroll back
to an old command, hit ENTER, and execute the command
without having to re-type it.
“history” command Show your complete command history.
TAB Completion If you type a partial command or filename that the shell
recognizes, you can have it automatically completed for you if
you press the TAB key. Try typing the first few characters of
your favourite Linux command, then hit TAB a couple of times
to see what happens.
Complete recent commands with “!” Try this: Type “!” followed by the first couple of letters of a
recent command and press ENTER! For example, type:
find /usr/bin -type f -name m\*
...and now type:
!fi
Search your command history with Press CTRL-R and then type any portion of a recent
CTRL-R command. It will search the commands for you, and once you
find the command you want, just press ENTER.
Scrolling the screen with Scroll back and forward through your terminal.
ShiftPageUp and Page Down
Evaluated by: Name & Signature of Guide
Date: Ms. M. S. Karande