Làm cách nào để thực thi tập lệnh chỉ bằng cách nhấp đúp vào như tệp .EXE trong Windows?


116

Làm cách nào để tạo tập lệnh bash có thể thực thi được bằng cách nhấp đúp vào giống như .execác tệp trong Windows? Tôi đã thử tạo launcher và gán script cho nó , nhưng có hai hậu quả:

  1. các thiết bị đầu cuối lấp lánh, biến mất, và không có gì được thực hiện.
  2. bạn phải xác định để chạy trong thiết bị đầu cuối để làm việc.

Tôi có một tập lệnh cài đặt tomcat trên PC ngoại tuyến, bao gồm tất cả các phụ thuộc của tomcat trong tập lệnh. Tôi cần làm cho tập lệnh hoạt động khi nhấp đúp như cửa sổ vì hầu hết những người sử dụng tập lệnh sẽ không quen thuộc với Ubuntu.

Hãy quên lời giải thích trên đi. Tôi muốn tạo một tập lệnh có thể được chạy bằng cách nhấp đúp vào tập lệnh mà không cần sử dụng thiết bị đầu cuối. Có ai biết làm thế nào không?


Tôi nghĩ rằng bạn chỉ có thể viết tập tin máy tính để bàn của bạn kém. Bạn có thể đăng ( nguyên văn ) trình khởi chạy .desktop mà bạn đã viết không?
Jjed

Ngoài ra, bạn đã thấy điều này? Askubfox.com/q/34597/24694
Jjed

Nó chỉ là một trình khởi chạy mà bạn gán tên và lệnh để thực hiện ý tưởng không lớn đó

3
muru đã gợi ý cho tôi về vấn đề này, đã làm việc cho tôi: Askubfox.com/questions/286621/iêu
Drainoi

1
FYI cho khách truy cập trong tương lai: Nautilus, trình quản lý tệp mặc định trên Ubuntu, rõ ràng sẽ loại bỏ khả năng chạy các tệp thực thi trong các bản phát hành mới hơn vào năm 2019 do các lỗ hổng. Bài viết về chủ đềmã cam kết trên GitLab với thảo luận
Sergiy Kolodyazhnyy

Câu trả lời:


134

Tôi đã thử nghiệm điều này và nó hoạt động tốt. Đảm bảo tập lệnh của bạn bắt đầu với shebang chính xác , ví dụ #!/usr/bin/env bash.

Sau đó làm theo các bước sau:

  • Nhấn Alt+ F2để chạy lệnh.
  • dconf-editorvà đánh Enter.
  • Trong dconfg-Editor, hãy truy cập: org ➤ gnome ➤ nautilus ➤ preferences
  • Nhấp vào executable-text-activationvà từ menu thả xuống chọn:

    khởi chạy : để khởi chạy các kịch bản như các chương trình.
    HOẶC
    hỏi : để hỏi phải làm gì thông qua một hộp thoại.

    ảnh chụp màn hình

  • Đóng dcs-biên tập. Đó là nó!

Cách khác, sử dụng thiết bị đầu cuối: Chạy:

gsettings set org.gnome.nautilus.preferences executable-text-activation 'launch'

Lưu ý : Các tập tin nên được thực thi. Bạn cũng có thể cần phải thay đổi sự cho phép của tập tin. Nhấp chuột phải và đặt "Cho phép thực thi tệp dưới dạng chương trình"

ảnh chụp màn hình

Nguồn .


Điều này đã làm việc tuyệt vời. Chỉ cần một lưu ý, "menu thả xuống" đạt được bằng cách nhấp vào giá trị được liệt kê ở bên phải executable-text-activation(giá trị mặc định là display).
ryanjdillon

5
Đối với những người không thể gọi ứng dụng, trước tiên bạn cần cài đặt ứng dụng vớisudo apt-get install dconf-editor
whale_steward 14/03/2015

1
Điều này hoạt động ở mọi nơi ngoại trừ trên máy tính để bàn. Làm thế nào tôi có thể làm cho nó hoạt động trên Desktop? Tôi đang sử dụng Xubfox 14.10.
shrx 28/03/2015

Có cách nào để làm điều này trong LXDE (đối với Lubfox) không?
childofsoong

Điều này hoạt động rất tốt trong slax unix to - xem slax.org để biết hệ thống Unix thực sự tuyệt vời mà bạn có thể khởi động từ một ổ USB.
raddevus

74

Trên Nautilus (Tệp AKA)

  1. Tới Files ( Chỉnh sửa trên Unity (17.04 hoặc thấp hơn))> Preferences> thẻ Behavior

    ảnh chụp màn hình

  2. Thay đổi cài đặt cho tệp văn bản thực thi.

    ảnh chụp màn hình


3
Bây giờ 'Tệp -> Tùy chọn'. (17.04)
niry

Ngọt! Con đường đi imho.
codepleb

Làm thế nào để xem đầu ra?
Amr Lotfy

10

Trong Ubuntu và tất cả các hệ điều hành dựa trên Unix, afaik, không có gì được đặt là thực thi theo mặc định. Có hai cách để làm điều này.

  1. Nhấp chuột phải vào tập lệnh hoặc tập tin bạn muốn thực thi. Chuyển đến Thuộc tính sau đó đến Tab Quyền. Nhấp vào hộp kiểm cho biết Thực thi.

  2. Mở Terminal cdvào thư mục tìm thấy tập tin. Loại . Điều này sẽ thiết lập các tập tin để thực hiện.chmod ugo+x filename

Bây giờ người dùng của bạn có thể nhấp đúp vào nội dung trái tim của họ.


2
Nó vẫn sẽ hỏi bạn phải làm gì với việc chạy trong thiết bị đầu cuối hoặc hiển thị hoặc chạy ... Vì vậy, đó không phải là thứ tôi cần

Chỉ câu trả lời này hoạt động trên Gnome Ubuntu 17.04 để thực hiện tệp máy tính để bàn có thể thực thi được
Kunok

Điều này là để thực thi tập tin trên thiết bị đầu cuối, không phải bằng cách nhấp đúp vào nó.
DimiDak

8

Tôi nghĩ rằng việc tạo tệp * .desktop bị thiếu ở đây:

$ cat shortcut-for-my-script.desktop
[Desktop Entry]
Type=Application
Terminal=true
Name=Click-Script
Icon=utilities-terminal
Exec=gnome-terminal -e "bash -c './script.sh;$SHELL'"
Categories=Application;

Nếu bạn tạo nhiều hơn một tệp * .desktop cho một tập lệnh, bạn có thể tạo nhiều cấu hình bằng cách chuyển các tham số khác nhau, đây là một cách rất thoải mái và thân thiện với người dùng.


1
Đây là câu trả lời tốt nhất cho Ubuntu. Lưu ý rằng bạn có thể không (hoặc có thể không?) Cần chỉ định Terminal=TrueExec=gnome-terminaltrừ khi bạn thực sự tạo một lối tắt cho tập lệnh mà bạn muốn xem đầu ra trong cửa sổ đầu cuối ... Ngoài ra, bạn có thể chỉ Iconra bất kỳ tùy chỉnh nào png bạn có thể muốn ...
BuvinJ

6

Nếu bạn đang sử dụng XFce thì bạn có thể tạo tập lệnh được thực thi trong Thunar bằng cách thực hiện lệnh này:

xfconf-query --channel thunar --property /misc-exec-shell-scripts-by-default \
             --create --type bool --set true

hoặc bằng cách sử dụng gui xfce4-settings-editorvà tạo các thuộc tính tương tự.

Chạy xfce4-settings-editor, sau đó nhập:

  • /misc-exec-shell-scripts-by-default

  • Boolean

  • THẬT

hình ảnh của xfce4-settings-Editor


Dưới đây là cách đạt được mục đích với các hành động tùy chỉnh trong Thunar (mà không bật lại tính năng "rủi ro" đó).
cipricus

Cũng ở đây về cách sử dụng Zenity và nhận được câu hỏi "Chỉnh sửa hoặc chạy?"
cipricus

2

Bạn phải kiểm tra 3 điểm:

  • Cấu hình Nautilus / Nemo: https://askubfox.com/a/286651/301025
  • Tệp tập lệnh phải được thực thi : https://askubfox.com/a/275714/301025
  • Các hệ thống tập tin phải cho phép thực hiện :

    1. Nhập mountvào bảng điều khiển
    2. Kiểm tra xem hệ thống tệp của bạn có noexeccờ không
    3. Xóa noexeccờ bằng cách chỉnh sửa /etc/fstabvà kết nối lại hệ thống đã sửa đổi (ví dụ: khởi động lại hoạt động)

1

Khi bạn tạo khởi chạy trong Máy tính để bàn thành tập lệnh SHEL hoặc Dù thế nào, trong dòng lệnh, đừng quên báo hiệu tập lệnh, sẽ được thực thi ở chế độ nền.

Kịch bản sẽ chết khi anh ta hoàn thành công việc.


1
Tôi đã làm điều đó nhưng những gì

1

Dựa trên umaskgiá trị xác thực, bạn không thực thi quyền cho các tệp theo mặc định và phải thay đổi mod để có quyền thực thi, đại loại như sau:

chmod u+x filename

1
Broth Ali chắc chắn rằng tôi đã làm điều đó rõ ràng để làm điều đó

0

Để bổ sung cho câu trả lời về Thunar : câu trả lời đó sẽ kích hoạt lại một tính năng trước đó của Thunar để thực thi các tập lệnh khi nhấp đúp chuột. Nhưng tính năng đó được coi là một rủi ro bảo mật.

Để tránh điều đó, có lẽ giải pháp tao nhã nhất là lấy một cửa sổ bật lên với câu hỏi như "Bạn muốn làm gì với tệp đó: Chạy hoặc chỉnh sửa?" (tương tự như những gì bạn có trong các trình quản lý tệp khác như PCManFM và Nemo) khi nhấp vào tệp đó - bằng cách sử dụng Zenity: tại đây .


Một thay thế sẽ là hành động tùy chỉnh , có lẽ tính năng tốt nhất mà Thunar có.

Lệnh mà tôi sử dụng để chạy tệp văn bản thực thi là sh -c %f, cho một hành động tùy chỉnh có tên là "Chạy / Thực thi tập lệnh".

nhập mô tả hình ảnh ở đây

Các điều kiện xuất hiện chỉ đơn giản là "văn bản":

nhập mô tả hình ảnh ở đây

Một lệnh tương tự có thể được sử dụng để chạy trong thiết bị đầu cuối một tập lệnh như vậy ("Chạy trong thiết bị đầu cuối"), trong khi vẫn giữ thiết bị đầu cuối Xfce4 mở:

xfce4-terminal -H -x %f

nhập mô tả hình ảnh ở đây

Tùy chọn và có thể tốt nhất là để ẩn các tùy chọn như vậy cho tất cả các tệp văn bản ngoại trừ các tệp thực thi, một cách là hạn chế sử dụng giao diện cho .shcác tệp (hoặc .pytệp nếu trường hợp, v.v.), trong "Điều kiện xuất hiện":

nhập mô tả hình ảnh ở đây

- trước khi đổi tên các tập tin thực thi cho phù hợp.


-1

Đặc biệt dành cho Android Studio Bạn có thể làm theo câu trả lời ban đầu của tôi ở đây :

Để tạo Trình khởi chạy máy tính để bàn:

  • Nhấp vào Create Desktop Entry..từ menu Công cụ .

nhập mô tả hình ảnh ở đây

  • Nó sẽ được nhắc nhập mật khẩu, nhập mật khẩu đăng nhập hiện tại của bạn.

  • Cuối cùng, nó sẽ được hiển thị thông báo trong màn hình Android Studio như:

nhập mô tả hình ảnh ở đây

  • Bạn có thể thấy trong Ứng dụng => Lập trình => Android Studio và bạn cũng có thể thấy trên máy tính để bàn sau khi khởi động lại hệ thống.

Cảm ơn bạn. :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.