Как использовать файл .bashrc в Linux

В какой-то момент вам определенно захотелось добавить немного дополнительного стиля к вашему опыту использования Linux. Возможно, вы столкнулись с повторяющимися задачами или хотели бы более плавного интерфейса командной строки. Ну что ж, держите: ваша система держит ключ – файл .bashrc, тихонько расположенный в вашей домашней директории!

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

Попрощайтесь с монотонными задачами и приветствуйте более эффективный и приятный опыт использования Linux!

Предварительные требования

Прежде чем экспериментировать с файлом ~/.bashrc, убедитесь, что у вас есть следующее, чтобы продолжить:

  • A Linux distribution is installed on your machine – This tutorial uses Ubuntu 20.04 LTS, but any other distribution works.
  • A non-root user with sudo privileges.

Что такое файл запуска команд Bash (.bashrc) в Linux?

Представьте себе файл ~/.bashrc в Linux, как секретный ящик с игрушками в вашей комнате. Этот ящик с игрушками предоставляет вам и устанавливает ваши любимые игрушки так, как вы любите их, как только вы открываете ящик.

Но так как файл ~/.bashrc – это секретный файл, он не отображается при выполнении команды ls. Ну, не если вы не укажете, чтобы также показывались скрытые, с параметром -la, как показано ниже.

ls -la

Ниже перечислен файл .bashrc вместе с другими скрытыми файлами.

Listing all files, including hidden ones, in the working directory (home)

Определение Пользовательских Псевдонимов для Быстрого Выполнения Команд

A short definition wouldn’t cut into realizing the ~/.bashrc file’s role in customizing your Linux experience. So, how does this file work exactly? When you crack open that ~/.bashrc file, one of the powerful tricks it lets you achieve is defining custom aliases for your favorite commands.

Например, вместо того, чтобы вводить sudo apt-get update для обновления локального индекса пакетов вашей системы, определите алиас в файле .bashrc, который будет выполнять ту же функцию.

? Примечание: В этом руководстве используется учетная запись root для выполнения команд (не рекомендуется), чтобы показать административные задачи, такие как настройка системы. Однако, в целях безопасности, убедитесь, что вы используете обычного пользователя с привилегиями sudo, когда выполняете аналогичные действия в вашей системе.

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

1. Откройте файл .bashrc в вашем домашнем каталоге (~/) с помощью вашего предпочтительного редактора, такого как nano или vim.

? Если вы используете обычную учетную запись, добавьте sudo перед командами, которые требуют повышенных привилегий.

nano ~/.bashrc

2. Затем прокрутите вниз файла и определите alias (например, update) для вашей целевой команды (например, sudo apt-get update), как показано ниже.

alias update='sudo apt-get update'

Сохраните изменения в файле и закройте редактор.

Defining an alias in the .bashrc file

3. После сохранения выполните следующую команду в вашем терминале, чтобы использовать файл ~/.bashrc. Эта команда не выдает никакого вывода в терминал, но применяет ваши изменения.

source ~/.bashrc

4. Теперь запустите псевдоним update, который вы определили, и подтвердите соответствующую команду (sudo apt-get update).

update

Ниже приведен вывод, подтверждающий, что ваш псевдоним update работает так же, как выполнение команды sudo apt-get update, но с меньшим количеством нажатий клавиш.

Testing the newly defined alias (update)

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

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

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

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

1. В файле ~/.bashrc добавьте нижеуказанную функцию с именем manage_package (произвольно).

При выполнении эта функция проверяет, установлен ли заданный пакет, и на основе этой информации либо обновляет, либо устанавливает пакет.

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

manage_package() {
  # Проверяет, установлен ли пакет, запрашивая статус пакета с помощью dpkg.
  # $1 - это заполнитель для первого аргумента, переданного функции (имя пакета).
  # Вывод перенаправляется в /dev/null, чтобы подавить его в терминале.
  # Оператор if проверяет код возврата команды dpkg -s.
  # Если статус равен 0 (пакет установлен),
  # продолжает выполнение первого блока, обновляя пакет.
  if dpkg -s "$1" &> /dev/null; then
    echo "Package '$1' is already installed. Updating..."
    sudo apt-get update && sudo apt-get install --only-upgrade "$1"
  # Если пакет не установлен, выводится сообщение
  # и выполняется sudo apt-get install "$1" для установки пакета.
  else
    echo "Package '$1' is not installed. Installing..."
    sudo apt-get update && sudo apt-get install "$1"
  fi
}

2. После добавления функции сохраните изменения, закройте редактор, а затем source файл ~/.bashrc, чтобы применить изменения.

source ~/.bashrc

3. После выполнения source вызовите функцию (manage_package), а затем укажите имя-пакета, который вы хотите проверить, обновить или установить в вашем терминале, как показано ниже.

В этом руководстве выбран пакет NGINX, но убедитесь, что вы заменяете имя-пакета на предпочитаемое вами имя пакета.

manage_package package-name

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

Executing the newly defined function

Персонализация вашего терминала Linux и оболочки (PS1)

Представьте себе ваш терминал Linux как персональное рабочее пространство. Настройка вашего терминала превращает его в более привлекательную и информативную среду.

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

Чтобы настроить ваш терминал Linux, выполните следующее:

1. Добавьте следующую строку в конец вашего файла ~/. bashrc. Эта строка выводит приветственное сообщение при каждом запуске сессии терминала.

echo "Welcome to your terminal, $USER!

2. Затем измените переменную окружения строки приглашения 1 (PS1), если она существует, или добавьте следующую строку в ваш файл ~/.bashrc. Переменная PS1 точно управляет основной строкой приглашения, которая является основным приглашением (т. е. пользователь@linux:~#), когда оболочка готова принимать команды.

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

  • Делает имя пользователя (\u) и имя хоста (\h) отображаются ярко зеленым (32m).
  • Заставляет текущий рабочий каталог (\w) отображаться ярко синим (34m).
  • Сбрасывает атрибуты цвета на цвет по умолчанию (обычно белый) (\[\033[00m\]) для текста, следующего за приглашением. Этот сброс гарантирует, что остальной текст в вашем терминале останется неизменным.
PS1='\[\033[01;32m\]\u@\h:\[\033[01;34m\]\w\$ \[\033[00m\]'

3. Затем сохраните и закройте файл, а затем выполните source вашего ~/.bashrc файла, чтобы применить изменения.

source ~/.bashrc

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

Applying the shell prompt changes

Запуск ваших сценариев: нет пути? Нет проблем!

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

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

1. Выполните следующую команду, чтобы создать каталог (mkdir), называемый ~/scripts (произвольно)), предназначенный для хранения ваших сценариев.

mkdir -p ~/scripts

2. Затем откройте файл ~/.bashrc и добавьте следующую строку в конец, которая изменяет системный путь поиска команд. Эта строка добавляет каталог ~/scripts к существующей переменной PATH.

Это поведение гарантирует, что оболочка отдает предпочтение вашим сценариям перед другими исполняемыми файлами с идентичными именами в других каталогах PATH системы.

export PATH="$HOME/scripts:$PATH"

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

source ~/.bashrc

4. После этого выполните каждую из приведенных ниже команд, чтобы создать сценарий под названием testscript (произвольное имя) в вашем каталоге ~/scripts.

Эти команды не имеют вывода, но этот сценарий делается исполняемым (chmod), который выводит сообщение (echo) в терминал.

# Создание нового сценария Bash с именем 'testscript' в каталоге ~/scripts
echo '#!/bin/bash' > ~/scripts/testscript

# Добавление строки в 'testscript', которая печатает "Script is running!" при выполнении
echo 'echo "Script is running!"' >> ~/scripts/testscript

# Сделать 'testscript' исполняемым, изменив его разрешения
chmod +x ~/scripts/testscript

5. Наконец, выполните свой сценарий (testscript), вызвав его имя в терминале.

Система выполняет ваш сценарий из вашего специального каталога ~/scripts независимо от вашего текущего рабочего каталога в терминале.

testscript

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

Executing the new script to confirm it’s functioning as expected

Заключение

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

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

По мере завершения этой главы о файле ~/.bashrc, помните, что истинная сущность Linux заключается в его гибкости и контроле, которые он предлагает вам. Путешествие продолжается, так почему бы не испытать жажду настроенного опыта, исследовав улучшения ZSH?

Окунитесь в океан тем и плагинов, которые предоставляют ZSH и фреймворки, такие как Oh My Zsh. Смотрите, как ваш терминал преобразуется в более продуктивное и визуально привлекательное рабочее пространство!

Source:
https://adamtheautomator.com/bashrc/