online training in unix linux shell scripting in hyderabad

48
UNIX OPERATING SYSTEM - Ravi www.etraining.guru

Upload: ravikumar-nandigam

Post on 13-Apr-2017

724 views

Category:

Education


0 download

TRANSCRIPT

UNIX OPERATING SYSTEM- Ravi www.etraining.guru

What is an Operating System ?

Definition: An Operating system (OS) is a collection of softwares that manages computer hardware resources and provides common services for computer programs. (as per Wikipedia!)

A simple definition - An Operating System is an interface between Hardware and User.

Circular V

iew

Horizontal V

iew

Examples of Operating Systems

DOS - Disk Operating System, a product of IBM. Not very user friendly!

Windows - A product of Microsoft. User friendliness through GUI

MacOS - Macintosh, a product of Apple. User friendliness through GUI

Unix - Originally CUI, now has GUI as well

Linux - Supports both CUI & GUI

If Windows is an OS, what are Windows 95, 98, ME, NT, 2000, XP, 7, and 8?

Similarly, Unix and Linux OS’s have various flavors/versions too. Lets first look at Unix Evolution …

Unix Evolution

“MULTI”cs (MULTIplexed Information and Computing Service)

“UNI”XBy, Dennis Ritchie, Brain kernighan and Ken Thompson @AT&T Bell Laboratories in early 1970's

Unix Evolution …• Is the name of the family of operating systems developed at Bell Laboratories around 1969.

• Was largely the creation of two programmers working at Bell Laboratories, Ken Thompson and Brain

Kernighan.

• Was initially used in academic environments and spread quickly to commercial environments also

• Has got 90% of it developed in ‘C’ language and, 10% machine specific assembly code.

• Basic UNIX system occupies around 10 MB disk space on PCs.

Unix Evolution …

Note: You can also call these Single Unix Specifications as POSIX - Portable Operating System Interface for UNIX

Unix Evolution …

Open source (vs) Closed Source (vs) Mixed source?

Unix Evolution …

Unix Evolution …

What is LINUX?

Linux is a Unix clone written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX compliance.

Below are few popular Linux distributions:

• Debian - A non-commercial distribution maintained by a volunteer developer community with a strong commitment to free s/w principles

• Ubuntu - A popular desktop and server distribution derived from Debian

• Fedora - A community distribution sponsored by American company Red Hat

• openSUSE - A community distribution mainly sponsored by American company Novell

• Mageia, Mint Linux, slackware, etc

Unix/Linux Main Features Multitasking Capabilities

Multi-User Capabilities

Hierarchical Directory Structure

Security

Portability

UNIX Architecture

KernelShell

Tools & Applications

H/W

UNIX Architecture …

Categorized as three levels:

• Kernel - Core/Heart of the Operating System

• Shell - User interface with Operating System

•Tools and Applications - Utilities and User Programs

Note: In detail, will be covered in later sections …

Dumb Terminals / Nodes

UNIX Server < --- > Terminals

Working in Unix Environment

Few things to remember …

Working in Unix is majorly through commands

Syntax: command option(s) filename(s)You must type spaces between commands, options, and filenames

Unix is case sensitive

Unix has a lot of commands! Don’t try to byheart all of them

uname

Command Name: uname

Syntax: uname [option] …

Description: Print system information

Usage: uname -a ==> Print all informationuname -s ==> Kernal nameuname -n ==> node nameuname -r ==> Kernal releaseuname -o ==> operating systemuname -son ==> Kernal name + os + node nameuname -m ==> m/c hardware nameuname -i ==> Hardware platform

man

Command Name: man

Syntax: man [command]

Description: Online manual pages; In built google!

Usage: man uname ==> to display “uname” manual pagesman man ==> to display “man” manual pages

Note: In manual pages, q is to quit/come back to command prompt. “Space Bar” is to scroll to next page

User Related

• who – Shows who is logged on

• w – Shows who is logged on and what they are doing

• whoami – Effective userid

• who am i – details about the userid

PS: man –k who searches for word who in all man pages

Unix MISC commands

• tty – Displays the terminal id

• stty –a

Example: stty intr ^a (To use CTRL + a for interrupt)

• ifconfig – To get IP address

Example: /sbin/ifconfig | grep 'inet addr:'| grep -v

'127.0.0.1' | cut -d: -f2 | awk '{ print $1}‘

Unix MISC Commands

• cal

• banner

• clear

• alias

Date Command• Gets/sets the date and time in the UNIX server machine

• Some Options : %D, %T, %A, %B, %H, %d

• Examples

- $ date

- $ date +%D

- $ date +%T

- $ date +%d-%m-%Y

Date command contd…

• Setting system time: (Needs root permission)

Example: $date MMDDhhmmYYYY.ss

Where, MM – month

DD – day

YYYY – year

hh – hour is based on 24 hour

mm – minutes

ss – seconds

Before we move on to next concept …

unamemanwhowwhoamiwho am ittyifconfigcalbannerstty dateclearalias

UNIX FILE SYSTEM

What is a filesystem?A filesystem is a logical collection of files on a partition or disk. You can view filesystems using df (or) bdf commands

Unix uses a hierarchical file system structure, much like an upside-down tree, with root (/) at the base of the file system and all other directories spreading from there.

In Unix everything is a file - a stream of bytes. Unix treats documents, directories, hard-drives, CD-Roms, modems, keyboards, printers, monitors, terminals, etc as files.

For each file in the filesystem, UNIX stores administrative information in a structure known as Inode (Index node).

ls -I /etc/passwdstat /etc/passwd

Unix File system (tree) Structure

UNIX File System

3 types of files

• Ordinary - Under user control (Ex: Notepad/wordpad in windows)

•Directory - to hold list of files (like a folder in windows)

• Speical - For example, device drivers, raw devices, etc

File System Commands

• pwd Print Working Directory

• ls

• cd

• mkdir

• touch

ls – List directory contents

• Syntax: ls [OPTIONS] [FILE(s)]

Examples: ls –l Long Listing

ls –la to list hidden files

ls –ltr To list files based upon modified time

ls –l /home/cdctrg32/ravi/copyme (listing other user files)

Note: . is Current working directory, .. is Parent working directory

cd – Change Directory

• syntax: cd [options] [directory]

• Example: To go to root directory, cd /

• cd . (You will be in pwd)

•cd .. (One directory up)

• cd - (Changes to previous working directory)

• cd Enter (Changes to Home directory)

mkdir – create directories

• Syntax: mkdir [OPTIONS] [Directories] …

• Example: cd Enter (You will be placed in your home directory)

mkdir training (Creates a new training directory)

ls –l training (View recently created directory)

cd training (Now you will be placed in training directory)

pwd; ls (Bingo!!! No files created yet)

cp – copy files and directories

• Syntax: cp [OPTIONS] [SOURCE] [DEST] …

• Example: cd training;

cp /home/cdctrg32/ravi/copyme mycopy (file copy)

cp –R /home/cdctrg32/ravi/copy_dir . (directory copy)

mv – move/rename files

• Syntax: mv [OPTIONS] SOURCE DEST

• Example: cd training

mv mycopy mvcopy

ln – links b/w files

• Syntax: ln [OPTION] target dest

• Example: cd training

ln /home/cdctrg32/ravi/linkme linkme

• ls –l linkme

-rw-rw-r-- 2 cdctrg32 cdctrg32 49 Jul 21 22:49 linkme

Note: type “cat linkme”. The usage of cat will be covered in later

sessions

File Permissions

• ls –l filename will display as below:

-rw-rw-r-- 1 cdctrg32 cdctrg32 17 Jul 21 22:55 filename

Field 1:   a set of ten permission flags.

Field 2:   link count (don't worry about this)

Field 3:   owner of the file

Field 4:   associated group for the file

Field 5:   size in bytes

Field 6-8: date of last modification (format varies, but always 3

fields)

Field 9:   name of file

• Field 1: Contains 10 characters

1 - directory flag, 'd' if a directory, '-' if a normal file, something else

occasionally may appear here for special devices.

2,3,4 - read, write, execute permission for User (Owner) of file

5,6,7 - read, write, execute permission for Group

8,9,10 - read, write, execute permission for Other

• Permissions are set according to numbers. Read is 4. Write is 2. Execute is 1. The sums of these numbers give combinations of these permissions:

• 0 = no permissions whatsoever; this person cannot read, write, orexecute the file

• 1 = execute only • 2 = write only • 3 = write and execute (1+2) • 4 = read only • 5 = read and execute (4+1) • 6 = read and write (4+2) • 7 = read and write and execute (4+2+1)

• The below file has 664 permissions

-rw-rw-r-- 1 cdctrg32 cdctrg32 17 Jul 21 22:55 filename

• To give write permission to other group users,

chmod 666 filename

• To take out permission from all other users: chmod 600 filename

• Note: id command tells the default group id

• Example: Can you cat the below file to see the contents of the file

cat /home/cdctrg32/ravi/passwords

• Nope. But why?

chgrp & chown

• chgrp NewGroupName File/Directoryname

• chown Newownername File/Directoryname

touch

• creates empty file

• changes the file timestamp

• Example: touch filename

Note: touch command is mostly used in system build time. But

how?

umask

• User file creation mode mask – 4 digit octal number that unix uses

to determine the file permission for newly created files

• (666 – umask) value is the default permissions

• Exercise: Change the umask value to 000 and create a new file.

more – less – head - tail

• cp /home/cdctrg32/ravi/largefile .;

• cat largefile (Bingo!!!)

• more – Forward only

• less - forward and backward movement

• head -10 largefile /* First 10 lines of the file */

• tail -10 largefile /* Last 10 lines of the file */ **To view Log Files**

• which <command> – Displays the path of the commands

• whereis <command> - More info than which

• whatis <command> - quick introduction about the command

• ldd – prints library dependencies

Example: ldd /bin/ls

• file <filename> - displays the file type

history command

• history – displays the history of typed commands

Usage: history 20

!! Repeats the last command

!number -> reruns the command given at the given line

• passwd – To change your password