Tổng quan về Shell
Một số thao tác với Shell
Shell Script
Lập trình C và C++ trong Linux
Khi bắt đầu một phiên làm việc, ta bắt đầu làm việc với shell của Linux. Điều này được bắt đầu bằng việc mở một cửa sổ xterm trong X Windows.
Shell sẽ dịch và thực hiện mọi lệnh mà ta gõ vào từ bàn phím. Trên Linux hiện có một vài loại shell như sau:
35 trang |
Chia sẻ: phuongt97 | Lượt xem: 853 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Hệ điều hành Linux - Chương IV: Lập trình trên Linux, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 4LẬP TRÌNH TRÊN LINUXUpdated 25.08.20081Computer Sciences Div. @ 2008Nội dungTổng quan về ShellMột số thao tác với ShellShell ScriptLập trình C và C++ trong LinuxUpdated 25.08.20082Computer Sciences Div. @ 2008Tổng quan về ShellKhi bắt đầu một phiên làm việc, ta bắt đầu làm việc với shell của Linux. Điều này được bắt đầu bằng việc mở một cửa sổ xterm trong X Windows.Shell sẽ dịch và thực hiện mọi lệnh mà ta gõ vào từ bàn phím. Trên Linux hiện có một vài loại shell như sau:Bash: Bourne Again Shell. Đây là shell mạnh nhất và thông dụng nhất trên Linux.Csh: C shell. Hầu như tương thích với bash.Ksh: Korn shell. Đây là shell nguyên thủy.Zsh: Z shell. Shell mới nhất hiện nay, tương thích với Bourne shell. Updated 25.08.20083Computer Sciences Div. @ 2008Một số thao tác với ShellXác định Shell hiện hànhXem các Shell có trên máy tínhThay đổi Shell hiện hànhXem các giá trị của các biến môi trườngẤn định biến môi trườngTính năng hoàn tất lệnhLiệt kê danh sách lệnh đã sử dụngTái sử dụng lệnhUpdated 25.08.20084Computer Sciences Div. @ 2008Xác định Shell hiện hànhTên lệnh: echoChức năng: Xem shell hiện hành hoặc xuất thông báo ra màn hình.Cú pháp: echo $SHELLVí dụ:Updated 25.08.20085Computer Sciences Div. @ 2008Xem các Shell có trên máy tínhCú pháp: cat /etc/shellsChức năng: Xem các Shell đang có trên hệ điều hành.Ví dụ: Updated 25.08.20086Computer Sciences Div. @ 2008Thay đổi Shell hiện hànhCú pháp: chshChức năng: đổi shell hiện hành trên hệ điều hành.Ví dụ: Updated 25.08.20087Computer Sciences Div. @ 2008Xem các giá trị của các biến môi trườngCú pháp: echo . Với các biến môi trường được sử dụng trong Linux gồm:$HOME: Thư mục cá nhân người dùng.$USER: Tài khoản của người đăng nhập của người dùng.$SHELL: Shell hiện hành.$PATH: Đường dẫn.$PWD: Thư mục hiện hành Updated 25.08.20088Computer Sciences Div. @ 2008Ấn định biến môi trườngTừ dấu nhắc, nhập tên biến môi trường dưới dạng =. Thực hiện xong thì xuất biến để cho mọi chương trình và kịch bản chạy trong phiên làm việc đều có thể sử dụng biến.Biến gán bằng phương pháp chỉ có hiệu lực trong phiên làm việc, để biến có giá trị trong các phiên làm việc sau ta phải hiệu chỉnh tập tin cấu hình. Updated 25.08.20089Computer Sciences Div. @ 2008Tính năng hoàn tất lệnhLinux hỗ trợ khả năng hoàn thành lệnh (Word completion) rất hữu dụng bằng phím Tab. Khả năng này sẽ giúp người dùng tiết kiệm được rất nhiều thời gian. Ví dụ: cd /usr/inc sau đó gõ phím Tab, Shell sẽ tự động thêm “luce” để hoàn thành tên thư mục là /usr/include.Trước khi nhấn TabSau khi nhấn TabUpdated 25.08.200810Computer Sciences Div. @ 2008Tính năng hoàn tất lệnhNếu có nhiều khả năng để chọn lựa thì khi thực hiện lệnh, Bash sẽ cho phép người dùng chọn lựa bằng cách gõ Tab 2 lần. Ví dụ: Nếu trong thư home/viethan có chứa 2 thư mục tmdt và ttll thì khi ta gõ lệnh cd /home/viethan/t và nhấn tab 2 lần sẽ có kết quả như sau:Trước khi nhấn TabSau khi nhấn Tab 2 lầnUpdated 25.08.200811Computer Sciences Div. @ 2008Liệt kê danh sách lệnh đã sử dụngTên lệnh: historyChức năng: hiển thị danh sách các lệnh đã dùng.Ví dụ:Chú ý: Lệnh cuối cùng đã sử dụng là lệnh historyUpdated 25.08.200812Computer Sciences Div. @ 2008Tái sử dụng lệnhCú pháp: !! hoặc ! .Ví dụ: !!: thực hiện lại lệnh gần nhất. Nếu gõ !91 thì thực hiện lại lệnh số 91 trong danh sách các lệnh đã thực hiện.Updated 25.08.200813Computer Sciences Div. @ 2008Shell ScriptTổng quan về Shell ScriptCấu trúc kịch bảnCách chạy một chương trình ShellKhai báo biếnCác cấu trúc lệnhCác ví dụ minh họaUpdated 25.08.200814Computer Sciences Div. @ 2008Tổng quan về Shell ScriptKịch bản Shell là một tập tin trong đó có chứa các lệnh và các từ khoá nhằm tự động tự động hoá những thao tác của người sử dụng. Kịch bản Shell là một tập các lệnh Shell để thực hiện một công việc nào đó.Kịch bản Shell được kích hoạt bằng dòng lệnh. Kịch bản Shell sử dụng các biến, các cấu trúc điều kiện và lặp cho phép người sử dụng lập trình trên Shell.Updated 25.08.200815Computer Sciences Div. @ 2008Cấu trúc kịch bảnCấu trúc cơ bản của kịch bản:#!/bin/bashVí dụ: Viết kịch bản với tên là Hello dùng để thực hiện 2 công việc sau: Xoá và in ra màn hình câu “Hello! Have a good day!”. #! /bin/bashClearecho -e “Hello! Have a good day!”Updated 25.08.200816Computer Sciences Div. @ 2008Cách chạy một chương trình ShellĐể chạy một kịch bản Shell, ta cần thực hiện 2 bước sau:Bước 1: Cấp quyền kích hoạt kịch bản Shell bằng cách sử dụng lệnh chmod [user]+x [Tên tập tin kịch bản].Bước 2: Chạy kịch bản Shell bằng cách sử dụng lệnh ./[Kịch bản Shell].Soạn thảo kịch bản có tên ct1Gán quyền thực thi cho tập tin ct1 cho userThực thi chương trìnhUpdated 25.08.200817Computer Sciences Div. @ 2008Khai báo biếnKhi hàm số được gọi thực hiện, các tham số của hàm này sẽ trở thành các tham biến vị trí (Positional Parameters) trong thời gian thực hiện hàm này. Sau khi thực hiện xong hàm số, các tham biến vị trí sẽ được gán trả lại các giá trị mà chúng có trước khi thực hiện hàm.Để khai báo biến cục bộ, ta sử dụng cú pháp sau: =giá trịĐể gán giá trị của biến này cho một biến khác, ta sử dụng cú pháp: =$Để gán giá trị cho biến bằng cách nhập giá trị đó từ bàn phím, ta sử dụng cú pháp: read . Updated 25.08.200818Computer Sciences Div. @ 2008Các cấu trúc lệnhCấu trúc rẽ nhánh if - elseCấu trúc rẽ nhánh nhiều trường hợp (case)Cấu trúc vòng lặp for Cấu trúc vòng lặp whileCấu trúc vòng lặp UntilUpdated 25.08.200819Computer Sciences Div. @ 2008Cấu trúc rẽ nhánh if - elseCú pháp: if then [ elif then ] [ else ]fiUpdated 25.08.200820Computer Sciences Div. @ 2008Cấu trúc rẽ nhánh if - elseVí dụ: #!/bin/bash#Cau truc re nhanhecho “Nhap so a:”read aecho “Nhap so b:”read bif [ $a –lt $b ] #Kiem tra a co nho hon b khong then echo “a nho hon b” elif [ $a –eq $b ] #Kiem tra a co bang b khong then echo “a bang b” #Truong hop con laielse echo “a lon hon b”fi #Ket thucUpdated 25.08.200821Computer Sciences Div. @ 2008Cấu trúc rẽ nhánh if - elseVí dụ: Updated 25.08.200822Computer Sciences Div. @ 2008Cấu trúc rẽ nhánh nhiều trường hợp (case)Cú pháp:case in Biến-1) Biến-2) Biến-3) Biến-n) *) exitesacUpdated 25.08.200823Computer Sciences Div. @ 2008Cấu trúc rẽ nhánh nhiều trường hợp (case)Ví dụ:Updated 25.08.200824Computer Sciences Div. @ 2008Cấu trúc vòng lặp forCú pháp:for in doDoneVí dụ:#!/bin/bash#Vong lap forword= "abcde" # Khởi tạo một xâucount = 0 # Khởi tạo biến đếm countfor letter in $word # Vòng lặp với biến letterdo # Lệnh bắt đầu vòng lặp count=‘expr $count + 1‘ # Tăng biến đếm lên 1 echo "Letter $count is [$letter]" # In ra biến letterdone # Lệnh kết thúc vòng lặpUpdated 25.08.200825Computer Sciences Div. @ 2008Cấu trúc vòng lặp whileCú pháp:while [ ]doDoneVí dụ:#!/bin/bash#Cau truc vong lap whileword="abcde" # Khởi tạo một xâudem=0 # Khởi tạo biến đếm countwhile [ $count -lt 5 ] # Vòng lặp với biến letterdo # Lệnh bắt đầu vòng lặp count=‘expr $count + 1‘ # Tăng biến count lên 1 echo "Letter $count is [$letter]" # In ra biến letter.done # Lệnh kết thúc vòng lặpUpdated 25.08.200826Computer Sciences Div. @ 2008Cấu trúc vòng lặp UntilCú pháp:until [ ]doDoneVí dụ:#!/bin/bash#Cau truc vong lap Untilword="abcde" # Khởi tạo một xâudem=1 # Khởi tạo biến đếm countuntil [ $count -lt 5 ] # Vòng lặp với biến letterdo # Lệnh bắt đầu vòng lặp count=‘expr $count + 1‘ # Tăng biến count lên 1 echo "Letter $count is [$letter]" # In ra biến letter.done # Lệnh kết thúc vòng lặpUpdated 25.08.200827Computer Sciences Div. @ 2008Các ví dụ minh họaChương trình tính tổng các số từ 1 – n Chương trình tính giai thừa của một số Chương trình đếm số từ của một tập tin Updated 25.08.200828Computer Sciences Div. @ 2008Các ví dụ minh họaChương trình tính tổng các số từ 1 – nUpdated 25.08.200829Computer Sciences Div. @ 2008Các ví dụ minh họaChương trình tính giai thừa của một số Updated 25.08.200830Computer Sciences Div. @ 2008Các ví dụ minh họaChương trình đếm số từ của một tập tin Updated 25.08.200831Computer Sciences Div. @ 2008Lập trình C và C++ trong LinuxTrình biên dịch GNU là công cụ phát triển sẵn có và thông dụng nhất trong Linux, được dùng để biên dịch các kernel của hệ điều hành. Ngoài ra, gcc còn cung cấp các thư viện và các tập tin header cần thiết để biên dịch và chạy các chương trình của người dùng.Các chương trình C thường có phần mở rộng là .cCác chương trình C++ thường có phần mở rộng là .cc hoặc .CUpdated 25.08.200832Computer Sciences Div. @ 2008Lập trình C và C++ trong LinuxĐể xây dựng và thực thi một chương trình C ta làm như sau:Soạn thảo chương trình và lưu tập tin với phần mở rộng thích hợp. #vi example.cThoát khỏi chương trình vi, từ dấu nhắc của hệ thống, ta gõ lệnh:gcc -o . Ví dụ: gcc -o hello hello.c. Nếu biên dịch không thành công, gcc sẽ thông báo lỗi tại dòng lệnh phát sinh lỗi. Nếu không có lỗi thì thực thi chương trình bằng câu lệnh sau. #./Ví dụ: ./helloLưu ý: cách dùng ./ trước tên chương trình là để chỉ cho máy tìm kiếm chương trình khả thi trong thư mục hiện hành.Updated 25.08.200833Computer Sciences Div. @ 2008TỔNG KẾTTổng quan về ShellMột số thao tác với ShellShell ScriptLập trình C và C++ trong LinuxUpdated 25.08.200834Computer Sciences Div. @ 2008CÂU HỎI LÝ THUYẾT VÀ BÀI TẬPSGKUpdated 25.08.200835Computer Sciences Div. @ 2008
Các file đính kèm theo tài liệu này:
- bai_giang_he_dieu_hanh_linux_chuong_iv_lap_trinh_tren_linux.ppt