ฉันใช้คำสั่ง Linux หลัก 8 คำสั่งนี้ผิดมาหลายปี
เหมือนกับผู้ใช้ลินุกซ์มานานทุกคน ผมจำคำสั่งและทางลัดในเทอร์มินัลต่าง ๆ ที่ใช้ซ้ำบ่อยได้ แต่ผมก็สังเกตว่าผมไม่ได้ใช้เครื่องมือเหล่านี้อย่างเต็มศักยภาพเสมอไป ดังนั้น นี่คือวิธีที่ถูกต้องในการใช้มัน
ลบทางลัดที่ซ่อนอยู่จากรายการไฟล์
ไฟล์ซ่อนบนลินุกซ์มีความทรงพลังและสะดวกสบาย โดยเฉพาะเพราะมันง่ายมาก ไฟล์ที่ขึ้นต้นด้วยจุด (.) เป็นไฟล์ซ่อน โดยค่าเริ่มต้นจะไม่แสดงในรายการเทอร์มินัลและตัวจัดการไฟล์
เมื่อคุณต้องการดูไฟล์ที่ซ่อนอยู่ แค่ใช้ตัวเลือก -a แล้วทุกอย่างก็เรียบร้อย ถูกต้องไหม?
ls -a
อย่างไรก็ตาม ในที่สุด "." และ ".." อาจเริ่มสร้างความรำคาญให้คุณ ไฟล์พิเศษเหล่านี้เป็นเพียงทางลัดไปยังไดเรกทอรีปัจจุบันและไดเรกทอรีต้นทางของมัน ในขณะที่มันสามารถมีประโยชน์มาก แต่คุณไม่จำเป็นต้องรู้เกี่ยวกับมันทุกครั้งที่คุณกำลังแสดงรายการไฟล์
โชคดีที่มีวิธีแก้ปัญหาที่ง่าย: ตัวเลือก -a มีตัวเลือกที่สอดคล้องกันคือ -A ซึ่งจะแสดงไฟล์ที่ซ่อนอยู่แต่ซ่อนไฟลูติ้งเหล่านี้:
ls -Aคุณน่าจะอยากตั้งค่า alias สำหรับคำสั่งนี้ หรือคำสั่งอื่นๆ ที่กล่าวถึงที่นี่ จากนั้นคุณก็สามารถใช้คำสั่ง ls ต่อไปได้ตามปกติ โดยมั่นใจว่าคุณจะไม่ต้องเห็น "." หรือ ".." อีกต่อไป
ใช้คำสั่ง Grep แบบค้นหาซ้ำโดยไม่ต้องใช้ท่อ
บ่อยครั้งมาก ผมมักจะใช้ตัวเลือก exec ของ find เพื่อค้นหาบางอย่าง นี่คือวิธีพื้นฐานในการจำลองงาน "ค้นหาในไฟล์":
find . -exec grep 'hello' {} \;แต่คำสั่งนี้ค่อนข้างยาว และแน่นอนว่าฉันไม่ได้สนุกกับการเรียนรู้ไวยากรณ์ที่ซับซ้อนของ find เลย ฉันรู้สึกโง่ตอนค้นพบว่า grep มีการรองรับการค้นหาแบบเรียกซ้ำในตัว แต่ฉันก็ยังดีใจที่ได้เรียนรู้! คำสั่งนี้สะดวกกว่ามาก และเรียนรู้ได้ง่าย:
grep -r 'hello'สร้างไดเร็กทอรีหลายชั้นด้วยคำสั่งเดียว
เป็นครั้งคราว คุณอาจพบว่าตัวเองต้องการสร้างโครงสร้างไดเรกทอรีที่ลึกซึ้งแบบนี้:
mkdir blog/2024/09/16แต่สิ่งที่น่าหงุดหงิดก็คือ คำสั่งนี้จะล้มเหลวหากไดเรกทอรี blog, blog/2024 หรือ blog/2024/09 ยังไม่มีอยู่:
ข้อความแสดงข้อผิดพลาดยังไม่อธิบายชัดเจนว่าปัญหาคืออะไร! อย่างไรก็ตาม ตัวเลือกง่ายๆ หนึ่งตัวสามารถสร้างไดเร็กทอรีที่ขาดหายไปได้ แม้คุณอาจสงสัยว่าทำไมมันไม่ถูกตั้งเป็นค่าเริ่มต้น การสร้างไดเร็กทอรี รวมถึงไดเร็กทอรีย่อยใดๆ ที่ยังไม่มีอยู่ ใช้แค่ -p:
mkdir -p blog/2024/09/16
คุณสามารถจำสิ่งนี้ได้โดยคิดว่า "p" เป็นตัวย่อของคำว่า "path" หรือ "parents"
สลับระหว่างสองไดเรกทอรีได้ทันที
ถ้าคุณใช้บรรทัดคำสั่งเป็นประจำ คุณคงชินกับการเปลี่ยนไดเรกทอรีด้วยคำสั่ง cd คุณคงคุ้นเคยกับการสลับไปมาระหว่างสองไดเรกทอรี ไปกลับเพื่อรันคำสั่งในอันหนึ่ง ตรวจสอบไฟล์ในอีกอันหนึ่ง และอื่น ๆ บางทีคุณอาจใช้คำสั่ง history เพื่อทำซ้ำสิ่งที่คุณทำไปแล้ว
ตอนนี้คุณคงไม่แปลกใจที่จะรู้ว่ามีวิธีที่ดีกว่านี้ แผ่นซีดีมีความลับหลายอย่าง แต่หนึ่งในทางลัดที่มีประโยชน์ที่สุดก็คือรูปแบบ "cd -"
ทุกครั้งที่คุณใช้คำสั่ง "cd -" มันจะสลับไปมาระหว่างไดเรกทอรีสองไดเรกทอรีล่าสุดที่คุณเข้าไป ทำให้การเคลื่อนที่ไปมาง่ายและรวดเร็วมาก
"cd -" จะพิมพ์เส้นทางของไดเรกทอรีที่มันเปลี่ยนไป แม้ว่าคุณจะมีไดเรกทอรีปัจจุบันแสดงอยู่ในพรอมต์ของคุณ
คัดลอกโฟลเดอร์ด้วยความเหมือนเดิมสูงสุด
คุณอาจรู้เกี่ยวกับการคัดลอกไดเร็กทอรีด้วย cp -R อยู่แล้ว:
cp -R docs backup-docsคำสั่งนี้ช่วยให้คุณสามารถคัดลอกโครงสร้างไดเรกทอรีทั้งหมดได้ โดยสร้างสำเนาเต็มของไดเรกทอรีและเนื้อหาทั้งหมดของมัน รวมถึงไฟล์และไดเรกทอรีอื่น ๆ เป็นวิธีที่ดีในการสำรองไฟล์หรือสร้างสำเนาของโปรเจกต์ขนาดใหญ่เพื่อทำงานต่อ
อย่างไรก็ตาม คุณอาจสังเกตได้ว่าตัวสำเนาไม่ได้เหมือนกับต้นฉบับเป๊ะ เวลาที่มีการแก้ไข เจ้าของ และสิทธิ์การเข้าถึงทั้งหมดอาจแตกต่างกันได้ เช่น ในกรณีดังต่อไปนี้ ตัวสำเนามีเวลาที่แก้ไขต่างจากต้นฉบับ:
เวลานี้ต่างกันแค่หนึ่งนาที แต่ปัญหาอาจจะมากกว่านั้น การแก้ไขง่าย ๆ คือ ใช้ -a (สำหรับ "archive") แทน -R:
แตกไฟล์ tar.gz ด้วยคำสั่งเดียว
ไฟล์ Tar ยังคงเป็นหนึ่งในวิธีที่นิยมที่สุดในการแจกจ่ายชุดไฟล์บน Linux โดยเฉพาะโค้ดต้นฉบับ โดยปกติจะถูกบีบอัดด้วย gzip เพื่อลดขนาดระหว่างการดาวน์โหลดหรือต้องการจัดเก็บ หากคุณใช้โปรแกรมสองตัวนี้มาตลอดชีวิตบน Linux ของคุณ คุณอาจคุ้นเคยกับการทำสิ่งนี้โดยหลับตาก็ทำได้:
gunzip archive.tar.gz
tar xvf archive.tarซึ่งจะทำการขยายไฟล์ gzip ก่อน จากนั้นจึงคลายไฟล์ tar ที่อยู่ข้างใน แต่ว่า ด้วยความสามารถในปัจจุบัน tar สามารถทำได้ทั้งสองขั้นตอนในขั้นตอนเดียว โดยใช้แฟล็ก z แทน x:
tar zvf archive.tar.gzวิธีนี้สะดวกกว่าและมีโอกาสเกิดข้อผิดพลาดน้อยกว่า ยิ่งไปกว่านั้น เวอร์ชันล่าสุดของ tar จะตรวจจับไฟล์ gzip อัตโนมัติและคลายไฟล์ให้เอง! ดังนั้นคุณสามารถข้ามตรงไปที่:
tar xvf archive.tar.gzใช้คำสั่ง cat เพื่อตรวจสอบไฟล์อย่างรวดเร็ว
คำสั่ง cat ได้ชื่อมาจากความสามารถในการต่อไฟล์เข้าด้วยกัน แต่คุณอาจคุ้นเคยกับการใช้มันเพียงเพื่อดูเนื้อหาของไฟล์เท่านั้น ถ้าเป็นเช่นนั้น คุณอาจไม่รู้เกี่ยวกับตัวเลือกที่มีประโยชน์สองสามอย่างที่ทำให้การดูไฟล์ด้วย cat น่าสนุกขึ้นเล็กน้อย
ก่อนอื่น, cat -s จะบีบหลายบรรทัดว่างเข้าด้วยกัน ทำให้รูปแบบไฟล์บางประเภทดูง่ายขึ้นในเทอร์มินัล
ประการที่สอง cat -b จะเพิ่มหมายเลขบรรทัดให้กับผลลัพธ์ แต่เฉพาะบรรทัดที่ไม่ว่างเท่านั้น ซึ่งสามารถมีประโยชน์เมื่อคุณกำลังเขียนอ้างอิงถึงหมายเลขบรรทัด
ใช้ทั้งสองคำสั่งร่วมกัน เช่น cat -sb และคุณสามารถใช้ cat เป็นตัวดูไฟล์แบบง่าย ๆ ได้โดยไม่ต้องใช้โปรแกรมแสดงผลแบบเลื่อนหน้าเช่น less
ดูการใช้งานดิสก์แบบสรุป
การหาว่าไดเรกทอรีใช้พื้นที่มากแค่ไหนจะมีประโยชน์เมื่อคุณกำลังทำความสะอาดคอมพิวเตอร์ แต่พฤติกรรมเริ่มต้นของคำสั่ง du จะสร้างผลลัพธ์มากมายเนื่องจากมันรายงานขนาดของไดเรกทอรีทุกตัวในลำดับชั้นทั้งหมด ดังนั้นคุณอาจพบว่าตัวเองต้องเรียกใช้คำสั่งนี้หลายครั้ง ส่งต่อผลลัพธ์ไปยัง grep ส่งออกไปยังไฟล์ชั่วคราว และอื่นๆ
เพื่อช่วยลดความยุ่งยากของคุณ ลองลดปริมาณข้อมูลที่ต้องแสดง ตัวเลือก --max-depth ช่วยให้คุณกำหนดได้ว่าจะรายงานจำนวนระดับของไดเรกทอรีเท่าไหร่ คุณยังคงได้รับขนาดรวมที่ถูกต้อง เพียงแต่มีข้อมูลรายละเอียดเกี่ยวกับแต่ละไดเรกทอรีในโครงสร้างน้อยลง ตัวอย่างเช่น ตรวจสอบขนาดรวมของเพียงไดเรกทอรีย่อยโดยตรงด้วยคำสั่งนี้:
du --max-depth 1คุณจะเห็นผลลัพธ์ของไดเรกทอรีปัจจุบัน และไดเรกทอรีย่อยโดยตรง โดยไม่ต้องเห็นขนาดของแต่ละไดเรกทอรีที่อยู่ด้านล่างในลำดับชั้น:
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการใช้งานคำสั่งในคอมมานด์ไลน์ ลองดูคู่มือของเราเกี่ยวกับข้อผิดพลาดในการพิมพ์ในเทอร์มินัลที่คุณควรหลีกเลี่ยงอย่างยิ่ง









