Как запустить файлы .sh?

253

Всякий раз, когда я открываю файл .sh, он открывается в gedit вместо терминала. Я не могу найти какой-либо вариант, похожий на Щелкните правой кнопкой мыши Открыть с помощью Другое приложение ... Терминал .

Как открыть этот файл в терминале?

    
задан Alex 01.05.2011 в 04:39
источник

16 ответов

388

Предоставьте разрешение на выполнение для вашего скрипта:

chmod +x /path/to/yourscript.sh

И для запуска скрипта:

/path/to/yourscript.sh

Так как . ссылается на текущий каталог: if yourscript.sh находится в текущем каталоге, вы можете упростить это:

./yourscript.sh
    
ответ дан karthick87 01.05.2011 в 05:18
72

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

  1. Щелкните правой кнопкой мыши на файле .sh и выберите Свойства :

  2. НавкладкеРазрешенияустановитефлажокРазрешитьвыполнениефайлакакпрограмму:

  3. Закройте окно Свойства и дважды щелкните файл. Появится диалоговое окно, предоставляющее вам возможность запускать сценарий в терминале:

ответ дан Isaiah 01.05.2011 в 05:02
22

Предпосылка

Прежде чем вы сможете запустить файл .sh, вам необходимо сделать его выполнимым:

  1. Щелкните файл правой кнопкой мыши
  2. Выберите Свойства
  3. Выберите Разрешения
  4. Выберите Разрешить выполнение файла как программы

Предупреждение

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

Самый простой способ

  1. Дважды щелкните файл
  2. Нажмите «Запустить» в терминале

У этой проблемы. Терминал немедленно закроется, и вы не сможете увидеть выход.

Простой способ

  1. Открытые приложения - > Аксессуары - > Терминал
  2. Перетащите файл .sh в терминал и нажмите Enter

Как это делают профессионалы

  1. Открытые приложения - > Аксессуары - > Терминал
  2. Найдите файл .sh

    • Используйте команды ls и cd
    • ls отобразит файлы и папки в текущей папке . Попробуйте: введите «ls» и нажмите «Ввод».
    • Как только вы увидите папку, в которую хотите войти, запустите cd , а затем пробел, а затем имя папки
    • Если вы в папку, которую не хотите, запустите cd .. , чтобы перейти на один уровень вверх
  3. Запустите файл .sh

    • Как только вы увидите, например, script1.sh с ls запустите это:

      ./ script.sh

Почему это сложный путь?

Терминал имеет богатый набор мощных инструментов, доступных для ввода команд. Профессионалы определяют файл .sh, набрав ls и cd . После того, как вы находитесь в правильной текущей папке , вы можете запустить скрипт следующим образом:

./script1.sh

или вы можете запустить и перенаправить вывод в файл:

./script1.sh > out.txt

или вы можете отфильтровать вывод для ключевых слов (например, «яблоки»), а затем перенаправить на файл:

./script1.sh | grep apples > ./only-apples

Есть тысячи вещей, которые вы можете сделать для этого файла, просто набрав несколько команд.

Еще один, вы можете загрузить файл из Интернета с помощью одной простой команды:

wget www.google.com/images/logos/ps_logo2.png

И затем откройте файл следующим образом:

shotwell ps_logo2.png
    
ответ дан Aleksandr Levchuk 01.05.2011 в 04:52
18

Откройте терминал и перейдите в папку, в которой находится файл .sh . Затем введите:

sh <name of file>.sh
    
ответ дан italianfoot 20.12.2012 в 08:43
15

В Ubuntu 13.04 исполняемые файлы, открытые в Nautilus, теперь открываются в gedit по умолчанию, а не запрашивают выполнение пользователем. Чтобы включить классическое поведение, вам необходимо настроить параметры:

Nautilus → Меню «Редактировать» → «Настройки» → вкладка «Поведение» → каждый раз нажмите переключатель рядом с запросом «Спросить».

    
ответ дан imjustmatthew 10.06.2013 в 23:41
5

Перейдите в каталог, в котором файл .sh используется с помощью cd . В этом примере я сохранил файл sh как ~/Desktop/shell_practice/test.sh

сначала сделайте pwd , чтобы выяснить, где вы находитесь, и если он возвращает /home/username (где username - ваше реальное имя пользователя), вы можете запустить

cd Desktop/shell/practice

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

cd ~/Desktop/shell/practice

или

cd $HOME/Desktop/shell/practice

или даже

cd /home/$USER/Desktop/shell/practice

Это все способы описания одного и того же места. Когда вы перейдете к местоположению своего сценария, введите

ls

Если вы видите файл sh на выходе, вы можете использовать chmod , чтобы сделать его исполняемым. В моем случае помните, что имя файла test.sh , поэтому я запускал

chmod u+x test.sh

Теперь, когда мы находимся в том же каталоге, что и скрипт, мы должны указать оболочке, что мы хотим выполнить файл, указав его местоположение ./ (текущий каталог, за которым следует разделитель путей, чтобы отличить его от имя файла). Для запуска моего файла я бы набрал:

./test.sh

Если ваш скрипт написан правильно, он будет работать без ошибок ...

Вот живой пример:

    
ответ дан TheExorcist 03.12.2016 в 12:14
3

2 основных шага.

  1. в терминале, используйте gedit для записи и сохранения скрипта с расширением «.sh» на рабочем столе. (но можно использовать любой текстовый редактор)

  2. откройте «Наутилус» и щелкните правой кнопкой мыши файл script.sh.

    • по свойствам, установите флажок «разрешить выполнение файла ..»

    • в меню Nautilus, щелкните файл, затем настройки, затем поведение

    • проверить «запустить исполняемые текстовые файлы при их открытии».

Теперь, когда вы дважды щелкните файл на рабочем столе, он должен выполнить. нет необходимости в . или ./

    
ответ дан rob 24.10.2013 в 16:24
2

В Ubuntu 16.04 это как открыть его в терминале:

Перейдите в File Manager > Edit > Preferences > Behavior для Executable Text Files и выберите Ask each time .

Проблема заключается в том, что она по умолчанию установлена в View Executable Files when they are opened .

    
ответ дан Leniel Maccaferri 11.12.2016 в 20:58
2

Есть несколько способов сделать это.

Вариант 1

  1. В терминале войдите в каталог, в котором находится файл Bash, используя cd (каталог изменений).

    Ex. cd Downloads

  2. Выполнить bash <filename>.sh

    Это также работает с файлами .run. Ниже приведен пример использования на этой веб-странице по обновлению Rhythmbox.

Вариант 2

  1. В терминале перейдите к каталогу, в который находится файл bash.

  2. Выполнить chmod +x <filename>.sh

  3. В Nautilus откройте файл.

ответ дан Kenny Stier 06.01.2014 в 22:33
2
  1. Щелкните правой кнопкой мыши файл .sh и сделайте его выполнимым.

  2. Откройте терминал ( Ctrl + Alt + T ).

  3. Перетащите файл .sh в окно терминала и смотрите в страхе.

ответ дан 1p_bunny 10.06.2017 в 16:09
1

Если вы поместите свой сценарий оболочки или другой исполняемый файл, который вы создаете в / usr / local / bin, он будет найден и выполнен без необходимости указания пути к папке в командной строке или добавления имени ./ к имени. Например, я создал следующий простой 3-строчный скрипт bash для отображения UUID дисков:

#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid

Я вызвал файл uuid и поместил его в / usr / local / bin. Все, что мне нужно ввести в командной строке:

uuid
    
ответ дан fragos 01.05.2011 в 09:14
1

Для Ubuntu 18.04 , есть небольшая модификация, так как вы не получаете всплывающее диалоговое окно.

Итак, что вам нужно сделать:

Щелкните правой кнопкой мыши на файлах, выберите «Настройки» > Выберите вкладку «Поведение» > Отметьте «Спросить, что делать» в исполняемом текстовом файле.

Теперь, когда вы дважды щелкаете по любому файлу .sh, вы получите всплывающее окно, там вы можете выбрать опцию «запустить в терминале», чтобы запустить ваш .sh-файл.

    
ответ дан Akhilesh Dhar Dubey 16.08.2018 в 12:18
0

Ну, я тоже столкнулся с той же проблемой. Я хотел выполнить файл .sh, и он был открыт с помощью Gedit на CentOS 7. Итак, вот что я сделал:

  1. Я перешел к пути к файлу .sh , который я хотел выполнить.
  2. Я открыл терминал.
  3. И я просто перетащил и опустил окно терминала, и он автоматически взял этот файл вместе с пустым вводом.
  4. Нажмите Enter, и вы готовы к работе!
ответ дан Jen Bates 16.06.2016 в 17:11
0

Проблема, которую я обнаружил в нескольких дистрибутивах, заключается в том, что они скрыли опцию предпочтений в Nautilus, но исправить ее в Ubuntu и других дистрибутивах, используя Gnome3, то же самое (в буквальном смысле это просто версия Fedora и публикация фактического исправления чтобы напомнить мне, как в будущем).

  1. Установить dconf-editor

    sudo apt-get install dconf-editor
    
  2. Запустите dconf-editor , используя учетную запись пользователя, на которую вы хотите включить, т. е. не root

    dconf-editor
    
  3. Перейдите к следующей схеме:

    org.gnome.nautilus.preferences

  4. Измените параметр по умолчанию, который не открывается по умолчанию:

    Найти executable-text-activation щелкнуть слово display и перейти на ask

, который даст вам возможность редактировать, просматривать или запускать файл в будущем

    
ответ дан Snider 22.12.2013 в 17:06
0

Я Linux в Linux, и у меня была такая же проблема. Если все остальное не выполнено:

  1. Открыть терминал
  2. Откройте папку, содержащую файл .sh
  3. Перетащите файл в окно терминала.
  4. Путь файла отображается в терминале. Нажмите Enter .
  5. Voila, ваш файл .sh запущен.
ответ дан Linux_noob 07.05.2017 в 04:19
-2

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

Например:

chmod +x filename.sh , предположив, что вы уже перешли к пути к файлу, затем запустите файл с помощью любой из следующих команд:

sh filename.sh

./filename.sh

. filename.sh
    
ответ дан Awais 02.01.2015 в 09:29