CS21Lecture3
Download
Report
Transcript CS21Lecture3
Introduction to Unix – CS 21
Lecture 3
Lecture Overview
Lab review
More on files and listings
Disk usage and compressing files
Permissions and ownership
How Did Lab Go?
What was missing?
What did I want you to get out of it?
1. Basic differences between Windows and
Unix
2. Difference between a good design and a
bad design
A, b, x don’t really make good descriptions
Lab Continued
3. Getting used to navigating the system
4. rmdir can only remove empty directories
5. A lot of environment variables are
automatically set, but not every one will be
used every time
6. Difference between an environment
variable and a local variable
7. Get used to reading man pages
8. Think about the future
What ls Output Means
Properties Of Files
All files have these properties
Permissions
Links
For directories, this lists the number of subdirectories
Owner
Owner group
Size
Timestamp
Name
Disk Space And Quota
Every file takes some amount of space,
even an empty file
Space for the name, and information about
the file
Your account has limited space
quota can be used to check available space
Du shows how much space you are using
and where it is located
“du –s” summarizes and just gives you the total
The du Command
Saving Disk Space
Compressing files
Zip
gzip
bzip2
GNU version of zip
Different algorithm
Decompressing files
unzip, gunzip, bunzip2
Running zip, gzip, And bzip2
A Special Type of File: A
Symbolic Link
Not an actual file, but a pointer to
another file
Acts as a shortcut
Can act as a shortcut to a directory
Provides a quick link to any file
Often used so files can be changed without
disturbing other programs
Graphical Representation
/home/csmajs/user
/home/csmajs/user/cs21
/home/csmajs/user/cs21/link
/home/csmajs/user2/otherFile
Creating Symbolic Links With
ln
ln –s TARGET NAME
-s signifies a symbolic link
Without the –s, a hard link is created
Difference between a hard link and a
symbolic link?
A hard link’s target must exist
A symbolic link can point to nothing (broken
link)
Overview Of Permissions
-rwxrwxrwx
File Type
rwx
rwx
rwx
Owner
Group
World
Owner, Group, The World
Owner
Group
The creator of the file
A set of users grouped together
The world
Every other account not in the group
Read, Write, Execute
Read
Write
File can be read, but not modified
Permission is granted to modify the file
Execute
Run directly as if the file is a program
All programs should be executable (/bin)
What Permissions Mean On A
Directory
Read
Write
Users can get a listing of that directory
Users can create and remove files in that
directory
Execute
Users can examine files in that directory
Changing Permissions With
chmod
chmod SETTINGS FILENAME
u = user
+ (add)
r = read
g = group
- (remove)
w = write
o = other
= (set)
x = execute
a = all
chmod a-x testFile
More Examples
Set read and write access for all?
Add executable access for others?
chmod a=rw FILE
chmod o+x FILE
Remove all access for owner?
chmod u-rwx FILE
Advanced chmod Usage
Most Unix hackers don’t use this form
They prefer the more direct approach
Set permissions for owner, group, and
others all with one number
Unfortunately, this approach requires a
little bit of information
How Decimal Numbers Work
1234
10 distinct values
1 * 1000 + 2 * 100 + 3 * 10 + 4 * 1
3
2
1
0
1 * 10 + 2 * 10 + 3 * 10 + 4 * 10
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Why is this system so comfortable?
Binary Numbers
Only two distinct values
0 and 1
On and off
Binary numbers work the exact same
way as decimal numbers
Conversion
1010
3
1
1*2+0*2+1*2+0*2
8 + 0 + 2 + 0 = 10
111
2
2
1
0
1*2+1*2+1*2
4+2+1=7
0
Powers Of Two
x
2
0
2
1
2
2
2
23
4
2
5
2
6
2
Decimal Value
1
2
4
8
16
32
64
Octal Numbers
Eight distinct numbers
0, 1, 2, 3, 4, 5, 6, 7
Binary numbers can be split into groups
of three and represented by an octal
number exactly
Conversion Table
Binary Number
Octal/Decimal Number
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
Relationship Between Binary
Numbers And Permission
Each permission can be represented by a
binary number
Each slot is either on or off
--- = 000
rwx = 111
rw- = 110
r-x = 101
Each group of three corresponds exactly to
an octal number
Conversion Examples
Read, write, and execute permission for
everybody?
Read and execute permission for everyone?
rwx rwx rwx = 111 111 111 = 777
r-x r-x r-x
= 101 101 101 = 555
Read permission for owner, write permission
for group, and execute permission for
everyone else?
r-- -w- --x
= 100 010 001 = 421
More Examples
All permission for owner, read and
execute for everyone else?
rwx r-x r-x = 111 101 101 = 755
Read, write for owner, and read only for
everyone else?
rw- r-- r-- = 110 100 100 = 644
Back To chmod
The advanced way to use chmod is to
use octal numbers and set all
permissions at once
chgrp And chown
chgrp will change the group setting of a
file to another that you are a member
of
You probably don’t belong to more than
one group
chown will change the owner of a file
Only the owner may chown a file
Once chown’ed, the new owner is the only one
who can grant permission back
Using umask To Set Default
Permissions
Every time you create a file, the
permissions are set to a default
umask will set this default
Unfortunately, it does it the exact
opposite way than you would think
How umask Works
If you want default permissions to be
770, you set your umask with the
opposite: 007
Permissions = 770 = 111 111 000
umask 007
= 000 000 111
Unix tries to be helpful and clears the
executable flags, though
Examples
Read, write, execute permission for
owner, nothing for anyone else?
Permissions = 700 = 111 000 000
umask 077
= 000 111 111
All permissions for owner and read,
write for group?
Permissions = 760 = 111 110 000
umask 017
= 000 001 111
More Examples
Read and write permissions for
everybody?
Permissions = 666 = 110 110 110
umask 111
= 001 001 001
No permissions for anybody?
Permissions = 000 = 000 000 000
umask 777
= 111 111 111
A Couple Simple Commands
echo
Simply prints out whatever it is given
Example:
Using echo To Make A Simple
File
Timestamps
touch command
Without any flags, it will make the
modification time of that file the current
time
Can be used to create a new file, but the
file will be empty (0 byte size)
Final Notes For Today
We have covered up through chapter 5
in the book, so you will be expected to
have read these chapters
Next time we will delve deeper into
creating files and moving them around
in the file system