Welcome to Unix. Redistribution The authors (nor anyone else) provides no warranty or claim of accuracy of this document. Use at your own risk. You may.

Post on 26-Mar-2015

216 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

Transcript

Welcome to Unix

Redistribution

• The authors (nor anyone else) provides no warranty or claim of accuracy of this document. Use at your own risk.

• You may use this document in whole or part according to the terms of the GPL. See http://www.gnu.org/copyleft/gpl.html for details.

OutlineI. getting helpII. the file systemIII. the shellV. email optionsVI. and lesser editorsVII. input and output redirection

VIII.printingIX. process managementX. X

What is it and where do you get it?

• An operating system used on everything from servers to embedded systems.

• Most of the Network users first login to Unix machine before they really access to routers and switches

Where do you get Help

~>man command

• gives you help on that command.

• tells you all man pages that contain keyword.

• Of course .. Google or Wiki

OutlineI. getting helpII. the file systemIII. the shellV. email optionsVI. and lesser editorsVII. input and output redirection

VIII.printingIX. process managementX. X

Files and Directories:Naming something gives you power over it.

Absolute Addressing

Addressing relative to your home dir.

Addressing relative to your current dir.

File system commands

• pwd - report your current directory

• cd <to where> - change your current directory

• ls <directory> -list contents of directory

• cp <old file> <new file> - copy

• mv <old file> <new file> - move (or rename)

• rm <file> -delete a file

• mkdir <new directory name> -make a directory

• rmdir <directory> -remove an empty directory

getting recursive

• remove a directory and its contents:

rm -r <directory>

• copy a directory and its contents:

cp -r <directory>

File permissions.

• There are 3 kinds of people in the world: you (user), your friends (group) and everyone else (other).

• Each sort of person may or may not be able to read, write, or execute a file.

>ls -l .forward-rw-r--r-- 1 darin csua 23 Jan 23 2002 .forwardChown

>ls -l .cshrc.local-rwxr-xr-- 1 darin csua 2988 May 19 00:48 .cshrc.local*

executing

• “executing” a file means running it as a program.

• “executing” a directory means setting your current directory to it using cd.

Changing File Permissions

• make a file readable to your friends:

chmod g+r <filename>

• change who owns a file:

chown <user> <filename>

• change to which group the file belongs:

chgrp <group> <filename>

touch

• look at the full listing again:

>ls -l .forward-rw-r--r-- 1 darin csua 23 Jan 23 2002 .forward

• Each file has a date stamp of when it was modified.

• Use touch to set the timestamp to the current clock.

touch <filename>

• Touch creates the file if it didn’t exist beforehand.

• You can only touch a file to which you can write.

Symbolic Links

• use ln -s <old file> <second name> to create a symbolic link to a file.

>ls -l .forward*-rw-r--r-- 1 darin csua .forwarddrwxr-xr-x 1 darin csua .forward.link@ -> .forward

• The first “l” tells you that it’s a symbolic link.

• Symbolic links can be used as if it were its target.

OutlineI. getting helpII. the file systemIII. the shellV. email optionsVI. and lesser editorsVII. input and output redirection

VIII.printingIX. process managementX. X

what’s a shell?

• The shell is the program that

runs when you log in. It prints

the prompt and reads what you

type, invokes programs, etc.

• your window to the Unix world.

• use “chsh <new shell>” to change your shell

File Globbing

• some commands can work on many files at once:

~> rm file1 file2 file27

• Use * to match any number of unknown characters

~> rm file*

• Use ? to match one unknown character.

~> rm file??

(un)aliasing

• create shortcuts for yourself

~>alias ll “ls -la”

Use alias with no arguments to discover current aliases

~>alias

rm rm -i

ll ls -la

• Type “unalias rm” to remove alias.

shell variables, echo

(tcsh) ~>setenv BOB “joe”

(tcsh) ~>printenv BOB

joe

(tcsh) ~>echo $BOB

joe

PATH: a very important shell variable

>echo $PATH/home/d/da/darin/bin:/opt/local/bin:/opt/local/bin/

pbmutils:/usr/bin:/usr/sbin:/opt/SUNWspro/bin:/usr/ccs/bin:/opt/local/X11/bin:/usr/dt/bin:/usr/openwin/bin:/opt/local/gnu/bin:/opt/local/games/bin:/usr/ucb:./

• If a program (like ls) is in one directory found in your path, then typing it (~>ls <enter>) will execute it.

• Otherwise you can type the full absolute address to execute a program (~>/usr/bin/ls <enter>)

finding things in your PATH.

• Type “which <command>” to find the location of the program which would be run when you type <command>.

• If you don’t remember if it was chgrp or chgroup, type “ch<control-d>” to get a list of commands that starts with ch.

• when all else fails, use “find” to find a file.

~>find <start dir> -name “*.doc”

Other useful pre-defined shell variables

• HOST what computer you’re logged into

• PAGER program used display man pages

• PWD current directory

• GROUP what group you’re in

• USER your login

Shell scripts.

• If you have a bunch of commands you’d like to automate, you can put them on separate lines of a file. Then type “source <file>” to run the script.

• If the first line of your script looks like

#!<program name>then you can make the script executable. When it

executes, it uses <program name> to interpret the contents of the script.

Login scripts

• Most people have a script that executes when they log in. It is commonly used to set up one’s PATH and aliases.

• Ask someone to help you start your own login script.

screen is your friend

• You can use the program “screen” to run several shells from one window.

• create a new shell by pressing <ctrl-a> c

• switch shells by pressing <ctrl-a> <number>

• use “<ctrl-a> d” to detach a session and come back to it later.

OutlineI. getting helpII. the file systemIII. the shellV. email optionsVI. and lesser editorsVII. input and output redirection

VIII.printingIX. process managementX. X

Your Options

• Abstinence

(switch majors, unplug your computer)

• monogamy

(use only one computer, do not use network)

• protection

(also known as encryption)

What not to use.

• telnet, ftp, rlogin

• all your data (including your password) is transmitted plain text over the network.

• from library machines you can use the java ssh client from a web browser.

using ssh keys

• use “ssh-keygen” to generate a public/private set of keys. You keep the private key and append the public key to authorized_keys.

• You can now log in using either your password or the private key file.

using secure copy: scp

• copy local to remotescp <source file> user@machine:<path>

• copy remote to localscp user@machine:<path> <source file>

OutlineI. getting helpII. the file systemIII. the shellV. email optionsVI. and lesser editorsVII. input and output redirection

VIII.printingIX. process managementX. X

the program mail

• “mail”: useful for sending:

>mail darin@csuaSubject: helloCc:hi therethis is a message.

other console based options

• elm - quick and simple, easy to use, but doesn’t handle attachments very well.

• pine - more complete. the “standard”

• mutt - most modern/complex.

accessing mail remotely• netscape, outlook, eudora, and others can get at your mail

using POP or IMAP.

• POP takes the messages off the server to your local computer.

• IMAP only reads headers, but leaves mail how it is on the server. Works well if you wish to use console based email.

• ALWAYS use SSL (encryption).

OutlineI. getting helpII. the file systemIII. the shellV. email optionsVI. and lesser editorsVII. input and output redirection

VIII.printingIX. process managementX. X

vi

• is an editor available on all decent Unix systems. Developed at Berkeley.

• Has two modes: command and insert. In insert mode you can type normally.

• Press escape to get into command mode. In command mode each letter is a command.

hjkl

pico - the pine composer

• the simplest visual editor available on most Unix systems.

• all possible commands displayed at bottom of screen. (control-somethings)

• no real surprises

Outline

I. getting helpII. the file systemIII. the shell

V. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

STD*

• All terminal programs have:

– standard output, which is usually your screen– standard input, which is usually your keyboard– standard error, which is also the screen

redirect output to a file with >

• If you type who at the prompt, you will get a list of who is logged into the system.

• If you type who >f, a file named f will be created and the standard output of who will be placed in that file instead of to your screen.

> vers >>

• By default, who >f will overwrite the file f.

• Use who >>f to append to f rather than overwriting it.

redirecting input from a file with <

• The program sort will sort its standard input and then print it on standard out.

• To sort the lines of file1 and display:

sort < file1

• To sort the lines of file1 and save in file2:

sort < file1 > file2

The output of one program can be the input to another.

who | sort >file1

• The output of who is sorted and shown on your terminal screen.

grep

• grep shows only those lines containing its search pattern.

• To see all lines in a file containing ‘bob’:

grep ‘Dropped Packet’ < file1 >file2

The cat command

• the arguments to cat are concatenated together and displayed on stdout. To view a file:

cat file1

• if no arguments, cat puts on stdout whatever you type on stdin, so this does the same thing:

cat < file1

Outline

I. getting helpII. the file systemIII. the shellV. email optionsVI. and lesser editorsVII. input and output redirectionVIII. process managementIX.Other Useful commands

how to print a .ps file

• syntax:

lp -D<printer> <filename>

• example:

lp -Dlw330 myfile.ps

How to check the printer’s queue.

• syntax:

lpq -P<printer_name>

• example:

lpq -Plw330

OutlineI. getting helpII. the file systemIII. the shellV. email optionsVI. and lesser editorsVII. input and output redirection

VIII.printingIX. process managementX. X

To start a process in the background, use “&”.

• example:

big_program > output &

• big_program will not have input!

managing jobs

• To suspend the currently active program, use <control-z>.

• To return to the program you just suspended, type “fg”

• To put the program you just suspended in the background, type “bg”

To see a list of your programs running, type “ps”.

>ps -eaf PID TTY TIME CMD 866 pts/1 00:00:00 tcsh 872 pts/1 00:00:00 ps

use kill to end a process

>ps PID TTY TIME CMD 866 pts/1 00:00:00 tcsh 874 pts/1 00:00:00 cat 875 pts/1 00:00:00 ps

>kill 874[1] Terminated cat

kill -9

• If kill <PID> doesn’t end your process, use kill -9 <PID>

top related