Tài liệu Cơ bản Velinuxshellscript - Pdf 86

VietHung soft group -


Cơ bản về Shell
A. Giới thiệu chung
1. Giới thiệu về shell
Khi chúng ta muốn thực hiện một lệnh nào đó trong hệ điều hành Unix chúng ta cần phải ra
lệnh để Unix hiểu đợc chúng ta muốn làm gì. Việc ra lệnh này đợc thực hiện qua shell. Nh
vậy chúng ta có thể hiểu một cách đơn giản shell là giao diện để giao tiếp giữa ngời sử dụng
và Unix. Shell nhận lệnh từ ngời sử dụng sau đó dịch và chuyển đến hệ thống những hoạt
động cần thực hiện để đáp ứng yêu cầu.
Hiện nay có một số loại shell trong các hệ thống Unix, trong một số trờng hợp trong một
hệ thống nào đó có thể có một hoặc nhiều shell cùng tồn tại. Một số loại phổ biến đang tồn tại
nh: Bourne shell, Korn shell, C shell, ... Mỗi loại có sự khác nhau nhng tất cả đều cung cấp
đầy đủ công cụ để thiết lập môi trờng giao tiếp giữa ngời sử dụng và Unix.
2. Mục đích của shell
Shell có 3 mục đích chính nh sau:
- Tơng tác (interactive use)
- Đặt biến môi trờng đối với mỗi ngời sử dụng
- Lập trình
Tơng tác
Trờng hợp đợc coi là đơn giản khi sử dụng shell, 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.
Đặt biến môi trờng đối với mỗi ngời sử dụng
Unix shell xác định các biến để điều khiển môi trờng của ngời sử dụng đối với mỗi
phiên sử dụng. Việc đặt các biến này sẽ xác định với hệ thống những tham số nh th mục
nào sẽ đợc sử dụng làm th mục chính, nơi đặt mail, những th mục nào đợc sử dụng mặc
định khi bạn gọi đến các lệnh Unix, ... Một số biến hệ thống có thể đợc đặt trong tệp khởi

- C shell, sử dụng cú pháp của ngôn ngữ lập trình C và có thêm nhiều chức năng tiện lợi.
Thông thờng các hệ thống có ít nhất là một loại shell và thông thờng Bourne shell đợc sử
dụng để viết shell script, còn sử dụng một loại khác cho việc tơng tác.
Tệp /etc/passwd sẽ xác định loại shell nào sẽ đợc sử dụng mặc định trong hệ thống cho
mỗi phiên làm việc của bạn. Trong phần cuối của dòng chứa tên bạn, bạn có thể tìm thấy
thông tin về loại shell nào đợc sử dụng. Mỗi khi bạn login, hệ thống sẽ đọc tệp này để lấy
thông tin khởi tạo cho shell.
Thông tin có thể gồm một trong những dạng sau:

/bin/sh Bourne shell
/bin/jsh Bourne shell, có thêm phần điều khiển tác vụ (job control)
/bin/ksh Korn shell
/bin/csh C shell

Bạn có thể thay đổi shell mặc định sang một loại khác bằng cách sử dụng lệnh:
Ví dụ chuyển từ Bourne shell sang C shell:
exec csh
hoặc có thể đổi shell mới bằng lệnh:
chsh [<tên shell>]
Cấu trúc lệnh chsh nh sau:
chsh [-s <tên shell>] [ -l ] [<tên ngời>]
chsh -l liệt kê các loại shell hiện có (thông tin chứa trong tệp /ect/shells).

Trong phần tiếp theo, chúng tôi sẽ giới thiệu về Bourne shell, loại tiêu chuẩn, đơn giản và
phổ dụng nhất hiện nay trong các hệ thống Unix.
VietHung soft group -


\0n in ra ký tự có số n (số thập phân) trong bảng m ASCII.
Các bạn có thể in ra những ký tự đặc biệt bằng cách đặt sau ký tự \, ví dụ: \ để in ký tự
nháy kép () ra màn hình.
Ví dụ:
echo \Thong bao co loi! \, \c \007
2. Thực hiện các lệnh hệ thống
Ví dụ 2: Ví dụ thực hiện một lệnh của hệ thống.

#!/bin/sh
#vi du 2
echo VietHung soft group -


echo Danh sach cac thu muc va tep:
ls l
echo
echo Vi tri hien thoi: `pwd`

Trong đó lệnh ls -l là một lệnh của hệ thống đợc thực hiện mà không cần gõ từ dấu nhắc.
Ngoài ra tất cả các lệnh và tham số khác của hệ thống đều có thể đợc thực hiện một cách
tơng tự, ví dụ nh: cd, cp, mkdir, chmod, cat, ...
3. Biến và tham số hệ thống
Cũng nh các ngôn ngữ lập trình, shell có thể sử dụng biến nhng không cần khai báo và
định nghĩa kiểu. Các tham số của môi trờng và hệ thống có thể sử dụng trực tiếp bằng tên.
Tên của các tham số thờng là một cái tên, một ký tự, số hay một trong các ký hiệu *, @, #,
?, -, $, !\^.
Ví dụ 3: Ví dụ về dử sụng tham số hệ thống.

vào từ bàn phím.
Ví dụ 4: Ví dụ về lệnh đọc vào và in ra dữ liệu.

#!/bin/sh
#Vi du 4
echo Ban ten gi:
read ten
echo Chao ban $ten

Giải thích:
- read dùng để nhận giá trị từ bàn phím sau đó gán vào biến ten.
- $ten trả ra giá trị mà nó lu trữ.
Lệnh read còn có thể nhận nhiều biến cùng một lúc và có cấu trúc nh sau:
read <biến 1> [biến 2] [biến 3] ...
Ví dụ:
read ten dienthoai diachi

Khi bạn gõ vào: Hung 0123456 334 Nguyen Trai
Bạn dùng các lệnh sau để in thử các biến ra màn hình:

echo Ten : $ten
echo Dien thoai : $dienthoai
echo Dia chi : $diachi

Trên màn hình sẽ in ra:
Ten : Hung
Dien thoai: 0123456
Dia chi: 334 Nguyen Trai
Nh vậy có thể hiểu nh sau: Các biến đợc nhận giá trị lần lợt cho đến dấu cách, biến cuối
cùng sẽ đợc nhận toàn bộ phần còn lại. Đối với biến cuối cùng, nếu không còn dữ liệu thì sẽ


Nhờ tải bản gốc
Music ♫

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