Danh mục

Báo cáo: Lập trình shell trên Linux

Số trang: 45      Loại file: docx      Dung lượng: 60.74 KB      Lượt xem: 4      Lượt tải: 0    
Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Báo cáo: Lập trình shell trên Linux trình bày các nội dung chính: Shell của Unix, Linux, sử dụng shell như một ngôn ngữ lập trình, cú pháp ngôn ngữ shell, dò lỗi (debug) của script, hiển thị màu chữ. Đây là tài liệu tham khảo dành cho sinh viên ngành Công nghệ thông tin.
Nội dung trích xuất từ tài liệu:
Báo cáo: Lập trình shell trên LinuxTìm hiểu về lập trình shell trên Linuxproject_2Mục lụcLời mở đầu ………………………………………………………………………31. Shell của Unix, Linux …………………………………………………………42. Sử dụng shell như một ngôn ngữ lập trình…………………………………….6 2.1 Điều khiển shell từ dòng lệnh …………………………………………7 2.2 Điều khiển shell bằng ngôn ngữ tập kịch bản …………………………8 2.3 Thực thi các script ……………………………………………………..83. Cú pháp ngôn ngữ shell ………………………………………………………..9 3.1 Sử dụng biến …………………………………………………………..9 3.1.1 Các ký tự đặc biệt của shell…………………………………..10 3.1.2 Biến môi trường ………………………………………………13 3.2 Điều kiện ………………………………………………………………15 3.2.1 Lệnh test hoặc [ ]……………………………………………..16 3.3 Cấu trúc điều khiển ……………………………………………………17 3.3.1 Lệnh if………………………………………………………...17 3.3.2 Lệnh elif ………………………………………………………171Tìm hiểu về lập trình shell trên Linuxproject_2 3.3.3 Lệnh for……………………………………………………….18 3.3.4 Lệnh while…………………………………………………….19 3.3.5 Lệnh case ………………………………………………….…20 3.4 Danh sách shell thực hiện lệnh (list)…………………………………..21 3.4.1 Danh sách AND (&&) ……………………………………….23 3.4.2 Danh sách OR ( | | ) …………………………………………..23 3.4.3 Khối lệnh ……………………………………………………..24 3.5 Hàm ……………………………………………………………………25 3.5.1 Biến cục bộ và biến toàn cục …………………………………26 3.5.2 Hàm và cách truyền tham số ………………………………....27 3.6 Các lệnh nội tại của shell ………………………………………………29 3.6.1 Lệnh break …………………………………………………....29 3.6.2 Lệnh continue …………………………………………………30 3.6.3 Lệnh rỗng……………………………………………………..31 3.6.4 Lệnh eval……………………………………………………...32 3.6.5 Lệnh exit n ……………………………………………………32 3.6.6 Lệnh export …………………………………………………...322Tìm hiểu về lập trình shell trên Linuxproject_2 3.6.7 Lệnh expr …………………………………………………….33 3.6.8 Lệnh printf ……………………………………………………34 3.6.9 Lệnh shift …………………………………………………….35 3.6.10 Lệnh unset …………………………………………………..364. Dò lỗi (debug) của script ……………………………………………………...375. Hiển thị màu chữ ………………………………………………………………38 5.1 Màu chữ ………………………………………………………………39 5.2 Thuộc tính văn bản ……………………………………………………39 5.3 Màu nền ……………………………………………………………….396. Kết chương…………………………………………………………………….417. Tài liệu tham khảo………………………………………………...42Lời mở đầuHiện nay trong thời đại khoa học kỹ thuật phát triển, bên cạnh sự phát triển củacác phần mềm mã bản quyền, phần mềm mã nguồn đóng các phần mềm mãnguồn mở cũng có những bước phát triển mạnh mẽ. Càng ngày càng có nhiềungười tham gia vào thiết kế, lập trình mã nguồn mở. Việc các phần mềm mãnguồn mở tung toàn bộ chương trình của mình lên mạng làm cho phần mềm mãnguồn mở dễ dàng tiếp cận hơn với mọi người, dễ dàng được phát triển hơn,được cả một cộng đồng đóng góp chung sức phát triển.Sự phát triển của phần mềm mã nguồn mở, nảy sinh một vấn đề là phải cónhững công cụ lập trình thích hợp trên nền tảng mã nguồn mở như các hệ điềuhành linux, unix. Trước yêu cầu đó thì đã xuất hiện một công cũ lập trình rất3Tìm hiểu về lập trình shell trên Linuxproject_2hiệu quả là lập trình shell. Để có thể hiểu rõ hơn về ngôn ngữ shell, em xintrình bày báo cáo về “Lập trình shell trên Linux”4Tìm hiểu về lập trình shell trên Linuxproject_2 1. Shell của UNIX/Linux Mọi thứ được thực hiện trên Linux đều bởi tiến trình. Vậy tạo ra tiến trìnhnhư thế nào ? Cách thứ nhất là viết ra các chương trình mà các chương trình nàybiết cách tạo ra tiến trình (C/C++). Tuy nhiên cách này đòi hỏi nhiều hiểu biếtvà nỗ lực. Cũng như các hệ điều hành làm việc kiểu ảo khác, Linux hổ trợ mộtphương tiện xử lí lệnh làm giao diện giữa lệnh máy (mà người dùng đưa vào)và việc thực thi của lệnh đó (bởi Unix). Phương tiện đó gọi là shell. Từ khi rađời Linux đã có vài kiểu shell, đó là Bourne, C, Korn shell. Thực ra shell làm gì ? Toàn bộ mục đích của shell là để khởi động các tiếntrình xử lí lệnh đưa vào: yêu cầu đưa (dòng) lệnh vào, đọc đầu vào, thông dịchdòng lệnh đó, và tạo ra tiến trình để thực hiện lệnh đó. Nói cách khác shell quétdòng lệnh đưa vào máy tính, cấu hình môi trường thực thi và tạo tiến trình đểthực hiện lệnh. Như vậy tìm hiểu shell thực tế là học một ngôn ngữ lập trình, cho dù khôngphức tạp như C, hay các ngôn ngữ khác, nhưng cũng phải qua những đòi hỏi cầnthiết. Trong Unix/Linux có các lọai shell khác nhau và có thể lựa chọn để dùngtheo nhu cầu mà người dùng thấy phù hợp. Hình 2 là mô hình tương tác giữa cácshell, chương trình ứng dụng, hệ X-Window và hạt nhân. Hình 2 Linux/Unix tách biệt các ứng dụng, lệnh gọi các hàm chức năng của nhânthành những đơn thể rất nhỏ (tiến trình). Tuy nhiên, nhiều lệnh của Linux cóthể kết hợp lại với nhau để tạo nên chức năng tổng hợp rất mạnh mẽ. Ví dụ: $ls -al | morelệnh trên được kết hợp bằng hai lệnh, ls liệt kê toàn bộ danh sách tệp và thư5Tìm hiểu về lập trình shell trên Linuxproject_2mục trên đĩa ra màn hình, nếu danh sách quá dài, ls chuyển dữ liệu kết xuất cholệnh more xử lý hiển thị kết quả thành từng trang màn hình. Linux có cách kếthợp dữ liệu kết xuất của các lệnh với nhau thông qua cơ chế chuyển tiếp(redirect), ống dẫn (pipe). Kết hợp các lệnh với nhau chỉ bằng dòng lệnh không chưa đủ. Nếu muốn tổhợp nhiều lệnh đồng thời với nhau và tùy vào từng điều kiện, kết xuất củalệnh, mà có những ứng xử thích hợp thì sao? Lúc đó sẽ dùng đến các cấu trúclập trình rẽ nhánh như if, case. Trường hợp bạn muốn thực hiện các thao tácvòng lặp, phải dùng các lệnh như for, while ... Shell chính là trình diễn dịch cungcấp cho người dùng khả năng này. Hầu hết các Shell trong Unix/Linux sử dụngmột ngôn ngữ gần giống với C (điều này cũng dễ hiểu bởi trong thế giớiUni ...

Tài liệu được xem nhiều: