У меня есть script.sh файл и тип этого файла - файл shellscript. Я хочу сделать этот файл как application/x-исполняемый файл. Как я могу это сделать?
Вы можете пометить файл как исполняемый:
chmod +x filename.shЗатем вы можете выполнить это следующим образом:
./filename.shЕсли вы хотите использовать другую команду для его запуска, вы можете добавить псевдоним:
gedit ~/.bashrcДобавьте это в конец файла:
alias <new name>='/home/<full path to script>/filename.sh'Откройте новый сеанс терминала или введите source ~/.bashrc в вашем терминале, чтобы подать заявку.Затем просто используйте новое имя для запуска скрипта.
Существует два способа сделать файл исполняемым:
Метод графического интерфейса пользователя:
Щелкните правой кнопкой мыши файл и выберите пункт Свойства.Перейдите на вкладку разрешения, затем установите флажок Execute: [ ] Allow executing file as program или в Наутилусе Program: [ ] Allow this file to run as a program в Тунаре.

Терминал / Командный метод:
Вы можете либо использовать:
cd /to/my/required/directory
Тогда беги
chmod +x filename.extension
Или просто убежать:
chmod +x /path/to/your/filename.extension
chmod также имеет некоторые более продвинутые опции:
Пробелы предназначены для того, чтобы показать, что он разделен: - rwx --- ---
Первый набор --- является Пользователем. Второй - Группа, а последний - Другой (кто-либо еще)
r означает чтение, w - запись, а x - выполнение.
Таким образом, разрешить всем читать его, но только группе выполнять, а пользователю читать и записывать его (но по какой-то причине не выполнять) было бы:
-rw- rx- r-- Но это было бы добавлено в команду как:
chmod +rw-rx-r-- /path/to/file.extension
chmod также можно сделать это в цифрах. Он основан на двоичном коде (я думаю, так как это 1,2 и 4)
Итак, вот эти цифры:
Выполняется пользователем является 100.Выполнить по группе - это 010.Выполнить другим является 001.
Запись пользователем - это 200.Запись по группам - это 020.Написать другим - это 002.
Прочитанный пользователем является 400.Чтение группой - это 040.Прочитанный другими - это 004.
Затем вы складываете их вместе, чтобы получить желаемую комбинацию.
Таким образом, разрешить всем читать его, но только группе выполнять и пользователю записывать его (но по какой-то причине не выполнять) было бы:
400 + 040 + 004 и 010 и 200
Это в сумме дает 600 + 050 + 004 = 654.
Затем вы могли бы выполнить команду.
chmod +654 /path/to/file.extension чтобы установить его.
И чтобы установить все разрешения, вы можете ввести:
chmod +rwxrwxrwx /path/to/file.extension
Или (это немного легче написать, но труднее запомнить каждое из них):
chmod +777 /path/to/file.extension
Наконец, вы можете сделать:
chmod -777 /path/to/file.extension
Чтобы отобрать у всех все разрешения.
И:
chmod +300 /path/to/file.extension
Чтобы добавить чтение и запись для пользователя, не затрагивая никаких других разрешений (например, разрешения на выполнение).
Этот веб-сайт имеет очень полезный маленький флажок в сетке, с помощью которого вы можете отметить нужные параметры, и он дает вам команду:

Однако не все возможные комбинации целесообразно использовать; основными из них являются следующие:
755 - Owner имеет все, и Group и Other может читать и выполнять
700 - Owner имеет все
644 - Owner умеет читать и писать, и Group и Other могу читать
600 - Owner умеет читать и писать
И, если вы используете нетривиальные группы пользователей:
775 - Owner умеет читать и писать, и Group и Other могу читать
770 - Owner и Group есть все, и Other может читать и выполнять
750 - Owner имеет все, и Group может читать и выполнять
664 - Owner и Group умеет читать и писать, и Other могу просто прочитать
660 - Owner и Group умеет читать и писать
640 - Owner умеет читать и писать, и Group могу читать
777 и 666 используются редко, за исключением /tmp.
Спасибо Илмари Каронен для указывая на те, что в обычном употреблении!
Бежать:
chmod +x /path/to/file.shЧтобы сделать его неисполняемым, запустите:
chmod -x /path/to/file.shНапример, я создал .sh файл:
vi tester12.shПосле того, как я напишу некоторый код в vi editor, я выйду из vi editor:
:wq!chmod +x tester12.sh./tester12.sh
Позвольте всем пользователям запускать ваш скрипт
Как уже говорилось, вы можете установить бит выполнения файла, чтобы сделать его исполняемым с помощью chmod +x. Но вы также можете использовать 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*записи:
- Сценарий не обязательно должен заканчиваться словами
.shэто может закончиться.txtкак показано здесь, или вообще не имеют расширения. - Вместо того, чтобы просто
+x(только вы можете выполнить скрипт), используйтеa+xтаким образом, все пользователи могут выполнить скрипт. - Имя файла имеет
*добавляется к нему, чтобы указать, что он является исполняемым. Также имя файла меняет цвет на зеленый в большинстве систем.
Запустите скрипт, не делая его исполняемым
Вы все еще можете запустить скрипт bash, не делая его исполняемым. Например:
$ echo "echo Hello World" > file_command.txt$ cat file_command.txtecho Hello World$ bash file_command.txtHello Worldзаписи:
- Сначала мы создаем скрипт, содержащий
echo Hello World. - Затем мы подтверждаем вызов скрипта
file_command.txtэто правильно. - Наконец, мы запускаем скрипт, вызывая
bashи передаем ему имя скрипта. Тоbashкоманда на самом деле хранится как/bin/bashи это исполняемый файл во всех системах Ubuntu. - Создание файла команд избавляет вас от необходимости добавлять дело
#!/bin/bashкак первая строка в скрипте. - Создание файла команд избавляет вас от необходимости делать его исполняемым с помощью
chmod +xилиchmod a+x.
связано с Как мне запустить файлы .sh в терминале?
Возможный дубликат Как мне запустить файлы .sh?
Это не дубликат, потому что я специально спросил о том, чтобы сделать его application/ x-executable. Другой вопрос просто требует открытия файла sh в терминале.
