32
Unix Background SEN 910 CSS/HTML Programming

Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

Embed Size (px)

Citation preview

Page 1: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

Unix Background

SEN 910 CSS/HTML Programming

Page 2: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

2

Brief Unix History

• In 1969, Ken Thompson at AT&T Bell Labs began developing Unix.• First done in assembly language.• Ran on DEC PDP-7 with 8K words of memory.

• In 1974, Unix was rewritten in C.• By writing C compilers, Unix can be ported to other

computers.• BSD UNIX

• BSD: Berkeley Software Distribution• UCB put the Internet Protocols (IP) into UNIX• 4.4BSD (Berkeley): 1994

Page 3: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

3

Brief Unix History

• System V• AT&T System V (1984)• SVR4: System V Release 4 (current version)

• POSIX: • Portable Operating System Interface for Computer

Environments (1984)• Most Unix systems try to conform with POSIX to a certain

extent• This course is based on SunOS.

• Most of the things you will learn in this course work in different Unix systems with small differences

Page 4: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

4

The Unix Philosophy

• Unix was not meant to be a user-friendly operating system• Instead, meant to be “user-helpful” and very powerful• As one local system administrator put it:

UNIX **is** user-friendlyIt's just particular about who its friends are!

• The Unix operating system protects users from other users but not necessarily from themselves

• It provides the necessary tools then gets out of your way

Page 5: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

5

The Unix Philosophy

• The Unix User• Wants to use the computer to do things • Doesn't want the computer to do things for them

• They are willing to learn to make it work• They don't need their hands held

• The Unix Approach• Give the users the tools they need• They'll get the job done without having to be shown how

Page 6: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

6

The Unix Philosophy

• The Unix Tools• Keep each tool simple• Have each tool do one thing, and do that

one thing really well• Keep tools terse and not too talkative• More complex tasks can be accomplished by

combining tools together in scripts or pipelines

• Originally, input and output to workstations wereslow and tedious, and this approach made thingsfaster and more efficient.

Page 7: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

7

Kernel

Structure of a Unix System

Hardware

Shell

Utilities and User

Software

User

Page 8: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

8

Parts of a Unix Operating System

• Kernel• Manages the processes and resources• Controls and hides the hardware

• Shell• An interface between users and the kernel • A command line interpreter (CLI)

• Utilities are standard tools/applications• They are used so often that they become a part of Unix• “elm” and “pine” are Unix utilities, for example

Page 9: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

9

A Word on Linux

• In 1991, Linus Torvalds wrote the Linux kernel• As a class project while a student at the University of

Helsinki in Finland

• Numerous programmers have worked on it• It’s a popular Unix-like operating system now

• Started with hobbyists and at universities• Growing popularity in corporations and elsewhere

• Recently estimated at 20% of PC server market

• Achieved its goal of POSIX compliance

Page 10: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

10

A Word on Linux

• Now available for many architectures• x86, PowerPC, SPARC, SGI Indy, HP PA-RISC, DEC Alpha,

IA64 (eventually), …• Growing software base

• Office suites, desktops, server software, games, ...• Has become the predominant Unix in the microcomputer world

• Much more popular than Free/Open/BSD, Solaris x86, ...• Still a "free" operating system

• Mostly under GNU General Public License• Many companies create and sell distributions (Redhat, SUSE,

and many others)• Check it out at: http://www.linux.org

Page 11: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

Unix Shells

SEN 910 CSS/HTML Programming

Page 12: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

12

Unix Shells

• Command Line Interpreter• once logged in, login gives control to a shell• it prompts for input, then parses, interprets, finds and

executes the commands you type• similar to MS-DOS’s COMMAND.COM, but more

sophisticated and more user friendly

• A High-Level Programming Language• shell script is a program contains a series of commands• you can let the system perform those commands by typing

the file name of the script• similar to .BAT batch files under MS-DOS, but again much

more sophisticated

Page 13: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

13

Unix Accounts

• One must have an “account” to use a Unix computer.• To share resources, need to tell users apart.

• Username (public) and password (private).

• You can only access the resources that are specified by your account information.

• Accounts track, control, and limit user activity.

Page 14: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

14

• Machines that you may login to are as follows,

 134.154.14.245 palazzi 134.154.14.238 jazzy 134.154.14.235 muzzle 134.154.14.237 whizzing 134.154.14.246 sizzle 134.154.14.234 dazzle 134.154.14.232 fuzzy 134.154.14.251 snazzy 134.154.10.25 palazzo 134.154.10.243 buzzy 134.154.14.224 piazza 134.154.14.249 huzza

If you are off campus you can telnet or ssh to the IP number listedabove or use the readable name followed by the above listed domain.

 example

%telnet palazzi.mcs.csuhayward.edu

Logging In (1)

Page 15: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

15

Logging In (2)

In Window XP, click “Start” and then “Run” and type in:

telnet palazzi.mcs.csuhayward.edu

SunOS 5.8

login: bhecker

Password: ********

palazzi%

Page 16: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

16

Log out

When you’re done, don’t forget to logout!

palazzi% exit

palazzi% logout

Page 17: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

17

Shells vs. Graphical User Interfaces (GUIs)

• GUIs are more friendly to beginners• lead you by the hand• “point and click” interface requires little experience

• Shells are often better for experienced users• shells tend to be faster, more efficient, and flexible

• fewer steps to do things• do not need to change input devices (keyboard

vs. mouse and keyboard)• but, you must know command names and syntax

• Most modern Unix systems offer both a GUI and a Shell interface• often have many choices

Page 18: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

18

Unix Shells

• Many shells to choose from ...• sh: The Bourne Shell

• the original Unix shell• S.R. Bourne designed it at Bell Labs• not very "user friendly”, but good for programming• sh or a reasonable facsimile comes packaged with

virtually every Unix system

• csh: The C-shell• a shell whose syntax is more “C”-like• command history and job control

• make it very popular as a CLI• comes with most Unix systems

Page 19: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

19

Changing Your Shell

• Default shell is the shell you are given after you login to the system

• Changing your shell ...• Your default shell can be changed using the “chsh”

command on Unix.• By typing “sh”, “csh”, “tcsh”, “bash”, etc.

• Run another type of shell as a “subshell”• After you exit from the subshell, you will come

back to the old one• Your default shell is unchanged

Page 20: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

20

Issuing Commands

• Unix shells issues a prompt for input • A typical prompt looks like:

• Editing input:• using arrow keys to move the cursor• using BackSpace or DEL or Ctrl-H to erase a letter• using Ctrl-U to erase the whole line.

palazzi%

Machine name Separator

Page 21: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

21

Issuing Commands

• A command is typically a program saved in the Unix file system, or part of the shell.• type the name of the program, press <return>• shell searches for the program and runs it

• Most commands take arguments• Operands: file names, numbers, etc.

palazzi% cat myfile

palazzi% expr 1 + 3

• Options: immediately following a ‘-’ or ‘+’

palazzi% cat -n myfile

palazzi% ls -al

display file "myfile"

display file "myfile"with line numbers

Page 22: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

22

Issuing Commands

• Stopping and pausing processes• Control-c : terminate current process now

• Sends SIGINT signal to the process.• Default setting of receiving a SIGINT is to quit.

• Control-\ : terminate current process now• Send SIGQUIT signal to the process.• A core file is usually generated.

• kill: Kill a process.• Terminates an active process.

Page 23: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

23

Common Commands (1)

• cp for CoPy

Use: palazzi% cp file1 file2

Action: copy file1 into file2• rm for ReMove

Use: palazzi% rm file2

Action: removes or deletes file2• mv for MoVe

Use: palazzi% mv file1 file3

Action: renames file1 as file3

Compare: cp file1 file3; rm file1

Page 24: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

24

Common Commands (2)

• cat for...listing the contents of a file• Use: palazzi% cat file1• Results:display the contents of file1• Why “cat”?

• originally “short” for concatenate• can use: palazzi% cat file1 file2• prints file1 followed by file2

• more for listing the contents of a file, one screen full at a time• Use: palazzi% more file1• Results: display the contents of file1 for a page and pause.

Press return for next line. Press space bar to see next page, b to go back one page. Press q to quit.

Page 25: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

25

Common Commands (3)

• date: what date and time is it?Use: palazzi% dateResult: print the time and date

• cal: print a calendarUse: palazzi% calResult: print the calendar of the month

• hostname: what machine am I on?Use: palazzi% hostnameResult: print the machine's name

• who: who else is logged onto this computer?Use: palazzi% whoResult: a list of users and some info about them

Page 26: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

26

Common Commands (4)

• uptime: how long has the machine been up and running?

Use: palazzi% uptime

Result: one line with all sorts of neat stuff• netscape: surf the net

Use: palazzi% netscape

Result: web surfing software that works only under X-windows

• lynx: surf the net

Use: palazzi% lynx

Result: web surfing software that is text-only

Page 27: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

27

Common Commands (5)

• echo: print some textUse: palazzi% echo Unix is easy!Result: Unix is easy!

• expr: evaluate an expressionUse: palazzi% expr 1 + 2Result: 3

• clear: clear screenUse: palazzi% clearAction: clears the screen

Page 28: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

28

Using man

• man: View manual pagesUse: palazzi% man subjectAction: Displays the man page for subject

• e.g. “man cat” produces the following:

Page 29: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

29

Important Parts of Manual Pages

• Name• The name of the command and brief description

• Synopsis• A brief overview on how to use the command

• Description• More details of what the command does

• Options and Operands• Arguments given to the command

• Examples• See Also

• Related commands

Page 30: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

30

More of man

• man -k keyword• list all the commands whose brief description (in the “name”

field) contains the keyword• the apropos command does the same thing as executing

man -k

• man man• print out the manual of the command man

• man -s n subject• prints man page for subject from section n• man pages are organized into several sections:

• Commands, C reference, File formats, …• man -l subject will list all of the sections containing the

subject … a man -s will then find the man page

Page 31: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

31

Alternatives to man

• xman• An X-windows interface to man pages• Better browsing and searching facilities

• info• A hypertext interface to accessing manuals for GNU

software (gcc, emacs, info, …)• answerbook

• Newer manual pages from Sun in HTML• http://docs.sun.com/

• Complete set of manuals from Sun

Page 32: Unix Background SEN 910 CSS/HTML Programming. 2 Brief Unix History In 1969, Ken Thompson at AT&T Bell Labs began developing Unix. First done in assembly

32

End of Lecture

SEN 910 CSS/HTML Programming