Giáo trình Linux

MỤC LỤC

MỤC LỤC . 1

bài 1. Giới thiệu hệ điều hành Linux . 5

I. Lịch sử . 5

II. Cài đặt máy chủ Linux: . 6

bài 2. Giao tiếp trên môi trường Linux. 17

I. Trình soạn thảo vi . 17

II. Tiện ích mc. . 18

III. Các câu lệnh cơ bản trên Linux . 20

II.1. Hiểu biết về các câu lệnh trong Linux . 20

II.1.1. Sử dụng các ký tự đại diện . 20

II.1.2. Cơ bản về các biểu thức chính quy: . 21

II.2. Các câu lệnh về thư mục và file: . 22

II.2.1. Lệnh cat . 22

II.2.2. Lệnh chmod . 22

II.2.3. Lệnh chown . 22

II.2.4. Lệnh clear . 23

II.2.5. Lệnh cmp . 23

II.2.6. Lệnh cp . 23

II.2.7. Lệnh du . 23

II.2.8. Lệnh file . 23

II.2.9. Lệnh find . 23

II.2.10. Lệnh grep . 24

II.2.11. Lệnh head . 24

II.2.12. Lệnh ln . 24

II.2.13. Lệnh locate . 25

II.2.14. Lệnh ls . 25

II.2.15. Lệnh mkdir . 25

II.2.16. Lệnh mv . 25

II.2.17. Lệnh pwd . 26

II.2.18. Lệnh rm . 26

II.2.19. Lệnh tail. 26

II.3. Các câu lệnh nén dữ liệu . 26

II.3.1. Lệnh compress . 26

II.3.2. Lệnh gunzip . 27

II.3.3. Lệnh gzip . 27

II.3.4. Lệnh tar . 27

II.3.5. Lệnh uncompress . 27

II.3.6. Lệnh unzip . 28

II.3.7. Lệnh zip . 28

II.3.8. Lệnh mount . 28

II.3.9. Lệnh umount . 28

II.4. Các câu lệnh quản lý tiến trình . 28

II.4.1. Lệnh bg . 28

II.4.2. Lệnh fg . 29

II.4.3. Lệnh jobs. 29

bài 3. Giới Thiệu Hệ Thống Tập Tin, Thư Mục . 30

I. Giới thiệu . 30

I.1. Thư mục chủ. 30

I.2. Các thư mục hệ thống . 30

II. Các quyền truy cập file/thư mục . 31

II.1. Thay đổi quyền sở hữu file, thư mục sử dụng lệnh chown: . 32

II.2. Thay đổi nhóm sử dụng file/thư mục với lệnh chgrp . 32

II.3. Sử dụng số theo hệ cơ số 8 tương ứng với thuộc tính truy cập . 32

II.4. Sử dụng ngôn ngữ tự nhiên tương ứng với quyền truy cập . 33

II.5. Thay đổi quyền truy cập file thư mục sử dụng lệnh chmod . 33

II.6. Các chú ý đặc biệt trên các quyền thư mục . 34

III. Tạo một chính sách quyền cho một server nhiều người sử dụng . 34

III.1. Thiết lập cấu hình các quyền truy cập file của người sử dụng . 34

III.2. Thiết lập mặc định các quyền truy cập file cho người sử dụng . 34

III.3. Thiết lập các quyền có thể thực thi cho các file . 35

IV. Làm việc với các file và các thư mục. 35

IV.1. Xem các file và các thư mục . 35

IV.2. Chuyển đến thư mục . 35

IV.3. Xác định kiểu file . 35

IV.4. Xem thống kê các quyền của file hay thư mục. 35

IV.5. Sao chép file và thư mục. 36

IV.6. Dịch chuyển các file và thư mục . 36

IV.7. Xóa các file và thư mục . 36

IV.8. Tìm kiếm file . 36

bai 4. Quản lý người dùng và tài nguyên . 37

I. Khái niệm . 37

II. Trở thành superuser . 37

III. Quản lý người dùng với các công cụ dòng lệnh . 37

III.1. Tạo một tài khoản người sử dụng mới . 38

III.2. Tạo một nhóm mới . 38

III.3. Sửa đổi một tài khoản người sử dụng đang tồn tại . 38

III.4. Thay đổi đường dẫn thư mục chủ . 39

III.5. Thay đổi UID . 39

III.6. Thay đổi nhóm mặc định . 39

III.7. Thay đổi thời hạn kết thúc của một tài khoản . 39

III.8. Sửa đổi một nhóm đang tồn tại. 39

III.9. Xóa hoặc hủy bỏ một tài khoản người sử dụng . 40

IV. Cài đặt máy in . 40

IV.1. Cấu hình máy in. 40

IV.2. Cài đặt máy in cục bộ . 41

IV.3. Cài đặt máy in trên hệ thống Unix ở xa . 43

IV.4. Cài đặt máy in Samba (SMB) . 44

IV.5. Chọn trình điều khiển Print Driver và kết thúc . 45

IV.6. Thay đổi thông số cấu hình các máy in có sẵn . 46

IV.7. Backup các thông số cấu hình máy in . 47

IV.8. Quản lý công việc in ấn . 47

Bài 5. Trình diễn thiết lập mạng và cài đặt diul-up trên Linux . 48

I. Thiết lập mạng Linux . 48

I.1. HĐH Linux và card mạng . 48

I.2. Cấu hình card mạng . 49

I.2.1. Lệnh ifconfig . 49

I.2.2. Lệnh route . 50

I.2.3. Lệnh ping . 51

I.2.4. Lệnh Traceroute . 51

I.2.5. Lệnh traceroute . 52

I.3. Các tiện ích mạng: Telnet và ftp . 52

I.3.1. Telnet . 52

I.3.2. FTP . 52

II. Cài đặt diul-up trên Linux . 53

II.1. Cài đặt . 53

II.2. Quay số . 55

Bài 6. Lập trình shell. . 57

I. Tạo và chạy chương trình Shell. 57

II. Sử dụng các biến . 58

II.1. Gán một giá trị cho một biến . 59

II.2. Tham số và các biến Shell có sẵn . 59

III. Sử dụng dấu trích dẫn . 60

IV. Sử dụng câu lệnh test . 61

V. Sử dụng các câu lệnh rẽ nhánh . 65

V.1. Lệnh if . 65

V.2. Lệnh case . 66

VI. Sử dụng các lệnh lặp . 69

VI.1. Lệnh for . 69

VI.2. Lệnh while . 70

VI.3. Lệnh until . 71

VI.4. Lệnh shift . 72

VI.5. Lệnh select . 73

VI.6. Lệnh repeat . 74

VII. Sử dụng các hàm . 74

VIII. Tổng kết . 77

pdf77 trang | Chuyên mục: Linux | Chia sẻ: dkS00TYs | Lượt xem: 2940 | Lượt tải: 4download
Tóm tắt nội dung Giáo trình Linux, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
h là như sau: 
 ĐẠI HỌC TÔN ĐỨC THẮNG Trang 71/77 
Hệ điều hành Linux GV: Nguyễn Việt Hùng - Trần Quang Bình 
while (expression) 
 statements 
end 
Dưới đây là một ví dụ về lệnh while theo ngôn ngữ shell bash hay pdksh. Chương trình 
này đưa ra danh sách các đối số được đưa vào chương trình cùng với số các đối số. 
count=1 
while [ -n "$*" ] 
do 
 echo "This is parameter number $count $1" 
 shift 
 count=`expr $count + 1` 
done 
Lệnh shift chuyển đối số dòng lệnh lên một sang bên trái (xem đoạn sau"Lệnh shift" 
để biết thêm thông tin). Chương trình bên dưới tương tự được viết cho ngôn ngữ tcsh: 
# 
set count = 1 
while ( "$*" != "" ) 
 echo "This is parameter number $count $1" 
 shift 
 set count = `expr $count + 1` 
end 
VI.3. Lệnh until 
Lệnh until có cú pháp và chức năng tương tự lệnh while. Chỉ có sự khác biệt thực sự 
giữa hai lệnh là lệnh until thực thi mã trong khối của nó khi giá trị của biểu thức là sai và 
lệnh while thực thi các khối lệnh cảu nó nếu biểu thức có giá trị là true. Cú pháp cho lệnh 
until trong bash và pdksh là như sau: 
until expression 
do 
 commands 
done 
 ĐẠI HỌC TÔN ĐỨC THẮNG Trang 72/77 
Hệ điều hành Linux GV: Nguyễn Việt Hùng - Trần Quang Bình 
Để làm cho ví dụ được sử dụng với lệnh while làm việc với lệnh until, tất cả những gì 
bạn phải làm chỉ là phủ định điều kiện, như chỉ ra trong đoạn mã bên dưới: 
count=1 
until [ -z "$*" ] 
do 
 echo "This is parameter number $count $1" 
 shift 
 count=`expr $count + 1` 
done 
Chỉ có sự khác nhau trong ví dụ này là và ví dụ về lệnh while là tùy chọn -n của lệnh 
test, nó có nghĩa rằng xâu không có độ dài bằng 0, được thay bởi tùy chọn -z , nó có nghĩa là 
chuỗi có độ dài bằng 0. Trong thực tế, lệnh until ít được dùng bởi vì với bất kỳ lệnh until nào, 
bạn cũng có thể viết được bằng lệnh while. Lệnh until không được hỗ trợ trong tcsh. 
VI.4. Lệnh shift 
Tất cả các shell bash, pdksh, và tcsh đều hỗ trợ một lệnh gọi là lệnh shift. Lệnh shift 
chuyển các giá trị hiện tại được lưu trữ trong các đối số dòng lệnh lên một vị trí sang trái. Ví 
dụ, nếu các giá trị của các đối số là 
$1 = -r $2 = file1 $3 = file2 
và bạn thực hiện lệnh shift 
shift 
kết quả các đối số được đưa vào như sau: 
$1 = file1 $2 = file2 
Bạn có thể dịch chuyển các đối số qua nhiều hơn một vị trí bởi một số xác định vớikèm 
theo với lệnh shift. Lệnh sau dịch chuyển đối số lên hai vị trí: 
shift 2 
Lệnh này rất hữu ích khi có một chương trình shell cần phân tích các tùy chọn dòng 
lệnh. Các tùyd chọn thường được đặt trước bởi một dấu nối và một ký tự để chỉ ra tùy chọn 
nào được sử dụng. Bởi vì các tùy chọn luôn luôn được xử lý trong một vòng lặp của một loại 
câu lệnh, bạn sẽ thường muốn nhảy đến đối số tiếp theo một khi bạn đã xác định được tùy 
chọn nào nên được xử lý tiếp theo. Ví dụ, chương trình shell sau chờ hai tùy chọn dòng lệnh, 
một xác định một file đầu vào và một xác định một file đầu ra. Chương trình đọc file đầu 
vào, chuyển tất cả các ký tự trong file input thành chữ hoa, và sau đó lưu trữ kết quả trong 
file đầu ra xác định: 
while [ "$1" ] 
 ĐẠI HỌC TÔN ĐỨC THẮNG Trang 73/77 
Hệ điều hành Linux GV: Nguyễn Việt Hùng - Trần Quang Bình 
do 
 if [ "$1" = "-i" ] then 
 infile="$2" 
 shift 2 
 else if [ "$1" = "-o" ] then 
 outfile="$2" 
 shift 2 
 else 
 echo "Program $0 does not recognize option $1" 
 fi 
done 
tr a-z A-Z $outfile 
VI.5. Lệnh select 
Shell pdksh đưa ra một lệnh lặp mà bash và tcsh không hỗ trợ, lệnh select. Nó hơi khác 
với các lệnh lặp khác bởi vì nó không thực thi một khối mã lệnh shell theo một điều kiện 
true hoặc false. Những gì lệnh select làm là cho phép bạn tự động tạo các menu text đơn 
giản. Cú pháp của lệnh select như sau: 
select menuitem [in list_of_items] 
do 
 commands 
done 
Khi bạn thực thi lệnh select, pdksh tạo một đối tượng menu được đánh số cho mỗi phần 
tử có trong list_of_items. list_of_items này có thể là một biến chứa nhiều hơn một phần tử, 
chẳng hạn như choice1 choice2 hoặc nó có thể là một danh sách các lựa chọn được gõ vào 
từ dòng lệnh, như trong ví dụ sau: 
select menuitem in choice1 choice2 choice3 
Nếu danh sách list_of_items is không được cung cấp, lệnh select sử dụng các đối số 
dòng lệnh cho lệnh thực hiện. 
Khi người sử dụng của chương trình có chứa lệnh select chọn một trong số các phần tử 
của menu bằng cách gõ vào số tương ứng với nó, lệnh select lưu giá trị của phần tử được lựa 
chọn trong biến menuitem. Các lệnh trong khối do sau đó có thể thực hiện các hoạt động 
trên phần tử menu này. 
Dưới đây là một ví dụ về việc sử dụng lệnh select như thế nào. Ví dụ này hiển thị ba 
phẩn tử của menu. Khi người sử dụng chọn một phần tử, chương trình sẽ hỏi bạn xem có phải 
 ĐẠI HỌC TÔN ĐỨC THẮNG Trang 74/77 
Hệ điều hành Linux GV: Nguyễn Việt Hùng - Trần Quang Bình 
phần tử đó được lựa chọn không, nếu người sử dụng gõ khác với y hoặc Y, chương trình sẽ 
hiển thị lại menu. 
select menuitem in pick1 pick2 pick3 
do 
 echo "Are you sure you want to pick $menuitem" 
 read res 
 if [ $res = "y" -o $res = "Y" ] 
 then 
 break 
 fi 
done 
Ví dụ này giới thiệu một vài lệnh mới. Lệnh read được sử dụng để lấy dữ liệu vào từ 
người sử dụng. Nó lưu bất kỳ cái gì người sử dụng gõ vào biến xác định. Lệnh break để kết 
thúc vòng lặp lệnh while, select, hoặc for. 
VI.6. Lệnh repeat 
Shell tcsh có một lệnh lặp không có trong pdksh hay bash. Lệnh này là lệnh repeat. 
Lệnh repeat thực thi câu lệnh đơn theo một số lần xác định. Cú pháp cho lệnh repeat là như 
sau: 
repeat count command 
Ví dụ sau của lệnh repeat lấy một tập hợp các số là các tùy chọn dòng lệnh và in ra số 
các dấu chấm lên màn hình. Chương trình này hoạt động như một chương trình minh họa rất 
thô sơ. 
# 
foreach num ($*) 
 repeat $num echo -n "." 
 echo "" 
end 
Bạn có thể viết lại lệnh repeat bất kỳ bằng lệnh while hay lệnh for; cú pháp repeat chỉ 
thuận tiện hơn mà thôi. 
VII. SỬ DỤNG CÁC HÀM 
Ngôn ngữ shell cho phép bạn dịnh nghĩa hàm của chính bạn. Các hàm này được định 
nghĩa giống như cách bạn định nghĩa các hàm trên ngôn ngữ lập trình C hay các ngôn ngữ lập 
trình khác. Thuận lợi chính của việc sử dụng hàm để tổ chức, tránh viết tất cả các mã shell 
 ĐẠI HỌC TÔN ĐỨC THẮNG Trang 75/77 
Hệ điều hành Linux GV: Nguyễn Việt Hùng - Trần Quang Bình 
của bạn trong một dòng. Mã được viết sử dụng các hàm có khuynh hướng dễ hơn trong việc 
đọc và bảo trì và cũng là khuynh hướng nhỏ gọn hơn bởi vì bạn có thể nhóm các mã chung 
vào trong một hàm thay việc đưa nó vào tất cả các nơi cần nó. 
Cú pháp để tạo một hàm trongbash và pdksh là như sau: 
fname () { 
 shell commands 
} 
Cùng với cú pháp trước , pdksh cho phép cú pháp sau: 
function fname { 
 shell commands 
} 
Cả hai dạng này đều được xử lý chính xác như nhau theo cùng một cách. 
Sau khi bạn đã định nghĩa hàm của bạn sử dụng một trong các dạng trên, bạn có thể 
gọi đến nó bằng cách vào lệnh sau: 
fname [parm1 parm2 parm3 ...] 
Chú ý rằng bạn có thể đưa số lượng bất kỳ các đối số vào trong hàm của bạn. Khi bạn 
đưa các đối số vào trong một hàm, nó xem các đối số này như đối số của một chương trình 
shell khi bạn đưa các đối số này từ dòng lệnh. Ví dụ, chương trình shell sau chứa vài hàm, 
mỗi hàm thực hiện một nhiệm vụ mà được kết hợp với các tùy chọn dòng lệnh. Ví dụ này 
bao trùm nhiều nội dung trong phần này. Nó đọc tất cả các file được đưa vào từ dòng lệnh và 
phụ thuộc vào tùy chọn được sử dụng, viết ra file với tất cả các ký tự hoa, viết ra file với tất 
cả các ký tự thường, hoặc in các file. 
upper () { 
 shift 
 for i 
 do 
 tr a-z A-Z $1.out 
 rm $1 
 mv $1.out $1 
 shift 
 done; } 
lower () { 
 ĐẠI HỌC TÔN ĐỨC THẮNG Trang 76/77 
Hệ điều hành Linux GV: Nguyễn Việt Hùng - Trần Quang Bình 
 shift 
 for i 
 do 
 tr A-Z a-z $1.out 
 rm $1 
 mv $1.out $1 
 shift 
 done; } 
print () { 
 shift 
 for i 
 do 
 lpr $1 
 shift 
 done; } 
usage_error () { 
 echo "$1 syntax is $1 " 
 echo "" 
 echo "where option is one of the following" 
 echo "p -- to print frame files" 
 echo "u -- to save as uppercase" 
 echo "l -- to save as lowercase"; } 
case $1 
in 
 p | -p) print $@;; 
 u | -u) upper $@;; 
 l | -l) lower $@;; 
 ĐẠI HỌC TÔN ĐỨC THẮNG Trang 77/77 
Hệ điều hành Linux GV: Nguyễn Việt Hùng - Trần Quang Bình 
 *) usage_error $0;; 
esac 
Chương trình tcsh không hỗ trợ các hàm. 
VIII. TỔNG KẾT 
Trong chương này, bạn đã thấy được nhiều đặc điểm của các ngôn ngữ lập trình bash, 
pdksh và tcsh. Khi bạn sử dụng Linux, bạn sẽ thấy rằng bạn sử dụng các ngôn ngữ lập trình 
shell càng ngày càng thường xuyên. Cho dù ngôn ngữ shell rất mạnh và dễ học, bạn có thể 
gặp phải một vài vấn đề khi chương trình shell không phù hợp với vấn đề bạn giải quyết. 
Trong những trường hợp như vậy, bạn có thể nghiên cứu tìm hiểu các ngôn ngữ khác có thể 
sử dụng có trong Linux. 

File đính kèm:

  • pdfGiáo trình Linux.pdf