Skip to the content.

Tìm hiểu làm việc với Shell

I.Command

1. Arguments

Một trong những tính năng của shell là quét dòng lệnh. Khi bạn nhập command vào màn hình dòng lệnh ( terminal ) và ấn Enter, sau đó shell sẽ bắt đầu scan dòng lệnh, chia nó ra thành nhiều phần. Khi quét dòng lệnh, shell có thể làm thay đổi nhiều giá trị bạn đã nhập Quá trình này được gọi là shell expansion. Khi shell quét và sửa xong dòng lệnh, sau đó, dòng lệnh sẽ được thực thi.

2. Dấu nháy đơn.

Bạn có thể ngay việc xóa dấu cách bằng cách sử dụng nháy đơn. Trích dẫn được xác định bởi dấu nháy đơn được coi như một argument. ví dụ:

3. Dấu nháy kép.

Cũng giống như dấu nháy đơn, trích dẫn được xác định bởi hai dấu nháy kép cũng được coi như một argument. Chúng ta sẽ nói về sự khác nhau giữa nhay đơn và nháy kép sau.

4. Echo và trích dẫn

Các dòng trích dẫn có một số ký tự đặc biệt có thể được nhận biết bởi lệnh echo( khi sử dụng echo -e). ví dụ:

Có nhiều option hơn là tab(\t), xuống dòng(\n) ở trong trang hướng dẫn (man).

5.Lệnh

5.1. Các loại câu lệnh.

5.3.which, whatis, whereis.

Lệnh whatis là lệnh dùng để hiển thị mô tả ngắn gọn về một lệnh nào đó. Lệnh which là lệnh dùng để tìm kiếm file thực thi cho một câu lênh ở trong biến môi trường $PATH

Lệnh whereis là lệnh dùng để liệt kê đường dẫn tới các file “có thể hữu ích” đối với một lênh: file thực thi, file manual, source.

6.Alias

II.Các toán tử điều khiển thi thực hiện command.

1. ; dấu chấm phẩy

2. & kí hiệu và

Khi một câu lệnh kết thúc bằng ký hiệu &, shell sẽ chạy câu lệnh đó dưới dạng backgroud. Bạn sẽ nhận được câu lệnh khi nó thực thi xong trong backgroud.

3. $? dollar hỏi chấm

Exit code của câu lệnh trước được lưu ở trong biến $?. Thực ra $? không phaỉ là biến mà nó là một tham số, bạn không thể gán giá trị cho $? Exit code bằng 0 nghĩa là lệnh đã thực thi thành công và khác 0 nghĩa là đã sảy ra lỗi.

4. && hai dấu và

Shell sẽ hiểu && như là một toán tử AND. Khi sử dụng && ở giữa hai lệnh, lệnh thứ hai chỉ thực thi khi lệnh đầu tiên thành công( trả về exit code là 0)

&& cũng làm cho các câu lệnh sau phụ thuộc và kết quả của câu lệnh trước. Ví dụ, lệnh ls dưới đây phụ thuộc vào kết quả của lệnh cd.

5. || hai thanh dọc.

|| dại diện cho toán tử OR. Lệnh thứ hai chỉ thực thi khi lệnh đầu lỗi(trả về exit code khác 0)

Một ví dụ nữa:

6. Kết hợp && và ||

Có thể kết hợp && và || để viêt một cấu trúc if-then-else trên command line. Ví dụ:

7. # dấu thăng

Mọi thứ được viết sau dấu thăng # đều bị shell bỏ qua. Nó rất hữu ích để viết shell comment, mà không ảnh hưởng đến quá trình thực thi và expansion của shell.

8. \

Dấu gạch chéo ngược \ cho phép sử dụng các dấu toán tử nhưng shell không phiên dịch nó, đó gọi là escaping character.

9. gạch chéo ngược ở cuối dòng

Những dòng kết thúc với \ sẽ được tiếp tục ở dòng tiếp theo. Quá trình expansion và thực thi dòng lệnh sẽ thực thi khi có một dòng không còn \ ở cuối dòng. Ví dụ

III. Biến trong Shell

Một số ví dụ:

IV. Nhúng trong shell

V. Shell history

VI. Regular Expressions

1. Regular Expressions là gì?

2. Các regex cơ bản.

Ký hiệu Mô tả
. Khớp bất kỳ kí tự đơn nào
^ Đầu chuỗi
$ Cuối chuỗi
* Khớp với 0 hoặc nhiều lần ký tự trước
\ Đại diện cho ký tự đặc biệt
() Nhóm biểu thức chính quy
? khớp tối đa 1 kí tự