Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn chi tiết cách chạy file sh trong Linux đơn giản cho người mới

    Nguyễn Hưng

    Ngày đăng:

    23/01/2026

    Cập nhật lần cuối:

    23/01/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    23/01/2026

    Cập nhật lần cuối:

    23/01/2026

    Mục lục

    File .sh là script shell dùng để tự động hóa các lệnh và tác vụ trong hệ điều hành Linux thông qua dòng lệnh. Việc chạy file .sh giúp bạn tiết kiệm thời gian, giảm thao tác lặp lại và hạn chế lỗi khi thực thi nhiều lệnh thủ công. Trong bài viết này, mình sẽ hướng dẫn bạn cách chạy file .sh trong Linux đơn giản, dễ hiểu, phù hợp cho người mới bắt đầu.

    Những điểm chính

    • Định nghĩa file .sh: Hiểu rõ file .sh là một file văn bản chứa các lệnh để tự động hóa tác vụ trên Linux.
    • Định nghĩa lệnh chmod: Nắm vững khái niệm, các loại quyền và cách sử dụng chmod ở chế độ số học để quản lý quyền truy cập.
    • Cách kiểm tra quyền truy cập: Biết cách sử dụng ls -l để kiểm tra xem một file đã có quyền thực thi hay chưa.
    • Hướng dẫn cấp quyền thực thi: Thành thạo 3 cách cấp quyền execute bằng chmod, từ việc cấp cho chủ sở hữu, tất cả người dùng, đến việc sử dụng mã số.
    • Cách chạy file .sh: Nắm được phương pháp chạy file .sh sau khi đã cấp quyền.
    • Chạy file .sh khi không có quyền thực thi: Biết cách chạy trực tiếp file .sh bằng cách gọi trình thông dịch mà không cần cấp quyền.
    • Ví dụ khác về lệnh chmod: Khám phá thêm các ví dụ để cấp hoặc gỡ quyền một cách linh hoạt, bao gồm cả quyền 777 và cảnh báo bảo mật.
    • Những lưu ý quan trọng: Nắm được các lưu ý quan trọng để chạy file .sh một cách an toàn và hiệu quả, từ việc kiểm duyệt mã nguồn đến sử dụng đường dẫn tuyệt đối.
    • Câu hỏi thường gặp: Giải đáp các thắc mắc liên quan đến việc chạy file .sh trong Linux.

    File .sh là gì?

    Trong môi trường Linux, các file có phần mở rộng .sh (Shell Script) là những file văn bản thuần túy, trong đó chứa tập hợp các lệnh hệ thống được sắp xếp theo trình tự để tự động hóa thao tác, thay vì phải nhập từng lệnh thủ công qua dòng lệnh. Người dùng có thể dễ dàng tạo hoặc chỉnh sửa file .sh bằng bất kỳ trình soạn thảo văn bản nào như vi, nano hoặc gedit.

    Một đặc điểm nhận diện quan trọng của Shell Script là dòng đầu tiên thường xuất hiện ký tự shebang (#!) đi kèm đường dẫn tuyệt đối tới trình thông dịch sẽ thực thi kịch bản đó. Ví dụ, #!/bin/bash chỉ định script sẽ chạy bởi Bash shell, trong khi #!/bin/sh quy định sử dụng SH shell. Đây là tiêu chuẩn cần thiết để hệ thống xác định đúng môi trường thực thi cho mỗi file shell script.

    File có phần mở rộng .sh còn được gọi là Shell Script
    File có phần mở rộng .sh còn được gọi là Shell Script

    Lệnh chmod là gì?

    Lệnh chmod (change mode) là một tiện ích dòng lệnh cơ bản trong các hệ điều hành tương tự UNIX như Linux. Chức năng chính của chmod là thay đổi hoặc thiết lập các quyền truy cập cho file và thư mục, quyết định ai có thể đọc, ghi hoặc thực thi.

    Lệnh chmod có thể thay đổi hoặc thiết lập các quyền truy cập cho file và thư mục
    Lệnh chmod có thể thay đổi hoặc thiết lập các quyền truy cập cho file và thư mục

    1. Ba loại quyền cơ bản

    Hệ thống quyền của Linux được xây dựng dựa trên ba hành động cơ bản, áp dụng cho ba loại người dùng khác nhau: owner (chủ sở hữu file), group (nhóm sở hữu file) và others (tất cả những người dùng khác):

    • Read (r): Cho phép người dùng xem nội dung của một file hoặc liệt kê các file bên trong một thư mục.
    • Write (w): Cho phép người dùng sửa đổi, thêm, xóa nội dung của file hoặc tạo/xóa file trong một thư mục.
    • Execute (x): Cho phép người dùng chạy một file như một chương trình hoặc script. Đối với thư mục, quyền này cho phép người dùng cd vào thư mục đó.

    2. Minh họa sử dụng chế độ số học (Octal Mode)

    Dưới đây là các toán tử trong chmod:

    Toán tửÝ nghĩa
    +Thêm quyền
    Gỡ quyền
    =Gán chính xác quyền như xoá trước, đặt lại,…

    Ngoài cách dùng ký hiệu (+x, -w), chmod còn hỗ trợ một chế độ mạnh mẽ hơn là sử dụng các chữ số bát phân. Trong chế độ này, mỗi quyền được gán một giá trị số:

    • Read (r) = 4
    • Write (w) = 2
    • Execute (x) = 1

    Một lệnh chmod hoàn chỉnh ở chế độ số học sẽ có dạng chmod [số_cho_owner][số_cho_group][số_cho_others] [tên_tệp].

    Vai tròQuyềnGiá trị Octal
    OwnerĐọc, ghi, thực thi (rwx)7
    GroupĐọc, thực thi (r-x)5
    OthersĐọc, thực thi (r-x)5

    3. Các cấu hình quyền phổ biến cho Script

    Dưới đây là các cấu hình phân quyền được dùng phổ biến, giúp đảm bảo script chạy được, giữ mức độ an toàn và riêng tư phù hợp với từng tình huống sử dụng:

    • chmod 755 ten_script.sh: Đây là cấu hình phổ biến và an toàn nhất, cấp cho chủ sở hữu toàn quyền (đọc, ghi, thực thi), trong khi nhóm và những người dùng khác chỉ có thể đọc và thực thi script. Quyền hiển thị sẽ là -rwxr-xr-x.
    • chmod 775 ten_script.sh: Cấu hình này hữu ích khi bạn làm việc trong một nhóm phát triển. Cả chủ sở hữu và các thành viên trong nhóm đều có quyền chỉnh sửa và chạy script. Quyền hiển thị sẽ là -rwxrwxr-x.
    • chmod 700 ten_script.sh: Cấu hình này mang tính riêng tư cao nhất, chỉ cho phép duy nhất chủ sở hữu có thể đọc, ghi và thực thi script. Quyền hiển thị sẽ là -rwx------.
    Các cấu hình quyền phổ biến cho Script
    Các cấu hình quyền phổ biến cho Script

    Cách kiểm tra quyền truy cập của file

    Trước khi chạy script, bạn hãy kiểm tra quyền truy cập với lệnh ls -l:

    $ ls -l script.sh

    Kết quả có dạng như sau:

    Bạn hãy kiểm tra quyền truy cập với lệnh ls -l
    Bạn hãy kiểm tra quyền truy cập với lệnh ls -l

    Nếu không có x trong quyền (ví dụ như: -rwxr-xr–), thì file không thể thực thi trực tiếp.

    Hướng dẫn cấp quyền thực thi bằng chmod

    Cách 1: Cấp quyền thực thi cho chủ sở hữu

    Bạn chạy lệnh sau để cấp quyền thực thi cho chủ sở hữu của file script.sh. Cụ thể, sau khi thực hiện lệnh này, người sở hữu file có thể trực tiếp chạy file script trên hệ thống Linux.

    $ chmod u+x script.sh

    Trong đó:

    • u: Viết tắt của “user”, tức là chủ sở hữu file.
    • +x: Bổ sung quyền thực thi (execute).
    • script.sh: Tên file script cần thay đổi quyền.

    Kết quả của lệnh này là chủ sở hữu file script.sh sẽ có thêm quyền thực thi file, có thể thực hiện lệnh ./script.sh để chạy script ngay trên terminal.

    chủ sở hữu file script.sh sẽ có thêm quyền thực thi file
    chủ sở hữu file script.sh sẽ có thêm quyền thực thi file

    Cách 2: Cấp quyền thực thi cho tất cả đối tượng

    Lệnh dưới đây có chức năng cấp quyền thực thi cho tất cả các đối tượng như: Chủ sở hữu (user), nhóm (group) và những người dùng khác (others). Sau khi chạy lệnh này, bất kỳ ai trên hệ thống đều có thể khởi chạy file script.sh từ terminal:

    $ chmod +x script.sh

    Lệnh này giúp file script.sh chuyển sang trạng thái “có thể thực thi” với mọi đối tượng. Đây là cách mở rộng quyền truy cập, thuận tiện cho môi trường nhiều người dùng, nhưng bạn cần cân nhắc với các file quan trọng hoặc nhạy cảm về bảo mật.

    Cấp quyền thực thi cho tất cả đối tượng
    Cấp quyền thực thi cho tất cả đối tượng

    Cách 3: Cấp quyền cụ thể bằng mã số

    Bạn chạy lệnh sau để cấp quyền truy cập cho file script.sh bằng mã số.

    $ chmod 755 script.sh

    Ý nghĩa 755:

    • 7: user = read + write + execute.
    • 5: group = read + execute.
    • 5: others = read + execute.

    Lệnh này thiết lập quyền truy cập cho file script.sh sao cho chủ sở hữu có đầy đủ quyền (đọc, ghi, thực thi), còn nhóm sở hữu và mọi người dùng khác chỉ có thể đọc và thực thi file, không thể chỉnh sửa nội dung file. Đây là thiết lập phổ biến dành cho các script hệ thống, đảm bảo tính bảo mật và khả năng sử dụng chung.

    Cấp quyền cụ thể bằng mã số
    Cấp quyền cụ thể bằng mã số

    Cách chạy file sh trong Linux

    Sau khi đã thiết lập quyền thực thi cho file script, bạn có thể khởi chạy script bằng lệnh dưới đây trong terminal:

    $ ./script.sh

    Kết quả hiển thị như sau:

    Bạn tiến hành chạy script
    Bạn tiến hành chạy script

    Lưu ý

    Nếu xuất hiện thông báo lỗi “Permission denied”, nghĩa là file chưa được cấp quyền thực thi. Lúc này, bạn cần kiểm tra và đảm bảo rằng file script đã có quyền x (execute). Trường hợp quyền thực thi chưa được thiết lập, bạn hãy sử dụng lệnh chmod để bổ sung quyền này (ví dụ: chmod +x script.sh).

    Cách chạy file sh trong Linux khi không có quyền thực thi

    Trong trường hợp file script.sh chưa có quyền thực thi, bạn vẫn có thể chạy script đó bằng cách sử dụng trình thông dịch Bash mà không cần thiết lập quyền thực thi. Cú pháp thực hiện như sau:

    $ bash script.sh

    Khi sử dụng lệnh này, Bash sẽ trực tiếp đọc và thực thi nội dung bên trong file script mà không kiểm tra quyền thực thi của file. Kết quả hiển thị như sau:

    Bash sẽ trực tiếp đọc và thực thi nội dung bên trong file script
    Bash sẽ trực tiếp đọc và thực thi nội dung bên trong file script

    Để chạy một file Python script trong Linux, bạn sử dụng lệnh sau:

    $ python3 script.py

    Kết quả hiển thị sau khi bạn chạy lệnh:

    Bạn chạy một file Python script trong Linux
    Bạn chạy một file Python script trong Linux

    Đối với file script viết bằng Perl, thực hiện lệnh sau để chạy:

    $ perl script.pl

    Kết quả hiển thị lệnh này như sau:

    Chạy file script viết bằng Perl
    Chạy file script viết bằng Perl

    Cả hai lệnh này đều trực tiếp gọi trình thông dịch tương ứng (Python hoặc Perl), không yêu cầu quyền thực thi của file script, chỉ cần file có quyền đọc cho user hiện tại. Đây là phương pháp phổ biến để kiểm tra và chạy nhanh các script trên hệ thống Linux.

    Một số ví dụ khác về lệnh chmod trên Linux

    1. Cấp quyền thực thi chỉ cho nhóm sở hữu (group): Lệnh này giúp nhóm sở hữu file script.sh có thêm quyền thực thi, còn các đối tượng khác thì không thay đổi quyền:

    $ chmod g+x script.sh

    2. Gỡ quyền thực thi cho tất cả mọi đối tượng: Lệnh này sẽ loại bỏ quyền thực thi khỏi file script.sh, khiến bất kỳ ai cũng không thể chạy trực tiếp file này cho đến khi quyền được cấp lại:

    $ chmod -x script.sh

    3. Cấp quyền đọc, ghi, thực thi cho tất cả (user, group, others): Lệnh này cho phép chủ sở hữu, nhóm và tất cả người dùng khác đều được đọc, ghi và thực thi file script.sh:

    $ chmod 777 script.sh

    Lưu ý

    Bạn không nên sử dụng quyền 777 cho các file quan trọng vì mọi đối tượng trên hệ thống đều có toàn quyền kiểm soát file, tiềm ẩn nhiều rủi ro về bảo mật.

    Những lưu ý quan trọng khi chạy file .sh trong Linux

    Dưới đây là một số lưu ý quan trọng giúp bạn chạy shell script một cách an toàn, hạn chế lỗi hệ thống và các rủi ro bảo mật:

    • Kiểm duyệt nội dung mã nguồn: Bạn cần đọc và hiểu nội dung script trước khi chạy, đặc biệt với các script tải từ Internet, điều này giúp ngăn chặn các lệnh độc hại tiềm ẩn như rm -rf / hoặc mã tải malware.
    • Cấp quyền thực thi chính xác: Hệ thống Linux mặc định không cho phép chạy file text nên bạn cần cấp quyền thực thi bằng lệnh chmod +x ten_file.sh trước khi khởi chạy bằng phương thức ./ten_file.sh.
    • Cẩn trọng khi sử dụng quyền Root: Bạn hạn chế tối đa việc chạy script với lệnh sudo trừ khi thực sự cần thiết và hiểu rõ script đó tác động gì đến file hệ thống, nhằm tránh rủi ro phá hỏng cấu hình server.
    • Xử lý lỗi định dạng dòng: File .sh được soạn thảo trên Windows thường dính lỗi ký tự xuống dòng CRLF khiến Linux không hiểu và báo lỗi \r: command not found), khi đó bạn cần chuyển đổi sang chuẩn Unix LF bằng lệnh dos2unix ten_file.sh hoặc sed.
    • Sử dụng đường dẫn tuyệt đối (Absolute Path): Khi thiết lập script chạy tự động như trong Cronjob, bạn nên sử dụng đường dẫn tuyệt đối thay vì đường dẫn tương đối, vì môi trường chạy ngầm thường không cùng thư mục hiện hành với người dùng.
    • Chế độ debug và kiểm soát lỗi: Khi chạy thử nghiệm, bạn nên sử dụng lệnh bash -x ten_file.sh để xem chi tiết từng bước thực thi, đồng thời cân nhắc thêm set -e vào đầu script để chương trình tự động dừng ngay lập tức khi gặp bất kỳ lỗi nào.
    Những lưu ý quan trọng khi khởi chạy file .sh trong Linux
    Những lưu ý quan trọng khi khởi chạy file .sh trong Linux

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

    Có thể cấp quyền thực thi cho nhiều file cùng lúc bằng chmod không?

    Hoàn toàn có thể. Bạn dùng cú pháp sau để cấp quyền thực thi cho toàn bộ các file có đuôi .sh trong thư mục hiện tại:
    chmod +x file1.sh file2.sh file3.sh
    Hoặc
    chmod 755 *.sh

    Nếu quên thêm shebang (#!) vào đầu file .sh thì có chạy được không?

    File vẫn sẽ chạy khi bạn gọi bằng Bash hoặc SH, tuy nhiên nếu gọi trực tiếp bằng ./ten_file.sh, hệ thống sẽ dựa vào thiết lập mặc định của môi trường (thường là sh), có thể dẫn đến lỗi cú pháp nếu script viết cho Bash. Vì vậy, luôn nên khai báo đúng shebang đầu file.

    Có phải mọi file text đều có thể cấp quyền thực thi và chạy như shell script?

    Không, chỉ những file text có nội dung hợp lệ của ngôn ngữ shell hoặc ngôn ngữ script với shebang đầu file mới thực sự chạy được khi có quyền thực thi. Các file text khác dù được cấp quyền vẫn không thể hoạt động như một chương trình.

    Chạy script bằng quyền root có rủi ro gì?

    Rủi ro rất cao vì script thực thi với toàn quyền hệ thống, có thể xóa, thay đổi hoặc thao tác ở mọi nơi. Bạn chỉ nên dùng sudo khi thực sự cần và đã kiểm duyệt kỹ nội dung script, tránh bị chiếm quyền hệ thống hoặc phá hỏng dữ liệu.

    Có cần phải cấp quyền thực thi lại cho file .sh mỗi lần mình chỉnh sửa nội dung không?

    Không cần. Quyền thực thi của file không bị ảnh hưởng khi nội dung được sửa đổi, trừ khi bạn thay đổi quyền bằng lệnh chmod mới.

    Chạy file .sh trong Linux không hề phức tạp nếu bạn nắm đúng quy trình và hiểu rõ ý nghĩa của từng lệnh. Thông qua bài viết này, mình đã cùng bạn đi qua các bước cơ bản từ cấp quyền thực thi, chạy script bằng terminal cho đến một số lưu ý quan trọng giúp hạn chế lỗi và rủi ro bảo mật. Khi đã quen, bạn có thể tận dụng shell script để tự động hóa nhiều tác vụ, tiết kiệm thời gian và làm việc hiệu quả hơn trên môi trường Linux. Cảm ơn bạn đã theo dõi!

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Các lệnh tìm file trong Linux mới tạo hoặc mới chỉnh sửa gần đây
    Các lệnh tìm file trong Linux mới tạo hoặc mới chỉnh sửa gần đây

    Các lệnh tìm file trong Linux sẽ liệt kê các file vừa được tạo hoặc thay đổi từ đầu ngày đến thời điểm hiện tại, thường được ứng dụng cho thao tác kiểm tra hoặc tự động hóa trên Linux. Trong bài viết này, mình sẽ giới thiệu hai phương pháp hiệu quả và phổ…

    16/01/2026

    Enterprise Cloud là gì? Những tính năng và lợi ích khi sử dụng Enterprise Cloud cho doanh nghiệp
    Enterprise Cloud là gì? Những tính năng và lợi ích khi sử dụng Enterprise Cloud cho doanh nghiệp

    Enterprise Cloud là mô hình hạ tầng điện toán đám mây được thiết kế riêng cho doanh nghiệp, kết hợp độ linh hoạt của đám mây công cộng với mức độ kiểm soát, bảo mật và tùy biến giống hạ tầng riêng. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu về khái…

    16/01/2026

    Tổng hợp thông tin về Amazon S3 và những lợi ích khi sử dụng
    Tổng hợp thông tin về Amazon S3 và những lợi ích khi sử dụng

    S3 là dịch vụ lưu trữ đối tượng trên đám mây của Amazon, có tên đầy đủ là Amazon Simple Storage Service (Amazon S3). Dịch vụ này cho phép lưu trữ, truy xuất dữ liệu qua Internet với khả năng mở rộng rất lớn, độ sẵn sàng và bảo mật cao. Trong bài viết này,…

    16/01/2026

    Cách sử dụng lệnh mkdir để quản lý thư mục và tự động hóa hiệu quả
    Cách sử dụng lệnh mkdir để quản lý thư mục và tự động hóa hiệu quả

    Lệnh mkdir là lệnh dùng để tạo thư mục mới trong hệ thống file trên Linux/Unix. Đây là công cụ cơ bản để xây dựng và tổ chức cấu trúc thư mục, đặc biệt quan trọng trong các script cài đặt, deploy và tự động hóa. Trong bài viết này, mình sẽ hướng dẫn cách…

    14/01/2026

    linux

    system-linux

    text