[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/customize-bash-prompt":3,"mdc--scy0rh-key":1044,"mdc--igazln-key":1062,"mdc-ifzhd8-key":1070,"mdc-s7t4ig-key":1094,"mdc-rhote-key":1102,"mdc--vmaujm-key":1110,"mdc--j27rn5-key":1127,"mdc--6uu0po-key":1143,"related-/guides/linux/bash-aliases,/guides/linux/bashrc-configuration,/guides/linux/zsh-vs-bash":1159},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":980,"code":980,"createdAt":981,"description":982,"difficulty":983,"draft":984,"estimatedTime":985,"extension":986,"faq":987,"howToSteps":1000,"howToTotalTime":1013,"image":980,"keywords":1014,"locale":1025,"meta":1026,"navigation":684,"path":1027,"platform":1028,"related":1029,"section":1033,"seo":1034,"severity":980,"stem":1035,"summary":1036,"tags":1037,"twitterCreator":980,"twitterSite":980,"type":1042,"updatedAt":981,"__hash__":1043},"content_ru/guides/linux/customize-bash-prompt.md","Кастомизация bash prompt: настройка PS1, цветов и информации",[7,8,9,10],"Bash 4.0+","Ubuntu 20.04+","Fedora 35+","Arch Linux","FixPedia Team",{"type":13,"value":14,"toc":958},"minimark",[15,20,29,33,68,72,82,85,107,110,114,121,276,288,292,295,301,318,321,361,368,371,375,378,392,395,414,421,447,458,462,467,475,489,493,504,518,524,548,552,557,608,611,625,628,632,635,723,726,747,764,768,815,819,823,834,848,852,863,867,890,894,899,903,928,934,942,954],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23,24,28],"p",{},"Приглашение командной строки (bash prompt) — это строка, которую вы видите перед курсором в терминале. По умолчанию оно обычно выглядит как ",[25,26,27],"code",{},"user@host:~/path$",". Кастомизация prompt делает работу в терминале более информативной и визуально приятной. Вы можете добавить отображение текущего времени, статуса последней команды, ветки Git, а также использовать цвета для выделения важной информации. После выполнения этого гайда вы получите prompt, который будет подстраиваться под ваши задачи и предпочтения.",[16,30,32],{"id":31},"требования-подготовка","Требования / Подготовка",[34,35,36,44,50,65],"ol",{},[37,38,39,40,43],"li",{},"У вас должен быть установлен bash (версии 4.0 и выше). Проверить версию: ",[25,41,42],{},"bash --version",".",[37,45,46,47,43],{},"Убедитесь, что у вас есть доступ к домашней директории и возможность редактировать файл ",[25,48,49],{},"~/.bashrc",[37,51,52,53,56,57,60,61,64],{},"Рекомендуется использовать терминал, поддерживающий 256 цветов (например, GNOME Terminal, Konsole, iTerm2). Проверить: ",[25,54,55],{},"echo $TERM"," (должно быть ",[25,58,59],{},"xterm-256color"," или ",[25,62,63],{},"screen-256color",").",[37,66,67],{},"Базовые знания о редактировании текстовых файлов в Linux (nano, vim, etc.).",[16,69,71],{"id":70},"шаг-1-найдите-и-откройте-конфигурационный-файл-bash","Шаг 1: Найдите и откройте конфигурационный файл bash",[21,73,74,75,77,78,81],{},"Бash читает конфигурационные файлы при запуске. Для интерактивных оболочек это обычно ",[25,76,49],{}," (для пользователя) или ",[25,79,80],{},"/etc/bash.bashrc"," (системный). Мы будем редактировать пользовательский файл, чтобы изменения не затрагивали других пользователей.",[21,83,84],{},"Откройте терминал и выполните:",[86,87,92],"pre",{"className":88,"code":89,"language":90,"meta":91,"style":91},"language-bash shiki shiki-themes github-light github-dark","nano ~/.bashrc\n","bash","",[25,93,94],{"__ignoreMap":91},[95,96,99,103],"span",{"class":97,"line":98},"line",1,[95,100,102],{"class":101},"sScJk","nano",[95,104,106],{"class":105},"sZZnC"," ~/.bashrc\n",[21,108,109],{},"Или используйте предпочитаемый редактор (vim, code, gedit). Если файл пустой или отсутствует, создайте его.",[16,111,113],{"id":112},"шаг-2-поймите-структуру-переменной-ps1","Шаг 2: Поймите структуру переменной PS1",[21,115,116,117,120],{},"Переменная ",[25,118,119],{},"PS1"," определяет основной prompt. Она поддерживает множество escape-последовательностей, которые заменяются на актуальные данные. Вот основные:",[122,123,124,137],"table",{},[125,126,127],"thead",{},[128,129,130,134],"tr",{},[131,132,133],"th",{},"Escape-последовательность",[131,135,136],{},"Описание",[138,139,140,151,161,171,185,195,212,222,232,242,252,262],"tbody",{},[128,141,142,148],{},[143,144,145],"td",{},[25,146,147],{},"\\u",[143,149,150],{},"Имя текущего пользователя",[128,152,153,158],{},[143,154,155],{},[25,156,157],{},"\\h",[143,159,160],{},"Имя хоста (до первой точки)",[128,162,163,168],{},[143,164,165],{},[25,166,167],{},"\\H",[143,169,170],{},"Полное имя хоста",[128,172,173,178],{},[143,174,175],{},[25,176,177],{},"\\w",[143,179,180,181,184],{},"Полный путь текущей директории, с ",[25,182,183],{},"~"," для домашней",[128,186,187,192],{},[143,188,189],{},[25,190,191],{},"\\W",[143,193,194],{},"Только имя текущей директории",[128,196,197,202],{},[143,198,199],{},[25,200,201],{},"\\$",[143,203,204,207,208,211],{},[25,205,206],{},"#"," для root, ",[25,209,210],{},"$"," для обычного пользователя",[128,213,214,219],{},[143,215,216],{},[25,217,218],{},"\\t",[143,220,221],{},"Текущее время в 24-часовом формате (HH:MM:SS)",[128,223,224,229],{},[143,225,226],{},[25,227,228],{},"\\T",[143,230,231],{},"Время в 12-часовом формате (HH:MM:SS)",[128,233,234,239],{},[143,235,236],{},[25,237,238],{},"\\@",[143,240,241],{},"Время в 12-часовом формате с AM/PM",[128,243,244,249],{},[143,245,246],{},[25,247,248],{},"\\d",[143,250,251],{},"Дата в формате \"День ММ ГГГГ\"",[128,253,254,259],{},[143,255,256],{},[25,257,258],{},"\\n",[143,260,261],{},"Новая строка",[128,263,264,273],{},[143,265,266,269,270],{},[25,267,268],{},"\\["," и ",[25,271,272],{},"\\]",[143,274,275],{},"Обозначают начало и конец непечатаемых символов (например, для цветов)",[21,277,278,282,283,269,285,287],{},[279,280,281],"strong",{},"Важно",": Для цветов используются escape-последовательности ANSI, которые нужно заключать в ",[25,284,268],{},[25,286,272],{},", чтобы bash правильно считал длину prompt.",[16,289,291],{"id":290},"шаг-3-добавьте-простые-цвета-и-информацию","Шаг 3: Добавьте простые цвета и информацию",[21,293,294],{},"Давайте создадим простой цветной prompt, который показывает пользователя, хост и текущую директорию.",[21,296,297,298,300],{},"Добавьте в ",[25,299,49],{}," строку:",[86,302,304],{"className":88,"code":303,"language":90,"meta":91,"style":91},"PS1='\\[\\e[0;32m\\]\\u@\\h:\\w\\$ \\[\\e[m\\] '\n",[25,305,306],{"__ignoreMap":91},[95,307,308,311,315],{"class":97,"line":98},[95,309,119],{"class":310},"sVt8B",[95,312,314],{"class":313},"szBVR","=",[95,316,317],{"class":105},"'\\[\\e[0;32m\\]\\u@\\h:\\w\\$ \\[\\e[m\\] '\n",[21,319,320],{},"Разберем:",[322,323,324,338,352,358],"ul",{},[37,325,326,329,330,333,334,337],{},[25,327,328],{},"\\[\\e[0;32m\\]"," — включает зеленый цвет (код 32). ",[25,331,332],{},"\\e"," — escape-символ, ",[25,335,336],{},"[0;32m"," — код цвета.",[37,339,340,343,344,347,348,60,350,43],{},[25,341,342],{},"\\u@\\h:\\w\\$"," — комбинация escape-последовательностей: пользователь, символ ",[25,345,346],{},"@",", хост, двоеточие, текущий путь, ",[25,349,210],{},[25,351,206],{},[37,353,354,357],{},[25,355,356],{},"\\[\\e[m\\]"," — сброс цветов к стандартным.",[37,359,360],{},"Пробел в конце для удобства.",[21,362,363,364,367],{},"После сохранения файла выполните ",[25,365,366],{},"source ~/.bashrc"," или откройте новый терминал. Вы должны увидеть зеленый prompt.",[369,370],"in-article-ad",{},[16,372,374],{"id":373},"шаг-4-используйте-более-сложные-цвета-и-форматирование","Шаг 4: Используйте более сложные цвета и форматирование",[21,376,377],{},"Вы можете комбинировать цвета и атрибуты (жирный, подчеркивание). Например, для жирного зеленого текста:",[86,379,381],{"className":88,"code":380,"language":90,"meta":91,"style":91},"PS1='\\[\\e[1;32m\\]\\u@\\h\\[\\e[m\\]:\\[\\e[1;34m\\]\\w\\[\\e[m\\]\\$ '\n",[25,382,383],{"__ignoreMap":91},[95,384,385,387,389],{"class":97,"line":98},[95,386,119],{"class":310},[95,388,314],{"class":313},[95,390,391],{"class":105},"'\\[\\e[1;32m\\]\\u@\\h\\[\\e[m\\]:\\[\\e[1;34m\\]\\w\\[\\e[m\\]\\$ '\n",[21,393,394],{},"Здесь:",[322,396,397,403,408],{},[37,398,399,402],{},[25,400,401],{},"\\[\\e[1;32m\\]"," — жирный зеленый (1 — жирный, 32 — зеленый).",[37,404,405,407],{},[25,406,356],{}," — сброс после имени пользователя и хоста.",[37,409,410,413],{},[25,411,412],{},"\\[\\e[1;34m\\]"," — жирный синий для пути.",[21,415,416,417,420],{},"Список цветов (перед кодом можно добавить ",[25,418,419],{},"1;"," для жирного):",[322,422,423,426,429,432,435,438,441,444],{},[37,424,425],{},"Черный: 30",[37,427,428],{},"Красный: 31",[37,430,431],{},"Зеленый: 32",[37,433,434],{},"Желтый: 33",[37,436,437],{},"Синий: 34",[37,439,440],{},"Пурпурный: 35",[37,442,443],{},"Голубой: 36",[37,445,446],{},"Белый: 37",[21,448,449,450,453,454,457],{},"Также можно использовать 256-цветовую палитру: ",[25,451,452],{},"\\[\\e[38;5;{номер}м\\]"," (например, ",[25,455,456],{},"\\[\\e[38;5;202m\\]"," для оранжевого). Номер цвета от 0 до 255.",[16,459,461],{"id":460},"шаг-5-добавьте-динамическую-информацию-время-статус-git","Шаг 5: Добавьте динамическую информацию (время, статус, Git)",[463,464,466],"h3",{"id":465},"время","Время",[21,468,469,470,60,472,474],{},"Чтобы добавить текущее время, используйте ",[25,471,218],{},[25,473,238],{},":",[86,476,478],{"className":88,"code":477,"language":90,"meta":91,"style":91},"PS1='\\[\\e[0;33m\\]\\t \\[\\e[m\\]\\u@\\h:\\w\\$ '\n",[25,479,480],{"__ignoreMap":91},[95,481,482,484,486],{"class":97,"line":98},[95,483,119],{"class":310},[95,485,314],{"class":313},[95,487,488],{"class":105},"'\\[\\e[0;33m\\]\\t \\[\\e[m\\]\\u@\\h:\\w\\$ '\n",[463,490,492],{"id":491},"статус-последней-команды","Статус последней команды",[21,494,495,496,499,500,503],{},"Escape-последовательность ",[25,497,498],{},"\\$?"," возвращает код выхода последней команды (0 — успех, не 0 — ошибка). Но в PS1 она не работает напрямую. Нужно использовать команду-подстановку или условную конструкцию. Пример с отображением ",[25,501,502],{},"!"," при ошибке:",[86,505,507],{"className":88,"code":506,"language":90,"meta":91,"style":91},"PS1='\\[\\e[0;31m\\]$(if [[ $? != 0 ]]; then echo \"! \"; fi)\\[\\e[m\\]\\u@\\h:\\w\\$ '\n",[25,508,509],{"__ignoreMap":91},[95,510,511,513,515],{"class":97,"line":98},[95,512,119],{"class":310},[95,514,314],{"class":313},[95,516,517],{"class":105},"'\\[\\e[0;31m\\]$(if [[ $? != 0 ]]; then echo \"! \"; fi)\\[\\e[m\\]\\u@\\h:\\w\\$ '\n",[21,519,520,521,474],{},"Однако это может замедлять prompt, так как выполняется для каждого вызова. Более эффективный способ — использовать ",[25,522,523],{},"PROMPT_COMMAND",[86,525,527],{"className":88,"code":526,"language":90,"meta":91,"style":91},"PROMPT_COMMAND='RET=$?; [[ $RET != 0 ]] && echo -n \"!$RET \"'\nPS1='\\[\\e[0;33m\\]\\u@\\h:\\w\\$ \\[\\e[m\\]'\n",[25,528,529,538],{"__ignoreMap":91},[95,530,531,533,535],{"class":97,"line":98},[95,532,523],{"class":310},[95,534,314],{"class":313},[95,536,537],{"class":105},"'RET=$?; [[ $RET != 0 ]] && echo -n \"!$RET \"'\n",[95,539,541,543,545],{"class":97,"line":540},2,[95,542,119],{"class":310},[95,544,314],{"class":313},[95,546,547],{"class":105},"'\\[\\e[0;33m\\]\\u@\\h:\\w\\$ \\[\\e[m\\]'\n",[463,549,551],{"id":550},"информация-о-git","Информация о Git",[21,553,554,555,474],{},"Если вы работаете с Git, полезно отображать текущую ветку. Добавьте функцию в ",[25,556,49],{},[86,558,560],{"className":88,"code":559,"language":90,"meta":91,"style":91},"parse_git_branch() {\n    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \\(.*\\)/ (\\1)/'\n}\n",[25,561,562,570,602],{"__ignoreMap":91},[95,563,564,567],{"class":97,"line":98},[95,565,566],{"class":101},"parse_git_branch",[95,568,569],{"class":310},"() {\n",[95,571,572,575,578,581,584,587,590,594,597,599],{"class":97,"line":540},[95,573,574],{"class":101},"    git",[95,576,577],{"class":105}," branch",[95,579,580],{"class":313}," 2>",[95,582,583],{"class":105}," /dev/null",[95,585,586],{"class":313}," |",[95,588,589],{"class":101}," sed",[95,591,593],{"class":592},"sj4cs"," -e",[95,595,596],{"class":105}," '/^[^*]/d'",[95,598,593],{"class":592},[95,600,601],{"class":105}," 's/* \\(.*\\)/ (\\1)/'\n",[95,603,605],{"class":97,"line":604},3,[95,606,607],{"class":310},"}\n",[21,609,610],{},"Затем используйте в PS1:",[86,612,614],{"className":88,"code":613,"language":90,"meta":91,"style":91},"PS1='\\[\\e[0;36m\\]\\u@\\h\\[\\e[m\\]:\\[\\e[1;34m\\]\\w\\[\\e[0;33m\\]$(parse_git_branch)\\[\\e[m\\]\\$ '\n",[25,615,616],{"__ignoreMap":91},[95,617,618,620,622],{"class":97,"line":98},[95,619,119],{"class":310},[95,621,314],{"class":313},[95,623,624],{"class":105},"'\\[\\e[0;36m\\]\\u@\\h\\[\\e[m\\]:\\[\\e[1;34m\\]\\w\\[\\e[0;33m\\]$(parse_git_branch)\\[\\e[m\\]\\$ '\n",[21,626,627],{},"Эта функция будет показывать ветку в скобках, если текущая директория — репозиторий Git.",[16,629,631],{"id":630},"шаг-6-оптимизируйте-и-комбинируйте","Шаг 6: Оптимизируйте и комбинируйте",[21,633,634],{},"Теперь объединим всё: цвета, время, Git, статус. Пример продвинутого prompt:",[86,636,638],{"className":88,"code":637,"language":90,"meta":91,"style":91},"# Функция для Git\nparse_git_branch() {\n    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \\(.*\\)/ (\\1)/'\n}\n\n# PROMPT_COMMAND для статуса\nPROMPT_COMMAND='RET=$?; [[ $RET != 0 ]] && echo -ne \"\\e[0;31m!$RET \\e[m\"'\n\n# Сам PS1\nPS1='\\[\\e[0;33m\\]\\t \\[\\e[m\\]\\u@\\h:\\[\\e[1;34m\\]\\w\\[\\e[0;32m\\]$(parse_git_branch)\\[\\e[m\\]\\$ '\n",[25,639,640,646,652,674,679,686,692,702,707,713],{"__ignoreMap":91},[95,641,642],{"class":97,"line":98},[95,643,645],{"class":644},"sJ8bj","# Функция для Git\n",[95,647,648,650],{"class":97,"line":540},[95,649,566],{"class":101},[95,651,569],{"class":310},[95,653,654,656,658,660,662,664,666,668,670,672],{"class":97,"line":604},[95,655,574],{"class":101},[95,657,577],{"class":105},[95,659,580],{"class":313},[95,661,583],{"class":105},[95,663,586],{"class":313},[95,665,589],{"class":101},[95,667,593],{"class":592},[95,669,596],{"class":105},[95,671,593],{"class":592},[95,673,601],{"class":105},[95,675,677],{"class":97,"line":676},4,[95,678,607],{"class":310},[95,680,682],{"class":97,"line":681},5,[95,683,685],{"emptyLinePlaceholder":684},true,"\n",[95,687,689],{"class":97,"line":688},6,[95,690,691],{"class":644},"# PROMPT_COMMAND для статуса\n",[95,693,695,697,699],{"class":97,"line":694},7,[95,696,523],{"class":310},[95,698,314],{"class":313},[95,700,701],{"class":105},"'RET=$?; [[ $RET != 0 ]] && echo -ne \"\\e[0;31m!$RET \\e[m\"'\n",[95,703,705],{"class":97,"line":704},8,[95,706,685],{"emptyLinePlaceholder":684},[95,708,710],{"class":97,"line":709},9,[95,711,712],{"class":644},"# Сам PS1\n",[95,714,716,718,720],{"class":97,"line":715},10,[95,717,119],{"class":310},[95,719,314],{"class":313},[95,721,722],{"class":105},"'\\[\\e[0;33m\\]\\t \\[\\e[m\\]\\u@\\h:\\[\\e[1;34m\\]\\w\\[\\e[0;32m\\]$(parse_git_branch)\\[\\e[m\\]\\$ '\n",[21,724,725],{},"Этот prompt:",[322,727,728,731,734,737,740],{},[37,729,730],{},"Показывает время (желтый).",[37,732,733],{},"Имя пользователя и хост (стандартный цвет).",[37,735,736],{},"Текущий путь (жирный синий).",[37,738,739],{},"Ветку Git (зеленый).",[37,741,742,743,746],{},"При ошибке предыдущей команды выводит ",[25,744,745],{},"!код"," красным.",[21,748,749,752,753,756,757,760,761,763],{},[279,750,751],{},"Совет",": Если prompt становится слишком длинным или медленным (например, из-за частых вызовов ",[25,754,755],{},"git","), упростите его. Для Git можно использовать более быстрые альтернативы, например, ",[25,758,759],{},"__git_ps1"," из пакета ",[25,762,755],{}," (если установлен).",[16,765,767],{"id":766},"проверка-результата","Проверка результата",[34,769,770,779,782,803],{},[37,771,772,773,775,776,778],{},"После внесения изменений в ",[25,774,49],{}," выполните ",[25,777,366],{}," или закройте и откройте терминал заново.",[37,780,781],{},"Убедитесь, что prompt отображается с цветами и информацией.",[37,783,784,785],{},"Проверьте сценарии:\n",[322,786,787,790,797],{},[37,788,789],{},"Перейдите в директорию с Git-репозиторием — должна отобразиться ветка.",[37,791,792,793,796],{},"Выполните команду, которая завершится с ошибкой (например, ",[25,794,795],{},"ls non_existent_file","). В следующем prompt должен появиться код ошибки.",[37,798,799,800,802],{},"Проверьте, что цвета не \"разбегаются\" (после сброса ",[25,801,356],{}," следующий текст должен быть стандартного цвета).",[37,804,805,806,808,809,811,812,814],{},"Если что-то не работает, проверьте синтаксис в ",[25,807,49],{}," (лишние кавычки, отсутствие ",[25,810,268],{},"/",[25,813,272],{}," для цветов).",[16,816,818],{"id":817},"возможные-проблемы","Возможные проблемы",[463,820,822],{"id":821},"проблема-1-цвета-не-отображаются-или-разбегаются","Проблема 1: Цвета не отображаются или \"разбегаются\"",[21,824,825,828,829,269,831,833],{},[279,826,827],{},"Причина",": Неправильное использование ",[25,830,268],{},[25,832,272],{}," вокруг непечатаемых символов (escape-последовательностей). Bash использует эти маркеры для корректного расчета длины prompt. Если их нет, курсор может смещаться.",[21,835,836,839,840,269,842,844,845,43],{},[279,837,838],{},"Решение",": Убедитесь, что каждый блок цвета (включая сброс) обернут в ",[25,841,268],{},[25,843,272],{},". Пример правильного: ",[25,846,847],{},"\\[\\e[0;32m\\]...\\[\\e[m\\]",[463,849,851],{"id":850},"проблема-2-prompt-слишком-медленный","Проблема 2: Prompt слишком медленный",[21,853,854,856,857,60,860,862],{},[279,855,827],{},": Выполнение тяжелых команд (например, ",[25,858,859],{},"git status",[25,861,566],{}," без кэширования) при каждом выводе prompt.",[21,864,865,474],{},[279,866,838],{},[322,868,869,878,887],{},[37,870,871,872,874,875,877],{},"Упростите функцию Git, используя ",[25,873,759],{}," (если установлен пакет ",[25,876,755],{},"). Он оптимизирован.",[37,879,880,881,883,884,64],{},"Или добавьте кэширование: например, обновлять информацию о Git только при изменении директории (через ",[25,882,523],{}," и проверку ",[25,885,886],{},"$PWD",[37,888,889],{},"Удалите ненужные данные из PS1.",[463,891,893],{"id":892},"проблема-3-unicode-символы-или-эмодзи-отображаются-некорректно","Проблема 3: Unicode-символы или эмодзи отображаются некорректно",[21,895,896,898],{},[279,897,827],{},": Терминал или шрифт не поддерживают эти символы, или локаль не в UTF-8.",[21,900,901,474],{},[279,902,838],{},[322,904,905,908,925],{},[37,906,907],{},"Установите шрифт с поддержкой эмодзи (например, Nerd Fonts).",[37,909,910,911,914,915,918,919,922,923,43],{},"Проверьте локаль: ",[25,912,913],{},"locale"," должен содержать ",[25,916,917],{},"UTF-8",". При необходимости: ",[25,920,921],{},"export LANG=en_US.UTF-8"," в ",[25,924,49],{},[37,926,927],{},"Убедитесь, что терминал настроен на UTF-8.",[463,929,931,932],{"id":930},"проблема-4-изменения-не-применяются-после-source-bashrc","Проблема 4: Изменения не применяются после ",[25,933,366],{},[21,935,936,938,939,941],{},[279,937,827],{},": Синтаксическая ошибка в ",[25,940,49],{}," (например, незакрытая кавычка). Bash может не загружать файл при ошибке.",[21,943,944,946,947,950,951,953],{},[279,945,838],{},": Проверьте файл на синтаксис, выполнив ",[25,948,949],{},"bash -n ~/.bashrc",". Исправьте ошибки. Также убедитесь, что вы не перезаписываете ",[25,952,119],{}," позже в том же файле (порядок важен).",[955,956,957],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":91,"searchDepth":540,"depth":540,"links":959},[960,961,962,963,964,965,966,971,972,973],{"id":18,"depth":540,"text":19},{"id":31,"depth":540,"text":32},{"id":70,"depth":540,"text":71},{"id":112,"depth":540,"text":113},{"id":290,"depth":540,"text":291},{"id":373,"depth":540,"text":374},{"id":460,"depth":540,"text":461,"children":967},[968,969,970],{"id":465,"depth":604,"text":466},{"id":491,"depth":604,"text":492},{"id":550,"depth":604,"text":551},{"id":630,"depth":540,"text":631},{"id":766,"depth":540,"text":767},{"id":817,"depth":540,"text":818,"children":974},[975,976,977,978],{"id":821,"depth":604,"text":822},{"id":850,"depth":604,"text":851},{"id":892,"depth":604,"text":893},{"id":930,"depth":604,"text":979},"Проблема 4: Изменения не применяются после source ~/.bashrc",null,"2026-02-16 12:52:35","Полное руководство по изменению приглашения командной строки в bash. Научитесь настраивать PS1, добавлять цвета, время, текущую директорию и другие данные. Примеры для Ubuntu, Fedora, Arch Linux.","medium",false,"15-30 мин","md",[988,991,994,997],{"answer":989,"question":990},"Чтобы вернуть стандартный prompt, удалите или закомментируйте изменения в переменной PS1 в файле ~/.bashrc и выполните `source ~/.bashrc`.","Как вернуть стандартный prompt в bash?",{"answer":992,"question":993},"Убедитесь, что ваш терминал поддерживает 256 цветов и что вы используете правильные escape-последовательности. Также проверьте, что переменная TERM установлена в xterm-256color.","Почему цвета в bash prompt не работают?",{"answer":995,"question":996},"Используйте escape-последовательность `\\` (полный путь) или `\\` (только имя текущей директории) в значении PS1.","Как добавить текущую директорию в prompt?",{"answer":998,"question":999},"Да, но убедитесь, что ваш терминал и шрифт поддерживают эти символы. Также может потребоваться установка локали в UTF-8.","Можно ли использовать Unicode символы в bash prompt?",[1001,1004,1007,1010],{"name":1002,"text":1003},"Откройте файл ~/.bashrc","Откройте файл ~/.bashrc в любом текстовом редакторе (nano, vim, code и т.д.).",{"name":1005,"text":1006},"Найдите переменную PS1","В файле найдите строку, начинающуюся с `PS1=`. Если такой строки нет, добавьте ее.",{"name":1008,"text":1009},"Измените PS1 под свои нужды","Измените значение PS1, используя escape-последовательности для цветов и информации. Пример: `PS1='\\\\[0;32m\\\\@\\:\\\\ \\\\[m\\'`.",{"name":1011,"text":1012},"Примените изменения","Сохраните файл и выполните команду `source ~/.bashrc` или перезапустите терминал.","PT20M",[1015,1016,1017,1018,1019,1020,1021,1022,1023,1024],"кастомизация bash prompt","изменить приглащение bash","PS1 bash","цвета в bash prompt","bashrc prompt","как настроить bash prompt","пользовательское приглащение bash","bash prompt цвета","bash prompt примеры","bash prompt текущая директория","ru_RU",{},"/guides/linux/customize-bash-prompt","linux",[1030,1031,1032],"/guides/linux/bash-aliases","/guides/linux/bashrc-configuration","/guides/linux/zsh-vs-bash","Гайды Linux",{"title":5,"description":982},"guides/linux/customize-bash-prompt","В этом гайде вы узнаете, как полностью кастомизировать приглашение bash (prompt) с помощью переменной PS1. Мы рассмотрим настройку цветов, отображение системной информации и условные конструкции.",[90,1028,1038,1039,119,1040,1041],"конфигурация","терминал","色彩","customization","guide","nL2QII9BRgeGBvAWvnK6BOYToaJ6SD_f9eJn1ZjgJLU",{"data":1045,"body":1046},{},{"type":1047,"children":1048},"root",[1049],{"type":1050,"tag":21,"props":1051,"children":1052},"element",{},[1053,1056,1061],{"type":1054,"value":1055},"text","Чтобы вернуть стандартный prompt, удалите или закомментируйте изменения в переменной PS1 в файле ~/.bashrc и выполните ",{"type":1050,"tag":25,"props":1057,"children":1059},{"className":1058},[],[1060],{"type":1054,"value":366},{"type":1054,"value":43},{"data":1063,"body":1064},{},{"type":1047,"children":1065},[1066],{"type":1050,"tag":21,"props":1067,"children":1068},{},[1069],{"type":1054,"value":992},{"data":1071,"body":1072},{},{"type":1047,"children":1073},[1074],{"type":1050,"tag":21,"props":1075,"children":1076},{},[1077,1079,1085,1087,1092],{"type":1054,"value":1078},"Используйте escape-последовательность ",{"type":1050,"tag":25,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":1054,"value":1084},"\\",{"type":1054,"value":1086}," (полный путь) или ",{"type":1050,"tag":25,"props":1088,"children":1090},{"className":1089},[],[1091],{"type":1054,"value":1084},{"type":1054,"value":1093}," (только имя текущей директории) в значении PS1.",{"data":1095,"body":1096},{},{"type":1047,"children":1097},[1098],{"type":1050,"tag":21,"props":1099,"children":1100},{},[1101],{"type":1054,"value":998},{"data":1103,"body":1104},{},{"type":1047,"children":1105},[1106],{"type":1050,"tag":21,"props":1107,"children":1108},{},[1109],{"type":1054,"value":1003},{"data":1111,"body":1112},{},{"type":1047,"children":1113},[1114],{"type":1050,"tag":21,"props":1115,"children":1116},{},[1117,1119,1125],{"type":1054,"value":1118},"В файле найдите строку, начинающуюся с ",{"type":1050,"tag":25,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":1054,"value":1124},"PS1=",{"type":1054,"value":1126},". Если такой строки нет, добавьте ее.",{"data":1128,"body":1129},{},{"type":1047,"children":1130},[1131],{"type":1050,"tag":21,"props":1132,"children":1133},{},[1134,1136,1142],{"type":1054,"value":1135},"Измените значение PS1, используя escape-последовательности для цветов и информации. Пример: ",{"type":1050,"tag":25,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":1054,"value":1141},"PS1='\\\\[0;32m\\\\@\\:\\\\ \\\\[m\\'",{"type":1054,"value":43},{"data":1144,"body":1145},{},{"type":1047,"children":1146},[1147],{"type":1050,"tag":21,"props":1148,"children":1149},{},[1150,1152,1157],{"type":1054,"value":1151},"Сохраните файл и выполните команду ",{"type":1050,"tag":25,"props":1153,"children":1155},{"className":1154},[],[1156],{"type":1054,"value":366},{"type":1054,"value":1158}," или перезапустите терминал.",[1160,2157,3166],{"id":1161,"title":1162,"appliesTo":1163,"author":11,"body":1165,"canonical":980,"code":980,"createdAt":2101,"description":2102,"difficulty":2103,"draft":984,"estimatedTime":2104,"extension":986,"faq":2105,"howToSteps":2118,"howToTotalTime":2133,"image":980,"keywords":2134,"locale":1025,"meta":2143,"navigation":684,"path":1030,"platform":1028,"related":2144,"section":2148,"seo":2149,"severity":980,"stem":2150,"summary":2151,"tags":2152,"twitterCreator":980,"twitterSite":980,"type":1042,"updatedAt":2101,"__hash__":2156},"content_ru/guides/linux/bash-aliases.md","Ускорьте работу в терминале: полное руководство по Bash алиасам",[1164,7],"Linux (Ubuntu, Debian, CentOS, Fedora)",{"type":13,"value":1166,"toc":2090},[1167,1169,1183,1186,1209,1212,1214,1217,1247,1251,1254,1263,1266,1273,1276,1280,1283,1303,1308,1324,1333,1336,1348,1352,1360,1371,1380,1394,1398,1401,1414,1419,1662,1675,1693,1710,1714,1726,1769,1778,1780,1782,1785,1831,1833,2087],[16,1168,19],{"id":18},[21,1170,1171,1174,1175,1178,1179,1182],{},[279,1172,1173],{},"Bash алиасы"," — это ваши личные сокращения для часто используемых команд. Вместо того чтобы каждый раз печатать длинную строку вроде ",[25,1176,1177],{},"git status --short --branch",", вы можете создать алиас ",[25,1180,1181],{},"alias gst='git status --short --branch'"," и использовать всего два символа.",[21,1184,1185],{},"Этот гайд поможет вам:",[322,1187,1188,1194,1200,1206],{},[37,1189,1190,1193],{},[279,1191,1192],{},"Сэкономить время"," на рутинных операциях.",[37,1195,1196,1199],{},[279,1197,1198],{},"Снизить количество опечаток"," в сложных командах.",[37,1201,1202,1205],{},[279,1203,1204],{},"Персонализировать"," терминал под свои нужды.",[37,1207,1208],{},"Автоматизировать последовательности действий.",[21,1210,1211],{},"После выполнения вы получите более эффективный и удобный рабочий процесс в командной строке Linux.",[16,1213,32],{"id":31},[21,1215,1216],{},"Перед началом убедитесь, что у вас есть:",[34,1218,1219,1222,1225,1240],{},[37,1220,1221],{},"Доступ к терминалу Linux (Ubuntu, Debian, Fedora, CentOS и др.).",[37,1223,1224],{},"Базовое понимание работы командной строки (как выполнять команды, навигация по файловой системе).",[37,1226,1227,1228,1230,1231,1230,1234,1236,1237,1239],{},"Любой текстовый редактор (",[25,1229,102],{},", ",[25,1232,1233],{},"vim",[25,1235,25],{}," и т.д.). В этом гайде используется ",[25,1238,102],{}," как самый простой для новичков.",[37,1241,1242,1243,1246],{},"Права на запись в домашнюю директорию (",[25,1244,1245],{},"/home/ваш_пользователь/","), которые есть по умолчанию.",[16,1248,1250],{"id":1249},"шаг-1-проверьте-существующие-алиасы","Шаг 1: Проверьте существующие алиасы",[21,1252,1253],{},"Сначала посмотрим, какие алиасы уже определены в вашей системе. Откройте терминал и введите:",[86,1255,1257],{"className":88,"code":1256,"language":90,"meta":91,"style":91},"alias\n",[25,1258,1259],{"__ignoreMap":91},[95,1260,1261],{"class":97,"line":98},[95,1262,1256],{"class":592},[21,1264,1265],{},"Вы увидите список, например:",[86,1267,1271],{"className":1268,"code":1270,"language":1054},[1269],"language-text","alias ls='ls --color=auto'\nalias ll='ls -la --color=auto'\nalias grep='grep --color=auto'\n...\n",[25,1272,1270],{"__ignoreMap":91},[21,1274,1275],{},"Это стандартные алиасы, которые могут быть заданы дистрибутивом. Они показывают формат, но нам нужно создавать свои.",[16,1277,1279],{"id":1278},"шаг-2-определите-и-подготовьте-файл-конфигурации","Шаг 2: Определите и подготовьте файл конфигурации",[21,1281,1282],{},"Алиасы, которые должны работать постоянно, хранятся в специальных файлах, которые Bash читает при запуске. Чаще всего это:",[322,1284,1285,1290],{},[37,1286,1287,1289],{},[25,1288,49],{}," — основной файл конфигурации интерактивных оболочек.",[37,1291,1292,1295,1296,1299,1300,1302],{},[25,1293,1294],{},"~/.bash_aliases"," — отдельный файл, который удобно использовать только для алиасов. Он ",[279,1297,1298],{},"импортируется"," из ",[25,1301,49],{}," по умолчанию во многих дистрибутивах.",[21,1304,1305,1306,474],{},"Проверим, есть ли у вас ",[25,1307,1294],{},[86,1309,1311],{"className":88,"code":1310,"language":90,"meta":91,"style":91},"ls -la ~/.bash_aliases\n",[25,1312,1313],{"__ignoreMap":91},[95,1314,1315,1318,1321],{"class":97,"line":98},[95,1316,1317],{"class":101},"ls",[95,1319,1320],{"class":592}," -la",[95,1322,1323],{"class":105}," ~/.bash_aliases\n",[21,1325,1326,1327,1329,1330,1332],{},"Если файл существует, используем его. Если нет — создадим или будем работать с ",[25,1328,49],{},". Рекомендуется использовать ",[25,1331,1294],{}," для чистоты конфигурации.",[21,1334,1335],{},"Создайте файл, если его нет (это необязательно, но удобно):",[86,1337,1339],{"className":88,"code":1338,"language":90,"meta":91,"style":91},"touch ~/.bash_aliases\n",[25,1340,1341],{"__ignoreMap":91},[95,1342,1343,1346],{"class":97,"line":98},[95,1344,1345],{"class":101},"touch",[95,1347,1323],{"class":105},[16,1349,1351],{"id":1350},"шаг-3-откройте-файл-в-текстовом-редакторе","Шаг 3: Откройте файл в текстовом редакторе",[21,1353,1354,1355,1357,1358,474],{},"Откроем выбранный файл (в примере ",[25,1356,1294],{},") в редакторе ",[25,1359,102],{},[86,1361,1363],{"className":88,"code":1362,"language":90,"meta":91,"style":91},"nano ~/.bash_aliases\n",[25,1364,1365],{"__ignoreMap":91},[95,1366,1367,1369],{"class":97,"line":98},[95,1368,102],{"class":101},[95,1370,1323],{"class":105},[21,1372,1373,1374,1376,1377,43],{},"Если вы решили использовать ",[25,1375,49],{},", команда будет ",[25,1378,1379],{},"nano ~/.bashrc",[21,1381,1382,1383,1386,1387,1390,1391,43],{},"Вы попадёте в простой текстовый редактор. Для сохранения и выхода нажмите ",[25,1384,1385],{},"Ctrl+X",", затем ",[25,1388,1389],{},"Y"," (Yes) и ",[25,1392,1393],{},"Enter",[16,1395,1397],{"id":1396},"шаг-4-добавьте-свои-алиасы","Шаг 4: Добавьте свои алиасы",[21,1399,1400],{},"Теперь добавим полезные алиасы. Каждый алиас — это отдельная строка вида:",[86,1402,1404],{"className":88,"code":1403,"language":90,"meta":91,"style":91},"alias имя_алиаса='команда_с_аргументами'\n",[25,1405,1406],{"__ignoreMap":91},[95,1407,1408,1411],{"class":97,"line":98},[95,1409,1410],{"class":592},"alias",[95,1412,1413],{"class":105}," имя_алиаса='команда_с_аргументами'\n",[21,1415,1416],{},[279,1417,1418],{},"Примеры для вставки в файл:",[86,1420,1422],{"className":88,"code":1421,"language":90,"meta":91,"style":91},"# Безопасное управление пакетами (Ubuntu/Debian)\nalias update='sudo apt update'\nalias upgrade='sudo apt upgrade -y'\nalias install='sudo apt install'\n\n# Удобный просмотр файлов\nalias ll='ls -la --color=auto'\nalias la='ls -A --color=auto'\nalias l='ls -CF --color=auto'\n\n# Git в двух символах\nalias g='git'\nalias gs='git status'\nalias ga='git add'\nalias gc='git commit'\nalias gd='git diff'\nalias gl='git log --oneline --graph --decorate --all'\n\n# Быстрая навигация\nalias ..='cd ..'\nalias ...='cd ../..'\nalias c='clear'\n\n# Поиск с подсветкой\nalias h='history | grep'\n",[25,1423,1424,1429,1441,1453,1465,1469,1474,1486,1498,1510,1514,1520,1533,1546,1559,1572,1585,1598,1603,1609,1617,1625,1638,1643,1649],{"__ignoreMap":91},[95,1425,1426],{"class":97,"line":98},[95,1427,1428],{"class":644},"# Безопасное управление пакетами (Ubuntu/Debian)\n",[95,1430,1431,1433,1436,1438],{"class":97,"line":540},[95,1432,1410],{"class":313},[95,1434,1435],{"class":310}," update",[95,1437,314],{"class":313},[95,1439,1440],{"class":105},"'sudo apt update'\n",[95,1442,1443,1445,1448,1450],{"class":97,"line":604},[95,1444,1410],{"class":313},[95,1446,1447],{"class":310}," upgrade",[95,1449,314],{"class":313},[95,1451,1452],{"class":105},"'sudo apt upgrade -y'\n",[95,1454,1455,1457,1460,1462],{"class":97,"line":676},[95,1456,1410],{"class":313},[95,1458,1459],{"class":310}," install",[95,1461,314],{"class":313},[95,1463,1464],{"class":105},"'sudo apt install'\n",[95,1466,1467],{"class":97,"line":681},[95,1468,685],{"emptyLinePlaceholder":684},[95,1470,1471],{"class":97,"line":688},[95,1472,1473],{"class":644},"# Удобный просмотр файлов\n",[95,1475,1476,1478,1481,1483],{"class":97,"line":694},[95,1477,1410],{"class":313},[95,1479,1480],{"class":310}," ll",[95,1482,314],{"class":313},[95,1484,1485],{"class":105},"'ls -la --color=auto'\n",[95,1487,1488,1490,1493,1495],{"class":97,"line":704},[95,1489,1410],{"class":313},[95,1491,1492],{"class":310}," la",[95,1494,314],{"class":313},[95,1496,1497],{"class":105},"'ls -A --color=auto'\n",[95,1499,1500,1502,1505,1507],{"class":97,"line":709},[95,1501,1410],{"class":313},[95,1503,1504],{"class":310}," l",[95,1506,314],{"class":313},[95,1508,1509],{"class":105},"'ls -CF --color=auto'\n",[95,1511,1512],{"class":97,"line":715},[95,1513,685],{"emptyLinePlaceholder":684},[95,1515,1517],{"class":97,"line":1516},11,[95,1518,1519],{"class":644},"# Git в двух символах\n",[95,1521,1523,1525,1528,1530],{"class":97,"line":1522},12,[95,1524,1410],{"class":313},[95,1526,1527],{"class":310}," g",[95,1529,314],{"class":313},[95,1531,1532],{"class":105},"'git'\n",[95,1534,1536,1538,1541,1543],{"class":97,"line":1535},13,[95,1537,1410],{"class":313},[95,1539,1540],{"class":310}," gs",[95,1542,314],{"class":313},[95,1544,1545],{"class":105},"'git status'\n",[95,1547,1549,1551,1554,1556],{"class":97,"line":1548},14,[95,1550,1410],{"class":313},[95,1552,1553],{"class":310}," ga",[95,1555,314],{"class":313},[95,1557,1558],{"class":105},"'git add'\n",[95,1560,1562,1564,1567,1569],{"class":97,"line":1561},15,[95,1563,1410],{"class":313},[95,1565,1566],{"class":310}," gc",[95,1568,314],{"class":313},[95,1570,1571],{"class":105},"'git commit'\n",[95,1573,1575,1577,1580,1582],{"class":97,"line":1574},16,[95,1576,1410],{"class":313},[95,1578,1579],{"class":310}," gd",[95,1581,314],{"class":313},[95,1583,1584],{"class":105},"'git diff'\n",[95,1586,1588,1590,1593,1595],{"class":97,"line":1587},17,[95,1589,1410],{"class":313},[95,1591,1592],{"class":310}," gl",[95,1594,314],{"class":313},[95,1596,1597],{"class":105},"'git log --oneline --graph --decorate --all'\n",[95,1599,1601],{"class":97,"line":1600},18,[95,1602,685],{"emptyLinePlaceholder":684},[95,1604,1606],{"class":97,"line":1605},19,[95,1607,1608],{"class":644},"# Быстрая навигация\n",[95,1610,1612,1614],{"class":97,"line":1611},20,[95,1613,1410],{"class":592},[95,1615,1616],{"class":105}," ..='cd ..'\n",[95,1618,1620,1622],{"class":97,"line":1619},21,[95,1621,1410],{"class":592},[95,1623,1624],{"class":105}," ...='cd ../..'\n",[95,1626,1628,1630,1633,1635],{"class":97,"line":1627},22,[95,1629,1410],{"class":313},[95,1631,1632],{"class":310}," c",[95,1634,314],{"class":313},[95,1636,1637],{"class":105},"'clear'\n",[95,1639,1641],{"class":97,"line":1640},23,[95,1642,685],{"emptyLinePlaceholder":684},[95,1644,1646],{"class":97,"line":1645},24,[95,1647,1648],{"class":644},"# Поиск с подсветкой\n",[95,1650,1652,1654,1657,1659],{"class":97,"line":1651},25,[95,1653,1410],{"class":313},[95,1655,1656],{"class":310}," h",[95,1658,314],{"class":313},[95,1660,1661],{"class":105},"'history | grep'\n",[1663,1664,1665],"blockquote",{},[21,1666,1667,1668,1671,1672,1674],{},"💡 ",[279,1669,1670],{},"Совет:"," Добавляйте комментарии (строки, начинающиеся с ",[25,1673,206],{},") для пояснения, что делает каждый блок алиасов. Это поможет в будущем.",[21,1676,1677,1680,1681,1684,1685,1688,1689,1692],{},[279,1678,1679],{},"Важно:"," Если ваша команда содержит ",[279,1682,1683],{},"апострофы (')",", используйте для обрамления ",[279,1686,1687],{},"двойные кавычки (\")"," или экранируйте внутренние апострофы обратным слэшем (",[25,1690,1691],{},"\\'","). Например:",[86,1694,1696],{"className":88,"code":1695,"language":90,"meta":91,"style":91},"alias greet=\"echo 'Привет, мир!'\"\n",[25,1697,1698],{"__ignoreMap":91},[95,1699,1700,1702,1705,1707],{"class":97,"line":98},[95,1701,1410],{"class":313},[95,1703,1704],{"class":310}," greet",[95,1706,314],{"class":313},[95,1708,1709],{"class":105},"\"echo 'Привет, мир!'\"\n",[16,1711,1713],{"id":1712},"шаг-5-примените-изменения","Шаг 5: Примените изменения",[21,1715,1716,1717,1230,1719,1230,1721,922,1723,1725],{},"После сохранения файла (",[25,1718,1385],{},[25,1720,1389],{},[25,1722,1393],{},[25,1724,102],{},") изменения не вступят в силу в текущем открытом терминале. Нужно «перезагрузить» конфигурацию. Есть два способа:",[34,1727,1728,1763],{},[37,1729,1730,1733,1734,1746,1749,1750,474,1752],{},[279,1731,1732],{},"Выполнить команду source"," (рекомендуется):",[86,1735,1737],{"className":88,"code":1736,"language":90,"meta":91,"style":91},"source ~/.bashrc\n",[25,1738,1739],{"__ignoreMap":91},[95,1740,1741,1744],{"class":97,"line":98},[95,1742,1743],{"class":592},"source",[95,1745,106],{"class":105},[1747,1748],"br",{},"или, если редактировали ",[25,1751,1294],{},[86,1753,1755],{"className":88,"code":1754,"language":90,"meta":91,"style":91},"source ~/.bash_aliases\n",[25,1756,1757],{"__ignoreMap":91},[95,1758,1759,1761],{"class":97,"line":98},[95,1760,1743],{"class":592},[95,1762,1323],{"class":105},[37,1764,1765,1768],{},[279,1766,1767],{},"Просто закрыть и открыть новый терминал."," Новый сеанс автоматически прочитает конфигурационные файлы.",[21,1770,1771,1772,60,1775,43],{},"Теперь ваши алиасы готовы к использованию! Попробуйте ввести ",[25,1773,1774],{},"ll",[25,1776,1777],{},"gs",[369,1779],{},[16,1781,767],{"id":766},[21,1783,1784],{},"Убедитесь, что алиасы работают:",[34,1786,1787,1814,1824],{},[37,1788,1789,1790,1793,1794,1811,1813],{},"Выполните ",[25,1791,1792],{},"alias | grep \u003Cимя_вашего_алиаса>",". Например:",[86,1795,1797],{"className":88,"code":1796,"language":90,"meta":91,"style":91},"alias | grep ll\n",[25,1798,1799],{"__ignoreMap":91},[95,1800,1801,1803,1805,1808],{"class":97,"line":98},[95,1802,1410],{"class":592},[95,1804,586],{"class":313},[95,1806,1807],{"class":101}," grep",[95,1809,1810],{"class":105}," ll\n",[1747,1812],{},"Должна вывестись строка с определением алиаса.",[37,1815,1816,1817,60,1820,1823],{},"Просто введите один из новых алиасов в терминале, например ",[25,1818,1819],{},"update",[25,1821,1822],{},"..",", и проверьте, выполняется ли соответствующая команда.",[37,1825,1826,1827,1830],{},"Откройте ",[279,1828,1829],{},"новое окно терминала"," и попробуйте алиас там. Это гарантирует, что настройка постоянная.",[16,1832,818],{"id":817},[322,1834,1835,1915,1994,2021,2057],{},[37,1836,1837,1840],{},[279,1838,1839],{},"«Алиас не найден» после перезагрузки.",[322,1841,1842,1860],{},[37,1843,1844,1847,1848,1850,1851,1853,1854,1856,1857,43],{},[279,1845,1846],{},"Причина:"," Вы добавили алиас в файл, но забыли его сохранить, или редактировали не тот файл (",[25,1849,49],{}," вместо ",[25,1852,1294],{},"), а в ",[25,1855,49],{}," нет строки ",[25,1858,1859],{},"if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases; fi",[37,1861,1862,1865,1866,1868,1869,1871,1872,1874,1875,1912,1913,43],{},[279,1863,1864],{},"Решение:"," Убедитесь, что строка сохранена. Проверьте, есть ли в вашем ",[25,1867,49],{}," упоминание ",[25,1870,1294],{},". Если нет — добавьте в конец ",[25,1873,49],{}," строку:\n",[86,1876,1878],{"className":88,"code":1877,"language":90,"meta":91,"style":91},"if [ -f ~/.bash_aliases ]; then\n    . ~/.bash_aliases\nfi\n",[25,1879,1880,1900,1907],{"__ignoreMap":91},[95,1881,1882,1885,1888,1891,1894,1897],{"class":97,"line":98},[95,1883,1884],{"class":313},"if",[95,1886,1887],{"class":310}," [ ",[95,1889,1890],{"class":313},"-f",[95,1892,1893],{"class":313}," ~",[95,1895,1896],{"class":310},"/.bash_aliases ]; ",[95,1898,1899],{"class":313},"then\n",[95,1901,1902,1905],{"class":97,"line":540},[95,1903,1904],{"class":592},"    .",[95,1906,1323],{"class":105},[95,1908,1909],{"class":97,"line":604},[95,1910,1911],{"class":313},"fi\n","\nи снова выполните ",[25,1914,366],{},[37,1916,1917,1920],{},[279,1918,1919],{},"Алиас работает некорректно, особенно с аргументами.",[322,1921,1922,1927],{},[37,1923,1924,1926],{},[279,1925,1846],{}," Неправильный синтаксис или использование алиаса в сценарии, где он не раскрывается (алиасы по умолчанию не работают в неинтерактивных скриптах).",[37,1928,1929,1931,1932,1230,1935,1938,1939,922,1942,1944,1945,1990,1991,43],{},[279,1930,1864],{}," Для алиасов с параметрами проверьте порядок ",[25,1933,1934],{},"$1",[25,1936,1937],{},"$2",". Для использования в скриптах лучше создавать ",[279,1940,1941],{},"функции",[25,1943,49],{},":\n",[86,1946,1948],{"className":88,"code":1947,"language":90,"meta":91,"style":91},"mkcd() {\n    mkdir -p \"$1\" && cd \"$1\"\n}\n",[25,1949,1950,1957,1986],{"__ignoreMap":91},[95,1951,1952,1955],{"class":97,"line":98},[95,1953,1954],{"class":101},"mkcd",[95,1956,569],{"class":310},[95,1958,1959,1962,1965,1968,1970,1973,1976,1979,1981,1983],{"class":97,"line":540},[95,1960,1961],{"class":101},"    mkdir",[95,1963,1964],{"class":592}," -p",[95,1966,1967],{"class":105}," \"",[95,1969,1934],{"class":592},[95,1971,1972],{"class":105},"\"",[95,1974,1975],{"class":310}," && ",[95,1977,1978],{"class":592},"cd",[95,1980,1967],{"class":105},[95,1982,1934],{"class":592},[95,1984,1985],{"class":105},"\"\n",[95,1987,1988],{"class":97,"line":604},[95,1989,607],{"class":310},"\nИли используйте скрипты в ",[25,1992,1993],{},"~/bin/",[37,1995,1996,1999],{},[279,1997,1998],{},"Конфликт имён алиасов с существующими командами.",[322,2000,2001,2010],{},[37,2002,2003,2005,2006,2009],{},[279,2004,1846],{}," Вы дали алиасу имя, которое уже является реальной командой (например, ",[25,2007,2008],{},"alias ls='...'","). Это может сломать ожидаемое поведение.",[37,2011,2012,2014,2015,2018,2019,64],{},[279,2013,1864],{}," Выбирайте уникальные имена. Если нужно временно отменить алиас и использовать оригинальную команду, используйте обратный слэш: ",[25,2016,2017],{},"\\ls"," (вместо ",[25,2020,1317],{},[37,2022,2023,2030],{},[279,2024,2025,2026,2029],{},"Алиас не срабатывает в ",[25,2027,2028],{},"sudo"," команде.",[322,2031,2032,2040],{},[37,2033,2034,2036,2037,2039],{},[279,2035,1846],{}," Алиасы раскрываются только для текущего пользователя. При использовании ",[25,2038,2028],{}," команда выполняется от root, у которого свой набор алиасов.",[37,2041,2042,2044,2045,2047,2048,2050,2051,2053,2054,43],{},[279,2043,1864],{}," Либо не используйте алиас с ",[25,2046,2028],{}," (вызывайте ",[25,2049,2028],{}," внутри алиаса, как в примере ",[25,2052,1819],{},"), либо настройте алиасы для root (не рекомендуется). Лучший вариант — ",[25,2055,2056],{},"alias update='sudo apt update'",[37,2058,2059,2062],{},[279,2060,2061],{},"Ошибка синтаксиса при редактировании файла.",[322,2063,2064,2069],{},[37,2065,2066,2068],{},[279,2067,1846],{}," Лишние пробелы, отсутствие кавычек или неправильные символы.",[37,2070,2071,2073,2074,2076,2077,2080,2081,2083,2084,43],{},[279,2072,1864],{}," Проверьте каждую строку. Помните, что после ",[25,2075,1410],{}," ",[279,2078,2079],{},"должен быть пробел",", затем имя, знак ",[25,2082,314],{},", и команда в кавычках. Пример правильного синтаксиса: ",[25,2085,2086],{},"alias ll='ls -la'",[955,2088,2089],{},"html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":91,"searchDepth":540,"depth":540,"links":2091},[2092,2093,2094,2095,2096,2097,2098,2099,2100],{"id":18,"depth":540,"text":19},{"id":31,"depth":540,"text":32},{"id":1249,"depth":540,"text":1250},{"id":1278,"depth":540,"text":1279},{"id":1350,"depth":540,"text":1351},{"id":1396,"depth":540,"text":1397},{"id":1712,"depth":540,"text":1713},{"id":766,"depth":540,"text":767},{"id":817,"depth":540,"text":818},"2026-02-16 19:33:11","Научитесь создавать короткие команды-алиасы для частых действий в Linux. Пошаговая инструкция с примерами, настройкой .bashrc и проверкой. Экономия времени гарантирована!","easy","10-15 мин",[2106,2109,2112,2115],{"question":2107,"answer":2108},"Как сделать алиас, чтобы он работал во всех сессиях терминала?","Для постоянного алиаса его необходимо добавить в файл конфигурации оболочки (обычно `~/.bashrc` или `~/.bash_aliases`) и выполнить команду `source ~/.bashrc` или открыть новую сессию терминала.",{"question":2110,"answer":2111},"Можно ли создать алиас с параметрами, например, для команды с аргументом?","Да, используйте `$1`, `$2` и т.д. для захвата аргументов. Пример: `alias greet='echo Привет, $1'`. Тогда `greet Мир` выведет 'Привет, Мир'.",{"question":2113,"answer":2114},"Почему мой алиас не работает после перезагрузки?","Скорее всего, вы создали его только в текущей сессии (просто ввели в терминале). Чтобы алиас сохранялся, его нужно прописать в файле `~/.bashrc` и применить изменения.",{"question":2116,"answer":2117},"Как временно отключить алиас, не удаляя его из конфига?","Используйте встроенную команду `unalias \u003Cимя_алиаса>` для текущей сессии. Для отключения на постоянной основе закомментируйте строку в `~/.bashrc` (поставьте `#` в начале).",[2119,2122,2125,2128,2131],{"name":2120,"text":2121},"Проверьте существующие алиасы","Откройте терминал и выполните команду `alias`. Она покажет все активные алиасы в текущей сессии, включая стандартные, заданные в системе.",{"name":2123,"text":2124},"Определите файл конфигурации","Обычно алиасы хранятся в `~/.bashrc` или `~/.bash_aliases`. Проверьте наличие второго файла. Если его нет, можно использовать первый. Рекомендуется создавать отдельный `~/.bash_aliases` для чистоты.",{"name":2126,"text":2127},"Откройте файл в текстовом редакторе","Используйте `nano ~/.bashrc` или `vim ~/.bashrc` (или `~/.bash_aliases`). Вам потребуются права на запись в домашней директории, которые есть по умолчанию.",{"name":2129,"text":2130},"Добавьте свои алиасы","В конец файла добавьте строки по шаблону `alias имя='команда'`. Например: `alias ll='ls -la --color=auto'`. Для нескольких команд используйте `&&` или точку с запятой.",{"name":1011,"text":2132},"Сохраните файл и выполните `source ~/.bashrc` (или `source ~/.bash_aliases`), чтобы загрузить новые алиасы в текущую сессию без перезапуска терминала.","PT15M",[2135,2136,2137,2138,2139,2140,2141,2142],"bash alias примеры","как создать алиас в ubuntu","permanent bash aliases","настройка .bashrc алиасы","сокращения команд в терминале","bash alias для git","удаление алиаса bash","временный алиас bash",{},[2145,2146,2147],"/guides/linux/bashrc-customization","/guides/linux/command-line-shortcuts","/guides/linux/shell-scripting-basics","Гайды по Linux",{"title":1162,"description":2102},"guides/linux/bash-aliases","Этот гайд подробно объясняет, что такое алиасы в Bash, зачем они нужны и как их правильно настроить для ускорения повседневной работы в терминале Linux. Вы научитесь создавать, сохранять и использовать собственные сокращения для длинных команд.",[1028,90,2153,1039,2154,2155],"aliases","автоматизация","cli","9L093S8UYmGLj8iWkO8WXPiMULkAVwPUPZ5tFB_aKic",{"id":2158,"title":2159,"appliesTo":2160,"author":11,"body":2163,"canonical":980,"code":980,"createdAt":3111,"description":3112,"difficulty":2103,"draft":984,"estimatedTime":985,"extension":986,"faq":3113,"howToSteps":3126,"howToTotalTime":1013,"image":980,"keywords":3144,"locale":1025,"meta":3153,"navigation":684,"path":1031,"platform":1028,"related":3154,"section":2148,"seo":3158,"severity":980,"stem":3159,"summary":3160,"tags":3161,"twitterCreator":980,"twitterSite":980,"type":1042,"updatedAt":3111,"__hash__":3165},"content_ru/guides/linux/bashrc-configuration.md","Настройка .bashrc: полное руководство по кастомизации терминала",[7,8,2161,2162,9],"Debian 11+","CentOS 8+",{"type":13,"value":2164,"toc":3088},[2165,2167,2176,2202,2205,2207,2210,2250,2254,2258,2263,2313,2318,2328,2336,2346,2350,2356,2432,2443,2447,2452,2457,2490,2495,2538,2551,2555,2561,2567,2703,2713,2717,2720,2800,2804,2810,2848,2856,2858,2860,2863,2908,2914,2916,2922,2929,2955,2962,2983,2990,3015,3022,3048,3079,3085],[16,2166,19],{"id":18},[21,2168,2169,2170,2175],{},"Файл ",[279,2171,2172],{},[25,2173,2174],{},".bashrc"," (bash run commands) — это скрипт конфигурации, который автоматически выполняется каждый раз при запуске нового интерактивного окна терминала Bash. Настройка этого файла позволяет:",[322,2177,2178,2184,2190,2196],{},[37,2179,2180,2183],{},[279,2181,2182],{},"Автоматизировать"," рутинные команды через алиасы.",[37,2185,2186,2189],{},[279,2187,2188],{},"Кастомизировать"," внешний вид командной строки (приглашение PS1, цвета).",[37,2191,2192,2195],{},[279,2193,2194],{},"Задавать"," глобальные переменные окружения (PATH, EDITOR).",[37,2197,2198,2201],{},[279,2199,2200],{},"Загружать"," дополнительные функции и скрипты.",[21,2203,2204],{},"Этот гайд поможет вам превратить стандартный терминал в мощный и удобный инструмент, адаптированный под ваши задачи.",[16,2206,32],{"id":31},[21,2208,2209],{},"Перед началом убедитесь, что:",[34,2211,2212,2227,2232,2240],{},[37,2213,2214,2215,2218,2219,2222,2223,2226],{},"Вы работаете в ",[279,2216,2217],{},"оболочке Bash"," (обычно по умолчанию). Проверить можно командой ",[25,2220,2221],{},"echo $SHELL",". Если путь заканчивается на ",[25,2224,2225],{},"/bash",", всё в порядке.",[37,2228,2229,2230,64],{},"У вас есть доступ к домашней директории (",[25,2231,183],{},[37,2233,2234,2235,2237,2238,64],{},"Установлен текстовый редактор (рекомендуется ",[25,2236,102],{}," для новичков или ",[25,2239,1233],{},[37,2241,2242,2243,1230,2245,1230,2247,64],{},"Вы понимаете базовые команды Linux (",[25,2244,1317],{},[25,2246,1978],{},[25,2248,2249],{},"cat",[16,2251,2253],{"id":2252},"пошаговая-инструкция","Пошаговая инструкция",[463,2255,2257],{"id":2256},"шаг-1-найдите-и-откройте-файл-bashrc","Шаг 1: Найдите и откройте файл .bashrc",[21,2259,2169,2260,2262],{},[25,2261,2174],{}," расположен в вашей домашней директории. Он может быть скрытым (начинается с точки).",[86,2264,2266],{"className":88,"code":2265,"language":90,"meta":91,"style":91},"# Перейдите в домашнюю директорию\ncd ~\n\n# Проверьте, существует ли файл\nls -la .bashrc\n\n# Если файла нет, создайте его (часто он уже есть)\ntouch .bashrc\n",[25,2267,2268,2273,2280,2284,2289,2298,2302,2307],{"__ignoreMap":91},[95,2269,2270],{"class":97,"line":98},[95,2271,2272],{"class":644},"# Перейдите в домашнюю директорию\n",[95,2274,2275,2277],{"class":97,"line":540},[95,2276,1978],{"class":592},[95,2278,2279],{"class":105}," ~\n",[95,2281,2282],{"class":97,"line":604},[95,2283,685],{"emptyLinePlaceholder":684},[95,2285,2286],{"class":97,"line":676},[95,2287,2288],{"class":644},"# Проверьте, существует ли файл\n",[95,2290,2291,2293,2295],{"class":97,"line":681},[95,2292,1317],{"class":101},[95,2294,1320],{"class":592},[95,2296,2297],{"class":105}," .bashrc\n",[95,2299,2300],{"class":97,"line":688},[95,2301,685],{"emptyLinePlaceholder":684},[95,2303,2304],{"class":97,"line":694},[95,2305,2306],{"class":644},"# Если файла нет, создайте его (часто он уже есть)\n",[95,2308,2309,2311],{"class":97,"line":704},[95,2310,1345],{"class":101},[95,2312,2297],{"class":105},[21,2314,2315,2316,474],{},"Откройте файл в редакторе. Для новичков проще ",[25,2317,102],{},[86,2319,2320],{"className":88,"code":89,"language":90,"meta":91,"style":91},[25,2321,2322],{"__ignoreMap":91},[95,2323,2324,2326],{"class":97,"line":98},[95,2325,102],{"class":101},[95,2327,106],{"class":105},[21,2329,2330,2331,60,2333,43],{},"Для опытных пользователей подойдёт ",[25,2332,1233],{},[25,2334,2335],{},"vim ~/.bashrc",[1663,2337,2338],{},[21,2339,1667,2340,2342,2343,43],{},[279,2341,1670],{}," Перед редактированием сделайте резервную копию: ",[25,2344,2345],{},"cp ~/.bashrc ~/.bashrc.backup",[463,2347,2349],{"id":2348},"шаг-2-добавьте-простой-алиас","Шаг 2: Добавьте простой алиас",[21,2351,2352,2353,2355],{},"Алиас — это сокращение для длинной команды. Добавьте в конец файла ",[25,2354,2174],{}," следующие строки:",[86,2357,2359],{"className":88,"code":2358,"language":90,"meta":91,"style":91},"# Обновление списка пакетов и установка (для Debian/Ubuntu)\nalias update='sudo apt update && sudo apt upgrade -y'\n\n# Краткий список файлов с деталями и цветами\nalias ll='ls -la --color=auto'\n\n# Быстрый переход на уровень выше\nalias ..='cd ..'\n\n# Очистка экрана с дополнительной командой (пример)\nalias cls='clear && echo \"Терминал очищен\"'\n",[25,2360,2361,2366,2377,2381,2386,2396,2400,2405,2411,2415,2420],{"__ignoreMap":91},[95,2362,2363],{"class":97,"line":98},[95,2364,2365],{"class":644},"# Обновление списка пакетов и установка (для Debian/Ubuntu)\n",[95,2367,2368,2370,2372,2374],{"class":97,"line":540},[95,2369,1410],{"class":313},[95,2371,1435],{"class":310},[95,2373,314],{"class":313},[95,2375,2376],{"class":105},"'sudo apt update && sudo apt upgrade -y'\n",[95,2378,2379],{"class":97,"line":604},[95,2380,685],{"emptyLinePlaceholder":684},[95,2382,2383],{"class":97,"line":676},[95,2384,2385],{"class":644},"# Краткий список файлов с деталями и цветами\n",[95,2387,2388,2390,2392,2394],{"class":97,"line":681},[95,2389,1410],{"class":313},[95,2391,1480],{"class":310},[95,2393,314],{"class":313},[95,2395,1485],{"class":105},[95,2397,2398],{"class":97,"line":688},[95,2399,685],{"emptyLinePlaceholder":684},[95,2401,2402],{"class":97,"line":694},[95,2403,2404],{"class":644},"# Быстрый переход на уровень выше\n",[95,2406,2407,2409],{"class":97,"line":704},[95,2408,1410],{"class":592},[95,2410,1616],{"class":105},[95,2412,2413],{"class":97,"line":709},[95,2414,685],{"emptyLinePlaceholder":684},[95,2416,2417],{"class":97,"line":715},[95,2418,2419],{"class":644},"# Очистка экрана с дополнительной командой (пример)\n",[95,2421,2422,2424,2427,2429],{"class":97,"line":1516},[95,2423,1410],{"class":313},[95,2425,2426],{"class":310}," cls",[95,2428,314],{"class":313},[95,2430,2431],{"class":105},"'clear && echo \"Терминал очищен\"'\n",[21,2433,2434,2435,2438,2439,2442],{},"Сохраните файл (",[25,2436,2437],{},"Ctrl+O"," в nano, ",[25,2440,2441],{},":wq"," в vim) и закройте редактор.",[463,2444,2446],{"id":2445},"шаг-3-настройте-приглашение-командной-строки-ps1","Шаг 3: Настройте приглашение командной строки (PS1)",[21,2448,116,2449,2451],{},[25,2450,119],{}," определяет, как выглядит ваше приглашение ввода. Стандартное значение может быть скучным.",[21,2453,297,2454,2456],{},[25,2455,2174],{}," строку для настройки:",[86,2458,2460],{"className":88,"code":2459,"language":90,"meta":91,"style":91},"# Пример: user@host:/текущая/папка$\nPS1='\\[\\e[0;32m\\]\\u@\\h:\\w\\$\\[\\e[0m\\] '\n\n# Или с временем и базовым цветом\n# PS1='[\\t] \\u@\\h:\\w\\$ '\n",[25,2461,2462,2467,2476,2480,2485],{"__ignoreMap":91},[95,2463,2464],{"class":97,"line":98},[95,2465,2466],{"class":644},"# Пример: user@host:/текущая/папка$\n",[95,2468,2469,2471,2473],{"class":97,"line":540},[95,2470,119],{"class":310},[95,2472,314],{"class":313},[95,2474,2475],{"class":105},"'\\[\\e[0;32m\\]\\u@\\h:\\w\\$\\[\\e[0m\\] '\n",[95,2477,2478],{"class":97,"line":604},[95,2479,685],{"emptyLinePlaceholder":684},[95,2481,2482],{"class":97,"line":676},[95,2483,2484],{"class":644},"# Или с временем и базовым цветом\n",[95,2486,2487],{"class":97,"line":681},[95,2488,2489],{"class":644},"# PS1='[\\t] \\u@\\h:\\w\\$ '\n",[21,2491,2492],{},[279,2493,2494],{},"Расшифровка кодов:",[322,2496,2497,2502,2507,2515,2525],{},[37,2498,2499,2501],{},[25,2500,147],{}," — имя пользователя.",[37,2503,2504,2506],{},[25,2505,157],{}," — имя хоста (до первой точки).",[37,2508,2509,2511,2512,2514],{},[25,2510,177],{}," — полный путь к текущей директории, с ",[25,2513,183],{}," для домашней.",[37,2516,2517,2519,2520,207,2522,2524],{},[25,2518,201],{}," — показывает ",[25,2521,206],{},[25,2523,210],{}," для обычного пользователя.",[37,2526,2527,2530,2531,2534,2535,64],{},[25,2528,2529],{},"\\[\\e[...m\\]"," — управляющие последовательности для цветов (зелёный ",[25,2532,2533],{},"0;32",", сброс ",[25,2536,2537],{},"0m",[1663,2539,2540],{},[21,2541,2542,2543,2545,2546,269,2548,2550],{},"⚠️ ",[279,2544,1679],{}," Цветовые коды должны быть обрамлены ",[25,2547,268],{},[25,2549,272],{},", иначе команды «съедают» символы в истории.",[463,2552,2554],{"id":2553},"шаг-4-добавьте-пользовательские-функции","Шаг 4: Добавьте пользовательские функции",[21,2556,2557,2558,2560],{},"Для сложных последовательностей команд используйте ",[279,2559,1941],{},". Они мощнее алиасов, так как могут принимать аргументы.",[21,2562,2563,2564,2566],{},"В ",[25,2565,2174],{}," добавьте:",[86,2568,2570],{"className":88,"code":2569,"language":90,"meta":91,"style":91},"# Создаёт папку и сразу в неё переходит\nmkcd() {\n    mkdir -p \"$1\" && cd \"$1\"\n}\n\n# Поиск файлов по имени (игнорируя регистр)\nfindfile() {\n    find . -type f -iname \"*$1*\" 2>/dev/null\n}\n\n# Быстрый просмотр использования диска в текущей папке\ndiskspace() {\n    du -sh . 2>/dev/null || echo \"Ошибка доступа\"\n}\n",[25,2571,2572,2577,2583,2605,2609,2613,2618,2625,2655,2659,2663,2668,2675,2699],{"__ignoreMap":91},[95,2573,2574],{"class":97,"line":98},[95,2575,2576],{"class":644},"# Создаёт папку и сразу в неё переходит\n",[95,2578,2579,2581],{"class":97,"line":540},[95,2580,1954],{"class":101},[95,2582,569],{"class":310},[95,2584,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603],{"class":97,"line":604},[95,2586,1961],{"class":101},[95,2588,1964],{"class":592},[95,2590,1967],{"class":105},[95,2592,1934],{"class":592},[95,2594,1972],{"class":105},[95,2596,1975],{"class":310},[95,2598,1978],{"class":592},[95,2600,1967],{"class":105},[95,2602,1934],{"class":592},[95,2604,1985],{"class":105},[95,2606,2607],{"class":97,"line":676},[95,2608,607],{"class":310},[95,2610,2611],{"class":97,"line":681},[95,2612,685],{"emptyLinePlaceholder":684},[95,2614,2615],{"class":97,"line":688},[95,2616,2617],{"class":644},"# Поиск файлов по имени (игнорируя регистр)\n",[95,2619,2620,2623],{"class":97,"line":694},[95,2621,2622],{"class":101},"findfile",[95,2624,569],{"class":310},[95,2626,2627,2630,2633,2636,2639,2642,2645,2647,2650,2652],{"class":97,"line":704},[95,2628,2629],{"class":101},"    find",[95,2631,2632],{"class":105}," .",[95,2634,2635],{"class":592}," -type",[95,2637,2638],{"class":105}," f",[95,2640,2641],{"class":592}," -iname",[95,2643,2644],{"class":105}," \"*",[95,2646,1934],{"class":592},[95,2648,2649],{"class":105},"*\"",[95,2651,580],{"class":313},[95,2653,2654],{"class":105},"/dev/null\n",[95,2656,2657],{"class":97,"line":709},[95,2658,607],{"class":310},[95,2660,2661],{"class":97,"line":715},[95,2662,685],{"emptyLinePlaceholder":684},[95,2664,2665],{"class":97,"line":1516},[95,2666,2667],{"class":644},"# Быстрый просмотр использования диска в текущей папке\n",[95,2669,2670,2673],{"class":97,"line":1522},[95,2671,2672],{"class":101},"diskspace",[95,2674,569],{"class":310},[95,2676,2677,2680,2683,2685,2687,2690,2693,2696],{"class":97,"line":1535},[95,2678,2679],{"class":101},"    du",[95,2681,2682],{"class":592}," -sh",[95,2684,2632],{"class":105},[95,2686,580],{"class":313},[95,2688,2689],{"class":105},"/dev/null",[95,2691,2692],{"class":313}," ||",[95,2694,2695],{"class":592}," echo",[95,2697,2698],{"class":105}," \"Ошибка доступа\"\n",[95,2700,2701],{"class":97,"line":1548},[95,2702,607],{"class":310},[21,2704,2705,2706,2709,2710,43],{},"Теперь команда ",[25,2707,2708],{},"mkcd новая_папка"," создаст и откроет папку ",[25,2711,2712],{},"новая_папка",[463,2714,2716],{"id":2715},"шаг-5-экспортируйте-переменные-окружения","Шаг 5: Экспортируйте переменные окружения",[21,2718,2719],{},"Переменные окружения доступны всем программам, запущенным из shell.",[86,2721,2723],{"className":88,"code":2722,"language":90,"meta":91,"style":91},"# Установка редактора по умолчанию (для git, crontab -e и др.)\nexport EDITOR=nano\n# Или для Vim: export EDITOR=vim\n\n# Добавление пользовательских бинарников в PATH\nexport PATH=\"$HOME/.local/bin:$PATH\"\n\n# Установка языка для некоторых утилит (например, для вывода даты)\nexport LC_TIME=\"ru_RU.UTF-8\"\n",[25,2724,2725,2730,2743,2748,2752,2757,2779,2783,2788],{"__ignoreMap":91},[95,2726,2727],{"class":97,"line":98},[95,2728,2729],{"class":644},"# Установка редактора по умолчанию (для git, crontab -e и др.)\n",[95,2731,2732,2735,2738,2740],{"class":97,"line":540},[95,2733,2734],{"class":313},"export",[95,2736,2737],{"class":310}," EDITOR",[95,2739,314],{"class":313},[95,2741,2742],{"class":310},"nano\n",[95,2744,2745],{"class":97,"line":604},[95,2746,2747],{"class":644},"# Или для Vim: export EDITOR=vim\n",[95,2749,2750],{"class":97,"line":676},[95,2751,685],{"emptyLinePlaceholder":684},[95,2753,2754],{"class":97,"line":681},[95,2755,2756],{"class":644},"# Добавление пользовательских бинарников в PATH\n",[95,2758,2759,2761,2764,2766,2768,2771,2774,2777],{"class":97,"line":688},[95,2760,2734],{"class":313},[95,2762,2763],{"class":310}," PATH",[95,2765,314],{"class":313},[95,2767,1972],{"class":105},[95,2769,2770],{"class":310},"$HOME",[95,2772,2773],{"class":105},"/.local/bin:",[95,2775,2776],{"class":310},"$PATH",[95,2778,1985],{"class":105},[95,2780,2781],{"class":97,"line":694},[95,2782,685],{"emptyLinePlaceholder":684},[95,2784,2785],{"class":97,"line":704},[95,2786,2787],{"class":644},"# Установка языка для некоторых утилит (например, для вывода даты)\n",[95,2789,2790,2792,2795,2797],{"class":97,"line":709},[95,2791,2734],{"class":313},[95,2793,2794],{"class":310}," LC_TIME",[95,2796,314],{"class":313},[95,2798,2799],{"class":105},"\"ru_RU.UTF-8\"\n",[463,2801,2803],{"id":2802},"шаг-6-примените-изменения","Шаг 6: Примените изменения",[21,2805,2806,2807,2809],{},"После сохранения ",[25,2808,2174],{}," изменения не вступят в силу в уже открытых окнах терминала. Есть два способа:",[34,2811,2812,2842],{},[37,2813,2814,2817,2818,2828,2830,2831],{},[279,2815,2816],{},"Для текущего окна:"," выполните команду",[86,2819,2820],{"className":88,"code":1736,"language":90,"meta":91,"style":91},[25,2821,2822],{"__ignoreMap":91},[95,2823,2824,2826],{"class":97,"line":98},[95,2825,1743],{"class":592},[95,2827,106],{"class":105},[1747,2829],{},"или её аналог",[86,2832,2834],{"className":88,"code":2833,"language":90,"meta":91,"style":91},". ~/.bashrc\n",[25,2835,2836],{"__ignoreMap":91},[95,2837,2838,2840],{"class":97,"line":98},[95,2839,43],{"class":592},[95,2841,106],{"class":105},[37,2843,2844,2847],{},[279,2845,2846],{},"Для всех будущих окон:"," просто закройте и снова откройте терминал.",[21,2849,2850,2851,1230,2853,2855],{},"Проверьте работу алиасов (",[25,2852,1774],{},[25,2854,1822],{},") и нового приглашения командной строки.",[369,2857],{},[16,2859,767],{"id":766},[21,2861,2862],{},"Убедитесь, что всё работает корректно:",[34,2864,2865,2873,2882,2896],{},[37,2866,2867,775,2870,2872],{},[279,2868,2869],{},"Проверьте алиасы:",[25,2871,1410],{},". В списке должны быть те, что вы добавили.",[37,2874,2875,2878,2879,2881],{},[279,2876,2877],{},"Проверьте приглашение:"," оно должно соответствовать настройкам ",[25,2880,119],{}," (цвет, формат).",[37,2883,2884,2887,2888,2891,2892,2895],{},[279,2885,2886],{},"Проверьте функцию:"," попробуйте ",[25,2889,2890],{},"mkcd test_folder"," — должна создаться папка ",[25,2893,2894],{},"test_folder"," и вы в неё перейти.",[37,2897,2898,775,2901,2904,2905,2907],{},[279,2899,2900],{},"Проверьте переменные:",[25,2902,2903],{},"echo $EDITOR"," — должен быть ",[25,2906,102],{}," (или то, что вы указали).",[21,2909,2910,2911,2913],{},"Если что-то не работает, откройте ",[25,2912,2174],{}," и проверьте синтаксис (особенно кавычки и пробелы).",[16,2915,818],{"id":817},[463,2917,2919,2920],{"id":2918},"проблема-терминал-не-запускается-после-правки-bashrc","Проблема: Терминал не запускается после правки ",[25,2921,2174],{},[21,2923,2924,2926,2927],{},[279,2925,1846],{}," Синтаксическая ошибка в файле (например, незакрытая кавычка).\n",[279,2928,1864],{},[34,2930,2931,2938,2941,2946],{},[37,2932,2933,2934,2937],{},"Нажмите ",[25,2935,2936],{},"Ctrl+Alt+F3"," (или другую F-клавишу) для перехода в текстовую консоль.",[37,2939,2940],{},"Войдите под своим логином.",[37,2942,2943,2944,43],{},"Отредактируйте файл, исправив ошибку: ",[25,2945,1379],{},[37,2947,2948,2949,60,2952,64],{},"Вернитесь в графический интерфейс (",[25,2950,2951],{},"Ctrl+Alt+F1",[25,2953,2954],{},"F2",[463,2956,2958,2959,2961],{"id":2957},"проблема-цвета-в-ps1-отображаются-как-garbled-символы","Проблема: Цвета в ",[25,2960,119],{}," отображаются как garbled-символы",[21,2963,2964,2966,2967,2076,2969,2971,2972,2974,2975,269,2977,2979,2980,43],{},[279,2965,1846],{}," Неправильное использование управляющих последовательностей или их отсутствие в ",[25,2968,268],{},[25,2970,272],{},".\n",[279,2973,1864],{}," Убедитесь, что все ANSI-коды цветов обернуты в ",[25,2976,268],{},[25,2978,272],{},". Пример правильного оформления: ",[25,2981,2982],{},"PS1='\\[\\e[1;34m\\]\\u@\\h:\\w\\$\\[\\e[0m\\] '",[463,2984,2986,2987,2989],{"id":2985},"проблема-алиасы-не-работают-в-sudo-командах","Проблема: Алиасы не работают в ",[25,2988,2028],{},"-командах",[21,2991,2992,2076,2994,2996,2997,2999,3000,3002,3003,3006,3007,453,3009,3012,3013,43],{},[279,2993,1846],{},[25,2995,2028],{}," по умолчанию сбрасывает переменные окружения, включая алиасы.\n",[279,2998,1864],{}," Используйте ",[25,3001,2028],{}," с флагом ",[25,3004,3005],{},"-E"," (сохранить окружение) или создавайте алиас для ",[25,3008,2028],{},[25,3010,3011],{},"alias s='sudo'","), но это менее безопасно. Лучше явно прописывать полную команду после ",[25,3014,2028],{},[463,3016,3018,3019,3021],{"id":3017},"проблема-изменения-bashrc-не-применяются-при-ssh-подключении","Проблема: Изменения ",[25,3020,2174],{}," не применяются при SSH-подключении",[21,3023,3024,3026,3027,60,3030,3033,3034,3036,3037,3039,3040,3043,3044,3047],{},[279,3025,1846],{}," При SSH-логине читается ",[25,3028,3029],{},".bash_profile",[25,3031,3032],{},".profile",", а не ",[25,3035,2174],{}," (зависит от дистрибутива).\n",[279,3038,1864],{}," В файле ",[25,3041,3042],{},"~/.bash_profile"," (или ",[25,3045,3046],{},"~/.profile",") добавьте строку:",[86,3049,3051],{"className":88,"code":3050,"language":90,"meta":91,"style":91},"if [ -f ~/.bashrc ]; then\n    source ~/.bashrc\nfi\n",[25,3052,3053,3068,3075],{"__ignoreMap":91},[95,3054,3055,3057,3059,3061,3063,3066],{"class":97,"line":98},[95,3056,1884],{"class":313},[95,3058,1887],{"class":310},[95,3060,1890],{"class":313},[95,3062,1893],{"class":313},[95,3064,3065],{"class":310},"/.bashrc ]; ",[95,3067,1899],{"class":313},[95,3069,3070,3073],{"class":97,"line":540},[95,3071,3072],{"class":592},"    source",[95,3074,106],{"class":105},[95,3076,3077],{"class":97,"line":604},[95,3078,1911],{"class":313},[21,3080,3081,3082,3084],{},"Это гарантирует выполнение ",[25,3083,2174],{}," при логине.",[955,3086,3087],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":91,"searchDepth":540,"depth":540,"links":3089},[3090,3091,3092,3100,3101],{"id":18,"depth":540,"text":19},{"id":31,"depth":540,"text":32},{"id":2252,"depth":540,"text":2253,"children":3093},[3094,3095,3096,3097,3098,3099],{"id":2256,"depth":604,"text":2257},{"id":2348,"depth":604,"text":2349},{"id":2445,"depth":604,"text":2446},{"id":2553,"depth":604,"text":2554},{"id":2715,"depth":604,"text":2716},{"id":2802,"depth":604,"text":2803},{"id":766,"depth":540,"text":767},{"id":817,"depth":540,"text":818,"children":3102},[3103,3105,3107,3109],{"id":2918,"depth":604,"text":3104},"Проблема: Терминал не запускается после правки .bashrc",{"id":2957,"depth":604,"text":3106},"Проблема: Цвета в PS1 отображаются как garbled-символы",{"id":2985,"depth":604,"text":3108},"Проблема: Алиасы не работают в sudo-командах",{"id":3017,"depth":604,"text":3110},"Проблема: Изменения .bashrc не применяются при SSH-подключении","2026-02-16 18:46:43","Узнайте, как полностью настроить оболочку Bash под свои нужды. Пошаговая инструкция по созданию алиасов, кастомизации приглашения PS1 и автоматизации команд. За 15 минут.",[3114,3117,3120,3123],{"question":3115,"answer":3116},"Безопасно ли редактировать .bashrc? Что делать, если сломал терминал?","Да, это безопасно. Если после правки терминал не запускается, войдите в консоль recovery mode (Ctrl+Alt+F3) и исправьте файл, вернув предыдущую версию из бэкапа.",{"question":3118,"answer":3119},"В чём разница между .bashrc и .bash_profile?",".bashrc выполняется для каждого интерактивного не-логинового shell (обычные окна терминала). .bash_profile — только при логине (например, через SSH). В большинстве дистрибутивов .bash_profile вызывает .bashrc.",{"question":3121,"answer":3122},"Как сделать изменения в .bashrc действующими без перезагрузки?","Выполните команду `source ~/.bashrc` или `. ~/.bashrc` в текущем терминале. Это применит настройки мгновенно.",{"question":3124,"answer":3125},"Почему мои алиасы не работают в скриптах?","По умолчанию скрипты Bash запускаются в non-interactive режиме, где .bashrc не читается. Для алиасов в скриптах используйте функции или вызывайте .bashrc явно.",[3127,3130,3133,3136,3139,3142],{"name":3128,"text":3129},"Найдите и откройте файл .bashrc","Файл .bashrc находится в домашней директории (`~`). Он может быть скрытым. Откройте его в текстовом редакторе (nano, vim, code).",{"name":3131,"text":3132},"Добавьте простой алиас","В конец файла добавьте строку `alias ll='ls -la --color=auto'`. Это создаст команду `ll` для подробного списка файлов.",{"name":3134,"text":3135},"Настройте приглашение командной строки (PS1)","Измените переменную `PS1` в файле. Например: `PS1='\\u@\\h:\\w\\$ '` покажет `user@host:/путь$`.",{"name":3137,"text":3138},"Добавьте пользовательские функции","Для сложных команд создайте функцию. Пример: `mkcd() { mkdir -p \"$1\" && cd \"$1\"; }` создаст папку и войдёт в неё.",{"name":3140,"text":3141},"Экспортируйте переменные окружения","Добавьте `export EDITOR=nano` или `export PATH=$PATH:/home/user/bin`, чтобы сделать настройки глобальными для shell.",{"name":1011,"text":3143},"Сохраните файл и выполните `source ~/.bashrc` в текущем терминале, чтобы изменения вступили в силу.",[3145,3146,3147,3148,3149,3150,3151,3152],"bashrc настройка","как изменить приглашение командной строки linux","bashrc примеры алиасов","файл .bashrc что это","кастомизация bash терминала","переменная PS1 объяснение","автоматизация команд linux","bashrc vs bash_profile",{},[3155,3156,3157],"/guides/linux/alias-command","/guides/linux/ps1-explained","/guides/linux/shell-variables",{"title":2159,"description":3112},"guides/linux/bashrc-configuration","Этот гайд подробно объясняет, что такое файл .bashrc и как его редактировать для автоматизации задач, изменения вида командной строки и настройки переменных окружения. Вы научитесь создавать полезные алиасы и кастомизировать терминал.",[3162,90,1039,3163,3164,1038],"гайды linux","настройка","automation","qkwfTap10KdWlu0AI4ZINwfyiw_frcNJN5kgumG3BKM",{"id":3167,"title":3168,"appliesTo":3169,"author":11,"body":3173,"canonical":980,"code":980,"createdAt":3550,"description":3551,"difficulty":2103,"draft":984,"estimatedTime":2104,"extension":986,"faq":3552,"howToSteps":3562,"howToTotalTime":2133,"image":980,"keywords":3575,"locale":1025,"meta":3583,"navigation":684,"path":1032,"platform":1028,"related":3584,"section":1033,"seo":3588,"severity":980,"stem":3589,"summary":3590,"tags":3591,"twitterCreator":980,"twitterSite":980,"type":1042,"updatedAt":3550,"__hash__":3595},"content_ru/guides/linux/zsh-vs-bash.md","Zsh vs Bash: выбираем лучшую оболочку и настраиваем Linux",[3170,3171,3172],"Ubuntu 22.04/24.04","Debian 11/12","Fedora 38+",{"type":13,"value":3174,"toc":3541},[3175,3179,3182,3185,3189,3195,3221,3224,3228,3231,3234,3259,3262,3278,3281,3283,3287,3290,3315,3326,3330,3341,3366,3369,3427,3430,3441,3446,3448,3451,3464,3489,3493,3538],[16,3176,3178],{"id":3177},"зачем-выбирать-между-zsh-и-bash","Зачем выбирать между Zsh и Bash",[21,3180,3181],{},"Терминал остаётся основным рабочим пространством для разработчиков и системных администраторов. Bash десятилетиями был отраслевым стандартом благодаря стабильности и повсеместной поддержке, но Zsh предлагает более интеллектуальные функции из коробки. К ним относятся контекстное автодополнение, обратный поиск с учётом частоты использования, глоб-паттерны и встроенная поддержка тем оформления.",[21,3183,3184],{},"Переход на Zsh не требует удаления Bash и полностью обратим. Вы получите ускоренную работу с командами, снижение количества опечаток и готовую экосистему плагинов, при этом сохранив совместимость со всеми вашими Bash-скриптами.",[16,3186,3188],{"id":3187},"требования-и-подготовка","Требования и подготовка",[21,3190,3191,3192,3194],{},"Перед началом убедитесь, что у вас есть права ",[25,3193,2028],{}," для установки системных пакетов. Рекомендуется создать резервную копию текущих конфигурационных файлов:",[86,3196,3198],{"className":88,"code":3197,"language":90,"meta":91,"style":91},"cp ~/.bashrc ~/.bashrc.bak\ncp ~/.profile ~/.profile.bak\n",[25,3199,3200,3211],{"__ignoreMap":91},[95,3201,3202,3205,3208],{"class":97,"line":98},[95,3203,3204],{"class":101},"cp",[95,3206,3207],{"class":105}," ~/.bashrc",[95,3209,3210],{"class":105}," ~/.bashrc.bak\n",[95,3212,3213,3215,3218],{"class":97,"line":540},[95,3214,3204],{"class":101},[95,3216,3217],{"class":105}," ~/.profile",[95,3219,3220],{"class":105}," ~/.profile.bak\n",[21,3222,3223],{},"Это позволит быстро восстановить прежние алиасы и переменные окружения, если они потребуются в процессе миграции.",[16,3225,3227],{"id":3226},"шаг-1-установка-пакета","Шаг 1: Установка пакета",[21,3229,3230],{},"В современных дистрибутивах интерпретатор доступен в стандартных репозиториях. Откройте терминал и выполните команду, соответствующую вашей системе:",[21,3232,3233],{},"Для Debian и Ubuntu:",[86,3235,3237],{"className":88,"code":3236,"language":90,"meta":91,"style":91},"sudo apt update && sudo apt install zsh\n",[25,3238,3239],{"__ignoreMap":91},[95,3240,3241,3243,3246,3248,3250,3252,3254,3256],{"class":97,"line":98},[95,3242,2028],{"class":101},[95,3244,3245],{"class":105}," apt",[95,3247,1435],{"class":105},[95,3249,1975],{"class":310},[95,3251,2028],{"class":101},[95,3253,3245],{"class":105},[95,3255,1459],{"class":105},[95,3257,3258],{"class":105}," zsh\n",[21,3260,3261],{},"Для Fedora и RHEL-подобных систем:",[86,3263,3265],{"className":88,"code":3264,"language":90,"meta":91,"style":91},"sudo dnf install zsh\n",[25,3266,3267],{"__ignoreMap":91},[95,3268,3269,3271,3274,3276],{"class":97,"line":98},[95,3270,2028],{"class":101},[95,3272,3273],{"class":105}," dnf",[95,3275,1459],{"class":105},[95,3277,3258],{"class":105},[21,3279,3280],{},"Команда обновит кэш пакетов, проверит зависимости и скачает последнюю стабильную версию Zsh. Процесс занимает не более минуты при стабильном соединении.",[369,3282],{},[16,3284,3286],{"id":3285},"шаг-2-активация-оболочки-по-умолчанию","Шаг 2: Активация оболочки по умолчанию",[21,3288,3289],{},"После установки система не переключится автоматически. Укажите Zsh как основную среду для текущего пользователя:",[86,3291,3293],{"className":88,"code":3292,"language":90,"meta":91,"style":91},"chsh -s $(which zsh)\n",[25,3294,3295],{"__ignoreMap":91},[95,3296,3297,3300,3303,3306,3309,3312],{"class":97,"line":98},[95,3298,3299],{"class":101},"chsh",[95,3301,3302],{"class":592}," -s",[95,3304,3305],{"class":310}," $(",[95,3307,3308],{"class":592},"which",[95,3310,3311],{"class":105}," zsh",[95,3313,3314],{"class":310},")\n",[21,3316,3317,3318,3321,3322,3325],{},"Флаг ",[25,3319,3320],{},"-s"," задаёт абсолютный путь к исполняемому файлу, а конструкция ",[25,3323,3324],{},"$(which zsh)"," подставляет его автоматически. Для вступления изменений в силу полностью закройте все окна терминала и откройте новое.",[16,3327,3329],{"id":3328},"шаг-3-перенос-настроек-и-оптимизация","Шаг 3: Перенос настроек и оптимизация",[21,3331,3332,3333,3336,3337,3340],{},"При первом запуске появится мастер настройки. Нажмите ",[25,3334,3335],{},"0"," для выхода без создания дефолтного конфига — мы настроим его вручную. Откройте ",[25,3338,3339],{},"~/.zshrc"," в текстовом редакторе и перенесите рабочие алиасы:",[86,3342,3344],{"className":88,"code":3343,"language":90,"meta":91,"style":91},"cat ~/.bashrc.bak | grep \"^alias\" >> ~/.zshrc\n",[25,3345,3346],{"__ignoreMap":91},[95,3347,3348,3350,3353,3355,3357,3360,3363],{"class":97,"line":98},[95,3349,2249],{"class":101},[95,3351,3352],{"class":105}," ~/.bashrc.bak",[95,3354,586],{"class":313},[95,3356,1807],{"class":101},[95,3358,3359],{"class":105}," \"^alias\"",[95,3361,3362],{"class":313}," >>",[95,3364,3365],{"class":105}," ~/.zshrc\n",[21,3367,3368],{},"Добавьте в конец файла параметры, улучшающие опыт работы:",[86,3370,3372],{"className":88,"code":3371,"language":90,"meta":91,"style":91},"# Игнорировать регистр при автодополнении\nzstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'\n# Отключить автоскрытие курсора при вводе\nunsetopt beep\n# Включить подсветку синтаксиса (если установлен плагин)\nautoload -U colors && colors\n",[25,3373,3374,3379,3393,3398,3406,3411],{"__ignoreMap":91},[95,3375,3376],{"class":97,"line":98},[95,3377,3378],{"class":644},"# Игнорировать регистр при автодополнении\n",[95,3380,3381,3384,3387,3390],{"class":97,"line":540},[95,3382,3383],{"class":101},"zstyle",[95,3385,3386],{"class":105}," ':completion:*'",[95,3388,3389],{"class":105}," matcher-list",[95,3391,3392],{"class":105}," 'm:{a-zA-Z}={A-Za-z}'\n",[95,3394,3395],{"class":97,"line":604},[95,3396,3397],{"class":644},"# Отключить автоскрытие курсора при вводе\n",[95,3399,3400,3403],{"class":97,"line":676},[95,3401,3402],{"class":592},"unsetopt",[95,3404,3405],{"class":105}," beep\n",[95,3407,3408],{"class":97,"line":681},[95,3409,3410],{"class":644},"# Включить подсветку синтаксиса (если установлен плагин)\n",[95,3412,3413,3416,3419,3422,3424],{"class":97,"line":688},[95,3414,3415],{"class":592},"autoload",[95,3417,3418],{"class":592}," -U",[95,3420,3421],{"class":105}," colors",[95,3423,1975],{"class":310},[95,3425,3426],{"class":101},"colors\n",[21,3428,3429],{},"Примените изменения без перезапуска:",[86,3431,3433],{"className":88,"code":3432,"language":90,"meta":91,"style":91},"source ~/.zshrc\n",[25,3434,3435],{"__ignoreMap":91},[95,3436,3437,3439],{"class":97,"line":98},[95,3438,1743],{"class":592},[95,3440,3365],{"class":105},[21,3442,3443,3445],{},[25,3444,1743],{}," загружает конфигурацию в текущий сеанс, позволяя сразу тестировать новые правила.",[16,3447,767],{"id":766},[21,3449,3450],{},"Откройте новое окно терминала и выполните:",[86,3452,3454],{"className":88,"code":3453,"language":90,"meta":91,"style":91},"echo $SHELL\n",[25,3455,3456],{"__ignoreMap":91},[95,3457,3458,3461],{"class":97,"line":98},[95,3459,3460],{"class":592},"echo",[95,3462,3463],{"class":310}," $SHELL\n",[21,3465,3466,3467,3470,3471,3474,3475,3478,3479,1230,3482,1230,3485,3488],{},"Вывод ",[25,3468,3469],{},"/usr/bin/zsh"," подтверждает успешную смену. Проверьте работу автодополнения: введите ",[25,3472,3473],{},"git s"," и нажмите ",[25,3476,3477],{},"Tab"," дважды. Оболочка предложит ",[25,3480,3481],{},"status",[25,3483,3484],{},"shortlog",[25,3486,3487],{},"show"," и другие варианты. Убедитесь, что перенесённые алиасы срабатывают корректно.",[16,3490,3492],{"id":3491},"возможные-проблемы-и-решения","Возможные проблемы и решения",[322,3494,3495,3505,3521],{},[37,3496,3497,3500,3501,3504],{},[279,3498,3499],{},"Ошибки выполнения существующих скриптов."," Zsh использует отличные от Bash правила раскрытия кавычек и массивов. Всегда указывайте интерпретатор явно в начале файла: ",[25,3502,3503],{},"#!/usr/bin/env bash",". Это гарантирует, что система вызовет Bash, а не Zsh.",[37,3506,3507,3513,3514,3516,3517,3520],{},[279,3508,3509,3510,43],{},"Пропали переменные ",[25,3511,3512],{},"PATH"," Убедитесь, что в ",[25,3515,3339],{}," присутствует строка экспорта системных путей. Добавьте ",[25,3518,3519],{},"export PATH=\"/usr/local/bin:$PATH\""," в начало файла, чтобы приоритет отдавался пользовательским утилитам.",[37,3522,3523,3526,3527,3529,3530,3533,3534,3537],{},[279,3524,3525],{},"Медленная загрузка терминала."," Причиной обычно становятся тяжёлые плагины или неоптимизированный ",[25,3528,3339],{},". Запустите профилировщик: ",[25,3531,3532],{},"zsh -xv"," и найдите этапы, занимающие более 200 мс. Закомментируйте проблемные секции или используйте ",[25,3535,3536],{},"zsh-autosuggestions"," вместо тяжёлых фреймворков.",[955,3539,3540],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":91,"searchDepth":540,"depth":540,"links":3542},[3543,3544,3545,3546,3547,3548,3549],{"id":3177,"depth":540,"text":3178},{"id":3187,"depth":540,"text":3188},{"id":3226,"depth":540,"text":3227},{"id":3285,"depth":540,"text":3286},{"id":3328,"depth":540,"text":3329},{"id":766,"depth":540,"text":767},{"id":3491,"depth":540,"text":3492},"2026-04-06 10:39:32","Пошаговое сравнение Zsh и Bash: выберите лучшую оболочку, настройте автодополнение и тему за 10 минут. Оптимизируйте работу в терминале уже сегодня!",[3553,3556,3559],{"question":3554,"answer":3555},"Можно ли запускать Bash-скрипты внутри Zsh?","Да, если в первой строке файла указан шебанг `#!/usr/bin/env bash`. Zsh корректно вызовет системный Bash для выполнения кода, игнорируя синтаксические различия.",{"question":3557,"answer":3558},"Что делать, если после смены терминал перестал открываться?","Войдите в TTY (Ctrl+Alt+F3), выполните `chsh -s /bin/bash` и перезапустите сессию. Ошибка обычно возникает из-за некорректного синтаксиса в `~/.zshrc`.",{"question":3560,"answer":3561},"Нужен ли oh-my-zsh для работы Zsh?","Нет, это лишь популярный фреймворк для упрощения настройки. Базовая Zsh работает стабильно из коробки, а ручное редактирование `~/.zshrc` снижает потребление оперативной памяти.",[3563,3566,3569,3572],{"name":3564,"text":3565},"Установка пакета Zsh","Используйте `sudo apt install zsh` или `sudo dnf install zsh` для загрузки интерпретатора из официальных репозиториев.",{"name":3567,"text":3568},"Смена оболочки по умолчанию","Выполните `chsh -s $(which zsh)` для привязки нового интерпретатора к вашему пользователю. Перезапустите терминал.",{"name":3570,"text":3571},"Миграция конфигурации","Скопируйте алиасы из `~/.bashrc` в новый файл `~/.zshrc` и добавьте параметры автодополнения.",{"name":3573,"text":3574},"Проверка работы и отладка","Убедитесь через `echo $SHELL`, что оболочка сменилась. Протестируйте автодополнение и проверьте запуск старых команд.",[3576,3577,3578,3579,3580,3581,3582],"zsh vs bash что лучше","как перейти на zsh в linux","настройка oh-my-zsh ubuntu","преимущества zsh над bash","смена оболочки по умолчанию chsh","конфигурация .zshrc для разработчика","bash или zsh сравнение",{},[3585,3586,3587],"/guides/linux/setup-oh-my-zsh","/guides/linux/bash-scripting-basics","/guides/linux/terminal-shortcuts",{"title":3168,"description":3551},"guides/linux/zsh-vs-bash","Разбираем ключевые отличия популярных командных оболочек Linux и показываем, как безопасно мигрировать с Bash на Zsh. Вы получите современный терминал с плагинами без потери функционала.",[1039,3592,2155,3593,3594,90],"оболочка","настройка linux","zsh","vif0c3dCx2dxnNYg_uu4T6H0Lj52Hn8leZJt4w-gPOg"]