Как изменить внешний вид терминала линукс

Все дистрибутивы Linux поставляются с функциональным и кастомизируемым эмулятором терминала. В интернете, а порой даже в самом терминале, есть масса готовых тем,...

Все дистрибутивы Linux поставляются с функциональным и кастомизируемым эмулятором терминала. В интернете, а порой даже в самом терминале, есть масса готовых тем, чтоб он красиво выглядел. Однако, чтоб сделать из стандартного терминала (в любом DE, любого дистрибутива) нечто красивое и одновременно удобное и простое в использовании я потратил много времени. Итак, как же сделать дефолтный терминал удобным и приятным в использовании?

Добавляем функциональность

Командная оболочка

Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?

  • Продвинутая механика автодополнения команд по нажатию <Tab> или <Arrow Up>. В отличие от Bash, вам не нужно это настраивать, все работает на высшем уровне прямо «из коробки».
  • Множество готовых тем, модулей, плагинов и прочего. Настраиваемость через фреймворки (oh-my-zsh, prezto и др.), которые значительно расширяют возможности кастомизации и улучшения терминала. Опять же, всего этого можно добиться и в Bash, но для Zsh масса уже готовых материалов. Для Bash их значительно меньше, а некоторых вовсе нет.

Это основные причины, по которым я перешел с Bash на Zsh. Помимо этого, Zsh имеет много других «плюшек».

Настройка Zsh

Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):

sudo apt install zsh

Когда вам предложат установить Zsh как оболочка по-умолчанию, нажмите Y, чтоб подтвердить.

Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

zsh: command not found: curl

Установите curl:

sudo apt install curl

Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды — выделяться цветом, отличным от обычного текста. Установим плагин zsh-syntax-highlighting:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

zsh: command not found: git

Установите git:

sudo apt install git

Чтоб плагин заработал, его надо подключить.

В файле ~/.zshrc меняем строку с plugins=:

plugins=(git zsh-syntax-highlighting)

Если такой строки нет — добавьте её.

Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.

Настраиваем внешний вид

Устанавливаем тему PowerLevel10K:

git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k

Скачиваем и добавляем в систему шрифт JetBrains Mono Nerd (c иконками):
Выберитеодин из списка, в папке шрифт/complete выберите шрифт без «Windows Compatible», с окончанием «Mono».

Подключаем шрифт и тему.

Редактируем ~/.zshrc.

Если в файле эти строки уже есть — замените их.

  • ZSH_THEME="powerlevel10k/powerlevel10k"
  • POWERLEVEL9K_MODE="nerdfont-complete"

Цвета. Важная часть оформления терминала — цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:

[colors]

# special
foreground      = #e6e6e6
foreground_bold = #e6e6e6
cursor          = #fff
background      = #000

# black
color0  = #75715e
color8  = #272822

# red
color1  = #f92672
color9  = #f92672

# green
color2  = #a6e22e
color10 = #a6e22e

# yellow
color3  = #434648
color11 = #7ea35f

# blue
color4  = #66d9ef
color12 = #66d9ef

# magenta
color5  = #ae81ff
color13 = #ae81ff

# cyan
color6  = #adb3b9
color14 = #62ab9d

# white
color7  = #2AA198
color15 = #2AA198

В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy

Запускаем конфигурацию темы: p10k configure.
Настройте тему, выбирая варианты отображения, которые вам больше нравятся.

Финальный штрих — меняем конфиг темы и заменяем встроенные цвета.

Редактируем файл ~/.p10k.zsh.

Если в файле эти строки уже есть — замените их. Коды цветов можно получить командой

for i in {0..255}; do print -Pn "%K{$i}  %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'n'}; done

  • Отображение только текущей директории:
    typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_last
  • Фон блока с директорией:
    typeset -g POWERLEVEL9K_DIR_BACKGROUND=33
  • Цвета стрелок:
    typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=2

    и

    typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1

  • Фон ветки Git:
    typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=15

Результат

Внешний вид терминала
Ошибка:
Внешний вид ошибки
GIT:
Внешний вид GIT каталога

Источники

Документация PowerLevel10K
Онлайн дизайнер цветовых схем терминала
Различия между Bash и Zsh

The terminal emulator or simply the terminal is an integral part of any Linux distribution.

When you change the theme of your distribution, the terminal often gets a makeover automatically. But that doesn’t mean you cannot customize the terminal further.

Many It’s FOSS readers have asked us how come the terminal in our screenshots or videos look so cool, what fonts do we use, etc.

To answer this frequent question, I’ll show you some simple and some complex tweaks to change the appearance of the terminal. You can compare the visual difference in the image below:

Customizing Linux Terminal

📋

This tutorial utilizes a GNOME terminal on Pop!_OS to customize and tweak the look of the terminal. But, most of the advice should apply to other terminals as well.

For most elements like color, transparency, and fonts, you can utilize the GUI to tweak it without requiring you to enter any special commands.

Open your terminal. In the top right corner, look for the hamburger menu. Here, click on “Preferences” as shown in the screenshot below:

Linux Terminal Preferences

This is where you’ll find all the settings to change the appearance of the terminal.

Tip 0: Use separate terminal profiles for your customization

I would advise you to create a new profile for your customization. Why? Because this way, your changes won’t impact the main terminal profile. Suppose you make some weird changes and cannot recall the default value. Profiles help separate the customization.

As you can see, Abhishek has separate profiles for taking screenshots and making videos.

Terminal Profiles

Terminal Profiles

You can easily change the terminal profiles and open a new terminal window with the new profile.

Change Terminal Profile

Change Terminal Profile

That was the suggestion I wanted to put forward. Now, let’s see those tweaks.

Tip 1: Use a dark/light terminal theme

You may change the system theme and the terminal theme gets changed. Apart from that, you may switch between the dark or light theme, if you do not want to change the system theme.

Once you head into the preferences, you will notice the General options to change the theme and other settings.

Terminal Theme

Tip 2: Change the font and size

Select the profile that you want to customize. Now you’ll get the option to customize the text appearance, font size, font style, spacing, cursor shape, and toggle the terminal bell sound as well.

For changing the terminal font, you can only change to what’s available on your system. If you want something different, download and install the font on your Linux system first.

💡

One more thing! Use monospaced fonts otherwise, fonts might overlap and the text may not be clearly readable. If you want suggestions, go with Share Tech Mono (open source) or Larabiefont (not open source).

Under the Text tab, select Custom font and then change the font and size (if required).

Terminal Customization 1

Tip 3: Change the color pallet and transparency

Apart from the text and spacing, you can access the “Colors” tab and change the color of the text and background of your terminal. You can also adjust the transparency to make it look even cooler.

As you can notice, you can change the color palette from a set of pre-configured options or tweak it yourself.

Terminal Color Customization

If you want to enable transparency just like I did, you click on “Use transparent background” option.

You can also choose to use colors from your system theme if you want a similar color setting to your theme.

Linux Terminal

Tip 4: Tweaking the bash prompt variables

Usually, you will see your username and hostname (your distribution) as the bash prompt when launching the terminal without any changes.

For instance, it would be “ankushdas@pop-os:~$” in my case. However, I permanently changed the hostname to “itsfoss“, so now it looks like this:

Itsfoss Hostname

To change the hostname, you can type in the following:

hostname CUSTOM_NAME

However, this will be applicable only to the current sessions. So, when you restart, it will revert to the default. To permanently change the hostname, you need to type in the following:

sudo hostnamectl set-hostname CUSTOM_NAME

Similarly, you can also change your username, but it requires some additional configuration that includes killing all the current processes associated with the active username, so we’ll avoid it to change the look/feel of the terminal.

Tip 5: Changing the font and color of the bash prompt (for advanced users)

🚧

This is a bit complicated and not recommended for beginners.

You can tweak the font and color of the bash prompt ([email protected]:~$) using commands.

You will need to utilize the PS1 environment variable which controls what is being displayed as the prompt. You can learn more about it on the man page.

For instance, when you type in:

echo $PS1

The output in my case is:

[e]0;[email protected]h: wa]${debian_chroot:+($debian_chroot)}[33[01;32m][email protected]h[33[00m]:[33[01;34m]w[33[00m]$

We need to focus on the first part of the output:

[e]0;[email protected]h: wa]$

Here, you need to know the following:

  • e is a special character that denotes the start of a color sequence
  • u indicates the username followed by the @ symbol
  • h denotes the hostname of the system
  • w denotes the base directory
  • a indicates the active directory
  • $ indicates non-root user

The output in your case can be different, but the variables will be the same, so you need to play with the commands mentioned below depending on your output.

Before you do that, keep these in mind:

  • Codes for text format: 0 for normal text, 1 for bold, 3 for italic and 4 for underline text
  • Color range for background colors: 40-47
  • Color range for text color: 30-37

You just need to type in the following to change the color and font:

PS1="e[41;3;32m[[email protected]h:wa$]"

This is how your bash prompt will look like after typing the command:

Terminal Bash Prompt Customization

If you notice the command properly, as mentioned above, e helps us assign a color sequence.

In the command above, I’ve assigned a background color first, then the text style, and then the font color followed by “m“.

Here, “m” indicates the end of the color sequence.

So, all you have to do is, play around with this part:

41;3;32

The rest of the command should remain the same, you just need to assign different numbers to change the background color, text style, and text color.

Do note that this is in no particular order; you can assign the text style first, background color next, and the text color at the end as “3;41;32“, where the command becomes:

PS1="e[3;41;32m[[email protected]h:wa$]"

Linux Terminal Customization 1s

As you can notice, the color customization is the same no matter the order. So, keep the codes for customization in mind and play around with it until you’re sure you want this as a permanent change.

The above command that I mentioned temporarily customizes the bash prompt for the current session. If you close the session, you will lose the customization.

So, to make this a permanent change, you need to add it to .bashrc file (this is a configuration file that loads up every time you load up a session).

Bashrch Customization Terminal

You can access the file by simply typing:

nano ~/.bashrc

Unless you’re sure what you’re doing, do not change anything. And, just for the sake of restoring the settings back, you should keep a backup of the PS1 environment variable (copy-paste what’s in it by default) to a text file.

So, even if you need the default font and color, you can again edit the .bashrc file and paste the PS1 environment variable.

Bonus Tip: Change the terminal color pallet based on your wallpaper

If you want to change the terminal’s background and text color but are unsure which colors to pick, you can use a Python-based tool, Pywal. It automatically changes the color of the terminal based on your wallpaper or the image you provide to it.

Change Linux terminal color based on wallpaper

If you are interested in using this tool, I have written about it in detail.

Wrapping Up

Of course, it is easy to customize using the GUI while getting better control of what you can change. But, knowing the commands is also necessary in case you start using WSL or access a remote server using SSH; you can customize your experience no matter what.

If you are not much into customizing, you can try using other Linux terminals like Tilix or Terminator.

Top 14 Terminal Emulators for Linux (With Extra Features or Amazing Looks)

Want a terminal that looks cool or has extra features? Here are the best Linux terminal emulators you can get.

It’s FOSSAnkush Das

How do you customize the Linux terminal? Share your secret ricing recipe with us in the comments.

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

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

Ознакомьтесь со следующими советами для быстрого и плавного перехода от вашего старого унылого и тусклого терминала к индивидуальному деревенскому виду.

1. Создайте новый профиль терминала.

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

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

2. Используйте темную / светлую тему терминала.

Если вы не хотите менять тему вашей системы, вы можете вместо этого переключаться между светлой и темной темами терминала. Вы можете просмотреть настройки темы в разделе « Общие» в окне « Настройки» и изменить настройку по своему усмотрению.

Вы найдете опцию Preferences на своем терминале. В правом верхнем углу вашего терминала вы можете получить доступ к гамбургер-меню; оттуда выберите параметр « Настройки» , а затем – « Общие» .

3. Измените тип и размер шрифта.

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

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

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

4. Измените цветовую схему и прозрачность.

Вы уже знаете, как изменить тип, размер и интервал шрифта. Как насчет добавления изюминки в терминал? Вот так; Вы также можете выбрать индивидуальный цветной поддон для своего терминала. Вкладка Цвета в меню поможет вам изменить цвет текста и цвет фона терминала.

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

5. Настройте переменные приглашения Bash.

Обычно имя пользователя, которое вы задаете при установке ОС Linux, отображается вместе с именем хоста в качестве приглашения bash. Например, если ваше имя пользователя user1 и вы используете Ubuntu, приглашение bash по умолчанию будет user1 @ ubuntu .

Если вы хотите изменить имя хоста вашего компьютера, вы можете ввести:

 hostname customname

… где customname – это новое имя хоста, которое вы хотите установить для своей машины.

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

 sudo hostnamectl set-hostname customname

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

6. Измените внешний вид приглашения Bash.

Эта настройка рекомендуется только для опытных пользователей, особенно тех, кто хорошо разбирается в терминале и сценариях bash. Чтобы настроить шрифт и цвет приглашения bash, вы можете использовать команды для выполнения ваших ставок.

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

Например, когда вы вводите:

 echo $PS1

Результат будет примерно таким:

 [e]0;[email protected]: wa]${debian_chroot:+($debian_chroot)}[ 33[01;32m][email protected][ 33[00m]:[ 33[01;34m]w[ 33[00m]$

Сосредоточимся на начальной части вывода:

 [e]0;[email protected]: wa]$

Разберем вышеупомянутую строку:

  • e – специальный символ, обозначающий начало цветовой последовательности
  • u указывает имя пользователя, за которым следует символ ‘ @
  • h демонстрирует имя хоста системы
  • w указывает базовый каталог
  • a представляет активный каталог
  • $ представляет пользователя без полномочий root

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

Имейте в виду следующее:

  1. Код для форматирования текста: 0 для стандартного текста, 1 для полужирного, 3 для курсива и 4 для подчеркнутого текста.
  2. Цветовая гамма фоновых поддонов 40-47.
  3. Цветовой диапазон для цветов текста – 30-37.

Чтобы изменить цвет и шрифт приглашения bash, введите следующее:

 PS1="e[41;3;32m[[email protected]:wa$]"

Помните, этот код только временно регистрирует изменения. Если вам нужны постоянные изменения, вам нужно добавить указанное выше выражение в файл .bashrc . Чтобы получить доступ к файлу, введите:

 nano ~/.bashrc

Pywal, инструмент на основе Python, помогает вам изменить фон терминала и цвет шрифта, особенно если вы не уверены в том, какую цветовую схему использовать. Этот инструмент автоматически изменяет цвет экрана вашего терминала в зависимости от фоновых обоев или изображения. Pywal по-прежнему остается отличным инструментом командной строки, и любой желающий может легко его установить.

Пользователи Arch / Manjaro могут найти пакет python-pywal в официальных репозиториях Arch, что упрощает весь процесс установки.

Чтобы использовать pywal в Ubuntu и других дистрибутивах на основе Debian, вам необходимо сначала установить Python:

 sudo apt install python3-pip

Теперь используйте команду pip3 для установки pywal в вашей системе:

 sudo pip3 install pywal

Чтобы изменить цвета, введите команду wal, указав в качестве входных данных расположение файла обоев:

 wal -i path_to_wallpaper_file

Настройка окна терминала в Linux

Настройка графического пользовательского интерфейса Linux – простой выбор. Именно по этой причине важно поэкспериментировать с некоторыми интересными изменениями и реализовать их в терминале, чтобы добавить индивидуальности макету экрана.

Эти изменения особенно важны, если вы начинаете использовать WSL или планируете получить доступ к удаленному серверу с помощью SSH. Если настройка Linux вам не подходит, вы также можете использовать другие терминалы для упрощения работы.

Если вы освоили Linux и настраиваете под себя, то вам приходится использовать терминал и интерпретатор bash.

Захотелось мне изменить внешний вид терминала, а в частности вид самой командной строки. Оказалось это все не так сложно.

Информации на эту тему очень много.

Итак по порядку, начнем с самого терминала.

Запустим его, выглядит по умолчанию он вот так:

терминал, внешний вид по умолчанию

Запустим терминал и зайдем в меню сверху правка — настройки

терминал, открываем настройки

В настройках терминала вы найдете вкладки Общие, Вид, Цвета — это те вкладки с параметрами которые содержат опции, влияющие на внешний вид вашего терминала.

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

Вкладка настроек вида. Можно поменять шрифт его параметры. Фон сделать прозрачным — например. Задать размеры терминала которым он соотвутствует при запуске.

настройки терминала вкладка Вид

Вкладка цвета.

Думаю понятно из названия, тут вы сможете поменять цветовую схему терминала.

Настройка терминала, вкладка цвета

Теперь перейдем к интерпретатору Bash

Интерпретатор bash — простым языком это оболочка которая принимает ваши команды и передает их системе.

Из википедии:

Bash (от англ. Bourne again shell, каламбур «Born again» shell — «возрождённый» shell) — усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде Linux, где она часто используется в качестве предустановленной командной оболочки.

Представляет собой командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне. Bash также может читать команды из файла, который называется скриптом (или сценарием). Как и все Unix-оболочки, он поддерживает автодополнение имён файлов и каталогов, подстановку вывода результата команд, переменные, контроль над порядком выполнения, операторы ветвления и цикла. Ключевые слова, синтаксис и другие основные особенности языка были заимствованы из sh. Другие функции, например, история, были скопированы из csh и ksh. Bash в основном соответствует стандарту POSIX, но с рядом расширений[3].

В windows тоже есть терминал, который использует интерпретатор shell — более раннюю версию Bash.

По умолчанию выглядит наша строка так

строка терминала со стилями по умолчанию

Вот ее и будем стилизовать — поменяем цвета и вывод информации.

Стиль нашей командной строки определяет конфигурационный файл

~/.bashrc.

Он содержится в нашей домашней директории в скрытом виде, его и будем редактировать.

Но для начала нужно знать, что редактировать.

Поэтому не спешите и дочитайте всю статью до конца, чтоб правильно стилизовать строку интерпретатора bash и не сломать ничего в системе.

Стиль и первоначальную информацию выводит и определяет переменная PS1.

При запуске мы видим имя пользователя и после знака @ идет имя нашего хоста, на конце знак доллара.

Если вы перейдете на работу от имени root (получите полный доступ) на конце строки будет стоять знак #.

И соответственно сменится имя на root.

Параметры переменной PS1 в конфигурационном файле Bash

a an ASCII bell character (07)
d дата в формате »День_недели, Месяц, Число».
e an ASCII escape character (033)
h имя хоста до первой точки.
H имя хоста
j количество задач, работающих в интерпретаторе в настоящее время
l название терминала
n переход на новую строку
r возврат каретки на начало строки
s название интерпретатора (будет выведено, например, «bash»
t время в 24-часовом формате (ЧЧ: MM: СС)
T время в 12-часовом формате (ЧЧ: ММ: СС)
@ время в 12-часовом формате (AM/PM)
u имя активного пользователя
v номер версии bash
V номер версии bash, номер релиза
w текущая директория (будет выведено в формате /path/to/work_dir_name)
W имя текущей директории (будет выведено в формате «dir_name»)
! номер команды в истории
# системный номер команды
$ if the effective UID is 0, a #, otherwise a $
\ обратный слеш
[ начало последовательности непечатаемых символов (см. примеры в разделе «Цвета и стилизация».
] конец последовательности символов
$ ( ) внешняя команда

С помощью этих переменных можно в приветствии вывести время например и т.п.

Если зададим такую переменную, добавим дату к имеющемуся (как пример), убрав все стили

PS1='[u@h] $(date +%m/%d/%y) w $'

Получим такой результат:

строка bash с текущей датой

Чтоб задать стили необходимо знать параметры цветов, которые можно задавать.

Все стили задаются по следующим параметрам:

Стили текста:

Нормальный, обычный текст — 0

Повышенная яркость — 1

Пониженная яркость — 2

Подчеркнутый — 3

Нормальная яркость — 5

Инвертированный 7

Скрытый — 8

Цвета текста:

Черный 30

Красный — 31

Зеленый — 32

Желтый — 33

Синий — 34

Маджента — 35

Циановый — 36

Белый — 37

Цвет фона строки

Черный — 40

Красный — 41

Зеленый — 42

Желтый — 43

Синий — 44

Маджента — 45

Циановый — 46

Белый — 47

Теперь можно поменять строку и стилизовать ее под свой вкус и цвет.

Откроем терминал, и с помощью редактора nano откроем конфигурационный файл, командой

nano ~/.bashrc

В открытом файле мы ничего переделывать не будем, просто спускаемся в самый низ файла и в последней строке дописываем свои собственные стили переменной PS1

Я использовал такие настройки и стили

PS1='[33[01;34m]u: [33[0;33m]w [33[01;32m]$ [33[01;32m] '

редактирование стилей bash

Естественно после внесении изменений сохраняем сочетанием клавиш Ctrl+O и выходим Ctrl+X

Перезапустив терминал видим такой стиль

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

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

Для этого откроем в редакторе nano, так же из терминала файл /root/.bashrc командой

sudo nano /root/.bashrc

И в самом конце добавим свои стили, я использовал вот такие

PS1='[33[01;31m]u: [33[0;35m]w [33[01;32m]$ [33[01;31m]'

Не забываем после внесении изменений сохраняем сочетанием клавиш Ctrl+O и выходим Ctrl+X

По окончанию получаем вот такой результат:

Результат стилизованного bash

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

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

Всем Удачи!

15 сентября 2021

Если вы уже не совсем новичок в Ubuntu и уже немного освоились в своей системе, то, наверное, достаточно часто используете терминал. Современные системы Linux позволяют сделать практически все с помощью графических утилит начиная от установки программного обеспечения, до тонкой настройки системы. Но терминал тоже не теряет свою актуальность. При достаточном уровне знаний, в терминале действия выполняются намного быстрее и эффективнее.

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

Сначала мы рассмотрим как улучшить внешний вид и удобность использования эмулятора терминала, используемого по умолчанию в Ubuntu — Gnome Terminal, а затем рассмотрим как улучшить командную оболочку.

Вы можете запустить терминал из главного меню или нажав сочетание клавиш Ctrl+Alt+T:

terminal

По умолчанию в системе терминал выглядит не очень красиво. Но ситуацию можно исправить с помощью установки другой темы Unity, например, Numix:

terminal12

Но в этой статье будет рассмотрена ручная настройка терминала Ubuntu, без установки тем. Для того чтобы настроить внешний вид терминала откройте контекстное меню, кликнув в любой области терминала, откройте пункт Профили и выберите Параметры профиля:

terminal1

На вкладке основные вы можете настроить размеры окна терминала, а также шрифт:

terminal13

Для настройки шрифта установите галочку использовать другой шрифт и выберите нужный шрифт из списка, например, Dejavu Sans Mono Book:

terminal2

Самая интересная для нас вкладка Цвета, здесь мы выберем нужные нам цвета для окна терминала, а также настроим прозрачность. Но чтобы разблокировать настройку снимите галочку Использовать цвета из системной темы:

terminal3

Здесь можно выбрать одну из существующих цветовых схем, но мне из них не понравилась ни одна, поэтому настроим свою. Нужный цвет в поле цвет текста и цвет фона. У меня это светло серый и темно-серый. Также можно добавить немного прозрачности с помощью ползунка или же просто установить галочку использовать прозрачность системной темы:

terminal5

Теперь терминал выглядит вполне приемлемо, но это еще не все. Хотелось бы еще поговорить о командной оболочке.

Настройка командной оболочки Ubuntu

По умолчанию в Ubuntu используется командная оболочка Bash. Она была изобретена еще в далеких 80х годах для операционной системы Unix в лаборатории Bell Labs. Понятное дело, что с тех пор она была модифицирована и очень сильно улучшена, написана свободная реализация Bash, которую вы сейчас используете и так далее. Но все принципы остались те же.

За это время были разработаны лучшие оболочки, которые предоставляют пользователям намного более дружественный интерфейс и более удобны в использовании и написании скриптов.

Одна из таких оболочек — fish, или Frendly Interactive Shell. Рассмотрим вкратце ее преимущества. Очень важным моментом fish есть полная подсветка синтаксиса, каждая правильно введенная команда выделяется одним цветом, неизвестная другим, а правильный путь к файлу подчеркивается, таким образом, вы сразу понимаете правильно ли набрали команду, еще не нажимая Enter. Также здесь очень удобный поиск ранее введенных команд в истории, достаточно набрать первые несколько символов команды и начать листать кнопкой вверх, чтобы увидеть все ранее вводимые команды, начинающиеся с этих символов. Более того, когда вы начинаете набирать команду, то оболочка предлагает вам последнюю выполненную команду, начинающуюся на такие символы, достаточно нажать стрелку вправо, и команда готова к запуску. Автодополнение здесь намного лучше чем в Bash, fish дополняет не только команды и адреса файлов, но и опции команд, а это может быть очень полезно для новичков.

А про скрипты Fish вообще говорить не стоит, они намного легче и проще. Намного проще осваиваются новичками и легче для опытных пользователей, поскольку скрипты Bash славятся своей сложностью.

Если вы еще не уверенны, нужно ли ставить оболочку Fish в своей системе, вас никто не заставляет удалять Bash, вы можете просто установить fish и проверить ее возможности, может вам тоже понравиться. Настройка консоли Ubuntu должна включать установку нормальной оболочки.

Для установки Fish в Ubuntu наберите:

sudo apt install fish

Протестировать оболочку не заменяя ее для вашего терминала можно просто выполнив:

fish

terminal10

Если же вы хотите, чтобы эта оболочка использовалась по умолчанию, откройте Параметры профиля, и перейдите на вкладку и там отметьте Запускать команду как оболочку входа и Запускать другую команду вместо моей оболочки. Дальше в поле пропишите адрес файла оболочки fish: /usr/bin/fish:

terminal6

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

Для того чтобы изменить приглашение выполните:

set fish_greeting «Have a lot of fun»

Можно не передавать никакой фразы, и тогда приглашение останется пустым.

В Fish нет файла .bashrc. Но зато есть каталог с настройками и функциями ~/.config/fish/. Там вы найдете все функции, которые могут вызываться из оболочки, а также можете добавить туда свои функции, например создадим алиас для команды rm с помощью функции:

vi .config/fish/functions/rm.fish

function rmi
rm -i $argv
end

funcsave rmi

Конечно, как и раньше осталась возможность использовать команду:

alias rmi "rm -i"

Ее нужно добавить в конец файла .config/fish/config.fish

Еще одной замечательной особенностью этой оболочки есть возможность настройки через графический интерфейс. Просто наберите:

fish_config

terminal8

В открывшимся окне браузера вы можете очень просто настроить общую цветовую схему, а также формат приветствия не вникая в термины bash и коды цветов.

Выводы

Настройка терминала Ubuntu достаточно важное занятие, и важно сделать все как нужно, чтобы вам было удобно работать в системе. В этом вам поможет красивый интерфейс эмулятора терминала, а также функциональная и очень настраиваемая оболочка fish. В нашей статье мы затронули лишь часть возможных настроек, более подробную информацию вы можете найти в официальной документации. Если у вас остались вопросы, спрашивайте в комментариях!

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Если у вас 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 в Ubuntu и Debian

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

Ввод пароля при смене шелла

Ввод пароля при смене шелла

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

Смена оболочки по умолчанию

Смена оболочки по умолчанию

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

Приветствие от zsh

Приветствие от 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!

Приветствие шелла после установки Oh My ZSH!

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

Меняем тему в конфиге с помощью переменной ZSH_THEME

Меняем тему в конфиге с помощью переменной ZSH_THEME

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

Тема Bureau в шелле

Тема Bureau в шелле

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

Тема Agnoster в шелле

Тема Agnoster в шелле

А это тема Лёши, можете её взять из 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.

Перевод статьи «Configure a beautiful terminal on Unix with Zsh», автор – Deepu K Sasidharan. Перевод опубликован на сайте hexx.in.ua.

Терминал с оболочкой zsh

На протяжении довольного долгого времени я был пользователем Windows, причем совершенно довольным. Но я – разработчик, и в Windows мне не хватало многих вещей. Основная из них – приятная работа с терминалом. Я не фанат закрытой экосистемы Apple, поэтому для меня логичным выбором стал Linux, на который я и перешел почти 3 года назад. Начал я с Ubuntu, а потом выбрал Fedora, и теперь это моя основная операционная система. О моих настройках машины и системы можно почитать здесь.

Я разработчик-senior и лидер open source сообщества, я провожу много времени, работая с терминалом. А если работа с терминалом приятная, это сразу делает вас счастливее и продуктивнее. Дефолтный bash-терминал годится для новичков, но если вы хотите по-настоящему мощный терминал, вам нужно что-то большее, чем bash.

Давайте посмотрим, как можно настроить терминал для продуктивной работы. Я расскажу о настройках, который у меня стоят на моей машине с Fedora. Но то же самое можно воспроизвести в любом дистрибутиве Linux, BSD или на Mac. Надо только найти соответствующие инструкции по установке инструментов.

Итак, список инструментов.

Zsh

Zsh – одна из наиболее полнофункциональных командных оболочек для Unix. Она работает в Linux, Mac, WSL и BSD. Есть альтернативные варианты с похожим функционалом, например Fish, но лично мне нравится Zsh.

1. Проверьте, не установлена ли у вас Zsh. Для этого запустите в терминале команду zsh –version. Если ничего не найдено, установите оболочку, используя свой менеджер пакетов.

  • Fedora: sudo dnf install zsh
  • Mac: brew install zsh zsh-completions
  • RHEL / CentOS: sudo yum update && sudo yum -y install zsh
  • Ubuntu / Debian: sudo apt install zsh
  • Инструкции для других платформ можно найти по ссылке.

2. Теперь сделайте Zsh вашей дефолтной оболочкой, запустив chsh -s $(which zsh).

3. Выйдите из системы и войдите заново (log out / log in), чтобы в дальнейшем использовать вашу новую дефолтную оболочку.

Проверьте, успешно ли прошла смена оболочки, выполнив команду echo $SHELL. Ожидаемый результат – /bin/zsh или что-то подобное.

5. Протестируйте еще раз, проверив версию оболочки: $SHELL --version. Ожидаемый результат – нечто вроде zsh 5.6.2.

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

Oh-My-Zsh

Oh-My-Zsh дает оболочке Zsh суперсилу. Это фреймворк для управления настройками Zsh. В нем есть плагины и темы для Zsh (много).

С Github-страницы Oh-My-Zsh:

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

Просто установите этот фреймворк. Поверьте, он вам нужен 🙂

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Эмулятор терминала

При желании вы можете использовать эмулятор терминала с управлением окнами и панелями.

Для Linux я бы посоветовал Tilix. Я пользуюсь им три года, и могу сказать, что он просто великолепен.

Для Mac можно выбрать iTerm2, он очень популярен.

Если хотите что-то более легкое для своего терминала на Linux, BSD и Mac, можно остановиться на tmux.

Настройка Zsh

Переходим к наиболее интересной части. Давайте сделаем наш терминал звездой.

Установите плагины

Сначала давайте установим несколько дополнительных плагинов, которые не входят в Oh-My-Zsh.

zsh-autosuggestions

Добавляет автозаполнения для shell-команд.

Для установки запустите

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
zsh-syntax-highlighting

Подсветка синтаксиса в оболочке.

Для установки запустите

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
autojump

Умнее система навигации по директориям. Инструкции по установке для вашей операционной системы можно найти здесь.

Теперь давайте внесем определенные настройки в конфигурационный файл ~/.zshrc. Здесь вы найдете мой файл .zshrc. Ваш может отличаться.

Добавьте экспорты

Начнем с нескольких.

export TERM="xterm-256color" # This sets up colors properly
 
# set shell
export SHELL=/usr/bin/zsh
 
# If you come from bash you might have to change your $PATH.
export NODE_PATH=$NODE_PATH:$HOME/.npm-global/lib/node_modules
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:~/.npm-global/bin:$HOME/bin:/usr/local/bin:$PATH
 
# Add exports from your profile
source ~/.profile
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh

Настройка Zsh

Теперь давайте внесем некоторые настройки, специфичные для Zsh.

DISABLE_MAGIC_FUNCTIONS=true
ZSH_AUTOSUGGEST_MANUAL_REBIND=1
COMPLETION_WAITING_DOTS=true
DISABLE_UNTRACKED_FILES_DIRTY=true

Тема Zsh

Давайте выберем хорошую тему. Я пользуюсь powerlevel10k, она быстрая и хорошо выглядит. Вы можете оставить дефолтную тему или любую из списка. Если вам нравится моя тема, обратите внимание на советы Романа Перепелицы.

Для установления темы запустите

git clone https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes

Установите Powerline font. Я пользуюсь Adobe Source Code Pro.

Добавьте следующие конфигурации в файл ~/.zshrc

# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="powerlevel10k/powerlevel10k"
 
############ POWERLEVEL THEME SETTINGS ##############
POWERLEVEL9K_MODE='awesome-fontconfig'
 
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs nvm)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(disk_usage time)
 
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_SHOW_RULER=true
POWERLEVEL9K_RULER_CHAR='─'
POWERLEVEL9K_RULER_BACKGROUND=none
POWERLEVEL9K_RULER_FOREGROUND=237
 
POWERLEVEL9K_LEFT_SEGMENT_END_SEPARATOR=
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR=
POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR=' '
POWERLEVEL9K_RIGHT_SEGMENT_END_SEPARATOR=
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=
POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR=
POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS=
 
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_middle"
 
POWERLEVEL9K_DIR_SHOW_WRITABLE=true
 
POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=none
POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=magenta
POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=red
POWERLEVEL9K_TIME_BACKGROUND=none
POWERLEVEL9K_TIME_FOREGROUND=white
 
POWERLEVEL9K_DIR_HOME_BACKGROUND=none
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND=none
POWERLEVEL9K_DIR_ETC_BACKGROUND=none
POWERLEVEL9K_DIR_DEFAULT_BACKGROUND=none
POWERLEVEL9K_DIR_NOT_WRITABLE_BACKGROUND=none
 
POWERLEVEL9K_DIR_HOME_FOREGROUND=blue
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND=blue
POWERLEVEL9K_DIR_ETC_FOREGROUND=blue
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND=blue
POWERLEVEL9K_DIR_NOT_WRITABLE_FOREGROUND=red
 
POWERLEVEL9K_OS_ICON_BACKGROUND="white"
POWERLEVEL9K_OS_ICON_FOREGROUND="blue"
 
POWERLEVEL9K_VCS_GIT_ICON='%fon %F{040}uf1d3 '
POWERLEVEL9K_VCS_GIT_GITHUB_ICON='%fon %F{040}uf09b '
POWERLEVEL9K_VCS_GIT_BITBUCKET_ICON='%fon %F{040}uf171 '
POWERLEVEL9K_VCS_GIT_GIT_GITLAB_ICON='%fon %F{040}uf296 '
 
POWERLEVEL9K_VCS_CLEAN_BACKGROUND=none
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=none
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=none
POWERLEVEL9K_VCS_LOADING_BACKGROUND=none
POWERLEVEL9K_VCS_CLEAN_FOREGROUND="040"
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND="red"
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND="yellow"
POWERLEVEL9K_VCS_LOADING_FOREGROUND="grey"
 
POWERLEVEL9K_VCS_UNTRACKED_ICON=$'%{b?%}'
POWERLEVEL9K_VCS_UNSTAGED_ICON=$'%{b!%}'
POWERLEVEL9K_VCS_STAGED_ICON=$'%{b+%}'
 
POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_COLOR=red
POWERLEVEL9K_LOCK_ICON=$'uf023'
 
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=''
local p='%F{ %(?.green.red)}${${${KEYMAP:-0}:#vicmd}:+❯}${${$((!${#${KEYMAP:-0}:#vicmd})):#0}:+❮}%f '
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="$p"
 
POWERLEVEL9K_NVM_BACKGROUND=none
POWERLEVEL9K_NVM_FOREGROUND=green
POWERLEVEL9K_NODE_ICON='%fvia %F{green}⬢'
 
############ END- POWERLEVEL THEME SETTINGS ##############

Включите плагины

Мы можем завершить настройку, включив плагины и некоторые опции.

plugins=(zsh-autosuggestions git docker docker-compose autojump zsh-syntax-highlighting dnf npm)
 
source $ZSH/oh-my-zsh.sh

Все готово. Открывайте новую сессию терминала и наслаждайтесь.

Возможные проблемы и их решение

Если вы используете эмулятор терминала Tilix, вам может понадобиться еще кое-что. Добавьте это в файл ~/.zshrc

if [[ $TILIX_ID ]]; then
        source /etc/profile.d/vte.sh
fi

Если вы получаете сообщения об ошибках от плагина zsh-completion, можно добавить вот это в начале вашего файла ~/.zshrc

# workaround as per https://superuser.com/questions/1222867/zsh-completion-functions-broken
FPATH=$HOME/.oh-my-zsh/plugins/git:$HOME/.oh-my-zsh/functions:$HOME/.oh-my-zsh/completions:/usr/share/zsh/site-functions:/usr/share/zsh/$ZSH_VERSION/functions
 
export FPATH

Если вы получите ошибку от Oh-My-Zsh, где сказано [oh-my-zsh] Insecure completion-dependent directories detected, установите ZSH_DISABLE_COMPFIX=true непосредственно перед строкой source $ZSH/oh-my-zsh.sh в вашем файле ~/.zshrc и перезагрузите сессию или запустите exec zsh.

Докеризованная игровая площадка

Если у вас установлен Docker, вы можете использовать этот сниппет, чтобы попробовать настройки в песочнице, ничего не устанавливая и не касаясь текущих настроек.

docker run -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -e TERM=$TERM -it --rm ubuntu bash -uexc '
  apt update &amp;&amp; apt install -y git curl zsh autojump &amp;&amp; cd /root
  sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" --skip-chsh --unattended
  git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  git clone https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
  curl -fsSLO http://bit.ly/Spaceship10kTheme
  echo "source ~/Spaceship10kTheme" >~/.zshrc
  exec zsh'

Совет для пользователей VSCode

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

  • Загрузите и установите patched font.
  • В Linux запустите fc-cache -f -v для обновления кэша шрифтов.
  • В VSCode откройте Preferences → Settings и нажмите на иконку {}, чтобы открыть JSON. установите там следующие правила:
"terminal.integrated.shell.linux": "/usr/bin/zsh",
"terminal.integrated.fontFamily": "'SauceCodePro Nerd Font Mono','Source Code Pro'",
"terminal.integrated.rightClickCopyPaste": true,
"terminal.integrated.fontSize": 14,
"terminal.integrated.cursorStyle": "underline",
"terminal.integrated.cursorBlinking": true

Если у вас Mac, замените linux на osx.

Надеюсь, вам понравится результат.

Содержание

  1. Делаем Linux терминал красивым и удобным
  2. Добавляем функциональность
  3. Командная оболочка
  4. Настройка Zsh
  5. Настраиваем внешний вид
  6. Делаем Linux терминал красивым и удобным
  7. Добавляем функциональность
  8. Командная оболочка
  9. Настройка Zsh
  10. Настраиваем внешний вид
  11. Делаем Linux терминал удобнее и красивее
  12. Настройка красивого терминала Unix с оболочкой Zsh
  13. Oh-My-Zsh
  14. Эмулятор терминала
  15. Настройка Zsh
  16. Установите плагины
  17. Добавьте экспорты
  18. Настройка Zsh
  19. Тема Zsh
  20. Включите плагины
  21. Возможные проблемы и их решение
  22. Докеризованная игровая площадка
  23. Совет для пользователей VSCode
  24. Как сделать красивую консоль в Mac и Linux

Делаем Linux терминал красивым и удобным

Добавляем функциональность

Командная оболочка

Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?

Настройка Zsh

Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):

Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:

Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды — выделяться цветом, отличным от обычного текста. Установим плагин zsh-syntax-highlighting :

Чтоб плагин заработал, его надо подключить.

/.zshrc меняем строку с plugins= :

Если такой строки нет — добавьте её.

Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.

Настраиваем внешний вид

Скачиваем и добавляем в систему шрифт JetBrains Mono Nerd (c иконками):
Выберитеодин из списка, в папке шрифт/complete выберите шрифт без «Windows Compatible», с окончанием «Mono».

Подключаем шрифт и тему.

Если в файле эти строки уже есть — замените их.

Цвета. Важная часть оформления терминала — цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:

В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy

Финальный штрих — меняем конфиг темы и заменяем встроенные цвета.

Если в файле эти строки уже есть — замените их. Коды цветов можно получить командой

Источник

Делаем Linux терминал красивым и удобным

Все дистрибутивы Linux поставляются с функциональным и кастомизируемым эмулятором терминала. В интернете, а порой даже в самом терминале, есть масса готовых тем, чтоб он красиво выглядел. Однако, чтоб сделать из стандартного терминала (в любом DE, любого дистрибутива) нечто красивое и одновременно удобное и простое в использовании я потратил много времени. Итак, как же сделать дефолтный терминал удобным и приятным в использовании?

Добавляем функциональность

Командная оболочка

Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?

Настройка Zsh

Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):

Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:

Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды — выделяться цветом, отличным от обычного текста. Установим плагин zsh-syntax-highlighting :

Чтоб плагин заработал, его надо подключить.

/.zshrc меняем строку с plugins= :

Если такой строки нет — добавьте её.

Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.

Настраиваем внешний вид

Устанавливаем тему PowerLevel10K:

Скачиваем и добавляем в систему шрифт JetBrains Mono Nerd (c иконками):
Выберитеодин из списка, в папке шрифт/complete выберите шрифт без «Windows Compatible», с окончанием «Mono».

Подключаем шрифт и тему.

Если в файле эти строки уже есть — замените их.

Цвета. Важная часть оформления терминала — цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:

В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy

Финальный штрих — меняем конфиг темы и заменяем встроенные цвета.

Если в файле эти строки уже есть — замените их. Коды цветов можно получить командой

Источник

Делаем Linux терминал удобнее и красивее

0010 c

Идея статьи возникла только лишь в связи с ленью осваивать Tmux Terminal Multiplexer и ставить дополнительную надстройку к терминалу кали, дабы “сплитить” 1 сессию терминала на “мультиокна”. Не навязываю никому свою идею, но считаю ее более удобной в реализации процесса автоматизации работы с терминалом в довесок с плюшками и красивостями zsh. Кто знает устанавливая tnux нужно еще подключать курсор, делать замыкание активного акна при копировании строки в буфер обмена и много других совершенно не нужных манипуляций.

Итак, устанавливаем Deepin Ternimal который с недавних пор идет в составе репозиториев Кали Линукса

deepinterminal

Затем открываем его и смотрим настройки:

deepinterminal prefs

Как мы видим управление слитами экрана уже с коробки, так же вкладки, которые можно переименовывать и мн. др, в том числе темы.

deepinterminal split

Дальше делаем его немного удобнее и красивее с помощью zsh

Делаем его основным окружением шела:

Устанавливаем надстройку Oh My zsh

Ставим шрифты для красивостей

Затем меняем тему оформления и ставим плагины:

в разделе ZSH_THEME= меняем на “agnoster

Плагин подсветки текста:

Плагин автоподстановки текста:

Дополняем строку конфигуратора в разделе plugins=(git extract web-search yum git-extras docker vagrant zsh-syntax-highlighting zsh-autosuggestions)

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

Если хотите убрать хостнейм то в конфигурации прописываете так prompt_context() <>

Для применения внесенных изменений в активной консоли пишем

Ну и в довесок, у кого не прописан путь исплавляем это

Источник

Настройка красивого терминала Unix с оболочкой Zsh

Перевод статьи «Configure a beautiful terminal on Unix with Zsh», автор – Deepu K Sasidharan. Перевод опубликован на сайте hexx.in.ua.

На протяжении довольного долгого времени я был пользователем Windows, причем совершенно довольным. Но я – разработчик, и в Windows мне не хватало многих вещей. Основная из них – приятная работа с терминалом. Я не фанат закрытой экосистемы Apple, поэтому для меня логичным выбором стал Linux, на который я и перешел почти 3 года назад. Начал я с Ubuntu, а потом выбрал Fedora, и теперь это моя основная операционная система. О моих настройках машины и системы можно почитать здесь.

Я разработчик-senior и лидер open source сообщества, я провожу много времени, работая с терминалом. А если работа с терминалом приятная, это сразу делает вас счастливее и продуктивнее. Дефолтный bash-терминал годится для новичков, но если вы хотите по-настоящему мощный терминал, вам нужно что-то большее, чем bash.

Давайте посмотрим, как можно настроить терминал для продуктивной работы. Я расскажу о настройках, который у меня стоят на моей машине с Fedora. Но то же самое можно воспроизвести в любом дистрибутиве Linux, BSD или на Mac. Надо только найти соответствующие инструкции по установке инструментов.

fhwstp9251al105hp899

Итак, список инструментов.

Zsh – одна из наиболее полнофункциональных командных оболочек для Unix. Она работает в Linux, Mac, WSL и BSD. Есть альтернативные варианты с похожим функционалом, например Fish, но лично мне нравится Zsh.

1. Проверьте, не установлена ли у вас Zsh. Для этого запустите в терминале команду zsh –version. Если ничего не найдено, установите оболочку, используя свой менеджер пакетов.

3. Выйдите из системы и войдите заново (log out / log in), чтобы в дальнейшем использовать вашу новую дефолтную оболочку.

Oh-My-Zsh

Oh-My-Zsh дает оболочке Zsh суперсилу. Это фреймворк для управления настройками Zsh. В нем есть плагины и темы для Zsh (много).

С Github-страницы Oh-My-Zsh:

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

Просто установите этот фреймворк. Поверьте, он вам нужен 🙂

Эмулятор терминала

При желании вы можете использовать эмулятор терминала с управлением окнами и панелями.

Для Linux я бы посоветовал Tilix. Я пользуюсь им три года, и могу сказать, что он просто великолепен.

Для Mac можно выбрать iTerm2, он очень популярен.

Если хотите что-то более легкое для своего терминала на Linux, BSD и Mac, можно остановиться на tmux.

Настройка Zsh

Переходим к наиболее интересной части. Давайте сделаем наш терминал звездой.

Установите плагины

Сначала давайте установим несколько дополнительных плагинов, которые не входят в Oh-My-Zsh.

zsh-autosuggestions

Добавляет автозаполнения для shell-команд.

Для установки запустите

zsh-syntax-highlighting

Подсветка синтаксиса в оболочке.

Для установки запустите

autojump

Умнее система навигации по директориям. Инструкции по установке для вашей операционной системы можно найти здесь.

Теперь давайте внесем определенные настройки в конфигурационный файл

Добавьте экспорты

Начнем с нескольких.

Настройка Zsh

Теперь давайте внесем некоторые настройки, специфичные для Zsh.

Тема Zsh

Давайте выберем хорошую тему. Я пользуюсь powerlevel10k, она быстрая и хорошо выглядит. Вы можете оставить дефолтную тему или любую из списка. Если вам нравится моя тема, обратите внимание на советы Романа Перепелицы.

Для установления темы запустите

Добавьте следующие конфигурации в файл

Включите плагины

Мы можем завершить настройку, включив плагины и некоторые опции.

Все готово. Открывайте новую сессию терминала и наслаждайтесь.

Возможные проблемы и их решение

Если вы используете эмулятор терминала Tilix, вам может понадобиться еще кое-что. Добавьте это в файл

Если вы получаете сообщения об ошибках от плагина zsh-completion, можно добавить вот это в начале вашего файла

Докеризованная игровая площадка

Если у вас установлен Docker, вы можете использовать этот сниппет, чтобы попробовать настройки в песочнице, ничего не устанавливая и не касаясь текущих настроек.

Совет для пользователей VSCode

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

Источник

Как сделать красивую консоль в Mac и Linux

20170111 04e24940 60

Если у вас OS X, поставьте iTerm2, он лучше стандартного Terminal.app. Если у вас Linux, то у вас наверняка уже есть неплохой терминал, или вы можете самостоятельно поставить любой, который вам нравится. Я вот люблю Sakura. Ещё я обычно меняю цветовую схему. Стандартные чёрные мне не очень нравятся, есть крутая схема Solarized. Как её устанавливать тоже зависит от вашего терминала.

Теперь настроим непосредственно шелл. Шелл — это оболочка, в которой выполняются команды. Он показывает вам так называемое приглашение, оно обычно состоит из имени пользователя, имени компьютера и пути к тому месту, где вы сейчас находитесь. И выполняет команды, которые вы в него вводите. Стандартный шелл выглядит так:

bashСтандартное приглашение в шелле

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

install zshУстановка zsh в Ubuntu и Debian

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

chshВвод пароля при смене шелла

chsh resultСмена оболочки по умолчанию

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

zsh helloПриветствие от zsh

Мы, ничего не делая, выйдем (нажмём q ), потому что знаем секрет. Секрет в том, что не нужно писать длинный конфиг, если вы новый пользователь: частые проблемы и хотелки уже решили другие, и родилась такая замечательная штука — Oh My ZSH. Это набор плагинов и настроек, которые решают самые популярные задачи и делают ваш шелл просто офигенным. Установим его, следуя инструкциям с официального сайта:

Установка прошла, но ничего не поменялось? Надо закрыть терминал и снова открыть его, чтобы настройки, которые приехали к нам из oh-my-zsh, прочитались и применились. Закрыли-открыли, теперь видим новое приветствие:

robbyrussellПриветствие шелла после установки Oh My ZSH!

zshrcМеняем тему в конфиге с помощью переменной ZSH_THEME

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

bureauТема Bureau в шелле

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

merittТема Agnoster в шелле

А это тема Лёши, можете её взять из github и сохранить в папке

Да и вообще, полистайте список тем и выберите ту, которая вам по душе. Или склейте свою из кусочков понравившихся тем, или даже напишите с нуля! Все темы лежат в папке

Источник

On certain XTerm/ANSI-compatible terminals (like xterm and gnome-terminal), you can set colors using a palette bigger then the default 8/16-colors palette (for example using an 88-colors, 256-colors or 16777216-colors (RGB) palette; both xterm and gnome-terminal support both the 256-colors and the 16777216-colors (RGB) palette); mind that the shell might override this (this is the case e.g. for zsh).

Here’s a script to list the colors in the 256-color palette along with their ANSI color code in XTerm/ANSI-compatible terminals with a 256-color palette support:

#!/bin/bash
for((i=16; i<256; i++)); do
    printf "e[48;5;${i}m%03d" $i;
    printf 'e[0m';
    [ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf 'n'
done

screenshot1

screenshot

Depending on whether you want to apply the color to the foreground or to the background, use an <fg_bg> value of 38 or 48 (respectively) in the following command:

printf 'e[<fg_bg>;5;<ANSI_color_code>m'

For example, to set the foreground color (<fg_bg>=38) to red (<ANSI_color_code>=196) and the background color (<fg_bg>=48) to black (<ANSI_color_code>=0):

printf 'e[38;5;196m Foreground color: redn'
printf 'e[48;5;0m Background color: blackn'

screenshot3

It’s necessary to redraw the prompt using printf 'e[K' in order for the background color to apply to the whole line and in order for the foreground color to apply to the cursor:

screenshot4

The same thing can be accomplished using RGB values instead of ANSI color codes in a compatible terminal; depending on whether you want to apply the color to the foreground or to the background, use an <fg_bg> value of 38 or 48 (respectively) in the following command:

printf 'e[<fg_bg>;2;<R>;<G>;<B>m'

For example, to set the foreground color (<fg_bg>=38) to red (<R>=255, <G>=0, <B>=0) and the background color (<fg_bg>=48) to black (<R>=0, <G>=0, <B>=0):

printf 'e[38;2;255;0;0m Foreground color: redn'
printf 'e[48;2;0;0;0m Background color: blackn'

screenshot5

Again, it’s necessary to redraw the prompt using printf 'e[K' in order for the background color to apply to the whole line and in order for the foreground color to apply to the cursor:

screenshot6

Using either methods, you can use printf 'e[0m' to reset all the attributes:

screenshot7

Понравилась статья? Поделить с друзьями:
  • Как изменить внешний вид телеграмм на андроид
  • Как изменить внешний вид телеграм на пк
  • Как изменить внешний вид текста
  • Как изменить внешний вид танка wot
  • Как изменить внешний вид сумки