The UNIX SYSTEM
Gurmeet Singh
PG Department of Computer Science & IT
HMV, Jalandhar
Unix Tools
What the ~*&?!
~ “tilde” indicates your home directory: /home/hmv
* “star”: wildcard, matches anything
? wildcard, matches any one character
! History substitution, do not use
& run a job in the background, or redirect errors
#% special characters for most crystallography programs
`\([“’ back-quote, backslash, etc. special to shell
_ underscore, use this instead of spaces!!!
Shells
Intro to Unix: Files
/
tmp
dev
etc
home
usr
chris
lib
mary
include
bin
local
lib
include
bin
Some basic commands
• the bash shell has automatic completion, just press <TAB>
• completion is used for command names and for file names
• pressing <tab> twice gives you all options
Essential Commands
Where am I?
It prints the name of the “current working directory”
This is the default directory/folder where the shell program will look first for programs, files, etc. It is “where you are” in Unix space.
pwd
What is a directory?
Directories are places where you put files. They are represented as words connected by the “/” character.
On Windows, they use a “\”, just to be different.
DO NOT PUT SPACES
In directory/file names!
/home/yourname/whatever
What have we here?
List contents of the current working directory
ls –l - long listing, with dates, owners, etc.
ls –lrt - above, but sorted by time
ls –lrt /home/yourname/something
- long-list a different directory
ls
Go somewhere else?
Change the current working directory
cd /tmp/yourname/
- go to your temporary directory
cd - - go back to where you just were
cd - no arguments, go back “home”
“home” is where your login starts
cd
A new beginning…
Create a new directory.
mkdir ./something - make it
cd ./something - go there
ls - check its is empty
mkdir
How do I get help?
Display the manual for a given program
man ls - see manual for the “ls” command
man tcsh - learn about the C shell
man bash - learn about that other shell
man man - read the manual for the manual
to return to the command prompt, type “q”
man
Move it!
Move or rename a file. If you think about it, these are the same thing.
mv abc.txt bettername.txt
- change name
mv abc/file.txt ../betterplace/file.txt
- same name, different directory
mv abc_*.img bettername_*.img
mv
Copy machine
Copy a file. This is just like “mv” except it does not delete the original.
cp abc.txt bettername.txt
- change name, keep original
rm abc.txt
- now this is the same as “mv”
cp
“Permission denied” !?
Change the “permission” of a file.
chmod a+r filename.txt
- make it so everyone can read it
chmod u+rwx filename.txt
- make it you can read/write/execute it
chmod –R u+rw /some/random/place
- make it so you can read/write everything under
a directory
chmod
Destroy File
Remove a file forever. There is no “trash” or “undelete” in unix.
rm unwanted_file.txt
- delete file with that name
rm –f /tmp/yourname/*
- forcefully remove everything in your temporary directory.
Will not prompt for confirmation!
rm
Displaying Pagewise file
Display the contents of a text file, page by page
more filename.txt - display contents
less filename.txt - many installs now have a replacement for “more” called “less” which has nicer search features.
to return to the command prompt, type “q”
more
After the download…
File compression and decompression
gunzip ~/Downloads/whatever.tar.gz
- decompress
gzip ~/Downloads/whatever.tar
- compress, creates file with .gz extension
gunzip
Where the %$#& is it?
Search through directories, find files
find ./ -name ’important*.txt’
- look at everything under current working directory with name starting with “important” and ending in “.txt”
find / -name ’important*.txt’
- will always find it, but take a very long time!
find
Disk space?
Check how much space is left on disks
df - look at space left on all disks
df . - look at space left in the current working directory
du –sk . | sort –g
- add up space taken up by all files and subdirectories, list biggest hog last
df du
Processes?
Look for programs that may be eating up CPU or memory.
top - list processes in order of CPU usage
jobs - list jobs running in background of current terminal
ps –fHu yourname
- list jobs belonging to your account in order of what spawned what
ps top
Stopping Running Processes
Stop jobs that are running in the background
kill %1 - kill job [1], as listed in “jobs”
kill 1234 - kill job listed as 1234 by “ps” or “top”
kill -9 1234 - that was not a suggestion!
kill -9 -g 1234 – seriously kill that job and the program that launched it
kill
Using find and grep with wildcards
• we can use “wildcard” characters to make searches more general
• “*” is the main one, means any set of characters
– find /home/gurmeet -name “*.ppt” : finds all powerpoint files
– grep human *.txt : look for the word “human” in all the files in my directory.
Pipes & redirects
ls | grep “hmv”
ls > directoryname
Text Editors
Any Questions?