Bagaimana cara menjalankan skrip hanya dengan mengklik ganda seperti file .EXE di Windows?

116

Bagaimana saya bisa membuat skrip bash dapat dieksekusi dengan mengklik ganda seperti .exefile di Windows? Saya mencoba membuat peluncur dan menugaskan skrip untuk itu , tetapi ada dua konsekuensi:

  1. terminal bersinar, menghilang, dan tidak ada yang dilakukan.
  2. Anda harus menentukan untuk menjalankan terminal agar dapat bekerja.

Saya memiliki skrip yang menginstal tomcat pada PC offline, termasuk semua dependensi tomcat dalam skrip. Saya perlu membuat skrip bekerja pada mengklik ganda seperti windows karena sebagian besar yang menggunakan skrip tidak akan terbiasa dengan Ubuntu.

Lupakan penjelasan di atas. Saya ingin membuat skrip yang dapat dijalankan dengan mengklik dua kali padanya, tanpa menggunakan terminal. Adakah yang tahu bagaimana caranya?

Komunitas
sumber
Saya pikir Anda mungkin hanya menulis file desktop Anda dengan buruk. Bisakah Anda memposting ( kata demi kata ) peluncur .desktop yang Anda tulis?
Jjed
Juga, sudahkah Anda melihat ini? askubuntu.com/q/34597/24694
Jjed
Ini hanya peluncur di mana Anda menetapkan nama dan perintah untuk melakukan itu bukan ide yang besar
3
muru memberi tahu saya mengenai hal ini, bekerja untuk saya: askubuntu.com/questions/286621/…
draoi
1
FYI untuk pengunjung di masa mendatang: Nautilus, manajer file default di Ubuntu, tampaknya akan menghilangkan kemampuan untuk menjalankan file executable dalam rilis yang lebih baru pada tahun 2019 karena kerentanan. Artikel tentang topik dan komit kode di GitLab dengan diskusi
Sergiy Kolodyazhnyy

Jawaban:

134

Saya menguji ini dan itu bekerja dengan baik. Pastikan skrip Anda dimulai dengan shebang yang benar , misalnya #!/usr/bin/env bash.

Kemudian ikuti langkah-langkah ini:

  • Tekan Alt+ F2untuk menjalankan perintah.
  • Ketik dconf-editordan tekan Enter.
  • Di dconfg-editor, buka: org ➤ gnome ➤ nautilus ➤ preferences
  • Klik pada executable-text-activationdan dari menu drop down pilih:

    luncurkan : untuk meluncurkan skrip sebagai program.
    ATAU
    tanyakan : untuk menanyakan apa yang harus dilakukan melalui dialog.

    tangkapan layar

  • Tutup dconf-editor. Itu dia!

Cara alternatif, menggunakan terminal: Jalankan:

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

Catatan : File harus dapat dieksekusi. Anda mungkin juga perlu mengubah izin file. Klik kanan dan atur "Izinkan mengeksekusi file sebagai program"

tangkapan layar

Sumber .

stevenmc
sumber
Ini bekerja dengan baik. Hanya sebuah catatan, "menu tarik turun" tercapai dengan mengklik pada nilai yang tercantum di sebelah kanan executable-text-activation(nilai default adalah display).
ryanjdillon
5
bagi mereka yang tidak dapat memanggil aplikasi, Anda harus menginstalnya terlebih dahulu dengansudo apt-get install dconf-editor
whale_steward
1
Ini berfungsi di mana saja kecuali di Desktop. Bagaimana saya bisa membuatnya bekerja di Desktop juga? Saya menggunakan Xubuntu 14.10.
shrx
Apakah ada cara untuk melakukan ini di LXDE (untuk Lubuntu)?
childofsoong
Ini berfungsi dengan baik di bawah slax unix untuk - lihat slax.org untuk sistem Unix yang benar-benar hebat yang dapat Anda boot dari thumb drive.
raddevus
74

Di Nautilus (File AKA)

  1. Buka File ( Edit pada Persatuan (17,04 atau lebih rendah))> Preferensi> tab Perilaku

    tangkapan layar

  2. Ubah pengaturan untuk file teks yang dapat dieksekusi.

    tangkapan layar

Segera
sumber
3
Sekarang 'File -> Preferensi'. (17.04)
niry
Manis! Cara untuk pergi imho.
codepleb
Bagaimana cara melihat output?
Amr Lotfy
10

Di Ubuntu dan semua OS berbasis Unix, afaik, tidak ada yang ditetapkan sebagai dieksekusi secara default. Ada dua cara untuk melakukan hal ini.

  1. Klik kanan pada skrip atau file yang ingin Anda jalankan. Buka Properti lalu ke Tab Izin. Klik kotak centang yang mengatakan Jalankan.

  2. Buka Terminal cdke direktori tempat file ditemukan. Jenis . Ini akan mengatur file untuk dieksekusi.chmod ugo+x filename

Sekarang pengguna Anda dapat mengklik dua kali ke isi hati mereka.

SomKit
sumber
2
Ini masih akan menanyakan apa yang harus Anda lakukan dengan menjalankan di terminal atau menampilkan atau menjalankan ... Jadi bukan itu yang saya butuhkan
Hanya jawaban ini yang berfungsi pada Gnome Ubuntu 17.04 untuk membuat file desktop dapat dieksekusi
Kunok
Ini untuk mengeksekusi file di terminal, bukan dengan mengklik dua kali.
DimiDak
8

Saya pikir membuat file * .desktop tidak ada di sini:

$ 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;

Jika Anda membuat lebih dari satu file * .desktop untuk satu skrip, Anda dapat membuat beberapa konfigurasi dengan melewatkan parameter yang berbeda, yang merupakan cara yang sangat nyaman dan ramah pengguna.

h0ch5tr4355
sumber
1
Ini jawaban terbaik untuk Ubuntu. Perhatikan bahwa Anda mungkin tidak (atau mungkin tidak?) Perlu menentukan Terminal=Truedan Exec=gnome-terminalkecuali jika Anda benar-benar membuat jalan pintas untuk skrip yang ingin Anda lihat outputnya di dalam jendela terminal ... Perhatikan juga bahwa Anda dapat menunjuk Iconke kebiasaan apa pun png Anda mungkin mau ...
BuvinJ
6

Jika Anda menggunakan XFce maka Anda dapat membuat skrip dieksekusi di Thunar dengan menjalankan perintah ini:

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

atau dengan menggunakan gui xfce4-settings-editordan membuat properti yang sama.

Jalankan xfce4-settings-editor, lalu masukkan:

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

  • Boolean

  • BENAR

gambar xfce4-settings-editor

jcubic
sumber
Di sini tentang cara mencapai tujuan dengan tindakan khusus di Thunar (tanpa mengaktifkan kembali fitur "berisiko").
cipricus
Juga di sini tentang cara menggunakan Zenity dan mendapatkan pertanyaan "Edit atau Jalankan?"
cipricus
2

Anda harus memeriksa 3 poin:

  • Konfigurasi Nautilus / Nemo: https://askubuntu.com/a/286651/301025
  • File skrip harus dapat dieksekusi : https://askubuntu.com/a/275714/301025
  • Sistem file harus memungkinkan eksekusi :

    1. Ketik mountkonsol
    2. Periksa apakah sistem file Anda memiliki noexectanda
    3. Hapus noexecbendera dengan mengedit /etc/fstabdan memasang kembali sistem yang dimodifikasi (mis. Reboot berfungsi)
sangory
sumber
1

Saat Anda membuat peluncuran di Desktop ke skrip SHEL atau Apa pun, di baris perintah, jangan lupa memberi tanda skrip, untuk dieksekusi di latar belakang.

Script akan mati saat dia selesai bekerja.

Octávio Filipe Gonçalves
sumber
1
saya melakukan itu tetapi apa masalahnya adalah terminal hanya binar dan tidak ada yang terjadi
1

Berdasarkan umasknilai defualt, Anda belum menjalankan izin untuk file secara default dan harus mengubah mod untuk mendapatkan izin eksekusi, sesuatu seperti ini:

chmod u+x filename
Ali Dehghani
sumber
1
Kaldu Ali yakin saya melakukannya dengan jelas untuk melakukan itu
0

Sebagai pelengkap jawaban tentang Thunar : jawaban itu akan mengaktifkan kembali fitur Thunar sebelumnya untuk menjalankan skrip pada klik ganda. Tetapi fitur itu dianggap sebagai risiko keamanan.

Untuk menghindarinya, mungkin solusi paling elegan adalah dengan mendapatkan jendela sembulan dengan pertanyaan seperti "Apa yang ingin Anda lakukan dengan file itu: Jalankan atau edit?" (mirip dengan apa yang Anda miliki di manajer file lain seperti PCManFM dan Nemo) ketika mengklik file itu - dengan menggunakan Zenity: di sini .


Alternatifnya adalah tindakan khusus , mungkin fitur terbaik yang dimiliki Thunar.

Perintah yang saya gunakan untuk menjalankan file teks yang dapat dieksekusi adalah sh -c %f, untuk tindakan khusus yang disebut "Run / Execute script".

masukkan deskripsi gambar di sini

Kondisi penampilan hanyalah "teks":

masukkan deskripsi gambar di sini

Perintah serupa dapat digunakan untuk menjalankan skrip semacam itu di terminal ("Jalankan di terminal"), sambil menjaga terminal Xfce4 terbuka:

xfce4-terminal -H -x %f

masukkan deskripsi gambar di sini

Secara opsional, dan mungkin lebih disukai, untuk menyembunyikan opsi seperti itu untuk semua file teks kecuali yang dapat dieksekusi, caranya adalah dengan membatasi penggunaan tampilan untuk .shfile (atau .pyfile jika kasing, dll), di bawah "Kondisi penampilan":

masukkan deskripsi gambar di sini

- sebelum mengganti nama file yang dapat dieksekusi sesuai.

Cipricus
sumber
-1

Khusus untuk Android Studio Anda dapat mengikuti jawaban asli saya di sini :

Untuk Membuat Peluncur Desktop:

  • Klik pada Create Desktop Entry..dari menu Tools .

masukkan deskripsi gambar di sini

  • Ini akan meminta kata sandi, masukkan kata sandi login Anda saat ini.

  • Akhirnya akan muncul notifikasi di layar Android Studio seperti:

masukkan deskripsi gambar di sini

  • Anda dapat melihat di Applications => Programming => Android Studio , dan Anda dapat melihat di desktop juga setelah restart sistem.

Terima kasih. :)

Pratik Butani
sumber