Tôi có một tập tin script.sh và loại tập tin này là tập tin shellscript. Tôi muốn tạo tệp này dưới dạng tệp ứng dụng / x-thực thi. Làm thế nào tôi có thể làm cho nó?
Tôi có một tập tin script.sh và loại tập tin này là tập tin shellscript. Tôi muốn tạo tệp này dưới dạng tệp ứng dụng / x-thực thi. Làm thế nào tôi có thể làm cho nó?
Câu trả lời:
Bạn có thể đánh dấu tệp là tệp thực thi:
chmod +x filename.sh
Sau đó bạn có thể thực hiện nó như thế này:
./filename.sh
Nếu bạn muốn sử dụng một lệnh khác để bắt đầu nó, bạn có thể thêm một bí danh:
gedit ~/.bashrc
Thêm phần này vào cuối tập tin:
alias <new name>='/home/<full path to script>/filename.sh'
Mở một phiên thiết bị đầu cuối mới hoặc nhập source ~/.bashrc
vào thiết bị đầu cuối của bạn để áp dụng. Sau đó, chỉ cần sử dụng tên mới để bắt đầu kịch bản.
./filename.sh
và không chỉ filename.sh
?
filename
và không./filename
./filename.sh
chỉ định một tệp trong thư mục hiện tại và sử dụng filename.sh
chỉ định một tệp trong thư mục hiện tại hoặc bất kỳ thư mục nào của PATH. Việc sử dụng đầu tiên loại bỏ bất kỳ sự không chắc chắn nào về việc tập tin nào được truy cập. Trong trường hợp này, bạn đang cố gắng thực thi tập lệnh bằng bash hoặc trình thông dịch khác (theo giả định #!/bin/bash
là dòng đầu tiên trong tập lệnh của bạn) chỉ bằng cách nhập tên tệp. Việc sử dụng này yêu cầu thư mục được chỉ định. Ngoài ra, bạn có thể thử bash filename.sh
dường như hoạt động với thư mục không xác định.
Có hai cách để tạo một tệp thực thi:
Phương pháp GUI:
Chuyển đến tab quyền, sau đó đánh dấu vào ô `Thực thi: [] Cho phép thực thi tệp dưới dạng chương trình.
Phương thức Terminal / Command:
Bạn có thể sử dụng:
cd /to/my/required/directory
Sau đó chạy
chmod +x filename.extension
Hoặc chỉ cần chạy:
chmod +x /path/to/your/filename.extension
chmod
cũng có một số tùy chọn nâng cao hơn:
Các không gian là để hiển thị rằng nó được chia ra: - rwx --- ---
Bộ đầu tiên ---
là Người dùng. Thứ hai là Nhóm và cuối cùng là Khác (bất kỳ ai khác)
r là viết tắt của Đọc, w cho Viết và x cho eXecute.
Vì vậy, để cho phép mọi người đọc nó, nhưng chỉ Nhóm thực thi và Người dùng đọc và viết nó (nhưng vì lý do nào đó không thực thi) sẽ là:
-rw- rx- r--
Nhưng điều này sẽ được thêm vào lệnh như:
chmod +rw-rx-r-- /path/to/file.extension
chmod
cũng có thể làm điều này với số lượng. Nó dựa trên nhị phân (tôi nghĩ, vì nó là 1,2 và 4)
Vì vậy, có những con số:
Thực thi bởi người dùng là 100
. Thực hiện theo nhóm là 010
. Thực thi bởi khác là 001
Viết bởi người dùng là 200
. Viết theo nhóm là 020
. Viết bởi khác là 002
.
Đọc bởi người dùng là 400
. Đọc theo nhóm là 040
. Đọc bởi khác là 004
.
Sau đó, bạn thêm những thứ này lại với nhau để có được sự kết hợp mong muốn.
Vì vậy, để cho phép mọi người đọc nó, nhưng chỉ Nhóm thực thi và Người dùng viết nó (nhưng vì một số lý do không thực thi) sẽ là:
400 + 040 + 004
và 010
và200
Điều đó thêm tới 600 + 050 + 004 = 654.
Sau đó bạn có thể chạy lệnh.
chmod +654 /path/to/file.extension
để thiết lập nó.
Và để đặt tất cả các quyền, bạn có thể nhập:
chmod +rwxrwxrwx /path/to/file.extension
Hoặc (cái này dễ viết hơn một chút, nhưng khó nhớ hơn từng cái một):
chmod +777 /path/to/file.extension
Cuối cùng, bạn có thể làm:
chmod -777 /path/to/file.extension
Để lấy tất cả các quyền từ mọi người.
Và:
chmod +300 /path/to/file.extension
Để thêm đọc và viết cho người dùng, mà không ảnh hưởng đến bất kỳ quyền nào khác (ví dụ: Thực thi quyền).
Trang web này có một hộp kiểm lưới nhỏ rất hữu ích, theo đó bạn có thể đánh dấu vào các tùy chọn bạn muốn và nó cung cấp cho bạn lệnh:
Tuy nhiên, không phải tất cả các kết hợp có thể là hợp lý để sử dụng; những cái chính được sử dụng là như sau:
755 - Owner
có tất cả, Group
và Other
có thể đọc và thực thi
700 - Owner
có tất cả
644 - Owner
có thể đọc và viết, Group
và Other
có thể đọc
600 - Owner
có thể đọc và viết
Và, nếu bạn đang sử dụng các nhóm người dùng không tầm thường:
775 - Owner
có thể đọc và viết, Group
và Other
có thể đọc
770 - Owner
và Group
có tất cả, và Other
có thể đọc và thực thi
750 - Owner
có tất cả, và Group
có thể đọc và thực thi
664 - Owner
và Group
có thể đọc và viết, và Other
chỉ có thể đọc
660 - Owner
và Group
có thể đọc và viết
640 - Owner
có thể đọc và viết, và Group
có thể đọc
777 và 666 hiếm khi được sử dụng, ngoại trừ trong / tmp.
Cảm ơn Ilmari Karonen cho chỉ ra những áp dụng phổ biến!