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:
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), gunakana+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.
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. Thebash
perintah 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
atauchmod 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.