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

Что такое .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.

Настройка часового пояса через .bashrc
Если вы хотите, чтобы выбранный часовой пояс применялся автоматически в каждой новой сессии Bash, добавьте экспорт в конец ~/.bashrc.
Пошагово:
- Откройте
~/.bashrc:
nano ~/.bashrc- Добавьте строку (замените на нужную зону):
export TZ=Europe/MoscowСохраните файл и закройте редактор (в nano: Ctrl+O, Enter, Ctrl+X).
Закройте текущую сессию и откройте новую (или примените изменения командой
source ~/.bashrc).
source ~/.bashrc- Проверьте:
date
timedatectlПримечание: timedatectl показывает системный часовой пояс и другую информацию о времени; переменная TZ влияет только на процессы текущего пользователя.
Пример фрагмента ~/.bashrc
# Личные переменные окружения
export EDITOR=nano
export TZ=Europe/Moscow
alias ll='ls -la'Добавляйте переменные осознанно. Комментарии # помогают ориентироваться.
Альтернативные подходы
- Изменить системный часовой пояс (для всех пользователей):
sudo timedatectl set-timezone Europe/MoscowХорошо подходит для однопользовательских машин или когда нужен единый системный часовой пояс на сервере.
Использовать systemd-timedated и /etc/timezone (дистрибутив-зависимо). Это требовательно к правам root.
Установить TZ локально для одной команды:
TZ=America/New_York dateЭто выполнит только одну команду в указанном часовом поясе и не меняет окружение.
- В контейнерах 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.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента