Как запускать sh скрипты на Ubuntu

В этой статье расскажу про запуск Shell скриптов (*.sh) на Ubuntu.

Файл *.sh это скрипт, сценарий в системе Linux.
При запуске его выполняются поочередно команды записанные в него.

На самом деле это просто текстовый файл с инструкциями для системы Linux, которые выполняются поочередно.

Давайте напишем простой .sh скрипт, который запустим в нашей системе.

Создайте текстовый файл в вашей домашней директории, откройте его и напишите в него следующие строчки:

Сохраните его, как hello.sh
У вас получится вот такой текстовый файл в домашнем каталоге:

Вот мы и создали sh скрипт.

Как запустить sh скрипт из командной строки?

Для этого нужно:
1. Перейти в каталог нахождения скрипта, с помощью консольной команды cd. Так как мы сохранили этот скрипт в домашней директории, то переходить в какой либо каталог не нужно.

2. Сделать наш файл исполняемым.
Для этого введите команду chmod +x и имя файла скрипта:

chmod +x hello.sh

3. Теперь запускаем его:

./hello.sh

Также можно запустить следующей командой:

sh hello.sh

Если всё правильно сделали, то в консоле выведется "Hello world":

Как запустить sh в графическом интерфейсе (GUI)?

1. Переходим в каталог с нашим sh скриптом:

2. Проверяем, чтобы в его свойствах стояла галочка "Разрешить выполнение", для этого: правой кнопкой мыши - свойства - права:

3. В принципе, файл должен запускаться при двойном щелчке мышки:

Но могут быть проблемы, что файл открывается текстовым редактором, хотя галочка на выполнение стоит.

Это решается так: 
В Наутилусе (это файловый менеджер Ubuntu), переходим Правка - Параметры, и проверяем:

На вкладке "Поведение" в пункте "Исполняемые текстовые файлы" должно быть выбрано или "Каждый раз спрашивать" или "Запускать исполняемые текстовый файлы при открытии".
Разница у них в том, что если выбрать "Каждый раз спрашивать", то у вас будет выбор: запустить скрипт в консоле или в графическом интерфейсе. Во втором случае запуск будет только в графическом режиме.

Вот теперь ваш sh скрипт будет запускаться при двойном щелчке мыши.

Но если Вы хотите создать ярлык для sh скрипта в системе Ubuntu, то прочтите следующую мою статью:

Вот и всё!

  • https://www.blogger.com/profile/03322003911723959786 Юрий Бодрых

    Очень интересный у Вас ликбез! 🙂
    Спасибо!

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

      Спасибо за оценку статьи

  • Анонимный

    Помогите пожалуйста с решением проблеммы. Я обновился до 13.04 и теперь в ритмбоксе появился баг, онлайн радио не хочет воспроизводится, решение этой проблеммы написание в консоли следующей строки — "sudo killall gvfsd-http", но после каждого перезапуска системы это немного напрягает. Можно ли создать скрипт чтобы он сам выполнял в консоли это действие, а потом еще и добавить его в автозагрузку? Буду благодарен если поможете.

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

      А в автоматические запускаемые программы пытались записать эту строку?

    • Вячеслав

      Хороший совет:Удали к чертям Ритмбокс и работай с Clementine , Banshee , Exale и другими адекватными плеерами.

  • https://www.blogger.com/profile/01016244791423852934 softfanat

    Спасибо, очень помогла статья — не хотели sh скрипты заводиться. Привык с ярлыка их заводить.

  • https://www.blogger.com/profile/12027365955745685962 Denis Olehov

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

  • Анонимный

    Пасиба, помогло!

  • Анонимный

    sudo

  • Анонимный

    Скрипт не запускался, пока не поправил параметры-изменить — вылезал текст. После правки параметров искомое окно с кнопками "запустить" и "запустить в терминале" появляется. Но при нажимании на них ни чего не происходит. Чо дальше-то делать?

    Запускаю скрипт fido_linux.64.sh сижу на убунту v.14.04 LTS, 64x

    С этим интерфейсом убунты столкнулся недавно, сидел на 10.04, с лаконичными выпадающими 3 пунктами меню (программы, перейти, настроить). С консолью и консольными командами ("напильником") работать не умею.

    Возможно, что скрипт мой таки запустился и сработал. Только где искать ярлыки для настройки — хз.

  • Анонимный

    Присоединяюсь к комментарию выше. intellij IDEA запускаю в виндовс версии через wine(((((
    не могу запустить ни один sh файл((

  • Анонимный

    Камера как была перевернута со времен первых ubuntu , так и осталась.
    Понятно что дело как бы не в скайпе, дело в UVC.
    Но могли бы и учесть, и добавить функцию вращения камеры.

  • Анонимный

    Большое спасибо за объяснение проблемы с Наутилусом!

  • https://www.blogger.com/profile/07161266444660230928 Abbath

    Огромное спасибо за статью. 😉

  • https://www.blogger.com/profile/07044260671182086044 OnBlog

    Спасибо, избавился от проблема, когда файл не выполнялся из gui

  • https://www.blogger.com/profile/04326085642030828391 Nikita Solgado

    Добрый день!
    Подскажите а каким образом удалять программы установленные через sudo sh

  • https://www.blogger.com/profile/05507266553479638658 Unknown

    как зайти в параметры наутилуса?)

    • https://www.blogger.com/profile/06736700453834451362 Unknown

      В новой версии нужно открыть наутилус и навести курсор на серую полосу сверху там будет "правка".

  • https://www.blogger.com/profile/08698752886685287953 olko

    Щиро дякую!
    А как запустить sh файл горячими клавишами?

  • https://www.blogger.com/profile/02845808402641448390 максим ляпун

    А что делать если sh запускается но выводится системное сообщение Не получилось

  • https://plus.google.com/118248100141650894623 Пользователь ПК

    А как быть в случае с ФМ Thunar?

    • https://plus.google.com/118248100141650894623 Пользователь ПК

      Разобрался,
      В файловом менеджере Thunar правый клик на исполняемом файле .sh — Свойства — вкладка Основные — Открыть с помощью: выберите — Эмулятор терминала

  • Владимир

    Благодарю!

  • Виталий

    Спасибо!

  • Александр

    Куда вводить cd ???? У меня графический интерфейс !

    • анон

      найти в «меню» «терминал», запустить его («терминал»), набрать «cd » и скопипастить путь из файлового менеджера, ну и тд…