Всякий раз, когда я открываю файл .sh, он открывает его в gedit вместо терминала. Я не могу найти ни одной опции, похожей на Правый клик → Открыть с помощью → Другое приложение ... → Терминал .
Как мне открыть этот файл в терминале?
ruby foo.rb
Всякий раз, когда я открываю файл .sh, он открывает его в gedit вместо терминала. Я не могу найти ни одной опции, похожей на Правый клик → Открыть с помощью → Другое приложение ... → Терминал .
Как мне открыть этот файл в терминале?
ruby foo.rb
Ответы:
Дайте разрешение на выполнение вашего скрипта:
chmod +x /path/to/yourscript.sh
И запустить ваш скрипт:
/path/to/yourscript.sh
Поскольку .
ссылается на текущий каталог: если он yourscript.sh
находится в текущем каталоге, вы можете упростить это до:
./yourscript.sh
bash /path/to/yourscript.sh
то вам не нужноchmod +x
. /path/to/yourscript.sh
если сценарий должен установить некоторые переменные среды.
./path/to/yourscript.sh
(без пробела после .
)? Я считаю, что один из них самый простой и простой в использовании ... Но в любом случае, вот мой вариант, который должен делать почти то же самое ./
, что и я, хотя я не понимаю, почему вы не будете использовать ./
: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME)
... изменить FILENAME
по своему вкусу , Также обратите внимание, что sh
будет использоваться, если нет альтернативы.
Вам нужно пометить сценарии оболочки как исполняемые, чтобы запустить их из файлового менеджера:
Щелкните правой кнопкой мыши по вашему .sh
файлу и выберите Свойства :
На вкладке « Разрешения » установите флажок « Разрешить выполнение файла как программы» :
Закройте окно « Свойства» и дважды щелкните файл. Появится диалоговое окно, дающее вам возможность запустить скрипт в терминале:
Откройте терминал и перейдите к папке, в которой находится .sh
файл. Затем введите:
sh <name of file>.sh
Прежде чем вы сможете запустить файл .sh, вы должны сделать его исполняемым:
Убедитесь, что вы доверяете источнику, откуда вы получили файл. Это может быть вирус .
Это имеет проблемы. Терминал немедленно закроется, и вы не сможете увидеть вывод.
Найти где .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, а не пользователю, запрашивающему их выполнить. Чтобы включить классическое поведение, вам нужно настроить параметры:
Наутилус → Меню Правка → Настройки → Вкладка «Поведение» → Каждый раз нажимайте переключатель рядом с вопросом.
Перейдите в каталог, где находится .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
Если ваш скрипт написан правильно, он будет работать без ошибок ...
2 основных шага.
в терминале используйте gedit для написания и сохранения скрипта с расширением «.sh» на рабочем столе. (но можно использовать любой текстовый редактор)
откройте Nautilus и щелкните правой кнопкой мыши файл script.sh.
в свойствах установите флажок "разрешить выполнение файла .."
в меню «Наутилус» щелкните файл, затем настройки, затем поведение
установите флажок «запускать исполняемые текстовые файлы при их открытии».
Теперь, когда вы дважды щелкните файл на рабочем столе, он должен выполнить. нет необходимости .
или./
Щелкните правой кнопкой мыши .sh
файл и сделайте его исполняемым.
Откройте терминал ( Ctrl+ Alt+ T).
Перетащите .sh
файл в окно терминала и смотрите в страхе.
Есть несколько способов сделать это.
В терминале cd
перейдите в каталог, в котором находится файл Bash (смените каталог).
Ex. cd Downloads
Бегать bash <filename>.sh
Это также работает с файлами .run. На этой веб-странице приведен пример такого использования при обновлении Rhythmbox.
В терминале перейдите в каталог, в котором находится файл bash.
Бегать chmod +x <filename>.sh
В Nautilus откройте файл.
Для Ubuntu 18.04 есть небольшая модификация, так как у вас нет всплывающего диалога.
Итак, что вам нужно сделать, это:
Щелкните правой кнопкой мыши «Файлы», выберите «Настройки»> «Выбрать вкладку поведения»> «Пометить, что делать» в разделе «Исполняемый текстовый файл».
Теперь, когда вы дважды щелкнете по любому файлу .sh, вы получите всплывающее окно, где вы можете выбрать опцию «запустить в терминале», чтобы запустить ваш файл .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
Ну, я тоже столкнулся с той же проблемой. Я хотел выполнить файл .sh, и он открылся с помощью Gedit на CentOS 7. Итак, вот что я сделал:
.sh
файла, который я хотел выполнить.Проблема, которую я обнаружил в нескольких дистрибутивах, заключается в том, что они скрыли параметр предпочтений в Nautilus, но исправить это в Ubuntu и других дистрибутивах с помощью Gnome3 - это то же самое (буквально только что сделал эту версию для Fedora и опубликовал реальное исправление, чтобы напомнить мне как в будущем).
устанавливать dconf-editor
sudo apt-get install dconf-editor
Запустите, dconf-editor
используя учетную запись пользователя, который вы хотите это, т.е. не root
dconf-editor
Перейдите к следующей схеме:
org.gnome.nautilus.preferences
Измените параметр по умолчанию, чтобы не открывать по умолчанию:
Найдите, executable-text-activation
нажмите на слово display
и измените наask
это даст вам возможность редактировать, просматривать или запускать файл в будущем
Я нуб в Linux, и у меня была та же проблема. Если все остальное терпит неудачу:
Вы также можете использовать .
трюки, с предложением других ответов.
Например:
chmod +x filename.sh
Предполагая, что вы уже указали путь к файлу, запустите файл с помощью одной из следующих команд:
sh filename.sh
./filename.sh
. filename.sh