Cara membuat file (misalnya skrip .sh) dapat dieksekusi, sehingga dapat dijalankan dari terminal

Saya memiliki script.sh file dan jenis file ini adalah file shellscript. Saya ingin menjadikan file ini sebagai file application/x-executable. Bagaimana Saya bisa membuatnya?

Anda dapat menandai file sebagai executable:

chmod +x filename.sh

Anda kemudian dapat menjalankannya seperti ini:

./filename.sh

Jika Anda ingin menggunakan perintah yang berbeda untuk memulainya, Anda dapat menambahkan alias:

gedit ~/.bashrc

Tambahkan ini di akhir file:

alias <new name>='/home/<full path to script>/filename.sh'

Buka sesi terminal baru atau ketik source ~/.bashrc di terminal Anda untuk menerapkan.Kemudian cukup gunakan nama baru untuk memulai skrip.

Ada dua cara untuk membuat file dapat dieksekusi:

Metode GUI:

Klik kanan file dan pilih Properties.Buka tab Izin, lalu centang kotak Execute: [ ] Allow executing file as program atau di Nautilus Program: [ ] Allow this file to run as a program di Thunar.

Terminal / metode perintah:

Anda dapat menggunakan:

cd /to/my/required/directory

Kemudian jalankan

chmod +x filename.extension

Atau hanya menjalankan:

chmod +x /path/to/your/filename.extension

chmod apakah juga memiliki beberapa opsi lanjutan:

Ruang adalah untuk menunjukkan bahwa itu dibagi: - rwx --- ---

Set pertama --- adalah pengguna. Yang kedua adalah kelompok dan yang terakhir adalah Lainnya (orang lain)

r adalah singkatan dari Read, w untuk Write dan x untuk eXecute.

Jadi untuk memungkinkan semua orang membacanya, tetapi hanya grup yang mengeksekusi dan pengguna untuk membaca dan menulisnya (tetapi untuk beberapa alasan tidak mengeksekusi) adalah:

-rw- rx- r-- Tapi ini akan ditambahkan ke perintah sebagai:

chmod +rw-rx-r-- /path/to/file.extension

chmod juga dapat melakukan ini dalam jumlah. Hal ini didasarkan pada biner (saya pikir, karena 1,2 dan 4)

Jadi ada angka-angka ini:

Eksekusi oleh pengguna adalah 100.Eksekusi oleh grup adalah 010.Eksekusi oleh orang lain adalah 001.

Menulis oleh pengguna adalah 200.Menulis menurut kelompok adalah 020.Menulis oleh orang lain adalah 002.

Dibaca oleh pengguna adalah 400.Dibaca oleh kelompok adalah 040.Dibaca oleh yang lain adalah 004.

Kemudian Anda Menambahkan ini bersama - sama untuk mendapatkan kombinasi yang diinginkan.

Jadi untuk memungkinkan semua orang membacanya, tetapi hanya grup yang dieksekusi dan pengguna yang menulisnya (tetapi untuk beberapa alasan tidak dieksekusi) adalah:

400 + 040 + 004 dan 010 dan 200

Yang menambahkan hingga 600 + 050 + 004 = 654.

Anda kemudian dapat menjalankan perintah.

chmod +654 /path/to/file.extension untuk mengaturnya.

Dan untuk mengatur semua izin Anda dapat mengetik:

chmod +rwxrwxrwx /path/to/file.extension

Atau (ini sedikit lebih mudah untuk ditulis, tetapi lebih sulit untuk diingat masing-masing):

chmod +777 /path/to/file.extension

Akhirnya, Anda dapat melakukan:

chmod -777 /path/to/file.extension

Untuk mengambil semua izin dari semua orang.

Dan:

chmod +300 /path/to/file.extension

Untuk menambahkan membaca dan menulis untuk pengguna, tanpa mempengaruhi izin lainnya (misalnya mengeksekusi izin).

Website ini memiliki kotak centang kotak kecil yang sangat berguna, di mana Anda dapat mencentang opsi yang Anda inginkan dan itu memberi Anda perintah:

enter image description here

Namun, tidak semua kombinasi yang mungkin masuk akal untuk digunakan; yang utama yang digunakan adalah sebagai berikut:

755 - Owner memiliki semua, dan Group dan Other dapat membaca dan mengeksekusi

700 - Owner memiliki semua

644 - Owner dapat membaca dan menulis, dan Group dan Other dapat membaca

600 - Owner dapat membaca dan menulis

Dan, jika Anda menggunakan grup pengguna non-sepele:

775 - Owner dapat membaca dan menulis, dan Group dan Other dapat membaca

770 - Owner dan Group memiliki semua, dan Other dapat membaca dan mengeksekusi

750 - Owner memiliki semua, dan Group dapat membaca dan mengeksekusi

664 - Owner dan Group dapat membaca dan menulis, dan Other hanya bisa membaca

660 - Owner dan Group dapat membaca dan menulis

640 - Owner dapat membaca dan menulis, dan Group dapat membaca

777 dan 666 jarang digunakan, kecuali di / tmp.

Terima kasih Ilmari Karonen untuk menunjukkan yang umum digunakan!

Lari:

chmod +x /path/to/file.sh

Untuk membuatnya un-executable, jalankan:

chmod -x /path/to/file.sh

Misalnya saya buat .sh berkas:

vi tester12.sh

Setelah saya menulis beberapa kode pada editor vi, saya akan keluar dari editor vi:

:wq!chmod +x tester12.sh./tester12.sh

Biarkan semua pengguna menjalankan skrip Anda

Seperti yang dinyatakan, anda dapat mengatur bit eksekusi file untuk membuatnya dapat dieksekusi chmod +x. Tapi Anda juga bisa menggunakan 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*

Catatan:

  • Naskah tidak harus diakhiri dengan .sh itu bisa berakhir dengan .txt seperti yang ditunjukkan di sini, atau tidak memiliki ekstensi apa pun.
  • Bukan hanya +x (hanya Anda yang dapat menjalankan skrip), gunakan a+x jadi semua pengguna dapat menjalankan skrip.
  • Nama file memiliki * ditambahkan ke dalamnya untuk menunjukkan bahwa itu dapat dieksekusi. Juga nama file berubah warna menjadi hijau pada kebanyakan sistem.

make script executable


Jalankan skrip tanpa membuatnya dapat dieksekusi

Anda masih dapat menjalankan skrip bash tanpa membuatnya dapat dieksekusi. Misalnya:

$ echo "echo Hello World" > file_command.txt$ cat file_command.txtecho Hello World$ bash file_command.txtHello World

Catatan:

  • Pertama kita membuat script yang berisi echo Hello World.
  • Kemudian kami mengkonfirmasi skrip yang disebut file_command.txt benar.
  • Terakhir kita jalankan script dengan memanggil bash dan melewati itu nama script. The bashperintah sebenarnya menyimpan sebagai /bin/bash dan itu adalah executable pada semua sistem Ubuntu.
  • Membuat file perintah menyelamatkan Anda dari menambahkan shebang #!/bin/bash sebagai baris pertama dalam naskah.
  • Membuat file perintah menyelamatkan Anda dari membuatnya dapat dieksekusi dengan chmod +x atau chmod a+x.

terkait dengan [bagaimana cara menjalankan file. sh di Terminal?] (command line - How do I run .sh scripts? - Ask Ubuntu)

Kemungkinan duplikat [bagaimana cara menjalankan file. sh?] (command line - How do I run .sh scripts? - Ask Ubuntu)

Ini bukan duplikat, karena saya telah bertanya secara khusus tentang membuatnya application/x-executable. Pertanyaan lain hanya meminta untuk membuka file sh di terminal.