ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как сделать BASH лучше

Bash Heredoc

BASH имеет простую стандартную настройку, и это здорово, но вы можете захотеть большего! Многие пользователи компьютеров избегают командной строки, потому что ее сложно использовать. Это заблуждение. Командная строка требует обучения, для начала требуются некоторые знания. Однако, если вы кое-что знаете, это быстрее и часто проще. После изучения нескольких базовых команд абсолютно необходимый навык – читать документацию. Это может показаться не навыком, но это так. Причина в том, что документы являются общими, они не ответят на ваш конкретный вопрос, вы должны получить ответ из имеющейся у вас информации. Когда вы запускаете свою среду, в системе есть файлы, управляющие вашими значениями по умолчанию во многих приложениях. Для bash у вас есть несколько файлов, которые это контролируют. Эти файлы находятся в последовательности и только в том случае, если других не существует.

 

Что можно изменить?

Множество вещей, но изменения, которые вы заметите первыми, – это те, которые задают вашу подсказку. У вас также есть псевдонимы и переменные среды. Многие из них настроены, чтобы убедиться, что вы используете правильные библиотеки и исполняемые файлы при запуске приложений. Файлы также управляют и добавляют функции в оболочку, примером является история. В bash у вас есть файл истории, содержащий последние введенные вами команды. Вы можете выбрать, хотите ли вы, чтобы история сохраняла дубликаты и насколько велик был файл. Есть еще много вещей, которые вы можете запустить. Хороший пример утилит доступен из bash-it.

 

Где хранится?

Это похоже на простой список из нескольких файлов, которые запускаются при запуске. Однако из-за способа запуска bash есть несколько сложностей. Во-первых, вам нужны некоторые настройки для системы, а некоторые – для каждого открытия оболочки. Файл /etc/profile запускается во время входа в систему, обратите внимание, что он часто вызывает /etc/profile.d/* для установки определенных значений. В Ubuntu он устанавливает пути привязки как для того, где находятся двоичные файлы, так и для того, где xdg вызывает приложения. Этот файл является общесистемным, поэтому не используйте его для личных настроек. Для общесистемных файлов у вас также есть etc/bash.bashrc, этот файл называется /etc/bashrc вне дистрибутивов на основе debian. Администратор устанавливает, надеюсь, вменяемые параметры по умолчанию для всех пользователей системы. Если вы не согласны с этими настройками, вы можете изменить их в ~ .bashrc для специального пользователя.

Мы знаем, что вы можете быть и пользователем, и администратором! Следующий файл, который вам нужно рассмотреть, – это ~/.profile, он запускается при входе в систему, а не при запуске оболочки. Он также запускается, только если .bashprofile или .bashlogin не существует. Стандартная версия проверяет, какая оболочка будет запущена. Когда файл .profile запускается, он запускает ~/.bashrc, если он существует. В файле ~/.bashrc вы должны установить псевдонимы и другие личные настройки. Интересны два других файла, ~/.bashlogout и ~/.inputrc, первый запускается при выходе из системы. По умолчанию он очищает консоль. Более интересным является файл inputrc. Здесь вы меняете привязки клавиш и нажатия клавиш. Вы можете установить способ редактирования в командной строке. По умолчанию это редактирование стиля emacs, но вы можете изменить его на стиль vi.

Некоторые примеры изменений, которые необходимо внести.

Обновите подсказку… Чтобы сделать подсказку красивее или передать больше информации, вы можете изменить значения PS1. Во-первых, вы можете проверить, какое значение у вас уже есть.

$ echo $PS1

Результат выглядит немного загадочным, если вы не указали его на строку:

$ PS1 = “Cool Prompt!”

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

\u Текущее имя пользователя
\h Текущее имя хоста
\w Текущий рабочий каталог
\s Название оболочки
Время в 24-часовом формате

В качестве задачи настройте приглашение, чтобы ваше имя пользователя и имя хоста были правильно помечены амперсандом. Вы также можете использовать системные переменные и даже вывод скриптов. Установите цветовую схему… Вы можете получить цвет на выходе, а также задать разные цвета для каждого типа файлов. Сначала создайте красочную подсказку. Цвет может меняться во время подсказки. Чтобы начать новый цвет, добавьте ‘\e[x,ym’ och stoppa med ‘\e[m. Вот пример.

$ PS1="\e[0;35m \u@\h \e[m \e[0;32m \d \A\e[m \$ >"

umask, как это работает… В оболочке у вас есть параметр «umask», он устанавливает, как устанавливаются права доступа к файлам при их создании. Наиболее распространенное значение – 022. Это дает файлам разрешения, позволяющие пользователям читать и писать, а всем остальным – только чтение. Таким образом, вы должны изменить новые файлы сценария на исполняемые как отдельное действие. Это безопасный способ работы с файлами.

определения функций… Вы также можете включать функции, формат которых может быть POSIX-совместимым или bash. Если вы планируете переключаться между оболочками, узнайте, как сохранить соответствие. Вы также можете запустить сценарий в командной строке.

#!/bin/bash
# lsbytesum - количество байтов в списке каталогов
TotalBytes=0
for Bytes in $(ls -l | grep "^-" | awk '{ print $5 }')
do
TotalBytes=$TotalBytes+$Bytes
done
TotalMeg=$(echo -e "\n$TotalBytes/1048576 \nquit" | bc)
echo -n "$TotalMeg"

Если у вас есть приведенный выше код (кредит TLDP), вы можете вызвать его в своем приглашении (PS1). Чтобы установить это, добавьте это в свой bashrc.

$ PS1="[\u@\h:\w (\$(lsbytes) Mb)]\$ "

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

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

 

Вывод

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

Exit mobile version