У меня есть файл script.sh, тип этого файла - shellscript. Я хочу сделать этот файл приложением/x-исполняемым файлом. Как я могу это сделать?
Вы можете пометить файл как исполняемый:
chmod +x filename.sh
Затем вы можете выполнить его следующим образом:
./filename.sh
Если вы хотите использовать другую команду для запуска, вы можете добавить псевдоним:
gedit ~/.bashrc
Добавьте это в конец файла:
alias <new name>='/home/<full path to script>/filename.sh'
Откройте новый сеанс терминала или введите source ~/.bashrc
в терминале для применения.
Затем просто используйте новое имя для запуска скрипта.
Существует два способа сделать файл исполняемым:
Метод пользовательского интерфейса:
Перейдите на вкладку разрешений, затем установите флажок `Execute: [ ] Разрешить выполнение файла как программы.
Терминал / Командный метод:
Вы можете использовать:
cd /to/my/required/directory
.
Затем запустите
chmod +x filename.extension
Или просто запустите:
chmod +x /path/to/your/filename.extension
.
У chmod
также есть несколько более продвинутых опций:
Пробелы показывают, что он разделен: - rwx --- ---
.
Первый набор ---
- это Пользователь. Второй - Группа и последний - Другой (любой другой).
r означает Read, w - Write и x - eXecute.
Таким образом, чтобы разрешить всем читать, но только группе выполнять, а пользователю читать и записывать (но по какой-то причине не выполнять), нужно сделать следующее:
-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 - Владелец
имеет все, а Группа
и Другие
могут читать и исполнять
700 - Владелец
имеет все
644 - Владелец
может читать и писать, а Группа
и Другие
могут читать
600 - Владелец
может читать и писать
И, если вы используете нетривиальные группы пользователей:
775 - Владелец
может читать и писать, а Группа
и Другие
могут читать.
770 - Владелец
и Группа
имеют все, а Другие
могут читать и выполнять
750 - Владелец
имеет все, а Группа
может читать и выполнять
664 - Владелец
и Группа
могут читать и писать, а Другие
могут только читать
660 - Владелец
и Группа
могут читать и писать
640 - Владелец
может читать и писать, а Группа
может читать
777 и 666 используются редко, только в /tmp.
Спасибо Ilmari Karonen за указание на те, которые часто используются!
Мои местоимения - Он / Он
Бегите:
chmod +x /path/to/file.sh
Чтобы сделать его неисполнимым, выполните:
chmod -x /path/to/file.sh
Для примера я создал файл .sh
:
vi tester12.sh
После того, как я напишу некоторый код в редакторе vi, я выйду из редактора vi:
:wq!
chmod +x tester12.sh
./tester12.sh