<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Максим Кузнецов: заметки с тегом консоль</title>
<link>https://maxkuznetsov.ru/tags/konsol/</link>
<description>Простыми словами о веб-разработке</description>
<author>Максим Кузнецов</author>
<language>ru</language>
<generator>E2 (v3559; Aegea)</generator>

<itunes:owner>
<itunes:name>Максим Кузнецов</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Простыми словами о веб-разработке</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Как улучшить терминал в Mac OS X: iTerm2, omyzsh, zsh</title>
<guid isPermaLink="false">13</guid>
<link>https://maxkuznetsov.ru/all/console-iterm2-omyzsh/</link>
<pubDate>Mon, 23 Mar 2020 03:23:25 +0300</pubDate>
<author>Максим Кузнецов</author>
<comments>https://maxkuznetsov.ru/all/console-iterm2-omyzsh/</comments>
<description>
&lt;p&gt;Отличная статья про апгрейд встроенного Terminal&lt;br /&gt;
&lt;a href="https://medium.com/@Clovis_app/configuration-of-a-beautiful-efficient-terminal-and-prompt-on-osx-in-7-minutes-827c29391961"&gt;https://medium.com/@Clovis_app/configuration-of-a-beautiful-efficient-terminal-and-prompt-on-osx-in-7-minutes-827c29391961&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Краткий план действий&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Ставим iTerm2 на замену Terminal. Они нормально сосуществуют и можно будет откатиться, если не понравится.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;brew cask install iterm2&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;Ставим &lt;a href="https://raw.githubusercontent.com/Clovis-team/clovis-open-code-extracts/master/utils/Clovis-iTerm2-Color-Scheme.itermcolors"&gt;цветовую cхему&lt;/a&gt; для iTerm2 (сохраняйте именно как .itermcolors) — это набор цветов и ничего больше. На данном этапе терминал всё ещё будет выглядеть уныло.&lt;/li&gt;
&lt;li&gt;Качаем шрифт с поддержкой дополнительных символов-иконок: &lt;a href="https://github.com/powerline/fonts/blob/master/Meslo%20Slashed/Meslo%20LG%20M%20Regular%20for%20Powerline.ttf"&gt;обычный&lt;/a&gt; или &lt;a href="https://github.com/powerline/fonts/blob/master/Meslo%20Slashed/Meslo%20LG%20M%20Bold%20for%20Powerline.ttf"&gt;жирный&lt;/a&gt; (он контрастнее) — и устанавливаем в систему. Иначе увидим не иконки, а пустые квадратики.&lt;br /&gt;
Меняем размер шрифта на 12-14pt или какой удобнее.&lt;/li&gt;
&lt;li&gt;Через консоль iTerm’a устанавливаем Zsh (вместо стандартного Bash) и Oh my Zsh — само ядро командной строки и оболочку с форматированием вокруг неё.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;# Возможно, zsh у вас уже есть по умолчанию. Чтобы проверить, нужно ввести : 
which zsh
# Если вернёт путь, значит есть. Если нет, то ставим:
brew install zsh zsh-completions
# Устанавливаем Oh my Zsh
sh -c &amp;quot;$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="5"&gt;
&lt;li&gt;Важно: теперь основной конфигурационный файл консоли — ~/.zshrc, а не ~/.bashrc или ~/.bash_profile.&lt;/li&gt;
&lt;li&gt;Скачиваем в дефолтную директорию тему — самую маковку, которая добавит красоты в терминал&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
# Редактируем ~/.zshrc и меняем конфиг
ZSH_THEME=&amp;quot;powerlevel9k/powerlevel9k&amp;quot;&lt;/code&gt;&lt;/pre&gt;&lt;ol start="7"&gt;
&lt;li&gt;Перезагружаем iTerm и вуаля.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Улучшение вида и поведения терминала&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Вид самой строки&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir rbenv vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time)
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='red' # Будет менять цвет, если есть обновления в гит-репозитории&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;Я не стал делать перенос строки (POWERLEVEL9K_PROMPT_ON_NEWLINE=true), так как у меня терминал всегда на всю ширину экрана и места хватает.&lt;/li&gt;
&lt;li&gt;Обязательно: iTerm → Preferences → Profiles → Keys → Load Preset… → Natural Text Editing, чтобы работала навигация через Option + стрелки и прочее.&lt;/li&gt;
&lt;li&gt;Можно добавить автодополнение команд на основе истории&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
vim ~/.zshrc
# Внутри файла добавляем через пробел название плагина
plugins=(… zsh-autosuggestions)&lt;/code&gt;&lt;/pre&gt;&lt;ol start="5"&gt;
&lt;li&gt;Включаем автозагрузку ssh-ключей при старте терминала:&lt;br /&gt;
&lt;a href="https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/ssh-agent"&gt;https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/ssh-agent&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;vim ~/.zshrc
# Внутри файла добавляем через пробел название плагина
plugins=(… ssh-agent)
# Сразу ниже включаем ssh-agent и указываем ключи через пробел — у меня их два
zstyle :omz:plugins:ssh-agent agent-forwarding on
zstyle :omz:plugins:ssh-agent identities id_rsa id_rsa2
# Эта строка у вас уже будет, главное команды выше поместить до этой строки с source
source $ZSH/oh-my-zsh.sh&lt;/code&gt;&lt;/pre&gt;&lt;ol start="6"&gt;
&lt;li&gt;Перезагружаем iTerm. Уже всё готово!&lt;/li&gt;
&lt;li&gt;Опционально: после всех правок IDE, которые содержат встроенный терминал, могут выглядеть слегка кривовато. Нужно им помочь с определением шрифта. Например, в VS Code в настройках меняем параметры:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;quot;terminal.integrated.fontFamily&amp;quot;: &amp;quot;Meslo LG M for Powerline&amp;quot;
&amp;quot;terminal.integrated.fontSize&amp;quot;: 12&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Как ускорить docker-compose на Mac OS X — docker-sync</title>
<guid isPermaLink="false">12</guid>
<link>https://maxkuznetsov.ru/all/docker-on-mac-speed/</link>
<pubDate>Fri, 20 Mar 2020 16:33:26 +0300</pubDate>
<author>Максим Кузнецов</author>
<comments>https://maxkuznetsov.ru/all/docker-on-mac-speed/</comments>
<description>
&lt;p&gt;Хорошая статья про настройку docker-sync — короче и ёмче, чем в официальной документации:&lt;br /&gt;
&lt;a href="https://dev.to/kovah/cut-your-docker-for-mac-response-times-in-half-with-docker-sync-1e8j"&gt;https://dev.to/kovah/cut-your-docker-for-mac-response-times-in-half-with-docker-sync-1e8j&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;1. Установка через терминал&lt;/h3&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;
gem install --user-install docker-sync
# or globally via
sudo gem install docker-sync
&lt;/code&gt;
&lt;/pre&gt;
&lt;h3&gt;2. Добавить файл &lt;span style="font-family: monospace;"&gt;docker-sync.yml&lt;/span&gt; в корень проекта (пример для Symfony)&lt;/h3&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="yaml"&gt;
version: "2"

options:
    compose-dev-file-path: 'docker-compose-sync.yml' # Если хочется изменить дефолтный файл docker-compose-dev.yml
syncs:
    PROJECT-data-sync:  # Это надо заменить на любое уникальное имя
        src: './'
        host_disk_mount_mode: 'cached'
        sync_excludes:
            - '.git'
            - '.idea'
            - 'app/cache/*'
            - 'app/logs/*'
&lt;/code&gt;
&lt;/pre&gt;
&lt;h3&gt;3. Добавить файл &lt;span style="font-family: monospace;"&gt;docker-compose-sync.yml&lt;/span&gt; (или &lt;span style="font-family: monospace;"&gt;*-dev.yml&lt;/span&gt; по умолчанию) в корень проекта:&lt;/h3&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="yaml"&gt;
version: '3.2'

services:
    web:
        volumes:
            - ./composer.json:/var/www/html/composer.json
            - ./composer.lock:/var/www/html/composer.lock
            - PROJECT-data-sync:/var/www/html:nocopy

volumes:
    PROJECT-data-sync:
        external: true
&lt;/code&gt;
&lt;/pre&gt;
&lt;h3&gt;4. Запускаем в терминале в корне проекта&lt;/h3&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;
docker-sync start
# нужно подождать, пока всё синхронизируется
docker-compose -f docker-compose.yml -f docker-compose-sync.yml up -d
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Запуск через &lt;span style="font-family: monospace;"&gt;docker-sync-stack start&lt;/span&gt; делает две команды выше, но остаётся висеть в консоли, а не уходит в фоновые процессы.&lt;/p&gt;
&lt;p&gt;Чтобы остановить, делаем ровно обратное&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="bash"&gt;
docker-compose stop
docker-sync stop
&lt;/code&gt;
&lt;/pre&gt;
</description>
</item>

<item>
<title>Как удалить всё, что создал docker-compose</title>
<guid isPermaLink="false">11</guid>
<link>https://maxkuznetsov.ru/all/kak-udalit-vsyo-chto-sozdal-docker-compose/</link>
<pubDate>Fri, 20 Mar 2020 01:16:51 +0300</pubDate>
<author>Максим Кузнецов</author>
<comments>https://maxkuznetsov.ru/all/kak-udalit-vsyo-chto-sozdal-docker-compose/</comments>
<description>
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;cd path/to/project
docker-compose stop
docker-compose down -v --rmi all --remove-orphans&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Объём диска и папки</title>
<guid isPermaLink="false">10</guid>
<link>https://maxkuznetsov.ru/all/tech-obyom-diska-i-papki/</link>
<pubDate>Wed, 18 Sep 2019 11:55:51 +0300</pubDate>
<author>Максим Кузнецов</author>
<comments>https://maxkuznetsov.ru/all/tech-obyom-diska-i-papki/</comments>
<description>
&lt;p&gt;Никак не могу удержать в голове эти команды, так как они нужные не так часто, но всё же настолько, чтобы записать и больше не искать.&lt;/p&gt;
&lt;p&gt;Сколько места на диске:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;df -h&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Сколько места занимает папка:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;du -sh ./folder&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Что именно занимает больше всего места внутри папки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;du -sh ./folder/*&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Как узнать через терминал что «висит» на порту</title>
<guid isPermaLink="false">9</guid>
<link>https://maxkuznetsov.ru/all/chto-visit-na-portu/</link>
<pubDate>Thu, 06 Jun 2019 17:34:33 +0300</pubDate>
<author>Максим Кузнецов</author>
<comments>https://maxkuznetsov.ru/all/chto-visit-na-portu/</comments>
<description>
&lt;p&gt;Команда:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo lsof -nP -i:$PORT | grep LISTEN&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;где $PORT — искомый порт.&lt;/p&gt;
&lt;p&gt;Важно запускать с sudo, так как иначе можно пропустить процесс, запушенный из-под рута.&lt;/p&gt;
</description>
</item>


</channel>
</rss>