Я хочу написать аналог Ubuntu «пакетного файла» (сценарий оболочки). Но я не знаю, как использовать команду, чтобы сделать так, чтобы скрипт мог быть запущен. И я не знаю, где его использовать.chmod +x filename
permissions
scripts
chmod
executable
execute-command
user265696
источник
источник
chmod
на самом деле не относится к этим ОС, и "пакетный файл" был в кавычках . ОП здесь (последний раз видел в 2014 году) хотел написать и запустить что-то похожее на командный файл. В отличие от Unix-подобных ОС, пользователям Windows (и DOS) не нужно использовать что-то подобное,chmod +x
чтобы они могли запускать свои сценарии так же, как они запускают исполняемые двоичные файлы. Я немного отредактировал, чтобы уточнить вопрос, и я голосую, чтобы снова открыть.Ответы:
Короче:
chmod +x
Файл (ваш скрипт) означает только то, что вы сделаете его исполняемым. Щелкните правой кнопкой мыши по вашему сценарию и выберите « Свойства» -> « Разрешения» -> « Разрешить выполнение файла как программы» , и вы получите тот же результат, что и команда в терминале.Если файл, для которого вы хотите изменить разрешения, находится в системном каталоге, который вам может понадобиться
root
, например, так: (будьте осторожны при использованииsudo
команды)Также не ясно, что именно вы хотите архивировать здесь. Пожалуйста, отредактируйте свой вопрос и дайте более подробную информацию о актуальной проблеме!
Вы также можете обратиться к этому вопросу, для получения дополнительной информации: chmod u + x 'против' chmod + x
В длинных:
Введите
man chmod
в окне терминала ( Ctrl+ Alt+ T), и вы получите следующий вывод:NAME: chmod - изменить биты режима файла
СИНТАКСИС
ОПИСАНИЕ
SETUID И SETGID БИТЫ
ОПЦИИ
источник
chmod u+x
сделает его исполняемым только для васВо-первых, ваш скрипт должен объявить, какой интерпретатор использовать. Вы делаете это в первой строке файла. Если это сценарий оболочки, он должен быть
#!/bin/sh
или#!/bin/bash
.Итак, вот скрипт, который пишет ваше имя пользователя: echo-whoami.sh
#!/bin/sh echo $(whoami)
Чтобы сделать его исполняемым, используйте
chmod +x echo-whoami.sh
. Тогда вы можете запустить его с помощью./echo-whoami.sh
.источник
Пакетный файл и сценарий оболочки два термин означает фактически то же самое под Linux. Тем не менее, термин сценарий используется гораздо чаще .
Самый простой файл сценария оболочки содержит только команды, которые вы вводите в командной строке (то есть интерпретатор команд Bash). Теоретически вы можете даже заменить переводчика на любой язык, который вам нравится (и иметь переводчика). Чтобы быть более явным, предлагается начать первую строку с
#!/bin/sh
(если вы не хотите максимальной переносимости с устаревшими системами)или
#!/bin/bash
(если вам нужны дополнительные функции, вам, наверное, сегодня наплевать)После этой строки введите ваши команды, по одной в каждой строке. Существует множество дополнительных конструкций, выходящих за рамки этого вопроса, см.
man bash
Или http://www.tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf (для начинающих) или http: // www .tldp.org / LDP / abs / abs-guide.pdf (для более сложных вопросов).Чтобы фактически запустить ваш скрипт, есть два требования: во-первых, процесс интерпретатора должен прочитать файл , а во-вторых, он проверяет, помечен ли он как исполняемый . По соображениям удобства также полезно иметь возможность писать в свой сценарий (чтобы вы могли вносить изменения или исправления должны быть).
Предполагая далее, что вы хотите, чтобы члены команды и другие также могли запускать (и видеть) ваш сценарий, но вы не хотите, чтобы они манипулировали им, сочетание
a+x
или+x
, какa
по умолчанию),a+r
или+r
, какa
опять по умолчанию),u=w
)обычно разумные значения ваших файловых разрешений. Вы можете вводить отдельные действия, связанные через запятую.
Хотя этот «язык действий» очень увлекателен (обратите внимание на разницу между оператором
+
и=
оператором, которые приводят к различным результатам в зависимости от настроек разрешений до их изменения), вводить их утомительно.Поскольку все действия создают битовые маски, которые применяются внутри, вы можете
man chmod
также напрямую вводить битовые маски (см. Подробности).Для шеллскрипта chmod 755 myscript.sh имеет смысл, по крайней мере, в 95% всех случаев.
источник