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