SysProg-Tutor 02 Introduction to Unix Operating System

61
Chulalongkorn University 2110313 Operating Systems and System Programs (1/2010) Tutor Session - 2 Introduction to UNIX Operating System Tutor Session II: Wongyos Keardsri (P’Bank) Department of Computer Engineering Faculty of Engineering, Chulalongkorn University Bangkok, Thailand Mobile Phone: 089-5993490 E-mail: [email protected], MSN: [email protected] Twitter: @wongyos

Transcript of SysProg-Tutor 02 Introduction to Unix Operating System

Page 1: SysProg-Tutor 02 Introduction to Unix Operating System

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Introduction to UNIX Operating System

Tutor Session II:

Wongyos Keardsri (P’Bank)Department of Computer EngineeringFaculty of Engineering, Chulalongkorn UniversityBangkok, Thailand

Mobile Phone: 089-5993490E-mail: [email protected], MSN: [email protected]: @wongyos

Page 2: SysProg-Tutor 02 Introduction to Unix Operating System

2

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Tutor Outline

History of UNIXUnix Structure

UNIX ShellUNIX File System

Getting StartedLogging in / ExitingEnvironment Variables

Unix Command Line Structure

System Resource Commands

Directory Navigation and ControlFile Maintenance CommandsDisplay Commands

Special Unix FeaturesText ProcessingOther Useful Commandsvi Editor

Page 3: SysProg-Tutor 02 Introduction to Unix Operating System

3

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

History of UNIX

Unix (officially trademarked as UNIX®) is a computer operating systemIn 1965, Bell Laboratories joins with MIT and General Electric developed the new operating system named MulticsIn 1969, Some of the Bell Labs programmersdesigned and implemented the first version of the Unix File System on a PDP-7Given the name UNIX by Brian Kernighan

Page 4: SysProg-Tutor 02 Introduction to Unix Operating System

4

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

History of UNIX

UNIX developer team (Bell Labs programmers)Ken ThompsonDennis RitchieRudd CanadayDoug McIlroy

Languages written in UNIXBCPL (Multics)B (Unix) Unix version 1.0C (Unix) After Unix version 2.0

(Cont)

Page 5: SysProg-Tutor 02 Introduction to Unix Operating System

5

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Unix Structure

Unix featuresMulti-user and time-sharingMulti-taskingMulti-level (Hierarchical file system)Multi-processorSimple user interfaceSimple utilities

Free Unix-like operating systemsLinuxBSD

Page 6: SysProg-Tutor 02 Introduction to Unix Operating System

6

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Unix Structure

Several hundred utility programsUser commandsThe Unix system kernel and The shellsSystem callsC library functionsDevice & network interfaceFile formatGames and demosSystem maintenance

(Cont)

Page 7: SysProg-Tutor 02 Introduction to Unix Operating System

7

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

System Calls

Kernel - controls hardware- handles input/output- manages file system- manages memory- schedules processes

Shell - accepts and executes user commands [command interpreter]

Hardware

Programs=Commands

Unix System Structure

(Cont)

Unix Structure

Page 8: SysProg-Tutor 02 Introduction to Unix Operating System

8

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

UNIX shellBourne shell (sh) -- Written by Steve Bourne, while at Bell Labs. First distributed with Version 7 Unix.Bourne-Again shell (bash) -- Written as part of the GNU project to provide a superset of Bourne Shell functionality. Korn shell (ksh) -- Written by David Korn, while at Bell Labs. Z shell (zsh) -- considered as the most complete shell C shell (csh) -- Written by Bill Joy, while at the University of California, Berkeley. First distributed with BSD, circa 1979.

(Cont)

Unix Structure

Page 9: SysProg-Tutor 02 Introduction to Unix Operating System

9

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

(Cont)

Unix Structure

Unix File System

/

bin etc lib usr homedev tmp

sh date ls passwd group libc.so

bin

tty nullbank u50skp

bin manlocal

Root

hello.c cpcuHierarchical file system

Page 10: SysProg-Tutor 02 Introduction to Unix Operating System

10

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Unix Structure

Directory: etc, usr, home, bank, cpcuFile: libc.so, hello.cPath: /home/bank/cpcuTwo special directory entries

. the current directory

.. the parent of the current directory

(Cont)

Page 11: SysProg-Tutor 02 Introduction to Unix Operating System

11

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Getting Started

Logging inAfter connecting with a Unix system, a user is prompted for a login username, then a password.Unix is case sensitive should be typed exactly as issued

Example

login: rootpassword:

Page 12: SysProg-Tutor 02 Introduction to Unix Operating System

12

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Getting Started

Exiting^D indicates end of data stream; can log a

user off.^C interruptlogout leave the systemexit leave the shell

Terminal Typevt100 Most computerssun Sun workstationxterms or xterm X-Terminal

(Cont)

Page 13: SysProg-Tutor 02 Introduction to Unix Operating System

13

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Getting Started

Environment VariablesDISPLAY The graphical display to use, e.g.nyssa:0.0EDITOR The path to your default editor, e.g.

/usr/bin/viGROUP Your login group, e.g. staffHOME Path to your home directory, e.g.

/home/frankHOST The hostname of your system, e.g. nyssaLOGNAME The name you login with, e.g. frankPATH Paths to be searched for commands,

e.g. /usr/bin:/usr/ucb:/usr/local/bin

(Cont)

Page 14: SysProg-Tutor 02 Introduction to Unix Operating System

14

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Getting Started

Environment Variables (Cont)PS1 The primary prompt string, Bourne

shell only (defaults $)PS2 The secondary prompt string, Bourne

shell only (defaults >)SHELL The login shell you’re using, e.g.

/usr/bin/cshTERM Your terminal type, e.g. xtermUSER Your username, e.g. frank

(Cont)

Page 15: SysProg-Tutor 02 Introduction to Unix Operating System

15

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Getting Started

Set a global environment variableC shell:% setenv NAME value

Bourne shell:$ NAME=value; export NAME

List global environmental variables with the envor printenv commands.Unset with the unsetenv (C shell) or unset(Bourne shell) commands.

(Cont)

Page 16: SysProg-Tutor 02 Introduction to Unix Operating System

16

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Set a local shell variableC shell:

% set name=valueBourne shell:

$ name=valueDisplay environment variables

echo $NAME

Getting Started(Cont)

Change the shell$ /bin/sh$ /bin/csh$ /bin/ksh$ /usr/pkg/bin/bash

Page 17: SysProg-Tutor 02 Introduction to Unix Operating System

17

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

C Shell History Substitutionhistory recall previous commands!! repeat last command!n repeat command number n!-n repeat command n from last!str repeat command that started with

string str!?str? repeat command with str anywhere on

the line!?str?% select the first argument that had str in it

Getting Started(Cont)

Page 18: SysProg-Tutor 02 Introduction to Unix Operating System

18

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Control Key^S pause display^Q restart display^C cancel operation^U cancel line^D signal end of file^V treat following control character as

normal character

Getting Started(Cont)

Page 19: SysProg-Tutor 02 Introduction to Unix Operating System

19

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Unix Command Line Structure

Unix Command Line Structure

Unix manual / Help$ man command_name$ man -k keyword$ man -k “key words”

$ command [options] [arguments]

Page 20: SysProg-Tutor 02 Introduction to Unix Operating System

20

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

System Resource Commandsdate report the current date and timecal report the calendardf report the summary of disk blocks and inodes

free and in usedu report amount of disk space in usehostname/uname display or set (super-user only)

the name of the current machinekill send a signal to the process with the process

id number (pid#) or job control number (%n). The default signal is to kill the process.

Unix Command Line Structure(Cont)

Page 21: SysProg-Tutor 02 Introduction to Unix Operating System

21

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

System Resource Commands (Cont)passwd set or change your passwordps show status of active processesscript saves everything that appears on the

screen to file until exit is executedstty set or display terminal control optionswhereis report the binary, source, and man

page locations for the command named

which reports the path to the command or the shell alias in use

Unix Command Line Structure(Cont)

Page 22: SysProg-Tutor 02 Introduction to Unix Operating System

22

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

System Resource Commands (Cont)who or w report who is logged in and what

processes are runningwhoami report current user namefinger report who is logged inifconfig report network interfacessu switch userwrite send a message to another user

Unix Command Line Structure(Cont)

Page 23: SysProg-Tutor 02 Introduction to Unix Operating System

23

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Directory Navigation and Controlcd [directory]change directoryls [options] [directory or file]list directory contents or file permissionsmkdir [options] directorymake a directorypwdprint working (current) directoryrmdir [options] directoryremove a directory

Unix Command Line Structure(Cont)

Page 24: SysProg-Tutor 02 Introduction to Unix Operating System

24

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

List file and directory contents

drwxr-xr-x 3 root wheel 512 Jul 4 23:48 2110101drwxr-xr-x 4 root wheel 512 Aug 28 2005 2110313drwxr-xr-x 3 root wheel 512 Aug 28 2005 Baka-rw-r--r-- 1 root wheel 905 Jul 9 02:09 file-rw-r--r-- 1 root wheel 105 Jul 9 00:05 hello.java

Permission mode

Number of link

Owner FilenameSize Modified/Createddate

Group

Type field

Unix Command Line Structure(Cont)

Page 25: SysProg-Tutor 02 Introduction to Unix Operating System

25

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

PermissionType field (first character)Access permissions (characters 2-10):

• First 3 : user/owner• Second 3: group• Last 3: others

Permission mode• d directory• r read permission• w write permission• x execute permission• - no permission

Unix Command Line Structure(Cont)

drwxr-xr-x

Page 26: SysProg-Tutor 02 Introduction to Unix Operating System

26

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Permission number7 111 rwx6 110 rw-5 101 r-x4 100 r--3 011 -wx2 010 -w-1 001 --x0 000 ---

Unix Command Line Structure(Cont)

Page 27: SysProg-Tutor 02 Introduction to Unix Operating System

27

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

File Maintenance Commandschgrp [options] group filechange the group of the filechmod [options] filechange file or directory access permissionschown [options] owner filechange the ownership of a file; can only be done by the superusercp [options] file1 file2copy file1 into file2; file2 shouldn't already exist. This command creates or overwrites file2.

Unix Command Line Structure(Cont)

Page 28: SysProg-Tutor 02 Introduction to Unix Operating System

28

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

File Maintenance Commands (Cont)mv [options] file1 file2move file1 into file2rm [options] fileremove (delete) a file or directory (-r recursively deletes the directory and its contents) (-i prompts before removing files)

Unix Command Line Structure(Cont)

Page 29: SysProg-Tutor 02 Introduction to Unix Operating System

29

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Display Commandscat [options] fileconcatenate (list) a fileecho [text string]echo the text string to stdouthead [-number] filedisplay the first 10 (or number of) lines of a filemore (or less or pg ) [options] filepage through a text filetail [options] filedisplay the last few lines (or parts) of a file

Unix Command Line Structure(Cont)

Page 30: SysProg-Tutor 02 Introduction to Unix Operating System

30

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Special Unix Features

I/O redirection and pipingOutput redirection to a fileInput redirection from a filePipingOutput of one command becomes the input of a subsequent command

There are 3 standard file descriptors:stdin 0 Standard input to the programstdout 1 Standard output from the programstderr 2 Standard error output from the program

Page 31: SysProg-Tutor 02 Introduction to Unix Operating System

31

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

File Redirection> redirect standard output to file

command > outputfile>> append standard output to file

command >> outputfile< input redirection from file

command < inputfile| pipe output to another command

command1 | command2

Special Unix Features(Cont)

Page 32: SysProg-Tutor 02 Introduction to Unix Operating System

32

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

File Redirection (csh)>& file redirect stdout and stderr to file>>& file append stdout and stderr to file|& command pipe stdout and stderr to

command

To redirect stdout and stderr to separate files:% (command > outfile) >& errfile

Special Unix Features(Cont)

Page 33: SysProg-Tutor 02 Introduction to Unix Operating System

33

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

File Redirection (sh)2> file redirect stderr to file> file 2>&1 direct both stdout and stderr to file>> file 2>&1 append both stdout and stderr to file2>&1|command pipe stdout and stderr to command

To redirect stdout and stderr to two separate files:$command > outfile 2> errfile

To discard stderr:$ command 2> /dev/null

(/dev/null is a black hole for bits)

Special Unix Features(Cont)

Page 34: SysProg-Tutor 02 Introduction to Unix Operating System

34

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Wild Cards? match any single character* match any string of zero or more characters[abc] match anyone of the enclosed characters[a-s] match any character in the range a through s[!def] (sh) match any characters not one of[^def] (csh) the enclosed characters

Special Unix Features(Cont)

Page 35: SysProg-Tutor 02 Introduction to Unix Operating System

35

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Control Over Command ExecutionBackground (non-interactive)command &

Sequentialcommand1 ; command2

Subprocess (run as an atomic unit)(command)

Special Unix Features(Cont)

Page 36: SysProg-Tutor 02 Introduction to Unix Operating System

36

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Control Over Command Execution (Cont)Conditional (program exit status determines success or failure)

• OR command1 || command2

– (run command2 if command1 fails)• AND command1 && command2

– (run command2 if command1 succeeds)

Special Unix Features(Cont)

Page 37: SysProg-Tutor 02 Introduction to Unix Operating System

37

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Text Processing

FilterA filter (in Unix) is a program that reads some input,performs a simple translation on it, and writes some output

Examples of Unix filtersgrepsortwcawkvised

Page 38: SysProg-Tutor 02 Introduction to Unix Operating System

38

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Text Processing Commandsawk [options] filescan for patterns in a file and process the resultsgrep [options] 'search string' filesearch the argument (in this case probably a file) for all occurrences of the search string, and list them.sed [options] filestream editor for editing files from a script or from the command line

Text Processing(Cont)

Page 39: SysProg-Tutor 02 Introduction to Unix Operating System

39

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Text Processing

Regular expressionsRegular expressions come in three different forms

• Anchor tie the pattern to a location on the line• Character sets match a single character at a single position• Modifiers specify how many times to repeat the previous

expression

Regular expressions can be combined to form longer regular expressions

(Cont)

Page 40: SysProg-Tutor 02 Introduction to Unix Operating System

40

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Regular expressions (Cont). match any single character except newline* match zero or more instances of single

expression preceding it[abc] match any of the characters enclosed[a-d] match any character in enclosed range[^abc]match any character NOT in the enclosed set^exp regular expression must start at the beginning

of the line

Text Processing(Cont)

Page 41: SysProg-Tutor 02 Introduction to Unix Operating System

41

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Regular expressions (Cont)exp$ regular expression must end at the beginning

of the line\ treat the next character literally

Text Processing(Cont)

Page 42: SysProg-Tutor 02 Introduction to Unix Operating System

42

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Other Useful Commands

Working With Filescmp [options] file1 file2compare two files and list where differences occur (text or binary files)cut [options] [file(s)]cut specified field(s)/character(s) from lines in file(s)diff [options] file1 file2compare the two files and display the differences (text files only)file [options] fileclassify the file type

Page 43: SysProg-Tutor 02 Introduction to Unix Operating System

43

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Other Useful Commands

Working With Files (Cont)find directory [options] [actions]find files matching a type or patternln [options] source_filetarget link the source_file to the targetpaste [options] filepaste field(s) onto the lines in filesort [options] filesort the lines of the file according to the options chosen

(Cont)

Page 44: SysProg-Tutor 02 Introduction to Unix Operating System

44

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Other Useful Commands

Working With Files (Cont)strings [options] filereport any sequence of 4 or more printable characters ending in <NL> or <NULL>. Usually used to search binary files for ASCII strings.tee [options] filecopy stdout to one or more filestouch [options] [date] filecreate an empty file, or update the access time of an existing file

(Cont)

Page 45: SysProg-Tutor 02 Introduction to Unix Operating System

45

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Other Useful Commands

Working With Files (Cont)tr [options] string1 string2translate the characters in string1 from stdin into those in string2 in stdoutuniq [options] fileremove repeated lines in a filewc [options] [file(s)]display word (or character or line) count for file(s)

(Cont)

Page 46: SysProg-Tutor 02 Introduction to Unix Operating System

46

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Other Useful Commands

File Archiving, Compression and Conversioncompress/uncompress/zcat [options] file[.Z]compress or uncompress a file. Compressed files are stored with a .Z ending.gzip/gunzip/zcat [options] file[.gz]compress or uncompress a file. Compressed files are stored with a .gz ending

(Cont)

Page 47: SysProg-Tutor 02 Introduction to Unix Operating System

47

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Other Useful Commands

File Archiving, Compression and Conversiontar key[options] [file(s)]tape archiver--refer to man pages for details on creating, listing, and retrieving from archive files. Tar files can be stored on tape or disk.

(Cont)

Page 48: SysProg-Tutor 02 Introduction to Unix Operating System

48

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Other Useful Commands

Remote Connectionsfinger [options] user[@hostname]report information about users on local and remote machinesftp [options] hosttransfer file(s) using file transfer protocolrcp [options] hostnameremotely copy files from this machine to another machine

(Cont)

Page 49: SysProg-Tutor 02 Introduction to Unix Operating System

49

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Other Useful Commands

Remote Connectionsrlogin [options] hostnamelogin remotely to another machinersh [options] hostnameremote shell to run on another machinetelnet [host [port]]communicate with another host using telnet protocol

(Cont)

Page 50: SysProg-Tutor 02 Introduction to Unix Operating System

50

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

UNIX Editorsviemacspico

Vi is a modal editor (2 modes)Insert mode <i> key

• Text insertion

Command mode <escape> key• All commands

Page 51: SysProg-Tutor 02 Introduction to Unix Operating System

51

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

Cursor Movement Commands(n) indicates a number, and is optional(n)h left (n) space(s)(n)j down (n) space(s)(n)k up (n) space(s)(n)l right (n) space(s)^F forward one screen^B back one screen^D down half screen^U up half screen

vi Quick Reference Guide

Page 52: SysProg-Tutor 02 Introduction to Unix Operating System

52

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

Cursor Movement Commands (Cont)H beginning of top line of screenM beginning of middle line of screenL beginning of last line of screenG beginning of last line of file(n)G move to beginning of line (n)0 (zero) beginning of line$ end of line(n)w forward (n) word(s)

vi Quick Reference Guide (Cont)

Page 53: SysProg-Tutor 02 Introduction to Unix Operating System

53

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

Cursor Movement Commands (Cont)(n)b back (n) word(s)e end of word

Inserting Texti insert text before the cursora append text after the cursor (does not

overwrite other text)I insert text at the beginning of the lineA append text to the end of the liner replace the character under the cursor with

the next character typed

vi Quick Reference Guide (Cont)

Page 54: SysProg-Tutor 02 Introduction to Unix Operating System

54

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

Inserting Text (Cont)R Overwrite characters until the end of the line

(or until escape is pressed to change command)

o (alpha o) open new line after the current line to type text

O (alpha O) open new line before the current line to type text

vi Quick Reference Guide (Cont)

Page 55: SysProg-Tutor 02 Introduction to Unix Operating System

55

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

Deleting Textdd deletes current line(n)dd deletes (n) line(s)(n)dw deletes (n) word(s)D deletes from cursor to end of linex deletes current character(n)x deletes (n) character(s)X deletes previous character

vi Quick Reference Guide (Cont)

Page 56: SysProg-Tutor 02 Introduction to Unix Operating System

56

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

Change Commands(n)cc changes (n) characters on line(s) until end of

the line (or until escape is pressed)cw changes characters of word until end of the

word (or until escape is pressed)(n)cw changes characters of the next (n) wordsc$ changes text to the end of the linect(x) changes text to the letter (x)

vi Quick Reference Guide (Cont)

Page 57: SysProg-Tutor 02 Introduction to Unix Operating System

57

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

Change Commands (Cont)C changes remaining text on the current line

(until stopped by escape key)~ changes the case of the current characterJ joins the current line and the next lineu undo the last command just done on this line. repeats last changes substitutes text for current characterS substitutes text for current line

vi Quick Reference Guide (Cont)

Page 58: SysProg-Tutor 02 Introduction to Unix Operating System

58

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

Change Commands (Cont):s substitutes new word(s) for old:< line nos effected> s/old/new/g& repeats last substitution (:s) command.(n)yy yanks (n) lines to buffery(n)w yanks (n) words to bufferp puts yanked or deleted text after cursorP puts yanked or deleted text before cursor

vi Quick Reference Guide (Cont)

Page 59: SysProg-Tutor 02 Introduction to Unix Operating System

59

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

File Manipulation:w(file) writes changes to file (default is

current file):wq writes changes to current file and quits

edit session:w!(file) overwrites file (default is current file):q quits edit session w/no changes made:q! quits edit session and discards changes:n edits next file in argument list

vi Quick Reference Guide (Cont)

Page 60: SysProg-Tutor 02 Introduction to Unix Operating System

60

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

Vi Editor

File Manipulation (Cont):f(name) changes name of current file to (name):r(file) reads contents of file into current edit

at the current cursor position (insert a file)

:!(command) shell escape:r!(command) inserts result of shell command at

cursor positionZZ write changes to current file and exit

vi Quick Reference Guide (Cont)

Page 61: SysProg-Tutor 02 Introduction to Unix Operating System

61

Chulalongkorn University

2110313 Operating Systems and System Programs (1/2010)

Tutor Session - 2

End

Question ?

… Answer