Lỗi chuẩn
Thuộc phần Kiến thức cơ bản trong hành trình Terminal của Coddy. Bài học 41 trên 82.
Luồng dữ liệu thứ ba và cuối cùng là lỗi tiêu chuẩn, viết tắt là stderr. Luồng này dành riêng cho thông báo lỗi và cảnh báo, giúp tách chúng khỏi đầu ra thông thường.
Khi một lệnh thất bại, thông báo lỗi được gửi đến đầu ra lỗi chuẩn, không phải đầu ra chuẩn:
ls nonexistent_folderThông báo lỗi bạn thấy được gửi qua stderr. Việc tách riêng này rất quan trọng vì bạn có thể chuyển hướng lỗi độc lập với đầu ra thông thường.
Để chuyển hướng lỗi tiêu chuẩn, hãy dùng 2> thay cho >:
ls nonexistent_folder 2> errors.txt2 là số bộ mô tả tệp của stderr (stdout là 1, stderr là 2). Lệnh này lưu thông báo lỗi vào errors.txt mà không làm nội dung trong terminal bị ảnh hưởng.
Bạn có thể chuyển hướng cả hai luồng đến các tệp khác nhau:
ls existing_folder nonexistent_folder > output.txt 2> errors.txtĐầu ra thành công sẽ được ghi vào output.txt, còn mọi lỗi sẽ được ghi vào errors.txt. Để gửi cả hai luồng vào cùng một tệp, hãy dùng 2>&1:
ls existing_folder nonexistent_folder > all_output.txt 2>&1Lệnh này chuyển hướng stderr đến nơi stdout đang được gửi tới, gộp mọi thứ vào một tệp.
Thử thách
DễDùng toán tử 2> để chuyển hướng thông báo lỗi vào một tệp. Chạy lần lượt hai lệnh sau:
- Thử liệt kê thư mục có tên
missing_folderbằngls, rồi chuyển hướng thông báo lỗi vào tệp có tênerrors.txt - Dùng
catđể hiển thị nội dung củaerrors.txt
Gợi ý: Cú pháp là
ls foldername 2> filename. Thông báo lỗi sẽ đi vào tệp thay vì xuất hiện trên màn hình. Dùngcatđể xác nhận thông báo đã được ghi lại.
Tự làm thử
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức cơ bản
4Thư mục
Tạo thư mụcSao chép thư mụcDi chuyển và đổi tên thư mụcXóa thư mụcÔn tập: thao tác với thư mục2Điều hướng
In đường dẫn thư mục hiện tạiLiệt kê tệpChuyển thư mụcĐường dẫn tuyệt đối và tương đốiThư mục chính và thư mục gốcÔn tập: tìm đường8Chuyển hướng
Đầu ra chuẩnGhi đè vào tệpGhi thêm vào tệpĐầu vào chuẩnLỗi chuẩnÔn tập: Công cụ tạo nhật ký6Ký tự đại diện và mẫu
Ký tự đại diện dấu saoKý tự đại diện dấu hỏiKý tự đại diện trong ngoặc vuôngKết hợp ký tự đại diệnÔn tập: thao tác có chọn lọc9Đường ống
Đường ống là gìNối hai lệnh bằng đường ốngNối nhiều lệnh bằng đường ốngDùng đường ống với grepÔn tập: luồng xử lý dữ liệuTự luyện tập: Playground Terminal