การนำทาง (Navigation) และการจัดการไฟล์บน Linux

การนำทาง (Navigation) และจัดการไฟล์และโฟลเดอร์ในระบบไฟล์เป็นทักษะสำคัญสำหรับการทำงานกับคอมพิวเตอร์ Linux โดยเฉพาะอย่างยิ่งบนเซิร์ฟเวอร์คลาวด์ที่ใช้คำสั่ง Linux เป็นหลัก บทความนี้จะช่วยแนะนำทักษะพื้นฐานในการใช้คำสั่งเหล่านี้ ผู้ใช้งานควรมีความเข้าใจเบื้องต้นเกี่ยวกับการทำงานในเทอร์มินัลและการใช้คำสั่ง Linux ซึ่งทางเราจะกล่าวถึงในบทความนี้ และคำแนะนำทั้งหมดสามารถทำได้ด้วยบัญชีผู้ใช้ทั่วไปที่ไม่มีสิทธิ์เป็นผู้ดูแลระบบ (non-root) หากต้องการทราบวิธีการตั้งค่าบัญชีผู้ใช้นี้ สามารถติดตามคำแนะนำเกี่ยวกับการตั้งค่าเริ่มต้นของเซิร์ฟเวอร์ในระบบปฏิบัติการที่คุณใช้ เช่น Ubuntu 20.04

การนำทางและสำรวจระบบไฟล์

ทักษะพื้นฐานที่สำคัญคือการเคลื่อนย้ายไฟล์ในระบบและตรวจสอบว่าในโฟลเดอร์ต่าง ๆ มีข้อมูลอะไรอยู่บ้าง เราจะใช้เครื่องมือและคำสั่งที่จำเป็นต่อการทำสิ่งเหล่านี้ในส่วนนี้

การหาตำแหน่งปัจจุบันด้วยคำสั่ง “pwd”

เมื่อคุณเข้าสู่เซิร์ฟเวอร์ ระบบจะพาคุณไปที่โฟลเดอร์หลักของบัญชีผู้ใช้ของคุณ โฟลเดอร์นี้เป็นพื้นที่สำหรับเก็บไฟล์และสร้างโฟลเดอร์ต่าง ๆ ของคุณ โดยสามารถหาตำแหน่งโฟลเดอร์ปัจจุบันได้ด้วยคำสั่ง pwd คำสั่งนี้จะแสดงเส้นทางของโฟลเดอร์ที่คุณอยู่ ณ ขณะนั้น เช่น

pwd

โฟลเดอร์หลักของคุณมักจะถูกตั้งชื่อเดียวกับชื่อบัญชีผู้ใช้ และอยู่ในโฟลเดอร์ที่เรียกว่า /home ซึ่งเป็นโฟลเดอร์ย่อยในระดับบนสุดที่เรียกว่า “root” แสดงด้วยเครื่องหมาย /

การดูข้อมูลในโฟลเดอร์ด้วย “ls”

เมื่อคุณทราบแล้วว่าคุณอยู่ในโฟลเดอร์ไหน คุณสามารถดูข้อมูลภายในโฟลเดอร์นั้นได้ ปัจจุบันโฟลเดอร์หลักของคุณอาจไม่มีไฟล์หรือโฟลเดอร์มากนัก ดังนั้นให้ลองเปลี่ยนไปที่โฟลเดอร์อื่นที่มีข้อมูลมากขึ้น โดยใช้คำสั่ง cd เพื่อนำทางไปยังโฟลเดอร์ใหม่ และใช้ pwd เพื่อยืนยันว่าคุณได้เคลื่อนที่สำเร็จ

cd /usr/share
pwd

จากนั้นลองใช้คำสั่ง ls เพื่อดูว่ามีไฟล์และโฟลเดอร์อะไรบ้างในโฟลเดอร์นี้

ls

คุณจะเห็นรายการไฟล์และโฟลเดอร์ต่าง ๆ ในโฟลเดอร์นี้ คุณสามารถเพิ่มออปชันต่าง ๆ เพื่อปรับการแสดงผลได้ เช่น ใช้ -l เพื่อแสดงผลในรูปแบบที่มีรายละเอียดมากขึ้น

ls -l

การแสดงผลนี้จะแสดงข้อมูลหลากหลาย เช่น ประเภทของไฟล์ (ถ้าตัวแรกในคอลัมน์เป็น “d” แสดงว่าเป็นโฟลเดอร์ และถ้าเป็น “-” แสดงว่าเป็นไฟล์ปกติ) สิทธิ์การเข้าถึงไฟล์ เจ้าของไฟล์ กลุ่มที่เป็นเจ้าของ ขนาดไฟล์ เวลาแก้ไขล่าสุด และชื่อของไฟล์หรือโฟลเดอร์นั้น ๆ

หากต้องการดูไฟล์ทั้งหมด รวมถึงไฟล์ซ่อน สามารถเพิ่มออปชัน -a เนื่องจากในโฟลเดอร์ /usr/share ไม่มีไฟล์ซ่อน ลองกลับไปที่โฟลเดอร์หลักของคุณแล้วใช้คำสั่งนี้

cd
ls -a

คุณจะเห็นไฟล์ว่าจะมีไฟล์ที่ถูกซ่อนไว้บางไฟล์ รวมถึงสัญลักษณ์พิเศษ . และ .. ซึ่งใช้สำหรับอ้างอิงถึงโฟลเดอร์ที่เกี่ยวข้อง โดยสัญลักษณ์จุดเดียว (.) หมายถึงโฟลเดอร์ปัจจุบัน และจุดคู่ (..) หมายถึงโฟลเดอร์ที่อยู่ระดับบนจากโฟลเดอร์ปัจจุบัน สัญลักษณ์เหล่านี้จะมีประโยชน์ในขั้นตอนต่อไป

การเคลื่อนย้ายไฟล์ไปรอบ ๆ ของระบบด้วยคำสั่ง “cd”

คุณได้ใช้คำสั่ง cd ในการเคลื่อนที่ไปยังไดเร็กทอรีอื่นเพื่อทดลองคำสั่ง ls ในส่วนที่แล้ว มาดูคำสั่งนี้ให้ละเอียดขึ้น เริ่มต้นโดยกลับไปที่ไดเร็กทอรี /usr/share อีกครั้ง

cd /usr/share

ตัวอย่างนี้เป็นการเปลี่ยนไดเร็กทอรีโดยใช้เส้นทางที่แน่นอน (absolute path) ในระบบ Linux ทุกไฟล์และโฟลเดอร์อยู่ใต้ไดเร็กทอรีระดับบนสุดที่เรียกว่า “root” หรือแสดงด้วยเครื่องหมาย “/” นำหน้า การใช้absolute path จะช่วยให้เราสามารถระบุตำแหน่งโฟลเดอร์ได้อย่างชัดเจนจากที่ใดก็ได้ในระบบไฟล์ โดยเส้นทางที่แน่นอนทั้งหมดจะต้องเริ่มต้นด้วยสแลช “/”

อีกวิธีหนึ่งคือการใช้เส้นทางสัมพัทธ์ (relative path) ซึ่งเป็นการอ้างอิงถึงไดเร็กทอรีในความสัมพันธ์กับโฟลเดอร์ปัจจุบันของเรา เช่น เราสามารถเข้าไปในโฟลเดอร์ locale ที่อยู่ใน /usr/share ได้โดยไม่ต้องใช้สแลช ’/’ นำหน้า

cd locale

เรายังสามารถเคลื่อนที่หลายระดับได้ในคราวเดียวโดยใช้เส้นทางสัมพัทธ์ จากตรงนี้เราสามารถไปที่โฟลเดอร์ LC_MESSAGES ใน en ได้โดยใช้คำสั่ง

cd en/LC_MESSAGES

หากต้องการกลับไปยังโฟลเดอร์ก่อนหน้า (ระดับบนสุดของโฟลเดอร์ปัจจุบัน) สามารถใช้สัญลักษณ์จุดคู่ .. ได้ ตัวอย่างเช่น ตอนนี้เราอยู่ในไดเร็กทอรี /usr/share/locale/en/LC_MESSAGES หากต้องการขึ้นไปหนึ่งระดับซึ่งก็คือ  /usr/share/locale/en ให้พิมพ์

cd ..

นอกจากนี้ เราสามารถกลับไปยังไดเร็กทอรีหลักของเราได้เสมอโดยใช้คำสั่ง cd โดยไม่ต้องระบุชื่อโฟลเดอร์ หรือใช้เครื่องหมาย ~ เพื่อแทนไดเร็กทอรีหลัก

cd ~
pwd

การดูไฟล์

ในส่วนก่อนหน้า ได้เรียนรู้วิธีการเข้าถึงไฟล์ในระบบและน่าจะเห็นไฟล์บางไฟล์เมื่อใช้คำสั่ง ls ในโฟลเดอร์ต่าง ๆ ระบบปฏิบัติการ Linux มักใช้ไฟล์ข้อความธรรมดาเพื่อเก็บข้อมูลระบบวิธีการดูไฟล์ในบทนี้คือใช้คำสั่ง less ซึ่งเป็นเครื่องมือที่ช่วยให้เราเลื่อนดูเนื้อหาของไฟล์โดยไม่ปิดหน้าต่างคำสั่ง โดยใช้คำสั่ง less เพื่อเปิดไฟล์ /etc/services ซึ่งเป็นไฟล์กำหนดค่าของระบบ

less /etc/services

ไฟล์นี้จะเปิดใน less ให้คุณเห็นเนื้อหาที่พอดีกับหน้าต่างเทอร์มินัล ณ ขณะนั้น คุณสามารถเลื่อนขึ้นลงได้ด้วยปุ่มลูกศร หรือกด Space Bar เพื่อเลื่อนหน้าลง ใช้ปุ่ม Page Down หรือ Ctrl-f เพื่อเลื่อนลง

การเลื่อนขึ้นสามารถใช้ปุ่ม Page Up หรือ Ctrl-b หากต้องการค้นหาข้อความในเอกสาร ให้พิมพ์เครื่องหมายทับ “/” แล้วตามด้วยคำที่ต้องการค้นหา เช่น /mail เพื่อค้นหาคำว่า “mail” กด n เพื่อไปยังผลลัพธ์ถัดไป หรือกด N เพื่อย้อนกลับไปยังผลลัพธ์ก่อนหน้า และกด q เพื่อออกจากโปรแกรม less

q

นอกจากนี้ ยังมีคำสั่งอื่น ๆ สำหรับการดูไฟล์ อาทิเช่น คำสั่ง cat จะแสดงเนื้อหาของไฟล์แล้วกลับมาที่พรอมต์ในทันที คำสั่ง head จะแสดง 10 บรรทัดแรกของไฟล์ และ tail จะแสดง 10 บรรทัดสุดท้าย คำสั่งเหล่านี้เป็นประโยชน์เมื่อใช้กับการ “pipe” ไปยังโปรแกรมอื่น ซึ่งจะกล่าวถึงในภายหลัง

การสร้างและจัดการไฟล์และโฟลเดอร์

การสร้างไฟล์ด้วยคำสั่ง “touch”

มีหลายวิธีในการสร้างไฟล์ แต่คำสั่ง touch เป็นวิธีที่ง่ายที่สุด คำสั่งนี้จะสร้างไฟล์ว่างโดยใช้ชื่อและตำแหน่งที่ระบุ เริ่มต้นโดยตรวจสอบว่าคุณอยู่ในไดเร็กทอรีหลักของคุณ เพราะที่นี่เป็นตำแหน่งที่คุณมีสิทธิ์ในการบันทึกไฟล์ จากนั้นสร้างไฟล์ชื่อ filetest1 โดยพิมพ์

cd
touch filetest1

หากคุณดูรายการไฟล์ในไดเร็กทอรี คุณจะเห็นไฟล์ที่คุณสร้างขึ้นใหม่

ls

หากใช้คำสั่ง touch กับไฟล์ที่มีอยู่แล้ว มันจะอัปเดตเวลาการแก้ไขล่าสุด ซึ่งมีประโยชน์ในบางกรณี นอกจากนี้ คุณสามารถสร้างไฟล์หลายไฟล์พร้อมกัน และสามารถระบุเส้นทางแบบแน่นอนได้ด้วย ตัวอย่างเช่น

touch /home/john/filetest2 /home/john/filetest3
ls

การสร้างโฟลเดอร์ด้วยคำสั่ง “mkdir”

คล้ายกับคำสั่ง touch ที่ใช้ในการสร้างไฟล์ว่าง คำสั่ง mkdir ใช้ในการสร้างโฟลเดอร์ว่างเช่นกัน ตัวอย่างเช่น หากต้องการสร้างโฟลเดอร์ในไดเร็กทอรีหลักของคุณโดยใช้ชื่อว่า filetest ให้พิมพ์

cd
mkdir filetest

จากนั้นสามารถสร้างโฟลเดอร์ย่อยในโฟลเดอร์ filetest ชื่อ anotherex โดยพิมพ์

mkdir filetest/anotherex

คำสั่งด้านบนจะทำงานได้ก็ต่อเมื่อโฟลเดอร์ filetest มีอยู่แล้ว หากต้องการให้คำสั่ง mkdir สร้างโฟลเดอร์ทั้งหมดที่จำเป็นในเส้นทางที่คุณระบุ สามารถใช้ตัวเลือก -p เพื่อสร้างโฟลเดอร์ซ้อนกันหลายชั้นได้ในคำสั่งเดียว เช่น การสร้างโครงสร้างโฟลเดอร์ที่มีชื่อว่า some/other/directories โดยพิมพ์

mkdir -p some/other/directories

คำสั่งนี้จะสร้างโฟลเดอร์ some ก่อน จากนั้นจะสร้างโฟลเดอร์ other ภายในโฟลเดอร์นั้น สุดท้ายจะสร้างโฟลเดอร์ directories ภายในสองโฟลเดอร์ก่อนหน้า

การย้ายและเปลี่ยนชื่อไฟล์และโฟลเดอร์ด้วยคำสั่ง “mv”

สามารถย้ายไฟล์ไปยังตำแหน่งใหม่โดยใช้คำสั่ง mv ตัวอย่างเช่น หากต้องการย้ายไฟล์ filetest1 ไปยังโฟลเดอร์ filetest ให้พิมพ์

mv filetest1 filetest

หากต้องการย้ายไฟล์นั้นกลับมายังไดเร็กทอรีหลักของคุณ สามารถใช้เครื่องหมายจุด (.) เพื่ออ้างถึงโฟลเดอร์ปัจจุบัน ตรวจสอบให้แน่ใจว่าคุณอยู่ในไดเร็กทอรีหลัก จากนั้นรันคำสั่ง mv

cd
mv filetest/filetest1 .

คำสั่ง mv ยังสามารถใช้เพื่อเปลี่ยนชื่อไฟล์และโฟลเดอร์ได้ เพราะการย้ายและการเปลี่ยนชื่อเป็นเพียงการปรับเปลี่ยนตำแหน่งและชื่อของไฟล์หรือโฟลเดอร์ที่มีอยู่เช่น หากต้องการเปลี่ยนชื่อโฟลเดอร์ filetest เป็น test ให้พิมพ์

mv filetest test

การคัดลอกไฟล์และโฟลเดอร์ด้วยคำสั่ง “cp”

คำสั่ง mv สามารถย้ายหรือเปลี่ยนชื่อไฟล์หรือโฟลเดอร์ได้ แต่ไม่สามารถทำสำเนา (copy) ได้ คำสั่ง cp สามารถใช้ในการทำสำเนาของไฟล์หรือโฟลเดอร์ที่มีอยู่ได้ ตัวอย่างเช่น หากต้องการคัดลอกไฟล์ filetest3 ไปเป็นไฟล์ใหม่ชื่อ filetest4 ให้พิมพ์

cp filetest3 filetest4

ต่างจากการใช้คำสั่ง mv ที่ไฟล์ filetest3 จะไม่อยู่ในที่เดิมอีกต่อไป ในการคัดลอกไฟล์ คุณจะมีทั้งไฟล์ filetest3 และ filetest4 อยู่

หากต้องการคัดลอกโฟลเดอร์ทั้งหมด รวมถึงเนื้อหาภายใน ให้ใช้ตัวเลือก -r ซึ่งย่อมาจาก “recursive” เพื่อคัดลอกโฟลเดอร์และทุกอย่างในนั้น ตัวอย่างเช่น การคัดลอกโฟลเดอร์ some ไปเป็นโฟลเดอร์ใหม่ชื่อ thingnew ให้พิมพ์

cp -r some thingnew

หากคุณคัดลอกไปยังโฟลเดอร์ที่มีอยู่แล้ว เนื้อหาจะถูกคัดลอกเข้าไปในโฟลเดอร์เป้าหมาย เช่น การคัดลอก filetest1 เข้าไปในโฟลเดอร์ thingnew

cp filetest1 thingnew

คำสั่งนี้จะสร้างสำเนาใหม่ของ filetest1 และวางไว้ในโฟลเดอร์ thingnew

การลบไฟล์และโฟลเดอร์ด้วยคำสั่ง “rm” และ “rmdir”

หากต้องการลบไฟล์ สามารถใช้คำสั่ง rm

การลบไฟล์ทั่วไป ให้พิมพ์

cd
rm filetest4

สำหรับการลบโฟลเดอร์ว่าง สามารถใช้คำสั่ง rmdir ซึ่งจะทำงานได้เฉพาะเมื่อโฟลเดอร์ไม่มีไฟล์หรือโฟลเดอร์ใด ๆ อยู่ข้างใน เช่น การลบไฟล์ example ภายในโฟลเดอร์ test

rmdir test/example

หากต้องการลบโฟลเดอร์ที่มีเนื้อหาข้างใน ให้ใช้คำสั่ง rm พร้อมกับตัวเลือก -r ซึ่งจะลบทุกอย่างภายในโฟลเดอร์และตัวโฟลเดอร์เองตัวอย่างเช่น การลบโฟลเดอร์ thingnew และทุกอย่างในนั้น

rm -r thingnew

การแก้ไขไฟล์

ตอนนี้เราก็ได้รู้วิธีจัดการไฟล์แล้ว แต่ยังไม่รู้วิธีแก้ไขเนื้อหาภายในไฟล์ nano เป็นหนึ่งในโปรแกรมแก้ไขข้อความบนเทอร์มินัลที่ใช้ง่ายและเหมาะสำหรับมือใหม่ ซึ่งทำงานคล้ายกับโปรแกรม less โดยจะครอบหน้าจอเทอร์มินัลในระหว่างที่คุณใช้งาน nano สามารถเปิดไฟล์ที่มีอยู่แล้วหรือสร้างไฟล์ใหม่ได้ หากคุณต้องการสร้างไฟล์ใหม่ สามารถตั้งชื่อไฟล์เมื่อเรียกใช้ nano หรือสามารถบันทึกชื่อไฟล์ทีหลังได้เมื่อคุณบันทึกเนื้อหาตัวอย่างเช่น การเปิดไฟล์ filetest1 เพื่อแก้ไข ให้พิมพ์

cd
nano filetest1

เมื่อเปิด nano อินเตอร์เฟซจะแสดงส่วนต่าง ๆ ดังนี้:

  • ด้านบนจะแสดงชื่อโปรแกรมและชื่อไฟล์
  • กลางหน้าจอจะแสดงเนื้อหาของไฟล์ (ปัจจุบันว่างอยู่)
  • ด้านล่างจะแสดงปุ่มคำสั่ง โดยสัญลักษณ์ ^ หมายถึงปุ่ม CTRL

หากต้องการดูคำแนะนำ ให้กด Ctrl+G เมื่อเรียกดูคำแนะนำเสร็จแล้ว กด Ctrl+X เพื่อกลับไปที่เอกสาร สำหรับการทดสอบนี้ ให้ลองพิมพ์ข้อความอะไรก็ได้สักสองบรรทัด 

Hello everyone
This is a final test

จากนั้นบันทึกไฟล์ โดยกด Ctrl+O คุณจะเห็นตัวเลือกด้านล่างเปลี่ยนไปตามสิ่งที่คุณทำ ในกรณีนี้ ให้กด Enter เพื่อยืนยันการบันทึกลงใน filetest1

หลังจากบันทึก หากคุณทำการเปลี่ยนแปลงเพิ่มขึ้นและต้องการออกจากโปรแกรม ให้กด Ctrl+X หากยังไม่ได้บันทึกการเปลี่ยนแปลง โปรแกรมจะถามว่าคุณต้องการบันทึกหรือไม่ โดยคุณสามารถกด Y เพื่อบันทึก N เพื่อไม่บันทึก หรือ Ctrl+C เพื่อยกเลิกการออกจากโปรแกรม หากเลือกบันทึก จะได้รับการยืนยันการบันทึกในไฟล์เดิม ให้กด Enter เพื่อบันทึกและออกจากโปรแกรมสามารถดูเนื้อหาในไฟล์ที่สร้างได้โดยใช้คำสั่ง cat เพื่อแสดงเนื้อหาทั้งหมด หรือ less เพื่อเปิดไฟล์ในโหมดดูอย่างเดียว อย่าลืมกด q เพื่อออกจาก less

less filetest1

หมายเหตุ: นอกจาก nano แล้วยังมีโปรแกรมแก้ไขข้อความที่คุณอาจเจอในคู่มืออื่นเช่น vim หรือ vi ซึ่งเป็นโปรแกรมที่มีประสิทธิภาพสูง แต่มีวิธีใช้งานที่ซับซ้อนกว่ามาก หากคุณไม่ชินกับ vim สามารถใช้ nano แทนได้เสมอ หากต้องการเรียนรู้วิธีใช้ vim สามารถอ่านคู่มือการเริ่มต้นใช้งาน vim ได้ที่นี่

Was this article helpful?

Related Articles