NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
05/09/2024
Lượt xem

Hướng dẫn sử dụng lệnh exec trong Linux với 8 ví dụ cụ thể

05/09/2024
14 phút đọc
Lượt xem

Đánh giá

Lệnh exec trong Linux rất dễ sử dụng và có thể áp dụng cho nhiều mục đích khác nhau. Thông thường, lệnh exec thực thi các chương trình hoặc lệnh cụ thể mà không tạo ra một tiến trình mới. Bài viết này Vietnix sẽ hướng dẫn bạn cách sử dụng lệnh exec trong Linux một cách hiệu quả thông qua 8 các ví dụ cụ thể.

Lệnh exec trong Linux là gì?

Lệnh exec trong Linux là một công cụ cho phép thay thế tiến trình hiện tại bằng một lệnh mới, có quyền điều khiển bộ nhớ, ID tiến trình và một số tài nguyên khác. Nếu lệnh exec được thực thi mà không có lệnh nào khác kèm theo, lệnh sẽ kết thúc hoạt động của terminal.

Lệnh exec trong Linux là một công cụ cho phép thay thế tiến trình
Lệnh exec trong Linux là một công cụ cho phép thay thế tiến trình

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

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

Lưu ý: Trong cú pháp trên, các tùy chọn được đặt trong dấu ngoặc vuông và có thể sử dụng nhiều tùy chọn cùng lúc. Các đối số cũng có thể bao gồm nhiều giá trị, được biểu thị bằng 3 dấu chấm sau từ Arrgument.

Mọi người cũng xem:

Tùy chọn của lệnh exec trong Linux

Lệnh exec trong Linux hỗ trợ một số tùy chọn khác nhau. Để khám phá thêm nhiều tùy chọn, bạn có thể truy cập trang trợ giúp của lệnh exec.

Bạn chạy lệnh sau trong terminal để xem trang trợ giúp:

help exec

Gợi ý tùy chọn hữu ích:

-c: Đây là tùy chọn dùng để chạy lệnh với môi trường rỗng. 

Lưu ý: Các tùy chọn trong CLI của Linux phân biệt chữ hoa và chữ thường, vì vậy bạn cần chú ý khi sử dụng.

Ví dụ 1: Liệt kê nội dung của directory hiện tại bằng lệnh exec

Bạn có thể dùng lệnh exec để xem chi tiết nội dung của directory hiện tại trong Linux. Có 5 bước thực hiện:

Bước 1: Mở Terminal trên Ubuntu.

Bước 2: Chạy lệnh sau trong terminal:

bash

Bước 3: Nhấn Enter.

Bước 4: Sao chép lệnh sau vào terminal:

exec ls -la

Bước 5: Nhấn Enter. Kết quả, bạn sẽ thấy nội dung của directory hiện tại được liệt kê chi tiết trên màn hình.

Nội dung của directory hiện tại được liệt kê chi tiết
Nội dung của directory hiện tại được liệt kê chi tiết

Lưu ý: Trước khi chạy lệnh exec, bạn cần chạy lệnh bash trước, nếu không, terminal sẽ tự động đóng lại.

Ví dụ 2: Liệt kê tất cả các biến môi trường và giá trị bằng exec

Lệnh exec cũng cho phép bạn liệt kê tất cả các biến môi trường và giá trị tương ứng của chúng trong Linux. Có 3 bước thực hiện:

Bước 1: Mở cửa sổ Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau và nhấn Enter:

bash

Bước 3: Tiếp tục gõ lệnh sau và nhấn Enter:

exec env

Kết quả: Màn hình terminal sẽ hiển thị danh sách tất cả các biến môi trường và giá trị tương ứng của chúng.

liet ke cac bien moi truong bang
Hướng dẫn sử dụng lệnh exec trong Linux với 8 ví dụ cụ thể 40

Lưu ý: Để tránh terminal bị đóng, bạn cần chạy lệnh bash trước khi sử dụng lệnh exec.

Ví dụ 3: Chạy chương trình trong tập lệnh bash bằng lệnh exec trong Linux

Lệnh exec cũng có thể được sử dụng trong tập lệnh bash để chạy một chương trình khác. Có 5 bước thực hiện:

Bước 1: Mở cửa sổ Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau và nhấn Enter để tạo một file tập lệnh mới có tên là script.sh:

nano script.sh
Câu lệnh để chạy chương trình
Câu lệnh để chạy chương trình

Bước 3: Dán đoạn code sau vào file script.sh:

#!/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
Đoạn code
Đoạn code

Bước 4: Lưu và đóng tập lệnh bằng tổ hợp phím Ctrl + SCtrl + X.

Bươc 5: Chạy tập lệnh bằng lệnh sau và nhấn Enter.

. script.sh

Kết quả: Trong hình dưới đây, kết quả cho thấy chương trình trong tập lệnh tên là script.sh đã được chạy. Bạn có thể gõ 1, 2, hoặc 3 và nhấn Enter để chạy chức năng cập nhật, nâng cấp hoặc thoát.

Chương trình trong tập lệnh tên là script.sh đã được chạy
Chương trình trong tập lệnh tên là script.sh đã được chạy

Ví dụ 4: Dùng lệnh exec để ghi log stdout và stderr trong tập lệnh bash

Trong Linux, bạn có thể sử dụng lệnh exec để ghi lại cả đầu ra chuẩn (stdout) và báo lỗi chuẩn (stderr) vào một file log trong tập lệnh bash. Có 7 bước thực hiện

Bước 1: Mở Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau và nhấn Enter để tạo file script mới:

nano logging.sh
Câu lệnh
Câu lệnh

Bước 3: Dán đoạn code sau vào tập lệnh:

#!/bin/bash
# Create testFile.log file
touch testFile.log
# Save testFile.log to log_file variable
log_file="testFile.log"
# Redirect stdin to $log_file
exec >>$log_file
# Redirect stderr to the same place as stdin
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"
Đoạn code
Đoạn code

Bước 4: Lưu tập lệnh và thoát bằng cách nhấn tổ hợp phím CTRL + SCTRL + X.

Bước 5: Để cấp quyền thực thi cho tập lệnh logging.sh, bạn chạy lệnh sau và nhấn Enter:

chmod +x logging.sh
Quyền thực thi đã được cấp
Quyền thực thi đã được cấp

Bước 6: Chạy tập lệnh bằng lệnh sau và nhấn Enter:

./logging.sh
Câu lệnh để chạy tập lệnh
Câu lệnh để chạy tập lệnh

Bước 7: Xem nội dung file log bằng lệnh sau và nhấn Enter:

cat testFile.log

Kết quả: File testFile.log sẽ chứa đầu ra chuẩn (stdout) và báo lỗi chuẩn (stderr) như hình minh hoạ bên dưới.

Output sẽ chứa đầu stdou  và báo stderr
Output sẽ chứa đầu stdou và báo stderr

Ví dụ 5: Tạo môi trường sạch bằng cách chạy tập lệnh

Bạn có thể tạo môi trường sạch bằng cách sử dụng lệnh exec trong Linux kết hợp với lệnh printenv và tùy chọn -c trong Linux. Có 4 bước thực hiện:

Bước 1: Mở Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau và nhấn Enter để hiển thị tất cả các biến môi trường hiện tại:

printenv
Các biến môi trường được hiển thị
Các biến môi trường được hiển thị

Bước 3: Chạy lệnh bash:

bash

Bước 4: Gõ lệnh sau và nhấn Enter để tạo một môi trường sạch:

exec -c printenv

Kết quả: Trong hình bên dưới, bạn có thể thấy kết quả là các biến môi trường và giá trị của biến đã bị xoá sạch bằng cách sử dụng lệnh exec kết hợp với lệnh printenv và tùy chọn -c.

Kết quả các biến môi trường và giá trị của biến đã bị xoá
Kết quả các biến môi trường và giá trị của biến đã bị xoá

Lưu ý: Bạn cần chạy lệnh bash trước khi chạy lệnh exec, nếu không terminal sẽ thoát.

Ví dụ 6: Tìm kiếm và hiển thị nội dung các file bằng lệnh exec trong Linux

Bạn có thể dùng lệnh find để tìm kiếm các file và lệnh cat trong Linux để xem nội dung. Lệnh exec kết hợp hai lệnh này để hiển thị nội dung của các file tìm được. Bạn muốn xem nội dung của tất cả các file .txt trong thư mục MyFolder nằm trong thư mục home. Bạn có thể sử dụng lệnh find để tìm các file này, sau đó dùng exec để hiển thị nội dung:

Bước 1: Khởi động Terminal trên Ubuntu.

Bước 2: Sao chép lệnh sau vào dòng lệnh và nhấn Enter:

find ~/MyFolder -name "*.txt" -exec cat {} \;

Kết quả: Như bạn có thể thấy trong hình bên dưới, terminal đang hiển thị nội dung của tất cả các file .txt được tìm kiếm bởi lệnh find.

Terminal đang hiển thị nội dung của tất cả các file
Terminal đang hiển thị nội dung của tất cả các file

Ví dụ 7: Tìm kiếm và nén nhiều file cùng lúc bằng lệnh exec trong Linux

Bạn có thể dùng lệnh find để tìm kiếm các file và lệnh gzip để nén chúng trong Linux. Lệnh exec kết hợp hai lệnh này để nén các file được tìm thấy. Ví dụ, bạn muốn nén tất cả các file .log trong thư mục MyFolder nằm trong thư mục home. Bạn có thể sử dụng lệnh find để tìm các file này, sau đó dùng exec để nén chúng bằng lệnh gzip. Có 4 bước thực hiện:

Bước 1: Khởi động Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào dòng lệnh và nhấn Enter để xem danh sách các file hiện có trong directory MyFolder/:

ls MyFolder/

Bước 3: Sao chép lệnh sau và dán vào dòng lệnh rồi nhấn Enter:

find ~/MyFolder -name "*.log" -exec gzip {} \;

Bước 4: Gõ lệnh sau vào dòng lệnh và nhấn Enter để kiểm tra kết quả:

ls MyFolder/

Kết quả: Bạn có thể thấy trong hình bên dưới, tất cả các file .log được tìm kiếm bởi lệnh find đã được nén bằng lệnh gzip. Các file .log ban đầu sẽ được thay thế bằng các file .log.gz.

Kết quả các file đã được tìm kiếm và nén lại
Kết quả các file đã được tìm kiếm và nén lại

Ví dụ 8: Tìm kiếm và thay đổi quyền truy cập file bằng exec

Bạn có thể dễ dàng tìm và thay đổi quyền truy cập của nhiều file cùng lúc. Trong ví dụ này sẽ thực hiện thay đổi quyền truy cập của tất cả các file .log trong directory MyFolder/. Có 4 bước thực hiện:

Bước 1: Khởi động Terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào dòng lệnh và nhấn Enter để xem danh sách chi tiết các file hiện có trong directory MyFolder/, bao gồm cả quyền truy cập:

ls -la MyFolder/

Bước 3: Sao chép lệnh sau và dán vào dòng lệnh rồi nhấn Enter:

find ~/MyFolder -name "*.log" -exec chmod +x {} \;

Bước 4: Gõ lệnh sau vào dòng lệnh và nhấn Enter để kiểm tra kết quả:

ls -la MyFolder/

Kết quả: Trong hình bên dưới, bạn có thể thấy quyền của tất cả các file .log được tìm kiếm bởi lệnh find đã được thay đổi bằng cách sử dụng lệnh chmod trong Linux.

File đã được tìm kiếm và thay đổi quyền truy cập
File đã được tìm kiếm và thay đổi quyền truy cập

Câu hỏi thường gặp

Lệnh exec khác với việc chạy một chương trình bình thường như thế nào?

Lệnh exec thay thế chương trình đang chạy hiện tại bằng một chương trình khác. Còn khi chạy trực tiếp một chương trình thì chương trình đó sẽ chạy như một tiến trình con.

Sự khác biệt giữa lệnh exec và lệnh ./ như thế nào?

Lệnh ./ chỉ đơn giản là chạy một chương trình trong thư mục hiện tại mà không thay thế chương trình đang chạy.

Lệnh exec có ảnh hưởng gì đến các quá trình con (child process) không?

Khi sử dụng exec, quá trình hiện tại sẽ bị thay thế hoàn toàn, nên không có khái niệm quá trình con trong trường hợp này. Tất cả các thông tin về quá trình gốc sẽ bị mất.

Lời kết

Qua bài viết này, bạn đã nắm bắt được cú pháp, các tùy chọn chức năng cũng như những ứng dụng cụ thể của lệnh exec. Để thực sự trở thành một chuyên gia trong việc sử dụng Linux, bạn hãy dành thời gian thực hành cùng với các ứng dụng của lệnh exec trong các tình huống thực tế.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG