Многие из тех, кто работает в Linux, используют терминал. Его приветствие обычно состоит из имени пользователя и название вашего компьютера. Но, в Linux можно изменить приветствие в терминале отредактировав файл “.bashrc” который находится в домашней директории пользователя. Но, сначала давайте по порядку разберем из чего состоит приветствие по умолчанию, это будет полезно для понимания как все устроено. И так, первым идет как уже говорилось, имя пользователя, затем имя компьютера (хоста), информация о нахождения в директории (тильда ~, домашняя директория). И последним знак доллара ($). Который означает что мы зашли под обычным пользователем, в случае с root пользователем, вместо знака доллара ($) будет решетка (#):
Меняем приветствие
Теперь собственно давайте разберем некоторые флаги, которые можно использовать при составлении собственного приветствия в терминале. И так, начнем с имени пользователя, который вошел в систему, для этого используется флаг:
u - Имя пользователя
h - Имя хоста до первого '.'
H - Полное имя хоста
n - Новая строка
$ - Показывает знак $ для обычного пользователя или # для пользователя root
\ Буквенный символ обратной косой черты ""
W - Путь к директории
Теперь давайте разберем все это на практике, открываем в терминале файл “.bashrc”, набрав команду:
nano .bashrc
После чего спускаемся вконец открытого файла. Для того что бы мы могли вывести в терминале свой текст, необходимо добавить несколько строк:
export PS1="ваш текст"
Стоит отметить, что в кавычках вы можете написать любой текст, который только захотите:
Теперь сохраняем отредактированный файл и выходим. Как пользоваться текстовым редактором Nano, вы можете ознакомиться в этой статье. Теперь необходимо загрузить наши настройки, для этого выполняем команду:
source ~/.bashrc
Теперь давайте составим приветствие, которое будет состоять из самого приветствия, а так же из имени пользователя и отображать наш путь в терминале. Для этого снова открываем файл “bashrc” командой:
nano .bashrc
Затем спускаемся вниз, до нашего вписанного кода и задаем параметры (флаги), которые описаны были чуть выше. К примеру, я хочу что бы в терминале выводился текст “Добро пожаловать”. А затем с новой строки выводилось имя пользователя и директория в которой я нахожусь. Для этого вписываем следующие значения:
export PS1="Добро пожаловать nu:W $ "
Сохраняем отредактированный файл и выходим. Затем в терминале выполняем уже знакомую команду для применения наших настроек:
source ~/.bashrc
И в результате получаем следующий вид нашего приветствия в терминале:
Жирный текст
Можно сделать текст более жирным, для этого нужно заключить необходимый текст между строк “[$(tput bold)]Ваш текст[$(tput sgr0)]”. То есть, то же самое приветствие, которое мы делали чуть выше, будет выглядеть следующим образом:
export PS1="[$(tput bold)]Добро пожаловать[$(tput sgr0)] nu:W $ "
Затем для применения настроек выполняем знакомую команду:
source ~/.bashrc
В итоге у вас получится следующее:
Как видите, текст “Добро пожаловать” стал жирнее, таким образом можно выделять любой текст приветствия в терминале. И так, двигаемся дальше.
Цвет приветствия
Можно прописать и цвет для приветствия. Это конечно можно сделать и из настроек самого терминала. Но, все же давайте разберем как это можно сделать при помощи редактирования файла “.bashrc”. Так сказать, для саморазвития. Для того что бы задать текст, нужно вписать в нужное место следующие строки:
[$(tput setaf 7)] - белый
[$(tput setaf 1)] - Красный
[$(tput setaf 2)] - Зеленый
[$(tput setaf 4)] - Синий
[$(tput setaf 4)]\ - неоновый
[$(tput setaf 3)] - желтый
Например, я хочу что бы имя пользователя было красным, для этого вставляю код цвета перед выводом имени пользователя:
export PS1="[$(tput bold)]Добро пожаловать[$(tput sgr0)][$(tput setaf 1)] nu:W $ "
Заключение
Есть и более простой способ сформировать приветствие в терминале, для этого можно перейти на сайт и там сформировать нужный нам вывод приветствия. Сайт правда на Английском, но, можно потыкать по полям и примерно понять как это работает. А так же можно воспользоваться переводчиком.
А на этом сегодня все. Надеюсь данная статья будет вам полезна.
С уважением Cyber-X
Приглашение ко вводу команд в bash — это строка, которая отображается слева от каждой команды, которую вы вводите в терминале. Обычно приглашение имеет вид пользователь@hostname:директория$
Приглашение можно настраивать. Можно добавлять информацию или, например, изменить цвет приглашения.
В какой переменной задается приглашение
Формат строки приглашения задается в переменной окружения PS1. Чтобы настроить приглашение, необходимо изменить значение переменной PS1.
Например, переменная PS1 может иметь значение:
PS1="u@h:w$"
Или, например, командой echo $PS1 можно вывести текущее значение переменной PS1. У меня в Ubuntu оно выглядит так:
echo $PS1
[e]0;u@h: wa]${debian_chroot:+($debian_chroot)}[3[01;32m]u@h[3[00m]:[3[01;34m]w[3[00m]$
Не пугайтесь. На самом деле существует масса возможностей для настройки строки приглашения. Ниже мы рассмотрим базовые методы настройки.
Как изменить приглашение (только для данной сессии)
Можно установить переменную PS1 только для текущей сессии в терминале. Это удобно, пока вы подбираете, как будет выглядеть строка приглашения. Чтобы это сделать нужно выполнить команду export для переменной PS1, например:
export PS1="u@w:"
После выполнения команды строка приглашения в терминале сразу изменится.
Настройка приглашения
Для задания различных значений переменной PS1 существуют специальные символы. Комбинируя различные специальные символы можно составить свою строку приглашения.
Специальные символы начинаются с символа косой черты «», за которой следует буква или символ. Ниже приведена таблица специальных символов.
Обозначение | Описание |
---|---|
a | ASCII-символ bell (07) |
d | Дата в формате «День недели Месяц Дата» (например, «Пн Ноя 26») |
D{format} | Значение format передается функции strftime. В строку приглашения подставляется результат выполнения функции. Фигурные скобки обязательны. |
e | ASCII-символ escape (033) |
h | Hostname (имя хоста) до первого символа точка «.». |
H | Hostname (имя хоста, компьютера). |
j | Количество фоновых процессов, запущенных в данной оболочке |
l | Базовое название оболочки. |
n | Переход на новую строку. |
r | Переход к началу строки (возврат каретки). |
s | Имя оболочки (имя shell). |
t | Текущее время в 24-часовом формате (HH:MM:SS). |
T | Текущее время в 12-часовом формате (HH:MM:SS). |
@ | Текущее время в 12-часовом am/pm формате. |
A | Текущее время в 24-часовом формате (HH:MM). |
u | Имя пользователя. |
v | Версия bash (например, 4.4). |
V | Версия bash с версией релиза (например, 4.4.19). |
w | Текущий абсолютный путь (полный путь). Домашняя директория сокращается до значка тильды «~». |
W | Текущий относительный путь. Домашняя директория сокращается до значка тильды «~». |
! | Номер команды в истории команд (history). |
# | Номер команды в текущей сессии терминала. |
$ | Символ приглашения (# для root, $ для обычных пользователей). |
nnn | Символ, соответствующий восьмеричному значению nnn. |
\ | Символ обратной косой черты «». |
[ | Начало последовательности непечатаемых символов. |
] | Конец последовательности. |
Примеры
Пример 1
Приглашение, состоящее из одного символа «>»:
PS1=">"
Пример 2
Текущее время, пользователь, текущая директория:
PS1="A u@w$"
Пример 3
Дата, пользователь, текущая директория, номер команды:
PS1="d:u:w!>"
Как изменить цвета в строке приглашения
Элементы строки приглашения можно раскрашивать в разные цвета.
Чтобы задавать цвета для элементов строки приглашения нужно части строки приглашения заключать в специальные символы.
Используется следующий синтаксис:
e[X;YmРАСКРАШИВАЕМАЯ_СТРОКАe[m
e[ — начало цветовой схемы.
X;Ym — цветовая пара (X;Y). Именно значения X и Y определяют цвет.
e[m — окончание цветовой схемы.
Небольшой пример, чтобы вы понимали о чем идет речь. Раскрасим всю строку целиком цветом с обозначением 0;36.
export PS1="e[0;36mu@h W$ e[m"
Цвета задаются числами. Можно задавать парой 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 — моргание.
Примеры
Пример 1
Например, установим имя пользователя желтым цветом, а остальной текст оставим стандартным цветом (в моем случае это белый). Для указания желтого цвета используем обозначение 1;33 (как светло-коричневый).
export PS1="e[1:33mue[m@h W$ "
Пример 2
Раскрасим остальные элементы строки приглашения:
export PS1="e[1;33mue[m@e[0;96mhe[m e[0;92mWe[m$ "
Как изменить приглашение на постоянной основе
Новое значение переменной PS1 прописывается в файле .bashrc, который расположен в вашей домашней директории (файл может отсутствовать).
Откроем файл .bashrc в редакторе nano для редактирования. Для этого в терминале выполним команду:
nano ~/.bashrc
Перейдем в конец файла и добавим новую строку, в которой пропишем значение переменной PS1. Например:
PS1="u@w$"
Сохраним изменения и закроем файл. Для этого нажмите Ctrl+X, затем Y и Enter, чтобы сохранить изменения.
Теперь выполним команду source, чтобы наши изменения вступили в силу:
source ~/.bashrc
Перезапустите терминал. Приглашение для ввода команд будет обновлено.
Введение
Строка приветствия или приглашения (prompt) представляет собой текст, после которого пользователь может вводить команды в терминале Linux. В каждом дистрибутиве Linux строка приветствия имеет свою форму, например в CentOS 7 по умолчанию она выглядит так:
Форма строки приглашения хранится в переменной PS1
.
Увидеть шаблон, по которому строится строка приглашения можно с помощью вывода переменной PS1
.
echo $PS1
[oleg@meliorem ~]# echo $PS1
[u@h W]$
Как видим строка состоит из обычных символов, которые выводятся в терминале как есть и экранированных символов вместо которых подставляются следующие данные:
- u — (user) имя текущего пользователя.
- h — (host) имя текущего хоста.
- W — (working directory) путь к рабочему каталогу (каталог, где сейчас находится пользователь).
- \$ — тип пользователя (# — для root, $ — для обычных пользователей).
Как изменить формат строки приглашения в терминале
Перед тем как изменять строку приглашения рекомендую сохранить ее текущий формат, чтобы в любом случае можно было все вернуть назад.
Сохраним текущий формат строки приветствия в новую переменную — PS1_SAVE
.
PS1_SAVE=$PS1
Чтобы изменить формат строки приглашения, нужно изменить значение переменной — PS1
. Самая простая строка приглашения этот всего лишь один символ с пробелом.
PS1="► "
[oleg@meliorem ~]# PS1="► "
►
Обычный текст не блещет информативностью, поэтому кроме него вам могут пригодиться экранированные символы, их список вы можете видеть ниже.
Простые экранируемые символы
- a — звуковой сигнал (ASCII: 07)
- e — символ escape-последовательности
- « — двойные кавычки
- \ — обратный слэш
- n — новая строка
- r — возврат каретки (курсора) на начало строки
- [— начало последовательности непечатных символов
- ] — конец последовательности непечатных символов
- nnn — восьмеричный код символа (113 -> K)
Вывод даты и времени
- d — дата в формате «день недели месяц число»
- D{формат даты} — дата в указанном формате, например D{%d.%m.%Y}
- @ — время в 12 часовом формате «часы:минуты AMPM»
- A — время в 24 часовом формате «часы:минуты»
- t — время в 24 часовом формате «часы:минуты:секунды»
- T — время в 12 часовом формате «часы:минуты:секунды
Вывод системной информации
- h — имя хоста до первой точки
- H — полное имя хоста
- j — количество работ (jobs), выполняемых в терминале (скрытых после нажатия Ctrl+Z)
- s — имя текущей оболочки (вывод значения переменной — $0)
- u — имя текущего пользователя
- v — версия оболочки BASH
- V — более детальная версия оболочки BASH
- w — полный путь к текущей директории
- W — имя текущей директории
- ! — номер текущей команды в истории команд
- # — номер текущей команды за период сессии
- \$ — тип пользователя (# — для root, $ — для всех остальных)
Рассмотрим пример создания кастомной строки приглашения. Выведем имя пользователя, имя хоста и полный путь для каталога, а с новой строки — тип пользователя.
PS1="u@h:wn$ "
[oleg@meliorem ~]# PS1="u@h:wn\$ "
oleg@meliorem:/var/www
#
Если вы хотите вернуть все назад то просто вставьте значение переменной PS1_SAVE
, в которой мы сохранили изначальный вид строки приглашения.
PS1=$PS1_SAVE
Для того чтобы изменения переменной PS1
были сохранены для последующих сессий в терминале, нужно прописать значение этой переменной в файлах настроек терминала ~/.bashrc
или /etc/bashrc
.
Сохранение нового формата строки приглашения на постоянной основе
При каждом запуске терминала значение переменной PS1
устанавливается в соответствии с тем значением, которое указано в файле /etc/bashrc
. Однако крайне не рекомендуется изменять что-либо в этом файле. Вместо редактирования файла /etc/bashrc
предусмотрен специальный каталог /etc/profile.d
, в котором можно создавать свои файлы *.sh
с необходимым вам функционалом.
Создадим файл /etc/profile.d/custom.sh
для необходимой нам настройки оболочки bash. Данный файл будет автоматически импортирован в /etc/bashrc
, поэтому никаких дополнительных действий не потребуется.
touch /etc/profile.d/custom.sh
Далее уставим нужное нам значение переменной PS1
, я также добавлю немного цвета для строки приветствия.
vi /etc/profile.d/custom.sh
PS1="e[1;38;5;48mu@he[m:e[1;38;5;45mwe[mn\$ "
# Добавим сообщение для авторизованных пользователей
logged_user=$USER # Логин пользователя
echo -e "e[1;38;5;215mЗдравствуйте ${logged_user^}, добро пожаловать на сервер meliorem.ru!e[0m"
Для применения новых настроек в файле /etc/profile.d/custom.sh
необходимо перезапустить терминал. Также для перезапуска можно использовать команду exec.
exec bash
Теперь когда пользователь будет заходить в свою учетную запись в терминале, он увидит следующий результат.
Важно, что все эти настройки будут применены для всех пользователей. Если вы хотите настроить bash только для одного пользователя, то используйте скрытый файл .bashrc
, который находится в домашнем каталоге пользователя. Для применения настроек в ~/.bashrc
необходимо будет перезапустить оболочку — source ~/.bashrc
Вы также можете раскрасить свою строку приветствия, о том как это сделать вы можете почитать здесь.
Редактируем стандартное приветствия Linux/Bash
1. Установим дополнительные пакеты «figlet»
sudo apt-get install figlet -y
переходим в каталог суперпользователя…
cd /root/
Редактируем файл .bashrc
(добавим дополнения в низ после #fi)
nano .bashrc
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Добро пожaлывать"$(tput sgr 0)"$(tput setaf 2)===================="$(tput sgr 0)
figlet harbarhab
echo "Точное время на сервере $(date)"
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Место на HDD"$(tput sgr 0)"$(tput setaf 2)========================"$(tput sgr 0)
echo "Место на дисках HDD:"
df -h | sed -n '/^/dev/p'
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Полный объем HDD"$(tput sgr 0)"$(tput setaf 2)====================="$(tput sgr 0)
echo "Полный объем HDD:"
df -h
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Свободно ОЗУ"$(tput sgr 0)"$(tput setaf 2)========================"$(tput sgr 0)
echo "Свободно ОЗУ"
free -m
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Загрузка системы"$(tput sgr 0)"$(tput setaf 2)===================="$(tput sgr 0)
uptime
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Кто на сервере "$(tput sgr 0)"$(tput setaf 2)======================="$(tput sgr 0)
w
who
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Имя Хоста"$(tput sgr 0)"$(tput setaf 2)==========================="$(tput sgr 0)
echo "Имя хоста сервера $(tput setaf 3)$(hostname -f)$(tput sgr 0)"
pwd
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Ошибки Буферизация Ядра"$(tput sgr 0)"$(tput setaf 2)===================="$(tput sgr 0)
dmesg |grep error
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Попытки Bruteforce"$(tput sgr 0)"$(tput setaf 2)=================="$(tput sgr 0)
lastb
echo "$(tput setaf 2)===================="$(tput sgr 0)"$(tput setaf 1)Дата смены пароля "$(tput sgr 0)"$(tput setaf 2)=================="$(tput sgr 0)
passwd -S aa
passwd -S root
echo "$(tput setaf 1)start ok "$(tput sgr 0)
alias ahc='echo -n >/home/aa/.bash_history && echo -n >/root/.bash_history && history -c -w && echo Готово!!!!!'
После мы получим данные сервера при получении прав на суперпользователя:
— Свободное место на HDD;
— Полный объем HDD;
— Свободно ОЗУ;
— uptime системы;
— Кто подключен;
— Имя хоста;
— Дата смены пароля…
The terminal is like a virtual second home for many Linux users since they spend most of their working time typing commands in it. It’s important to personalize the terminal to your heart’s desire if you don’t want to bore yourself with the dull, black command-line screen.
Linux offers you the choice to customize any facet of the terminal—its appearance, behaviour, color schemes, font, and splash screen.
In this article, we’ll take a look at how you can customize your Linux terminal’s splash screen to jazz up your command-line sessions.
Step 1: Finding the Shell Configuration File
The terminal emulator installed on your Linux machine works as a frontend for the underlying shell. On most Linux distros, Bash is the default shell that comes preinstalled with the system. On Linux, if you don’t fancy the default shell—Bash in most cases—you can always change the shell using chsh.
Every shell has a configuration file stored in the user’s home directory. For Bash, the file is called .bashrc. And if you’re using Zsh, it will be .zshrc.
In the home directory, locate the config file corresponding to the shell you’re currently using. For the purpose of this guide, we will demonstrate how to customize the splash screen on Bash. However, note that the steps are similar for other shells too.
To personalize your terminal’s splash screen, first, open the shell configuration file using your favorite text editor. In this case, Vim:
vim ~/.bashrc
Step 2: Adding the Splash Screen Content
Before you start adding sophisticated scripts to the file, try printing a simple string first to verify if the configuration file is properly read by the shell. To do this, append the following line to the config file:
echo "Welcome to the Terminal!"
Now, save and exit Vim and restart the terminal to view the changes.
The welcome text message will be displayed every time the shell is launched, generally when you restart the terminal.
Now that you know the config file works, it is time to add some intriguing information and commands to the file.
1. Display System Information in the Splash Screen
To spice things up, you can display system information at the top of a new terminal instance in an attractive way. You don’t have to worry about extracting the system details and presenting them nicely, several tools are already available that do this job for you. Two of the most used ones are Neofetch and Screenfetch.
Before you can add the commands to the configuration file, install Neofetch (or Screenfetch) using the default package manager on your system.
Then, depending on the package you installed above, add either of the following commands at the end of the shell config file:
neofetch
screenfetch
Save the changes and restart the terminal.
2. Display a Random Message
You can use fortune to display random (sometimes funny) quotes whenever you launch the terminal. Before editing the config file, install the fortune package on your system.
On Ubuntu/Debian:
sudo apt install fortune
On Arch Linux:
sudo pacman -S fortune-mod
To install fortune on Fedora and CentOS:
sudo dnf install fortune-mod
Once installed, add the following command to the end of the config file:
fortune
Output:
You can pipe fortune with other utilities like cowsay to create eye-catchy splash screen prompts. Install the cowsay package on your machine and append the following line to the shell configuration file:
fortune | cowsay
Output:
3. Show an ASCII Art at Launch
Normal text can be a huge turn-off for some users. Although the Linux terminal doesn’t support images and videos, you can, however, use ASCII art to add a visual touch to the screen.
For this, you can use the figlet utility to convert normal text to ASCII art. The package is available on official distro repositories and can be downloaded using the default package manager.
On Debian-based systems like Ubuntu:
sudo apt install figlet
To install figlet on Arch Linux:
sudo pacman -S figlet
On Fedora/CentOS and other RPM-based distros:
sudo dnf install figlet
Once installed, append the following statement to the shell configuration file:
figlet -cl "This is a string"
…where «This is a string» is the text you want to display as ASCII art.
For example:
4. Add Weather and Date Information
If you are crazy about Linux and can’t seem to remember the current date and weather while working on the command line, you can configure the terminal to remind you of such details at launch.
Install curl on your system if you don’t have it already. Then to get weather details every time you launch the terminal, append the following line to the config file:
curl wttr.in/paris?0
Make sure to replace «paris» in the aforementioned command with your geographical location. The ?0 commands the program to only print the current weather instead of the default three-day forecast.
You can also print the current date and day using the date utility. Simply add the following line to the shell config:
date
After adding both commands to the file, the splash screen will look something like this:
Step 3: Saving and Verifying the Changes
Once you’re done tweaking and editing the configuration file, it is time to permanently apply those changes by saving and exiting the file. To view the splash screen, simply restart the terminal from the Applications menu or use the Ctrl + Alt + T keyboard shortcut instead.
You can also create custom scripts that print what you want to see on your terminal splash screen. Then, simply add the command to execute the script in the shell configuration file and you’re done.
Don’t Settle With the Default Terminal Appearance
Unlike Windows and macOS, users have complete control over the appearance and behavior of their Linux system. You can literally change any aspect of the operating system since most of the code is open-source and available to modify.
But understanding the code can be hard if you are unfamiliar with the programming language. Therefore, Linux tinkerers who want to dip their hands into customization and kernel development should have a good grasp of the C programming language and its concepts.
The terminal is like a virtual second home for many Linux users since they spend most of their working time typing commands in it. It’s important to personalize the terminal to your heart’s desire if you don’t want to bore yourself with the dull, black command-line screen.
Linux offers you the choice to customize any facet of the terminal—its appearance, behaviour, color schemes, font, and splash screen.
In this article, we’ll take a look at how you can customize your Linux terminal’s splash screen to jazz up your command-line sessions.
Step 1: Finding the Shell Configuration File
The terminal emulator installed on your Linux machine works as a frontend for the underlying shell. On most Linux distros, Bash is the default shell that comes preinstalled with the system. On Linux, if you don’t fancy the default shell—Bash in most cases—you can always change the shell using chsh.
Every shell has a configuration file stored in the user’s home directory. For Bash, the file is called .bashrc. And if you’re using Zsh, it will be .zshrc.
In the home directory, locate the config file corresponding to the shell you’re currently using. For the purpose of this guide, we will demonstrate how to customize the splash screen on Bash. However, note that the steps are similar for other shells too.
To personalize your terminal’s splash screen, first, open the shell configuration file using your favorite text editor. In this case, Vim:
vim ~/.bashrc
Step 2: Adding the Splash Screen Content
Before you start adding sophisticated scripts to the file, try printing a simple string first to verify if the configuration file is properly read by the shell. To do this, append the following line to the config file:
echo "Welcome to the Terminal!"
Now, save and exit Vim and restart the terminal to view the changes.
The welcome text message will be displayed every time the shell is launched, generally when you restart the terminal.
Now that you know the config file works, it is time to add some intriguing information and commands to the file.
1. Display System Information in the Splash Screen
To spice things up, you can display system information at the top of a new terminal instance in an attractive way. You don’t have to worry about extracting the system details and presenting them nicely, several tools are already available that do this job for you. Two of the most used ones are Neofetch and Screenfetch.
Before you can add the commands to the configuration file, install Neofetch (or Screenfetch) using the default package manager on your system.
Then, depending on the package you installed above, add either of the following commands at the end of the shell config file:
neofetch
screenfetch
Save the changes and restart the terminal.
2. Display a Random Message
You can use fortune to display random (sometimes funny) quotes whenever you launch the terminal. Before editing the config file, install the fortune package on your system.
On Ubuntu/Debian:
sudo apt install fortune
On Arch Linux:
sudo pacman -S fortune-mod
To install fortune on Fedora and CentOS:
sudo dnf install fortune-mod
Once installed, add the following command to the end of the config file:
fortune
Output:
You can pipe fortune with other utilities like cowsay to create eye-catchy splash screen prompts. Install the cowsay package on your machine and append the following line to the shell configuration file:
fortune | cowsay
Output:
3. Show an ASCII Art at Launch
Normal text can be a huge turn-off for some users. Although the Linux terminal doesn’t support images and videos, you can, however, use ASCII art to add a visual touch to the screen.
For this, you can use the figlet utility to convert normal text to ASCII art. The package is available on official distro repositories and can be downloaded using the default package manager.
On Debian-based systems like Ubuntu:
sudo apt install figlet
To install figlet on Arch Linux:
sudo pacman -S figlet
On Fedora/CentOS and other RPM-based distros:
sudo dnf install figlet
Once installed, append the following statement to the shell configuration file:
figlet -cl "This is a string"
…where «This is a string» is the text you want to display as ASCII art.
For example:
4. Add Weather and Date Information
If you are crazy about Linux and can’t seem to remember the current date and weather while working on the command line, you can configure the terminal to remind you of such details at launch.
Install curl on your system if you don’t have it already. Then to get weather details every time you launch the terminal, append the following line to the config file:
curl wttr.in/paris?0
Make sure to replace «paris» in the aforementioned command with your geographical location. The ?0 commands the program to only print the current weather instead of the default three-day forecast.
You can also print the current date and day using the date utility. Simply add the following line to the shell config:
date
After adding both commands to the file, the splash screen will look something like this:
Step 3: Saving and Verifying the Changes
Once you’re done tweaking and editing the configuration file, it is time to permanently apply those changes by saving and exiting the file. To view the splash screen, simply restart the terminal from the Applications menu or use the Ctrl + Alt + T keyboard shortcut instead.
You can also create custom scripts that print what you want to see on your terminal splash screen. Then, simply add the command to execute the script in the shell configuration file and you’re done.
Don’t Settle With the Default Terminal Appearance
Unlike Windows and macOS, users have complete control over the appearance and behavior of their Linux system. You can literally change any aspect of the operating system since most of the code is open-source and available to modify.
But understanding the code can be hard if you are unfamiliar with the programming language. Therefore, Linux tinkerers who want to dip their hands into customization and kernel development should have a good grasp of the C programming language and its concepts.
Большинство систем Ubuntu используют bash или dash в качестве приложения терминала по умолчанию. Вы вводите команды в стандартной командной строке, которая обычно отображает ваше имя пользователя, имя хоста и текущий каталог в предопределенной цветовой схеме. Bash предоставляет множество опций настройки командной строки, которые позволяют не только добавлять различные функции в приглашение терминала, но и различать их разными цветами.
В этой статье мы на различных примерах настроим и изменим цвет командной строки нашего терминального приложения, чтобы вы могли сделать то же самое при необходимости.
Содержание
- Просмотр текущей конфигурации интерпретатора Bash
- Настройка оболочки
- Установка значения настроек приглашения терминала по умолчанию
- Что еще можно настроить?
- Изменение цвета приглашения
- Установка цветов в приглашении bash
- Использование стилей текста в приглашении
- Внесение постоянных изменений в приглашение
Просмотр текущей конфигурации интерпретатора Bash
Когда вы открываете терминал через Dash или сочетание клавиш Ctrl+Alt +T, вы видите следующее приглашение:
[email protected]:directory$
В этом формате по умолчанию указывается имя пользователя, имя хоста, а затем текущий каталог пользователя. bash берет эту конфигурацию из файла bashrc, который устанавливается индивидуально для каждого пользователя в его домашнем каталоге. Вот как можно открыть этот файл:
Расположение: /home/username/.bashrc
Вы также можете использовать любой другой текстовый редактор для открытия этого файла.
Вот как выглядит этот конфигурационный файл. Здесь мы показываем соответствующую часть файла.
Переменная PS1, которую вы видите на рисунке выше, содержит все необходимые настройки для приглашения bash. Давайте сначала объясним, что обозначают символы в этой переменной. Вы можете увидеть эту переменную в переменной PS1, указанной после оператора else.
u- Это указывает на имя пользователя текущего пользователя
h: Это указывает на имя хоста текущего пользователя, извлеченное из полного доменного имени.
w: Указывает текущий рабочий каталог. Ваш домашний каталог обозначается символом тильды ~.
$: Указывает, являетесь ли вы обычным пользователем ($) или пользователем root (#).
Вы также можете просмотреть конфигурацию переменной PS1, передав ее значение эхом следующим образом:
Настройка оболочки
После того как мы увидели, где хранится информация о приглашении терминала и что описывает переменная PS1, давайте посмотрим, как ее можно отредактировать, чтобы настроить приглашение bash.
Прежде чем редактировать переменную PS1, важно сохранить ее содержимое по умолчанию в новой переменной. Это поможет нам восстановить исходную конфигурацию приглашения, если что-то пойдет не так. Введите следующую команду в терминале:
Теперь в переменной «DEFAULT» есть вся информация, необходимая для восстановления стандартных настроек.
Теперь давайте немного поэкспериментируем с нашей переменной PS1. Введите следующую команду:
Это новое значение PS1 окажет следующий эффект на вашу приглашение терминала:
Теперь вы можете видеть только имя пользователя и информацию о пользователе root без каких-либо цветов, так как информация о цвете еще не задана.
Давайте введем следующую команду, чтобы в нашей приглашении также был указан наш рабочий каталог
Это новое значение PS1 окажет следующий эффект на приглашение терминала:
Установка значения настроек приглашения терминала по умолчанию
Поскольку мы сохранили исходную конфигурацию переменной PS1 в переменной DEFAULT, мы можем вернуть значение PS1 к значению по умолчанию, передав ему значение нашей переменной DEFAULT.
PS1=$DEFAULT
Что еще можно настроить?
Если вы хотите, чтобы ваш запрос содержал определенный пользовательский текст, вы можете использовать следующий синтакс:
Пример:
Я настроил свой запрос на включение пользовательского сообщения следующим образом:
Вы можете включить в приглашение следующие основные символы:
Символы | Назначение |
d | Дата в формате день месяц дата. |
e | Символ звонка. |
a | Символ эвакуации. |
h | Имя хоста текущего пользователя до ‘.’. |
H | Имя хоста текущего пользователя. |
l | Основное имя терминального устройства. |
j | Количество заданий, выполняемых оболочкой. |
r | Возврат каретки. |
n | Новая строка. |
u | Имя пользователя текущего пользователя. |
v | Версия Bash. |
! | Номер истории печати выполняемой команды. |
Вы можете включить текущее системное время в приглашение с помощью следующей команды:
Это новое значение PS1 будет иметь следующий эффект:
Вы также можете настроить приглашение так, чтобы она включала вывод команды; это дает вам неограниченные возможности для включения.
Синтаксис:
Пример:
В этом примере я задам в приглашении терминала имя основной группы, к которой принадлежит текущий пользователь.
Изменение цвета приглашения
После настройки приглашения терминала вы поймете, что все может выглядеть несколько беспорядочно. Причина в том, что не так-то просто отличить одну функцию от другой, если все они перечислены одним цветом. Теперь давайте узнаем, как изменить цвет пришлашения, чтобы сделать ее более приятной для глаз.
Для того чтобы добавить цвета к одной или нескольким характеристикам, в переменной PS1 предусмотрены цветовые теги. Выделенный текст на следующем рисунке — это цветовой тег.
Установка цветов в приглашении bash
Вот формат цветового тега:
Например, имя пользователя и имя хоста по умолчанию, которые мы видим в приглашении терминала по умолчанию, являются зелеными из-за следующего цветового тега:
Вы можете изменить это значение цвета для функции bash, чтобы придать ей новый цвет или добавить новый цветовой тег к функции, у которой его нет.
Вот некоторые распространенные цвета и их значения:
Цвет | Значение |
Зеленый | 32 |
Красный | 31 |
Черный | 30 |
Синий | 34 |
Голубой | 36 |
Фиолетовый | 35 |
Желтый | 33 |
Белый | 37 |
Пример:
Следующая команда сделает текст командной строки красным, так как мы указываем 31 (красный цвет) в теге color:
Использование стилей текста в приглашении
Вы можете добавить стили к тексту приглашения, присвоив значение атрибута тегу color. Вот формат тега color с атрибутом:
[33[ATTRIBUTE; COLORm]
Вы можете использовать следующие значения атрибутов для текста приглашения:
Значение | Назначение |
0 | Обычный текст (Это значение по умолчанию, даже если атрибут не установлен) |
1 | В терминале Ubuntu это значение определяет полужирный текст |
2 | Полужирный текст |
4 | Подчеркивание текста |
5 | Для мигающего текста |
7 | Меняет цвета текста и фона |
8 | Для скрытого текста |
Пример:
Вы можете использовать следующую команду для того, чтобы подчеркнуть текст в bash:
Значение 4 указывает на то, что мы хотим «подчеркнуть» текст.
Внесение постоянных изменений в приглашение
Команды, которые вы выполняли до сих пор, изменяют приглашение только для текущего сеанса bash. После того, как вы поэкспериментировали с настройкой текста и цветом приглашения и пришли к окончательному варианту, который вы хотите установить навсегда для всех ваших сеансов bash, вам нужно отредактировать файл bashrc.
Откройте файл .bashrc и скопируйте значение PS1, которое вы окончательно установили в строке PS1 под строкой if; then. На следующем изображении я только что изменил цвет приглашения bash на красный:
Сохраните файл, нажав Ctrl+X, а затем нажав Y. Изменения в приглашении bash теперь будут постоянными.
Выйдите из Терминала и откройте его снова, чтобы убедиться, что ваш интерпретатор bash по-прежнему будет таким, каким вы его установили.
Потренировавшись по этому руководству, вы сможете преуспеть в настройке приглашения bash. Вы можете установить цвета для различения различных функций, которые вы включили в приглашение. Таким образом, вы сможете просматривать и использовать эту полезную информацию каждый раз, когда используете bash pro