10 'คำถามและคำตอบสัมภาษณ์' ที่มีประโยชน์บน Linux Shell Scripting
คำทักทายประจำวัน. ความกว้างใหญ่ของ Linux ทำให้สามารถสร้างโพสต์ที่ไม่ซ้ำใครได้ทุกครั้ง เรา 'ทีมงาน Tecmint' ทำงานเพื่อให้ผู้อ่านได้รับเนื้อหาที่ไม่ซ้ำใครซึ่งเป็นประโยชน์สำหรับพวกเขาจากมุมมองของอาชีพตลอดจนการเพิ่มฐานความรู้ นี่คือความพยายาม และผู้อ่านของเราจะตัดสินว่าเราประสบความสำเร็จได้ไกลแค่ไหน
เรามีบทช่วยสอนมากมายเกี่ยวกับภาษา Shell Scripting และ คำถามสัมภาษณ์ สำหรับผู้อ่านทุกประเภท นี่คือลิงก์ไปยังบทความเหล่านั้น
- ซีรี่ส์การเขียนสคริปต์เชลล์
- ชุดคำถามและคำตอบสัมภาษณ์
การเพิ่มโพสต์เชลล์สคริปต์ที่นี่ ในบทความนี้ เราจะพูดถึงคำถามที่เกี่ยวข้องกับ Linux Shell จากมุมมองของการสัมภาษณ์
1. คุณจะยกเลิกเชลล์สคริปต์ก่อนที่จะดำเนินการได้อย่างไร?
ตัวอย่างเช่น สร้างเชลล์สคริปต์ต่อไปนี้เป็น 'anything.sh'
#!/bin/bash
echo "Hello"
exit -1
echo "bye"
บันทึกไฟล์และดำเนินการ
sh anything.sh
Hello
exit.sh: 3: exit: Illegal number: -1
จากสคริปต์ข้างต้น เห็นได้ชัดว่าการดำเนินการเป็นไปด้วยดีก่อนคำสั่ง exit -1
2. จะลบส่วนหัวออกจากไฟล์โดยใช้คำสั่งใน Linux ได้อย่างไร?
นี่เป็นคำสั่งที่แน่นอนในการลบส่วนหัวออกจากไฟล์ (หรือบรรทัดแรกของไฟล์)
sed '1 d' file.txt
ปัญหาเดียวของคำสั่งข้างต้นคือมันจะส่งออกไฟล์ไปยังเอาต์พุตมาตรฐานโดยไม่มีบรรทัดแรก ในการบันทึกเอาต์พุตลงไฟล์ เราจำเป็นต้องใช้ตัวดำเนินการเปลี่ยนเส้นทางซึ่งจะเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์
sed '1 d' file.txt > new_file.txt
สวิตช์ในตัว '-i' สำหรับคำสั่ง sed สามารถดำเนินการนี้ได้โดยไม่ต้องใช้ตัวดำเนินการเปลี่ยนเส้นทาง
sed -i '1 d' file.txt
3. คุณจะตรวจสอบความยาวของบรรทัดจากไฟล์ข้อความได้อย่างไร?
'sed –n 'n p' file.txt' โดยที่ 'n' แสดงถึงหมายเลขบรรทัดและ 'p' จะพิมพ์ออกมา พื้นที่รูปแบบ (ไปยังเอาต์พุตมาตรฐาน) โดยปกติคำสั่งนี้ใช้ร่วมกับตัวเลือกบรรทัดคำสั่ง -n เท่านั้น แล้วจะนับความยาวได้อย่างไร? อย่างชัดเจน! เราจำเป็นต้องส่งเอาต์พุตด้วยคำสั่ง 'wc'
sed –n 'n p' file.txt | wc –c
หากต้องการรับความยาวของบรรทัดหมายเลข '5' ในไฟล์ข้อความ 'tecmint.txt' เราจำเป็นต้องเรียกใช้
sed -n '5 p' tecmint.txt | wc -c
4. เป็นไปได้หรือไม่ที่จะดูอักขระที่ไม่สามารถพิมพ์ได้ทั้งหมดจากไฟล์ข้อความบนระบบ Linux? คุณจะบรรลุเป้าหมายนี้ได้อย่างไร?
จะแสดงอักขระที่ไม่สามารถพิมพ์ได้ในโปรแกรมแก้ไข 'vi' ได้อย่างไร
- เปิดตัวแก้ไข vi
- ไปที่โหมดคำสั่งของโปรแกรมแก้ไข vi โดยกด [esc] ตามด้วย ':'
- ขั้นตอนสุดท้ายคือพิมพ์คำสั่งดำเนินการ [set list] จากอินเทอร์เฟซคำสั่งของโปรแกรมแก้ไข 'vi'
หมายเหตุ: วิธีนี้ทำให้เราสามารถดูอักขระที่ไม่สามารถพิมพ์ได้ทั้งหมดจากไฟล์ข้อความ รวมถึง ctrl+m (^M< /แข็งแกร่ง>)
5. คุณเป็นหัวหน้าทีมของกลุ่มพนักงานที่ทำงานให้กับบริษัท xyz บริษัทขอให้คุณสร้างไดเร็กทอรี 'dir_xyz' เพื่อให้สมาชิกในกลุ่มสามารถสร้างไฟล์หรือเข้าถึงไฟล์ภายใต้ไดเร็กทอรีนั้นได้ แต่ไม่มีใครสามารถลบไฟล์ได้ ยกเว้นไฟล์ที่สร้างขึ้น คุณจะทำอะไร?
mkdir dir_xyz
chmod g+wx dir_xyz
chmod +t dir_xyz
บรรทัดแรกของคำสั่งสร้างไดเร็กทอรี (dir_xyz) บรรทัดคำสั่งที่สองด้านบนอนุญาตให้กลุ่ม (g) มีสิทธิ์ 'เขียน' และ 'ดำเนินการ' และบรรทัดสุดท้ายของคำสั่งด้านบน คำสั่ง – '+t' ที่อยู่ท้ายสิทธิ์เรียกว่า 'sticky bit' โดยจะแทนที่ 'x' และระบุว่าในไดเร็กทอรีนี้ ไฟล์เท่านั้นที่สามารถลบได้โดยเจ้าของไฟล์ เจ้าของไดเร็กทอรี หรือ superuser ระดับรูทเท่านั้น
6. คุณช่วยบอกฉันถึงขั้นตอนต่างๆ ของกระบวนการ Linux ว่ามันผ่านหรือไม่?
ต่อไปนี้เป็นกระบวนการ 4 ขั้นตอนของ Linux
- กำลังรอ: กระบวนการ Linux กำลังรอทรัพยากร
- กำลังทำงาน : กระบวนการ Linux กำลังดำเนินการอยู่
- หยุด : กระบวนการ Linux หยุดทำงานหลังจากดำเนินการสำเร็จหรือหลังจากได้รับสัญญาณการฆ่า
- Zombie : กระบวนการหนึ่งเรียกว่า 'Zombie' หากหยุดแล้ว แต่ยังคงทำงานอยู่ในตารางกระบวนการ
7. คำสั่ง cut ใน Linux มีประโยชน์อย่างไร?
ตัวอย่างเช่น แยก 10 คอลัมน์แรกของไฟล์ข้อความ 'txt_tecmint'
cut -c1-10 txt_tecmint
เพื่อแยกคอลัมน์ที่ 2, 5 และ 7 ของไฟล์ข้อความเดียวกัน
cut -d;-f2 -f5 -f7 txt_tecmint
8. อะไรคือความแตกต่างระหว่างคำสั่ง 'cmp' และ 'diff'?
คำสั่ง 'diff' รายงานการเปลี่ยนแปลงที่ควรทำเพื่อให้ทั้งสองไฟล์มีลักษณะเหมือนกัน ในขณะที่คำสั่ง 'cmp' จะเปรียบเทียบไฟล์ทั้งสองแบบไบต์ต่อไบต์ และรายงานไฟล์แรกที่ไม่ตรงกัน
9. เป็นไปได้ไหมที่จะแทนที่คำสั่ง 'ls' ด้วยคำสั่ง 'echo'?
10. คุณอาจเคยได้ยินเกี่ยวกับ inodes คุณช่วยอธิบาย inode สั้น ๆ ได้ไหม?
นั่นคือทั้งหมดที่สำหรับตอนนี้. เราจะถามคำถามสัมภาษณ์ที่น่าสนใจและมีความรู้ในบทความหน้า จนกว่าจะถึงตอนนั้น คอยติดตามและเชื่อมต่อกับ linux-console.net อย่าลืมให้ข้อเสนอแนะอันมีค่าของคุณแก่เราในส่วนความคิดเห็นด้านล่าง