Руководство. Настройка пользовательского запроса PowerShell или WSL с помощью O My Posh
В этом руководстве представлены ресурсы и указания, которые помогут вам настроить командную строку для PowerShell или подсистемы Windows для Linux (WSL) с помощью Oh My Posh. Oh My Posh предоставляет возможности выбора темы для полностью настраиваемой пользовательской командной строки с цветовым кодированием состояния и командной строки Git.
В этом руководстве описано следующее:
- Установка шрифта Nerd
- Настройка командной строки PowerShell с помощью Oh My Posh
- Настройка командной строки WSL с помощью Oh My Posh
- Добавление отсутствующих значков папок или файлов с помощью Terminal-Icons

Установка шрифта Nerd
В настраиваемых командных строках для изменения стиля часто используются глифы (графические символы). Если шрифт не содержит соответствующие глифы, в командной строке может появиться несколько символов замены Юникода ▯. Чтобы в терминале отображались все глифы, рекомендуем установить шрифт Nerd.
(Если вам нужен шрифт, который выглядит как Cascadia Code, используйте шрифт Caskaydia Cove Nerd Font, созданный из репозитория Cascadia Code участником сообщества.)
После скачивания необходимо распаковать и установить шрифт в системе. (Добавление нового шрифта в Windows.)
Чтобы установить шрифт Nerd для использования с Oh My Posh и значками Терминала, откройте пользовательский интерфейс параметров Терминала Windows, выбрав Настройки (CTRL+,) в раскрывающемся меню Терминала Windows. Выберите профиль, в котором вы хотите применить шрифт (например, PowerShell), а затем щелкните вкладку Внешний вид. В раскрывающемся меню Начертание шрифта выберите CaskaydiaCove Nerd Font или любой другой шрифт Nerd, который вы хотите использовать в пользовательской командной строке.
Если вы решите использовать шрифт терминала, не поддерживающий глифы, например Cascadia Code PL, вы можете рассмотреть возможность использования темы Oh My Posh, которая содержит функцию minimal , указывающую, что дополнительные значки не требуются.
Настройка командной строки PowerShell с помощью Oh My Posh
Oh My Posh позволяет использовать полный набор цветов для определения и визуализации командной строки терминала, включая возможность использования встроенных тем или создания пользовательской темы.
Установка Oh My Posh для PowerShell
Чтобы настроить командную строку PowerShell, можно установить Oh My Posh с помощью winget. Введите команду :
winget install JanDeDobbeleer.OhMyPosh
- oh-my-posh.exe — исполняемый файл Windows;
- themes — последние темы Oh My Posh.
Вы должны будете согласиться с исходными условиями, при этом вам может встретиться экземпляр, доступный нескольким пакетам. В этом случае выберите идентификатор пакета, который вы хотите использовать, и повторно введите команду: winget install .

Чтобы использовать версию Oh My Posh из Microsoft Store, которая будет автоматически обновляться при наличии новых версий, используйте следующую команду:
winget install XP8K0HKJFRXGCK
Введите oh-my-posh version , чтобы подтвердить номер версии установки Oh My Posh. Чтобы убедиться, что у вас есть последние обновления, можно использовать следующую команду: winget upgrade oh-my-posh .
Если вы хотите установить последнюю версию Oh My Posh в PowerShell, возможно, сначала потребуется удалить кэшированные файлы модуля OMP и удалить старый модуль. Инструкции по выполнению этих действий можно найти в документации по Oh My Posh. Если вы лучше знакомы с установщиком Scoop или методом установки вручную, который предусматривает автоматизацию, их также можно использовать для установки в Windows. Просто следуйте инструкциям из документации по Oh My Posh.
Выбор и применение темы командной строки PowerShell
Полный список тем можно найти на странице тем для Oh My Posh.
Выберите тему и обновите профиль PowerShell с помощью следующей команды (вы можете заменить notepad предпочитаемым текстовым редактором):
notepad $PROFILE
Если вы получаете ошибку пути, возможно, у вас еще нет профиля для PowerShell. Чтобы создать его, используйте следующую команду PowerShell для создания профиля и повторите попытку открыть его с помощью текстового редактора.
new-item -type file -path $profile -force
Добавьте следующий фрагмент в конец файла профиля PowerShell, чтобы задать тему paradox (замените paradox предпочитаемой темой):
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression
Теперь каждый новый экземпляр PowerShell будет запущен с импортом Oh My Posh и установкой темы командной строки.
Если при попытке открыть новый экземпляр PowerShell возникает ошибка скрипта, политика выполнения для PowerShell может быть ограничена. Чтобы настроить политику выполнения PowerShell неограниченной, необходимо запустить PowerShell от имени администратора, а затем использовать следующую команду:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Это не профиль Терминала Windows. Профиль PowerShell является сценарием, который выполняется при каждом запуске PowerShell. Ознакомьтесь с дополнительными сведениями о профилях PowerShell.
Часто задаваемые вопросы и ответы на распространенные вопросы или проблемы см. в часто задаваемых вопросов и проблемах о О Мой Пош. Дополнительные сведения о конфигурации и общих параметрах, таких как восстановление текущего рабочего каталога, см. в документации по «О Мой Posh».
Настройка командной строки WSL с помощью Oh My Posh
Oh My Posh теперь позволяет настроить командную строку WSL, так же как и командную строку PowerShell, используя встроенные темы.
Установка Oh My Posh для WSL
Рекомендуем установить Oh My Posh для WSL, используя Bash, Zsh или другое средство, следуя инструкциям по установке в Linux из документации по Oh My Posh.
Сейчас в рекомендуемом пути настройки командной строки WSL с помощью Oh My Posh для установки используется менеджер пакетов Homebrew. (Homebrew уже работает с WSL!) При установке Homebrew для Linux обязательно выполните инструкции из раздела Next steps (Дальнейшие действия), чтобы добавить Homebrew в используемый путь (PATH) и в скрипт профиля оболочки Bash.
- oh-my-posh — исполняемый файл, который будет добавлен в каталог /usr/local/bin;
- themes — последние темы Oh My Posh.
Выбор и применение темы командной строки WSL
Темы Oh My Posh находятся в каталоге oh-my-posh в виде файлов JSON. Чтобы найти их, введите команду cd $(brew —prefix oh-my-posh) , затем просто cd themes , а затем — ls для построения списка. Для ОС Ubuntu 20.04, работающей через WSL, путь будет выглядеть примерно так: \\wsl.localhost\Ubuntu-20.04\home\linuxbrew\.linuxbrew\Cellar\oh-my-posh\6.34.1\themes . Вы также можете просмотреть темы в документации по Oh My Posh.
Чтобы использовать тему, скопируйте ее из папки themes в папку $Home , а затем добавьте в конец файла .profile , находящегося в папке $Home , следующую строку:
eval "$(oh-my-posh init bash --config ~/jandedobbeleer.omp.json)"
jandedobbeleer.omp.json можно заменить именем любой выбранной темы, если она скопирована в папку $Home .
В качестве альтернативы, если вы используете oh-my-posh и в Windows с PowerShell, и в WSL, вы можете использовать тему PowerShell также в WSL, указав ее в домашней папке пользователя Windows. В пути к файлу .profile используемого дистрибутива WSL вместо ~ укажите путь /mnt/c/Users/ , заменив своим именем пользователя Windows.
Добавление отсутствующих значков папок или файлов с помощью Terminal-Icons
Terminal-Icons — это модуль PowerShell, который добавляет значки файлов и папок, которые могут отсутствовать при отображении файлов или папок в терминале Windows, и ищет соответствующий значок на основе имени или расширения. Он пытается использовать значки хорошо известных файлов и папок, но если значок не найден, использует универсальный значок файла или папки.
Чтобы установить Terminal-Icons с помощью PowerShell, выполните следующую команду:
Install-Module -Name Terminal-Icons -Repository PSGallery
Дополнительные сведения, в том числе об использовании и командах, см. в репозитории Terminal-Icons на сайте GitHub.
Дополнительные ресурсы
- Документация по Oh My Posh
- Репозиторий Terminal-Icons
- Документация по Posh-Git. Posh-Git — это модуль PowerShell, который объединяет Git и PowerShell, предоставляя сводную информацию о состоянии Git, которая может быть отображена в командной строке PowerShell.
- Документация по PowerLine. Powerline — это подключаемый модуль строки состояния для Vim. Кроме того, он предоставляет строки состояния и командные строки для ряда других приложений, включая Zsh, Bash, tmux, IPython, Awesome, i3 и Qtile.
Как сделать красивую разноцветную командную строку?
На Windows в обычной стандартной командной строке можно настраивать цвета шрифтов. Запусти командную строку, кликни правой кнопкой мышки по ней и на «Свойства». Дальше сам разберешься, наверное.
Можешь установить ConEmu, это получше стандартной командной строки на Windows и настроек там больше.
http://conemu.ru/ru/
У тебя на скриншоте вообще не командная строка винды, это эмулятор терминала Linux или BSD какой-нибудь.
Как сделать красивую консоль в Mac и Linux
Если у вас OS X, поставьте iTerm2, он лучше стандартного Terminal.app. Если у вас Linux, то у вас наверняка уже есть неплохой терминал, или вы можете самостоятельно поставить любой, который вам нравится. Я вот люблю Sakura. Ещё я обычно меняю цветовую схему. Стандартные чёрные мне не очень нравятся, есть крутая схема Solarized. Как её устанавливать тоже зависит от вашего терминала.
Теперь настроим непосредственно шелл. Шелл — это оболочка, в которой выполняются команды. Он показывает вам так называемое приглашение, оно обычно состоит из имени пользователя, имени компьютера и пути к тому месту, где вы сейчас находитесь. И выполняет команды, которые вы в него вводите. Стандартный шелл выглядит так:

Скучновато, правда? Первое, что мы сделаем — сменим оболочку с bash на zsh. Bash — это стандартная оболочка, которая поставляется в комплекте большинства систем. Zsh — это более современная оболочка со множеством плюшек. По сравнению с bash улучшены автодополнение, алиасы, хоткеи. Всё, что может bash, zsh может тоже, так что не вижу причин не переходить. У пользователей OS X zsh уже есть на компьютере, а пользователям Linux, скорее всего, нужно его установить. В Ubuntu и Debian это делается просто:

Пользователи остальных систем наверняка справятся с установкой. Теперь нужно сделать, чтобы zsh был вашей оболочкой по умолчанию, то есть использовался каждый раз, когда вы открываете терминал. Для этого есть команда chsh (change shell):

У вас спросят пароль администратора. По мере ввода на экране ничего изменяться не будет, просто напечатайте ваш пароль и нажмите Enter. Появится сообщение о том, что ваш шелл изменён:

Теперь нужно выйти из системы и снова зайти. Когда вы откроете терминал, увидите приветственное сообщение zsh. Он предлагает вам ничего не делать, записать в свои настройки только комментарии, чтобы это сообщение не появлялось в следующий раз или пойти в меню настройки:

Мы, ничего не делая, выйдем (нажмём q), потому что знаем секрет. Секрет в том, что не нужно писать длинный конфиг, если вы новый пользователь: частые проблемы и хотелки уже решили другие, и родилась такая замечательная штука — Oh My ZSH. Это набор плагинов и настроек, которые решают самые популярные задачи и делают ваш шелл просто офигенным. Установим его, следуя инструкциям с официального сайта:
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
Установка прошла, но ничего не поменялось? Надо закрыть терминал и снова открыть его, чтобы настройки, которые приехали к нам из oh-my-zsh, прочитались и применились. Закрыли-открыли, теперь видим новое приветствие:

Это стандартная тема oh-my-zsh под названием robbyrussell (по имени автора). Мы можем поставить любую из тем, которые поставляются с oh-my-zsh. Я, например, использую Bureau, когда-то я её писала, потому что не нашла подходящей. Чтобы поменять тему, напишите её название (маленькими буквами, как на странице со списком тем) в файле .zshrc . Он лежит в вашей домашней папке ( /Users/Ваш_логин или /home/ваш_логин ). Поскольку он начинается с точки, он скрыт. Включите отображение скрытых файлов. Тему нужно прописать в переменную ZSH_THEME , это в районе восьмой строки, вот так:

Сохраните файл и снова перезапустите терминал (или откройте в нём новую вкладку). Теперь шелл выглядит по-новому:

Это тема Bureau. В верхней строчке сначала имя пользователя, потом имя машины, потом путь к папке, где пользователь сейчас находится. Справа текущее время. В следующей строке просто символы, которые обозначают, что ввод здесь, а справа после шестиугольника текущая версия Node. js, ветка Git (если пользователь сейчас в Git-репозитории), и кружочки, которые обозначают, что есть несохранённые изменения. В этой теме версия Node. js показывается только если вы используете Node Version Manager.

А это тема Лёши, можете её взять из GitHub и сохранить в папке ~/.oh-my-zsh/themes , или установить простой командой:
curl https://gist.githubusercontent.com/meritt/53dcaf7f8f5ecaa62b2b/raw/ec63d857f9ad565011047ab5b486d159ddf0e2ef/meritt.zsh-theme -o ~/.oh-my-zsh/themes/meritt.zsh-theme
Не забудьте прописать тему meritt в вашем файле .zshrc .
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Командная строка
Привет, друзья! Я хотел бы обсудить настройку интерфейса командной строки в Linux. Я заметил, что у меня он выглядит довольно обычно и хотел бы понять, как его можно улучшить. Кто-нибудь может поделиться своими советами или рекомендациями по настройке командной строки?
ShellShocker
09.12.22 15:59:50 MSK
- Ответить на это сообщение
- Ссылка

export PS1="\W \$ "
export PS1="%1~ %# "
beastie ★★★★★
( 09.12.22 16:02:15 MSK )
Последнее исправление: beastie 09.12.22 16:04:14 MSK (всего исправлений: 1)
- Ответить на это сообщение
- Показать ответы
- Ссылка

Добавь в конец файла /etc/bashrc
# Color indication for root (red) and users (green) if [ $(id -u) -eq 0 >/dev/null 2>&1 ]; then PS1='[\[\033[1;31m\]\u@\h\[\033[m\] \W]\[\033[33;1m\]\$ \[\033[m\]' else PS1='[\[\033[1;32m\]\u@\h\[\033[m\] \W]\[\033[33;1m\]\$ \[\033[m\]' fi
Утащил из RedOS.
papin-aziat ★★★★★
( 09.12.22 16:10:59 MSK )
- Ответить на это сообщение
- Ссылка

См. https://ohmyz.sh/ и альтернативы. Поставьте, посмотрите на интересующие вас модули и функции. Когда поймёте, что нужно, а что ненужно — отключите часть.
В частности, всегда включаю игнорирование регистра букв для tab-автодополнения в .inputrc, настраиваю fzf для ctrl+r.
В zsh можно сделать удобный интерактивный выбор директории или файла при tab-автодополнении, тоже часто пользуюсь в zsh.
ValdikSS ★★★★★
( 09.12.22 16:12:10 MSK )
Последнее исправление: ValdikSS 09.12.22 16:13:08 MSK (всего исправлений: 2)
- Ответить на это сообщение
- Показать ответ
- Ссылка

Покрути цвета в эмуляторе терминала (НЕ командная строка), шрифт какой-нибудь поставь…
GREAT-DNG ★★★
( 09.12.22 16:17:24 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка

использовать zsh или fish.
zsh совместим с синтаксисом обычного bash, в fish все есть из коробки и ничего не надо настраивать (мне по крайней мере).
Поставив что-то из этого, пошерстить каталоги с плагинами (oh-my-zsh, oh-my-fish и т.п.) и поставить понравившееся. Только главное потом удалить то, что ты на самом деле не используешь 🙂
Lrrr ★★★★
( 09.12.22 16:19:48 MSK )
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от beastie 09.12.22 16:02:15 MSK
Вообще все пропало 🙁
ShellShocker
( 09.12.22 16:20:10 MSK ) автор топика
- Ответить на это сообщение
- Показать ответ
- Ссылка
Ответ на: комментарий от ShellShocker 09.12.22 16:20:10 MSK

Не пропало, а сократилось до максимума информации, которую тебе необходимо иметь в командной строке.
basename(директории, где ты находишься) и рут ты или нет.
Это всё и много свободного места под команды. А я-у-мамы-какер-цветастых-попугаев советуют выше другие.
beastie ★★★★★
( 09.12.22 16:24:09 MSK )
Последнее исправление: beastie 09.12.22 16:24:40 MSK (всего исправлений: 1)
- Ответить на это сообщение
- Показать ответы
- Ссылка

Если не пользуешься Ctrl+S (остановка выхлопа, я вот не пользуюсь никогда), то добавь в конец ~/.bashrc stty -ixon , тогда сможешь искать по истории команд не только методом reverse-i-search (Ctrl + R), но и собственно i-search — Ctrl + S.
Если хочешь, чтобы история комманд сохранялась со всех терминалов, то туда же добавь PROMPT_COMMAND=’history -a’ , а то бывает откроешь второй-третий терминал, наваляешь туда полезного, а в историю оно не сохраняется.
Если используешь разные редакторы в гуях и настоящей консоли, то добавь в ~/.bash_profile
if [ $TERM = linux ]; then export SUDO_EDITOR='vi' else export SUDO_EDITOR='kwrite' fi
Редакторы поменяй на свои.
papin-aziat ★★★★★
( 09.12.22 16:24:49 MSK )
- Ответить на это сообщение
- Ссылка