Linux bg command

Lệnh bg trong Linux: Chạy Ngầm Tiến Trình Một Cách Dễ Dàng

Trong thế giới Linux, việc quản lý tiến trình là một kỹ năng quan trọng. Đôi khi, bạn cần chạy một lệnh, nhưng không muốn nó chiếm giữ toàn bộ terminal của mình. Đó là lúc lệnh bg (background) phát huy tác dụng. Lệnh bg cho phép bạn đưa một tiến trình đang tạm dừng (suspended) hoặc vừa mới khởi chạy ra chạy ngầm, giải phóng terminal để bạn có thể tiếp tục làm việc khác.

Bài viết này sẽ cung cấp cho bạn một cái nhìn toàn diện về lệnh bg, từ cú pháp cơ bản, cách sử dụng trong các tình huống thực tế, đến so sánh với các lệnh liên quan khác. Chúng ta sẽ cùng nhau khám phá sức mạnh của bg và cách nó giúp bạn làm việc hiệu quả hơn trên hệ thống Linux.

Cú Pháp Cơ Bản của Lệnh bg

Cú pháp của lệnh bg rất đơn giản:

bg [job_id]

Trong đó:

  • bg: Là lệnh gọi chương trình background.
  • [job_id]: (Tùy chọn) Là ID của tiến trình mà bạn muốn đưa ra chạy ngầm. Nếu bạn bỏ qua job_id, lệnh bg sẽ tác động lên tiến trình đang tạm dừng gần nhất.

Để tìm job_id của một tiến trình, bạn có thể sử dụng lệnh jobs. Lệnh này sẽ liệt kê tất cả các tiến trình đang chạy hoặc tạm dừng trong phiên terminal hiện tại, cùng với job_id của chúng.

Cách Sử Dụng Lệnh bg trong Thực Tế

Hãy xem xét một vài ví dụ thực tế để hiểu rõ hơn cách sử dụng lệnh bg:

  1. Chạy một lệnh dài trong background: Giả sử bạn muốn nén một thư mục lớn bằng lệnh tar, nhưng không muốn phải chờ đợi lệnh này hoàn thành. Bạn có thể chạy lệnh như sau:
  2. tar -czvf archive.tar.gz my_directory &

    Dấu & ở cuối lệnh có nghĩa là lệnh sẽ được chạy trong background ngay từ đầu. Bạn sẽ nhận được một thông báo cho biết job_id của tiến trình.

  3. Đưa một tiến trình đang tạm dừng ra chạy ngầm: Giả sử bạn đã bắt đầu một lệnh (ví dụ: ping google.com), và sau đó nhấn tổ hợp phím Ctrl+Z để tạm dừng nó. Để đưa tiến trình này ra chạy ngầm, bạn có thể sử dụng lệnh:
  4. bg

    Hoặc, nếu bạn có nhiều tiến trình đang tạm dừng, bạn có thể sử dụng:

    bg %1

    Trong đó %1job_id của tiến trình bạn muốn tiếp tục chạy ngầm.

  5. Kiểm tra trạng thái tiến trình chạy ngầm: Sử dụng lệnh jobs để xem danh sách các tiến trình chạy ngầm và trạng thái của chúng.
  6. jobs

    Kết quả trả về sẽ cho bạn biết job_id, trạng thái (running, stopped, done), và lệnh đã được thực thi.

Ví Dụ Thực Tế: Download File Lớn Bằng wget

Một tình huống sử dụng bg rất phổ biến là khi bạn cần tải xuống một file lớn bằng lệnh wget. Bạn có thể bắt đầu tải xuống trong background như sau:

wget https://example.com/large_file.zip &

Lệnh này sẽ bắt đầu tải xuống file large_file.zip từ https://example.com trong background. Bạn có thể tiếp tục sử dụng terminal để làm việc khác trong khi quá trình tải xuống diễn ra.

So Sánh bg với fgnohup

Lệnh bg thường được sử dụng kết hợp với các lệnh khác như fgnohup. Hãy cùng xem xét sự khác biệt giữa chúng:

  • bg vs. fg (foreground): Lệnh bg đưa một tiến trình ra chạy ngầm, trong khi lệnh fg đưa một tiến trình đang chạy ngầm hoặc tạm dừng trở lại chạy ở foreground (trước màn hình). Sử dụng fg để đưa tiến trình trở lại terminal và tương tác với nó.
  • bg vs. nohup: Lệnh nohup (no hang up) cho phép bạn chạy một lệnh ngay cả khi bạn đóng terminal. Khi bạn đóng terminal, các tiến trình chạy bằng bg sẽ bị dừng (hang up). nohup ngăn chặn điều này.

Dưới đây là bảng so sánh chi tiết:

Lệnh Mục đích Ảnh hưởng khi đóng terminal
bg Đưa tiến trình ra chạy ngầm Tiến trình bị dừng
fg Đưa tiến trình trở lại chạy ở foreground Không ảnh hưởng
nohup Chạy tiến trình ngay cả khi đóng terminal Tiến trình tiếp tục chạy

Mẹo và Thủ Thuật Khi Sử Dụng bg

  • Sử dụng disown để tách tiến trình hoàn toàn: Nếu bạn muốn một tiến trình chạy trong background mà không bị ảnh hưởng bởi việc đóng terminal hoặc đăng xuất, bạn có thể sử dụng lệnh disown sau khi đã đưa tiến trình ra background bằng bg.
  • bg %1
        disown %1
  • Kết hợp bgnohup: Để đảm bảo tiến trình của bạn tiếp tục chạy ngay cả khi đóng terminal và không bị dừng, bạn có thể kết hợp cả hai lệnh:
  • nohup command &

Các Lỗi Thường Gặp và Cách Khắc Phục

  • "No such job": Lỗi này xảy ra khi bạn nhập sai job_id hoặc tiến trình đã hoàn thành. Hãy kiểm tra lại job_id bằng lệnh jobs.
  • Tiến trình vẫn tạm dừng: Đảm bảo bạn đã sử dụng lệnh bg sau khi tạm dừng tiến trình bằng Ctrl+Z.

FAQ (Câu Hỏi Thường Gặp)

  1. Làm thế nào để biết một tiến trình đang chạy ở background?

    Sử dụng lệnh jobs để liệt kê tất cả các tiến trình đang chạy hoặc tạm dừng trong phiên terminal hiện tại.

  2. Tôi có thể đưa nhiều tiến trình ra chạy ngầm cùng một lúc không?

    Có, bạn có thể đưa nhiều tiến trình ra chạy ngầm bằng cách sử dụng lệnh bg nhiều lần với các job_id khác nhau.

  3. Làm thế nào để dừng một tiến trình đang chạy ngầm?

    Bạn có thể đưa tiến trình trở lại foreground bằng lệnh fg, sau đó nhấn Ctrl+C để dừng nó. Hoặc bạn có thể sử dụng lệnh kill với process ID (PID) của tiến trình. Bạn có thể tìm PID bằng lệnh ps hoặc top.

Kết Luận

Lệnh bg là một công cụ mạnh mẽ giúp bạn quản lý tiến trình một cách hiệu quả trong Linux. Bằng cách hiểu rõ cú pháp và cách sử dụng của bg, bạn có thể tăng năng suất làm việc và tận dụng tối đa sức mạnh của hệ thống Linux. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để làm chủ lệnh bg và áp dụng nó vào thực tế.

Last Updated : 22/08/2025