Introduction to Unix – CS 21 Lecture 2. Lecture Overview Starting out in Unix Getting help when...

Preview:

Citation preview

Introduction to Unix – CS 21

Lecture 2

Lecture Overview Starting out in Unix

Getting help when needed Looking around a little

Environment and Environment Variables

The Unix file structure Organization Navigation

Logging In (And Logging Out) Your Unix experience begins with a

login prompt Login name and password

Always be sure to log out Why?

Malicious people shouldn’t have access to your account

Locking the screen…is it safe? Well, maybe, maybe not

Good Password Versus Bad Password What makes a bad password?

Any word in a dictionary Any word from a sci-fi movie/show 30 sec – 8 minutes to break

What makes a good password? Easily interpreted and remembered by user Looks like random gibberish to others

passwd normally changes your password

I’m In, Now What? No “tour of Unix” like Windows has You’re pretty much on your own Unix assumes you know what you

are doing You are given just enough leverage

to either do everything well or really mess everything up

Where To Get Help man

The most important command in all of Unix RTM

info More complete descriptions of certain

packages help

Shell specific commands apropos whatis

(RTFM)

Man Page Sections And What They Mean 1 – User commands 2 – System Calls 3 – C library routines 4 – Administrative files 5 – Miscellaneous 6 – Games 7 – I/O and special files 8 – System administration commands

More on man Other sections exist (such as the perl

reference manual and the tcl reference manual)

-a will show all the man pages that match First is shown by default

How would you find out more about man? man man

Example

How Am I Supposed To Read This? Name:

The name of the program and a brief description

Synopsis: How to run this command

Description: Listing of all flags and what they do

See also: Relevant related commands

What Do You Do If There Isn’t A Man Page? Option 1: run the program and hope

it doesn’t destroy anything Option 1b: run the program with random

flags and see what exactly it destroys Option 2: do a little snooping

Check for man pages or documentation on the web

See if there are any environment variables that it might use

Who is logged on and what are they doing? users

Shows a list of all currently logged on users who (and whoami)

Shows a list of all currently logged on users and where they are logged on from

w Shows a list of all currently logged on users

and what they are running finger

Tells a little more information about users

Privacy issue? You can tell when someone else is

logged on and exactly what they are doing

Everyone else can see what you are doing

Is this acceptable?

One User To Rule Them All The superuser – root

Root has the permission to do anything Including wiping the entire system clean

The system will allow root to do just about anything

Comparable to “Administrator” in Windows Of course, any user in Windows XP can be

designated an Administrator and install software

No, You Can’t Get Root For obvious reasons, you will not

be given root access Don’t feel bad though, very few

people at school have root You can always install your own

machine at home to play around with Knoppix

Environment And Environment Variables A set of preset variables that all

programs run from that shell can see

In order to see them, run the command: printenv

Set environment variables with the command: export VAR=VALUE

Clear environment variables with: unset VAR

Example

Stupid Analogy Of The Day

Each contain useful information Every program can check them out and

read them If someone changes them, the next person

to check them out will see those changes

Environment Variables =

Exporting Or Not If you don’t export the variable, it

is a local variable and not accessible to everyone

Get access to a local variable by using the dollar sign ($VAR)

A Very Important Environment Variable PATH

Tells Unix where to look in order to find programs to run

Very important hint: When typing a command, you should be able to

hit the tab key in order to complete it Called tab completion, this is a most invaluable tool The system searches your PATH for any program it

can run that matches what you have typed so far

Files, Files Everywhere Unix treats almost everything as a

file Standard text files and binaries Directories Links Even devices!

Your terminal is a file, your keyboard is a file, your hard drive is a file, everything is a file!

What Was That? To repeat, Everything in Unix is a

file! Why?

This goes back to the design of Unix trying to keep everything simple

Treating everything the same allows for a simple interface to interact with everything in the same way

Unix Directory Structure Everything is a file, and the directory

structure is like a filing cabinet

Inverted Tree Structure/

/usr /bin /home

/var/lib

/home/csmajs

/home/csgrads

/home/csmajs/undergrads

/home/csgrads/graduates

What Goes Where? /

Root of the entire system Comparable in Windows to C:\

Windows, however, has several roots depending on what partition and device you are looking at

/bin Commonly used binaries (programs)

And… /sbin

More programs to run Statically linked Still should run if you tinker around and

mess things up

/usr User related commands as well as a

whole bunch of random stuff

And… /lib

Libraries go in here /dev

All devices are located in here /home

Traditionally, this is where user accounts are stored

/etc Startup files and configuration files for

daemons and other programs

And… /var

Various files go in here Traditional location of mailboxes

/var/spool/mail

/proc Special files that contain information

about the system or info from running programs

Navigating The Directory Structure You are always located at one location

in the tree ls

Provides a listing of the current directory All files and directories are shown

cd Change directory “cd /” Moves your current directory to / cd without any arguments moves you to

your home directory

Creating And Removing Directories mkdir

Makes a directory “mkdir myDir”

rmdir Removes an empty directory “rmdir myDir”

A Couple Of Notes Unix is case-sensitive

myDir is different from MyDir and mydir Not all files are shown with ls

“ls –a” will show all files Hidden files in Unix always start with a .

Example: .hidden .plan

Command Line Options Almost all Unix commands have

options that change what they do Read the man pages for a listing

They have the form: -a Depending on the command, they

may be lumped together -a –l is the same as -al

How Different?

Special Directories .

This stands for the current directory ..

This stands for the directory directly above the current directory

~ Your home directory

These directories can be “stacked” “../..” stands for two directories directly

above the current directory

Relative Versus Absolute Pathnames Unix supports two different styles for

directories Absolute pathnames

Always start from / and contain the entire route

“/home/csgrads/villarre” Relative pathnames

Assumed to be relative to current directory Doesn’t start with a / “classes/cs21”

Advanced Navigation Through The Directory Structure pushd

“Push” a directory onto a stack popd

“Pop” a directory from a stack A Stack is what’s known as a LIFO

structure Last in, first out

How Does A Stack Work?

e

d

c

b

a

How Does A Stack Work?

e

d

c

b

a

d

How Does pushd and popd Work?

/var/spool/

/home/csmajs

/bin

/usr

/home

pushd /var/spoolpushd /home

popd

popd

Current Directory:

/home/csmajs/var/spool/home/var/spool/home/csmajs

Today In Lab Put all of the material from today

into practice Lab will be posted later today at:

www.cs.ucr.edu/~villarre/cs21/

Reading Assignment Read chapters 2-4 I will assign a homework beginning

of next week First quiz will be a week from next

Tuesday

Recommended