- Делаем Linux терминал красивым и удобным
- Добавляем функциональность
- Командная оболочка
- Настройка Zsh
- Настраиваем внешний вид
- Как сделать красивую консоль в Mac и Linux
- Подсветка синтаксиса в терминале
- пример
- конфигурация
- Использование less в трубах
- Зачем использовать Emacs?
- Полезные ссылки
- Примечания по операционной системе
- Разноцветные терминалы
Делаем Linux терминал красивым и удобным
Добавляем функциональность
Командная оболочка
Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?
Настройка Zsh
Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):
Когда вам предложат установить Zsh как оболочка по-умолчанию, нажмите Y , чтоб подтвердить.
Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:
Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды — выделяться цветом, отличным от обычного текста. Установим плагин zsh-syntax-highlighting :
Чтоб плагин заработал, его надо подключить.
/.zshrc меняем строку с plugins= :
Если такой строки нет — добавьте её.
Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.
Настраиваем внешний вид
Скачиваем и добавляем в систему шрифт JetBrains Mono Nerd (c иконками):
Выберитеодин из списка, в папке шрифт/complete выберите шрифт без «Windows Compatible», с окончанием «Mono».
Подключаем шрифт и тему.
Если в файле эти строки уже есть — замените их.
Цвета. Важная часть оформления терминала — цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:
В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy
Запускаем конфигурацию темы: p10k configure .
Настройте тему, выбирая варианты отображения, которые вам больше нравятся.
Финальный штрих — меняем конфиг темы и заменяем встроенные цвета.
Если в файле эти строки уже есть — замените их. Коды цветов можно получить командой
- Отображение только текущей директории:
Источник
Как сделать красивую консоль в Mac и Linux
Если у вас OS X, поставьте iTerm2, он лучше стандартного Terminal.app. Если у вас Linux, то у вас наверняка уже есть неплохой терминал, или вы можете самостоятельно поставить любой, который вам нравится. Я вот люблю Sakura. Ещё я обычно меняю цветовую схему. Стандартные чёрные мне не очень нравятся, есть крутая схема Solarized. Как её устанавливать тоже зависит от вашего терминала.
Теперь настроим непосредственно шелл. Шелл — это оболочка, в которой выполняются команды. Он показывает вам так называемое приглашение, оно обычно состоит из имени пользователя, имени компьютера и пути к тому месту, где вы сейчас находитесь. И выполняет команды, которые вы в него вводите. Стандартный шелл выглядит так:
Стандартное приглашение в шелле
Скучновато, правда? Первое, что мы сделаем — сменим оболочку с bash на zsh. Bash — это стандартная оболочка, которая поставляется в комплекте большинства систем. Zsh — это более современная оболочка со множеством плюшек. По сравнению с bash улучшены автодополнение, алиасы, хоткеи. Всё, что может bash, zsh может тоже, так что не вижу причин не переходить. У пользователей OS X zsh уже есть на компьютере, а пользователям Linux, скорее всего, нужно его установить. В Ubuntu и Debian это делается просто:
Установка zsh в Ubuntu и Debian
Пользователи остальных систем наверняка справятся с установкой. Теперь нужно сделать, чтобы zsh был вашей оболочкой по умолчанию, то есть использовался каждый раз, когда вы открываете терминал. Для этого есть команда chsh (change shell):
Ввод пароля при смене шелла
У вас спросят пароль администратора. По мере ввода на экране ничего изменяться не будет, просто напечатайте ваш пароль и нажмите Enter . Появится сообщение о том, что ваш шелл изменён:
Смена оболочки по умолчанию
Теперь нужно выйти из системы и снова зайти. Когда вы откроете терминал, увидите приветственное сообщение zsh. Он предлагает вам ничего не делать, записать в свои настройки только комментарии, чтобы это сообщение не появлялось в следующий раз или пойти в меню настройки:
Приветствие от zsh
Мы, ничего не делая, выйдем (нажмём q ), потому что знаем секрет. Секрет в том, что не нужно писать длинный конфиг, если вы новый пользователь: частые проблемы и хотелки уже решили другие, и родилась такая замечательная штука — Oh My ZSH. Это набор плагинов и настроек, которые решают самые популярные задачи и делают ваш шелл просто офигенным. Установим его, следуя инструкциям с официального сайта:
Установка прошла, но ничего не поменялось? Надо закрыть терминал и снова открыть его, чтобы настройки, которые приехали к нам из oh-my-zsh, прочитались и применились. Закрыли-открыли, теперь видим новое приветствие:
Приветствие шелла после установки Oh My ZSH!
Это стандартная тема oh-my-zsh под названием robbyrussell (по имени автора). Мы можем поставить любую из тем, которые поставляются с oh-my-zsh. Я, например, использую Bureau, когда-то я её писала, потому что не нашла подходящей. Чтобы поменять тему, напишите её название (маленькими буквами, как на странице со списком тем) в файле .zshrc . Он лежит в вашей домашней папке ( /Users/Ваш_логин или /home/ваш_логин ). Поскольку он начинается с точки, он скрыт. Включите отображение скрытых файлов. Тему нужно прописать в переменную ZSH_THEME , это в районе восьмой строки, вот так:
Меняем тему в конфиге с помощью переменной ZSH_THEME
Сохраните файл и снова перезапустите терминал (или откройте в нём новую вкладку). Теперь шелл выглядит по-новому:
Тема Bureau в шелле
Это тема Bureau. В верхней строчке сначала имя пользователя, потом имя машины, потом путь к папке, где пользователь сейчас находится. Справа текущее время. В следующей строке просто символы, которые обозначают, что ввод здесь, а справа после шестиугольника текущая версия Node.js, ветка Git (если пользователь сейчас в Git-репозитории), и кружочки, которые обозначают, что есть несохранённые изменения. В этой теме версия Node.js показывается только если вы используете Node Version Manager.
Тема Agnoster в шелле
А это тема Лёши, можете её взять из github и сохранить в папке
/.oh-my-zsh/themes , или установить простой командой:
Не забудьте прописать тему meritt в вашем файле .zshrc .
Да и вообще, полистайте список тем и выберите ту, которая вам по душе. Или склейте свою из кусочков понравившихся тем, или даже напишите с нуля! Все темы лежат в папке
/.oh-my-zsh/themes . Делитесь вашими темами: выкладывайте скриншоты и ссылки на файлы тем.
Источник
Подсветка синтаксиса в терминале
Многие редакторы, ориентированные на программирование, раскрасят исходный код. Есть ли команда, которая раскрасит исходный код для просмотра в терминале?
Я мог бы открыть файл с помощью emacs -nw (который открывается в терминале вместо того, чтобы открывать новое окно), но я ищу что-то, что работает как less (или работает с less -R , который проходит через escape-последовательности цвета при вводе).
На highlight терминале, который поддерживает те же последовательности выхода цвета, что и xterm :
Вы можете также использовать в vim качестве пейджера с помощью macros/less.sh сценария поставляется с vim (см :h less внутри vim подробности):
Или вы можете использовать любой из подсветки синтаксиса, который поддерживает вывод и использование HTML, elinks или w3m как пейджер (или elinks -dump -dump-color-mode 3 | less -R ), как в GNU source-highlight :
Я использую GNU в source-highlight сочетании с less -R этим. Добавьте следующие строки в файл инициализации вашей оболочки (
Это должно автоматически раскрасить исходный код в соответствии с используемым языком и, если это не удастся, он запустится less непосредственно при вводе.
Если вам интересны цвета в less более общем плане, вы можете посмотреть на них lesspipe.sh . Смотрите, например, http://freecode.com/projects/lesspipe .
lesspipe.sh является входным фильтром для пейджера less, как описано в справочной странице less. Сценарий запускается в ksh-совместимой оболочке (например, bash, zsh) и позволяет использовать меньше для просмотра файлов с двоичным содержимым, сжатых файлов, архивов и файлов, содержащихся в архивах.
Он также раскрасит сценарии оболочки, Perl-скрипты и т. Д. Аналогично текстовому редактору, но без использования какой-либо программы «предварительной обработки» для раскрашивания.
Мне нравится простота, и я использую текстовый редактор nano, в этом случае я обычно действую следующим образом:
проверьте наличие синтаксиса ведьмы: ls -la /usr/share/nano/
включить его в мой файл nanorc с помощью следующей команды или вручную
о less я предлагаю посмотреть на этой странице
Согласно предложению Стефана Шазела , я создаю функцию bash, чтобы использовать highlight подсветку show Syntax, помещаю ее в .bashrc или так далее. Работает отлично, быстро и эффективно.
выделить поддержку 202 языковой формат синтаксиса . см highlight —list-scripts=langs .
Вы можете использовать пакет e2ansi , который обеспечивает поддержку подсветки синтаксиса для пейджеров, таких как more и less .
Пакет использует мать всех текстовых редакторов, Emacs , для фактической подсветки синтаксиса. В качестве дополнительного бонуса также выполняются все другие преобразования, обычно выполняемые Emacs, такие как распаковка файлов.
пример
Ниже приведен результат просмотра файла с использованием less и e2ansi :
конфигурация
Пакет предоставляет инструмент командной строки, e2ansi-cat который запускает Emacs в пакетном режиме, открывает файлы, выделяет их синтаксис и отображает результат с использованием последовательностей ANSI.
Вы можете интегрировать это less , установив, например, следующие переменные (расположение вашего файла инициализации может отличаться):
В приведенной выше конфигурации less восстанавливает исходное содержимое окна терминала, тогда как more просто выводит новое содержимое после запроса.
Примечание. Если вы используете старую версию less , она может не поддерживать синтаксис || или — , в этом случае вам может понадобиться просто использовать LESSOPEN=|/usr/local/emacs . .
Использование less в трубах
Символ «-» LESSOPEN указывает на то, что фильтр ввода также должен использоваться при передаче текста в less . В этом случае Emacs может полагаться только на сам текст (а не на имя файла). К счастью, Emacs предоставляет систему для этого. Кроме того, предоставленный файл файла e2ansi-magic.el устанавливает дополнительные типы файлов. Например:
Зачем использовать Emacs?
- Emacs поддерживает практически все языки программирования и форматы структурированного текста. В большинстве случаев поддержка подсветки синтаксиса превосходна.
- Вы можете легко добавить поддержку большего количества языков и форматов или изменить существующие пакеты в соответствии с вашими потребностями.
- Emacs поддерживает цветовые темы. При использовании e2ansi цвета в теме сохраняются при просмотре файла в less . Вы можете выбрать подходящую цветовую тему из нескольких источников или создать свой собственный.
- Если вы используете Emacs в качестве вашего предпочтительного редактора, вы получите ту же подсветку в редакторе, что и при просмотре файла с использованием less (минус ограничения в формате последовательности ANSI и окне терминала).
- less использует возможности Emacs, которые выполняют автоматическое преобразование, например, распаковку файлов. Фактически, вы можете научить Emacs выполнять любые преобразования, такие как автоматическое преобразование двоичного файла в читаемую человеком форму с помощью внешнего инструмента.
- Вы можете просматривать файлы, расположенные на других машинах, используя синтаксис Emacs для удаленного доступа, например /USER@HOST:FILENAME .
Полезные ссылки
- e2ansi распространяется на Melpa и может быть установлен с использованием стандартной системы пакетов Emacs
- e2ansi размещен на GitHub
- e2ansi Страница на Emacs Wiki
- Дом less .
Примечания по операционной системе
В MS Windows консоль не поддерживает последовательности ANSI. К счастью, less приложение способно их визуализировать. Я не знаю ни одного современного бинарного дистрибутива less для MS Windows, и предоставленные файлы сборки сложно использовать. К счастью, это легко построить less с помощью CMake , подробности смотрите в этом тексте .
OS X распространяет древнюю версию less . К счастью, современную версию легко создать прямо из исходного кода.
Источник
Разноцветные терминалы
В этой публикации я расскажу о некоторых трюках, которые украсят будни любого системного администратора Linux (и не только). Все они связаны с переменной PS1 оболочки bash. Переменная PS1 определяет, как будет выглядеть приглашение для ввода новых команд. И каждый пользователь может переопределять её как пожелает, например, в файле
/.bashrc (который выполняется при запуске bash и используется для в том числе для конфигурации).
Для начала рассмотрим простой вариант, мой любимый формат командной строки.
Результат будет вот такой:
Это обычное использование переменной PS1, но если бы я не начал с этого — рассказ был бы неполным. Обычно в переменной PS1 с помощью специальных последовательностей символов определяют формат приглашения для ввода команд. Подробный список этих последовательностей можно почитать в документации к bash, в данном примере:
- \t — вывод «текущего времени», на самом деле это получается время завершения выполнения предыдущей команды, удобно когда перед глазами.
- j\j — выводит символ j и после него количество запущенных job, т.е. процессов в фоне. Это тоже удобно иметь перед глазами чтобы случаем про них не забыть когда соберешься закрыть терминал.
- \u@\h — имя пользователя и название сервера. Если работаете с несколькими серверами через удаленные терминалы — чтобы не путаться.
- \w — после двоеточия — рабочая директория.
- \n — поскольку строка получилась хоть и информативной (что-то вроде статус бара), но длинной, то приглашаем вводить команды с новой строки, а эта верхняя строка будет наглядно отделять от результата работы предыдущей команды.
- \$ — на новой строке будет выводится символ либо $ для обычного пользователя либо # для root’а и отделив его пробелом можно приглашать вводить новую команду.
Казалось бы, чего еще желать… Но дальше будет интереснее. Дело в том, что с помощью специальных управляющих символов можно задавать цвет выводимого текста, цвет курсора и даже переопределять title bar у таких графических терминалов, как Gnome2. И, на мой взгляд, довольно удобно когда цветом отделяются терминалы запущенные на различных серверах. Для меня каждый сервер ассоциируется с каким-то цветом и в этот цвет мы будем красить командную строку и курсор на каждом сервере.
У меня .bashrc разделен на два файла, в самом .bashrc содержится общий код для всех серверов, а в .bash_local — уникальные для этого сервера настройки командной строки. .bash_local я буду вставлять в .bashrc специальной директивой. Начнем с .bash_local. В контексте данной статьи там у меня будут две строчки, которые определяют цвет этого сервера:
Просто заношу коды цвета в переменные. Но, как вы заметили, что способ задания цвета для курсора и для текста командной строки — разный. Почему-то так исторический получилось. Чтобы понять, какой цвет каким кодом кодируется, есть подходящая картинка.
Посредине — обозначение цвета для цвета курсора, снизу — обозначение цвета для текста. Как вы можете увидеть, что я для текста и курсора использую цвет морской волны. Т.к. название сервера petrel («буревестник»), то он ассоциируется у меня с этим цветом.
Теперь .bashrc, тоже показываю его не полностью, а только то что имеет отношение к теме:
Тут я вставляю код из .bash_local в общий файл. Таким образом определяться ранее описанные переменные с цветом сервера.
Еще две переменные определяю с чисто красным цветом, он будет использоваться для маркировки терминалов привелигированного пользователя (root’а).
Тут проверяется какой используется терминал. Для любого неизвестного или неподдерживающего цвета будет использоваться приглашение без цвета (PS1=’\t j\j \u@\h:\w\n\$ ‘) так, как я это описал в начале статьи. Но если имя терминала начинается на xterm или rxvt, например, так себя позиционирует терминал Gnome, начинаем кудесить с цветом. Первая строчка — задаем цвет текста — цвет сервера и выводим первую строку приглашения ввода команд. Она всегда будет окрашена в цвет сервера. Вторая строчка — проверяем, работаем ли мы под непривелигированным или привелигированным пользователем (root’ом). Если root — то переопределяем цвета на красный. Третья строчка — формируем вторую строчку приглашения и определяем цвет курсора в терминале. Т.е. там у нас получится либо $ и через пробел курсор, оба покрашенные в цвет сервера, если пользователь обычный. Либо красный # и через пробел красный курсор, если это root.
А это, если честно, один в один скопированно из первоначального .bashrc от Дебиана. Знаю, что этот код видоизменяет title bar у окна, размещает там информацию об пользователе, сервере и домашней директории. Но поскольку этот код придумал не я, комментировать его не буду.
В результате у нас должно получится так, как на картинке в самом начале публикации.
Источник