Как мне запустить.sh файлы?
Всякий раз, когда я открываю файл.sh, он открывает его в gedit вместо терминала. Я не могу найти ни одной опции, похожей на Правый клик → Открыть с помощью → Другое приложение... → Терминал.
Как мне открыть этот файл в терминале?
16 ответов
Дайте разрешение на выполнение вашего скрипта:
chmod +x /path/to/yourscript.sh
И запустить ваш скрипт:
/path/to/yourscript.sh
поскольку .
ссылается на текущий каталог: если yourscript.sh
находится в текущем каталоге, вы можете упростить это до:
./yourscript.sh
Вам нужно пометить сценарии оболочки как исполняемые, чтобы запустить их из файлового менеджера:
Щелкните правой кнопкой мыши на вашем
.sh
файл и выберите Свойства:На вкладке " Разрешения " установите флажок " Разрешить выполнение файла как программы":
Закройте окно " Свойства" и дважды щелкните файл. Появится диалоговое окно, дающее вам возможность запустить скрипт в терминале:
Откройте терминал и перейдите в папку, где .sh
файл находится. Затем введите:
sh <name of file>.sh
необходимое условие
Прежде чем вы сможете запустить файл.sh, вы должны сделать его исполняемым:
- Щелкните правой кнопкой мыши файл
- Выберите Свойства
- Выберите разрешения
- Выберите Разрешить выполнение файла в качестве программы
Предупреждение
Убедитесь, что вы доверяете источнику, откуда вы получили файл. Это может быть вирус.
Очень простой способ
- Дважды щелкните файл
- Нажмите запустить в терминале
Это имеет проблемы. Терминал немедленно закроется, и вы не сможете увидеть вывод.
Простой способ
- Открытые приложения -> Аксессуары -> Терминал
- Перетащите файл.sh в терминал и нажмите Enter
Как это делают профессионалы
- Открытые приложения -> Аксессуары -> Терминал
Найти где.sh файл
- Использовать
ls
а такжеcd
команды ls
отобразит список файлов и папок в текущей папке. Попробуйте: введите "ls" и нажмите Enter.- Когда вы увидите папку, в которую хотите войти, запустите
cd
с последующим пробелом и именем папки - Если вы, когда в папку, которую вы не хотели, запустите
cd ..
подняться на один уровень выше
- Использовать
Запустите файл.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
В терминале откройте каталог, в котором находится файл Bash.
cd
(сменить каталог).Ex.
cd Downloads
Бежать
bash <filename>.sh
Это также работает с файлами.run. На этой веб-странице приведен пример такого использования при обновлении Rhythmbox.
Вариант 2
В терминале перейдите в каталог, в котором находится файл bash.
Бежать
chmod +x <filename>.sh
В Nautilus откройте файл.
2 основных шага.
в терминале используйте gedit для написания и сохранения скрипта с расширением ".sh" на рабочем столе. (но можно использовать любой текстовый редактор)
откройте Nautilus и щелкните правой кнопкой мыши файл script.sh.
в свойствах установите флажок "разрешить выполнение файла.."
в меню "Наутилус" щелкните файл, затем настройки, затем поведение
установите флажок "запускать исполняемые текстовые файлы при их открытии".
Теперь, когда вы дважды щелкните файл на рабочем столе, он должен выполнить. нет необходимости .
или же ./
Щелкните правой кнопкой мыши
.sh
файл и сделать его исполняемым.Откройте терминал (Ctrl+Alt+T).
Перетащите
.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 и опубликовали реальное исправление, чтобы напомнить мне как в будущем).
устанавливать
dconf-editor
sudo apt-get install dconf-editor
Бежать
dconf-editor
используя учетную запись пользователя, на которой вы хотите это, т.е. НЕ rootdconf-editor
Перейдите к следующей схеме:
org.gnome.nautilus.preferences
Измените параметр по умолчанию, чтобы не открывать по умолчанию:
найти
executable-text-activation
нажмите на словоdisplay
и изменить наask
это даст вам возможность редактировать, просматривать или запускать файл в будущем
Я нуб в Linux, и у меня была та же проблема. Если все остальное терпит неудачу:
- Открытый терминал
- Откройте папку, содержащую файл.sh
- Перетащите файл в окно терминала
- Путь к файлу появляется в терминале. Нажмите Enter.
- Вуаля, ваш файл.sh запущен.
Ну, я тоже столкнулся с той же проблемой. Я хотел выполнить файл.sh, и он открылся с помощью Gedit на CentOS 7. Итак, вот что я сделал:
- Я перешел на путь
.sh
файл, который я хотел выполнить. - Я открыл терминал.
- И я просто перетащил в окно терминала, и он автоматически взял этот файл вместе с путем в качестве ввода.
- Нажмите Enter, и вы готовы!
Вы также можете использовать .
трюки, с предложением других ответов.
Например:
chmod +x filename.sh
Предполагая, что вы уже указали путь к файлу, запустите файл с помощью одной из следующих команд:
sh filename.sh
./filename.sh
. filename.sh