1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu hướng dẫn Thực hành UNIX

112 248 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 112
Dung lượng 752,3 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

z Có thể login trực tiếp hay dùng chương trình telnet để kết nối đến server z Mỗi người dùng phải có một tài khoản account để sử dụng hệ thống.. -5-Log on vào hệ thống z Trực tiếp: tại

Trang 1

Tài liệu hướng dẫn

Dùng trình soạn thảo vi (visual intepreter)

– Dùng dịch vụ truyền file FTP (File Transfer Protocol)

z Lập trình shell

– Chương trình shell đơn giản

Một số cấu trúc điều khiển: if, while, for

Trang 2

-3-Giới thiệu

z Thực hành trên hệ điều hành Linux hoặc Solaris.

z Có thể login trực tiếp hay dùng chương trình telnet để kết

nối đến server

z Mỗi người dùng phải có một tài khoản (account) để sử

dụng hệ thống Mỗi tài khoản gồm có:

– Tên sử dụng (username): duy nhất trong mỗi hệ thống

– Mật khẩu (password): (ít nhất 6 ký tự, bao gồm các chữ cái, ký sốhoặc ký tự đặc biệt)

– Thư mục làm việc (home directory): nơi lưu trữ dữ liệu và có toàn quyền sử dụng

Trang 3

-5-Log on vào hệ thống

z Trực tiếp: tại dấu nhấc của hệ thống, gõ username và password

z Kết nối đến server từ qua chương trình telnet trên các máy Windows:

(Start menuÆRunÆType “telnet”ÆClick OK button)

Log on vào hệ thống

z Ví dụ, kết nối đến máy có địa chỉ IP là 172.28.11.192

Trang 4

Last login: Sun Aug 12 07:05:01 from thuan.dit.hcmut.

Sun Microsystems Inc SunOS 5.7 Generic October 1998

$_

(Lưu ý: password không hiển thị khi gõ)

Log on vào hệ thống

Trang 5

-9-Logging out

z Khi kết thúc công việc, cần phải thoát khỏi hệ

thống: Gõ: exit hoặc đóng cửa sổ telnet

z Tất cả các quá trình đang chạy đều kết thúc

(ngoại trừ các quá trình được thực hiện với lệnh

nohup)

Một số chú ý

z Hệ thống UNIX phân biệt chữ hoa và chữ thường

z Nếu log on từ các máy Windows, cần tắt các

chương trình gõ tiếng Việt (Vietware, Vietkey …)

z Đề xoá ký tự trước đó, có thể dùng phím

Backspace trong một số trường hợp không dùng

phím Delete được.

Trang 6

-11-Các lệnh cơ bản

z Một lệnh UNIX cơ bản có các thành phần:

<command name> -<options> <arguments>

– Command name: tên lệnh, cũng chính là file thực thi tương ứng

– Options:chọn lựa chức năng, có thể có nhiều thành phần

– Arguments: thông số cho lệnh

z Mỗi người dùng có một danh định duy nhất trong hệ thống Đối với

người dùng, danh định chính là username duy nhất trong hệ thống

z Đối với hệ thống, một danh định người dùng bao gồm:

– UID (user identifier): danh định phân biệt giữa các người dùng

– GID (group identifier): danh định cho biết nhóm mà người dùng thuộc về

z Lệnh hiển thị UID và GID: id

z Lệnh cho biết danh định: whoami hoặc who am i

Ví dụ:

$ who am i

Trang 7

-13-Thư mục làm việc, thư mục hiện hành

z Mỗi người dùng trong hệ thống đều có một thư mục làm

việc và người đó có toàn quyền trên đó

z Hiển thị thư mục làm việc:

Dùng lệnhechođể hiển thị biến môi trườngHOME:

Trang 8

-15-UNIX password

Mac II

Unix

Thay đổi mật khẩu

z Lúc đầu, người dùng log on vào hệ thống có thể

không cần mật khẩu Tuy nhiên, người dùng phải thay đổi sau đó (ít nhất 6 ký tự, bao gồm các chữ

cái, ký số hoặc ký tự đặc biệt)

z Ví dụ:

$ passwd

New password:

Trang 9

-17-Để được trợ giúp

z Dùng lệnhmanđể xem trợ giúp cho một lệnh hay một hàm nào đó

z Một phím chức năng trong lệnh man:

-Kết thúc: q -Về trang trước: b -Về trang sau: f

Passwd is used to update a user's authentication token(s).

Làm việc với file hay thư mục

z Cấu trúc hệ thống file

/

srcinclude

ls passwd hosts

.

Trang 10

-19-Một số thư mục chính trong UNIX

‰ /: thưmục gốc

‰ /etc: thư mục chứa cấu hình hệ thống

‰ /dev: thư mục chứa các file tương ứng với các thiết bị terminal, disk drives, …

‰ /tmp: thư mục tạm (mọi người đều có toàn quyền trong thư mục này)

‰ /home: thư mục chứa các thư mục làm việc của người dùng

‰ /bin: thư mục chứa các file thực thi

Các kiểu file

z Directory file : l à file đặc biệt, chứa thông tin của các file khác

(Một thư mục thực chất là một file)

z Ordinary file: file thông thường, chương trình hoặc dữ liệu

z Special file : file đặc biệt, tương ứng với các thiết bị

(Device abstraction)

Trang 11

-21-Thay đổi thư mục

z Dùng lệnh cd:

$cd <pathname>

với đường dẫn pathname cho biết thư mục cần chuyển

tới Đường dẫn có thể tương đối (tính từ thư mục hiện

hành) hoặc tuyệt đối (tính từ thư mục gốc)

Trang 12

‰ -a liệt kê các file ẩn

‰ -d xem tên của thư mục hiện hành

‰ -F liệt kê các file và cho biết các kiểu của file qua ký hiệu ở cuối

‰ Không có ký hiệu gì: file bình thường

‰ '/‘ directories

‰ “@” linked file

‰ -i cho biết số của inode của file

‰ -l liệt kê đầy đủ các thuộc tính của file

Trang 13

drwxr-xr-x 15 hqthuan other 512 Aug 10 2000 floppy

-rw-r r 1 hqthuan other 58984 Mar 9 2000 archive.tar

z ông tin của một file:

drwxr-xr-x 15 hqthuan staff 512 Aug 10 2000 floppy

Permissions O wner Date of last

.desksetdefaults profile fork.c

(Các file ẩn có tên bắt đều bằng dấu chấm, ví dụ: .login, rhosts, login)

Trang 14

1.txt case.sh

Dùng wildcards

z Wildcards là các ký tự dùng để thay thế cho các mẫu tương ứng với

tên file hay thư mục

Trang 15

-29-Các lệnh trên file và thư mục

z Tạo thư mục: mkdir

z Xoá file hay thư mục: rm

Trang 17

-33-Copy

z Copy files:

cp [-option] source_file destination_file

cp [-option] source_files destination_directory

z Ví dụ:

Trang 18

– Sau khi nhập nội dung, gõ <Enter> để xuống dòng.

Ấn Ctrl-d để ghi nội dung soan thảo vào file và kết

thúc thao tác.

z Ví dụ:

$cat > test.txt

Trang 19

Dấu nhắc More (nn%) xuất hiện bên dưới màn hình.

Có thề dùng cách phím điều khiển trong lệnh more:

z space bar Hiển thị trang kế.

z <RETURN> Hiển thị dòng kế.

z q Thoát khỏi lệnh more.

z b Về trang trước.

z h Trợ giúp.

Hiển thị nội dung file

z H i ển thi n dòng đầu tiên c ủa một text file, dùng

lệnh head:

head -n filename

(nếu n=10, có thể bỏ option đi: head filename)

z H i ển thi n dòng sau c ùng c ủa một text file, dùng

lệnh last:

last -n filename

(nếu n=10, có thể bỏ option đi: last filename)

Trang 20

-39-Tìm kiếm một file

z Tìm kiếm một file trong hệ thống file (file system) ,

dùng lệnh find:

find pathname -name filename -print

(Có thề dùng wildcard đặt trong dấu nháy kép)

z Ví dụ:

Tìm kiếm trong nội dung của file

z Tìm một chuỗi ký tự trong một text file bằng lệnh

grep:

grep pattern filename(s)

pattern: chuỗi ký tự cần tìm kiếm Nếu chuỗi có ký tự

đặc biệt thì phải đặt trong dấu nháy đơn.

z Ví dụ:

Trang 21

-41-Các quyền trên file và thư mục

z Hệ thống UNIX bảo vệ các file và thư mục thông qua các quyền thiết lập trên đó.

user group other

z Có thể xem Quyền truy cập bằng lệnh ls -l:

Ví dụ:

$ls -l

rwxr-xr-x

Với ví dụ trên:

Chủ sở hữu có quyền r (đọc), w (ghi), và x (thực thi).

Các thành viên cùng nhóm với chủ sở hữu có quyền r và x.

Trang 22

-43-Thay đổi các quyền trên file và thư mục

z Dùng lệnh chmod

chmod access_mode file(s)

– access - quyền truy cập

– file(s) - một hoặc nhiều file

z Quyền truy cập có thể dùng theo 2 dạng:

Dạng ký hiệu (symbolic): [ugo][+ - =][rwx]

Trang 24

-47-Thay đổi quyền mặc định

z Khi một file được tạo ra, nó có một quyền được định

nghĩa trước Người dùng có thể thay giá trị mặc định này bằng cách thay đổi mặt nạ quyền (file-creation mode

Các giá trị của mặt nạ quyền

Octal number Access permissions given

Trang 25

Permission

Trang 26

– Thiết bị xuất chuẩn: màn hình (1)

– Thiết bị báo lỗi chuẩn: màn hình (2)

z Các thiết bị chuẩn này có thể được thay thế bằng các file thông thường.

z Tái định hướng cho lệnh bằng cách dùng các ký hiệu:

< Tái định hướng thiết bị nhập

> Tái định hướng thiết bị xuất

>> Nối vào file được tái định hướng (thay vì tạo mới)

Tái định hướng thiết bị nhập chuẩn

Trang 27

-53-Tái định hướng thiết bị xuất chuẩn

command > output_file

z Ví dụ:

– Tái định hướng cho lệnh ls

$ls –al /usr > /tmp/usrlist

Tái định hướng xuất và nhập cho lệnh sort:

$sort < /etc/passwd > /tmp/userlist

Tái định hướng xuất cho lệnh cat:

$cat file1 file2 > file3

Nối thiết bị xuất chuẩn vào file

Trang 28

-55-Kết các lệnh với nhau

z UNIX cho phép kết các lệnh với nhau thông qua các ống (pipe).

z Một pipe có nhiệm vụ nhận dữ liệu xuất từ một lệnh và

đưa vào như dữ liệu nhập cho lệnh kế tiếp theo dạng sau:

command1 | command2 | command3

(Dấu xổ đứng | (vertical bar) dùng để chỉ định cho một pipe)

z Có thể dùng pipe kết nối các lệnh với nhau thực hiện các thao tác phức tạp hơn.

Ví dụ

– (xem danh sách có sắp xếp các user đang trong hệ thống)

– (đếm số người dùng đang trong hệ thống)

– (liệt kê từng trang nội dung thư mục /etc)

Trang 29

-57-Quản lý các process

z Process ÅÆ chương trình đang thực thi

z Người dùng có thể tương tác với process hoặc theo dõi

trạng thái của chúng.

z Người dùng có thể chạy chương trình theo hai cách:

Mặt tiền (foreground)

Theo dõi các process

z Xem các process trong hệ thống:

Trang 30

-59-Chạy chương trình mặt tiền

z Khi gõ lệnh tương ứng với tên chương trình theo cách

Trang 31

$find /home/mt98 “*.c” -print

find: cannot read /dev/diag

^Z

[1]+ Stopped find / -name *.c -print

$ps

Chạy chương trình mặt hậu

z Thêm dấu & (ampersand) vào cuối dòng lệnh.

z Ví dụ:

$find /usr/man -name *.1 –print > sect1 &

[1] 2548

z Trình thông dịch lệnh tạo ra một process thực hiện

chương trình đồng thời in ra job number ([n]) và

PID (Process IDentifier) của process được tạo ra.

z Trình thông dịch ngay sau đó sẵn sàng nhận lệnh mới.

Trang 32

-63-Quá trình chạy mặt hậu

z Quá trình chạy mặt hậu vẫn xuất ra standard

output là màn hình trong lúc thực thi Æ cần tái

định hướng standard output để tránh mất dữ liệu

xuất.

z Người dùng không thể tương tác với chương trình

qua standard input là bàn phím với chương trình

chạy mặt hậu Æ cần phải tái định hướng

standard input quan file khi chương trình cần

nhập dữ liệu.

Quản lý các quá trình chạy mặt hậu

z Liệt kê các job đang tích cực: dùng lệnh jobs

$jobs -l

[1] + 3584 Running xterm -g 90x55

[2] - 3587 Running xterm -g 90x55

z Đối với các quá trình, có thể:

– Có thể chuyển từ chạy mặt tiền sang mặt hậu và ngược lại

– Kết thúc một quá trình (~ một job)

Trang 34

-67-Kết thúc quá trình

z Dùng lệnh kill

kill [-signal] process_identifier (PID)

z Cần dùng lệnh ps trước để biết PID của quá trình.

z Có thể dùng lệnh đơn giản như sau:

kill -9 process_identifier

Các tiện ích

z Trình soạn thảo vi (visual editor)

z Dịch vụ truyền file FTP (file transfer

protocol)

Trang 35

Chế độ lệnh bắt đầu khi vào chương trình vi

Có thể thực hiện các thao tác di chuyển, thao

tác trên các đối tượng text

Muốn chuyển sang chế độ lệnh, chỉ cần ấn Esc.

z Chế độ chèn:

– Cho phép nhập văn bản vào buffer Có nhiều

lệnh để vào chế độ chèn như: a, A, i, I, o, O

Trang 36

‘test.txt’ [New file]

Các thao tác đơn giản

z Ấn ‘a’ (append) để vào chế độ chèn.

Trang 38

-75-Tìm kiếm trên văn bản

Trang 39

-77-Các thao tác khác

Ghi ra file có tên ‘ filename‘ :w filename

Thoát vi (khi nội dung file chưa đổi) :q

Thoát và không ghi :q!

<ESC>

Trang 40

Mac II

WIN UNIX

Upload file

Download fileLocal machine Remote machine

Kết nối vào FTP server (UNIX)

z Mở chương trình MS-Prompt

z Chuyển đến thư mục chứa file cần upload

z Chạy chương trình FTP kết nối đến server, cung cấp

username và password trước khi truyền file:

ftp <server_name or

server_IPaddress>

z Sau đó có thể thực hiện một số lệnh khác như: cd, lcd, put,

mput, get, mget, del, …

Trang 41

220 Linux FTP Server ready.

User (172.28.11.121:(none)): user123

331 Password required for user123

Password:

530 User user123 logged in

Thay đổi thư mục

z Khi logon vào thành công, thư mục mặc định là home

directory của người dùng trên UNIX server.

z Có hai trường hợp chuyển thư mục:

Chuyển thư mục trên server: dùng lệnh cd.

Chuyển thư mục trên máy cục bộ của mình: dùng lênh lcd.

Trang 42

-83-Upload files (đưa file lên server)

z Truyền một file từ máy cục bộ lên server:

Download files (lấy file từ server)

z Lấy một file từ server về:

Trang 43

-85-Một số lệnh khác

z Logon trở lại với danh nghĩa khác (dùng lệnh này khi

muốn chuyển sang quyền khác hay để logon lại khi gõ

password sai): dùng lệnh user sau đó nhập lại password

tương ứng

user user_name

z Đóng kết nối đến FTP server: dùng lệnh close command

z Kết nối đến FTP (khi chưa có kết nối hoặc đã đóng kết

nối): dùng lệnh open

open hostname/ip_address

z Thoát khỏi chương trình FTP: dùng lệnh quit hoặc bye

Shell

z Mỗi khi logon vào một server UNIX, người dùng được

đặt vào một chương trình gọi là shell Chương trình này

thể hiện qua dấu nhắc bên trái màn hình và cho phép

người dùng nhập lệnh để làm việc cũng như nhận các

kết quả từ chương trình.

z Shell là một trình thông dịch lệnh (command

interpreter): nhận lệnh từ người dùng và truyền cho hệ điều hành xử lý rồi hiển thị kết quả lên màn hình.

z Có nhiều loại shell trên UNIX nhưng phổ biến nhất là:

Bourne shell (sh), C shell (csh), Korn shell (ksh) và

Bourne Again SHell (bash - chủ yếu trên Linux)

Trang 44

-87-Lập trình shell

mình và một file gọi là shell script - để xử lý nhiều

công việc phức tạo hiệu quả và nhanh chóng hơn

(Có thể xem như batch file của DOS/Windows).

có quyền thực thi được (executable).

có cấu trúc, nhưng vẫn có các thành phần trong

chương trình như: biến, cấu trúc điều khiển chương

trình

Shell scripts đơn giản

z Dùng trình soạn thảo (vi, cat, …) để tạo shell script đơn

giản.

$cat > script_name

^_D

z Cho phép thực thi được shell script:

$chmod u+rwx script_name

z Thực thi shell script:

Trang 45

echo "Your username is: `whoami`"

echo "Your current directory is:"

pwd

^_D

$chmod u=rwx display

$./display

Truyền đối số trong shell script

z Shell script thực thi như một lệnh bình thường trong

UNIX và có thể có các đối số đi kèm.

z Các đối số truyền cho shell script có thể tham khảo

ngay trong chương trình shell qua các ký hiệu $0

through to $9.

command <arg1> <arg2> …

Trang 46

echo "Welcome to UNIX $name2 $name1”

echo Input 2 number

read x

Trang 47

Ví dụ

z Kiểm tra một user đang có mặt trong hệ thống hay không:

$cat > checkuser

if who | grep -s $1 > /dev/null

then echo $1 is logged in

else echo $1 not available

Trang 48

echo “Enter data”

cat > $1 fi

^_D

$chmod 755 edit

$edit test.txt

Kiểm tra trên file và biến

z Có thể dùng lệnh test để kiểm tra biểu thức điều kiện

echo "File is not exist"

Trang 49

ls -al $filename else

echo “File does not exist”

continue fi

done

Trang 50

Liệt kê nội dung các thư mục

/opt and /usr :

for dir in /bin /usr

cat $file fi

done

Tài liệu tham khảo

z [1] Duong Tuan Anh, UNIX fundamentals.

z [2] Computing Services - University of Edinburgh, UNIX help version 1.3

(ftp://ftp.ed.ac.uk/pub/unixhelp/UNIXhelp1.3.tar.Z).

z [3] Ben Smith, UNIX Step-by-step, Hayden Books, 1990.

Trang 51

101

-Phần lập trình

Nội dung

z Phần 1 - Quá trình và các thao tác trên quá trình

z Phần 2 - Trao đổi thông tin giữa các quá trình

Trang 52

Sơ lược về UNIX

z Ra đời ở phòng thí nghiệm Bell, 1970

Trang 54

-107-Kiến trúc

(the users)Shell and commandsCompilers & InterpretersSystem libraries

CPU schedulingPage replacementDemand pagingVirtual memory

IPC

Scheduler Memory Management

Device Driver

User level

Trang 56

Danh định của process

z Process identifier (PID) duy nhất, tăng dần từ 0

z Một số PID đặc biệt:

z0: scheduler

z1: init

z2: page daemon

Trang 57

– Không tương tác trực tiếp được với người dùng

– Các giao tiếp phải tái định hướng

– Dùng dấu & ở cuối lệnh

– Ví dụ:

z$ls –Rf / > /tmp/dirlog &

z$find / -name data –print > /tmp/result &

Bộ nhớ của process

z Text: chứa chương trình – code thực thi - chứa

các các instruction dành cho CPU thực hiện - chỉ đọc.

z Data: vùng dữ liệu - chứa các biến được khai báo

tĩnh hoặc xin cấp phát trong lúc thực thi.

z Stack: chứa trạng thái và các thông tin liên quan

Trang 58

High address

etext edata end

Initialized data Uninitialized data

Địa chỉ bộ nhớ

z Địa chỉ do process tham khảo chỉ là địa chỉ ảo

z Có thể tham khảo qua các biến toàn cục:

etext: địa chỉ sau vùng text

edata: địa chỉ kết thúc vùng initialized data

end: Địa chỉ bắt đầu vùng heap

z Tham khảo các địa chỉ qua macro:

#define PADDR(x) printf(#x " at %u\n", &x);

Ngày đăng: 21/01/2015, 13:01

TỪ KHÓA LIÊN QUAN

w