Как запустить файл sh в Linux
Обновлено: 24.11.2024
Есть два способа запустить сценарий оболочки в Linux. Вы можете использовать:
Или вы можете выполнить сценарий оболочки следующим образом:
Может быть, это и просто, но мало что объясняет. Не волнуйтесь, я приведу необходимые пояснения с примерами, чтобы вы поняли, почему определенный синтаксис используется в данном формате при запуске сценария оболочки.
Я собираюсь использовать этот однострочный сценарий оболочки, чтобы максимально упростить задачу:
Способ 1. Запуск сценария оболочки с передачей файла в качестве аргумента оболочке
Первый метод предполагает передачу имени файла сценария в качестве аргумента оболочке.
Учитывая, что bash является оболочкой по умолчанию, вы можете запустить такой скрипт:
Знаете ли вы преимущества такого подхода? Вашему сценарию не обязательно иметь разрешение на выполнение. Очень удобно для быстрых и простых задач.
Если вы еще не знакомы, советую прочитать мое подробное руководство по правам доступа к файлам в Linux.
Имейте в виду, что это должен быть сценарий оболочки, который вы передаете в качестве аргумента. Сценарий оболочки состоит из команд. Если вы используете обычный текстовый файл, он будет жаловаться на неправильные команды.
При таком подходе вы явно указали, что хотите использовать bash в качестве интерпретатора скрипта.
Shell — это просто программа, а bash — ее реализация. Существуют и другие подобные программы-оболочки, такие как ksh, zsh и т. д. Если у вас установлены другие оболочки, вы также можете использовать их вместо bash.
Например, я установил zsh и использовал его для запуска того же скрипта:
Рекомендуется к прочтению:
Этот ./ перед скриптом важен (когда вы находитесь в том же каталоге, что и скрипт)
Почему нельзя использовать имя сценария, если вы находитесь в том же каталоге? Это связано с тем, что ваши системы Linux ищут исполняемые файлы для запуска в нескольких выбранных каталогах, указанных в переменной PATH.
Вот значение переменной PATH для моей системы:
Это означает, что любой файл с разрешениями на выполнение в одном из следующих каталогов может быть выполнен из любого места в системе:
- /home/abhishek/.local/bin
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/игры
- /usr/local/игры
- /snap/bin
Двоичные файлы или исполняемые файлы для команд Linux, таких как ls, cat и т. д., находятся в одном из этих каталогов. Вот почему вы можете запускать эти команды из любой точки вашей системы, просто используя их имена. Видите, команда ls находится в каталоге /usr/bin.
Когда вы указываете скрипт БЕЗ абсолютного или относительного пути, он не может найти его в каталогах, указанных в переменной PATH.
Помните, как я упоминал, что оболочка — это просто программа, и существуют разные реализации оболочек.
Имеет ли это значение? Это могло бы. Видите ли, большая часть синтаксиса оболочки является общей для всех типов оболочек, но некоторые могут отличаться.
Например, поведение массива отличается в оболочках bash и zsh. В zsh индекс массива начинается с 1 вместо 0.
Было ли это полезно?
Я надеюсь, что эта статья расширит ваши знания о Linux. Если у вас остались вопросы или предложения, оставьте комментарий.
Опытные пользователи по-прежнему могут придраться к этой статье за то, что я упустил. Но проблема с такими темами для начинающих заключается в том, что нелегко найти правильный баланс информации и избежать слишком большого или слишком малого количества деталей.
Если вы заинтересованы в изучении сценариев bash, у нас есть целая серия Bash для начинающих на нашем веб-сайте Linux Handbook, предназначенном для системных администраторов. При желании вы также можете приобрести электронную книгу с дополнительными упражнениями для поддержки Linux Handbook.
Bash и Bash Shell — это основной компонент управления для систем Linux. Команды запускаются в bash для выполнения задач или заданий. Эти команды могут храниться в файле, который называется сценарием оболочки. Сценарий оболочки используется для запуска одной или нескольких команд путем простого вызова файла сценария оболочки без повторного написания команд. Сценарии оболочки имеют расширение *.sh для Bash или Sh. В этом руководстве мы узнаем, как запускать файлы сценариев оболочки различными способами.
Создать сценарий оболочки или файл сценария
Перед запуском файла сценария оболочки мы создаем файл сценария. Просто создайте текстовый файл с расширением *.sh. Затем поместите в него несколько команд оболочки. В этом примере мы создаем сценарий оболочки с именем systeminfo.sh .
Сделать сценарий оболочки исполняемым и запустить
Самый командный способ выполнить или запустить сценарий оболочки — сделать его исполняемым, а затем вызвать. Файл оболочки — это просто файл с некоторым текстом по умолчанию. Оболочка может сделать его исполняемым с помощью команды chmod. В следующем примере мы делаем файл сценария оболочки systeminfo.sh исполняемым для текущего пользователя.
Мы можем проверить, является ли файл сценария оболочки исполняемым, с помощью команды ls, как показано ниже.
Вывод аналогичен показанному ниже, где у пользователя есть разрешение на выполнение, которое обозначено буквой x.
Теперь мы можем запустить или выполнить файл скрипта напрямую, вызвав его имя и путь. Если файл сценария находится в текущем рабочем каталоге, его можно вызвать, как показано ниже.
Сделать сценарий оболочки исполняемым и запустить
В качестве альтернативы, если сценарий оболочки является другим каталогом, а не текущим рабочим каталогом, мы можем указать полный или абсолютный путь для его выполнения. Это более надежный способ, при котором файл сценария может выполняться должным образом в любой ситуации.
Запуск сценария оболочки напрямую с помощью команды bash
Каждая команда оболочки bash интерпретируется и выполняется через интерпретатор bash. Интерпретатор bash представляет собой исполняемый файл, расположенный в /usr/bin/bash. Мы можем выполнить файл сценария оболочки, напрямую передав его в двоичный файл bash. Этот метод не требует выполнения исполняемого файла скрипта. В следующем примере мы выполняем файл сценария оболочки с помощью двоичного файла или команды bash.
В качестве альтернативы можно указать полный путь к файлу сценария оболочки, как показано ниже.
Запустить сценарий оболочки от имени root
По умолчанию сценарий оболочки выполняется от имени текущего пользователя с текущими привилегиями пользователя. Но в некоторых случаях нам может потребоваться запустить файл сценария оболочки от имени пользователя root или с привилегиями root. Мы можем использовать команду sudo во время выполнения файла сценария оболочки.
С абсолютным путем к файлу сценария оболочки команда sudo может быть объединена, как показано ниже.
Запуск сценария оболочки через графический интерфейс (среда рабочего стола)
Файлы сценариев оболочки также можно запускать через графический интерфейс или среду рабочего стола. Но сначала он должен быть включен для выполнения. Щелкните правой кнопкой мыши файл сценария и выберите «Свойства», как показано ниже.
Свойства файла сценария оболочки
В окне "Свойства" перейдите на вкладку "Разрешения" и проверьте конфигурацию "Выполнить". Это позволяет выполнять файл как программу.
Разрешить выполнение файла как программы
Отладка сценария оболочки во время работы
Файл сценария оболочки подобен приложению, которое выполняет различные команды. Сценарий оболочки можно отлаживать для обнаружения ошибок или ошибок. Кроме того, файл сценария оболочки можно отладить, чтобы получить подробную информацию о выполнении сценария оболочки. Параметр -x используется с командой bash для отладки файла сценария оболочки.
Файл .SH — это простой текстовый файл, содержащий команды и небольшую логику. Есть несколько способов запустить файл .SH. Файл .SH очень похож на пакетный файл операционной системы Windows и может быть запущен в операционной системе на базе Linux. Также можно запустить файл .SH в Windows 10 с помощью подсистемы Windows для Linux.
В этом руководстве мы покажем вам, как запускать файлы .SH в системах Linux и Windows 10.
Запуск файлов .SH в Linux
В этом разделе мы покажем вам, как запустить файл .SH в Linux с примерами.
Основные шаги для запуска файлов .SH
Перед запуском файлов .SH вам необходимо предоставить разрешение на выполнение вашего файла, который вы хотите запустить. Вы можете установить разрешение на выполнение с помощью следующей команды:
chmod +x имя_файла.sh
chmod 755 имя_файла.sh
Затем вы можете запустить файл .SH, выполнив следующую команду:
Запуск файла .SH от имени пользователя root
В некоторых случаях вам потребуется root-доступ для установки приложения или внесения изменений на системном уровне с помощью файла .SH. Вы можете запустить файл .SH от имени пользователя root с помощью команды sudo, как показано ниже:
sudo bash имя_файла.sh
Введите пароль пользователя и нажмите Enter, чтобы выполнить файл .SH.
Вы также можете использовать команду su для входа в систему с правами суперпользователя и выполнения файла .SH.
Сначала переключите пользователя на root с помощью следующей команды:
Затем запустите файл .SH с помощью следующей команды:
Запустить файл .SH с помощью команды CHMOD
Вы также можете использовать команду chmod для запуска файла .SH. Сначала установите разрешение на выполнение для вашего файла с помощью следующей команды:
chmod +x имя_файла.sh
Затем запустите файл .SH с помощью следующей команды:
Если ваш файл находится в каталоге /opt, выполните следующую команду:
Запустить файл .SH с помощью графического интерфейса пользователя
Вы также можете запустить файл .SH с помощью графического пользовательского интерфейса.Для этого сначала щелкните правой кнопкой мыши файл, который вы хотите запустить, как показано ниже:
Далее нажмите «Свойства». Вы должны увидеть следующий экран:
Затем нажмите на вкладку разрешений и выберите Разрешить выполнение файла как программы, как показано ниже.
Затем дважды щелкните файл, чтобы выполнить его.
Запуск файлов .SH в Windows 10
Существует несколько способов запуска файлов .SH в операционных системах Windows 10.
Запустить файл .SH с помощью WSL
WSL означает «Подсистема Windows для Linux». Это уровень совместимости для запуска двоичных исполняемых файлов Linux в Windows 10 и Windows Server 2019. Он позволяет запускать собственные инструменты командной строки Linux непосредственно в Windows.
Во-первых, вам необходимо установить WSL в ваших системах Windows 10.
Для этого выберите «Настройки» > «Обновление и безопасность» > «Для разработчиков» и установите переключатель «Режим разработчика». Затем найдите «Компоненты Windows», выберите «Включение или отключение компонентов Windows».
Далее прокрутите вниз, найдите WSL, установите флажок и установите его. После установки WSL вам потребуется перезагрузить систему, чтобы завершить установку.
Затем откройте командную строку, измените каталог, в котором находится yourfilename.sh, и введите bash yourfilename.sh, чтобы выполнить файл, как показано ниже:
Запуск файла .SH с помощью Ubuntu в Windows 10
Если вы хотите запустить файл .SH в среде Linux в Windows 10, вам потребуется установить Ubuntu или любые другие дистрибутивы Linux в Windows 10.
Вы можете установить Ubuntu в Windows 10, выполнив следующие действия.
Сначала выберите «Настройки» > «Обновление и безопасность» > «Для разработчиков» и установите переключатель «Режим разработчика». Затем найдите «Компоненты Windows», выберите «Включение или отключение компонентов Windows».
Далее прокрутите вниз, найдите «Подсистема Windows для Linux (бета)», установите флажок и нажмите «ОК», чтобы установить ее. После завершения установки вам потребуется перезагрузить систему, чтобы завершить установку запрошенных изменений.
Затем откройте командную строку, введите bash и нажмите Enter, чтобы установить Ubuntu в Windows 10. После завершения установки вы должны увидеть следующий экран:
Теперь измените каталог с помощью команды cd на каталог, в котором находится yourfilename.sh, и нажмите Enter, чтобы запустить файл, как показано ниже:
Заключение
В приведенном выше руководстве мы узнали, как запускать файлы .SH в операционных системах Linux и Windows 10. Надеюсь, теперь у вас достаточно знаний для запуска файлов .SH в Linux и Windows 10.
Если вы какое-то время использовали Linux, вы, вероятно, сталкивались с файлами с расширением .sh. Будь то загрузка определенного программного обеспечения или написание собственных сценариев bash, эти файлы иногда могут быть сложными, поскольку с ними не работает «щелкни и запусти». Итак, давайте посмотрим, что это за файлы и как их запускать.
Оглавление
Шаги для запуска файла .sh
Файл .sh – это файл оболочки. Файлы оболочки — это сценарии, содержащие список команд, которые должны выполняться вашими оболочками Unix (bash, fish, zsh и т. д.). Вы можете писать сценарии оболочки для автоматизации некоторых аспектов вашей системы, выполнения пакетных заданий, изменения функциональных возможностей системы и т. д.
Шаг 1. Сделайте файл исполняемым
Перед запуском сценария оболочки вы должны сначала предоставить права доступа к файлу, которые сделают его исполняемым для вас. Мы используем команду chmod, чтобы сделать файл исполняемым.
Если вы хотите сделать исполняемый файл доступным для каждого пользователя в системе, запустите команду chmod, как показано ниже:
Если вы хотите сделать исполняемый файл доступным только для владельца файла, запустите:
Шаг 2. Запустите файл
Вы можете запустить файл после того, как сделаете его исполняемым. Для этого выполните следующее:
Здесь у нас есть простой скрипт, example.sh, который выводит предложение, а затем имя текущего пользователя.
Заключение
Теперь вы можете запускать любой сценарий оболочки, который вы написали или скачали. Но остерегайтесь запуска любого сценария, который вы найдете в Интернете. Если вы этого не понимаете, не запускайте, это должно быть основным правилом.Чтобы изучить базовые сценарии оболочки, вы можете использовать этот интерактивный веб-сайт. Удачи в написании сценариев!
Читайте также: