ในขณะที่ bash เร็วและทรงพลัง มันยากสำหรับมือใหม่ที่จะเรียนรู้ หากคุณเพิ่งเริ่มต้นกับ bash หรือเทอร์มินัลบน Linux ตรวจสอบให้แน่ใจว่าคุณรู้คำสั่งจำเป็นเหล่านี้เพื่อไม่ให้หลงทางและทำลายสิ่งต่างๆ
เกี่ยวข้อง:
- 6 คำสั่ง Linux ที่มีประโยชน์ที่สุดสำหรับผู้ใช้ใหม่
- 17 คำสั่ง Linux สนุกที่จะรันในเทอร์มินัล
- 5 คำสั่ง Linux อันตรายที่คุณไม่ควรรันเลย
- 13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง
การนำทางใน Bash
cd
คุณจะใช้คำสั่งนี้โดยพิมพ์ cd ก่อนแล้วตามด้วยพาธไปยังไดเรกทอรี พาธคือเส้นทางไปยังโฟลเดอร์ไฟล์ แสดงโฟลเดอร์ทั้งหมดที่คุณต้องผ่าน โฟลเดอร์คั่นด้วยสแลชหน้า (/) สำหรับพาธที่มีช่องว่าง คุณสามารถห่อทั้งพาธในเครื่องหมายคำพูดหรือเพิ่มแบ็กสแลช () ก่อนช่องว่าง
cd path/to/follow
ทุกพาธถูกตีความจากไดเรกทอรีทำงานปัจจุบันของคุณ เพื่อระบุพาธที่ไม่อยู่ในไดเรกทอรีทำงานปัจจุบัน คุณต้องไปที่โฟลเดอร์พาเรนต์ของพาธนั้น หรือใช้พาธที่สมบูรณ์ (fully qualified path) พาธสมบูรณ์คือ "ที่อยู่สมบูรณ์" ของไฟล์บนระบบของคุณ เริ่มที่รูทไดรฟ์ (แทนด้วย /) และลงท้ายด้วยไดเรกทอรีหรือไฟล์เป้าหมาย
cd ใช้ตัวย่อมากสำหรับนำทางไดเรกทอรีอย่างรวดเร็ว ตัวอย่างเช่น สแลชหน้าเดี่ยว (/) แสดงไดเรกทอรี "รูท" ซึ่งเป็นไดรฟ์บูทของระบบของคุณ ตามที่กล่าวไว้ ทิลด์ (~) แสดงไดเรกทอรีโฮมของผู้ใช้ปัจจุบัน จุดเดี่ยว (.) แสดงโฟลเดอร์ปัจจุบัน และสองจุด (..) แสดงโฟลเดอร์พาเรนต์ของไดเรกทอรีทำงานปัจจุบัน โฟลเดอร์พาเรนต์คือโฟลเดอร์ที่มีไดเรกทอรีทำงานอยู่
แบ็กสแลช () นั้นพิเศษอย่างพิเศษ มันเรียกว่า "อักขระหนี" (escape character) และบ่งชี้ว่าสิ่งที่ตามหลังควรจัดการพิเศษ ในกรณีนี้ บ่งชี้ว่าช่องว่างเป็นส่วนหนึ่งของพาธไฟล์ ไม่ใช่ช่องว่างระหว่างคำสั่งหรืออาร์กิวเมนต์สองตัว
ls
เพื่อดูเนื้อหาของไดเรกทอรี ใช้ ls ซึ่งย่อมาจาก "list" คำสั่งนี้แสดงไฟล์และไดเรกทอรีทั้งหมดในไดเรกทอรีปัจจุบัน คุณสมบัติที่มีประโยชน์ที่สุดเข้าถึงได้ผ่าน "flags" (ธง) ซึ่งเป็นคำสั่งเพิ่มเติมสั้นๆ ที่คุณต่อกับคำสั่งหลักเพื่อเปลี่ยนตัวเลือกหรือขยายฟังก์ชัน พวกมันนำหน้าด้วยหนึ่งหรือสองขีด (-) และมักเป็นตัวอักษรเดียว
ls
มีธงอื่นๆ ที่มีประโยชน์มากสำหรับ ls โปรดโปรด ได้แก่:
-aแสดงไฟล์ซ่อนและ dotfiles (ไฟล์นำหน้าด้วย .)-hแสดงขนาดไฟล์ด้วยหน่วยที่มนุษย์อ่านง่าย-Sเรียงตามขนาดไฟล์ ใหญ่ไปเล็ก (ระวัง S ใหญ่)-tเรียงตามเวลาแก้ไข ล่าสุดก่อน
หากต้องการใช้หลายธง พิมพ์ต่อกันไปเลย ตัวอย่างเช่น หากต้องการดูไฟล์ซ่อนในโฟลเดอร์ แบบ long format พร้อมขนาดไฟล์อ่านง่าย รัน ls -lah
pwd
คำสั่งนี้ไม่รับอาร์กิวเมนต์ กด Enter ทันทีเพื่อรัน คำสั่ง pwd แสดงพาธสมบูรณ์ของ present working directory จึงเป็นย่อหน้า
pwd
คำสั่งที่คุณรันจะทำงานอัตโนมัติภายในไดเรกทอรีทำงานปัจจุบัน ตัวอย่างเช่น คำสั่ง mkdir จะสร้างไดเรกทอรีภายในไดเรกทอรีทำงานปัจจุบันของคุณ หากต้องการทำอย่างอื่น ต้องใช้พาธสมบูรณ์ ซึ่งเริ่มด้วย / เพื่อระบุไดเรกทอรีรูทของระบบ
man
man command
เปิดหน้าคู่มือ (man page) สำหรับคำสั่งที่ระบุ ตัวเช่น man chmod จะแสดง man page สำหรับคำสั่ง "chmod" ภายในหน้าต่างเทอร์มินัลของคุณ รายการเหล่านี้แสดงข้อมูลการใช้งาน ธง และตัวอย่าง หากต้องการรู้เพิ่มเติมว่าคำสั่งทำอะไรหรือมีตัวเลือกอะไร เริ่มต้นด้วยการอ่าน man page ของคำสั่งนั้นเสมอ
cat
cat file
อ่านไฟล์ทุกประเภท รันบนไฟล์ข้อความเพื่อแสดงเนื้อหาในคอนโซล cat จะแสดงเนื้อหาของเกือบไฟล์ใดๆ แต่อาจไม่ได้เป็นที่มนุษย์อ่านหรือมีความหมายให้คุณเสมอไป ดังนั้นจึงนิยมน้อยกว่าด้วยมืออาชีพ Unix แต่มือใหม่จะพบว่ามันช่วยได้ขณะล่องลอยในระบบไฟล์
การทำงานกับไฟล์และไดเรกทอรี
cp
สร้างสำเนาของไฟล์ "filename.doc" ไปที่ "path/to/directory/newfilename.doc" คุณสามารถคิดว่านี่คือการ copy และ paste หากชื่อไฟล์มีอยู่แล้ว การ copy จะไม่เสร็จสมบูรณ์
cp filename.doc path/to/directory/newfilename.doc
mv
ย้าย "foo.txt" ไป "bar.txt" คุณสามารถคิดว่าคำสั่งนี้คือ cut และ paste เรายังใช้ mv สำหรับเปลี่ยนชื่อไฟล์ เพราะเรากำลัง "ย้าย" พวกมันไปชื่อใหม่ โปรดทราบว่า mv ลบเวอร์ชันต้นฉบับของไฟล์หลังการเขียนเสร็จสิ้น
mv foo.txt /path/to/bar.txt
rm
ลบเนื้อหาไดเรกทอรีและไฟล์ทั้งหมดภายใน ธง -r ทำให้ rm (remove) ทำงานแบบ recursive ในขณะที่ธง -f ปิดกล่องโต้ตอบยืนยัน เวอร์ชันที่ทรงพลังกว่า sudo rm -rf ควรใช้ด้วยความระมัดระวังสูงสุด มันสามารถลบไดรฟ์บูทของคุณได้โดยไม่มีคำเตือนหรือบ่น ไปด้วยความระมัดระวัง
rm -rf contents/
touch
หากไฟล์ที่มีชื่อระบุอยู่แล้ว เวลาการแก้ไขจะเปลี่ยนเป็นเวลาปัจจุบัน หากไฟล์ไม่มีอยู่ ไฟล์ว่างเปล่าที่มีชื่อเดียวกันจะถูกสร้างทันที
touch file
mkdir
สร้างไดเรกทอรีด้วยชื่อที่ระบุภายในไดเรกทอรีทำงาน เพื่อสร้างไดเรกทอรีพาเรนต์ตามความจำเป็น ใช้ธง -p นี่จะสร้างไดเรกทอรีพาเรนต์ที่จำเป็นทั้งหมดเพื่อให้คำสั่งของคุณสมบูรณ์ ตราบใดที่ไม่มีข้อผิดพลาดอื่น อนุญาตให้คุณสร้างลำดับชั้นไดเรกทอรีหลายระดับในบรรทัดเดียว
mkdir directory
rmdir
ลบไดเรกทอรีที่พาธที่ระบุ
rmdir directory
ตัวปรับเปลี่ยนคำสั่ง
ตัวปรับเปลี่ยนปรับคำสั่งที่มีอยู่ให้ทำสิ่งมากขึ้นหรือแตกต่างจากปกติ
sudo command
sudo ย่อมาจาก "super user do" และมันไม่ทำอะไรด้วยตัวมันเอง แทนที่จะเป็นมันให้คำสั่งถัดไปมีพลังเหนือมนุษย์ เมื่อคุณพิมพ์ sudo ก่อนคำสั่ง คุณยกระดับตัวเองชั่วคราวให้มีสิทธิ์ของผู้ใช้ root ให้คุณพลังทำสิ่งที่ปกติทำไม่ได้
แต่มาพร้อมกับพลัง superuser คือความรับผิดชอบ superuser มันยังให้คุณพลังทำลายสิ่งต่างๆ อย่างรุนแรง ดังนั้นจงระมัดระวังขณะเรียนรู้ ตรวจสอบให้แน่ใจว่าคุณเข้าใจทุกส่วนของคำสั่งที่คุณรัน โดยเฉพาะหากคุณหาคำสั่งมาจากออนไลน์
หลังใช้ sudo คุณจะต้องป้อนรหัสผ่านผู้ดูแลระบบ เมื่อทำเสร็จ เคอร์เซอร์อินพุทจะไม่เคลื่อนที่ แต่ keystrokes จะถูกบันทึก กด Enter เมื่อเสร็จเพื่อรันคำสั่ง
sudo !!
รันคำสั่งล่าสุดอีกครั้ง แต่ครั้งนี้ด้วยสิทธิ์ผู้ดูแลระบบ คำสั่งที่เรียกว่า "bang bang" (!!) คือทางลัดสำหรับทำซ้ำคำสั่งก่อนหน้า
>
เรียกว่า "redirect" ตัวคาท์ส่งเอาต์พุทข้อความของคำสั่งของคุณไปยังไฟล์ ตัวอย่างเช่น ls > filelist.txt จะส่งเอาต์พุทของ ls ไป "filelist.txt" หากไฟล์เป้าหมายไม่มีอยู่ จะถูกสร้างขึ้น
|
เรียกว่า "pipe" สัญลักษณ์นี้เหมือน redirect แต่สำหรับคำสั่งเท่านั้น มันส่งเอาต์พุทของคำสั่งหนึ่งไปเป็นอินพุทของอีกคำสั่งหนึ่ง
การแก้ไขสิทธิ์
สิทธิ์ส่งผลต่อว่าผู้ใช้ไหนสามารถดู แก้ไข และรันไฟล์เฉพาะได้ ไฟล์และโฟลเดอร์มีเจ้าของ ซึ่งปกติคือผู้ใช้ที่สร้างมัน และโหมด ซึ่งควบคุมผู้ใช้ที่สามารถเข้าถึงไฟล์ได้และพวกเขาสามารถทำอะไรกับมันได้บ้าง
คำสั่งเหล่านี้คือคำสั่งแรกที่เราจะใช้ sudo ร่วมด้วย จำไว้ว่า sudo ยกระดับเราเป็น superuser ให้เราอำนาจผู้ดูแลชั่วคราว นี่เกือบจำเป็นตลอดเวลาเมื่อจัดการกับสิทธิ์ไฟล์ เนื่องจากไม่ใช่ทุกไฟล์จะเป็นของผู้ใช้ปัจจุบัน
chmod ย่อมาจาก "change mode" และปรับสิทธิ์สำหรับไฟล์และโฟลเดอร์ เหมือน chown มันสามารถรันบนไฟล์เดียวหรือแบบ recursive บนเนื้อหาไดเรกทอรีด้วยธง -R
sudo chmod 775 file
สิทธิ์ไฟล์สามารถแทนได้หลายวิธี แต่ "โหมดตัวเลข" (numeric mode) ที่ใช้ข้างต้น (775) เป็นที่พบบ่อยที่สุด
sudo chown -R sarah foo/bar
เปลี่ยนเจ้าของของทุกไฟล์ในไดเรกทอรีที่ให้มาเป็นผู้ใช้ "sarah" ธง -R ทำให้คำสั่งเป็น recursive แต่สามารถรันโดยไม่มีธงบนไฟล์เดี่ยวได้เช่นกัน รันในไดเรกทอรีทำงานปัจจุบันโดยใช้จุด (.) แทน foo/bar
สรุป
เพื่อเรียนรู้คำสั่งเหล่านี้อย่างรวดเร็ว ใช้ bash และเทอร์มินัลแม้คุณจะไม่ต้องการ แทนที่จะลากและวางย้ายไดเรกทอรี ลองใช้คำสั่ง mv ยิ่งคุณใช้คำสั่งจริง ยิ่งทักษะของคุณดีขึ้นเร็ว