Bài giảng hệ điều hành unix linux bài 6 đặng ngọc cường - Pdf 32

Bài 6

Lập trình trên Linux

20/01/2011

Hệ Điều Hành Unix/Linux

1


Nội dung trình bày
Giới thiệu về shell
Các thành phần của ngôn ngữ shell
Shell scripts - Lập trình shell
Lập trình C/C++ trên Linux

20/01/2011

Hệ Điều Hành Unix/Linux

2


Giới thiệu Linux Shell
GUI

xterm

csh



20/01/2011

Hệ Điều Hành Unix/Linux

4


Giới thiệu Linux Shell
Linux cho phép chuyển đổi giữa nhiều shell hoặc là
các console ảo (Virtual console) sử dụng lệnh chsh.
Cú pháp: chsh [-s <shell>] [-l] [username]
Trong đó:
-l : liệt kê các loại shell hiện có (thông tin các shell
chứa trong tập tin /etc/shells).

Ví dụ: chuyển sang c shell
$ chsh csh ↵

20/01/2011

Hệ Điều Hành Unix/Linux

5


Mục đích của shell
Tương tác, diễn dịch lệnh: shell đợi người sử dụng
gõ các lệnh tại dấu nhắc, sau đó gửi tới hệ thống
yêu cầu từ lệnh nhận được.


Điều khiển shell từ dòng lệnh
Ví dụ tìm và hiển thị tập tin mà nội dung có chứa
chuỗi ‘main()’. Thay vì dùng lệnh grep để tìm ra
từng file sau đó sử dụng lệnh more để hiển thị. Ta
có thể điều khiển shell tự động như sau:
$ for file in *
>do
> if [ $(grep –l ‘main()’ $file)]
> then
> more $file
> fi
>done
20/01/2011

Hệ Điều Hành Unix/Linux

8


Điều khiển shell từ script
Nhược điểm của việc điều khiển shell từ dòng lệnh là
khó lấy lại khối lệnh trước đó để sửa đổi và thực thi một
lần nữa.
Để dễ bảo trì ta có thể đưa các lệnh vào một tập tin và
yêu cầu shell đọc nội dung tập tin để thực thi.
Ví dụ: docfile.sh
#!/bin/bash
for file in *
do

sau:
/etc/profile : các thiết lập hệ thống chung
~/.bash_profile: các thiết lập của người dùng
~/.bashrc: tập tin khởi động trong một phiên làm việc
riêng biệt.
~/.bash_login: các thiết lập đăng nhập
~/.bash_history: các lịch sử các câu lệnh đã thực hiện

20/01/2011

Hệ Điều Hành Unix/Linux

11


/etc/profile
Chứa tất cả các thiết lập áp dụng đến tất cả môi
trường người dùng.
Khi được triệu gọi tương tác, shell đọc các chỉ thị
(câu lệnh) trong /etc/profile. Đây thường là các thiết
lập các biến shell như PATH, USER, MAIL,
HOSTNAME và HISTSIZE.
Trên một số hệ thống, giá trị umask cũng được cấu
hình trong /etc/profile .

20/01/2011

Hệ Điều Hành Unix/Linux

12

/etc/profile hoặc trong các tập tin khởi tạo shell
riêng biệt của người dùng.

20/01/2011

Hệ Điều Hành Unix/Linux

14


/etc/bashrc
alias ll='ls −l'
alias dir='ls −ba'
alias c='clear'
alias mroe='more'
alias ls='ls −−color'
pskill(){
pid=$(ps −ax | grep $1)
echo −n "killing $1 (process $pid)..."
kill −9 $pid
echo "slaughtered."
}

20/01/2011

Hệ Điều Hành Unix/Linux

15



20/01/2011

Hệ Điều Hành Unix/Linux

17


Cấu trúc shell script
Một shell scripts cơ bản gồm:
Dòng đầu tiên thường cho biết shell được sử dụng và
gọi trình thông dịch shell script tương ứng (ví dụ:
#!/bin/bash ).
Các chú thích bắt đầu với dấu thăng (#).
Các dòng còn lại là các lệnh của Linux hoặc các cấu
trúc điều khiển,…

Thực thi shell script:
C1:
Đặt quyền execute: $ chmod a+x <shellscript>
Chạy shell script: $./<shellscript>

C2: $ . <shellscript>
20/01/2011

Hệ Điều Hành Unix/Linux

18


Lệnh ghi ra màn hình


20/01/2011

Hệ Điều Hành Unix/Linux

20


Vi dụ Shell Script hello
$ vi hello.sh
#!/bin/bash
#Day la chu thich: chuong trinh hello.sh
echo “Nhap vao ten ban:"
read hoten
echo “Xin chao $hoten, chuc mot ngay vui ve!“
exit 0

Cách gọi thực hiện hello.sh:
$chmod a+x hello.sh
$./hello.sh

20/01/2011

Hệ Điều Hành Unix/Linux

21


Ví dụ: showsys.sh
#!/bin/bash

chuỗi hay từ một biến khác.
<tên biến> = `command`: Gán giá trị cho biến là kết
quả thực hiện của một lệnh
$<tên biến> : dùng để lấy giá trị trị của biến.

Ví dụ:
[ … ]#x = 38
[ … ]#echo $x
38
20/01/2011

Hệ Điều Hành Unix/Linux

25



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status