Giáo trình Hệ điều hành Linux cơ bản
Trang 1LẬP TRÌNH SHELL
TRÊN LINUX
CHƯƠNG 11
Trang 2Nội dung
1 Tổng quan
2 Trình biên dịch GNU
3 Giới thiệu về shell scripting
4 Những tính năng của shell
5 Cấu hình môi trường đăng nhập
6 Điều khiển Shell
7 Cú pháp ngôn ngữ shell
8 Các ví dụ minh họa
Trang 3này phải thông dịch lại mỗi lần script thực thi.
dịch cho ngôn ngữ C, C++, debugger, công cụ tổ chức project và công cụ quản lý code.
Trang 42 Trình biên dịch GNU C
Linux là một trình biên dịch với ANSI C có đầy đủ hàm Cú pháp để khởi động GCC :
Cú pháp : # gcc [option] [filenames]
có tùy chọn nào thì nó sẽ tạo ra tập tin a.out Nếu muốn đặt một tên khác thì sử dụng tùy chọn -o
Ví dụ : #gcc sample.c
#gcc -o sample sample.c
Trang 53 Giới thiệu về shell scripting.
Shell là một cầu nối giao tiếp giữa người dùng và hệ điều hành Linux
Public Domain Korn Shell (pdksh) và tcsh shell
Mỗi user sẽ được copy một shell để làm việc với kernel
Trang 6Giới thiệu về shell scripting (tt).
Login vào máy tính -> hiển thị dấu shell -> user gợi ý một lệnh -> shell đọc lệnh -> shell tìm kiếm tập tin tương ứng trong cây thư mục, shell tải tiện ích vào bộ nhớ -> shell thực thi tiện ích -> trở lại dấu nhắc
Nếu tập tin không tìm thấy, shell đưa ra một thông báo lỗi và hiển thị lại dấu nhắc
Trang 7Giới thiệu về shell scripting (tt).
Chúng ta có thể thay đổi shell mặc định sang một shell khác với sự trợ giúp của lệnh chsh
Shell scripts : Các tập tin chứa nhiều lệnh
và có thể thực thi được gọi là shell scripts
Trang 84 Những tính năng của shell.
Trang 9 Khi đăng nhập vào hệ thống, người dùng sẽ làm việc trong môi trường do Linux định nghĩa sẵn Tuy nhiên, chúng ta có thể thay đổi các thiết lập này theo ý riêng của mình 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.
Lưu ý : Muốn xác lập những biến môi trường, chúng ta thay đổi trong tập tin bash_profile (nếu chạy shell bash), trong tập tin logon (nếu chạy shell C) và trong tập tin profile (nếu chạy shell Bourne).
5 Cấu hình môi trường đăng nhập.
Trang 10 Điều khiển Shell từ dòng lệnh :
• Chúng ta sử dụng nhiều lệnh trên một dòng cách nhau bằng dấu chấm phẩy (;).
Điều khiển Shell từ tập tin lệnh :
Trang 117 Cú pháp ngôn ngữ shell.
khai báo
<variable name>=<value>
Cách truy cập những giá trị của biến
Variable1=$(variable2)
Trang 12Cú pháp ngôn ngữ shell (tt)
# read variable
• HOME : Chứa thư mục người dùng.
• PATH : Danh sách thư mục tìm kiếm.
Trang 13fi
Trang 15Cú pháp ngôn ngữ shell (tt)
case <var> in
value1) command1 ;;
valueN) commandN ;;
esac
Trang 16Cú pháp ngôn ngữ shell (tt)
Lệnh kiểm tra :
[<blank>expression<blank>]
• Kiểm tra tập tin :
–r file : đúng nếu file tồn tại và có thể đọc.
–w file : đúng nếu file tồn tại và có thể ghi.
–x file : đúng nếu file tồn tại và có thể thực thi –f file : đúng nếu file tồn tại.
–d file : đúng nếu file là một thư mục
–e file : đúng nếu file tồn tại trên đĩa.
Trang 17Cú pháp ngôn ngữ shell (tt)
• So sánh hai số :
n <primitive> m
–eq : giá trị của n và m bằng nhau.
–ne : giá trị của n và m không bằng nhau –gt : giá trị của n lớn hơn m.
–ge : giá trị của n lớn hơn hay bằng m.
Trang 18Cú pháp ngôn ngữ shell (tt)
• So sánh hai chuỗi :
p <primitive> q
!= : kiểm tra hai chuỗi không bằng nhau.
<primitive> p1
–n : đúng nếu chuỗi p1 có chiều dài khác 0.
Trang 20Cú pháp ngôn ngữ shell (tt)
toán hạng phải cách nhau bởi khoảng trắng
Trang 23mà không thực hiện các lệnh còn lại.
Trang 268 Các ví dụ minh họa.
Ví dụ 1 : Kiểm tra user nhập vào có trong hệ thống không? Nếu có,
kiểm tra user có đang login vào hệ thống không? In thông báo.
Trang 27 Ví dụ 2 : Kiểm tra xem hôm nay có phải là thứ bảy không? Nếu
phải, user nhập vào sẽ thông báo “Hôm nay là ngày nghĩ” và thoát Đoạn chương trình :
echo “Hom nay là ngày $1”
Trang 28 Ví dụ 3 : Thực hiện các phép toán +, -, \*, / của 2 số.