Bash:
การจัดการไฟล์ด้วย CLI แบบใช้บรรทัดเดียว
วิธีทำ:
นี่คือรายการคำสั่งที่มีพลังบางอย่างและสิ่งที่มันสามารถทำได้:
- การสร้างไฟล์และเขียนข้อความลงในไฟล์นั้น:
echo "Hello, Linux Journal Readers!" > greetings.txt
คำสั่งนี้สร้าง (หรือเขียนทับหากมีอยู่แล้ว) ไฟล์ greetings.txt
พร้อมกับข้อความ “Hello, Linux Journal Readers!”.
- การเพิ่มข้อความเข้าไปในไฟล์ที่มีอยู่แล้ว:
echo "Welcome to Bash programming." >> greetings.txt
คำสั่งนี้เพิ่มบรรทัดใหม่ “Welcome to Bash programming.” ไปที่ท้ายไฟล์ greetings.txt
.
- การอ่านเนื้อหาของไฟล์:
cat greetings.txt
ผลลัพธ์:
Hello, Linux Journal Readers!
Welcome to Bash programming.
- ค้นหาบรรทัดเฉพาะในไฟล์ (โดยใช้
grep
):
grep "Bash" greetings.txt
ค้นหาและแสดงบรรทัดที่มีคำว่า “Bash”; ตัวอย่างนี้จะแสดงว่า “Welcome to Bash programming.”
- แสดงรายการไฟล์ทั้งหมดใน directory ปัจจุบัน โดยเรียงตามวันที่แก้ไข:
ls -lt
แสดงไฟล์ที่ถูกเรียงตามเวลาการแก้ไข ใหม่ที่สุดอยู่ข้างบน.
- เปลี่ยนชื่อไฟล์จำนวนมากจาก
.txt
เป็น.md
(Markdown):
for file in *.txt; do mv "$file" "${file%.txt}.md"; done
ลูปนี้เรียกดูไฟล์แต่ละไฟล์ .txt
ใน directory ปัจจุบันและเปลี่ยนชื่อเป็น .md
.
คำสั่งเหล่านี้ใช้ประโยชน์จากพลังของ Bash สำหรับการจัดการไฟล์อย่างรวดเร็วและมีประสิทธิภาพ ซึ่งเป็นทักษะที่โปรแกรมเมอร์ทุกคนจะพบว่าจำเป็นไม่ได้
ศึกษาลึก
Bash shell, เป็นส่วนหนึ่งบนระบบที่คล้าย UNIX มากที่สุด, พัฒนามาจาก Bourne Shell (sh), ซึ่งเปิดตัวในเวอร์ชัน 7 Unix ในปี 1979. Bash มีการพัฒนาความสามารถของตัวเองจากเวอร์ชันก่อน ๆ ด้วยคุณสมบัติการเขียนสคริปต์ที่ดีขึ้นซึ่งทำให้มันได้รับความนิยมในหมู่ผู้ดูแลระบบและโปรแกรมเมอร์
แม้ว่า Bash จะมีพลังสูงสำหรับการจัดการไฟล์ แต่ก็มาพร้อมกับข้อเสีย การเป็นพื้นฐานด้านข้อความ การดำเนินการที่ซับซ้อน (เช่น ที่เกี่ยวข้องกับข้อมูลแบบไบนารี) อาจจะยุ่งยากหรือไม่มีประสิทธิภาพเมื่อเปรียบเทียบกับการใช้ภาษาโปรแกรมที่ออกแบบมาพร้อมกับความสามารถเหล่านี้ อยู่ในใจ เช่น Python
ทางเลือกอื่นของการเขียนสคริปต์ Bash สำหรับการจัดการไฟล์อาจรวมถึงการเขียนสคริปต์ Python โดยใช้ไลบรารี os
และ shutil
ซึ่งสามารถเสนอไวยากรณ์ที่อ่านง่ายขึ้นและรับมือกับสถานการณ์ที่ซับซ้อนได้ดีกว่า อย่างไรก็ตาม ความแพร่หลายอย่างกว้างขวางของ Bash และประสิทธิภาพสำหรับงานไฟล์ส่วนใหญ่ยังคงทำให้มันได้รับความนิยมต่อเนื่อง
นอกจากนี้ การเข้าใจเกี่ยวกับการทำงานภายในของ Bash ในการจัดการไฟล์ (ทุกอย่างเป็นไฟล์ในปรัชญา Unix/Linux) และคำสั่งภายในที่มีให้ (เช่น awk
, sed
, grep
ฯลฯ) สามารถทำให้โปรแกรมเมอร์เขียนสคริปต์ที่มีประสิทธิภาพและมีประสิทธิผลมากขึ้น ความเข้าใจลึกเกี่ยวกับความสามารถของ shell รวมกับบริบททางประวัติศาสตร์ช่วยเพิ่มความสามารถของโปรแกรมเมอร์ในการจัดการไฟล์และดำเนินการงานหลากหลายได้โดยตรงจาก command line