410 likes | 570 Views
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).
E N D
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
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
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 /lib /var /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
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
e d c b a How Does A Stack Work?
e d d c b a How Does A Stack Work?
/var/spool/ /home/csmajs /bin /usr /home How Does pushd and popd Work? Current Directory: pushd /var/spool /home/csmajs /var/spool /home /var/spool /home/csmajs pushd /home popd popd
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