การควบคุมงาน (bg, fg, jobs)
เชี่ยวชาญการจัดการกระบวนการเบื้องหลังและเบื้องหน้า การหยุดชั่วคราว การทำงานต่อ และการแสดงรายการงานภายในเซสชันเชลล์
การควบคุมงาน (bg, fg, jobs) เป็นบทเรียน Linux Command Line & Bash Scripting Mastery ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Linux Command Line & Bash Scripting Mastery และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน
การควบคุมงานคืออะไร
ยินดีต้อนรับสู่การควบคุมงาน! ความสามารถอันทรงพลังนี้ในเชลล์ Linux ช่วยให้คุณจัดการโปรแกรมที่กำลังทำงานอยู่ได้โดยไม่ต้องปิดเทอร์มินัลหรือเปิดเทอร์มินัลใหม่
ลองนึกภาพว่าเป็นการทำงานหลายอย่างพร้อมกันสำหรับบรรทัดคำสั่ง คุณสามารถหยุดงานชั่วคราว ย้ายงานไปทำงานเบื้องหลัง หรือนำงานกลับมาทำงานเบื้องหน้าได้
เบื้องหน้าเทียบกับเบื้องหลัง
เมื่อคุณเรียกใช้คำสั่ง โดยปกติคำสั่งนั้นจะทำงานในเบื้องหน้า ซึ่งหมายความว่าคำสั่งจะควบคุมเทอร์มินัลของคุณ และคุณจะไม่สามารถพิมพ์คำสั่งใหม่ได้จนกว่าคำสั่งนั้นจะทำงานเสร็จ
อย่างไรก็ตาม กระบวนการเบื้องหลังจะทำงานอย่างเป็นอิสระ ทำให้เทอร์มินัลของคุณพร้อมใช้งาน คุณจึงทำงานอื่นต่อได้ขณะที่กระบวนการนั้นกำลังทำงาน
หยุดกระบวนการชั่วคราว (Ctrl+Z)
หากต้องการหยุดกระบวนการเบื้องหน้าที่กำลังทำงานอยู่ชั่วคราว ให้ใช้แป้นพิมพ์ลัด Ctrl+Z การทำเช่นนี้จะส่งสัญญาณ SIGTSTP เพื่อระงับกระบวนการ
กระบวนการจะไม่ถูกยุติ แต่จะเปลี่ยนเป็นงานที่ 'หยุดอยู่' และรอให้คุณระบุว่าจะให้ทำอะไรต่อ
ดูงานของคุณ (jobs)
เมื่อคุณหยุดกระบวนการชั่วคราว (หรือส่งกระบวนการไปทำงานเบื้องหลัง) คุณสามารถดูรายการงานที่กำลังทำงานอยู่ทั้งหมดในเซสชันเชลล์ปัจจุบันได้โดยใช้คำสั่ง jobs
งานแต่ละงานจะมีหมายเลขงานที่ไม่ซ้ำกัน (เช่น [1], [2] เป็นต้น) และสถานะของงาน (เช่น Stopped, Running)
sleep 50 &
sleep 60 &
jobsนำกลับมาไว้เบื้องหน้า (fg)
หากคุณมีงานที่หยุดอยู่หรือถูกส่งไปทำงานเบื้องหลัง คุณสามารถนำงานนั้นกลับมาไว้ในเบื้องหน้าได้โดยใช้คำสั่ง fg ตามด้วยหมายเลขงาน (เช่น %1)
การทำเช่นนี้จะทำให้งานดังกล่าวกลับมาเป็นกระบวนการที่กำลังทำงานอยู่ในเทอร์มินัลของคุณ
sleep 100 &
jobs
# Now, let's bring it to foreground
fg %1ส่งไปทำงานเบื้องหลัง (bg)
หากต้องการให้ งานที่หยุดอยู่ทำงานต่อและส่งไปทำงานเบื้องหลัง ให้ใช้คำสั่ง bg พร้อมหมายเลขงาน
กระบวนการจะทำงานต่อไปโดยไม่กีดขวางการใช้งานเทอร์มินัล และพรอมป์จะกลับมาแสดงทันที
sleep 200
# Press Ctrl+Z to stop it
# Then type:
bg %1
jobsทำงานเบื้องหลัง ( & )
คุณไม่จำเป็นต้องเริ่มกระบวนการในเบื้องหน้าแล้วจึงหยุดกระบวนการชั่วคราวเสมอไป คุณสามารถเปิดใช้คำสั่งให้ทำงานในเบื้องหลังได้โดยตรง เพียงเติมเครื่องหมายแอมเพอร์แซนด์ (&) ต่อท้ายคำสั่ง
วิธีนี้เหมาะอย่างยิ่งสำหรับงานที่ใช้เวลานานและไม่จำเป็นต้องโต้ตอบกับผู้ใช้
echo "Starting long task..." &
sleep 300 &
jobsหมายเลขงานและ PID
เมื่อคุณใช้ jobs คุณจะเห็นหมายเลขงาน เช่น [1], [2] หมายเลขเหล่านี้ใช้เฉพาะภายในเซสชันเชลล์ของคุณ
กระบวนการที่กำลังทำงานทุกกระบวนการยังมีรหัสกระบวนการ (PID) ที่ไม่ซ้ำกัน ซึ่งเป็นหมายเลขที่ใช้ทั่วทั้งระบบ คุณสามารถดู PID ได้ด้วย jobs -l หรือ ps
sleep 100 &
jobs -lหยุดงาน (kill)
หากต้องการยุติงานที่ทำงานเบื้องหลังหรือหยุดอยู่ คุณสามารถใช้คำสั่ง kill ได้ โดยระบุหมายเลขงาน (เช่น kill %1) หรือ PID ของงาน (เช่น kill 12345)
kill จะส่งสัญญาณไปยังกระบวนการ โดยค่าเริ่มต้นคือ SIGTERM (การยุติอย่างนุ่มนวล) หากต้องการยุติแบบบังคับ ให้ใช้ kill -9 %job_number หรือ kill -9 PID
sleep 500 &
jobs
# Assuming sleep is job 1:
kill %1
jobsแบบทดสอบการควบคุมงาน
คุณได้เริ่มคำสั่งที่ทำงานเป็นเวลานาน (เช่น find / -name *.txt) แต่ตอนนี้คุณต้องการเทอร์มินัลกลับมาเพื่อพิมพ์คำสั่งอื่น ลำดับการทำงานที่ถูกต้องในการหยุดคำสั่ง find ชั่วคราว ส่งไปทำงานเบื้องหลังเพื่อให้ทำงานต่อ และยืนยันว่าเป็นงานเบื้องหลังคืออะไร
ทบทวน: การควบคุมงาน
คุณเชี่ยวชาญการควบคุมงานแล้ว
Ctrl+Zหยุดกระบวนการเบื้องหน้าชั่วคราวjobsแสดงรายการงานที่กำลังทำงานอยู่ทั้งหมดfg %NนำงานNกลับมาไว้เบื้องหน้าbg %Nส่งงานNที่หยุดอยู่ไปทำงานเบื้องหลัง- การเติม
&จะทำให้คำสั่งทำงานเบื้องหลังโดยตรง kill %Nหรือkill PIDยุติงาน
สิ่งนี้ช่วยให้คุณจัดการงานหลายรายการได้อย่างมีประสิทธิภาพภายในเซสชันเทอร์มินัลเดียว
คำถามที่พบบ่อย
บทเรียน “การควบคุมงาน (bg, fg, jobs)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การควบคุมงาน (bg, fg, jobs)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Linux Command Line & Bash Scripting Mastery ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Linux Command Line & Bash Scripting Mastery มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การควบคุมงาน (bg, fg, jobs)”
เชี่ยวชาญการจัดการกระบวนการเบื้องหลังและเบื้องหน้า การหยุดชั่วคราว การทำงานต่อ และการแสดงรายการงานภายในเซสชันเชลล์ คุณปฏิบัติ Linux Command Line & Bash Scripting Mastery ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Linux Command Line & Bash Scripting Mastery หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Linux Command Line & Bash Scripting Mastery บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การควบคุมงาน (bg, fg, jobs)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Linux Command Line & Bash Scripting Mastery นี้ได้ไหม
ได้ บทเรียน Linux Command Line & Bash Scripting Mastery ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การควบคุมงาน (bg, fg, jobs)
- การขยายคำสั่งเชลล์และการจับคู่รูปแบบ
- ชื่อแทนและพรอมต์แบบกำหนดเอง
- ฟังก์ชันเชลล์และส่วนโค้ดที่นำกลับมาใช้ซ้ำ