review did you get an email from me? last class we had an introduction to linux and the command-line...
TRANSCRIPT
Review Did you get an email from me? Last class we had an introduction to Linux and
the command-line Linux: Kernel vs OS
It is a kernel (brain of an OS) It’s a reference to OS’ that use Linux kernel
‘Logical leap’ of command-line Today we are going to review all these and
learn basic commands
A Quick Note
• Plagiarism is highly frowned upon, even more so in the Open Source world (which Linux is a huge part of)
• If I can take any four words in a row and match them to an article, you have plagiarized
• Don’t just copy wikipedia or a manpage
• Rewrite it in your own words
• You’ll get a 0 for that assignment and have to take plagiarism training
First – Please Log In
Ensure VM’s are on your systems: C:\Users\Public\Documents\Shared Virtual
Machines If not, we have to add them from
\\srv12\FileShare\Instructor Images\Nathaniel Dillon
VM’s Are Now Available While it copies, we’re going to go on, however
once it’s complete: Open VMWare Double-click VMWare icon on desktop VMWare will open, so click ‘Open a Virtual
Machine’ Scroll to your VM’s folder, click our vm file Click this, click okay, then, the green arrow
starts it up
Linux – What is it? Like Windows, but better It’s what you see when you boot the computer and
are ready to tell it to do stuff (can be GUI, can be command line)
The kernel is like the brain of what you see when you boot up – it tells everything else how to behave (Windows has a kernel too)
The “bodies” (flavors) are as diverse as people – RedHat (CentOS) is for business, Ubuntu is the “popular” one, Slackware is the jerk I don’t like
Like using Mozilla web browser vs Opera vs Chrome vs IE
Why is it Good?
Linux allows the admins more power and more control over everything
Commands came first – the GUI maps to the command
Windows is the opposite Linux is free You can modify it and see what it's doing – all
source code is out there A bunch of really smart people add to it
Equivalencies Linux has everything Windows has (almost) What it doesn't have – .NET (Eclipse?) What it does have – everything else Word processor – Open Office looks exactly like MS
Office; Libre is getting more popular Mail – Evolution; Media Players – Brasero, VLC Photoshop – GIMP; Eclipse – Eclipse Backups - tar/gzip/bz2 What is does better – Security Tools – Backtraq
(metasploit, sniffers, aircrack, etc...) - Cloud – Hadoop, OpenStack – Monitoring/Automation
Directory Structure In a ‘hierarchical’ file structure, you care about
two things: 1) Where you want to go 2) Where you are right now
You can get these things two ways: 1) Starting at the root or ‘top-level’ directory 2) Moving up levels from where you are
In the next slide, there is no direct connection between C:\Windows and E:\Jack
You have to go back up to My Computer
Directory StructureLinux is also a ‘tree’ or ‘hierarchical’ directory structure
http://www.linux4windows.com/Articles/linux_directory_structure.png
First Login When you log in, you will be taken to the home
directory of the user you logged in as Windows Vista/7/8 has this at C:\Users\
<username> Linux is /home/<username> We use the student user
/home/student Any other user: /home/anyotheruser Previous slide had: /home/tom This is a ‘path’ or a ‘file path’
First Login, pt 2 The only thing displayed will be this funky thing: [student@it136centos65vm ~]$ That is our shell The shell (command prompt/command line) is
how we will interact with the system This is the default look for the BASH shell Tells us our current username (student) Hostname (it136centos65vm) Directory (~) And we can type in commands after the $
A note on commands We will be talking about many different
commands We looked at the command prompt [student@it136centos58vm ~]$ ls This is an example of a command ready at the
command prompt, to see the result of the command, press enter
We have a model for commands command <flag> <arg> Does the ls command above fit or break our
model?
Inside Tom’s Home Folder [tom@example ~]$ ls
documents
Notice we don’t see inside documents, nor do we see /home/tom
Our VMs: [student@it136centos65vm ~]$ ls pslist teams.txt teams2.txt script.sh
$PATH [student@it136centos65vm ~]$ ls pslist teams.txt teams2.txt script.sh So what just happened? The BASH shell took our ‘standard input’ We provided two letters (not a file path), so the
BASH shell looked in something called the PATH variable to see if it knew what to do with those letters
It found a program called /bin/ls (which is our ls command), and ran it
This ‘listed’ the items in our directory
Standard Input/Output/Error The Shell classifies three file channels
STDIN – standard input STDOUT – standard output STDERR – standard error
Standard input is what you type into the shell (commands)
Standard output is what the shell outputs if the command (STDIN) works
Standard error is what the shell outputs if the command (STDIN) doesn’t work
Command, Flag, Argument
• So we have the command, flag, argument model
• What is what?
• Command: anything we type into the system to get it to do something useful (ls, cd)
• Argument: usually a path to what we want to work on (/home/tom)
• Flag: symbol that modifies how a command is run (-l, -cvf)
Command, Flag, Argument, ex• Running ls -l command
• [student@it136centos58vm ~]$ ls -l
total 12
-rw-rw-r-- 1 student student 0 Jan 24 00:34 mytest
-rw-rw-r-- 1 student student 0 Jan 24 00:34 pslist
-rw-rw-r-- 1 student student 0 Jan 24 00:34 teams.txt
-rw-rw-r-- 1 student student 0 Jan 24 00:34 teams2.txt
permissions user datefilename
• The -l changed the way ls showed the information
Flags Are Very Useful
• Flags allow us to do more specific stuff
• Show more data about a file/directory
• Add arguments (to make commands more specific, or more general)• In useradd command, we add arguments to tell the system
to not use its own defaults, but the values we give it
• In the grep command we add arguments to tell the system to not worry about capitalization, but to look for upper and lower case
• How do you find them?
• Remember our best friends?
Flags 2
• Flags change the output of a given command, but are different per command
• command <flag> <argument>
• [student@it136centos65vm ~]$ rm –f
• The rm command removes or deletes a file, the –f flag is ‘force’ and will remove without asking
• When run as the root user this will kill an entire system
• [student@it136centos65vm ~]$ tail –f messages
• The tail command shows the last 10 lines of a file, the –f flag is persistent follow so it will show updates to the file as they occur
Arguments• cmd <flag> <argument>
[student@it136centos65vm ~]$ ls –l /home/student
• ls is the command, -l is the flag, and /home/student/ is the argument
• In this case the argument is a directory path
• The argument could also be something we want to create
• [student@it136centos65vm ~]$ useradd ndillon
• This would add a new user (named ndillon) to the system
Commands So we have ls to ‘list’ what files are in our folder We can use cp to ‘copy’ files from one place to
another cp teams.txt newfile cmd <flag> <arg> <arg>
We can use rm to ‘remove’ our extra file rm newfile
We can use less to look through files without changing them less teams.txt
More Commands• We can use hostname to determine the name of
the system we are on
• hostname
• We can use head and tail to look at the beginning/end of a file
• head pslist
• tail pslist
• We can get info on a file with the file command
• file script.sh
• We can show the differences between files with diff
• diff teams.txt teams2.txt
Even More Commands We can use echo to print things out to the
command line echo “Hello!” echo $PATH
We can print the system’s date with date
We can use whereis and find to locate things on the system whereis ifconfig find / -name authlog
Final Group of Commands We can list users on a system with w, who, or
finger w who finger
We can display memory useage info with free
We can make/restore backups of things with the tar command tar -cvf scratchspace.tar /tmp /home tar -xvvf scratchspace.tar
Command Flag Argument When typing on the shell, commands are
always required Most other stuff will depend on what you want
to do cmd <flag1> <flag2> <arg1> <arg2> tar -cvf backup.tar /home /tmp tar is the command, -cvf are flags (3), and the
arguments (3) are the new file to create, as well as the two directories to back up
I Lied (One More Command) cmd <flag> <arg> useradd will allow us to add/change accounts
and account details on a system useradd -d /home/newuser -s /bin/zsh newuser Cannot do useradd -ds /home/newuser /bin/zsh newuser Order matters with the useradd command!
So what tells you the order, what is/isn’t required?
Practicals and Homework Questions on anything up to this point? Practicals Today and Monday everything will be for a
completion grade (homework & practicals) After that, grades will be for accuracy
Topics For Own Study Keywords:
Command, flag, argument Commands: ls, rm, tail, echo, diff, whereis, copy, cat Chapter 3 of Sobell Online Surrey Unix Tutorial for Beginners tutorials
one and two Online Stanford tutorial – First two under intro section
and first two under search section
VMWare You can get it for free! Go to: http://seattlecentralitprograms.com/ Click on the VMWare link Register with your SID as the username and fill
out the remaining info Download/order software of your choosing