03/24/2017<br />
<br />
LẬP TRÌNH SHELL<br />
<br />
NỘI DUNG<br />
1.<br />
2.<br />
3.<br />
4.<br />
5.<br />
6.<br />
7.<br />
<br />
Giới thiệu<br />
Soạn thảo, cấp quyền, thực thi<br />
Cú pháp ngôn ngữ Shell<br />
Làm việc với chuỗi và văn bản<br />
Mảng<br />
Hàm<br />
Các lệnh nội tại của Shell<br />
<br />
1<br />
<br />
03/24/2017<br />
<br />
1. Giới thiệu<br />
HĐH cung cấp khả năng giao tiếp với kernel<br />
thông qua trình diễn dịch trung gian à Shell<br />
Chức năng giống “command.com” (DOS)<br />
Các lệnh trong và lệnh ngoài<br />
Kết hợp nhiều tiến trình :<br />
$ls –al | more<br />
<br />
Giới thiệu (tt)<br />
Các loại Shell trên Linux<br />
Trình ứng<br />
dụng<br />
<br />
csh<br />
<br />
Kernel<br />
bash<br />
X window<br />
<br />
2<br />
<br />
03/24/2017<br />
<br />
Giới thiệu (tt)<br />
Các loại Shell trên Linux<br />
◦Bourne shell: còn gọi là sh, do Steve Bourne tạo ra<br />
◦C-shell: còn gọi là csh, đi kèm với BSD UNIX<br />
◦Korn shell: còn gọi là ksh, do David Korn tạo ra<br />
◦Bash (Bourne Again Shell): là shell mặc định của<br />
Linux<br />
◦Người dùng có thể chuyển đổi giữa các shell<br />
◦Ví dụ: chuyển từ bash sang csh, gõ lệnh:<br />
◦$ csh<br />
<br />
Giới thiệu (tt)<br />
Sử dụng Shell như ngôn ngữ lập trình: có hai<br />
cách để viết chương trình điều khiển shell<br />
◦Cách 1: Gõ chương trình trực tiếp ngay dòng lệnh<br />
(kể cả các lệnh điều khiển if, for, case, …)<br />
◦Ví dụ:<br />
<br />
$for file in *<br />
>do<br />
> if grep –l ‘main()’ $file<br />
> then<br />
><br />
more $file<br />
> fi<br />
>done<br />
<br />
◦Hoặc viết liên tục các lệnh phân cách bởi dấu “;”)<br />
$for file in *;do;if grep –l ‘main()’ $file; then;<br />
more $file;fi;done<br />
<br />
3<br />
<br />
03/24/2017<br />
<br />
Giới thiệu (tt)<br />
◦Cách 2: viết các câu lệnh vào một tập tin và yêu cầu<br />
shell thực thi tập tin này như là một file chương trình<br />
(cần cấp quyền thực thi cho tập tin này mới có thể<br />
thực thi được)<br />
# script tìm trong thư mục hiện hành<br />
# các chuỗi chứa chuỗi “main()”<br />
for file in *<br />
do<br />
if grep –l ‘main()’ $file<br />
then<br />
more $file<br />
fi<br />
Done<br />
exit 0<br />
<br />
2. Soạn thảo, cấp quyền, thực thi<br />
Tạo tập tin shell script bằng một trình soạn thảo<br />
văn bản (thông thường, tập tin shell nên có<br />
phần mở rộng là .sh)<br />
Cấp quyền thực thi cho tập tin<br />
Thực thi tập tin<br />
<br />
4<br />
<br />
03/24/2017<br />
<br />
3. Cú pháp ngôn ngữ Shell<br />
Biến<br />
Chuyển hướng vào/ra<br />
Lệnh kiểm tra<br />
Biểu thức tính toán expr<br />
Cấu trúc điều khiển<br />
Danh sách<br />
Lấy về kết quả một lệnh<br />
<br />
Sử dụng biến<br />
Biến không cần phải khai báo trước khi sử<br />
dụng<br />
Có phân biệt chữ hoa, chữ thường<br />
Biến trong shell luôn có dạng chuỗi<br />
Gán trị cho biến:<br />
◦Tenbien=giatri (không có khoảng trắng hai bên dấu<br />
=)<br />
◦name=“hung”<br />
◦number=100<br />
<br />
5<br />
<br />