How do I run .sh or .bat files from Terminal?
I have a pretty basic problem here, that has happened so haphazardly to me that up until now, I’ve just ignored it. I downloaded tomcat web server and «Murach’s Java Servlets and JSP» book is telling me to navigate to the tomcat/bin directory and start the server my typing in Terminal
However, I get the error
The relevant files in this directory are startup.sh and startup.bat. Typing both of these returns the same error message
So my questions are, what are .bat and sh files, and how do I run these files? I’ve read several tutorials for different languages and software programs, and some times when the tutorial says execute a bunch of files in the command line, I get a «command not found» error. Sometimes it works, sometimes it doesn’t. This is perplexing to me, so what are some common solutions to solving these sort of «command not found» Terminal problems?
Как создать пакетный файл и запустить его? [dубликат]
следует ли использовать текстовый редактор? расширение должно быть .sh или .bat?
6 ответов
Для создания одного используйте расширение .sh, но это не имеет особого значения, но оно помогает будущим пользователям быстро определить, какой тип файла он есть. Имя bat в основном используется в Windows, но в расширениях имен файлов Linux не имеет большого значения. Это означает, что я могу назвать свой файл say run.de, и он все равно будет работать в файле bash, но я считаю, что рекомендуется использовать их с расширением файла .sh.
Для редактора часть использует любое, что лучше для вас между nano vim gedit emacs, но я считаю, что gedit было бы неплохо начать с.
с использованием текстового редактора gedit: [ ! d3] Создать файл: gedit runme.sh Добавить код в файл: #!/bin/bash echo «Hello World!» Сделать исполняемым файл: chmod +x runme.sh Запустить файл с терминала: ./runme.sh
В linux это скрипты bash. Вы можете использовать большинство редакторов, и вы можете назвать это так, как хотите, Linux не использует расширения, такие как .sh или .bat или .exe для .doc для идентификации файлов, использует магию.
Возможно, gedit для графического редактора и nano из командной строки.
Избегайте текстовых процессоров, таких как libre office, поскольку они добавляют заголовки, которые вам не нужны.
http: //www.linfo. org / magic_number.html
Чтобы написать сценарий bash, запустите файл с помощью «SheBang» или #! / bin / bash
Как запустить файлы .sh или .bat из Терминала?
У меня здесь довольно простая проблема, которая случилась со мной так случайно, что до сих пор я просто игнорировал ее. Я загрузил веб-сервер tomcat, и книга «Java Servlets and JSP» Мураха говорит мне перейти в каталог tomcat / bin и запустить сервер, набирающий текст в Терминале.
Однако я получаю сообщение об ошибке
Соответствующие файлы в этом каталоге — startup.sh и startup.bat. При вводе обоих из них возвращается одно и то же сообщение об ошибке.
Итак, мои вопросы: что такое файлы .bat и sh и как их запустить? Я прочитал несколько руководств по разным языкам и программам, и иногда, когда в руководстве говорится «выполнить кучу файлов в командной строке», я получаю ошибку «команда не найдена». Иногда это работает, иногда нет. Это меня озадачивает, так каковы некоторые общие решения для решения подобных проблем с терминалом «команда не найдена»?
10 ответов
.sh предназначен для систем * nix, а .bat — для Windows. Поскольку ваш пример показывает ошибку bash и вы упоминаете Терминал, я предполагаю, что вы используете OS X.
В этом случае вам следует перейти в папку и набрать:
./ просто означает, что вы должны вызвать сценарий, расположенный в текущем каталоге. (Или просто введите полный путь к startup.sh ). Если это не сработает, проверьте, есть ли у startup.sh права на выполнение.
У меня была эта проблема для файлов * .sh в Йосемити, и я не мог понять, какой правильный путь для папки на моем рабочем столе . после некоторого скрежета зубов перетащил сам файл в окно терминала; вуаля!!
Мое предложение исходит не из Терминала; однако это гораздо более простой способ.
Файлы .bat можно запускать через Wine. Используйте это видео, чтобы помочь вам установить его: https://www.youtube.com/watch?v = DkS8i_blVCA. В этом видео рассказывается, как установить, настроить и использовать Wine. Это так же просто, как открыть файл .bat в самом Wine, и он будет работать так же, как и в Windows.
Благодаря этому вы также можете запускать файлы .exe, а также файлы .sh.
Это намного проще, чем пытаться разрабатывать все виды кода терминала.
Другими словами, дайте себе разрешение на запуск файла. Я предполагаю, что у вас есть только разрешение на чтение и запись.
В Windows введите startup или startup.bat
На типе unix ./startup.sh
(при условии, что вы находитесь в каталоге tomcat / bin)
Перетаскивание
Самый простой способ для ленивого пользователя Mac, такого как я: перетащите файл startup.sh из Finder в окно терминала и нажмите Return.
Чтобы завершить работу Tomcat, сделайте то же самое с shutdown.sh .
Вы можете удалить все файлы .bat , поскольку они предназначены только для ПК с Windows и не используются на Mac для других компьютеров Unix. Я удаляю их, так как это облегчает чтение списка папок.
Права доступа к файлам
Я обнаружил, что новая загрузка Tomcat не будет работать на моем Mac из-за ограничений прав доступа к файлам, вызывающих ошибки во время запуска. Я использую приложение BatChmod , которое объединяет в GUI эквивалентные команды Unix для сброса прав доступа к файлам.
Перенаправление порта
Системы Unix защищают доступ к портам с номерами ниже 1024. Поэтому, если вы хотите использовать порт 80 с Tomcat, вам нужно научиться выполнять «переадресацию портов» для пересылки входящих запросов на порт 8080, где Tomcat прослушивает по умолчанию. Для перенаправления портов вы вводите команды в приложение фильтрации пакетов (брандмауэр), встроенное в Mac OS X (и BSD). Раньше мы использовали ipfw . В Mac OS X 10.7 (Lion) и более поздних версиях Apple переходит на новый инструмент, pf .
Введите bash script_name.sh или ./script_name в терминале Linux. Перед использованием ./script_name сделайте ваш скрипт доступным для выполнения sudo chmod 700 script_name и введите script_name.bat в окнах.
Это потому, что скрипт отсутствует в вашем $ PATH. Использовать
Вы также можете скопировать это в одну из папок в вашем $ PATH или изменить переменную $ PATH, чтобы вы всегда могли использовать только имя скрипта. Однако будьте осторожны, есть причина, по которой ваша текущая папка не находится в $ PATH. Это может быть угроза безопасности.
Если у вас все еще есть проблемы с выполнением сценария, вы можете проверить его разрешения — очевидно, у вас должны быть разрешения на выполнение для его выполнения. Использовать
Файл .sh — это сценарий оболочки Unix. Файл .bat — это командный файл Windows.