Mọi quy trình Trong Linux tạo ra ba luồng dữ liệu, stdin, stdout và stderr:
- stdin : Nhận đầu vào từ người dùng thông qua bàn phím
- stdout : Hiển thị đầu ra trên màn hình
- stderr : Hiển thị thông tin lỗi trên màn hình
Mọi luồng dữ liệu có một id số:
Id số | Tên |
0 | stdin |
1 | stdout |
2 | stderr |
Hãy giải thích chi tiết hơn về chuyển hướng:
Cách chuyển hướng đầu ra Chuẩn và Lỗi chuẩn trong Bash:
Để chuyển hướng đầu ra chuẩn của lệnh, chúng ta sẽ sử dụng 1 với toán tử chuyển hướng lớn hơn dấu>:
$ls 1>stdout.txtLệnh trên sẽ tạo một tệp và đặt đầu ra tiêu chuẩn của lệnh ls trong tệp stdout.txt.
Để đọc tệp stdout.txt, hãy sử dụng:
$con mèostdout.txt
Chúng tôi cũng có thể chuyển hướng lỗi chuẩn đến một tệp bằng cách sử dụng lệnh:
$con mèomyfile.txt2>stderr.txt
Để xem tệp stderr.txt, hãy sử dụng:
$con mèostderr.txt
Hãy chắc chắn rằng sử dụng 2 sẽ lớn hơn dấu>. Vì không có tệp myfile.txt trong thư mục, lệnh cat sẽ đưa ra một lỗi sẽ được thêm vào tệp stderr.txt.
Các đầu ra tiêu chuẩn này cũng có thể được chuyển hướng bằng một lệnh duy nhất, sử dụng:
$ls 1>stdout.txt2>stderr.txt
Đầu ra của lệnh ls sẽ được viết trong stdout.txt tệp, nhưng stderr.txt sẽ vẫn trống vì sẽ không có lỗi.
Bây giờ chúng ta hãy làm cho stderr.txt:
$con mèomyfile.txt1>stdout.txt2>stderr.txt
Sử dụng lệnh được đề cập bên dưới để đọc stderr.txt.
$con mèostderr.txt
Và tất nhiên, stdout.txt sẽ trống.
Phần kết luận :
Lệnh Linux khi thực thi đưa ra đầu ra tiêu chuẩn có thể là đầu ra thành công hoặc đầu ra lỗi. Nói chung, các kết quả đầu ra này không thể được chuyển hướng bằng các toán tử chuyển hướng; chúng ta cần sử dụng id số cụ thể với dấu>. Trong hướng dẫn này, chúng tôi đã học cách sử dụng các phím số này để chuyển hướng đầu ra tiêu chuẩn đến một tệp có các ví dụ.