วิธีใช้คำสั่ง 'cat' และ 'tac' พร้อมตัวอย่างใน Linux
บทความนี้เป็นส่วนหนึ่งของชุด Linux Tricks and Tips ในบทความนี้เราจะกล่าวถึงการใช้งานพื้นฐานของคำสั่ง cat (คำสั่งที่ใช้บ่อยที่สุดใน Linux) และ tac ( ย้อนกลับของคำสั่ง cat – พิมพ์ไฟล์ในลำดับย้อนกลับ) พร้อมตัวอย่างที่เป็นประโยชน์
อ่านเพิ่มเติม: 13 ตัวอย่างคำสั่ง 'cat' ที่มีประโยชน์ใน Linux
การใช้งานพื้นฐานของคำสั่ง Cat ใน Linux
คำสั่ง Cat ย่อมาจาก Concatenate เป็นหนึ่งในคำสั่งที่ใช้มากที่สุดในระบบ *nix การใช้คำสั่งขั้นพื้นฐานที่สุดคือการอ่านไฟล์และแสดงเป็น stdout ซึ่งหมายถึงการแสดงเนื้อหาของไฟล์บนเทอร์มินัลของคุณ
cat file.txt
การใช้งานคำสั่ง cat อีกประการหนึ่งคือการอ่านหรือรวมไฟล์หลายไฟล์เข้าด้วยกันแล้วส่งออกไปยังจอภาพดังที่แสดงในตัวอย่างด้านล่าง
cat file1.txt file2.txt file3.txt
คำสั่งนี้ยังสามารถใช้เพื่อเชื่อมต่อ (รวม) ไฟล์หลายไฟล์ให้เป็นไฟล์เดียวโดยใช้ตัวดำเนินการเปลี่ยนเส้นทาง Linux “> ”
cat file1.txt file2.txt file3.txt > file-all.txt
โดยใช้ตัวเปลี่ยนเส้นทางผนวก คุณสามารถเพิ่มเนื้อหาของไฟล์ใหม่ที่ด้านล่างของ file-all.txt
ด้วยไวยากรณ์ต่อไปนี้
cat file4.txt >> file-all.txt
คำสั่ง cat สามารถใช้เพื่อคัดลอกเนื้อหาของไฟล์ไปยังไฟล์ใหม่ ไฟล์ใหม่สามารถเปลี่ยนชื่อได้ตามต้องการ ตัวอย่างเช่น คัดลอกไฟล์จากตำแหน่งปัจจุบันไปยังไดเร็กทอรี /tmp/
cat file1.txt > /tmp/file1.txt
คัดลอกไฟล์จากตำแหน่งปัจจุบันไปยังไดเร็กทอรี /tmp/
และเปลี่ยนชื่อ
cat file1.txt > /tmp/newfile.cfg
การใช้คำสั่ง cat น้อยลงคือการสร้างไฟล์ใหม่โดยใช้ไวยากรณ์ด้านล่าง เมื่อแก้ไขไฟล์เสร็จแล้ว ให้กด CTRL+D
เพื่อบันทึกและออกจากไฟล์ใหม่
cat > new_file.txt
หากต้องการกำหนดหมายเลขบรรทัดเอาต์พุตทั้งหมดของไฟล์ รวมถึงบรรทัดว่าง ให้ใช้สวิตช์ -n
cat -n file-all.txt
หากต้องการแสดงเฉพาะจำนวนบรรทัดที่ไม่ว่างแต่ละบรรทัด ให้ใช้สวิตช์ -b
cat -b file-all.txt
ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง Linux cat หรือไม่ จากนั้นอ่านบทความของเราเกี่ยวกับตัวอย่างคำสั่ง 'cat' ที่มีประโยชน์ 13 ตัวอย่างใน Linux
เรียนรู้วิธีใช้คำสั่ง Tac ใน Linux
ในทางกลับกัน คำสั่งที่รู้จักน้อยและใช้น้อยในระบบ *nix คือคำสั่ง tac
Tac เป็นเวอร์ชันย้อนกลับของคำสั่ง cat
(สะกดข้างหลังด้วย) ซึ่งพิมพ์แต่ละบรรทัดของไฟล์โดยเริ่มจากบรรทัดล่างสุดและจบที่บรรทัดบนสุดตามมาตรฐานเครื่องของคุณ เอาท์พุท
tac file-all.txt
หนึ่งในตัวเลือกที่สำคัญที่สุดของคำสั่งจะแสดงด้วยสวิตช์ -s
ซึ่งแยกเนื้อหาของไฟล์ตามสตริงหรือคำสำคัญออกจากไฟล์
tac file-all.txt --separator "two"
ขั้นต่อไป การใช้คำสั่ง tac ที่สำคัญที่สุดคือสามารถให้ความช่วยเหลือได้อย่างดีในการแก้ไขข้อบกพร่องของไฟล์บันทึก โดยย้อนกลับลำดับเวลาของเนื้อหาบันทึก
tac /var/log/auth.log
Or to display the last lines
tail /var/log/auth.log | tac
ผลลัพธ์ตัวอย่าง
tecmint@tecmint ~ $ tac /var/log/auth.log
pr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root
Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root
Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root
Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root
Apr 6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root
...
เช่นเดียวกับคำสั่ง cat
tac
ทำงานได้ดีเยี่ยมในการจัดการไฟล์ข้อความ แต่ควรหลีกเลี่ยงในไฟล์ประเภทอื่น โดยเฉพาะไฟล์ไบนารี่หรือบนไฟล์ที่บรรทัดแรก หมายถึงโปรแกรมที่จะรัน