Hướng dẫn sử dụng lệnh exec trong Linux qua 8 ví dụ minh hoạ

 

exec trong Linux là gì?

 

Lệnh exec dùng để thay thế tiến trình hiện tại bằng một lệnh hoặc chương trình khác. Khi thực thi, exec sử dụng cùng PID (process ID), vùng nhớ và các tài nguyên khác của tiến trình gốc. Nếu bạn dùng exec mà không chỉ định lệnh nào, terminal sẽ bị đóng lại.

 

Cú pháp của lệnh exec:

 

exec [OPTION]... [ARGUMENT]...

Lưu ý: Các phần trong ngoặc vuông là tùy chọn, và bạn có thể sử dụng nhiều tùy chọn hoặc đối số cùng lúc. Dấu ba chấm biểu thị rằng có thể dùng nhiều giá trị cho phần ARGUMENT.

 

Một số tùy chọn thường dùng của lệnh exec

 

Bạn có thể khám phá thêm các tùy chọn bằng cách chạy:

help exec
 

Ví dụ phổ biến:

  • -c: Thực thi lệnh với môi trường trống.

Chú ý: Linux phân biệt chữ hoa và chữ thường, hãy đảm bảo bạn gõ đúng lệnh.

 

8 ví dụ thực tế sử dụng exec trong Linux

 

Ví dụ 1: Liệt kê nội dung thư mục hiện tại

 

Bạn có thể dùng exec để hiển thị danh sách các file trong thư mục hiện tại như sau:

  1. Mở Terminal trên Ubuntu.

  2. Gõ:

    bash
  3. Nhấn Enter.

  4. Tiếp tục gõ:

    exec ls -la
  5. Nhấn Enter.

 

Kết quả: Terminal sẽ hiển thị danh sách chi tiết các file và thư mục.


Lưu ý: Nếu không chạy bash trước, terminal có thể tự đóng.

 

Ví dụ 2: Hiển thị biến môi trường và giá trị

 

Thực hiện theo các bước:

  1. Mở Terminal.

  2. Nhập lệnh:

    bash
  3. Sau đó gõ:

    exec env
     

Kết quả: Danh sách biến môi trường và giá trị tương ứng sẽ hiển thị.


Lưu ý: Nhớ chạy bash trước để tránh đóng terminal.

 

Ví dụ 3: Chạy chương trình từ tập lệnh Bash

 

Bạn có thể nhúng exec vào một tập lệnh để thực thi chương trình:

  1. Mở Terminal.

  2. Tạo tập tin mới:

    nano script.sh
  3. Dán đoạn mã sau:

    #!/bin/bash while true do echo "1) Update" echo "2) Upgrade" echo "3) Exit" read Input case "$Input" in 1) exec sudo apt update ;; 2) exec sudo apt upgrade ;; 3) break ;; esac done
     

    Linux, exec

  4. Lưu file với Ctrl + S, thoát bằng Ctrl + X.

  5. Thực thi script:

    . script.sh

Kết quả: Tùy chọn theo số bạn chọn sẽ thực thi ngay.

 

Ví dụ 4: Ghi log stdout và stderr vào file log

 

Bạn có thể dùng exec để redirect output và error vào log file:

  1. Mở Terminal.

  2. Tạo file mới:

    nano logging.sh
  3. Chèn nội dung sau:

    #!/bin/bash touch testFile.log log_file="testFile.log" exec >>$log_file exec 2>&1 echo "This line is the first line of the log file" echo "This line is the second line of the log file" eho "This line is the third line and has an error"
     

    Linux, exec

  4. Lưu và thoát.

  5. Cấp quyền thực thi:

    chmod +x logging.sh
  6. Chạy script:

    ./logging.sh
  7. Xem nội dung log:

    cat testFile.log
     

Kết quả: Log file chứa đầy đủ cả output và lỗi (có lỗi ở dòng eho).

 

Ví dụ 5: Tạo môi trường sạch

 

Dùng exec với tùy chọn -c để xóa biến môi trường:

  1. Mở Terminal.

  2. Xem biến hiện có:

    printenv
  3. Khởi động Bash:

    bash
  4. Chạy:

    exec -c printenv
     

Kết quả: Tất cả biến môi trường bị xóa sạch.


Lưu ý: Hãy chạy bash trước để tránh terminal đóng đột ngột.

 

Ví dụ 6: Tìm và hiển thị nội dung file

 

Bạn muốn tìm và xem nội dung tất cả file .sh trong thư mục Desktop:

  1. Mở Terminal.

  2. Chạy:

    find ~/Desktop -name "*.sh" -exec cat {} \;
     

Kết quả: Nội dung các file .sh được hiển thị trong terminal.

 

Ví dụ 7: Tìm và nén nhiều file

 

Bạn có thể dùng exec để kết hợp findgzip:

  1. Mở Terminal.

  2. Kiểm tra file có sẵn:

    ls ~/Desktop/
  3. Nén các file .sh:

    find ~/Desktop -name "*.sh" -exec gzip {} \;
  4. Kiểm tra lại:

    ls ~/Desktop/
     

Kết quả: Các file .sh sẽ được nén thành .sh.gz.

 

Ví dụ 8: Tìm và thay đổi quyền truy cập file

 

Bạn muốn cấp quyền thực thi cho tất cả các file .gz:

  1. Mở Terminal.

  2. Xem danh sách file:

    ls -la ~/Desktop/
  3. Cấp quyền thực thi:

    find ~/Desktop -name "*.gz" -exec chmod +x {} \;
  4. Kiểm tra lại:

    ls -la ~/Desktop/
     

Kết quả: Tất cả file .gz giờ đã có quyền thực thi.

 HỖ TRỢ TRỰC TUYẾN