Настройка cmder для windows 10

Обновлено: 04.07.2024

Предполагается, что вопрос «зачем?» уже не стоит. Мне в моей работе консоль нужна для автоматизации сборки фронтенда (компиляция препроцессоров, сборка спрайтов, оптимизация кода и т.п.).

Будем ставить Git Bash (Git — система контроля версий, он нам очень пригодится в работе и поставляется с консолью Git Bash) и cmder (эмулятор консоли, позволяющий использовать несколько разных консолей, имеющий вкладки, нормальную работу с буфером обмена и прочие плюшки).

Почему не Power Shell

Power Shell — неплохая консоль, встроенная в Windows. Однако, среди веб-разработчиков множество пользователей OS X и Linux — эти ОС более стабильны, безопасны, а Linux — еще и на пару порядков более распространен на серверах, в сравнении с Windows. На OS X и Linux «из коробки» есть вменяемые консоли, имеющие много общего. Привыкайте сразу к хорошему, функциональному и универсальному.

Лично я, во-первых, всерьез исследую возможность выноса всей работы с автоматизацией фронтенда в виртуальную машину с Ubuntu (я бы перешел на Ubuntu полностью, но Photoshop не позволяет), а во вторых, мой рабочий компьютер Windows 10, а ноутбук — старенький MacBook Air и хочется иметь хоть какую-то унификацию работы с консолью.

Как получить нормальную консоль

Как использовать полученную консоль

Тут важно понимать, с чем работаешь. Консоль — возможность «текстового» общения с компьютером: набираем команду — получаем реакцию. Если набранная команда запускает какой-то постоянно выполняющийся процесс (веб-сервер, к примеру), остановить выполнение можно по Ctrl + C . Да-да, то самое «копировать». Как же скопировать что-то из консоли? — спросите Вы. С cmder — просто выделите нужный фрагмент мышью и он окажется в буфере обмена. Crtl + V работает штатно («вставить»).

Чаще всего, мы набираем какую то команду и передаваемый ей параметр (один или несколько) и/или ключи (указания как ей работать). Иногда, сразу же набираем еще несколько команд, разделяя их символами && (команды будут выполнены в набранной последовательности, это не единственный возможный разделитель).

Для команд, которые используются часто, можно придумать сокращения (алиасы), чтобы вызывать их быстрее.

Файловая система

Пользователь всегда находится в какой-то папке. К примеру, Вы видите в консоли: nikname@computer /c/cmder — значит сейчас Вы в папке C:/cmder . Чтобы перейти в другую папку, наберите команду cd и укажите ей абсолютный или относительный путь — куда переходить. К примеру:

Чтобы не набирать имя папки целиком, наберите первые пару символов и нажмите Tab — произойдет автодополнение (если нет двух папок, начинающихся с введенных символов, иначе будут показаны сами эти папки).

Посмотреть содержимое папки позволяет команда ls:

Создание папок и файлов — команды mkdir и touch.

Копирование файлов — команда cp

Переименование или перемещение файлов — команда mv

Удаление папок и файлов — команда rm

Разные мелочи (как вдохновение для последующего изучения консольных команд):

Алиасы

Для команд можно создавать алиасы (синонимы). Для этого в файл C:/Users/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.bashrc нужно вписать строки, наподобие

ВНИМАНИЕ: чтобы алиасы, добавленные в c:/Users/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.bashrc заработали, нужно перезапустить консоль.

Мелкие хитрости

Кнопки клавиатуры «стрелка вверх» и «стрелка вниз» — переход по истории введенных команд (удобно для повтора команды с чуть измененными параметрами).

Важный момент

Не рекомендуются использовать кириллические символы в имени и пути рабочей папки (общей папки для всех проектов), равно как в папке с именем пользователя (которая c:/Users/ИМЯ_ПОЛЬЗОВАТЕЛЯ/.bashrc ), ибо на Windows это может вызвать непредсказуемое поведение консольных утилит (да, лучше создать нового пользователя, если при установке Windows Вы указали кириллическое имя).

Предполагается, что вы уже справились с установкой Cmder, поэтому я буду рассказывать исключительно про настройку. Действие происходит под Windows 10.0, версия ConEmu, которая пришла в поставке Cmder, 160710. Поднимается занавес.

При первом запуске вижу консоль с приглашением, кажется это cmd:


Первый запуск

Я в качестве шелла хочу использовать bash, поэтому расскажу про него. Аналогичным образом можно настроить другой шелл.

Резервная копия настроек

Перед тем, как проводить эксперименты, забекаплю настройки, чтобы в случае чего откатиться. Окно настроек открывается по Win+Alt+P . В самом верху есть поле Storage, в котором указан файл с настройками. Рядом с ним кнопка Export:

Настройки можно экспортировать в файл и импортировать из файла

Жму эту кнопку «Export», он предлагает сохранить файл. Я сохраняю на рабочий стол и называю conemu1.xml . Если я вдруг что-то сломаю в настройках, я смогу нажать Import внизу и восстановить настройки из этого файла.

А ещё так можно перенести настройки с одного компьютера на другой. Или поделиться с друзьями.

Вкладки при запуске

Для начала сделаю, чтобы при запуске Cmder открывался Bash. Открываю настройки, там секцию «Startup» и выбираю Startup options → Specified named task → . Можно выбрать Auto save/restore opened tabs, чтобы при открытии Cmder восстанавливались вкладки с прошлого раза. Но я люблю начинать с чистого листа:


Запускать при старте таску

Перезапускаю Cmder и проверяю, что запустился bash. Ввожу команду echo $SHELL , она отвечает /usr/bin/bash , значит точно баш:


Узнаю текущий шелл

Папка при запуске

Такая шляпа, что Cmder открывается в домашней папке пользователя: C:\Users\Пользователь. А у меня весь код лежит на рабочем столе в папке Projects. Сделаю, чтобы консоль при запуске открывалась там. Startup → Tasks, выбираю . Последний параметр запуска -new_console:d:%USERPROFILE% , здесь %USERPROFILE% это домашняя папка текущего пользователя. А мне нужна папка с проектами, дописываю %USERPROFILE%/Desktop/Projects :


Bash будет запускаться в папке Desktop/Projects

Если вам нужна папка не в домашней директории, то у вас получится что-то вроде -new_console:d:D:/Projects .

Новая вкладка

Нажимаю Ctrl+T , чтобы открыть новую вкладку. Открывается окно с вопросом, какой именно шел запустить, от администратора или нет, и прочие скучные вопросы:


Дурацкие вопросы при открытии вкладки

Жизнь слишком коротка, чтобы на них отвечать. Хочу, чтобы по Ctrl+T открывалась вкладка bash без всяких вопросов. И ещё чтобы в новой вкладке открывалась та же папка, что в текущей вкладке. Сначала поручу башу отдавать информацию о папке терминалу, по умолчанию он этого не делает. Для этого открываю вкладку с , и в ней выполняю команду

Эта команда добавит строку в .bashrc — файл настроек баша. Если файла ещё нет, он появится. Проверяю:

Настройки в .bashrc

Теперь в настройках Startup → Tasks создам новую задачу. Назову её , потому что она запускает bash в текущей папке — current working directory. Поле «Task parameters» скопирую из задачи , команду тоже копирую из этой задачи, но меняю в последнем параметре папку на %CD% :

В поле Hotkey жму на многоточие и выбираю Ctrl+T:

Задача будет запускаться в текущей папке

Проверяю — не работает. Открывается дурацкое окно с вопросами. Иду в настройках в «Keys & Macro» и вижу, что на Ctrl+T всё ещё висит «открыть окно с вопросами», выбираю его и добавляю к хоткеям шифт, чтобы окно висело на Ctrl+Shift+T :

Сохраняю и проверяю. По Ctrl+T открывается вкладка с bash в текущей папке без вопросов, по Ctrl+Shift+T открывается окно с вопросом, какую вкладку открыть. Отлично.

Запуск из папки

Когда я смотрю в проводнике какую-то папку, иногда хочу запустить терминал прямо в ней. Иду в настройки → Integrations. Там две группы полей: «ConEmu Here» и «ConEmu Inside». Первый добавляет в контекстное меню пункт, по которому можно открыть окно ConEmu, а второй добавляет пункт, по которому можно открыть ConEmu прямо во вкладке проводника. Мне нужен первый вариант — открыть ConEmu. Прописываю команду:

Заодно переименовываю ConEmu Here в Terminal (мне так больше нравится):

Добавляю в меню проводника пункт Terminal

И нажимаю кнопку «Register». Если не нажать, настройки не применятся. Закрываю настройки, закрываю терминал, захожу в папку, проверяю. Пункт в меню появился:

Теперь из любой папки можно консоль открыть

Жму на него, открывается консоль в этой папке. Круто. Даже с рабочего стола запускается! Кстати, с таской не заработало. Видимо потому, что в ней уже прописана папка.

Деление экрана

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

В одной вкладке висит вечный сервер, в другой пишу команды

Экран можно сплитить, если открыть окошко с вопросами про новую вкладку ( Ctrl+Shift+T , как я настроил) и выбрать New console split → To bottom или To right:

New console split → To right

Тыкать кнопки долго, нужны хоткеи, которые делят экран без вопросов, запуская bash в текущей папке. В меню «Keys & Macro» я нашёл какие-то на первый взгляд нужные команды «Split: Duplicate active ‘shell’ split to bottom» и to right, но у меня с ними не сохранялась папка после cd, а без этого неудобно.

В меню «Keys & Macro» есть свободные слоты «Macro N», куда можно вписать свои команды и хоткеи. У меня первыми свободными слотами были 12 и 13. В первый я добавил команду:

s50H — это значит поделить (split) экран на 50% по горизонтали (Horizontal). Добавил хоткей Ctrl+S (от слова Split). В следующий слот добавил деление по вертикали (V):

Сплит экрана с bash в текущей папке

Проверяю, как работает. Закрываю cmder и снова открываю. Он открывается в Desktop/Projects (левая панель). Я перехожу в папку sicamp и жму Ctrl+S , экран делится по вертикали (правая верхняя панель). Теперь в этой панели захожу в папку Desktop/Projects/Test и жму Ctrl+Shift+S , панель делится пополам и открывается правая нижняя:

Многотерминальная конфигурация cmder и wsl под win10

Многотерминальная конфигурация cmder и wsl под win10

Отпечаток

версия автор Дата замечания
0.1 ZY 2020.1.21 Первый черновик

Каталог статей

1. Первоначальное намерение


Раньше мой коллега представил Clover, инструмент управления диспетчером ресурсов под Windows. После установки при открытии диспетчера ресурсов будут отображаться все открытые места, такие как ярлык вкладки браузера, как показано на следующем рисунке:

Как видите, URL-адреса можно добавлять в закладки, как в браузере. Можно сказать, что после открытия дополнительных ресурсов это выглядит аккуратно. Затем я устанавливаю WSL на win10 и часто выполняю отладку, и мне нужно открывать множество терминалов. В то время мне было интересно, есть ли какое-либо подобное программное обеспечение, чтобы эти многооткрытые терминалы отображались так, как указано выше, которое будет выглядеть аккуратно и упорядоченно, а работа будет более удобной, в противном случае компьютер будет проверяться после открытия четырех или пяти терминалов. Я определенно не могу это отпустить. Переключение терминала, чтобы увидеть его отдельно, будет неудобно. Затем я недавно немного проверил его. Конечно, я нашел два решения. Позвольте мне рассказать о решении cmder + wsl, упомянутом в заголовке.

Два, cmder и wsl


Показать результаты:

1、cmder

1.1 Введение

Cmder - очень полезный эмулятор терминала под Windows, который часто используется для замены терминала, поставляемого с Windows. Он может одновременно подключать разные нижние оболочки к разным вкладкам, включая cmd, PowerShell, Bash и WSL, а также предоставлять соответствующие улучшения и более удобные методы работы.Это то, что в Windows называется артефактом. причина.


По умолчанию обычно заменяется простой cmd в Windows, но cmd не может быть заполнен автоматически, поэтому в Windows вы можете переключиться на bash вместо cmd, перетащить файлы, чтобы получить путь и автоматически завершить путь к файлу. Например, я использую ls в bash для просмотра Данные соответствующих локаций под Windows:

Загрузите его и разархивируйте напрямую.

1.3 Общая конфигурация
1.4 Часто используемые сочетания клавиш
  • Используйте Ctrl + T, чтобы создать новую вкладку, используйте Ctrl + W, чтобы закрыть вкладку;
  • Используйте Ctrl + Tab для переключения вкладок;
  • Alt + F4: закрыть все вкладки
  • Alt + Shift + 1: открыть cmd.exe
  • Alt + Shift + 2: открыть powershell.exe
  • Alt + Shift + 3: открыть powershell.exe (полномочия системного администратора)
  • Ctrl + 1: быстро перейти на первую вкладку
  • Ctrl + n: быстрое переключение на n-ю вкладку (без верхнего предела для значения n)
  • Alt + Enter: перейти в полноэкранный режим;
  • Ctr + r исторический поиск команд
  • Ctrl + d и другие команды выключения под Linux по-прежнему действительны

Подсистема Windows для Linux (называемая WSL) - это уровень совместимости, который может запускать собственные двоичные исполняемые файлы Linux (формат ELF) в Windows 10. это изMicrosoftРазработанный в сотрудничестве с Canonical, цель состоит в том, чтобы обеспечить загрузку и распаковку чистого образа Ubuntu 14.04 «Trusty Tahr» на локальный компьютер пользователя, а инструменты и утилиты в образе могут работать в этой подсистеме.

См. Подробности конфигурации установкиУстановить подсистему Linux под Windows 10, Или ищите самостоятельно, здесь я не буду повторять.

3. Связь между cmder и wsl

Главное, выполнить некоторую настройку в cmder, чтобы он мог запускать установленный wsl, например, запускать bash и powershell, например Ubuntu здесь.


Вы можете напрямую использовать командную строку, чтобы найти путь для запуска Ubuntu:


Или добавьте Задачу в Задачу (рекомендуется):


Эффект такой:

Три, наконец

На самом деле, для серверов с одними терминалами наблюдается аналогичная ситуация. Мне нужно запускать несколько задач одновременно, но терминал часто может выполняться только во время работы. Однако существует множество инструментов для решения таких проблем в Linux, и у них есть функции. Он не только соответствует требованиям, упомянутым выше, но и является еще более мощным. Об этом будет сказано в следующем резюме.

Как начать разрабатывать в Windows

Несмотря на все написанное ниже, наша основная рекомендация — ставить Linux-дистрибутив, например, Ubuntu и полностью погружаться в него. Подавляющее большинство веб-проектов работает под управлением Linux-систем. А постоянное использование такой системы на домашнем и рабочем компьютере равносильно погружению в языковую среду при изучении иностранных языков.

Командная строка

Первое, к чему сразу нужно привыкать — командная строка. Работа на удаленных серверах, git, пакетные менеджеры и многое другое, всё это делается, в первую очередь, в командной строке. Хотя такой способ и непривычен для обычного пользователя, он имеет множество преимуществ перед использованием мыши. К ним относятся:

  • Скорость работы значительно возрастает и намного опережает оконные интерфейсы
  • Легкая возможность автоматизации действий за счет скриптования. Другими словами, любые команды можно записать в файл и использовать его. Никаких специальных средств не требуется
  • Гораздо более хорошее понимание происходящих процессов
  • На серверах оконного интерфейса не бывает в принципе, так что тут без вариантов

Если вы пользуетесь IDE, то, скорее всего, знаете, что они интегрируют внутри себя множество инструментов. И хотя местами такая интеграция удобна (не для всех), не стоит ей злоупотреблять в самом начале пути. Гораздо лучше научиться пользоваться чистыми инструментами для лучшего понимания происходящего. К тому же, вы не будете зависеть от среды и всегда будете ориентироваться на местности.

Под термином “командная строка” скрывается сразу несколько тесно связанных, но все же независимых инструментов: терминал и командная оболочка.

Командная оболочка (shell, командный интерпретатор) — программа, позволяющая с помощью текстовых команд выполнять функции операционной системы и управлять другими программами. Например с помощью shell можно перемещаться по файловой системе и выполнять операции по созданию и удалению файлов. Сам по себе shell представляет из себя REPL (Read Eval Print Loop). Другими словами после запуска оболочки, появляется строка ввода в которую вводятся команды. После того как команда отработает, shell снова входит в режим ожидания ввода команд. Кстати у многих языков программирования есть свой собственный REPL, позволяющий в таком же стиле запускать код.

Чтобы запустить shell нужна еще одна программа — терминал (term, Terminal Emulator). Терминал — это и есть то самое окно, внутри которого запускается оболочка. Этот термин изначально использовался для отдельно стоящих монитора и клавиатуры, посредством которых можно было подключиться к мейнфрейму (большим многопользовательским компьютерам древности). Терминалы популярны и сейчас: те же банкоматы и устройства для пополнения денег на счетах всевозможных сервисов. Поэтому тот терминал, который представлен программой на наших компьютерах, называют эмулятором, ведь у него нет железной части.

Терминалов, как и оболочек существует множество. Разница заключается в том, какие возможности для удобной работы они предоставляют. Например, очень важно чтобы терминал поддерживал вкладки. Тогда очень сильно упрощается работа с большим количеством терминалов. Стандартный эмулятор в Windows не умеет работать ни с вкладками, ни с чем либо ещё. По сути, все что он делает — запускает cmd.exe и больше никак не участвует в процессе.

А вот что могут хорошие терминалы:

  • Вкладки
  • Split Panes — разделение рабочей области на части
  • Поиск
  • Профили

и многое другое.

В Windows часто бывает так, что терминал одновременно поставляется с командной оболочкой.

Основная (общая) конфигурация

Chocolatey

Пакетные менеджеры в средах, отличных от Windows — это основной способ установки программ и библиотек на компьютер. Если вам понадобится поставить Node.js, то достаточно сделать следующее:

Удобств в таком способе довольно много. Во-первых, не нужно бродить в поисках необходимого софта по всему интернету и тратить уйму времени. Во-вторых, всё, что можно набрать в командной строке автоматизируется. Другими словами, можно написать скрипт, который сам будет ставить всё, что нужно (подробнее смотрите Ansible).

Для Windows существует несколько пакетных менеджеров, но именно Chocolatey стал стандартом де-факто. Установка choco стоит из нескольких простых шагов, которые хорошо описаны в соответствующем разделе.

В чем-то Chocolaty справляется даже лучше, чем brew или apt. С его помощью можно ставить не только специализированный софт (например, для программистов), но и любые программы вообще.

или, что тоже самое

Список того, что можно поставить находится здесь.

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

Терминалы

Cmder (базируется на ConEmu)

Эмулятор, поставляющийся вместе с командной оболочкой Git Bash. Его установка решает сразу две задачи. С одной стороны вы получаете продвинутый терминал, с другой, из коробки, эмулятор Bash (настоящий bash получить нельзя, он работает только в *NIX системах).

Запустите программу cmd.exe и выполните там следующую команду:

После установки Cmder всё остальное следует делать только из под него.

MobaXterm

Альтернативный эмулятор, доступный по ссылке: MobaXterm. Также как и Cmder, из коробки поставляется с командной оболочкой. Бесплатен для домашнего использования.

Hyper.js

Рассмотрен здесь для полноты картины. В отличие от предыдущих предоставляет только терминал. По умолчанию запускает внутри себя cmd.exe , но можно настроить на любую оболочку.

Ubuntu for Windows

Ремарка для владельцев последних версий Windows. Microsoft интегрировала Ubuntu внутрь Windows. Особенности установки и включения этой интеграции зависят от конкретной версии Windows, но в целом это сводится к нажатию нескольких кнопок. Подробности можно найти в нашей инструкции по установке Ubuntu Linux внутри Windows.

Vagrant

Vagrant — программа, созданная для разворачивания окружения разработчика, работающая во всех основных операционных системах. Она работает совместно с одной из систем виртуализации (например VirtualBox). Главное преимущество перед другими способами работы в Windows в том, что это не эмуляция, а полноценная виртуальная машина с Linux на борту.

Вагрант, в отличие от прямого использования виртуальной машины, дает множество полезностей для разработчика. Подробнее про преимущества и процесс установки читайте в отдельном руководстве.

Babun (Cygwin)

Cygwin — программное обеспечение, эмулирующее среду Linux на Windows. С его помощью можно запускать программы, написанные под Linux. Конечно, у этого способа множество ограничений, но все же он лучше, чем ничего.

С Cygwin работать напрямую не очень удобно, поэтому был создан Babun. Это командная оболочка, построенная на Cygwin. В отличие от других вариантов, Babun поставляется с собственной экосистемой. Например, он включает в себя пакетный менеджер pact, что приводит к конфликту с Chocolatey.

Со временем я оценил все преимущества и удобства выполнения многих задач через консоль. Первое время я использовал обычную Windows консоль, потом некоторое время Powershell и затем наткнулся на замечательную консоль, которая называется cmder.

Cmder — это оболочка удобного эмулятора ConEmu, с уже встроенным git и многими другими фичами и командами. Собственно, если ты не хочешь заморачиваться с настройками консоли, то можно остановиться на этом варианте и по минимуму вложиться в эту консоль (настроить свои алиасы, шрифты или цветовую гамму, и этого в прицнипе многим будет достаточно).

Первое время я использовал Cmder, но со временем я перешел на ConEmu, так как сталкивался с огромным количеством багов и непонятных для меня проблем с Cmder, и вместо того, чтобы заниматься проектами или реализовывать новые идеи, мне приходилось много времени уделять исправлению этих багов и бесконечным чтением багтрекера. Поэтому очевидный для меня выбор под Windows на сегодня — ConEmu.


Я сделал немного по-другому и установил в PATH пути до моего локального cmder:

В принципе, из всего cmder мне нужна только папочка git-for-windows или же установленный git-console отдельно. Это дает возможность везде использовать такие команды, как ls, la, ll, ssh и многое другое, как видно на скриншоте ниже. Это очень удобно и важно иметь такие команды в своем арсенале.


Также советую использовать alias-ы, которые настраиваются в пункте меню настроек ConEmu -> Environment. Вот список моих некоторых алиасов:

Тут уже настраивай все отдельно под себя, как нравится и в зависимости от того, какие потребности. Вариантов, как понимаешь, огромное количество. Например, для того, чтобы мне подключиться к моему удаленному VPS-серверу достаточно ввести команду con_sqf. Правда удобно?

Если возникнут какие-то проблемы или трудности, то всегда буду рад помочь и ответить на вопросы в комментариях. Успехов!

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