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

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

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

16 ответов

Дайте разрешение на выполнение вашего скрипта:

chmod +x /path/to/yourscript.sh

И запустить ваш скрипт:

/path/to/yourscript.sh

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

./yourscript.sh

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

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

    введите описание здесь

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

    введите описание здесь

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

    введите описание здесь

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

sh <name of file>.sh

необходимое условие

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

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

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

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

Очень простой способ

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

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

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

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

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

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

    • Использовать ls а также cd команды
    • ls отобразит список файлов и папок в текущей папке. Попробуйте: введите "ls" и нажмите Enter.
    • Когда вы увидите папку, в которую хотите войти, запустите 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

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

Наутилус → Меню Правка → Настройки → Вкладка "Поведение" → Каждый раз нажимайте переключатель рядом с вопросом.

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

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

Щелкните правой кнопкой мыши "Файлы", выберите "Настройки"> "Выбрать вкладку поведения"> "Пометить, что делать" в разделе "Исполняемый текстовый файл".

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

Перейдите в каталог, где .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

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

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

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

Опция 1

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

    Ex. cd Downloads

  2. Бежать bash <filename>.sh

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

Вариант 2

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

  2. Бежать chmod +x <filename>.sh

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

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

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

  2. откройте Nautilus и щелкните правой кнопкой мыши файл script.sh.

    • в свойствах установите флажок "разрешить выполнение файла.."

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

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

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

  1. Щелкните правой кнопкой мыши .sh файл и сделать его исполняемым.

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

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

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

Перейти к File Manager > Edit > Preferences > Behavior за Executable Text Files и выберите Ask each time,

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

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

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

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

uuid

Проблема, которую я обнаружил в нескольких дистрибутивах, заключается в том, что они скрыли параметр предпочтений в 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

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

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

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

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

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

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

Например:

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

sh filename.sh

./filename.sh

. filename.sh
Другие вопросы по тегам