บทความนี้เป็นส่วนหนึ่งของชุด Linux Tricks and Tips ในบทความนี้เราจะครอบคลุมการใช้งานพื้นฐานของคำสั่ง cat (คำสั่งที่ใช้บ่อยที่สุดใน Linux) และ tac (คำสั่งย้อนกลับของ cat – พิมพ์ไฟล์ในลำดับย้อนกลับ) พร้อมตัวอย่างปฏิบัติจริง
อ่านเพิ่มเติม: 13 ตัวอย่างการใช้คำสั่ง 'cat' ที่มีประโยชน์ใน Linux
การใช้งานพื้นฐานของคำสั่ง Cat ใน Linux
Cat ย่อมาจาก Concatenate เป็นหนึ่งในคำสั่งที่ใช้มากที่สุดในระบบ *nix การใช้งานพื้นฐานที่สุดคืออ่านไฟล์และแสดงผลบน stdout หมายถึงแสดงเนื้อหาไฟล์บนเทอร์มินัลของคุณ
# cat file.txt
การใช้งานอีกอย่างของคำสั่ง cat คืออ่านหรือรวมหลายไฟล์เข้าด้วยกันและส่ง Output ไปยังหน้าจอ ตามตัวอย่างด้านล่าง
# cat file1.txt file2.txt file3.txt
คำสั่งนี้ยังสามารถใช้รวม (Join) หลายไฟล์เป็นไฟล์เดียวโดยใช้ Redirection Operator ของ Linux คือ “>”
# cat file1.txt file2.txt file3.txt > file-all.txt
ด้วย Append Redirector คุณสามารถเพิ่มเนื้อหาของไฟล์ใหม่ไปท้าย file-all.txt ด้วย Syntax ดังนี้
# cat file4.txt >> file-all.txt
คำสั่ง cat สามารถใช้คัดลอกเนื้อหาไฟล์ไปสู่ไฟล์ใหม่ได้ ไฟล์ใหม่สามารถตั้งชื่อได้ตามต้องการ ตัวอย่าง คัดลอกไฟล์จากตำแหน่งปัจจุบันไปยังไดเรกทอรี /tmp/
# cat file1.txt > /tmp/file1.txt
คัดลอกไฟล์จากตำแหน่งปัจจุบันไป /tmp/ และเปลี่ยนชื่อ
# cat file1.txt > /tmp/newfile.cfg
การใช้งานที่น้อยกว่าของ cat คือสร้างไฟล์ใหม่ด้วย Syntax ด้านล่าง เมื่อแก้ไขเสร็จ กด CTRL+D เพื่อบันทึกและออกจากไฟล์ใหม่
# cat > new_file.txt
เพื่อให้นับหมายเลขบรรทัดทั้งหมดของไฟล์ รวมถึงบรรทัดว่าง ใช้สวิตช์ -n
# cat -n file-all.txt
เพื่อแสดงหมายเลขเฉพาะบรรทัดที่ไม่ใช่บรรทัดว่าง ใช้สวิตช์ -b
# cat -b file-all.txt
อยากเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่ง cat ของ Linux? อ่านบทความของเราเกี่ยวกับ 13 ตัวอย่างการใช้ 'cat' ที่มีประโยชน์ใน Linux
เรียนรู้วิธีใช้คำสั่ง Tac ใน Linux
อีกฝั่งหนึ่ง คำสั่ง tac เป็นคำสั่งที่รู้จักน้อยและใช้น้อยกว่าในระบบ *nix Tac เป็นเวอร์ชันย้อนกลับของคำสั่ง cat (สะกดย้อนกลับเช่นกัน) ซึ่งพิมพ์แต่ละบรรทัดของไฟล์เริ่มจากบรรทัดล่างสุดจนถึงบรรทัดบนสุดไปยัง Standard Output ของเครื่อง
# tac file-all.txt
ตัวเลือกสำคัญที่สุดของคำสั่งนี้คือ สวิตช์ -s ซึ่งแยกเนื้อหาของไฟล์โดยอิงจาก String หรือ Keyword จากไฟล์
# tac file-all.txt --separator "two"
การใช้งานสำคัญอีกอย่างของ tac คือช่วยได้มากในการ Debug ไฟล์ Log โดยการย้อนลำดับเวลาของเนื้อหา Log
$ tac /var/log/auth.log Or to display the last lines $ tail /var/log/auth.log | tac
ตัวอย่าง Output
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 ... (ตัดทอน)
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) ... (ตัดทอน)
เหมือนกับคำสั่ง cat คำสั่ง tac ทำงานได้ดีในการจัดการไฟล์ข้อความ แต่ควรหลีกเลี่ยงการใช้กับไฟล์ประเภทอื่น โดยเฉพาะไฟล์ Binary หรือไฟล์ที่บรรทัดแรกระบุโปรแกรมที่จะรันมัน