Unix

71
Welcome to Unix Crafted by the CSUA at Berkeley http://csua.berkeley.edu Presented 8/29/2002

description

 

Transcript of Unix

Page 1: Unix

Welcome to Unix

Crafted by the CSUA at Berkeley

http://csua.berkeley.edu

Presented 8/29/2002

Page 2: 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.

Page 3: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 4: Unix

What is it and where do you get it?

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

• To you, probably a prompt:

~> type stuff here

• You get a temporary account when you take a CS class. Get a (more) permanent account from the OCF or CSUA. Or buy a Mac.

Page 5: Unix

If you know only one thing, know how to RTFM.

~>man command

• gives you help on that command.

~>apropos keyword

• tells you all man pages that contain keyword.

Page 6: Unix

How to get help.

• Come to the CSUA office, 343 Soda.

• HKN is next door the CSUA.

• Go to the OCF in the MLK Heller Lounge when someone is holding staff hours.

• Post your question to a newsgroup (like your class newsgroup).

• Hit the man pages/web first !

Page 7: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 8: Unix

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

Page 9: Unix

Absolute Addressing

Page 10: Unix

Addressing relative to your home dir.

Page 11: Unix

Addressing relative to your current dir.

Page 12: Unix

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

Page 13: Unix

getting recursive

• remove a directory and its contents:

rm -r <directory>

• copy a directory and its contents:

cp -r <directory>

Page 14: Unix

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 .forward

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

Page 15: Unix

executing

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

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

Page 16: Unix

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>

Page 17: Unix

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.

Page 18: Unix

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 .forwardlrwxr-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.

Page 19: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 20: Unix

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

Page 21: Unix

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?

Page 22: Unix

(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.

Page 23: Unix

shell variables, echo

(tcsh) ~>setenv BOB “joe”

(tcsh) ~>printenv BOB

joe

(tcsh) ~>echo $BOB

joe

Page 24: Unix

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>)

Page 25: Unix

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”

Page 26: Unix

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

Page 27: Unix

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.

Page 28: Unix

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.

Page 29: Unix

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.

Page 30: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 31: Unix

Your Options

• Abstinence

(switch majors, unplug your computer)

• monogamy

(use only one computer, do not use network)

• protection

(also known as encryption)

Page 32: Unix

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.

Page 33: Unix

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.

Page 34: Unix

using secure copy: scp

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

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

Page 35: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 36: Unix

the program mail

• “mail”: useful for sending:

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

Page 37: Unix

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.

Page 38: Unix

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).

Page 39: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 40: Unix

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

Page 41: Unix

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

Page 42: Unix

emacs

• Always has one major mode running, potentially several minor modes.

• stands for editing macros - designed by and for lisp programmers.

Page 43: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 44: Unix

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

Page 45: Unix

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.

Page 46: Unix

> vers >>

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

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

Page 47: Unix

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

Page 48: Unix

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

who | sort

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

Page 49: Unix

grep

• grep shows only those lines containing its search pattern.

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

grep ‘bob’ < file1

Page 50: Unix

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

Page 51: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 52: Unix

printers have stupid names

• The printers downstairs are named “lw274”.

• The printer in 330 is called “lw330”.

Page 53: Unix

how to print a .ps file

• syntax:

lp -D<printer> <filename>

• example:

lp -Dlw330 myfile.ps

Page 54: Unix

how to print a .pdf file

• convert it to .ps first!!!

• use the pdf2ps utility program.

pdf2ps input.pdf output.ps

Page 55: Unix

how to print other file types

• Convert them to .ps first!!!

• The program a2ps (anything to .ps) works most of the time.

Page 56: Unix

How to check the printer’s queue.

• syntax:

lpq -P<printer_name>

• example:

lpq -Plw330

Page 57: Unix

How to cancel your print job.

Type “cancel”.

Page 58: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 59: Unix

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

• example:

big_program > output &

• big_program will not have input!

Page 60: Unix

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”

Page 61: Unix

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

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

Page 62: Unix

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

Page 63: Unix

kill -9

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

Page 64: Unix

Outline

I. getting helpII. the file systemIII. the shellIV. safe computer sexV. email optionsVI. and lesser editorsVII. input and output redirectionVIII.printingIX. process managementX. X

Page 65: Unix

cutting and pasting

• Highlight some text in any window.

• Hit the middle mouse button in another window.

• The highlighted text appears.

• There is no “saving to the clipboard” step as in Microsoft’s Windows or MacOS.

Page 66: Unix

Changing your fonts.

• <control-leftclick> in xterm

• edit -->preferences --> fonts in netscape.

Page 67: Unix

Changing your window manager.

• Your ~/.xsession gets run when you log into X windows, the last line sets which window manager you are going to use.

• You probably want someone to set up your X configuration for you the first time.

Page 68: Unix

Using X windows at home on a MS-Windows machine.

• You need to get a program called a program called an “Xserver”. Exceed works well and is free for academic use.

• You must allow X-forwarding through your ssh client. Putty is good for this.

Page 69: Unix
Page 70: Unix
Page 71: Unix