Sei sulla pagina 1di 68

LINUX Programming Introduction to LINUX

What is LINUX?

An Operating System (OS) Mostly coded in C Machine independence It provides a number of facilities:

management of hardware resources directory and file system loading / execution / suspension of programs

History (Brief)

1969

1980s

First UNIX at Bell Labs The MULTICS Kernighan, Ritchie, Thompson

1970s

Bell Labs makes UNIX freeware Berkeley UNIX (BSD) Bill Joy vi editor, C Shell

System V release 4 TCP/IP Sun Microsystems Solaris Microsoft Xenix, SCO MIT X-Windows GNU, LINUX Stallman, Torvalds

1990s

Why Use LINUX?


multi-tasking / multi-user lots of software networking capability graphical (with command line) easy to program portable (PCs, mainframes, super-computers)
continued

free! (LINUX, FreeBSD, GNU) Popular not tied to one company Wider choice active community

Next

Your Account

Each user has their own space called their account. Type your login ID and password to enter your account. Only if the login ID and password match will you be let in.

Login to your Account


login: ad Password:

You type your ID and RETURN.


You type your password and RETURN. It does not appear.

The UNIX prompt (or similar). You can now enter commands.

Logout from your Account


logout

or
^D

Press CONTROL and D together

or
exit

On-line Help

man
man gnuchess man man

Manual pages Spacebar to go on; ^C to stop

apropos topic
apropos game apropos help

Lists commands related to topic

Hardware

Kernel Compilers

Next

The Shell

The UNIX user interface is called the shell. The shell does 4 jobs repeatedly:
display prompt
read command

the shell
process command

execute command

Typing Commands

Try these:
date cal 3 2005 who ls -a man cal clear

Changing your Password

The command is:


passwd

It will ask you for the new password twice.

Date Commands

date cal cal 1997 cal 3 cal 7 1962 cal 9 1752

Gives time and date Calendar

You and the System


uptime hostname whoami who

Machines up time Name of the machine Your name

Calculators

expr e
expr 3 + 5 + 7

Simple arithmetic

bc

Programmable Calculator

Some General Purpose Commands


date cal who ls man clear uptime hostname quota whoami apropos whatis which locate more passwd echo banner tty uname tput spell ispell cat sort pwd

Redirection, pipes , processes

Output can be redirected to a file with>:


ls > dir.txt cal 2004 > year2004

Output can be appended to a file with >>


cal 2004 > years cal 2005 >> years

Pipes : sending the output of one program to the input of the other
ls | sort who | sort

Processes : Running two commands sequentially


locate mj > xxx; date locate usr > xxx &

The UNIX File System

The File

Ordinary Files Directory Files Device Files

Ordinary files

Ordinary files can contain text, data, or program information. Files cannot contain other files or directories. Unlike other operating systems, UNIX filenames are not broken into a name part and an extension part (although extensions are still frequently used as a means to classify files). Instead they can contain any keyboard character except for '/' and be up to 256 characters long (note however that characters such as *,?,# and & have special meaning in most shells and should not therefore be used in filenames). Putting spaces in filenames also makes them difficult to manipulate - rather use the underscore '_'.

Directory Files

Directories are containers or folders that hold files, and other directories.

Device Files

To provide applications with easy access to hardware devices, UNIX allows them to be used in much the same way as ordinary files. There are two types of devices in UNIX - blockoriented devices which transfer data in blocks (e.g. hard disks) and character-oriented devices that transfer data on a byte-by-byte basis (e.g. modems and dumb terminals).

The Parent Child Relationship

A simplified UNIX directory/file system:


/

etc ...

bin date . . . cal

usr1 faculty

dev ...

tmp
...

mj

System Directories

/ root directory /home Home directory for all users /bin and /usr/bin all commands /sbin and /usr/sbin admin commands /etc configuration & system data files (e.g. /etc/passwd) /dev files representing I/O devices (they dont occupy space on disk) /lib and /usr/lib Library files in binary form. /usr/include Standard Header files used by C Program /tmp allows users to create temporary files. /var Variable part of file system

Pathnames

A pathname is a sequence of directory names (separated by /s) which identifies the location of a directory. There are two sorts of pathnames

absolute pathnames relative pathname

Absolute Pathnames

The sequence of directory names between the top of the tree (the root) and the directory of interest. For example:
/bin /etc/terminfo /export/user/home/ad /export/user/home/s3910120/proj1

Relative Pathnames

The sequence of directory names below the directory where you are now to the directory of interest. If you are interested in the directory proj1:
if you are in s3910120 s3910120/proj1 if you are in home home/s3910120/proj1 if you are in user
proj1

Commands and Pathnames

Commands often use pathnames. For example:


/usr/games/fortune cat /etc/passwd

List the password file

pwd

Print name of current working directory

Move back to directory (the parent directory):


cd ..

When in proj1, move to proj2 with one command:


cd ../proj2

../proj2 is a relative pathname

Special Directory Names


/ . ..

The root directory The current working directory The parent directory (of your current directory)

Examples

cd / cd ~ cd cd ../..

Change to root directory Change to home directory (Special case; means cd ~) Go up two levels.

Investigate the System

Use cd
cat file
cd /etc cat passwd

List file

ls
ls ls /etc

Directory listing
List current dir. List /etc

Making / Deleting / Renaming Directories

Usually, you can only create directories (or delete or rename them) in your home directory or directories below it.
mkdir rmdir mv

Make a directory Delete a directory Rename a directory

Permissions

ls l /etc/passwd
-rw-r--r-1 root root 2365 Jul 28 16:19 /etc/passwd

read, write, execute (r w x) rw- r-- r-owner group everyone

directory

chmod
-w, +w .

Commands to work with files

cat > filename less head tail cp mv rm wc grep spell ispell

ls: listing directory contents


ls
ls x ls Fx Ls a ls l -R -r -1 -d -i
dirname

-- listing order numerals, UPPERCASE, lowercase -- displays multicolumnar output -- in o/p * indicates executables and /refers to directories -- lists (.) (dot) files -- output in long format -----recursive list sorts filenames in reverse order one filename in each line lists only dirname if dirname is a directory displays inode number

Handling Ordinary files

cat : displaying and creating files


To display the contents of the small files $ cat dept.lst -- dept.lst should be present in the current directory Cat also accepts more than one argument. $ cat file1 file2
The contents of file2 is shown immediately after file1. cat concatenates the 2 files, hence its name. Options with cat (-v and n) (not POSIX rec.) -v --- displays non printable characters -n --- displays the numbering lines. (else use pr)

Creating files using cat


$cat > file1 > First file created using cat command. <ctrl+d> $_ - returns to shell prompt $ cat >> file1 -- appends to file1

Copying a file - cp
$ cp file1 file2 $ cp file1 /data/official
letter1
- file1 is copies into /data/official

$ cp file1 /data/official/letter1 - file1 is copied to /data/official as $ cp /home/mca01/p1.c p1.c -- p1 is copied as p1.c in current
directory (destination is a file)

$ cp /home/mca01/p1.c . -- destination is a directory $ cp file1 file2 file3 off_data -- copying multiple files,
here the last filename must be a directory and must be an existing directory.

cp options
$ cp i file1 file2 -- interactive copying $ cp R off_data official - copies directory structure.
Here off_data and official are directories. If official directory does not exists then cp creates it. If official directory exists then off_data becomes a subdirectory under official.

Deleting files : rm
$ rm file1 file2
the

-- deletes file1 and file2 in


current directory.
-- using absolute pathnames

$ rm /data/file1 /data/chap2

$ rm /data/file[12]
one.

-- similar to the previous


-- interactive deletion, asks for confirmation

$ rm I file1

before deletion. $ rm r * or rm R * -- recursively deletes the directories and subdirectories. $ rm rf * --- the f option forceably removes the files/directories

Renaming Files : mv

mv filename1 filename2 --- moves a file (i.e. gives it a different name, or moves it into a different directory) mv chap01 unit01 mv chap01 chap02 chap03 notes Here notes is a directory

Security by File Permissions

ls l complete description

File Type & Permissions, Links, Ownership, Group Ownership, File Size, Last Modification Time

id for to know UID & GID chmod


Relative Permissions Absolute Permissions Option -R

chown Change Ownership chgrp Change Group Owner umask

Process utilities

Disk utilities

df :- Report how much free disk space is available for each file system separately. It shows the information like

Directory where file system is attached. Device name of the file system. Number of 512-byte blocks available. Number of files we can create. Options t (Total), -k (Reports size in KB), -h (Reports size in MB, GB)

du :- Disk usage :- To find the consumption of a specific directory tree rather than entire file system.

Options s for summary of usage.

Networking Commands

Communicating with People

Information on Others

users who ps
ps -au

Who else is logged on? Information on current users What are people doing?

w
w -sh

What are people doing?


A shorter report

Examine password info:


more /etc/passwd grep s38 /etc/passwd

Fingering People

finger
finger -l

Info. on current users


Longer information

finger user
finger ad

Information on user (need not be logged in)

finger @machine-name
finger @catsix finger @ratree.psu.ac.th

User info. for that machine

ping machine-name
ping catsix

Is machine alive (on)?


(^C to stop)

Your Finger Information

chfn

Change your finger entry

finger also prints the contents of the .plan and .project files in your home

directory. List . files with:


ls -a

Talking

talk user

Talk to user (on any machine)

talk ad talk bill-gates@ratree.psu.ac.th

Get out by typing ^C

write user user


write ad

Send a message to on this machine

mesg n

mesg y

Switch off talk / write acceptance. Switch on

Sending E-mail

Send mail :
mail Add
Subject: Shoe Problem What colour are my shoes? I cannot see them at the moment because of my desk. - Jim ^D

The vi Editor

Two modes

Insert i Command <ESC>

Append a Replace character r, Replace word R .. Deleting character x, Deleting line dd Exit
Goto command mode press :wq

Filters

The UNIX programs that read some input, perform a simple transformation on it and write some output.

grep, egrep, fgrep tr, dd, sort Sed, awk programmable filters

grep

grep options pattern format filename(s)

Some option

-c Counting number of occurrences -n Line numbers along with lines grep Mamata e mamata database grep [Mm]amata database

grep : Regular Expressions

Character sets

[mM] , [aeiou] , [a-zA-Z0-9]


G*, [gG]* 2 A four character pattern starting with 2 .* A number of characters or none

Immediately preceeding character

Matching a single character


grep : RE

c \c

Specifying pattern boundaries

^ $ . []

Any non-special character c matches Turn off any special meaning of character c Beginning of line End of line Any single character Any one of character in ; ranges like a-z are legal

^r pattern beginning with expression r ^[^r] pattern not beginning with expression r r$ pattern ending with expression r

[^]
r* r1r2

Any single character not in ; ranges are legal Zero or more occurrences of r RE r1 followed by RE r2

egrep : Regular Expressions

r+ : one or more occurrences of r r? : zero or more occurrences of r r1|r2 : r1 or r2 (r) : nested r

fgrep

Searches for multiple patterns Does not accept regular expression Multiple patterns are separated by new line character. The disadvantage of grep family is that none of them has a separate facility to identify fields.

sort

-f : eliminates distinction between uppercase and lowercase letters. -n : numeric comparison - r : largest to smallest +m : comparison skips first m fields +0 : beginning of the line -u : discard duplicates

comm

File comparison command Gives three columns of the output


Lines that occur only in file 1 Lines that occur only in file 2 Lines that occur in both Comm 12 f1 f2

One or more columns can be suppressed

tr

Transliteration of character in the input

tr a-z A-N

Mostly used for character conversion

Assignment
1. Try all the UNIX commands. Store the output in a file appropriately using redirection operators. 2. Read a word from the terminal and check if the spelling is correct. Suggest few alternatives. 3. Create a file using Vi. Store few names in the file. Search all the names containing the letter M or m. 4. Create another file using cat command 5. Compare both the files to find the differences 6. Use calculator commands to compute 5 arithmetic expressions.

Potrebbero piacerti anche