Unix refresher

Unix Accounts
Unix Accounts


To access a Unix system you need to have
an account.
Unix account includes:




28/07/2017
username and password
userid and groupid
home directory
shell
2
username




A username is (typically) a sequence of
alphanumeric characters of length no more
than 8.
username the primary identifying attribute of
your account.
username is (usually) used as an email
address
the name of your home directory is usually
related to your username.
28/07/2017
3
password




a password is a secret string that only the
user knows (not even the system knows!)
When you enter your password the system
encrypts it and compares to a stored
string.
passwords are (usually) no more than 8
characters long.
It's a good idea to include numbers and/or
special characters (don't use an english
word!)
28/07/2017
4
userid



a userid is a number (an integer) that
identifies a Unix account. Each userid is
unique.
It's easier (and more efficient) for the system
to use a number than a string like the
username.
You don't need to know your userid!
28/07/2017
5
Unix Groups and groupid





Unix includes the notion of a "group" of
users.
A Unix group can share files and active
processes.
Each account is assigned a "primary" group.
The groupid is a number that corresponds to
this primary group.
A single account can belong to many groups
(but has only one primary group).
28/07/2017
6
Home Directory



A home directory is a place in the file system
where the account files are stored.
A directory is like a Windows folder.
Many unix commands and applications make
use of the account home directory (as a place
to look for customization files).
28/07/2017
7
Shell



A Shell is a unix program that provides an
interactive session - a text-based user
interface.
When you log in to a Unix system the
program you initially interact with is your
shell.
There are a number of popular shells that are
available.
28/07/2017
8
Logging In

To log in to a Unix machine you can either:




sit at the console (the computer itself)
access via the net (using putty, telnet, rsh, ssh,
kermit, or some other remote access client).
The system prompts you for your username
and password.
Usernames and passwords are case
sensitive!
28/07/2017
9
Session Startup


Once you log in, your shell will be started and
it will display a prompt.
When the shell is started it looks in your
home directory for some customization files.

28/07/2017
You can change the shell prompt and a bunch of
other things by creating customization files (more
on this later…)
10
Your Home Directory


Every Unix process* has a notion of the
“current working directory”.
You shell (which is a process) starts with the
current working directory set to your home
directory.
*A process is an instance of a program that is
currently running.
28/07/2017
11
Interacting with the Shell


The shell prints a prompt and waits for you to
type in a command.
The shell can deal with a couple of types of
commands:


28/07/2017
shell internals - commands that the shell handles
directly.
External programs - the shell runs a program for
you.
12
UNIX commands and
the filesystem
Some Simple Commands

Here are some simple commands to get you
started:





ls
who
date
pwd
lists file names (like DOS dir command).
lists users currently logged in.
shows the current time and date.
print working directory
To shutdown a server (sys admin only)

28/07/2017
Init 0
14
Files and File Names




A file is a basic unit of storage (usually storage
on a disk).
Every file has a name.
Unix file names can contain any characters
(although some make it difficult to access the
file).
Unix file names can be long!

how long depends on your specific flavor of Unix
28/07/2017
15
File Contents


Each file can hold some raw data.
Unix does not impose any structure on files


files can hold any sequence of bytes.
Many programs interpret the contents of a file
as having some special structure

28/07/2017
text file, sequence of integers, database records,
etc.
16
Directories



A directory is a special kind of file - Unix
uses a directory to hold information about
other files.
We often think of a directory as a container
that holds other files (or directories).
On Windows, a directory is the same idea
as a folder.
28/07/2017
17
The Filesystem
/
bin
etc
home
tmp
usr
ls
bob
netprog
28/07/2017
unix
fred
X
bin
etc
who
18
The Filesystem
/
bin
etc
home
tmp
usr
ls
bob
netprog
unix
fred
X
bin
etc
who
Syllabus
/users/bob/unix/Syllabus
28/07/2017
19
Absolute Pathnames



The pathnames described in the previous
slides start at the root.
These pathnames are called "absolute
pathnames".
We can also talk about the pathname of a file
relative to a directory.
28/07/2017
20
Relative Pathnames

If we are in the directory /users/bob, the
relative pathname of the file Syllabus is:
unix/Syllabus

Most unix commands deal with pathnames!
We will usually use relative pathnames when
specifying files.

28/07/2017
21
Example: The ls command



Exercise: login to a unix account and type
the command "ls".
The names of the files are shown
(displayed) as relative pathnames.
Try this:
ls /usr

ls should display the name of each file in
the directory /usr.
28/07/2017
22
Disk vs. Filesystem

The entire hierarchy can actually include
many disk drives.

some directories can be on other computers
/
bin
etc
bob
28/07/2017
users
tmp
usr
fred
23
The current directory
and parent directory


There is a special relative pathname for the
current directory:
.
There is a special relative pathname for the
parent directory:
..
28/07/2017
24
The ls command

The ls command displays the names of some
files.

If you give it the name of a directory as a
command line parameter it will list all the files
in the named directory.
28/07/2017
25
Some things to try
ls
list files in current directory
ls /
list files in the root directory
ls .
list files in the current directory
ls ..
list files in the parent directory
ls /usr
list files in the directory /usr
28/07/2017
26
Command Line Options


We can modify the output format of the ls
program with a command line option.
The ls command support a bunch of options:



l long format (include file times, owner and
permissions)
a all (shows hidden* files as well as regular files)
F include special char to indicate file types.
*hidden files have names that start with "."
28/07/2017
27
ls command line options

To use a command line option precede the
option letter with a minus:
ls -a or ls -l

You can use 2 or more options at the same
time like this:
ls -al
28/07/2017
28
General ls command line

The general form for the ls command is:
ls [options] [names]

The options must come first!
You can mix any options with any names.
An example:
ls -al /usr/bin


28/07/2017
29
ls [options] [names]



The brackets around options and names in
the general form of the ls command means
that something is optional.
We will see the general form of many
commands described in this manner.
Some commands have required parameters.
28/07/2017
30
Many names

You can give the ls command many names:
ls /usr /etc
ls -l /usr/bin /tmp /etc
28/07/2017
31
Moving Around in the
Filesystem

There cd command can change the current
working directory:
cd
change directory

The general form is:
cd [directoryname]
28/07/2017
32
cd


With no parameter, the cd command
changes the current directory to your
home directory.
You can also give cd a relative or absolute
pathname:
cd /usr
cd ..
28/07/2017
33
Some more commands and
command line options

ls -R will list everything in a directory and
in all the subdirectories recursively (the entire
hierarchy).



you might want to know that Ctrl-C will cancel a
command (stop the command)!
pwd: print working directory
df: shows what disk holds a directory.
28/07/2017
34
Copying Files

The cp command copies files:
cp [options] source dest

The source is the name of the file you want to
copy.
dest is the name of the new file.
source and dest can be relative or absolute.


28/07/2017
35
Another form of cp


If you specify a dest that is a directory, cp will
put a copy of the source in the directory.
The filename will be the same as the
filename of the source file.
cp [options] source destdir
28/07/2017
36
Yet another form of cp

If you specify more than two names, cp
assumes you are using this form:.
cp [options] source... destdir

In this case cp will copy multiple files to
destdir.
source... means at least one name
(could be more than one)

28/07/2017
37
Deleting (removing) Files

The rm command deletes files:
rm [options] names...
rm stands for "remove".

You can remove many files at once:

rm foo /tmp/blah /users/john/course
28/07/2017
38
rm Exercises

Try to delete /etc/passwd

Try to delete a directory

Look at the man page for rm:
man rm
28/07/2017
39
File attributes

Every file has some attributes:

Access Times:






28/07/2017
when the file was created
when the file was last changed
when the file was last read
Size
Owners (user and group)
Permissions
40
File Time Attributes

Time Attributes:



when the file was last changed
ls -l
when the file was created*
ls -lc
when the file was last read
(accessed) ls ul
*actually it’s the time the file status last changed.
28/07/2017
41
File Owners




Each file is owned by a user.
You can find out the username of the file's
owner with the "-l" option to ls,
Each file is also owned by a Unix group.
ls -l also shows the group that owns the
file.
28/07/2017
42
File Permissions


Each file has a set of permissions that
control who can mess with the file.
There are three kinds of permissions:





read
write
execute
abbreviated r
abbreviated w
abbreviated x
There are separate permissions for
the file owner, group owner and everyone
else.
28/07/2017
43
ls -l
> ls -l foo
-rw-rw----
permissions
1 bob grads 13 Jan 10 23:05 foo
size
owner
name
group
time
28/07/2017
44
ls -l and permissions
-rwxrwxrwx
Owner
Group
Others
Type of file:
- means plain file
d means directory
28/07/2017
45
rwx

Files:
r - allowed to read.
w - allowed to write.
x - allowed to execute

Directories:
r - allowed to see the names of the file.
w - allowed to add and remove files.
x - allowed to enter the directory
28/07/2017
46
Changing Permissions


The chmod command changes the
permissions associated with a file or
directory.
There are a number of forms of chmod, this is
the simplest:
chmod mode file
28/07/2017
47
chmod mode file

Mode has the following form*:
[ugoa][+-=][rwx]
u=user
+ add permission
g=group
o=other
- remove permission
a=all
= set permission
*The form is really more complicated, but this simple version will do
enough for now.
28/07/2017
48
chmod examples
> ls -al foo
rwxrwx--x
1 hollingd grads …
> chmod g-wx foo
> ls -al foo
-rwxrw---1 hollingd grads
>chmod u-r .
>ls -al foo
ls: .: Permission denied
28/07/2017
49
Other filesystem and file commands
 mkdir make directory

rmdir remove directory

touch change file timestamp (can also
create a blank file)

cat
concatenate files and print out to
terminal.
28/07/2017
50
Some commands worth knowing



finger [user name]
who and whoami
users


whereis [command name]


Lists who is logged in
Checks your path
find



28/07/2017
Find [path] –name [file name]
Find / -name whereis
Find / -name wh*
51
Some commands worth knowing




history
![number in history]
head – display top few lines of a file
more – operates like man (and supports
searching)
28/07/2017
52
Job control

[command] &







Run the command in the background
For a running program, ctrl-z stops it (but doesn’t kill
it)
fg brings a background job into the foreground
Jobs list the processes running (stopped or not)
from the current shell.
bg put a stopped job to run in the background
%[job number] bring a stopped job back to the
foreground
Kill %[job number] kills that job
28/07/2017
53
vi

Remember there are two modes


28/07/2017
insert and command
ESC will always get you back to command
54
Basic vi commands

a - Append
A – Append at the end of the current line
i – Insert before the current character
I – insert at the start of the current line

r – Replace






replace one character under the cursor. Specify count to
replace a number of characters
u - undo the last change to the file. Typing u again
will re-do the change.
x - delete character under the cursor. The
characters will be deleted after the cursor. 5x will
delete 5 characters
28/07/2017
55
Navigation




h : move the cursor to the left one character
position.
j : move the cursor down one line.
k : move the cursor up one line.
l : move the cursor to the right one character
position.
28/07/2017
56
More navigation

^


$


Move to end of paragraph (defined by a blank line)
{


Move to the end of the sentence
}


Move to the beginning of the sentence.
)


Move to the end of the word.
(


Move to the end of the line.
w


Move to the beginning of the line.
Move to start of paragraph
Every command can be repeated by putting a number before/after the
command

28/07/2017
5}, 4{, 5w, …
57
Cutting, Pasting and searching


Cut with either delete command or yank (y or
Y) command
Paste with



P – paste before current position
p – past after current position
Search with



28/07/2017
/[search pattern] – search from this point on
Repeat search with / of n
Search pattern is a regular expression

/Br*ley, /Br[0-9], /B[rR] …
58
Variations on delete
commands

d^


d$


deletes a line from current cursor position downwards.
d}


deletes from current cursor position to the end of the word.
dd


deletes from current cursor position to the end of the line.
dw


deletes from current cursor position to the beginning of the line.
deletes to end of paragraph.
d{
deletes to start of paragraph.
Every command can be repeated by putting a number
before/after the command
 3dd, 5dw, 4d}, d5w, …
Works with yank (y/Y) as well



28/07/2017
59
Substituting


:s/pattern/to_pattern/options
:s/Ronan/Robert


Find first occasion of Ronan and replace with
Robert
:s/Ronan/Robert/g

28/07/2017
Find every occasion of Ronan and replace with
Robert
60
Open, save, quit

vi [filename1] [filename2]






:n will move to the next file you want to edit
:w – write the file
:q - quit vi, assumes no changes since last
save
:q! – quit and lose changes
:e - close the current file and open another
:e! – as :e but lose changes
28/07/2017
61
Some options

:set all


:set tabstop=x


Set the number of spaces for each tab
:set number


Lists all the options
Show line numbers
:set nonumber

28/07/2017
Hide line numbers
62