Bài giảng Hệ điều hành mã nguồn mở - Chương 7: Lập trình Shell cơ bản - Lương Minh Huấn

TRƯỜNG ĐẠI HỌC SÀI GÒN  
CHƯƠNG 7: LẬP TRÌNH SHELL CƠ BẢN  
GV: LƯƠNG MINH HUẤN  
NỘI DUNG  
Khái niệm Shell script  
Các loại Shell trong Linux  
. Thông dịch  
.Tham biến trong Shell  
Lệnh kiểm tra điều kiện  
.Cấu trúc điều khiển trong Shell  
I.Phép toán số học trong Shell  
I. KHÁI NIỆM SHELL SCRIPT  
Máy tính chỉ có thể thực hiện các lệnh dạng nhị phân (bit 0, 1),  
ọi là mã nhị phân. Các máy tính muốn thực hiện được chư  
ình thì người dùng phải nạp chương trình dưới dạng các bit 0 v  
Đây là một điều rất phiền toái và cực kỳ khó khăn với con ng  
Để khắc phục nhược điểm này các nhà thiết kế và xây dựng hệ  
ành đều có kèm theo một chương trình đặc biệt.  
hông qua chương trình này người dùng có thể nhập các lệnh  
ạng ngôn ngữ cấp cao (tiếng Anh) để yêu cầu hệ điều hành  
iện một công việc nào đó. Chương trình đặc biệt này được  
à Shell (Bộ thông dịch lệnh).  
I. KHÁI NIỆM SHELL SCRIPT  
Hệ điều hành MS-DOS và Windows thì có môi trường đánh  
command-line, hệ điều hành Unix và Linux có môi trường Sh  
Shell không là một thành phần của hệ điều hành mà nó sử dụn  
điều hành để thực thi lệnh, thao tác file… Hệ điều hành Linu  
thể có nhiều loại Shell khác nhau.  
Shell là nơi cho phép người dùng nhập lệnh (thông thường từ  
phím) và thực thi lệnh. Nhưng thay vì người dùng nhập tuần tự  
câu lệnh và thực thi chúng một cách tuần tự thì người dùng có  
lưu các lệnh này vào một file text và yêu cầu shell thực hiện  
này. Điều này được gọi là shell script  
I. KHÁI NIỆM SHELL SCRIPT  
Những tính năng của shell  
. Xử lý tương tác (Interative processing)  
. Chạy nền (Background)  
. Chuyển hướng (Redirection)  
. Ống dẫn (Pipe)  
. Tập tin lệnh (Shell scripts)  
. Biến shell (Shell variables)  
. Dùng lại các lệnh đã thực hiện (Command history)  
. Cấu trúc lệnh như ngôn ngữ lập trình  
. Tự động hoàn tất tên tập tin hoặc lệnh  
. Bí danh cho lệnh (Command alias)  
I. KHÁI NIỆM SHELL SCRIPT  
dụ:  
/ b i n / bash  
e a r  
o ” Hello $USER”  
o −n “Today is”  
e ”+%A %d %B %Y”  
o −n “There is/are”  
o | wc −l  
o connection on $HOSTNAME  
o ” Calendar ” ; c a l  
i t 0  
II. CÁC LOẠI SHELL TRONG LINUX  
Shell Bourne (sh) do Steven Bourne viết, đó là Shell nguyên  
có mặt trên hầu hết các hệ thống Unix/Linux…Nó rất hữu d  
cho việc lập trình Shell nhưng nó không xử lý tương tác n  
dùng như các Shell khác…  
Bash shell (Bourne Again Shell), thường được biết những  
có đuôi .sh. Đây là phần mở rộng của sh, nó kế thừa những g  
đã có và phát huy những gì sh chưa có…Nó có giao diện lập  
rất mạnh và linh hoạt…Cùng với giao diện lệnh dễ dung…Đâ  
Shell được cài đặt mặc định trên các hệ thống Linux.  
II. CÁC LOẠI SHELL TRONG LINUX  
csh (C Shell), của đại học Berkeley, và tcsh là version cải tiến  
csh. Đáp ứng tương thích cho người dùng…Nó hỗ trợ rất m  
cho những Programmer C…và với đặc tính tự động hoàn th  
dòng lệnh…  
ksh (Korn Shell) của David Korn. Có thể nói đây là một S  
uyệt vời, nó kết hợp tính năng ưu việt của sh và csh…  
Ngoài ra còn có một số Shell khác như: ssh, nfssh, mc  
III. THÔNG DỊCH  
Shell như là một thông dịch lệnh:  
Login vào máy tính -> dấu nhắc shell -> yêu cầu lệnh -> shell  
ệnh -> shell tìm kiếm tải tiện ích vào bộ nhớ ->  
. Tìm thấy -> shell thực thi tiện ích -> trở lại dấu nhắc.  
. Không tìm thấy -> shell báo lỗi và hiển thị dấu nhắc.  
Môi trường làm việc gồm hai thành phần  
. Môi trường terminal.  
. Môi trường shell.  
III. THÔNG DỊCH  
Ta có thể tạo ra một file .sh để bắt đầu thực hiện shell script  
Một bash shell luôn luôn bắt đầu bằng:  
#! /bin/bash hay #! /bin/sh  
Chạy một bash shell  
. Gán quyền execute cho file:  
chmod +x my-script  
. Chạy bằng 1 trong 2 câu lệnh sau :  
./my-script  
bash my-script  
IV. THAM BIẾN TRONG SHELL  
Trong Shell có các loại tham biến:  
. Biến thông thường  
. Biến môi trường  
. Tham số  
IV.1. BIẾN THÔNG THƯỜNG  
Không cần phải khởi tạo biến trước khi sử dụng  
Mặc định, giá trị trong biến luôn luôn là kiểu chuỗi  
Tên biến phân biệt hoa thường.  
Xuất biến ra màn hình, dùng lệnh echo  
Lấy giá trị của biến: echo $test  
Gán giá trị cho biến:  
. test = “wellcome”  
Cho người dùng nhập giá trị vào biến, dùng lệnh read  
. read a  
IV.1. BIẾN THÔNG THƯỜNG  
Phân biệt các VD sau:  
. text=“Monday”  
. echo $text Monday  
. echo “Today is $text” Today is Monday  
. echo ‘Today is $text’ Today is $text  
. echo “Today is \$text” Today is $text  
IV.2 BIẾN MÔI TRƯỜNG  
Các biến được khai báo sẵn và gán giá trị mặc định khi shell đư  
khởi động  
Thường được viết hoa  
Xem danh sách biến môi trường:  
env hay printenv  
Tạo biến môi trường:  
export para_name=para_value  
IV.2 BIẾN MÔI TRƯỜNG  
. HOME : Chứa thư mục người dùng.  
. PATH : Danh sách thư mục tìm kiếm.  
. PS1 : Dấu nhắc hiển thị lệnh.  
IV.3 THAM SỐ  
Những biến được xây dựng sẵn.  
. $#  
. $*  
. $0  
: tổng số tham số.  
: danh sách tham số đầy đủ.  
: tên tập tin lệnh.  
. $1, $2, ..,$9 : giá trị các biến tham số thứ 1, thứ 2, …, thứ 9  
IV.3 THAM SỐ  
bash my-script Hanoi Paris Bordeaux "Ho Chi Minh City"  
. $0=’’my-script’’  
. $1="Hanoi",  
. $2="Paris",  
. $3="Bordeaux",  
. $4="Ho Chi Minh City“  
. $*=’Hanoi Paris Bordeaux "Ho Chi Minh City"’  
. $#=4 số lượng tham số  
V. LỆNH KIỂM TRA ĐIỀU KIỆN  
Lệnh test:  
. Return 0 for true  
. Return 1 for false  
Có thể thay thế lệnh test bằng []  
VD:  
. test –f abc.txt  
[ -f abc.txt ]  
V. LỆNH KIỂM TRA ĐIỀU KIỆN  
. Sử dụng:  
• test -f name : Kiểm tra name có phải là tập tin hay không  
• test -d name : Kiểm tra name có phải là thư mục hay khôn  
• test String1=String2 : so sánh chuỗi  
• test String1 != String2 : so sánh chuỗi  
• test EXPR1 op EXPR2 : so sánh biểu thức với operation  
(op): -eq (equal) -ne (not equal) -lt (lesser than) -le (lesse  
equal) -gt (greater than) -ge (greater or equal).  
V. LỆNH KIỂM TRA ĐIỀU KIỆN  
Tải về để xem bản đầy đủ
pdf 52 trang yennguyen 21300 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành mã nguồn mở - Chương 7: Lập trình Shell cơ bản - Lương Minh Huấn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_he_dieu_hanh_ma_nguon_mo_chuong_7_lap_trinh_shell.pdf