Phần 2: Các qui ước khi viết lệnh Tên lệnh là bắt buộc, phải là từ đầu tiên trong bất kỳ lệnh nào, phải được gõ đúng như khi mô tả lệnh.
Tên khái niệm được nằm trong cặp dấu ngoặc quan hệ (< và >) biểu thị cho một lớp đối tượng và là tham số bắt buộc phải có. Khi gõ lệnh thì tên khái niệm (có thể được coi là "tham số hình thức") phải được thay thế bằng một từ (thường là tên tập tin, tên thư mục ... và có thể được coi là "tham số thực sự") để chỉ đối tượng liên quan đến thao tác của lệnh.
Ví dụ, mô tả cú pháp của lệnh more xem nội dung tập tin là
# more Thì từ
more là tên lệnh, còn
là tham số trong đó tập-tin là tên khái niệm và là tham số bắt buộc phải có. Lệnh này có tác động là hiện lên màn hình theo cách thức cuộn nội dung của tập tin với tên đã chỉ trong lệnh.
Để xem nội dung tập tin có tên là temp, người dùng gõ lệnh:
# more tempNhư vậy, tên lệnh
more được gõ đúng như mô tả cú pháp (cả nội dung và vị trí) còn "tập-tin" đã được thay thế bằng từ "temp" là tên tập tin mà người dùng muốn xem nội dung.
Các bộ phận nằm giữa cặp dấu ngoặc vuông [ và ] là có thể gõ hoặc không gõ cũng được.
Ví dụ, mô tả cú pháp của lệnh halt là
# halt [tùy-chọn]Với các tùy chọn là -w, -n, -d, -f, -i mã mỗi tùy chọn cho một cách thức hoạt động khác nhau của lệnh halt. Lệnh halt có tác động chính là làm ngừng hoạt động của hệ điều hành, tuy nhiên khi người dùng muốn có một cách hoạt động nào đó của lệnh này thì sẽ chọn một (hoặc một số) tuỳ chọn lệnh tương ứng. Một số cách gõ lệnh halt của người dùng như sau đây là đúng cú pháp:
# halt
# halt -w
# halt -n
# halt -fCác giá trị có trong cặp { và } trong đó các bộ phận cách nhau bằng dấu sổ đứng "|" cho biết cần chọn một và chỉ một trong các giá trị nằm giữa hai dấu ngoặc đó.
Ví dụ, khi giới thiệu về tùy chọn lệnh của lệnh
tail xem phần cuối nội dung của tập tin, chúng ta thấy:
-f, --follow[={tên | đặc tả}]Như vậy, sau tham số khóa
--follow, nếu xuất hiện thêm dấu bằng "="
thì phải có hoặc tên hoặc đặc tả. Đây là trường hợp các chọn lựa "loại trừ nhau".
Dấu ba chấm ... thể hiện việc lặp lại thành phần cú pháp đi ngay trước dấu này, việc lặp lại đó có thể từ không đến nhiều lần (không kể chính thành phần cú pháp đó). Cách thức này thường được dùng với các tham số như tên tập tin.
Ví dụ, mô tả lệnh
chown như sau:
chown [tùy-chọn]... [,[nhóm]]...Như vậy trong lệnh chown có thể không có hoặc có một số tùy chọn lệnh và có từ một đến nhiều tên tập tin.
Các bộ phận trong mô tả lệnh, nếu không nằm trong các cặp dấu [ ], <>, {} thì khi gõ lệnh thực sự phải gõ y đúng như khi mô tả (chú ý, quy tắc viết tên lệnh là một trường hợp riêng của quy tắc này).
Việc kết hợp các dấu ngoặc với nhau cho phép tạo ra cách thức sử dụng quy tắc tổ hợp các tham số trong lệnh. Ví dụ, lệnh
more bình thường có cú pháp là:
# more có nghĩa là thay
bằng tên tập tin cần xem nội dung, nếu kết hợp thêm dấu ngoặc vuông [ và ], tức là có dạng sau (chính là dạng tổng quát của lệnh more):
# more []thì
nói chung phải có trong lệnh more, tuy nhiên trong một số trường hợp có thể bỏ qua tham số tập-tin.
* Lưu ý:
Đối với nhiều lệnh, cho phép người dùng gõ tham số khóa kết hợp tương ứng với tùy-chọn trong mô tả lệnh. Tham số khóa kết hợp được viết theo cách -, trong đó xâu-kí-tự gồm các chữ cái trong tham số khóa. Ví dụ, trong mô tả lệnh in lịch cal:
cal [tùy-chọn] [tháng [năm] ]có ba tham số khóa là -m, -j, -y. Khi gõ lệnh có thể gõ một tổ hợp nào đó từ ba tham số khóa này để được tình huống sử dụng lệnh theo ý muốn. Chẳng hạn, nếu gõ lệnh
cal -mj 3thì lệnh cal thực hiện theo điều khiển của hai tham số khóa -m (chọn Thứ Hai là ngày đầu tuần, thay vì cho ngầm định là Chủ Nhật) và -j (hiển thị ngày trong tháng dưới dạng số ngày trong năm kể từ đầu năm).
Trong một số lệnh, có hai tham số khóa cùng tương ứng với một tình huống thực hiện lệnh, trong đó một tham số gồm một kí tự còn tham số kia lại là một từ. Tham số dài một từ là tham số chuẩn của lệnh, còn tham số một kí tự là cách viết ngắn gọn. Tham số chuẩn dùng được trong mọi Linux và khi gõ phải có đủ kí tự trong từ.
Ví dụ, khi mô tả lệnh date có tùy chọn:
-d, --date=STRINGnhư vậy hai tham số -d và --date=STRING có cùng ý nghĩa.
Ngoài những quy ước trên đây, người dùng đừng quên một quy định cơ bản là cần phân biệt chữ hoa với chữ thường khi gõ lệnh.
Làm đơn giản thao tác gõ lệnh:
Việc sử dụng bàn phím để nhập lệnh tuy không phải là một công việc nặng nề, song Linux còn cho phép người dùng sử dụng một số cách thức để thuận tiện hơn khi gõ lệnh. Một số trong những cách thức đó là:
- Sử dụng việc khôi phục dòng lệnh
- Sử dụng các phím đặc biệt
- Sử dụng các kí hiệu thay thế và phím
- Sử dụng thay thế alias
- Sử dụng chương trình lệnh
Việc khôi phục dòng lệnh:Linux cung cấp một cách thức đặc biệt là khả năng khôi phục lệnh. Tại dấu nhắc shell: Người dùng sử dụng các phím mũi tên lên/xuống trên bàn phím để nhận lại các dòng lệnh đã được đưa vào trước đây tại dấu nhắc shell, chọn một trong các dòng lệnh đó và biên tập lại nội dung dòng lệnh theo đúng yêu cầu mới của mình.
Ví dụ, người dùng vừa gõ xong dòng lệnh:
# ls -l tenfile*sau đó muốn gõ lệnh
ls -l tentaptin thì tại dấu nhắc của shell, người dùng sử dụng các phím di chuyển lên hoặc xuống để nhận được:
# ls -l tenfile*dùng các phím tắt để di chuyển, xoá kí tự (xem phần sau) để có được:
# ls -l tenvà gõ tiếp các kí tự "taptin" để nhận được:
# ls -l tentaptinchính là kết quả mong muốn.
Trong trường hợp số lượng kí tự thay thế là rất ít so với số lượng kí tự của toàn dòng lệnh thì hiệu quả của cách thức này rất cao.
*Lưu ý:
Việc nhấn liên tiếp các phím di chuyển lên hoặc xuống cho phép người dùng nhận được các dòng lệnh đã gõ từ trước mà không chỉ dòng lệnh mới được gõ. Cách thức này tương tự với cách thức sử dụng tiện ích DOSKEY trong hệ điều hành MS-DOS.
Một số phím đặc biệt khi gõ lệnh:Khi người dùng gõ lệnh có thể xẩy ra một số tình huống như sau:
Dòng lệnh đang gõ có chỗ sai sót, không đúng theo yêu cầu của người dùng vì vậy cần phải sửa lại đôi chút nội dung trên dòng lệnh đó. Trong trường hợp đó cần sử dụng các phím đặc biệt (còn gọi là phím viết tắt hay phím tắt) để di chuyển, xoá bỏ, bổ sung vào nội dung dòng lệnh.
Sau khi sử dụng cách thức khôi phục dòng lệnh, chúng ta nhận được dòng lệnh tương tự với lệnh cần gõ và sau đó sử dụng các phím tắt để hoàn thiện lệnh.
Dưới đây giới thiệu các phím tắt và ý nghĩa của việc sử dụng chúng:
- Nhấn phím để xoá một từ bên trái con trỏ
- Nhấn phím để xoá một từ bên phải con trỏ
- Nhấn phím để di chuyển con trỏ sang bên phải một từ
- Nhấn phím để di chuyển con trỏ sang bên trái một từ
- Nhấn phím để di chuyển con trỏ về đầu dòng lệnh
- Nhấn phím để di chuyển con trỏ về cuối dòng
- Nhấn phím để xóa dòng lệnh
Có thể dùng phím thay cho phím .
Các kí hiệu mô tả nhóm tập tin và phím :Khi gõ lệnh thực sự nhiều trường hợp người dùng mong muốn một tham số trong lệnh không chỉ xác định một tập tin mà lại liên quan đến một nhóm các tập tin mà tên gọi của các tập tin trong nhóm có chung một tính chất nào đó. Trong những trường hợp như vậy, người dùng cần sử dụng các kí hiệu mô tả nhóm tập tin (wildcards), chúng ta gọi là kí hiệu mô tả nhóm (còn được gọi là kí hiệu thay thế). Người ta sử dụng các kí tự *, ? và cặp hai dấu [ và ] để mô tả nhóm tập tin. Các kí tự này mang ý nghĩa như sau khi viết vào tham số tên tập tin thực sự:
"*" : là ký tự mô tả nhóm gồm mọi xâu kí tự (thay thế mọi xâu). Mô tả này cho một nhóm lớn nhất trong ba mô tả.
"?" : mô tả nhóm gồm mọi xâu với độ dài không quá 1 (thay thế một kí tự). Nhóm này là tập con của nhóm đầu tiên (theo kí tự "*").
[xâu-kí-tự] : mô tả nhóm gồm mọi xâu có độ dài 1 là mỗi kí tự thuộc xâu nói trên. Mô tả này cho một nhóm có lực lượng bé nhất trong ba mô tả. Nhóm này là tập con của nhóm thứ hai (theo kí tự "?"). Khi gõ lệnh phải gõ cả hai dấu [ và ]. Một dạng khác của mô tả nhóm này là [-] nghĩa là giữa cặp dấu ngoặc có ba kí tự trong đó kí tự ở giữa là dấu nối (dấu -) thì cách viết này tương đương với việc liệt kê mọi kí tự từ đến . Chẳng hạn, cách viết [a-d] tương đương với cách viết [abcd].
Ví dụ, giả sử khi muốn làm việc với tất cả các tập tin trong một thư mục nào đó, người dùng gõ * thay thế tham số tập-tin thì xác định được các tên tập tin sau :
info-dir initlog.conf inittab lynx.cfg
mail.rc mailcap minicom.users motd
mtab mtools.conf services shadow
shadow- shells smb.conf sysctl.conf
syslog.conf temp termcap up2date.conf
temp termcap
Nếu người dùng gõ s* (để chỉ các tên có chữ cái đầu là s) thay thế tham số tập-tin thì xác định được các tên tập tin sau:
shadow shadow- shells sysctl.conf
syslog.conf
Nếu người dùng gõ [si]* (để chỉ các tên có chữ cái đầu là s hoặc i, chú ý dùng cả hai kí tự [ và ]) thay thế tham số tập-tin thì xác định các tên tập tin sau:
info-dir initlog.conf inittab services
shadow shadow- shells smb.conf
sysctl.conf syslog.conf
*Lưu ý:
Như vậy, Linux (và UNIX nói chung) không chỉ sử dụng hai kí tự mô tả nhóm * và ? mà còn có cách thức sử dụng cặp kí tự [ và ].
Cần phân biệt cặp dấu [ và ] được sử dụng khi người dùng gõ lệnh có ý nghĩa hoàn toàn khác với ý nghĩa của chúng khi được sử dụng trong mô tả lệnh.
Hơn thế nữa, Linux còn cung cấp cho người dùng cách thức sử dụng phím để hoàn thành nốt tên tập tin (tên thư mục) trong lệnh. Ví dụ, khi chúng ta gõ dòng lệnh
# ls /ulocalbthì nó cũng tương đương như gõ dòng lệnh (và đây chính là nội dung xuất hiện tại dấu nhắc shell):
# ls /usr/local/binvới điều kiện trong thư mục /usr chỉ có thư mục local được bắt đầu bởi chữ "l" và trong thư mục local cũng chỉ có thư mục bin được bắt đầu bởi chữ "b".
Trong trường hợp nếu như một kí tự chưa đủ xác định, người dùng cần gõ thêm kí tự tiếp theo trong tên tập tin (tên thư mục) và nhấn phím để hoàn thành dòng lệnh.