Chuyển đến nội dung chính
Mô-đun 3 · Bài học 1 trong tổng số 26/11 trong khóa học~15 min
Bài học theo mô-đun (1/2)

Đầu ra và chuyển hướng (echo, cat, >)

Trong Linux, hầu hết tất cả các lệnh đều đọc dữ liệu từ luồng đầu vào và ghi kết quả vào luồng đầu ra. Các kênh này được gọi là luồng tiêu chuẩn:

  • Đầu vào tiêu chuẩn (stdin): Luồng mà lệnh đọc đầu vào của nó (mặc định là bàn phím).
  • Đầu ra tiêu chuẩn (stdout): Luồng mà lệnh ghi đầu ra thành công (mặc định là màn hình đầu cuối).
  • Lỗi Tiêu chuẩn (stderr): Luồng mà lệnh ghi thông báo lỗi của nó (mặc định là màn hình).

Bằng cách sử dụng dòng lệnh, chúng ta có thể chuyển hướng các luồng này để lưu kết quả trực tiếp vào tệp.


In văn bản: echo

Lệnh echo chỉ cần ghi các đối số của nó vào đầu ra tiêu chuẩn (màn hình):

Bash
echo "Hello everyone"

Chuyển hướng đầu ra (Ghi đè): >

Nếu bạn muốn lưu kết quả đầu ra của lệnh vào một tệp thay vì hiển thị nó trên màn hình, bạn có thể sử dụng toán tử chuyển hướng lớn hơn >:

Bash
echo "Hello everyone" > greetings.txt

Lệnh này chạy echo và chuyển hướng đầu ra của nó tới tệp greetings.txt.

[! QUAN TRỌNG] Nếu tệp greetings.txt không tồn tại thì nó sẽ được tạo. Nếu nó đã tồn tại, nội dung hiện có của nó sẽ bị xóa hoàn toàn và ghi đè bằng đầu ra mới.


Đọc nội dung tệp: cat

Để xem nhanh nội dung của một hoặc nhiều tệp văn bản, hãy sử dụng lệnh cat (viết tắt của concatenate):

Bash
cat greetings.txt

Nối thêm đầu ra: >>

Nếu bạn muốn nối dòng mới vào cuối tệp hiện có thay vì ghi đè lên nó, bạn phải sử dụng toán tử nối thêm >>:

Bash
echo "New line of text" >> greetings.txt

Bây giờ, đọc tệp bằng cat greetings.txt sẽ hiển thị cả dòng đầu tiên và dòng thứ hai.


Ví dụ sử dụng và các lỗi thường gặp

Bạn có thể chuyển nhiều tệp tới cat cùng lúc để hiển thị chúng một cách tuần tự (nối):

Bash
cat notes.txt info.txt
# Output:
# Keep learning Linux!
# Linux is awesome.

Bạn có thể chuyển hướng đầu ra kết hợp sang tệp thứ ba bằng toán tử >:

Bash
cat notes.txt info.txt > combined.txt

Nếu bạn cố đọc một tệp không tồn tại, cat sẽ viết thông báo lỗi:

Bash
cat nonexistent_file.txt
# Output:
# cat: nonexistent_file.txt: No such file or directory

Hãy tự mình thử

Bài tập 1: Tạo file có lời chào

tập thể dục#linux.m3.l1.e1
Nỗ lực: 0Đang tải…

Tạo một tệp có tên 'hello.txt' chứa chính xác văn bản 'Hello World' bằng cách sử dụng echo và toán tử >.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Sử dụng echo theo sau là chuỗi trong dấu ngoặc kép, toán tử > và hello.txt.

Giải pháp khả dụng sau 3 lần thử

Bài tập 2: Nối ghi chú vào một tập tin

tập thể dục#linux.m3.l1.e2
Nỗ lực: 0Đang tải…

Thêm dòng “Linux rất thú vị” vào cuối tệp “notes.txt” hiện có mà không xóa nội dung hiện tại của nó.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Sử dụng toán tử >> để nối văn bản vào tệp Notes.txt.

Giải pháp khả dụng sau 3 lần thử

Bài 3: Nối file

tập thể dục#linux.m3.l1.e3
Nỗ lực: 0Đang tải…

Ghép nối nội dung của các tệp 'notes.txt' và 'info.txt' và lưu kết quả kết hợp vào một tệp mới có tên 'combined.txt'.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Sử dụng cat theo sau là tên của hai tệp nguồn và chuyển hướng đầu ra bằng > đến tệp đích.

Giải pháp khả dụng sau 3 lần thử