0Pricing
Linux Command Line & Bash Scripting Mastery · บทเรียน

การควบคุมงาน (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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การควบคุมงาน (bg, fg, jobs)
  2. การขยายคำสั่งเชลล์และการจับคู่รูปแบบ
  3. ชื่อแทนและพรอมต์แบบกำหนดเอง
  4. ฟังก์ชันเชลล์และส่วนโค้ดที่นำกลับมาใช้ซ้ำ
← กลับไปที่ Linux Command Line & Bash Scripting Mastery