Xem các Shell có trên máy tínhThay đổi Shell hiện hành Xem các giá trị của các biến môi trường Ấn định biến môi trường Tính năng hoàn tất lệnh Liệt kê danh sách lệnh đã sử dụng Tái sử dụ
Trang 1CHƯƠNG 4
LẬP TRÌNH TRÊN LINUX
Trang 3Tổng quan về Shell
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:
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
Trang 4Xem các Shell có trên máy tính
Thay đổi Shell hiện hành
Xem các giá trị của các biến môi trường
Ấn định biến môi trường
Tính năng hoàn tất lệnh
Liệt kê danh sách lệnh đã sử dụng
Tái sử dụng lệnh
Trang 7Thay đổi Shell hiện hành
Cú pháp: chsh
Chức năng: đổi shell hiện hành trên hệ điều hành.
Ví dụ:
Trang 8Xem các giá trị của các biến môi trường
Cú pháp: echo <Tên biến môi trường> 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
Trang 9Ấn định biến môi trường
Từ dấu nhắc, nhập tên biến môi trường dưới dạng
<Tên biến>=<Giá trị của biến> 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
Trang 10Linux 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
Trang 11Tính năng hoàn tất lệnh
Nế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 Tab Sau khi nhấn Tab 2 lần
Trang 13Tái sử dụng lệnh
Cú pháp: !! hoặc ! <Số hiệu lệnh>.
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.
Trang 14Cách chạy một chương trình Shell
Khai báo biến
Các cấu trúc lệnh
Các ví dụ minh họa
Trang 15Tổng quan về Shell Script
Kị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.
Trang 16echo -e “Hello! Have a good day!”
Trang 17Cá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 ct1
Gán quyền thực thi cho tập tin ct1 cho user
Thực thi chương trình
Trang 18Khai báo biến
Khi 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:
<Tên biến>=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: <Tên biến 1>=$<Tên biến 2>
Để 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 <Tên biến>
Trang 21Cấu trúc rẽ nhánh if - else
Ví dụ:
#!/bin/bash
#Cau truc re nhanh
echo “Nhap so a:”
echo “a nho hon b”
elif [ $a –eq $b ] #Kiem tra a co bang b khong
Trang 23Cấu trúc rẽ nhánh nhiều trường hợp (case)
Trang 24echo "He so: 2,34"
;;
2) echo "He so: 2,98"
;;
3)
echo "He so: 3,00";;
*) echo "Khong co bac luong nay";;
esac
Trang 25#Vong lap for
word= "abcde" # Khởi tạo một xâu
count = 0 # Khởi tạo biến đếm count
for letter in $word # Vòng lặp với biến letter
do # 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 letter
Trang 26#Cau truc vong lap while
word="abcde" # Khởi tạo một xâu
dem=0 # Khởi tạo biến đếm count
while [ $count -lt 5 ] # Vòng lặp với biến letter
do # 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.
Trang 27#Cau truc vong lap Until
word="abcde" # Khởi tạo một xâu
dem=1 # Khởi tạo biến đếm count
until [ $count -lt 5 ] # Vòng lặp với biến letter
do # 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.
Trang 29Các ví dụ minh họa
Chương trình tính tổng các số từ 1 – n
Trang 31Các ví dụ minh họa
Chương trình đếm số từ của một tập tin
Trang 32Trì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à c Các chương trình C++ thường có phần mở rộng
là cc hoặc C
Trang 33Lậ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.c
Thoát khỏi chương trình vi, từ dấu nhắc của hệ thống, ta gõ lệnh:
gcc -o <Tập tin đích> <Tập tin nguồn> 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
./<tập tin đích>
Ví dụ: /hello
Lư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.
Trang 35CÂU HỎI LÝ THUYẾT VÀ BÀI TẬP
SGK