Как открыть браузер через командную строку

Обновлено: 24.11.2024

Вот как открывать файлы или URL-адреса из командной строки на множестве различных платформ (Windows, MacOS, Linux/Unix и Cygwin).

Вам нужна команда start; при запуске командной строки (cmd.exe) или пакетного файла используйте:

Это встроенная функция cmd, поэтому другие программы не могут вызывать ее как "старт", но другие программы могут вызывать ее следующим образом:

Обратите внимание, что если это локальное имя файла и он является исполняемым, start выполнит эту программу, а не откроет ее средство просмотра. Я не нашел команду Windows, которая бы легко открывала файлы, но никогда их не выполняла, к сожалению. Это делает startexplorer) потенциальной проблемой безопасности, в зависимости от того, как он используется, но я не нашел безопасных встроенных средств (кроме самостоятельной реализации команды ).

Многие интернет-источники рекомендуют вместо этого использовать explorer, но есть веские причины этого не делать. Если вы вызовете explorer напрямую, он будет игнорировать выбранный пользователем интернет-браузер и вместо него всегда будет использовать Internet Explorer. Пользователи, по-видимому, сделали свой выбор не просто так, поэтому вы должны уважать его. (Действительно, Internet Explorer имеет ужасную историю уязвимостей, поэтому принудительное его использование кажется плохой идеей.) Один незначительный положительный момент при использовании explorer заключается в том, что если исполняемый файл поступает из Интернет, то вам будет предоставлен диалог о том, следует ли выполнять файл. Но в реальной жизни это не очень помогает, потому что пользователи обычно игнорируют такие диалоги. Пользователи обычно не понимают и не заботятся о том, что говорят эти диалоги, и они видят так много таких диалогов, что их приучили отвечать на них «хорошо». Таким образом, эти диалоги по безопасности в основном бессмысленны.

Строго говоря, перенаправление на другие программы для открытия файлов работает только из cmd, когда включены «расширения команд», но в Windows XP они включены по умолчанию. Как обычно, запустите «help start», чтобы узнать больше о его параметрах. Связанные команды Windows assoc и ftype полезны для установки типа файла (для данного расширения файла) и команды открытия (для данного типа файла).

Вам нужна команда open, то есть:

(Вы можете использовать «-a», чтобы принудительно запустить другое приложение.)

Вам нужна команда xdg-open, то есть:

Он не всегда устанавливается, поэтому убедитесь, что установлен пакет xdg-utils (название пакета xdg-utils по крайней мере в Fedora, Debian и Ubuntu; в некоторых других дистрибутивах он может иметь другое имя). ).

К сожалению, xdg-open не входит в стандартную комплектацию Solaris. Во многих случаях лучшим решением является загрузка и установка xdg-utils, которая, как сообщается, отлично работает в Solaris. Но если необходимо, можно напрямую вызвать /usr/dt/bin/sdtwebclient в Solaris.

Если вы наверняка знаете, что пользователь использует определенный пользовательский интерфейс, вы можете вызвать эту программу (например, gnome-open) напрямую. Но такая уверенность встречается редко. Например, вы можете написать программу GNOME, но пользователь может использовать KDE для ее вызова; в этом случае gnome-open не подходит для использования. В конце концов, если пользователь использует KDE, то следует использовать именно настройки KDE. В общем, используйте xdg-open; вы сохраните свое здравомыслие и уважаете предпочтения вашего пользователя.

Простым подходом является команда cygstart, то есть:

Обратите внимание, что если это локальное имя файла и он является исполняемым, открытие файла запустит эту программу. Это та же проблема, что и в Windows, по тем же причинам (Cygwin работает поверх Windows и, таким образом, наследует многие дефекты Windows, включая этот).

Не не используйте explorer $(cygpath "path" -w), потому что, хотя это может быть быстрее, часто будет выбрано неправильное приложение (в частности, не использовать предпочтительный браузер пользователя).

Обратите внимание, что start не работает напрямую с командной строкой Cygwin mintty, а explorer работает. (Если вы используете Cygwin, немедленно установите mintty; это замечательно.) Вместо этого вы можете использовать cmd /c start., но не делайте этого; на Cygwin вместо этого вы хотите использовать cygstart. Когда вы запускаете mintty, вы можете нажать левую кнопку управления или нажать правую кнопку и выбрать «открыть».

Я надеюсь, что когда-нибудь распространяемая версия Cygwin будет поддерживать xdg-open, но по состоянию на 01.07.2010 это не так. Я знаю, что есть патч для xdg-open, чтобы он вызывал cygstart, если ничего не помогает. Cygwin включает немного похожий пакет с именем python-xdg, но по состоянию на 18 марта 2012 г. пакет python-xdg не включает xdg-open, так что это не помогает.

Остерегайтесь распространенных ошибок.

Во-первых, существует основная проблема безопасности с простыми в использовании инструментами в Windows.Обратите внимание, что некоторые из перечисленных выше команд Windows будут выполнять этот файл вместо запуска доверенного средства просмотра файла, если это локальный исполняемый файл. Это справедливо для start Windows и cygstart Cygwin, в частности. (Это также может относиться к xdg-open на Cygwin, если таковой имеется, поскольку он должен зависеть от cygstart). Я еще не нашел простого способа обойти это в Windows (включая Cygwin, который, поскольку он работает в Windows, наследует недостатки Windows). Эта неспособность легко открывать файлы без их выполнения является примером базовой уязвимости системы безопасности в Windows. Это особенно вопиющий недостаток в Windows, потому что это так легко сделать безопасно на всем остальном. Я хотел бы услышать о чем-то лучше; пожалуйста, напишите мне, если вы знаете лучшее решение! Но не задерживайте дыхание; У меня был этот запрос в течение многих лет, и никто мне ни на что не указал.

Во-вторых, убедитесь, что проблемные имена файлов обрабатываются правильно, включая имена файлов с пробелами (включая пробел, табуляцию, новую строку и возврат). В частности, если вы вызываете его из оболочки Bourne (такой как bash), заключите ссылку на переменную в двойные кавычки (как вы должны делать с любым значением, которое может содержать пробелы). Вкратце, сделайте это так: xdg-open "$filename"

В-третьих, убедитесь, что ваш призыв не будет неправильно истолкован. Все эти программы имеют разные (несовместимые) форматы опций; вам нужно убедиться, что имя пути не будет неверно истолковано как опция. Это раздражает в Windows, потому что «/» является ведущим символом для опций и возможного начала абсолютного имени файла (в Unix/Linux/MacOS есть более рациональные подходы; они используют «-», что тривиально с префиксом «./»). Кроме того, часто неясно, является ли аргумент именем файла или URL-адресом.

Как отмечалось выше, если вы преобразуете путь в URL-адрес файла, убедитесь, что вы преобразовали все символы «%» в «%25», иначе они будут неправильно истолкованы.

Наконец, остерегайтесь произвольного открытия файла; открытие /dev/zero (в Unix/Linux) или COM1: (в Windows) может вызвать проблемы. Во многих случаях это не имеет большого значения (если пользователь может просто закрыть зависший процесс), но в некоторых случаях это может вызвать более серьезные проблемы. Лучше не запускать их с привилегиями root/admin, потому что злоумышленник может создать больше проблем, если сможет просмотреть произвольное имя файла.

И вот, теперь у вас есть простой способ открывать файлы, каталоги и URL-адреса.

Если вы не используете Windows или можете доверять файлам, которые вы открываете и/или выполняете, вот простой сценарий оболочки, чтобы выяснить, как вызвать браузер текущего пользователя. Помните: не делайте этого в Windows, если вы не можете доверять файлу. В некоторых системах есть программа под названием "open", которая совершенно отличается, поэтому мы попробуем эту команду только в том случае, если другие не сработают:

Мне интересно, какая команда терминала открывает веб-браузер по умолчанию.

7 ответов 7

команда sensible-browser — это та команда, которую вы ищете.

Как насчет различий между пакетом sensible-utils и системой альтернатив, найденной в /etc/alternatives и модифицированной update-alternatives?

то, что сказал @Incrop, по-прежнему верно для Ubuntu 16.04, это открывает Firefox вместо моего браузера по умолчанию Chromium.

Выполняя поиск в Google, я нашел ответ.

xdg-open является частью пакета xdg-utils и уже установлен в Ubuntu 10.10.

Если пользователь когда-то настроил открытие html-файлов в текстовом редакторе по умолчанию, это не сработает. OP запрашивает способ открытия веб-браузера, а не приложения по умолчанию для html-файлов (хотя по умолчанию это одно и то же)

Это будет работать в любом дистрибутиве gnu/linux с оконным менеджером x-server (это почти все из них, например, debian, *buntu, fedora, manjaro, Arch и т. д.)

Вы также можете использовать:

И он откроет URL-адрес в браузере по умолчанию.

для меня в Ubuntu 16.04 открывается Firefox, несмотря на то, что Chromium установлен в качестве браузера по умолчанию в настройках "Приложения по умолчанию".

Только для того, чтобы вы могли найти это полезным. Запасной подход и один вкладыш.

<цитата>

; => запускать во всех случаях,

|| => запустить, если предыдущая команда не удалась (или)

&& => запустить, только если предыдущая команда выполнена успешно

var=someval -> установить переменную

$var -> вызвать переменную

Подумайте о том, чтобы объяснить, что делает эта команда, чтобы другие, увидев это, узнали больше о вашем ответе. Ссылки — это хорошо, но вам нужно убедиться, что ключевое содержание ссылки находится в вашем ответе, если это часть вашего ответа (на случай, если ссылка исчезнет в будущем).

При установке Ubuntu по умолчанию на ум приходит только команда gnome-open.

Преимущество заключается в том, что вы можете использовать gnome-open практически для всех типов файлов, URI и каталогов. Это одна команда, которую нужно выучить, вместо того, чтобы пытаться запомнить непонятные команды, такие как sensible-browser

@Stefan Lasiewski: xdg-open должен делать то же самое — на самом деле он будет вызывать gnome-open , kde-open или что-то еще, в зависимости от среды вашего рабочего стола. Таким образом, он более портативный.

Я немного поиграл с этим. Есть проблема с gnome-open — он не будет вызывать веб-браузер по умолчанию, если вы не укажете URL-адрес. Это проблема, если вы хотите настроить значок или ярлык, который всегда будет запускать браузер, установленный по умолчанию. В других случаях вам может понадобиться установить его в качестве параметра для некоторых программ, которым требуется ссылка на веб-браузер и которые плохо работают с gnome-open (например, acroread ). Вы можете решить эту проблему, используя системные ссылки x-www-browser или gnome-www-browser, которые вы можете настроить с помощью update-alternatives , но это общесистемные настройки, а не пользовательские (и они не синхронизируются с установленными значениями через gnome-default-applications-properties Все это можно решить, открыв исполняемый файл sensible-browser (который на самом деле является скриптом):

и добавив это в начале:

Это заставит sensible-browser всегда запускать указанный пользователем веб-браузер по умолчанию. (Я обнаружил, что gnome-default-applications-properties изменяет некоторые ключи gconf в соответствии с установленным браузером. Значение браузера по умолчанию можно получить из любого из этих ключей, поэтому я выбрал /desktop/gnome/url-handlers/ http/command и использовал его для заполнения переменной $BROWSER (значение удалено из части "%s").

Я бы не рекомендовал редактировать /usr/bin/sensible-browser, как рекомендует этот ответ. Это изменение будет перезаписано при обновлении системы.

Вместо того, чтобы пытаться установить модифицированный скрипт в пользовательскую систему, более реалистичным решением является использование xdg-open в соответствии с ответом Луки. Если вы укажете html-файл или URL-адрес, он откроет браузер - если вы укажете что-то еще, он откроет соответствующее приложение для этого типа ресурса. Я сомневаюсь, что есть какая-либо веская причина открывать какой-либо файл в браузере, когда он будет лучше обрабатываться каким-либо другим приложением, либо по умолчанию, либо в соответствии с явным выбором пользователя. Если необходимо, вы можете заставить браузер открыть его с помощью x-www-browser (см. ответ Бенджамина)

У меня есть программа, запускающая веб-сайт с помощью следующей команды.

будет последовательно открывать новое окно (конечно, с Internet Explorer) независимо от того, присутствует ли существующее окно или нет.

Может ли кто-нибудь сказать мне, не хватает ли мне глупой настройки в IE 6 или есть ли способ дублировать функцию «всегда открывать новое окно», демонстрируемую путем прямого вызова iexplore.exe, но с вызовом пользовательского браузера по умолчанию. вместо этого.

+1, потому что ваш первоначальный пример был тем, что мне было нужно. У меня не было проблемы, которая вызвала ваш вопрос, поэтому ни один из этих ответов не помог - все, что мне нужно было знать, что «start http://url.com» использует браузер по умолчанию с его настройками по умолчанию для открытия нового окна.

Рад, что помогло. Это старый вопрос о проблеме, которая в конечном итоге была связана с ie6. Так что я надеюсь, что никто больше не столкнется с настоящей проблемой =)

9 ответов 9

Вы можете просто использовать

Что запустит браузер по умолчанию и перейдет на этот сайт.

И на Mac я использую

Чтобы открыть URL-адрес в браузере по умолчанию, вы можете выполнить:

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

Ни один из них не работал. rundll32 - единственное, что сработало для меня. Но я выполнял это из Go, а не из командной строки.

Идеально, если вы хотите вызвать браузер, отличный от используемого по умолчанию. Вам не нужно указывать путь, потому что start найдет chrome или firefox.

В IE есть параметр, расположенный в меню Инструменты/Свойства обозревателя/Дополнительно/Обзор, который называется Повторно использовать окна для запуска ярлыков и отмечен по умолчанию. Для версий IE, которые поддерживают просмотр с вкладками, этот параметр актуален только тогда, когда просмотр вкладок отключен (фактически, бета-версия IE9 прямо упоминает об этом). Однако, поскольку в IE6 нет просмотра с вкладками, этот параметр влияет на открытие URL-адресов через оболочку (как в вашем примере).

Это сработало для меня:

Вы можете запускать веб-страницы с помощью командной строки в любом браузере, введя эту команду

сохраните его как bat и запустите :)

Исходя из ответа Вало:

Хорошо, Windows 10 BatchFile работает так, как я и надеялся. Сначала нажмите клавишу Windows и R. Введите mmc и Enter. В меню «Файл» «Добавить оснастку»> «Перейти к определенному веб-сайту» и добавить его в список. Нажмите OK на вкладке и в корневом меню левой боковой консоли дважды щелкните свой сайт. Как только он откроется, добавьте его в избранное. Это должно поместить его в C:\Users\user\AppData\Roaming\Microsoft\StartMenu\Programs\Windows Administration Tools. Я сделал ярлык этого в папку на рабочем столе. Щелкните правой кнопкой мыши ярлык и просмотрите свойства. На вкладке «Ярлык» в свойствах нажмите «Дополнительно» и установите флажок «Запуск от имени администратора». Start in Location также находится на вкладке «Ярлыки», которую вы можете добавить в свой пакетный файл, если вам нужно. Пакет, который я сделал, выглядит следующим образом

Вам нужно сделать ярлык, когда вы сохраните это как файл bat, а в свойствах> ярлыки> расширенный доступ администратора, также можно установить там привязку клавиш и изменить значок, если хотите. Мне, наверное, не нужно :Clock. Команды netstat могут измениться на настройку размещенной сети или на все, что вы хотите, включая ничего. Может Canscade веб-сайты в 1 консоли mmc и добавить более 1 избранного в пакетный файл.

npm install --global open-cli

Или, используя скрипт NPM (именно так я его и использую): "doc:online": "open-cli https://unlyed.github.io/next-right-now/",

При запуске yarn doc:online откроется веб-страница, и это работает на любой платформе (Windows, Mac, Linux).

Браузер Chrome поддерживает открытие из командной строки и окна запуска. Также есть несколько переключателей командной строки, которые можно использовать для запуска режима инкогнито Chrome или других функций.

Открыть Chrome из командной строки

Выполните приведенную ниже команду, чтобы запустить Chrome из CMD.

Выполнить команду для Chrome

Chrome можно открыть из окна "Выполнить", выполнив команду chrome .

Обратите внимание, что команда запуска — это chrome, а команда CMD — запуск chrome

Однако вы можете заставить его работать и из интерфейса командной строки, добавив папку установки Chrome в переменную среды PATH. Путь установки: «c:\Program Files (x86)\Google\Chrome\Application». Вы можете добавить эту папку в путь, следуя инструкциям из Как установить путь из командной строки

Как открыть Chrome под другим пользователем

Используйте команду runas, чтобы запустить Chrome с учетными данными другого пользователя.

Чтобы запустить Chrome от имени администратора системы

Открыть веб-сайт в браузере Chrome из командной строки

Веб-сайт можно открыть из командной строки, указав URL-адрес веб-сайта.

Выполнить команду для Chrome, чтобы открыть веб-сайт

Выполните команду chrome WebsiteUrl, чтобы открыть веб-сайт в Chrome.

Открыть Chrome в режиме инкогнито из командной строки

В Chrome есть переключатель командной строки для открытия в режиме инкогнито. Это поддерживается из командной строки и команды запуска.

Команда для открытия Chrome в режиме инкогнито из CMD

Команда для открытия режима инкогнито из меню "Выполнить"

При установке пути с помощью команды с помощью инструкций:
setx path «%path%;c:\Program Files (x86)\Google\Chrome\Application»

Я по-прежнему не могу запустить Chrome через интерфейс командной строки
(c:\>chrome)

что я упустил?

Даже вручную добавив его через sysdm.cpl, я не могу заставить его работать

Вам нужно открыть новое командное окно после запуска команды setx. В первом командном окне по-прежнему используется предыдущее значение пути.

Я хочу открыть веб-сайт в новом окне, а не в новой вкладке в существующем окне Chrome. не мог понять, как это сделать. Есть идеи?

Я получаю сообщение об ошибке, когда пытаюсь запустить Chrome от имени администратора.

Похоже, файл никогда не создавался в другом аккаунте (администраторе). Войдите в другую учетную запись и запустите хром один раз. Думаю, это должно решить проблему.

Похоже, учетная запись администратора еще не включена на вашем компьютере. Вы можете включить учетную запись администратора, запустив командную строку с повышенными правами и точно введя:
net user /add Administrator /active:yes

К сожалению, я почти никогда не использую MS Windows, эта команда на самом деле выглядит так:
net useradmin/active:yes

запуск командной строки с повышенными привилегиями, щелкните правой кнопкой мыши «запуск от имени администратора» и введите следующую команду в точности следующим образом:

сетевой администратор пользователя /active:ye

запуск командной строки с повышенными привилегиями, щелкните правой кнопкой мыши «запуск от имени администратора» и введите следующую команду в точности следующим образом:

сетевой администратор пользователя /активный:да

Чтобы открыть Chrome в режиме инкогнито, запустите это

Похоже, что работа в режиме инкогнито отключает расширения. Например, в этом режиме не работает расширение блокировщика рекламы.

Может ли кто-нибудь помочь мне изменить каталог загрузки Chrome с помощью CLI?

Есть ли какой-либо способ сделать что-то вроде CTRL-F5 при загрузке через cmd?

Есть ли способ закрыть Chrome с помощью командной строки?

Привет. Спасибо за этот замечательный веб-сайт. Есть ли способ закрыть Chrome или другое программное обеспечение с помощью командной строки?

Читайте также: