TỰ HỌC SỬ DỤNG LINUX - Trang 6

MỤC LỤC

v

5 Bash

100

5.1 Hệ vỏ là gì?

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

5.2 Các ký tự đặc biệt

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

5.3 Thực thi các câu lệnh

. . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.3.1

Thao tác ;

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5.3.2

Thao tác &

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

5.3.3

Thao tác && và ||

. . . . . . . . . . . . . . . . . . . . . . . . 103

5.4 Đầu vào/đầu ra tiêu chuẩn

. . . . . . . . . . . . . . . . . . . . . . . . 103

5.4.1

Dòng dữ liệu vào – ra

. . . . . . . . . . . . . . . . . . . . . . . 103

5.4.2

Lệnh echo

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

5.4.3

Lệnh cat

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

5.5 Chuyển hướng đầu vào/đầu ra, đường ống và bộ lọc

. . . . . . . . . . 105

5.5.1

Sử dụng >, < và »

. . . . . . . . . . . . . . . . . . . . . . . . . 105

5.5.2

Sử dụng |

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

5.5.3

Bộ lọc

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

5.6 Tham biến và các biến số. Môi trường của hệ vỏ

. . . . . . . . . . . . 108

5.6.1

Các dạng tham biến khác nhau

. . . . . . . . . . . . . . . . . 108

5.6.2

Dấu nhắc của hệ vỏ

. . . . . . . . . . . . . . . . . . . . . . . . 110

5.6.3

Biến môi trường PATH

. . . . . . . . . . . . . . . . . . . . . . . 111

5.6.4

Biến môi trường IFS

. . . . . . . . . . . . . . . . . . . . . . . 112

5.6.5

Thư mục hiện thời và thư mục cá nhân

. . . . . . . . . . . . 112

5.6.6

Câu lệnh export

. . . . . . . . . . . . . . . . . . . . . . . . . 112

5.7 Khai triển biểu thức

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

5.7.1

Khai triển dấu ngoặc

. . . . . . . . . . . . . . . . . . . . . . . 113

5.7.2

Thay thế dấu ngã (Tilde Expansion)

. . . . . . . . . . . . . . 114

5.7.3

Phép thế các tham biến và biến số

. . . . . . . . . . . . . . . 114

5.7.4

Phép thế các câu lệnh

. . . . . . . . . . . . . . . . . . . . . . . 114

5.7.5

Phép thế số học (Arithmetic Expansion)

. . . . . . . . . . . . 115

5.7.6

Phân chia từ (word splitting)

. . . . . . . . . . . . . . . . . . 115

5.7.7

Khai triển các mẫu tên tập tin và thư mục (Pathname Ex-
pansion)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

5.7.8

Xóa các ký tự đặc biệt

. . . . . . . . . . . . . . . . . . . . . . . 116

5.8 Shell - một ngôn ngữ lập trình

. . . . . . . . . . . . . . . . . . . . . . 116

5.8.1

Toán tử if và test (hoặc [ ])

. . . . . . . . . . . . . . . . . . 117

5.8.2

Toán tử test và điều kiện của biểu thức

. . . . . . . . . . . . 117

5.8.3

Toán tử case

. . . . . . . . . . . . . . . . . . . . . . . . . . . 120

5.8.4

Toán tử select

. . . . . . . . . . . . . . . . . . . . . . . . . . 120

5.8.5

Toán tử for

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

5.8.6

Toán tử while và until

. . . . . . . . . . . . . . . . . . . . . 122

5.8.7

Các hàm số

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

5.8.8

Tham số

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

5.8.9

Biến nội bộ (local)

. . . . . . . . . . . . . . . . . . . . . . . . . 123

5.9 Script của hệ vỏ và lệnh source

. . . . . . . . . . . . . . . . . . . . . 124

5.10 Câu lệnh sh

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125