340 likes | 459 Views
Review. Please hand in your homework and practicals Advanced Redirection >> 2> &> More VI Scripting. Today. Folders / dev More vi Cheatsheets ! Processes. Folders - / dev. / dev – holds the raw devices used by the system Hard drives (HDDs) referenced by connection type
E N D
Review • Please hand in your homework and practicals • Advanced Redirection • >> • 2> • &> • More VI • Scripting
Today • Folders • /dev • More vi • Cheatsheets! • Processes
Folders - /dev • /dev – holds the raw devices used by the system • Hard drives (HDDs) referenced by connection type • IDE - /dev/hda • SAS/SATA - /dev/sda • CDROM - /dev/cdrom • DVD - /dev/dvd (sometimes /dev/cdrom) • Printer - /dev/lp • RAM - /dev/ram • TTY’s - /dev/tty • Random - /dev/random
Using /dev • Most things will be automatically used by the system • RAM/TTY/RAID • HP’s RAID is /dev/cciss – this is probably different between each RAID card vendor (LSI, Dell, HP, etc…) • They will have documentation telling you where to go • Sometimes you’ll need to manually “mount” a new HDD or a CDROM • mount <device> <target> • You can’t access /dev directly, you have to “mount” it on the system to access it
Using /dev - /mnt • /mnt – location where extra devices are to be “mounted” or set for access on the system • Changing to /media, either works, our VM’s will use /media for auto-discovered CD’s • mkdir /mnt/usb • mount <device> <target> • mount /dev/sdc /mnt/usb • So if we were going to “mount” a floppy drive – fd1 – what would the command be?
/dev • We’ll get to adding hdd’s – that’s it’s own process • When you want to attach a “hot plug” device • To update, recover, move files, etc… • If the system is up, it will print out the new hdd is found • If it doesn’t print out, there is a special log called the dmesg that will show you
dmesg • dmesg – the kernel message buffer (also a command) • Typing in dmesg will show you the kernel info since boot • Usually used to capture boot information or errors (dmesg | grep) • Earliest at the beginning, most recent at the end • Typing in dmesg (and looking for a new hard drive) will usually be right at the bottom unless there’s a lot of activity on the system
Quick Review - Vi • vi <filename> • Opens file for editing • Inside vi you always start in command mode • i, a, A to get into insert mode, escape key to get back out • While there, you can do things like copying, pasting, and jumping around • New: • yy copies • p pastes
Vi Review, part 2 • Move around through the line number • When you open a file, vi prints the filename, lines, and characters in the bottom left • “/home/student/script.sh” 19L, 383C • So to jump to the end • Assuming you’re already in vi in command mode • :19 <enter> • To jump to line ten, :10 <enter>
More vi Fun • Can open to a specific line number, or jump to a specific line when inside a file • For instance, vi’s configuration file /etc/vimrc • We want to do ‘syntax highlighting’ in vi to make it easier to read • [student@it136centos65vm ~]# grep -in ‘syntax’ /etc/vimrc • 47:”Switch syntax highlighting on, when the terminal has colors • 50: syntax off • Quick glance shows line 47 as a descriptor, and line 50 as the setting
vi Jump to Line • We can open vi to a specific line: • Notice ‘etc’ in the current directory below - we’re in /etcso we can use the “relative path” of vimrc • [student@it136rhel65vm conf]$ vi +50 vimrc • Or inside vi we can jump to a specific line • (in command mode) • :50
Searching vim • Inside vi we use the / to denote a search string • /syntax • It is case-sensitive: /Syntax would not show us anything • Takes us to line 47 • Switch to next instance by using the n key • Go back with the ? key
Other Useful Options • y is the ‘yank’ character, actually copies • yy will copy the line • p will ‘put’ it into wherever the cursor is • dd deletes the line • u is undo • set <option> allows configuration of vi - this is not saved, these should go into /etc/virc or /etc/vimrc files • r replaces a single character (puts you into insert mode for that single character) • R replaces until you leave ‘insert’ mode (esc key)
Scripts • So we have seen commands for management • useradd, usermod, sudocat • But what happens when you have a task you need to do several hundred times over? • We use a script • A script is simply a collection of commands
Every Script • We went over ! (called bang) • Well, # is called ‘she’ (many refer to it as hash) • The first line of EVERY script must have a ‘shebang’ • The shebang is the script telling the shell which shell to use to execute the script • We use • #!/bin/bash • #!/bin/zsh • #!/bin/csh…
Now we get interesting • All we need to do is add commands • There are a few constructs to help us, though • We can make comments • Comments must have # in front of them • They only go from where # starts to the end of the line • We can use variables • ‘Best practice’ is to use all caps • FLAGS = “-alh” • ls $FLAGS • So once we set it, we reference it with $
Finally • We can take arguments • $1 is the variable inside a script for whatever was passed as the first argument • You run a script (or a command not set in /bin or /sbin) by running ./script • Sometimes you need to ‘build from source’ and you’ll use ./configure • So if we pass an argument • ./script argument • $1 = argument
Extrapolation • We used $FLAGS as a variable, if we’re debugging a script, how do we do a quick ‘sanity check’ (or log check) to print out to STDIN what value is in $FLAGS? • What might $2 stand for?
Putting it all together • #!/bin/bash • # script to review the basic parts of a script • # takes path as arg, flags are set as a variable • # lists the path • FLAGS=“-$1” • echo $1 # show what was passed as argument • ls $FLAGS $2 • #done • [student@it136centos58vm ~]$ ./ls_script.sh /tmp
Questions on Scripting? • Any command in Linux is available in a script • You can use ‘loops’ or ‘control structures’ • You can create functions • You can include libraries • You can do lots of fun stuff • Even more useful after we hit regular expressions
Questions on Scripting? • What is the one thing that is needed in a Linux script? What’s it called and where is it located? • Once we have that one thing, what else do we put inside the script?
Communication Between Systems • From the command line, we can open up communications to other systems • The SSH command allows us to open a remote shell • ssh 192.168.1.100 • Replace 192.168.1.100 with any IP you want • You are unable to do this, you don’t have another VM set up at the above IP address
Not So Quick Aside Computers talk to each other over 'interfaces' NIC = Network Interface Card - adds a connection to a system Onboard/embedded – means it's built into the motherboard Speeds usually 1G (negotiated with switch) Linux has lo, ppp, wlan0, wlan1, etc..., eth0, eth1, etc...
“Corporate” Networks • Several overarching types • Not topologies – that’s for another class • Now mostly traditional and “services oriented” • Traditional is broken down into 3 ‘subnets’: • Development (Dev), Test, and Production (Prod) • Development is random, little security, considered unstable, not a priority • Test is a ‘mirror’ (or as close to as possible) of Production and is used to ensure a patch or update will not crash a network
“Corporate” Networks, 2 • Production is your corporate network • Hp.com is public-facing web server • If that went down, customers couldn’t contact us online – very bad! • Also, internal “mission critical” applications • Payroll, networks, firewalls, etc… • In HP’s case we have tools to help us build systems, track quotes, etc… • At BlueCross, the system that processes insurance claims are ‘production’ systems (term covers hardware and software)
New Networks • Google, Amazon, Facebook, etc… a new type • Services Oriented Architecture (SOA) • Each module is a ‘service’ • You connect to Amazon.com server • Amazon.com server “aggregates” search, recommendations, current product list index, current deal of the day, current ads on one display page • Then displays them • Facebook staggers updates • Will test on a subset of users • Then either push to all or rollback
And IPs • I used 192.168.1.100 as an example • This is a “Class C” range of IP’s = 192.x.x.x • Used heavily on home wifi devices • These ranges will depend on who implemented your network • Most businesses with an IT staff of over 50 people have a “class A” IP address range (10.x.x.x) • Small offices will use class C’s
Back to SSH/SCP • ssh 192.168.1.100 will connect me with the system that has that IP address, I have to know a system is there • Prompts for username and password, all of the sudden: • [ndillon@testvm ~]# • A shell! We can use that! • We can specify a user too • ssh student@192.168.1.100 will login a student user
Drawn Out • ssh 192.168.1.100 # from 192.168.1.50
SCP • What if we want to transfer files between computers? • We use scp(cp command over SSH) • scp <path1> <path2> • Simple right? Not so fast • Our file is on our system, we want to put it on the other system • scp /tmp/file.backup 192.168.1.100:/tmp
SCP • scp <path1> <path2> • Our file is on the other system • scp 192.168.1.100:/tmp/install.rpm /tmp • So IPAddress:/file/path is a common structure on Linux (you’ll see it elsewhere too) • I want to copy the /etc/profile file from my ‘dev’ system at 10.12.12.100 to my system – command?
Questions on SSH/SCP? • ? • Useful programs: Putty, WinSCP, Cygwin • These allow SSH and SCP connections from Windows • Widely used in IT • WinSCP allows FTP, SFTP, and SCP so it’s very useful • Also SecureCRT (licensed product)
Quick Demo • Scripting • SSH • SCP • Practical
Own Study • VI – Sobell p161 • Scripting – Sobell p284 • Device Communication – Sobell p687 • SSH • SCP