Как сделать файл (например, скрипт .sh) исполняемым, чтобы его можно было запускать из терминала

У меня есть файл script.sh, и тип этого файла - файл shellscript. Я хочу сделать этот файл как application / x-исполняемый файл. Как я могу это сделать?

356
задан 12 November 2016 в 05:28

3 ответа

Вы можете пометить файл как исполняемый:

chmod +x filename.sh

Затем вы можете запустить его следующим образом:

./filename.sh

Если вы хотите использовать другую команду для его запуска, вы можете добавить псевдоним:

gedit ~/.bashrc

Добавьте это в конец файла:

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

Откройте новый сеанс терминала или введите source ~ / .bashrc в вашем терминале, чтобы подать заявку. Затем просто используйте новое имя для запуска сценария.

442
ответ дан 12 November 2016 в 05:28

Выполнить:

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
9
ответ дан 12 November 2016 в 05:28

Есть два способа сделать файл исполняемым:

Метод графического интерфейса:

Щелкните файл правой кнопкой мыши и выберите «Свойства». Перейдите на вкладку разрешений, затем установите флажок Выполнить: [] Разрешить выполнение файла как программу или в Nautilus Программа: [] Разрешить запуск этого файла как программу в Thunar. [] 1267] Терминал / Метод команды:

Вы можете использовать:

cd / to / my / required / directory

Затем запустите

chmod + x filename.extension

Или просто запустите:

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

chmod также имеет несколько дополнительных параметров:

Пробелы показывают, что он разделен: - rwx - - ---

Первый набор --- - это Пользователь. Второй - Группа, а последний - Другой (кто угодно)

r означает чтение, w для записи и x для eXecute.

Таким образом, чтобы разрешить всем читать его, но только Группа для выполнения и Пользователь для чтения и записать его (но по какой-то причине не выполнить) будет:

-rw- rx- r - Но это будет добавлено к команде как:

chmod + rw-rx-r-- / путь / к / файлу.расширение

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

Чтобы добавить чтение и запись для пользователя, не влияя на другие разрешения (например, разрешения на выполнение).

На этом веб-сайте есть очень полезный маленький флажок сетки, при этом вы можете отметить нужные вам опции, и вы получите команду:

enter image description here

Однако не все возможные комбинации целесообразно использовать; используются следующие основные:

755 - Владелец имеет все, а Группа и Другие могут читать и выполнять

700 - Владелец имеет все

644 - Владелец может читать и писать, а Группа и Другое могут читать

600 - Владелец может читать и писать

И, если вы используете нетривиальные группы пользователей:

775 - Владелец может читать и писать, а Группа ] и Другой может читать

770 - Владелец и Группа имеют все, а Другой может читать и выполнять

750 - Владелец имеет все, и Группа может читать и выполнять

664 - Владелец и Группа может читать и писать, и Другой может просто читать

660 - Владелец и Группа могут читать и писать

640 - Владелец может читать и писать,и Группа может читать

777 и 666 используются редко, за исключением /tmp.

. Спасибо Илмари Каронен за указание на общие использование!

45
ответ дан 12 November 2016 в 05:28

Другие вопросы по тегам:

Похожие вопросы: