1. Trang chủ
  2. » Giáo án - Bài giảng

kỹ thuật điện hệ điều hành process new chương 3sinhvienzone com

6 39 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 126,39 KB

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

Nội dung

HCM, Khoa KH & KTMTBài thực hành 2 Môn: Hệ điều hành Phương-Duy Nguyễn Email: duynguyen@cse.hcmut.edu.vn Ngày 6 tháng 2 năm 2015 1 Lập trình Bash Shell Điều khiển rẽ nhánh Trong môi trườ

Trang 1

Đại học Bách Khoa TP HCM, Khoa KH & KTMT

Bài thực hành 2 Môn: Hệ điều hành

Phương-Duy Nguyễn Email: duynguyen@cse.hcmut.edu.vn

Ngày 6 tháng 2 năm 2015

1 Lập trình Bash Shell

Điều khiển rẽ nhánh Trong môi trường Bash, điều khiển rẽ nhánh cho phép người lập trình quyết định một thao tác được thực thi hay không, quyết định này phụ thuộc vào kết quả đánh giá biểu thức Trong phần này, chúng ta xem xét sử dụng hai lệnh rẽ nhánh có điều kiện là if và case

Lưu ý việc sử dụng các khoảng trắng cần thiết dấu đóng mở ngoặc và trong biểu thức

• Cú pháp rẽ nhánh if

i f [ c o n d i t i o n a l e x p r e s s i o n ]

then

s t a t e m e n t 1

s t a t e m e n t 2

e l s e

s t a t e m e n t 3

s t a t e m e n t 4

f i

Trang 2

• Ví dụ với if sử dụng biến

1 #! / b i n / b a s h

2 T1=" f o o "

3 T2=" bar "

4 i f [ "$T1" = "$T2" ] ; then

5 echo e x p r e s s i o n e v a l u a t e d a s true

6 e l s e

7 echo e x p r e s s i o n e v a l u a t e d a s f a l s e

• Cú pháp rẽ nhánh case

case e x p r e s s i o n in

p a t t e r n 1 )

s t a t e m e n t s ; ;

p a t t e r n 2 )

s t a t e m e n t s ; ;

esac

Vòng lặp for, while và until Các cấu trúc lặp cho phép thực thi một khối các câu lệnh lặp đi lặp lại cho đến khi điều kiện dừng thỏa mãn Có nhiều lệnh lặp khác nhau tương ứng với các điều kiện dừng khác nhau Để dễ hình dung trong phần này, các lệnh lặp được tiếp cận thông qua các minh họa ví dụ thay vì các định nghĩa cú pháp cứng nhắc

• Vòng lặp for

1 #! / b i n / b a s h

2 f o r i in ‘ s e q 1 1 0 ‘ ;

• Vòng lặp while

1 #! / b i n / b a s h

3 while [ $COUNTER − l t 10 ] ; do

4 echo The c o u n t e r i s $COUNTER

Trang 3

• Vòng lặp until

1 #! / b i n / b a s h

3 u n t i l [ $COUNTER − l t 10 ] ; do

Hàm Giống như trong các ngôn ngữ khác, hàm dùng để gom nhóm các đoạn mã nguồn function name ( ) {

commands

}

Ví dụ về việc khai báo và gọi thực thi hàm

1 #! / b i n / b a s h

2 # F i l e name : s c r i p t s h

3 main ( ) {

4 echo H e l l o World !

5 }

Có thể kiểm tra hoạt động của thủ tục main() trong script trên bằng cách gõ lệnh sau:

source script.sh && main

Áp dụng tương tự cho các hàm khác trong script

Lưu ý: Chỉ cần gọi "source script.sh" ở lần chạy đầu tiên

• Tham số: hàm sẽ gán các tham số truyền vào theo thứ tự vị trí là các giá trị $1,

$2, và cứ thế tiếp tục

• Kết quả trả về: không giống hàm ở các ngôn ngữ khác, hàm trong bash script trả về giá trị biểu diễn trạng thái của nó là thực thi thành công hay bị lỗi Để trả

về giá trị cho hàm thực hiện lời gọi, các biến toàn cùng cỏa thể

• Mặc dù hàm trong bash script có lệnh return nhưng giá trị trả về chỉ là số nguyên giống như đối với lệnh exit Giá trị trả về được lưu trong biến $? Biến toàn cục được sử dụng để truyền giá trị từ một hàm trong bash script:

– Gán giá trị biến toàn cục –

1 #! / b i n / b a s h

2 # F i l e name : s c r i p t s h

3 function myfunc ( ) {

Trang 4

5 }

6 myfunc

7 echo $ m y r e s u l t

Thực hành các lệnh đã học: ls, cat, find, grep, file, echo, export

Các lệnh trên có thể được cài đặt như sau:

• Debian: sudo apt-get install ls cat find grep file echo export

• Centos/Red Hat: su root; yum install ls cat find grep file echo export

Tìm hiểu lệnh awk Đây là một trong những lệnh được dùng phổ biến, với khả năng

rút trích thông tin Xem ví dụ sau:

1 echo ab mn i j | awk ’ { p r i n t $1 } ’ ## Output i s " ab "

2 echo ab mn i j | awk ’ { p r i n t $3 } ’ ## Output i s " i j "

Sinh viên tự tìm hiểu thêm về cách dùng awk qua lệnh man

Tìm hiểu lệnh ifconfig Đây là một trong những lệnh được dùng phổ biến để xem

thông tin cấu hình thiết bị mạng của hệ thống Xem ví dụ sau:

1 i f c o n f i g

2 e t h 0 Link encap : E t h e r n e t HWaddr 0 0 : 0D: 5 6 : 0 C: 8D: 1 0

3 i n e t addr : 1 9 2 1 6 8 0 1 B c a s t : 1 9 2 1 6 8 0 2 5 5 Mask : 2 5 5 2 5 5 2 5 5 0

4 i n e t 6 addr : f e 8 0 : : 2 0 d : 5 6 f f : f e 0 c : 8 d10 /64 Scope : Link

5 UP BROADCAST RUNNING MULTICAST MTU: 1 5 0 0 M e t r i c : 1

6 RX p a c k e t s : 2 5 3 3 3 9 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 frame : 0

7 TX p a c k e t s : 4 2 3 7 2 9 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 c a r r i e r : 0

8 c o l l i s i o n s : 0 t x q u e u e l e n : 1 0 0 0

9 RX b y t e s : 3 6 1 5 0 0 8 5 ( 3 4 4 MiB) TX b y t e s : 4 9 6 7 6 8 4 9 9 ( 4 7 3 7 MiB)

10 Base a d d r e s s : 0 x e c c 0 Memory : f e 4 e 0 0 0 0 −f e 5 0 0 0 0 0

11 l o Link encap : L o c a l Loopback

12 i n e t addr : 1 2 7 0 0 1 Mask : 2 5 5 0 0 0

13 i n e t 6 addr : : : 1 / 1 2 8 Scope : Host

14 UP LOOPBACK RUNNING MTU: 1 6 4 3 6 M e t r i c : 1

15 RX p a c k e t s : 1 0 9 3 9 4 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 frame : 0

16 TX p a c k e t s : 1 0 9 3 9 4 e r r o r s : 0 dropped : 0 o v e r r u n s : 0 c a r r i e r : 0

17 c o l l i s i o n s : 0 t x q u e u e l e n : 0

18 RX b y t e s : 1 2 3 7 2 3 8 0 ( 1 1 7 MiB) TX b y t e s : 1 2 3 7 2 3 8 0 ( 1 1 7 MiB) Sinh viên tự tìm hiểu thêm về cách dùng ifconfig qua lệnh man

Trang 5

2 Bài tập

BT1 Dùng kỹ thuật đã học, hiện thực script sysinfo.sh trích xuất các thông tin của

hệ thống về CPU, bộ nhớ, thiết bị mạng Yêu cầu:

• Chương trình được thực thi trên môi trường máy ảo MT13-tinyLinux

• Chương trình được hiện thực và gọi thực thi trong file sysinfo.sh

• Chương trình xuất kết quả ra file output.txt cùng thư mục với file chương trình File kết quả tuân theo định dạng sau

– CPU core(s): xx – Total mem: xxxxxx – IP: xxx.xxx.xxx.xxx – NETMASK: xxx.xxx.xxx.xxx – MTU: xxxx

Trang 6

Revision History

Ngày đăng: 28/01/2020, 22:10