UNIX 101:
UNIX For Windows
Users
Lecture 1
9 September 2005
Sponsored by ACM
1
The Cold Hard Truth
• This course is NOT officially sponsored by the
CS department
• You will NOT receive credit for this course -
neither will we for that matter
• If we say something that offends you, deal with
it.
• You should try NOT to snore when you fall
asleep
• We did this course on our own time, so try to
make the best of it for all of us.
2
Just Who Do We
Think We Are?
• Mark Kegel - Tall Guy with Black Hair
• mkegel@cs.hmc.edu
• Marshall Pierce - Broad Shouldered
Guy
• mpierce@cs.hmc.edu
3
And Just What Do
We Think We‟re
Doing?
• We are here to teach you (what we
think are) the fundamentals of Unix.
• We are here to teach you to teach
yourself about Unix.
• We‟re on a mission from God.
4
Never Mind Us, Who
Are You People?
• Students who have no experience with
Unix
• Students who have some experience but
want a better grounding in Unix
• Someone who is lost, confused, and
looking for spiritual enlightenment
5
Some Reasons to
Learn About Unix
• Growth of Linux
• OS X is based on Unix
• Expanded skill set - useful knowledge
• You want to be a l33t h4X0r
• BTW, you will always be teh newb
6
Some Better Reasons
to Learn About Unix
• I want to show my girl\boy-friend some
cool Unix tricks
• FYI: Real CS Majors never see the
light of day much less significant
others
• I am a CS major...
• ...or I plan on taking a class (CS60 or
above) from the CS department
7
The Best Reasons To
Learn About Unix...
• As a CS major at Mudd you need to
have a working knowledge of Unix
• The CS department refuses to offer a
Unix course (they do have good
reasons though!)
• But why are you really here?
8
To Make This
Perfectly Clear...
• We will NOT teach you how to use
application XXXX or show you neat
tricks for application XXXX
• This course is not the equivalent of a
course in Word or Excel
• We will also NOT teach you to how to
program in Unix
9
Down To Business...
• Computing Resources Available To You
• Terminal Room: Beckman B102
• Mac minis (aren‟t they just so cute)
• Printer: gute.cs.hmc.edu
• Graphics Lab: Beckman B105
• some old‟n‟busted computers
10
• AC and LAC Labs
• Windows and Mac Computers
• Printers: Odie and Cujo, Clifford and
Astro
• Scanners in alternate AC lab
• Engineering Lab
• Houses engineers, avoid at all costs
(they snarl and bite; Holy Water and
Crosses are said to keep them away)
11
All-Campus Servers
• odin.ac.hmc.edu
• RHEL server; Student POP server
• thuban.ac.hmc.edu
• VMS server; hosts DNS
• banshee.st.hmc.edu
• Huge Cisco box; campus wide router
12
CS Dept. Servers
• turing.cs.hmc.edu (sparc)
• primary work server - you‟ll do most
of your work from here
• knuth.cs.hmc.edu (x86)
•our new server - where you ought to
be working when you can
• wilkes.cs.hmc.edu (x86)
•alternate work server
• muddcs, ark, cortana, durandal
13
The Doctor Will See
You Now
• Mudd employs several whose jobs
entail fixing computer and network
problems
• Tim Buchheim - Computer Science
Dept.
• Maintains the CS Department
computers
• Roger Wiechman - CIS
• Maintains the Mudd Network
14
When Hippies walked
the earth...
• Computers were real dinosaurs
• Barely had timesharing systems
• No video terminals - teletypes instead
• RAM and CPU power limited
• there‟s only so many beads you can
fit on an abacus
15
When Hippies walked
the earth...
• Ken Thomson
• Invented UNICS in 1969
• UNIplexed Information and Computing
Service
• That year also ARPANET, and man most
likely landed on the moon
• Why? He needed a way to play a game...
• After that Unix's history is kind of a blur
16
Unix Today
• Fundamentally multi-user and multi-tasking
• Programmer‟s and tinkerer‟s environment
• Support and encouragement for hacking
the system; FOSS is your friend
• Powerful tool in the right hands
• Runs the world‟s most powerful computers
• Is a thirty year old OS that Microsoft still
hasn‟t been able to copy correctly
17
The Idea of Unix?
• Unix is more than an OS, it is
• a programming language - C
• a broad philosophy of how computers
and users should interact
• an interface - POSIX
• more than the sum of its parts
• the code that Ken Thomson wrote?
18
A discourse on the dialectic sublimation
inherent in the praxis of methodological
analysis of UNIX philosophy.
• Programs should be designed to work
together
• Accept input that isn‟t strictly formatted
• Produce output that is nicely formatted
• Should work exclusively with text streams
• Programs should be simple and small
• Do one task, and do that task well
19
More Unix
Philosophy...
• KISS - Keep It Simple Stupid
• Keep things as simple as possible
• Separate Mechanism From Policy
• Users should be able to decide how a
program is to look and behave
• Internals (Mechanism) should not be
locked into one policy
20
More Unix
• Principle of Least Surprise
Philosophy...
• When programs have nothing
important to tell you, they will tell you
nothing
• Programs should die early and noisily
when they die
• There is no “One True Way”™
• Unix is not perfect!
Windows
But it‟s still better than
• Many more philosophical rules than
21
http://pangea.stanford.edu/computerinfo/unix/overview/advantages.html
- The traditional command line shell interface is user hostile
-- designed for the programmer, not the casual user.
- Commands often have cryptic names and give very little
response to tell the user what they are doing. Much use of
special keyboard characters - little typos have unexpected
results.
- To use Unix well, you need to understand some of the main
design features. Its power comes from knowing how to make
commands and programs interact with each other, not just from
treating each as a fixed black box.
- Richness of utilities (over 400 standard ones) often
overwhelms novices. Documentation is short on examples and
tutorials to help you figure out how to use the many tools
provided to accomplish various 22 kinds of tasks.
Pleasure You Want.
Protection You Trust.
• Everything in Unix is owned by
someone
• Files, programs, devices, etc.
• Unix protects users, their data, and their
programs from one another
• Regular users are not allowed to do
dangerous things to the system
• Distinction between being a “user” and
being an “admin” 23
Three types of
lusers...err users
• Administrative users (aka root)
• Complete control over everything on
the system - allowed special
privileges
• Can become any user on the system
• Exists on nearly every Unix-based
system
• Used for System Maintenance and
Administration
24
Returning to Normal
• Normal Users (aka you, me, and crazy
ivan)
• Allowed to use most of the programs
on the system
• Have a special area all to yourself
• Home directory - belongs to you!
• Stores user specific programs, data,
and configuration information
• Limited in size on knuth and odin
25
There‟s just
nobody@home.com
• System users
• generally used to run daemons
• Why would running a daemon as a
regular user or as root be a problem?
• do not usually have home directories
• you cannot log in as one of these users
• examples: bin, lp, mail, pop, sshd, nobody
26
Unix Rockstars and
their Groupies
• Group: a set of users
• Every user belongs to at least one
group: their primary group
• Groups allow for easier management of
a system
• students group on turing
• operator group for consultants
27
Unix Pre-School:
Logging In
• If you don‟t have an account on knuth, go see
Tim!
• Every user has a username and a password
• Passwords are secret; usernames are not
• Do your best to keep passwords secret!!
• You should try to have as strong a password
as you can remember
28
g00D P@$$w0rds
• Should be at least 8 characters long
• Should include special characters
• Digits, - @ ! # $ % ^ & . , ( ), spaces
• Use a mix upper and lower case
letters
• Never use a plain dictionary password!
• elephant is not a good password
• Pass-phrases are better
• I took CS60 ⇒ 1 t00k CS-6o#
29
Sessions of the Heart
• Unix is at its heart a command line OS
• Invented in the days of the teletype
• Physically separated input and
processing
• location of the teletype unimportant
• Today we use emulated terminals
• Unix offers graphical environments, but
that isn‟t where the real power lies
30
The Blinking Cursor of Doom
Why learn to use the command
line?
• You have to whether you like it or not
• Simple, Quick, and Powerful
• Efficient
• Superior for certain tasks
• New way for you to think about how to
interact with a computer
• Necessary skill to be a Power User
• Gives +4 to your Geek skill; -4 to Social
Interaction and Aroma
31
HomeinSweet Home
• When you log you‟ll find yourself in your
home directory
• Located at (on most *nixes)
• /home/username, 1328 Mulberry Drive
• Stores all you personal configuration
information
• Is where you‟ll keep all your data: homework,
documents, etc
• Is your personal space; can do whatever you‟d
like 32
Unix Directory Tree
• Unix directories are separated with the /
(slash) character
• The Unix directory tree starts at / (root)
• Devices can be located most
anywhere on the tree (no Windows A:,
C:, D:, stuff)
• The directory tree is filesystem
independent
• Do you know which computer your
home directory is on?
33
Introducing The Shell
• The shell is an interactive program that
sits between you and the OS
• Is executed as soon as you log in
• Translates your commands into actions
that the computer can perform
• shell == “command interpreter”
• The shell is your new best friend; you‟ll
have lots of fun together.
34
Syntax of a
Command
• Any line with a % preceding it is probably
happening on the command line
• Jobbies in brackets [~~~] are optional
• Jobbies in angle brackets are
required
• Command syntax
• % command [switches] [arg1] [arg2] ...
•(output here)
35
• Switches (aka flags) are special
Switches
arguments passed in to a program to alter
its behavior
• Follow two general styles - Unix and GNU
• Unix: dash „-‟ followed by a single
character
• GNU: Double dash „--‟ followed by a
word
• Programs can take many, many switches
• Newer programs may also have Unix and
36
Arguments
• Like switches, variable in number
• Provide some form of data that the
program can operate on
• Can be filenames, email address, another
command, keywords to search for,
patterns, text, random gibberish (or is it?)
• You should get conformable with both
switches and arguments
• BE CAREFUL WHAT YOU TYPE !!
37
Basic Commands
38
Basic Commands
39
Basic Commands
40
Unix is case sensitive - to know
•Some things „pwd‟ != „pWd‟
• Unix commands are short
• cp = copy; mv = move; rm = remove
• Unix commands are almost always lower-
case
• Switches come on both upper and lower-
case
• Often have different meanings! Watch
Out!
• Pay attention to special characters
41
Ctrl+World =
Mwahahaa!!!
• Shortcut sequences are often denoted
as C-?, M-?, and ^?, where ? is some
key
• C = Ctrl = ^
• M = Meta ~ Alt ~ Option (on Mac only)
• You‟ll see this often in documentation,
particularly in emacs docs
42
Letorme outta here!
• Exiting stopping (by which I mean using)
some programs (by which I mean vi) can be
a challenge
• Some standard exit shortcuts
•C-d : sends EOF to program
•C-c : interrupts the program
•C-\ : exits program causing a core dump
• Programs do not have to obey these
shortcuts, and may map them to another
function.
43
Manna from Heaven:
Tab Completion
• Wouldn‟t it be nice if you didn‟t have to
type /home/OneReallyLongName every time?
• You can use the tab key to complete
commands and arguments to commands
• Can complete:
• commands, switches, host names,
directory names, process names, man
pages, and more
44
Line Editing
• The up arrow key will cycle back
through your command history;
pressing down arrow will cycle forward
• The left and right arrow keys will move
the position of the cursor so you can
insert new characters
• Backspace and delete work as
expected
45
Line Editing
• C-? will delete back
• C-d will delete forward
• C-u will delete the entire line
• C-k will delete the forward from the cursor
• C-l clears the terminal
• C-y will paste the characters you have
deleted
46
Line Editing
• C-a will move to the beginning of the
line
• C-e will move to end of the line
• M-b will move back a word
• M-f will move forward a word
• C-_ will undo the last thing typed
• C-r will allow you to search your
command history
47
Are You “Special”?
• The shell interprets a number of
characters as having special meaning
• Which characters are special?
• #$*?[]()=|^;`$“„\
• Special characters have many uses that
we will cover through the course
48
Escape From \”Reality\”
• To pass special characters into programs
you need to escape them, precede with a
\
• \ disables the special meaning of the
character
• Can also disable meaning through
quoting
• „xxx‟ - all characters disabled
• “xxx” - all but $, „, and \ disabled
• \ can also be used to continue a
49
Finding Help:
• You can‟t teach yourself everything. Admit
The Larry Page Center for Unix
it, you‟re going to need help.
Addicts
• Resources:
• Google - always try Google first
• Websites - freebsd.org, linuxquestions.org
• Books - Unix Power Tools, FreeBSD
Handbook
• People - Staff and Consultants
• QREFs - Documentation provided by CS
Dept.
• Mailing Lists and Forums - linux-
50
Damn Sexist
• the Documentation
man pages (women get their own
docs)
• are mostly usage guides
• not general references, guides, etc.
• before asking Google, look here
• info pages
• mainly about emacs
• program docs (shared equally by the
sexes)
51
Getting Mr. Know-It-
All To Be Useful
• Man Sections
• 1 - Commands available to users
• 2 - Unix and C System Calls
• 3 - C Library Routines
• 4 - Devices and Device Drivers
• 5 - File Formats, Protocols
• 6 - Games
• 7 - Conventions, Macros, Text
Processing
• 8 - System Administration Commands
52
If Only Real Men Had
These Switches
53
Navigating A Man
• You see manPagea pager (by
output in
default more, when fixed in less)
• Arrow keys move page up/down
left/right
• Space bar - pages down a full screen
• Search using the / key
• / or n moves to next instance of
pattern
• N moves to previous instance
• b key is back/pgup; f key is
54
Working Together
• You have a factory which takes opplar-
wheezers and outputs some amazing
kolp-shaped nern-draped joggybits.
• You have another factory which accepts
these joggybits, and outputs plerk-
flavored dasser-bravored fiddlyjinks
• How do you connect the factories...err
programs?
55
Working Together
• Unix generally runs more than one
program at a time (running one is
Window‟s job)
• Programs are designed to work together,
so they need to communicate
• Use I/O mechanisms known as standard
in, standard out, and standard error
• By default these either get input from the
command line or output to the command
line 56
Working Together
• Standard In (stdin)
• the characters received as input
• Standard Out (stdout)
• the characters that are real program
output
• Standard Error (stderr)
• the characters being output as part of
any error messages
57
Working Together
• Everything in Unix is a file
• devices, directories, sym-links, and
what you normally think of as files
• What about stdin, stdout, and stderr?
• What makes a file a “real” file?
58
Working Together
• Are they files? No, are file descriptors.
• Treated like files, use read() and write()
• What is read from and written to is
managed by the OS
• So, now how do we manage to get two
programs to talk?
59
Working Together
• We use pipes, which is what std* are
• Data is piped from one program to another
• To pipe stdout (not stderr) use the „|‟
character
• % cmdone args... | cmdtwo args...
• Programs used in this way are called filters
• Learning to use filters is a Unix must
• Writing good filters is even more important
60
Misdirection for
Redirection of a
• You can also redirect the output
program into a file
• Or redirect a program to read stdin from a
file
• To redirect stdin:
•% command file (may overwrite file)
•% command >> file (appends to file)
61
What about stderr?
• If stderr is not redirected, it will be
printed as normal to the terminal
• To redirect both stdin and stderr:
•% billybob |& bubba
•% homer >& outfile
•% jethro >>& outfile
• To redirect just stderr:
•% marylou 2> errorfile
62
Complex Redirection
• Recall that stdin, etc are just file
descriptors
• We can alter where these descriptors
point from the command line
• stdin = 0, stdout = 1, stderr = 2, free 3
to 9
• Examples:
•2>&1 (points stderr at stdout)
•1>/dev/null (stdout points to oblivion)
•2>&1 1>&2 (what does this do?)
•3>&2 2>&1 1>&3 (what about this?)
63
The Back-Tick
• The back tick is ` (located next to 1 key)
• If you surround a command in back-
ticks, the shell will replace the
surrounded text with the output of the
command
• Examples:
•% grep cout `ls *.cpp`
•% emacs `grep -l error *.c`
• Back-ticks are most useful in shell
scripting 64
You Ought to Know
This By Now
• Aware of Unix Philosophy & History
• Users and Groups
• How to Find Help (*hint* use Google)
• Some (Very) Basic Commands
• Piping, Redirection, and Back-Ticks
• What the Shell Is and Why Its Cool
• A Few Other Tidbits
65
Processes and
Programs
• What is a Program?
• What is a Process?
66
The Kernel
• What Is The Kernel?
• What Does The Kernel Do?
67
Making Forrest Run
• Unix is a multi-user and multi-tasking
system
• Need to be able manage processes
• Modern GUIs mitigate this only a bit
• We‟ll assume you have one shell session
and need to be able to run multiple
programs
68
Making Forrest Run
• Have three types of process groups
• Foreground - process(es) currently
receiving keyboard input
• Background - process(es) running,
but not receiving keyboard input
• Suspended - processes that aren‟t
running, but have yet to terminate
• Managing the processes in each of
these groups is called “job control”
69
Sending The Right
Signals sending it a
• You suspend a process by
special signal from the keyboard
• Suspend = C-z = SIGTSTP
• Interrupt = C-c = SIGINT
• Quit = C-\ = SIGQUIT
• These signals are only sent to
processes in the foreground group
• Once you suspend the process, you‟ll
go back to the shell
70
Foreground &
• When you type in a command at the
shell it runs in the foreground
• To make it run in the background type a
„&‟ after the command
•% cmd (running in foreground)
•% cmd & (running in background)
• To go to a suspended or backgrounded
job you use the fg command
71
Mid-Level
Management
• The jobs command shows which processes
you have running in the background
• We can then use the fg command to switch
between processes
• Use the bg command to let a suspended
process continue in the background
72
The Process Family
Tree
• Every process on a Unix system has a
parent and can have children
• Children are created with the fork() system
call - creating a child is known as forking
• Every process is a descendent of init
• Every orphaned process is a child of init
• A zombie is a process which has exited
but hasn‟t yet been reaped by its parent
73
Process Ownership
• Each user on the system can own
processes
• Every process must be owned by a user
• To uniquely identify a process it is
assigned a number - PID (process id)
• To see all of this information about
processes (PID, parent) use the ps
command
74
How To Be Like
Charlie Mansonwant
• kill kill KILL is the command you
• To kill a process we generally need its
PID
• Can get PID from either ps or from top
• top shows bunches of process stats
• What would happen if we typed (as
root)...
•% kill 1 (init‟s PID is always 1)
75
Process priority
• Each process has a Priority
• The priority determines how much time
the process will get on the CPU
• Users can‟t change a processes priority,
only a superuser and the kernel can do
that
• Users can set the niceness of a command
• A higher nice value means that the
process is more likely to give up its own
time
76
Useful Programs
77
Useful Programs
78
Useful Programs
79
Useful Programs
80
Useful Programs
81
File Ownership
• Files also follow a security model
• Each file has an owner and a group
• The owner is the user that created it
• The group is (generally) the primary
group of the user
• Each file has three sets of permissions
• User, group, and others (everyone
else on the system)
82
File Permissions
• Each file has permissions for read, write
and execute
• Each of these permissions apply to
user, group, and others
• So permissions look like
•rwx | rwx | rwx
•user | group | others
83
Changing Ownership
• Only the owner and superuser can
change the ownership of a file
•chown
•chgrp
84
Changing File Permissions:
Why You Can‟t touch her.jpg
• Use chmod to change file permissions
•chmod
85
Special Files:
They ride the system bus
• Directories
• Permissions mean different things
• r - can list contents with ls
• w - can create a file inside directory
• x - can access a file inside directory
86
I Can‟t See
.deadpeoplethe first
• Dot-Files are files with a „.‟ as
character of the file‟s name (geewiz!!)
• You can see these files with ls -a
• Generally contain configuration
information
• Examples: .zshrc, .emacs, .xinitrc
•./ and . : the current directory
•../ and .. : the parent directory
87
~ Sweet ~
• „~‟ is referred to as a tilde (TILL-day)
• ~ is a shortcut referring to your home
directory
• ~username refers to that users home directory
• Example:
•~mkegel = /home/mkegel (on knuth)
•~mkegel = /Users/mkegel (on shadow)
88
•A path is either an absolute or
relative path
• Absolute paths begin at /
(root)
• Relative paths begin at the
current working directory
(cwd)
• Example (absolute):
/home/lush/drinks/vodka.tex
~/drinks/vodka.tex
•Example (relative):
./drinks/vodka.tex
../wino/drinks/maddog.tex
drinks/vodka.tex
89
File Links
• A link allows you to refer to one file, by a
name other than what it has
• Ex. Could refer to /billy/joe as /billy/bob
• When you access /billy/bob the OS
transparently redirects you to /billy/joe
• Can link to both a regular file or to a
directory
• Two types of links: hard-links and
symbolic-links (aka symlinks)
90
Types of Links
• Hard-links
• Cannot refer to a directory
• Cannot cross file systems
• Take up virtually no memory
• Are essentially a different name for the same
file
• Symlinks
• Can do what hard-links cannot
• Are a real file on disk (this can present
91
Creating Links
92
The Glob
• File globs (aka wildcards) allow you to
refer to a group of files whose names
match a specific pattern
• Globs are different than Unix Regexs
• Globing is provided by the shell
• Why is it a good thing (or a bad one) for
globs to be expanded by the shell?
93
•* - matches anything, except dot-files
Standard Globs
•** - search recursively
•*** - search recursively, follow symlinks
•? - matches a single character
•[a-z] - match a single character in the
• specified range
•[^a-z] - match a character NOT in the range
•(x|y|z)- match either x or y or z
•{a,b,c}- expands to a, b, c
94
Unix Directories
• The organization of programs and files in
the Unix Hierarchy is interesting
• Programs are grouped by how critical they
are to the operation of the system
• In general there is a correct location for
programs, libraries, and configuration files
to go
• Whether or not these “rules” are followed is
up to the providers of the system
95
Not so much rules as
guidelines
•/home - user home directories
•/bin - user critical programs
•/dev - block and character device files
•/etc - system configuration files
•/sbin - system critical programs
•/tmp - temporary files
•/usr - general user programs
•/var - variable length files (log files)
•/lib - shared libraries
•/opt - larger static packages
•/boot - kernel image and other boot files
•/mnt - mount point for devices
96
Some special devices
• /dev/null
• Is a sink for output
• /dev/zero
• Ever want to have an infinite stream of
zeros? Here‟s your chance!
• /dev/random and /dev/urandom
• Both output a random stream of information
• /dev/random draws from the entropy pool
• /dev/urandom is actually pseudo-random
• /dev/pr0n
• An infinite stream of porn
97
Environment and
Shell Variables
• The shell keeps track of a number of
variables that hold useful information
• Programs that you run from the shell are able
to access these variables
• Env. variables are inherited by all the shells
you may have; shell variables are local to
each instance
• Environment variables are named (by
convention)in all CAPS; shell variables are
lower-case 98
Common Env.
Variables
• Use the printenv and set commands to see
what variables are set and their values
• PATH - directory list searched for commands
• MANPATH - directory list; for man pages
• PS1 and PS2 - your prompt definition
• PAGER - pager used to open man pages
• EDITOR and VISUAL - preferred text editor
• HOSTNAME - name of computer logged in to
• UID and GID - your user and group IDs
99
Setting Env.
Variables
• You use the export command in zsh to
set environment variables
• You can see the value of a specific
variable by using the echo command
100
Setting Env.
Variables
• Zsh reads many different configuration
files, some of them are:
•~/.zshrc ~/.zprofile ~/.zlogin
• Read through these files!
101
• To reduce typing, alias a long and/or
repeated command(s) to a single short
command
102
Altering the Default
Permissions
• By default when you create a file, ALL
the rwx permissions are set to ON
• Your umask sets what permissions are
to be turned OFF
• Some good default umasks: 022, 076
• Some bad default umasks: 755, 701
103
su and sudoexecute
• These two programs allow you to
programs as a superuser (or another user)
• work by changing your UID and GID
• With su you have to know that users password
• With sudo you generally use your own
password
• sudo is flexible; su is not
• sudo can control which programs are
executed as which users on which systems
by which users 104
Editing /etc/sudoers
• The privileges that sudo grants are stored in
a regular text file (/etc/sudoers) and is editing
by the visudo program
• Basic syntax for an entry is:
• USER HOST = [(RUN_AS_USER)] CMDS
• Some examples:
• joe turing = (root) /sbin/some_cmd
• %group ALL = (root) NOPASSWD: /bin/cmd
105
Everything You Always
Wanted to Know About
Mounting Drives, But Were
• In Unix devices (hard drives, cameras,
to Ask
Afraid by the superuser
etc.)are managed
• Devices are “mounted” at some point on
the file system; they can then be
accessed
• You use the mount command to mount
any type of device - hard drives, usb
devices, etc.
• Improper mounting can leave behind
106
devices
• Device nodes are located in /dev
• Linux device names, examples
• hda3 (first hard drive, third partition)
• sdb2 (SCSI device)
• input/mouse0 (mouse on my system)
• You always mount a device to a
directory
107
mount and umount
• Use these programs to mount and
unmount filesystems (generally need to
be root to do so, however)
108
/etc/fstab
• Informs the system of which devices are
hooked up to your system
• Can mount devices at boot (or not), how
they are mounted, other options
• Can automagically mount a device if the
mount point is in /etc/fstab
• DO NOT EVER FUBAR THIS FILE!!
• or you will be unhappy and have to
use ed 109
cron
The Punctual Warrior
• cron - daemon that schedules tasks for execution
• entries created/modified with the crontab
command
• Can schedule based on:
• mins hrs day-of-month month weekday cmd
• Can specify a single entry, a range, a list, or give
the all wildcard (*) for a specific time-slot
110
• Web Browser - Firefox, Konqueror
• Text Editor - jEdit, emacs, vi
A Better Replacement
• Word Processor - abiword, Open Office
• Spreadsheet - gnumeric, Open Office
• Music Player - xmms, amarok
• Movie Player - vlc, totem, xine, mplayer
• Terminals - eterm, xterm, rxvt, konsole
• Mail - Thunderbird, pine, mutt
• PDF - xpdf, kpdf, gpdf
• FTP - gftp, ncftp, lftp
• CD Burner - k3b
• AIM - gaim, kopete
• Bit Torrent - Azureus
• File Manager - Nautilus, Konqueror
111
Other Useful
• WINE - allows you to run many
Programs
Windows executables on Linux
• Cygwin - allows you to run some Linux
programs on Windows
• Samba - lets Linux use Windows
networks
• jEdit, Emacs, vi - powerful text editors
• Only one thing to know - don‟t use vi
• Shell Scripting, Perl, Python
112
Regular Expressions
• The most nifty, and geekifying, Unix thing
ever...
• makes parsing of complicated input
simple, easy, and efficient.
113
tr
• Tool to translate characters; like a
global search-and-replace from the
command line
114
screen
• Nifty tool that allows you leave shells
open (and programs running) on which
ever machine you‟re logged into
115
Thank you‟s
• I‟d like to thank (in no particular order):
•Ran Libeskind-Hadas
•Melissa O‟Neill
•Geoff Kuenning
•Mike Erlinger
•Chris Stone
•Titus Winters
•and especially those willing to sit
through these lectures....
116