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

Введение

Для работы в Ubuntu пользователь может выбрать один из двух возможных вариантов интерфейса: графический либо интерфейс командной строки. Графический интерфейс (GUI — Graphical user interface) знаком большинству пользователей, в нем для выполнения действий нужно использовать различные элементы рабочего стола. Он имеет свои преимущества, которые выражаются главным образом в удобном и привычном формате подачи информации, а также в отсутствии необходимости знать какие-либо команды.

Однако многие пользователи Linux предпочитают работать в командной строке (CLI, Command Line Interface). Как правило, эти пользователи так или иначе связаны с программированием или системным администрированием, тем не менее знание основ bash будет полезно всем пользователям. Командная строка позволяет выполнять команды значительно быстрее, чем при использовании GUI, при этом экономит ресурсы. Более того, зачастую команды не имеют своих аналогов в графическом интерфейсе и, благодаря этому, дают значительную свободу пользователям в своих действиях. При этом интерфейс командной строки встроен в ядро операционной системы, а значит, он доступен даже тогда, когда вы не можете воспользоваться графической оболочкой. Сами же команды одинаковы для всех операционных систем на базе Linux, будь то Ubuntu, CentOs, Fedora или какая-либо другая.

Изменение приглашения bash

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

Или более краткий вариант:

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

Примечание: Расширение .bak (от англ. «backup») сообщает нам, что файл является резервной копией.

Изменение приглашения bash на постоянку

Откройте для редактирования файл конфигурации bash:

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

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

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

Сохраните файл (сочетание клавиш Ctrl+O, и затем Enter) и выйдите из редактора (Ctrl+X).

Обновите bash, чтобы применить изменения:

В результате наших манипуляций приглашение оболочки должно измениться на следующее:

Временное изменение приглашения bash

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

Давайте зададим такой вид приглашения, при котором будет отображаться только имя пользователя:

В результате, приглашение оболочки должно немедленно принять вот такую форму:

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

Как изменить цвета в строке приглашения

Элементы строки приглашения можно раскрашивать в разные цвета.

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

Используется следующий синтаксис:\e[X;YmРАСКРАШИВАЕМАЯ_СТРОКА\e[m

\e[ — начало цветовой схемы.X;Ym — цветовая пара (X;Y). Именно значения X и Y определяют цвет.\e[m — окончание цветовой схемы.

Небольшой пример, чтобы вы понимали о чем идет речь. Раскрасим всю строку целиком цветом с обозначением 0;36.

Цвета задаются числами. Можно задавать парой X;Y или просто Y. Например, красный это — 0;31 или просто 31. Есть и другие способы задания цветов, но в данной статье мы их не рассматриваем.

Список цифровых обозначений для цветов (Y):

Цвет Числовоеобозначение
Black 30
Red 31
Green 32
Brown 33
Blue 34
Purple 35
Cyan 36
Light gray 37
Dark gray 90
Light red 91
Light green 92
Light yellow 93
Light blue 94
Light magenta 95
Light cyan 96
White 97

При задании цвета двумя числами X;Y, первое число X принимает следующие значения:0 — обычный цвет;1 — будет использоваться более яркий цвет;2 — более темный цвет;3 — курсив;4 — подчеркивание;5 — моргание.

Просмотр текущих значений

Для начала нужно ознакомиться с текущими настройками конфигурационных файлов bash.

Командная строка bash настраивается с помощью переменных среды PS1 и PS2. PS1 определяет текст приглашения оболочки; именно его вы видите при входе в систему. В Ubuntu по умолчанию этот текст выглядит так:

Символ $ в конце строки указывает, что эта строка принадлежит обычному пользователю. Командная строка пользователя root отличается, она оканчивается символом #.

PS2 настраивает многострочные команды. Чтобы узнать текущее значение переменной PS2, введите:

Нажмите Enter. На экране появится текущее значение переменной; по умолчанию в Ubuntu это >.

Как правило, эти переменные хранятся в файле ~/.bashrc, который система читает при запуске интерактивной оболочки.

В Ubuntu 12.04 в этом файле есть такой раздел:

Чтобы настроить цветную командную строку, раскомментируйте параметр:

Теперь нужно установить настройки командной строки. Они размещаются в блоке if-else:

Верхняя часть кода включает поддержку цвета.

Для примера разберём следующую строку:

Она выглядит довольно сложно и содержит непонятные компоненты.

Строки, содержащие debian_chroot, означают, что при работе в окружении chroot командная строка напомнит вам об этом. Это очень полезная функция.

Остальное определение командой строки выглядит так:

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

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

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

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

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

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

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

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

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

Обёртки

Универсальные обёртки

(многие давно не обновлялись, но всё ещё работают)

Они поставляются с предварительно настроенными пресетами. Пресеты можно менять, можно создавать новые.

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

rainbow — раскрашивает вывод команд или STDIN по паттернам.Пресеты: df, diff, env, host, ifconfig, java-stack-trace, jboss, jonas, md5sum, mvn2, mvn3, ping, tomcat, top, traceroute.

grc — ещё один раскрашиватель для украшения ваших лог-файлов или вывода команд.Пресеты: cat, cvs, df, digg, gcc, g++, ls, ifconfig, make, mount, mtr, netstat, ping, ps, tail, traceroute, wdiff, blkid, du, dnf, docker, docker-machine, env, id, ip, iostat, last, lsattr, lsblk, lspci, lsmod, lsof, getfacl, getsebool, ulimit, uptime, nmap, fdisk, findmnt, free, semanage, sar, ss, sysctl, systemctl, stat, showmount, tune2fs and tcpdump.

colorlogs — раскрашивает вывод команд или STDIN по паттернам.Пресеты: logs, git status, ant, maven.

cope — раскрашивающая обёртка для консольных программ.Пресеты: acpi, arp, cc, df, dprofpp, fdisk, free, g++, gcc, id, ifconfig, ls, lspci, lsusb, make, md5sum, mpc, netstat, nm, nmap, nocope, ping, pmap, ps, readelf, route, screen, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, shasum, socklist, stat, strace, tcpdump, tracepath, traceroute, w, wget, who, xrandr.

cw — ненавязчивая обёртка для популярных unix-команд. Оборачивает file, что может вызывать проблемы.Пресеты: arp, arping, auth.log@, blockdev, cal, cksum, clock, configure, cpuinfo@, crontab@, cw-pipe, cw-test.cgi, date, df, diff, dig, dmesg, du, env, figlet, file, find, finger, free, fstab@, fuser, g++, gcc, group@, groups, hdparm, hexdump, host, hosts@, id, ifconfig, inittab@, iptables, last, lastlog, lsattr, lsmod, lsof, ltrace-color, make, md5sum, meminfo@, messages@, mount, mpg123, netstat, nfsstat, nmap, nslookup, objdump, passwd@, ping, pmap, pmap_dump, praliases, profile@, protocols@, ps, pstree, quota, quotastats, resolv.conf@, route, routel, sdiff, services@, showmount, smbstatus, stat, strace-color, sysctl, syslog, tar, tcpdump, tracepath, traceroute, umount, uname, uptime, users, vmstat, w, wc, whereis, who, xferlog.

ccze — быстрая раскраска журнала, написан на C, предназначен для замены colorize

Библиотеки для раскраски вывода

libtextstyle — библиотека на C для стилизации текстового вывода в терминалах

ruby-rainbow — расширение для Ruby-класса String, добавляющее поддержку ANSI-цветов

python-blessings — тонкая обёртка для раскраски, стилизации и позиционирования

lolcat — программа на Ruby, которая делает текст цветным как радуга

diff

Diff имеет встроенную поддержку цветов, что разумно использовать. Но эти обёртки тоже можно использовать:

colordiff — Perl-скрипт для подсветки diff.

cwdiff — обёртка над (w)diff с поддержкой каталогов.

git-delta — постраничный просмотрщик с подсветкой синтаксиса для git и diff.

less

source-highlight

В less можно добавить подсветку синтаксиса. Установите пакет и добавьте в настройки вашей командной оболочки:

~/.bashrc
export LESSOPEN="| /usr/bin/source-highlight-esc.sh %s"
export LESS='-R '
lesspipe

Активным пользователям командной строки может быть интересен .

С помощью него можно просматривать список файлов в архиве:

$ less архив.tar.gz
==> use tar_file:contained_file to view a file in the archive
-rw------- пользователь/группа  695 2008-01-04 19:24 архив/содержимое1
-rw------- пользователь/группа   43 2007-11-07 11:17 архив/содержимое2
архив.tar.gz (END)

lesspipe также добавляет к less возможность взаимодействия с файлами отличными от архивов, предоставляя альтернативу для конкретной команды, ассоциированной с этим типом файлов (вроде просмотра HTML через ).

Перелогиньтесь после установки lesspipe для его активации, или выполните .

prettyping — добавляет некоторые крутые возможности для мониторинга пинга. Обёртка над стандартным ping, делающая вывод более красивым, цветным, компактным и лёгким для чтения.

Как сохранить отформатированную строку приглашения

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

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

~/.bashrc

Shell

str=$USER@$HOSTNAME # Измените эту строку, на свой лад
clr=16 # Номер первого цвета в строке цветовой палитры
range=5
lack_char=0
if
then
echo -e «\e]; then
lack_char=$(expr ${#str} — 11)
fi
for (( i=0,k=1,j=clr,l=clr; i<${#str}; i++,j=j+k,l++ )); do
if ]; then
k=0
fi
if ]; then
k=-1
fi
cPS1=»${cPS1}\e[48;5;${j}m${str:$i:1}\e[m»
done
fi

PS1=»${cPS1}:\e[1;38;2;5;222;250m\w\e[m\n$ »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

str=$USER@$HOSTNAME# Измените эту строку, на свой лад

clr=16# Номер первого цвета в строке цветовой палитры

range=5

lack_char=

if-z»$str»

then

echo-e»\e[31mПеременная \$str не должна быть пустой!\e[m»

else

if${#str}-gt11;then

lack_char=$(expr${#str}-11)

fi

for((i=,k=1,j=clr,l=clr;i<${#str};i++,j=j+k,l++));do

ifj-gt${clr}+${range}-1;then

k=

fi

ifl-gt${clr}+${range}+${lack_char}-1;then

k=-1

fi

cPS1=»${cPS1}\e[48;5;${j}m${str:$i:1}\e[m»

done

fi
 

PS1=»${cPS1}:\e[1;38;2;5;222;250m\w\e[m\n$ «

Использование цвета в строке приглашения терминала

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

Существуют терминалы, которые поддерживают следующее количество цветов:

  • 8 цветов — для 3 битной версии управляющих символов ANSI, поддерживается почти всеми терминалами.
  • 16 цветов — для 4 битной версии управляющих символов ANSI, поддерживается почти всеми терминалами.
  • 88 цветов —  для 7 битной версии управляющих символов ANSI, поддерживается многими современными терминалами.
  • 256 цветов — для 8 битной версии управляющих символов ANSI, поддерживается многими современными терминалами.
  • 16777216 цветов — для 24 битной версии управляющих символов ANSI, поддерживается только терминалами в современных графических оболочках.

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

Установить цвет для текста, цвет фона и форматирование можно, как минимум, двумя способами: с помощью управляющих символов или с помощью команды . Оба варианта подробно рассмотрены далее по тексту.

Ключи командной строки

Ключи командной строки обычно выглядят как буквы, перед которыми ставится тире. Они служат для управления сценариями. Рассмотрим такой пример:

#!/bin/bash
echo
while
do
case «$1» in
-a) echo «Found the -a option» ;;
-b) echo «Found the -b option» ;;
-c) echo «Found the -c option» ;;
*) echo «$1 is not an option» ;;
esac
shift
done

1
2
3
4
5
6
7
8
9
10
11
12

#!/bin/bash
echo

while-n»$1″

do

case»$1″in

-a)echo»Found the -a option»;;

-b)echo»Found the -b option»;;

-c)echo»Found the -c option»;;

*)echo»$1 is not an option»;;

esac
shift
done

Запустим скрипт:

$ ./myscript –a –b –c –d

1 $.myscript–a–b–c–d

И проанализируем то, что он выведет в терминал.

Обработка ключей в скрипте

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

Чтение параметров командной строки

Оболочка bash назначает специальным переменным, называемым позиционными параметрами, введённые при вызове скрипта параметры командной строки:

  • $— имя скрипта.
  • $1— первый параметр.
  • $2— второй параметр — и так далее, вплоть до переменной 
    $9, в которую попадает девятый параметр.

Вот как можно использовать параметры командной строки в скрипте с помощью этих переменных:

#!/bin/bash
echo $0
echo $1
echo $2
echo $3

1
2
3
4
5

#!/bin/bash

echo$

echo$1

echo$2

echo$3

Запустим сценарий с параметрами:

./myscript 5 10 15

1 .myscript51015

Вот что он выведет в консоль.

Вывод параметров, с которыми запущен скрипт

Обратите внимание на то, что параметры командной строки разделяются пробелами. Взглянем на ещё один пример использования параметров

Тут мы найдём сумму чисел, переданных сценарию:

Взглянем на ещё один пример использования параметров. Тут мы найдём сумму чисел, переданных сценарию:

#!/bin/bash
total=$
echo The first parameter is $1.
echo The second parameter is $2.
echo The sum is $total.

1
2
3
4
5

#!/bin/bash

total=$$1+$2

echo The first parameter is$1.

echo The second parameter is$2.

echo The sum is$total.

Запустим скрипт и проверим результат вычислений.

Сценарий, который находит сумму переданных ему чисел

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

#!/bin/bash
echo Hello $1, how do you do

1
2

#!/bin/bash

echo Hello$1,how doyou do

Запустим его:

./myscript Adam

1 .myscript Adam

Он выведет то, что мы от него ожидаем.

Сценарий, работающий со строковым параметром

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

Если скрипту надо больше девяти параметров, при обращении к ним номер в имени переменной надо заключать в фигурные скобки, например так:

${10}

1 ${10}

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

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

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

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

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

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

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

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

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

Поэтому не спешите и дочитайте всю статью до конца, чтоб правильно стилизовать строку интерпретатора 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 $
\\ обратный слеш
\[ начало последовательности непечатаемых символов (см. примеры в разделе «Цвета и стилизация».
\] конец последовательности символов
$ ( ) внешняя команда

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

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

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

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

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

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

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

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

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

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

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

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

Скрытый — 8

Черный 30

Красный — 31

Зеленый — 32

Желтый — 33

Синий — 34

Маджента — 35

Циановый — 36

Белый — 37

Изменение цвета текста в терминале с помощью команды tput

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

  — установка цвета текста — установка цвета фона               — очистка форматирования

Пример использования команды .

Использование команды tput для форматирования строки приглашения

Коды доступных цветов представлены в таблице ниже.

Цвет Black Red Green Yellow Blue Magenta Cyan White
Код 1 2 3 4 5 6 7

С помощью можно также задавать стили форматирования.

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

Так много настроек: сочетания клавиш, цветовые схемы, фон и многое другое

Терминал Windows содержит множество параметров настройки, которые вы можете изменить. Чтобы получить к ним доступ, нажмите стрелку вниз справа от кнопки «Новая вкладка» и выберите «Настройки».

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

Доступные параметры, которые вы можете изменить в файле Settings.json, включают:

  • Настраиваемые привязки клавиш: вы можете привязать сочетания клавиш к действиям или изменить сочетания клавиш по умолчанию.
  • Цветовые схемы: изменение цветовой схемы (темы) среды терминала. Вот список включённых цветовых схем.
  • Профили: создавайте разные профили, которые будут отображаться под кнопкой «Новая вкладка». Вы можете настроить команду, выполняемую при запуске среды командной строки, и установить собственные шрифты и цветовые схемы для каждого сеанса.
  • Пользовательские фоны: вы можете установить собственное фоновое изображение для сеанса. Например, вы можете изменить свой сеанс Ubuntu так, чтобы он имел настраиваемое фоновое изображение в стиле Ubuntu.
  • Анимированные фоны в формате GIF: вы даже можете установить анимированный фон в формате GIF в качестве собственного фона.
  • Выбор профиля по умолчанию: выберите профиль, который вы хотите запускать по умолчанию при запуске Windows Terminal, или нажмите кнопку «Новая вкладка». Например, вы можете выбрать сеанс Linux вместо PowerShell.

У Microsoft есть руководство по редактированию файла настроек Windows Terminal JSON, а также список всех параметров, которые вы можете добавить в файл. В этом списке вы найдёте ещё много вариантов, которые мы не рассмотрели.

В отличие от стандартных сред командной строки, PowerShell и Linux Bash в Windows 10, Терминал Windows наконец-то снабжён всеми необходимыми разработчиками опциями, которые уже много лет используются в других операционных системах, таких как Mac и Linux.

Пользователь и система

Используя bash, вы можете легко получить любую необходимую вам техническую информацию о пользователях и системе.
Если вы хотите идентифицировать, под каким пользователем авторизованы в данный момент, вам нужно ввести в командную строку следующую команду:

whoami

Если вам нужно узнать не только о вашем, но и о других пользователях, находящихся в данный момент в этой операционной системе, используйте команды:

who

или

w

В отличие от whoami, эти команды показывает более подробную информацию: кроме имени пользователя вы также узнаете о том, какая используется терминальная линия, время начала сеанса, IP-адрес и некоторые другие данные.

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

Ключи – это специальные аргументы, которые пишутся через пробел после команды и начинаются с одного или двух дефисов. Они определяют параметры, которые будут применены к команде. Как правило, узнать о доступных ключах вы можете, написав команду и —help (либо -help): к примеру,

uname --help

У команды uname вы можете задать ключ -a (или —all), и тогда на экран будет выведена вся информация об операционной системе:

uname -a

Если вас интересуют конкретно данные о ядре, то наберите следующую команду:

uname -rv

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

ps -a

А команда pstree выведет информацию в виде дерева процессов.

Узнать сетевое имя машины вы можете с помощью команды hostname.

Проверка оболочки

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

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

Чтобы убедиться, что вы работаете в bash, проверьте файл /etc/passwd:

Каждая строка этого файла содержит информацию о каждом отдельном пользователе системы. Найдите в файле текущего пользователя и пользователя root (первый столбец). В последнем поле будет указана оболочка пользователя по умолчанию.

Если в этом поле указано не /bin/bash, отредактируйте файл с правами root, указав необходимую оболочку:

После этого выйдите и войдите снова, чтобы обновить настройки.

Как узнать, какие оболочки установлены в системе

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

Один из способов узнать правильные названия оболочек и пути до исполнимых файлов — это запустить следующую команду:

chsh -l

Но предыдущая команда срабатывает не на всех дистрибутивах (работает на Arch Linux, но не работает на производных Debian).

Поэтому можно воспользоваться универсальным методом — посмотреть содержимое файла /etc/shells:

cat /etc/shells

В файле shells собраны пути к действующим оболочкам входа.

/etc/shells — это текстовый файл, который содержит полные пути к действующим оболочкам входа. Этот файл просматривается программой chsh и доступен для запроса другими программами.

Имейте в виду, что есть программы, которые обращаются к этому файлу, чтобы узнать, является ли пользователь обычным пользователем; например, демоны FTP традиционно запрещают доступ пользователям с оболочками, не включёнными в этот файл.

Раскрашиваем цвета вывода ls

Как-то захотелось мне настроить цвета терминала linux в выводе команды ls. Ну не нравился блекло-фиолетовый цвет для каталогов в Linux Mint. Начал разбираться.

Из документации к ls, выяснил, что установка цветов для вывода осуществляется при помощи утилиты dircolors, которая либо устанавливает параметры цвета из своей собственной базы, либо берет их из файла

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

/.bashrc, файл с настройками командной оболочки, а сами параметры определяются через переменную LC_COLORS.

Действительно, в .bashrc обнаружился скрипт следующего содержания:

Его суть сводится к проверке на наличие утилиты dircolors в системе, присваивания значения переменной и, при удачном выполнении, использовании параметра –color=auto при каждом вызове ls.

Если запустить утилиту dircolors, она выводит значение переменной LC_COLOR.

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

Поскольку вывод получается длинный, приводить его не буду.

Если перенаправить вывод dircolors -p >

/.dircolors, то будет создан структурированный файл, из которого и будут браться настройки цветов. Редактируя данный файл и устанавливаются настройки цвета для вывода ls.

В созданном файле .dircolors есть подсказка:

Устанавливая последовательность через точку с запятой и получаем нужный нам цвет в консоли linux, согласно перечисленным. Цвета терминала linux от 30 до 37 для цвета шрифта, а с 40 до 47 для фона. К примеру:

DIR 01;34 подразумевает, что имена директорий будут выделяться жирным шрифтом и синим цветом.

Но таким способом получается всего восемь цветов, а современные эмуляторы терминала способны выводить как минимум 256! Выяснилось, что существуют и другие способы установки цвета. К примеру, значение EXEC 38;5;208;1 – даёт оранжевый толстый шрифт у исполняемых файлов.

Чтобы не перебирать цвета linux вручную, есть уже готовая таблица цветов:

Подставляя в значение цвета 38;5;x – где x цвет из таблицы, получаем необходимый результат. Получается что-то вроде этого:

Но как это работает? Дело в том, что установка цвета вывода информации в эмуляторе терминала осуществляется при помощи ANSI escape-кодов. Это определенная последовательность символов, которая не выводится на экран, однако влияет на вывод. Называется она так, поскольку начинается с \033[ – кода “Esc”. Поскольку терминалов и эмуляторов терминалов существует множество, эти управляющие коды стандартизированы. Управлением цветом через последовательность от 30 до 37 – это стандарт ECMA-48. Информация о нем содержится в разделе console_codes. А управление через 38;5;* – определено стандартом T.416. Более подробная информация есть, конечно же, в Википедии.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: