Cách dùng lệnh cat và echo Image Cách dùng lệnh cat và echo

1.Lệnh cat.

Lệnh cat là một phần trong các phiên bản đầu tiên của Unix.

Phiên bản cat đi kèm trong GNU coreutils được viết bởi Torbjorn Granlund và Richard Stallman .

Lệnh cat (concatenate) là một trong những tiện ích của hệ điều hành Linux được dùng để đọc và in tệp, dùng để xem nội dung tệp. Để xem tệp, chúng ta sử dụng:

cat <thamso> <ten tep>

Ví dụ: Dùng cat để hiển thị nội dung /etc/passwd.

[root@test1 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

Tuy nhiên, mục đích chính của lệnh cat là kết hợp (ghép) nhiều tệp lại với nhau. Cú pháp cách kêt hợp được thể hiện qua bảng sau:

LệnhChức năng
cat file1 file2Nối nhiều tệp lại với nhau và hiển thị đầu ra. Nghĩa là toàn bộ tệp thứ 2 theo sau tệp đầu tiên.
cat file1 file2 > newfileKết hợp nhiều tệp lại với nhau và lưu kết quả ra tệp mới
cat file >> exitstingfileNối tệp vào cuối tệp hiện có
cat > fileCác dòng tiếp theo được nhập đi vào tệp, muốn dừng nhập dùng Ctrl + D
cat >> fileCác dòng tiếp theo sẽ được thêm tiếp tục vào tệp, muốn dừng nhập dùng Ctrl + D

Ví dụ: Dùng lệnh cat nối 2 tệp tên file1 và file2 lại với nhau và hiển thị.

[root@test1 dang]# cat > file1
Hello
This is file1
[root@test1 dang]# cat > file2
Hello
This is file2
[root@test1 dang]# cat file1 file2
Hello
This is file1
Hello
This is file2

Ví dụ: Dùng lệnh cat kết hợp hai file1 file2 lại với nhau và lưu kết quả ra file3

[root@test1 dang]# cat file1
Hello
This is file1
[root@test1 dang]# cat file2
Hello
This is file2
[root@test1 dang]# cat file1 file2 > newfile
[root@test1 dang]# cat newfile
Hello
This is file1
Hello
This is file2

Ví dụ: Dùng lệnh cat nối file1 cuối file2

[root@test1 dang]# cat file1
Hello
This is file1
[root@test1 dang]# cat file2
Hello
This is file2
[root@test1 dang]# cat file1 >> file2
[root@test1 dang]# cat file2
Hello
This is file2
Hello
This is file1

Ví dụ: Dùng lệnh cat để tạo file mới

[root@localhost]# cat > file
Helo
This is file
[root@localhost]# cat file
Helo
This is file

Ví dụ: Dùng lệnh cat để viết tiếp vào file có sẳn

[root@localhost]# cat >> file
This is next in ine
[root@localhost]# cat file
Helo
This is file
The next line

Lệnh tac in các dòng của tệp theo thứ tự ngược lại. Mỗi dòng vẫn giữ nguyên, nhưng thứ tự các dòng được đảo ngược. Cú pháp của lệnh tac hoàn toàn giống với lệnh cat.

Qua ví dụ dưới đây chứng minh cho việc hiển thị nguợc của lệnh tac so với cat:

[root@localhost]# cat file1
Hello
This is file1
[root@localhost]# tac file1
This is file1
Hello

Chúng ta có thể sử dụng các tham số vào lệnh cat và lệnh tac để đáp ứng các nhu cầu cần thiết. Sử dụng man cat đối với lệnh cat và sử dụng man tac đối với lệnh tac để hiển thị các tham số.

Lệnh cat có thể được sử dụng để đọc đầu vào tiêu chuẩn nếu không có tệp nào được chỉ định. Chúng ta sử dụng > để tạo và thêm các dòng vào một tệp mới và >> để nối các dòng (hoặc tệp) vào một tệp hiện có. Chúng tôi đã đề cập đến điều này khi nói về cách tạo tập tin mà không cần trình chỉnh sửa.

Để tạo một tệp mới, tại dấu nhắc lệnh gõ cat > <filename> và nhấn phím Enter.

Lệnh này dùng tạo một tệp mới và cho phép người dùng chỉnh sửa hay nhập văn bản. Sau khi bạn nhập xong văn bản được yêu cầu, nhấn CTRL-D ở đầu dòng tiếp theo để lưu và thoát chỉnh sửa.

Một cách khác để tạo tệp mới dùng cat là dùng Here document cat> << EOF > filenam. Một tệp mới sẽ được tạo và chúng ta có thể nhập nội dung cần thiết vào. Để lưu và thoát, nhập EOF ở đầu một dòng.

Lưu ý: EOF dùng trong trường hợp này phân biệt chữ hoa chữ thường. Chúng ta cũng có thể sử dụng một từ khác, chẳng hạn như END_TEXT.

[root@test1 ~]# cat << EOF > newfile
> Hello
> This is newfile
> EOF
[root@test1 ~]# cat newfile
Hello
This is newfile
[root@test1 ~]# cat << EOF >> newfile
> The next line
> EOF
[root@test1 ~]# cat newfile
Hello
This is newfile
The next line

2. Lệnh echo và các tham số của lệnh này về \n và \t

Lệnh echo dùng để hiển thị nội dung văn bản. Chúng ta có thể sử dụng lệnh echo như sau:

echo string

Hoặc

echo 'string'

Hoặc

echo "string"

Cả ba cú pháp trên là hoàn toàn giống nhau.

Các tùy chọn -e , cùng với các công thức sau đây, được sử dụng để cho phép các chuỗi ký tự đặc biệt, chẳng hạn như các ký tự xuống dòng hoặc tab ngang.

  • \n đại diện cho dòng mới
  • \t đại diện cho tab ngang.

Ví dụ: Sử dụng -e và các công thức kèm theo

Sử dụng -e và các công thức

Bảng liệt kệ lệnh và cú pháp của caáh sử dụng lệnh echo:

LệnhChức năng
echo "string" > newfileDùng để thêm một chuổi vào một tệp mới.
echo "string" >> newfileDùng để nối một chuổi vào cuối tệp đã tồn tại.
echo $VARIABLEDùng để hiển thị nội dung biến môi trường.

Ví dụ: Dùng lệnh echo để thêm chuổi "This is newfile" vào tệp newfile.

[root@localhost dang]# echo "This is newfile" > newfile
[root@localhost dang]# cat newfile
This is newfile

Ví dụ: Dùng lệnh echo để thêm chuổi "Th next line" vào dòng tiếp theo của tệp newfile.

[root@localhost dang]# cat newfile
This is newfile
[root@localhost dang]# echo "The next line" >> newfile
[root@localhost dang]# cat newfile
This is newfile
The next line

Lệnh echo đặc biệt hữu ích để xem các giá trị của các biến môi trường.

Ví dụ: Dùng lệnh echo để xem biến môi trường $PATH:

[root@localhost dang]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

Lệnh echo hổ trợ in kết quả được tô màu:

Đối với chuỗi ký tự, có các mã màu được sử dụng phổ biến sau:

  • reset – 0
  • black – 30
  • red – 31
  • green – 32
  • yellow – 33
  • blue – 34
  • magenta – 35
  • cyan – 36
  • white – 37

Để in ra 1 đoạn văn bản được tô màu, dùng lệnh sau:

echo -e "\e[Mamau doanvanban \e[0m"

Trong đó"

  • \e[Mamau => là chuỗi escape thiết lập màu.
  • \e[0m => reset lại màu mặc định

Ví dụ: In đoạn văn bản có màu:

In đoạn văn bản có màu

Đối với màu nền:

  • reset – 0
  • black – 40
  • red- 41
  • green – 42
  • yellow – 43
  • blue – 44
  • magenta – 45
  • cyan – 46
  • white – 47

Để đổi màu nền chúng ta thay mã màu phía trước:

echo -e "\e[42m Green Background \e[0m"