Гид по технологиям

Настройка часового пояса в Bash через ~/.bashrc

• 4 min read • Linux • Обновлено 24 Nov 2025
Часовой пояс в Bash через ~/.bashrc
Часовой пояс в Bash через ~/.bashrc

Быстрые ссылки

  • Что такое .bashrc?
  • Изменение часового пояса в Bash
  • Настройка часового пояса через .bashrc
  • Альтернативные подходы
  • Отладка и частые ошибки
  • Итог

Иллюстрация терминала Linux с командами настройки часового пояса

Что такое .bashrc?

.bashrc — это скрытый файл конфигурации оболочки Bash в корне вашего домашнего каталога: ~/.bashrc. Тильда ~ — это сокращение для пути к домашней директории, например /home/ваш_пользователь.

Файл выполняется при запуске интерактивной не-логиновой сессии Bash. В нём обычно добавляют:

  • переменные окружения (export VAR=value),
  • алиасы (alias ll=’ls -la’),
  • настройки prompt (PS1),
  • запуск пользовательских скриптов.

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

Редактирование: используйте удобный редактор, например:

nano ~/.bashrc
# или
vim ~/.bashrc

Если nano не установлен:

sudo apt install nano

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

Изменение часового пояса в Bash

Чтобы поменять часовой пояс только для текущей сессии Bash, экспортируйте переменную TZ. Пример:

export TZ=Australia/Perth

После этого команда date покажет время в указанном часовом поясе:

date
# показывает время по Australia/Perth

Если вы смените значение, например:

export TZ=Australia/Darwin
date

вы заметите разницу во времени и сокращение часового пояса (аббревиатуру) в выводе date.

Как найти доступные временные зоны:

timedatectl list-timezones | grep Australia

Замените Australia на нужную страну или регион, например Europe или Asia.

Список временных зон, найденных через timedatectl

Настройка часового пояса через .bashrc

Если вы хотите, чтобы выбранный часовой пояс применялся автоматически в каждой новой сессии Bash, добавьте экспорт в конец ~/.bashrc.

Пошагово:

  1. Откройте ~/.bashrc:
nano ~/.bashrc
  1. Добавьте строку (замените на нужную зону):
export TZ=Europe/Moscow
  1. Сохраните файл и закройте редактор (в nano: Ctrl+O, Enter, Ctrl+X).

  2. Закройте текущую сессию и откройте новую (или примените изменения командой source ~/.bashrc).

source ~/.bashrc
  1. Проверьте:
date
timedatectl

Примечание: timedatectl показывает системный часовой пояс и другую информацию о времени; переменная TZ влияет только на процессы текущего пользователя.

Пример фрагмента ~/.bashrc

# Личные переменные окружения
export EDITOR=nano
export TZ=Europe/Moscow
alias ll='ls -la'

Добавляйте переменные осознанно. Комментарии # помогают ориентироваться.

Альтернативные подходы

  1. Изменить системный часовой пояс (для всех пользователей):
sudo timedatectl set-timezone Europe/Moscow

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

  1. Использовать systemd-timedated и /etc/timezone (дистрибутив-зависимо). Это требовательно к правам root.

  2. Установить TZ локально для одной команды:

TZ=America/New_York date

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

  1. В контейнерах Docker: подключать файл /etc/localtime или выставлять TZ через переменные окружения контейнера.

Когда выбирать подход:

  • Если нужно изменить отображение времени только для вашей пользовательской среды — используйте ~/.bashrc.
  • Если нужно изменить время на всей машине — используйте timedatectl с sudo.
  • Для кратковременных команд удобно задавать TZ в одной строке.

Отладка и частые ошибки

  • Изменения не применились: убедитесь, что вы открыли новую сессию или выполнили source ~/.bashrc.
  • Неправильное имя зоны: ошибка при экспорте TZ не вызывает явного сообщения; используйте timedatectl list-timezones для проверки корректного имени.
  • Разница между пользовательским и системным временем: timedatectl показывает системный часовой пояс; date после экспорта TZ покажет пользовательское время.
  • Если скрипты запускаются не через интерактивную Bash-сессию, ~/.bashrc может не выполняться. В таких случаях экспорт нужно добавить в файл, который исполняется при логине или в конфигурацию сервиса.

Контрольный чеклист для ролей:

  • Системный администратор:

    • Решить, нужен ли глобальный или пользовательский подход.
    • Изменить системный часовой пояс только при необходимости.
    • Обновить документацию и уведомить команду.
  • Разработчик / пользователь:

    • Добавить export TZ=... в ~/.bashrc.
    • Проверить date и логи приложений.

Когда это не сработает

  • Службы systemd, запущенные как системные юниты, игнорируют ~/.bashrc для своих процессов.
  • Cron-задачи могут исполняться с минимальным окружением; для них лучше задавать TZ внутри crontab или в скриптах.
  • GUI-приложения, запущенные вне вашей сессии Bash, не получат переменные из ~/.bashrc.

Критерии приёмки

  • При открытии новой сессии date показывает время в указанной временной зоне.
  • timedatectl продолжает показывать системную информацию без ошибок (если не меняли системный таймзону).
  • Скрипты, требующие локального времени, корректно логируют время после перезапуска сессии.

Итог

Добавление export TZ=Ваша/Зона в ~/.bashrc — лёгкий и безопасный способ обеспечить нужное отображение времени в ваших Bash-сессиях, особенно на headless-серверах. Для глобального изменения используйте timedatectl с правами root. Выбирайте метод в зависимости от области действия: пользовательская сессия или вся система.

Важное: всегда проверяйте корректность имени временной зоны через timedatectl list-timezones и перезапускайте сессии после правок.

Сводка:

  • ~/.bashrc применяется к интерактивным Bash-сессиям.
  • export TZ=Region/City задаёт локальное время для пользователя.
  • Для системной смены используйте sudo timedatectl set-timezone.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

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

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро