Saya memiliki file script.sh dan jenis file ini adalah file shellscript. Saya ingin menjadikan file ini sebagai file application / x-executable. Bagaimana saya bisa membuatnya?
command-line
executable
Ziyaddin Sadigov
sumber
sumber
Jawaban:
Anda dapat menandai file sebagai executable:
Anda kemudian dapat menjalankannya seperti ini:
Jika Anda ingin menggunakan perintah lain untuk memulainya, Anda dapat menambahkan alias:
Tambahkan ini di akhir file:
Buka sesi terminal baru atau ketik
source ~/.bashrc
terminal Anda untuk diterapkan. Kemudian cukup gunakan nama baru untuk memulai skrip.sumber
./filename.sh
dan bukan hanyafilename.sh
?filename
dan tidak./filename
./filename.sh
menentukan file di direktori saat ini dan menggunakanfilename.sh
menentukan file di direktori saat ini atau direktori PATH. Penggunaan pertama menghilangkan ketidakpastian tentang file mana yang diakses. Dalam hal ini, Anda mencoba untuk mengeksekusi skrip dengan bash atau penerjemah lain (berdasarkan diasumsikan#!/bin/bash
sebagai baris pertama dalam skrip Anda) hanya dengan memasukkan nama file. Penggunaan ini membutuhkan direktori yang ditentukan. Atau, Anda dapat mencobabash filename.sh
yang tampaknya berfungsi dengan direktori yang tidak ditentukan.Ada dua cara untuk membuat file dapat dieksekusi:
Metode GUI:
Buka tab izin, lalu centang kotak `Jalankan: [] Izinkan mengeksekusi file sebagai program.
Metode Terminal / Perintah:
Anda dapat menggunakan:
cd /to/my/required/directory
Lalu lari
chmod +x filename.extension
Atau jalankan saja:
chmod +x /path/to/your/filename.extension
chmod
memang memiliki beberapa opsi lanjutan:Ruang-ruang tersebut untuk menunjukkan bahwa ia terpecah:
- rwx --- ---
Set pertama
---
adalah Pengguna. Yang kedua adalah Grup 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 membaca dan menulisnya (tetapi karena beberapa alasan tidak dijalankan) adalah:
-rw- rx- r--
Tetapi ini akan ditambahkan ke perintah sebagai:chmod +rw-rx-r-- /path/to/file.extension
chmod
juga bisa melakukan ini dalam angka. Ini didasarkan pada biner (saya pikir, seperti 1,2 dan 4)Jadi ada angka-angka ini:
Jalankan oleh pengguna adalah
100
. Jalankan berdasarkan grup adalah010
. Yang dijalankan oleh orang lain adalah 001Tulis oleh pengguna adalah
200
. Tulis menurut grup adalah020
. Menulis oleh orang lain adalah002
.Baca oleh pengguna
400
. Baca oleh grup adalah040
. Dibaca oleh orang lain adalah004
.Lalu Anda menambahkan ini bersama-sama untuk mendapatkan kombinasi yang diinginkan.
Jadi untuk memungkinkan semua orang membacanya, tetapi hanya Grup yang mengeksekusi dan Pengguna untuk menulisnya (tetapi karena beberapa alasan tidak dijalankan) adalah:
400 + 040 + 004
dan010
dan200
Itu menambah 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 mengingat 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 baca dan tulis untuk pengguna, tanpa memengaruhi izin lainnya (mis. Eksekusi izin).
Situs web ini memiliki kotak centang kotak kecil yang sangat berguna, di mana Anda dapat mencentang opsi yang Anda inginkan dan memberi Anda perintah:
Namun, tidak semua kombinasi yang mungkin masuk akal untuk digunakan; yang utama yang digunakan adalah sebagai berikut:
755 -
Owner
memiliki semuanya,Group
danOther
dapat membaca dan mengeksekusi700 -
Owner
memiliki semuanya644 -
Owner
dapat membaca dan menulis, danGroup
danOther
dapat membaca600 -
Owner
dapat membaca dan menulisDan, jika Anda menggunakan grup pengguna non-sepele:
775 -
Owner
dapat membaca dan menulis, danGroup
danOther
dapat membaca770 -
Owner
danGroup
memiliki semuanya, danOther
dapat membaca dan mengeksekusi750 -
Owner
memiliki semuanya, danGroup
dapat membaca dan mengeksekusi664 -
Owner
danGroup
dapat membaca dan menulis, danOther
hanya bisa membaca660 -
Owner
danGroup
dapat membaca dan menulis640 -
Owner
dapat membaca dan menulis, danGroup
dapat membaca777 dan 666 jarang digunakan, kecuali dalam / tmp.
Terima kasih Ilmari Karonen karena menunjukkan yang umum digunakan!
sumber
Lari:
Untuk membuatnya tidak dapat dieksekusi, jalankan:
Misalnya saya membuat
.sh
file:Setelah saya menulis beberapa kode pada editor vi, saya akan keluar dari editor vi:
sumber