DÒNG LỆNH
Xuất, nhập, đổi hướng
hiện việc xuất, nhập và báo lỗi. Các dạng mô tả chuẩn này có thể được định nghĩa lại bởi bất kỳ tiến trình nào. Trong hầu hết các trường hợp, mơ tả stdin là bàn phím, và hai dạng mô tả xuất + báo lỗi (stdout và stderr) là màn hình.
DỊNG LỆNH
Các giá trị cho stdin, stderr, và stdout
stdin 0
stdout 1
stderr 2
• Đổi hướng stdout
program > file
Dữ liệu theo hướng từ trái sang phải
fdisk –l > partions.txt
Câu lệnh này sẽ thực hiện tiện ích fdisk và kết quả đầu ra sẽ được ghi vào file
partitions.txt. Kết quả khơng được hiển thị ra màn hình. Chú ý rằng shell sẽ thực
hiện câu lệnh này bắt đầu từ bên phải. Như vậy, file partitions.txt sẽ được tạo ra nếu như nó chưa tồn tại và sẽ bị ghi đè vào khi toán tử ‘>’ được dùng.
• Đổi hướng stdin
program < file
Trong trường hợp này dữ liệu theo hướng từ phải sang trái. Toán từ ‘<’ chỉ được sử dụng cho stdin và không thể dùng cho stdout.
Nếu file instruction chứa trên mỗi dịng các kí tự p, m, và q thì trong ví dụ sau đây
fdisk sẽ in bảng phân vùng (partition) của /dev/hda, in tiện ích trợ giúp, và cuối
cùng là thoát khỏi câu lệnh.
fdisk /dev/hda < instructions
• Đổi hướng stderr
program 2> errorfile
stdin, stdout, và stderr được dại diện bằng 0, 1, và 2 tương ứng. Câu lệnh trên cho phép chúng ta chọn luồng stderr.
DỊNG LỆNH
find / 2> /dev/null
• Các lệnh đường ống
Program1| Program2
Các đường ống (pipe) được dại diện bằng kí hiệu “|”. Dịng dữ liệu chuyển từ trái sang phải. Hình sau đây minh họa stdout của một tiến trình được chuyển hướng đến stdin của một tiến trình khác như thế nào.
cat /var/log/messages | less
Các chuyển hướng của dữ liệu xuất được phân tách từ phải sang trái, do đó các lệnh sau là không tương đương
Do-command 2>&1 >logfile Do-command >logfile 2>&1
Dấu ngoặc và Các ký tự Đa nghĩa (Metacharacter)