Tôi có một script.sh tập tin và loại này tập tin là shellscript tập tin. Tôi muốn làm điều này thấy như là ứng dụng/x-tập tin thực thi. Làm thế nào tôi có thể làm cho nó?
Bạn có thể đánh dấu các tập tin như 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 mệnh lệnh khác để khởi động nó, bạn có thể thêm một bí danh:
gedit ~/.bashrc
Thêm điều này cuối cùng của các tập tin:
alias <new name>='/home/<full path to script>/filename.sh'
Mở một nhà ga mới hoặc loại source ~/.bashrc
trong thiết bị đầu cuối của để áp dụng.Sau đó, chỉ cần sử dụng các tên mới bắt đầu kịch bản.
Có hai cách để làm cho một tập tin thực thi:
Phương pháp GUI:
Phải bấm vào các tập tin và chọn chỗ Nghỉ.Đi đến các quyền tab, sau đó đánh dấu vào các hộp Execute: [ ] Allow executing file as program
hoặc trong Nautilus Program: [ ] Allow this file to run as a program
trong Thunar.
Thiết bị đầu cuối / Lệnh phương pháp:
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
nào cũng có một tùy chọn nâng cao hơn:
Các không gian đang để cho thấy rằng nó được chia tay: - rwx --- ---
Đầu tiên bộ ---
là người Dùng. Thứ hai là Nhóm và cuối cùng là Khác (bất cứ ai khác)
r đứng để Đọc, w để Viết và x cho thực hiện.
Vì vậy, để cho tất cả mọi người để đọc nó, nhưng Nhóm duy nhất để thực hiện và Sử dụng để đọc và viết nó (nhưng đối với một số lý do không thực hiện) sẽ được:
-rw- rx- r--
Nhưng điều này sẽ được thêm vào danh lệnh như:
chmod +rw-rx-r-- /path/to/file.extension
chmod
cũng có thể làm điều này trong số. Nó được dựa trên nhị phân (, tôi nghĩ, như nó là 1,2 và 4)
Vì vậy, đó là những con số này:
Thực hiện bởi dùng được 100
.Thực hiện theo nhóm 010
.Thực hiện bởi khác được 001
.
Viết bởi dùng được 200
.Viết bởi nhóm được 020
.Viết bởi khác được 002
.
Đọc bởi dùng được 400
.Nhóm được đọc bởi 040
.Đọc bởi khác được 004
.
Sau đó, bạn thêm này lại với nhau để có được những mong muốn sự kết hợp.
Vì vậy, để cho tất cả mọi người để đọc nó, nhưng Nhóm duy nhất để thực hiện và Dùng để viết nó (nhưng đối với một số lý do không thực hiện) sẽ được:
400 + 040 + 004
và 010
và 200
Có thêm đến 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ể loại:
chmod +rwxrwxrwx /path/to/file.extension
Hoặc (điều này là dễ dàng hơn một chút để viết, nhưng khó để nhớ mỗ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
Để có tất cả các quyền xa tất cả mọi người.
Và:
chmod +300 /path/to/file.extension
Thêm đọc và viết cho người dùng, không ảnh hưởng đến bất kỳ điều khoản khác (ví dụ như quyền thực Thi).
Trang web này có một rất hữu ích nhỏ lưới hộp điều đó, bạn có thể đánh dấu vào các tùy chọn bạn muốn và nó sẽ cho bạn lệnh:
Tuy nhiên, không phải tất cả sự kết hợp có thể là hợp lý để sử dụng những chính rằng được sử dụng được sau:
755 - Owner
có tất cả, và Group
và Other
có thể đọc và thực hiện
700 - Owner
có tất cả
644 - Owner
có thể đọc và viết, và Group
và Other
có thể đọc
600 - Owner
có thể đọc và viết
Và nếu bạn đang sử dụng không tầm thường dùng nhóm:
775 - Owner
có thể đọc và viết, và Group
và Other
có thể đọc
770 - Owner
và Group
có tất cả, và Other
có thể đọc và thực hiện
750 - Owner
có tất cả, và Group
có thể đọc và thực hiện
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, trừ /không.
Cảm ơn Ilmari Karonen cho chỉ ra những người chung sử dụng!
Chạy:
chmod +x /path/to/file.sh
Để làm cho nó un-thực thi, chạy:
chmod -x /path/to/file.sh
Ví dụ ta tạo ra .sh
tập tin:
vi tester12.sh
Sau khi tôi viết một số mã trên vi biên tập, tôi sẽ rời khỏi vi biên tập:
:wq!chmod +x tester12.sh./tester12.sh
Hãy để tất cả mọi người chạy của kịch bản
Như đã nói, bạn có thể thiết lập thực hiện chút các tập tin để làm cho nó thực thi với chmod +x
. Nhưng bạn cũng có thể sử dụng chmod a+x
:
$ ll file_command.txt-rw-rw-r-- 1 rick rick 17 Sep 19 08:55 file_command.txt$ chmod a+x file_command.txt$ ll file_command.txt-rwxrwxr-x 1 rick rick 17 Sep 19 08:55 file_command.txt*
Ghi CHÚ:
- Một kịch bản đó không phải kết thúc với
.sh
nó có thể kết thúc trong.txt
như thể hiện ở đây, hoặc không có mở rộng nào. - Thay vì chỉ
+x
(duy nhất bạn có thể thực hiện các kịch bản), sử dụnga+x
vì vậy, tất cả các người có thể thực hiện các kịch bản. - Các tập tin có một tên
*
gắn vào nó để chỉ nó được thực thi. Cũng các tập tin tên thay đổi màu xanh trên hầu hết các hệ thống.
Chạy một kịch bản mà không làm cho nó thực thi
Bạn vẫn có thể chạy một kịch bản bash mà không làm cho nó thực thi. Ví dụ::
$ echo "echo Hello World" > file_command.txt$ cat file_command.txtecho Hello World$ bash file_command.txtHello World
Ghi CHÚ:
- Đầu tiên chúng ta tạo ra một kịch bản chứa
echo Hello World
. - Sau đó, chúng tôi xác nhận các kịch bản gọi là
file_command.txt
là chính xác. - Cuối cùng chúng tôi chạy các kịch bản của gọi điện thoại
bash
và vượt qua nó tên kịch bản. Nhữngbash
lệnh được thực sự cửa hàng như/bin/bash
và nó là một thực thi trên tất cả các hệ thống Ubuntu. - Việc tạo ra một tập tin của lệnh giúp bạn tiết kiệm từ thêm những công việc
#!/bin/bash
như dòng đầu tiên trong một kịch bản. - Việc tạo ra một tập tin của lệnh giúp bạn tiết kiệm làm cho nó thực thi với
chmod +x
haychmod a+x
.
Nó không phải là một bản sao, bởi vì tôi có yêu cầu đặc biệt về làm cho nó ứng dụng/x-thực thi. Câu hỏi khác chỉ yêu cầu mở sh tập tin trong thiết bị đầu cuối.