Điều hướng Input, Output trong Linux.
1.Streams
Input và output trong Linux được chia thành ba luồng: - standard input(stdin) được đánh số là 0 - standard output(stdout) được đánh số là 1 - standard error(stderr) được đánh số là 2

Standard input được truyền vào từ bàn phím còn standard output và standard error đều được hiển thị lên màn hình của người dùng

2. Standard Input
- Luồng standard input mang dữ liệu từ người dùng đến chương trình. Standard input thường được truyền vào từ bàn phím.
- Standard input bị kết thúc bởi EOF. EOF có thể được ghi vào bằng ctrl+d.
3. Standard output.
- Standard output in ra những dữ liệu mà được sinh ra bởi chưonwg trình. Khi mà standard output không được điều hướng, nó sẽ xuất văn bản ra terminal. Ví dụ:

- Nếu không có tùy chọn nào thì
echosẽ hiển thị bất kì argument được truyền cho nó trong command line. Một argument là một cái gì nó mà được nhận bởi chương trình.
4. Standard error
Standard error viết ra lỗi được tạo ra bởi chương trình trong quá trình nó thực thi. Giống như Stdout, standard error cũng được in ra màn hình. Ví dụ:

5. Điều hướng luồng
Câu lệnh với dấu ngoặc nhọn đơn sẽ ghi đè lên nội dung đã tồi tại ở điểm đíc. Ghi đè - > - standard output - < - standard input - 2> - standard error
Câu lệnh với dấu ngoặc nhọn kép sẽ không ghi đè lên nội dung đã tồn tại ở điểm đích - » - standard output - « - standard input - 2» - standard error
Ví dụ:

6. Pipes
- Pipe(đường ống) thường được sử dụng để điều hướng output stream từ một chương trình đến chương trình khác. Output từ chương trình đầu sẽ không in ra mà sẽ gửi đến chương trình sau, output của chương trình cuối cùng sẽ được in ra.
- Pipe được đại diện bởi thanh dọc |.
ví dụ:
ls | lessLệnh ls sẽ liệt kê các file, thư mục trong thư mục hiện tại và đưa dữ liệu này cho less để hiển thị.
- Chức năng của pipe có vẻ giống với > và », nhưng sự khác biệt ở đây là pipe dùng để điều hướng output từ lệnh này sang lệnh khác trong khi > và » điều hướng output đến riêng một file.
7. Filter
Một số filter thông dụng:
grep- dùng để lọc các dòng văn bản mà phù hợp với điều kiện được đưa vào grepegrep, fgrep, rgrep- tương đương với lệnhgrep -E,grep -Fvàgrep -r.tee- điều hướng standard input đến cả standard output và một hay nhiều file nữa.tr- tìm và thay thế một chuỗi với một chuỗi khác.wc- đếm ký tự, dòng và từ.cut- là lệnh có thể chọn cột trong một file phụ thuộc vào một dâu phân cách.sed- như một text editer cho các luồng.sort- là lệnh dùng để sắp xếp stdin và in kết quả ra stdout.diff- dùng để so sánh hai file.
Ví dụ
who | wc -l: đếm số người đăng nhập vào hệ thốngcat /etc/passwd | cut -d: -f1 | sort | uniqhiển thị danh sách các user được sắp xếp và loại bỏ các user bị lặp.[lệnh] > /dev/nullđể xóa output của một lệnh.[lệnh] > /dev/null 2>&1để xóa stdout và stderr của một lệnh vì stderr được điều hướng đến stdout.
8. Unix tool cơ bản
findhiển thị tất cả các file (đường dẫn tới file) trong một thư mục chỉ định hoặc tìm kiếm tất cả các file phù hợp với một yêu cầu nào đó.find /sẽ liệt kê tất cả các file có trong hệ thống.find . -name "*.conf"sẽ tìm các file kết thúc bằng .conf trong thư mục hiện tại.
locatetìm file nhưng khác với find, locate sẽ tìm file trong *mục lục của nó. Thường mục lục sẽ cập nhật 1 lần mỗi ngày. chạy lệnhupdatedbđể cập nhật lại mục lục cho locate.datehiển thị thứ, ngày, giờ, múi giờ,…calhiển thị tháng hiện tại.timedatectlhiển thị thông tin ngày giờ, hoặc cài đặt ngày giờ,..hostnamectlđể hiển thị hoặc cài đặt các thông số như hostname, location, chassic,..

tardùng để nén hoặc giải nén file.