Làm thế nào để tạo một file (ví dụ như một .sh kịch bản) thực thi, vì vậy nó có thể chạy từ một thiết bị đầu cuối

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 + 004010200

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:

enter image description here

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à GroupOther có thể đọc và thực hiện

700 - Owner có tất cả

644 - Owner có thể đọc và viết, và GroupOther 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à GroupOther có thể đọc

770 - OwnerGroup 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 - OwnerGroup có thể đọc và viết, và Other chỉ có thể đọc

660 - OwnerGroup 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ụng a+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.

make script executable


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ững bashlệ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 hay chmod a+x.

liên quan đến làm thế Nào để tôi chạy .sh các tập tin trong nhà Ga?

Có thể có bản sao của làm thế Nào để tôi chạy .sh các tập tin?

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.