У меня есть файл script.sh, и тип этого файла - файл шеллскрипта. Я хочу сделать этот файл как application / x-исполняемый файл. Как я могу это сделать?
У меня есть файл script.sh, и тип этого файла - файл шеллскрипта. Я хочу сделать этот файл как application / x-исполняемый файл. Как я могу это сделать?
Ответы:
Вы можете пометить файл как исполняемый:
chmod +x filename.sh
Затем вы можете выполнить это так:
./filename.sh
Если вы хотите использовать другую команду для запуска, вы можете добавить псевдоним:
gedit ~/.bashrc
Добавьте это в конец файла:
alias <new name>='/home/<full path to script>/filename.sh'
Откройте новый сеанс терминала или введите source ~/.bashrc
свой терминал, чтобы применить. Затем просто используйте новое имя, чтобы запустить скрипт.
./filename.sh
а не только filename.sh
?
filename
а не./filename
./filename.sh
указывает файл в текущем каталоге, а использование filename.sh
указывает файл в текущем каталоге или любом каталоге PATH. Первое использование удаляет любую неопределенность относительно того, к какому файлу осуществляется доступ. В этом случае вы пытаетесь выполнить сценарий с помощью bash или другого интерпретатора (в силу того, что он считается #!/bin/bash
первой строкой в вашем сценарии), просто введя имя файла. Для этого использования требуется указание каталога. Кроме того, вы можете попробовать, bash filename.sh
что, кажется, работает с неопределенным каталогом.
Есть два способа сделать файл исполняемым:
GUI Метод:
Перейдите на вкладку «Права», затем установите флажок «Выполнить: [] Разрешить выполнение файла как программы».
Терминал / Командный метод:
Вы можете использовать:
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-- /path/to/file.extension
chmod
Также можно сделать это в цифрах. Он основан на двоичном коде (я думаю, что это 1,2 и 4)
Итак, есть эти цифры:
Выполнить пользователем есть 100
. Выполнить по группе есть 010
. Выполнить другим - 001
Написать пользователем есть 200
. Написать по группе есть 020
. Пиши другим есть 002
.
Читается пользователем 400
. Читать по группам есть 040
. Читать другим есть 004
.
Затем вы складываете их вместе, чтобы получить желаемую комбинацию.
Таким образом, разрешить всем читать это, но только Group для выполнения и User для записи (но по какой-то причине не выполнить) будет:
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.
Спасибо Илмари Каронен за то, что он указал на те, которые в общем использовании!