ค้นหาเว็บไซต์

10 'คำถามและคำตอบสัมภาษณ์' ที่มีประโยชน์บน Linux Shell Scripting


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

เรามีบทช่วยสอนมากมายเกี่ยวกับภาษา Shell Scripting และ คำถามสัมภาษณ์ สำหรับผู้อ่านทุกประเภท นี่คือลิงก์ไปยังบทความเหล่านั้น

  1. ซีรี่ส์การเขียนสคริปต์เชลล์
  2. ชุดคำถามและคำตอบสัมภาษณ์

การเพิ่มโพสต์เชลล์สคริปต์ที่นี่ ในบทความนี้ เราจะพูดถึงคำถามที่เกี่ยวข้องกับ 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' ได้อย่างไร

  1. เปิดตัวแก้ไข vi
  2. ไปที่โหมดคำสั่งของโปรแกรมแก้ไข vi โดยกด [esc] ตามด้วย ':'
  3. ขั้นตอนสุดท้ายคือพิมพ์คำสั่งดำเนินการ [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

  1. กำลังรอ: กระบวนการ Linux กำลังรอทรัพยากร
  2. กำลังทำงาน : กระบวนการ Linux กำลังดำเนินการอยู่
  3. หยุด : กระบวนการ Linux หยุดทำงานหลังจากดำเนินการสำเร็จหรือหลังจากได้รับสัญญาณการฆ่า
  4. 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 อย่าลืมให้ข้อเสนอแนะอันมีค่าของคุณแก่เราในส่วนความคิดเห็นด้านล่าง