[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/shell-variables-env":3,"mdc-2s9drt-key":1047,"mdc-6hfk95-key":1085,"mdc--qakyy7-key":1128,"mdc-ytchu1-key":1145,"mdc-9ggiyu-key":1184,"mdc-48gs68-key":1215,"mdc-coy6jl-key":1239,"mdc--ivqqzv-key":1262,"mdc--lfvv5q-key":1300,"related-/guides/linux/linux-permissions-chmod-chown,/guides/linux/linux-shell-scripting-basics,/errors/linux/bash-command-not-found":1329},{"id":4,"title":5,"appliesTo":6,"author":12,"body":13,"canonical":979,"code":979,"createdAt":980,"description":981,"difficulty":982,"draft":983,"estimatedTime":984,"extension":985,"faq":986,"howToSteps":999,"howToTotalTime":1015,"image":979,"keywords":1016,"locale":1027,"meta":1028,"navigation":173,"path":1029,"platform":1030,"related":1031,"section":1035,"seo":1036,"severity":979,"stem":1037,"summary":1038,"tags":1039,"twitterCreator":979,"twitterSite":979,"type":1045,"updatedAt":980,"__hash__":1046},"content_ru/guides/linux/shell-variables-env.md","Переменные окружения в Linux: полное руководство по настройке",[7,8,9,10,11],"Ubuntu 20.04+","Debian 11+","CentOS/RHEL 8+","Bash 4.0+","Zsh 5.0+","FixPedia Team",{"type":14,"value":15,"toc":967},"minimark",[16,21,38,42,103,106,110,113,144,212,222,226,233,253,326,347,351,374,440,444,457,571,574,578,599,686,706,710,716,781,785,788,873,877,963],[17,18,20],"h2",{"id":19},"введение-зачем-это-нужно","Введение / Зачем это нужно",[22,23,24,25,29,30,33,34,37],"p",{},"Переменные окружения — это ключевой механизм в Linux для передачи информации между процессами и настройки поведения программ. Они управляют путями поиска исполняемых файлов (",[26,27,28],"code",{},"PATH","), локализацией (",[26,31,32],{},"LANG","), настройками конкретных приложений (например, ",[26,35,36],{},"JAVA_HOME",") и многим другим. Понимание и умение правильно настраивать их — базовый навык для разработчика, системного администратора и любого продвинутого пользователя Linux. Этот гайд поможет вам уверенно работать с переменными окружения: от простого просмотра до создания постоянных глобальных настроек.",[17,39,41],{"id":40},"требования-подготовка","Требования / Подготовка",[43,44,45,53,71,85],"ul",{},[46,47,48,52],"li",{},[49,50,51],"strong",{},"Операционная система:"," Любой дистрибутив Linux (Ubuntu, Debian, CentOS, Fedora, Arch и т.д.).",[46,54,55,58,59,62,63,66,67,70],{},[49,56,57],{},"Командная оболочка (Shell):"," Руководство ориентировано на ",[26,60,61],{},"bash"," (по умолчанию в большинстве дистрибутивов) и ",[26,64,65],{},"zsh",". Синтаксис ",[26,68,69],{},"export"," стандартен.",[46,72,73,76,77,80,81,84],{},[49,74,75],{},"Права доступа:"," Для редактирования файлов в домашнем каталоге (",[26,78,79],{},"~/.bashrc",", ",[26,82,83],{},"~/.profile",") нужны стандартные права пользователя.",[46,86,87,90,91,94,95,98,99,102],{},[49,88,89],{},"Текстовый редактор:"," Рекомендуется familiarity с ",[26,92,93],{},"nano"," (простой) или ",[26,96,97],{},"vim","/",[26,100,101],{},"vim.tiny"," (мощный).",[104,105],"hr",{},[17,107,109],{"id":108},"шаг-1-просмотр-текущих-переменных-окружения","Шаг 1: Просмотр текущих переменных окружения",[22,111,112],{},"Прежде чем что-то изменять, нужно понять, что уже есть. Для этого есть несколько команд:",[43,114,115,125,138],{},[46,116,117,120,121,124],{},[26,118,119],{},"env"," — выводит ",[49,122,123],{},"все"," переменные окружения текущей сессии.",[46,126,127,130,131,133,134,137],{},[26,128,129],{},"printenv"," — работает аналогично ",[26,132,119],{},", но может принимать имя переменной: ",[26,135,136],{},"printenv PATH",".",[46,139,140,143],{},[26,141,142],{},"echo $VAR_NAME"," — показывает значение конкретной переменной в текущей оболочке. Удобно, но переменная должна быть уже определена в оболочке.",[145,146,150],"pre",{"className":147,"code":148,"language":61,"meta":149,"style":149},"language-bash shiki shiki-themes github-light github-dark","# Показать все переменные\nenv\n\n# Показать только PATH\necho $PATH\n\n# Проверить, существует ли переменная\nprintenv HOME\n","",[26,151,152,161,168,175,181,192,197,203],{"__ignoreMap":149},[153,154,157],"span",{"class":155,"line":156},"line",1,[153,158,160],{"class":159},"sJ8bj","# Показать все переменные\n",[153,162,164],{"class":155,"line":163},2,[153,165,167],{"class":166},"sScJk","env\n",[153,169,171],{"class":155,"line":170},3,[153,172,174],{"emptyLinePlaceholder":173},true,"\n",[153,176,178],{"class":155,"line":177},4,[153,179,180],{"class":159},"# Показать только PATH\n",[153,182,184,188],{"class":155,"line":183},5,[153,185,187],{"class":186},"sj4cs","echo",[153,189,191],{"class":190},"sVt8B"," $PATH\n",[153,193,195],{"class":155,"line":194},6,[153,196,174],{"emptyLinePlaceholder":173},[153,198,200],{"class":155,"line":199},7,[153,201,202],{"class":159},"# Проверить, существует ли переменная\n",[153,204,206,208],{"class":155,"line":205},8,[153,207,129],{"class":166},[153,209,211],{"class":210},"sZZnC"," HOME\n",[22,213,214,215,217,218,221],{},"Обратите внимание на переменную ",[26,216,28],{},". Это список каталогов, через которые система ищет исполняемые команды. Каталоги разделены двоеточием (",[26,219,220],{},":",").",[17,223,225],{"id":224},"шаг-2-создание-временной-переменной-для-текущей-сессии","Шаг 2: Создание временной переменной (для текущей сессии)",[22,227,228,229,232],{},"Чтобы задать переменную, которая будет доступна ",[49,230,231],{},"только в текущем открытом терминале"," и его дочерних процессах, выполните два действия:",[234,235,236,245],"ol",{},[46,237,238,241,242,137],{},[49,239,240],{},"Присвоение значения:"," ",[26,243,244],{},"MY_VAR=\"значение\"",[46,246,247,241,250,137],{},[49,248,249],{},"Экспорт в окружение:",[26,251,252],{},"export MY_VAR",[145,254,256],{"className":147,"code":255,"language":61,"meta":149,"style":149},"# Создаём переменную и экспортируем её\nexport FAVORITE_EDITOR=\"nano\"\nexport PROJECT_PATH=\"/home/user/myproject\"\n\n# Проверяем, что она доступна\necho $FAVORITE_EDITOR\n# Вывод: nano\n\n# Запускаем дочерний процесс (например, другой скрипт), который увидит эту переменную\n./some_script.sh\n",[26,257,258,263,277,289,293,298,305,310,314,320],{"__ignoreMap":149},[153,259,260],{"class":155,"line":156},[153,261,262],{"class":159},"# Создаём переменную и экспортируем её\n",[153,264,265,268,271,274],{"class":155,"line":163},[153,266,69],{"class":267},"szBVR",[153,269,270],{"class":190}," FAVORITE_EDITOR",[153,272,273],{"class":267},"=",[153,275,276],{"class":210},"\"nano\"\n",[153,278,279,281,284,286],{"class":155,"line":170},[153,280,69],{"class":267},[153,282,283],{"class":190}," PROJECT_PATH",[153,285,273],{"class":267},[153,287,288],{"class":210},"\"/home/user/myproject\"\n",[153,290,291],{"class":155,"line":177},[153,292,174],{"emptyLinePlaceholder":173},[153,294,295],{"class":155,"line":183},[153,296,297],{"class":159},"# Проверяем, что она доступна\n",[153,299,300,302],{"class":155,"line":194},[153,301,187],{"class":186},[153,303,304],{"class":190}," $FAVORITE_EDITOR\n",[153,306,307],{"class":155,"line":199},[153,308,309],{"class":159},"# Вывод: nano\n",[153,311,312],{"class":155,"line":205},[153,313,174],{"emptyLinePlaceholder":173},[153,315,317],{"class":155,"line":316},9,[153,318,319],{"class":159},"# Запускаем дочерний процесс (например, другой скрипт), который увидит эту переменную\n",[153,321,323],{"class":155,"line":322},10,[153,324,325],{"class":166},"./some_script.sh\n",[327,328,329],"blockquote",{},[22,330,331,332,335,336,339,340,342,343,346],{},"⚠️ ",[49,333,334],{},"Важно:"," Если вы просто выполните ",[26,337,338],{},"MY_VAR=\"value\""," без ",[26,341,69],{},", переменная будет существовать только в текущей оболочке, но ",[49,344,345],{},"не будет передана"," запускаемым из неё программам.",[17,348,350],{"id":349},"шаг-3-изменение-переменной-path","Шаг 3: Изменение переменной PATH",[22,352,353,354,356,357,363,364,80,367,80,370,373],{},"Одна из самых частых задач — добавить собственный каталог с исполняемыми файлами в ",[26,355,28],{},". ",[49,358,359,360],{},"Всегда добавляйте новый путь к существующему значению ",[26,361,362],{},"$PATH",", а не перезаписывайте его, иначе сломаете доступ к системным командам (",[26,365,366],{},"ls",[26,368,369],{},"cd",[26,371,372],{},"apt"," и т.д.).",[145,375,377],{"className":147,"code":376,"language":61,"meta":149,"style":149},"# Правильно: добавляем каталог ~/bin в конец PATH\nexport PATH=\"$PATH:$HOME/bin\"\n\n# Проверяем результат\necho $PATH\n# В выводе в конце будет :/home/ваш_логин/bin\n\n# Можно добавить в начало (высший приоритет), но будьте осторожны\n# export PATH=\"$HOME/bin:$PATH\"\n",[26,378,379,384,406,410,415,421,426,430,435],{"__ignoreMap":149},[153,380,381],{"class":155,"line":156},[153,382,383],{"class":159},"# Правильно: добавляем каталог ~/bin в конец PATH\n",[153,385,386,388,391,393,396,398,400,403],{"class":155,"line":163},[153,387,69],{"class":267},[153,389,390],{"class":190}," PATH",[153,392,273],{"class":267},[153,394,395],{"class":210},"\"",[153,397,362],{"class":190},[153,399,220],{"class":210},[153,401,402],{"class":190},"$HOME",[153,404,405],{"class":210},"/bin\"\n",[153,407,408],{"class":155,"line":170},[153,409,174],{"emptyLinePlaceholder":173},[153,411,412],{"class":155,"line":177},[153,413,414],{"class":159},"# Проверяем результат\n",[153,416,417,419],{"class":155,"line":183},[153,418,187],{"class":186},[153,420,191],{"class":190},[153,422,423],{"class":155,"line":194},[153,424,425],{"class":159},"# В выводе в конце будет :/home/ваш_логин/bin\n",[153,427,428],{"class":155,"line":199},[153,429,174],{"emptyLinePlaceholder":173},[153,431,432],{"class":155,"line":205},[153,433,434],{"class":159},"# Можно добавить в начало (высший приоритет), но будьте осторожны\n",[153,436,437],{"class":155,"line":316},[153,438,439],{"class":159},"# export PATH=\"$HOME/bin:$PATH\"\n",[17,441,443],{"id":442},"шаг-4-создание-постоянных-переменных-через-bashrc","Шаг 4: Создание постоянных переменных через ~/.bashrc",[22,445,446,447,449,450,453,454,137],{},"Файл ",[26,448,79],{}," (точка в начале — скрытый файл) выполняется ",[49,451,452],{},"при каждом запуске нового интерактивного не-логического shell",". Это идеальное место для переменных, которые нужны вам в ",[49,455,456],{},"каждом новом терминале",[234,458,459,474,532,552],{},[46,460,461,462],{},"Откройте файл в текстовом редакторе:\n",[145,463,465],{"className":147,"code":464,"language":61,"meta":149,"style":149},"nano ~/.bashrc\n",[26,466,467],{"__ignoreMap":149},[153,468,469,471],{"class":155,"line":156},[153,470,93],{"class":166},[153,472,473],{"class":210}," ~/.bashrc\n",[46,475,476,477,479,480],{},"Добавьте в конец файла строки с командами ",[26,478,69],{}," для ваших переменных:\n",[145,481,483],{"className":147,"code":482,"language":61,"meta":149,"style":149},"# Мои кастомные настройки\nexport EDITOR=\"nano\"\nexport LANG=\"ru_RU.UTF-8\"\nexport PATH=\"$PATH:$HOME/.local/bin\"\n",[26,484,485,490,501,513],{"__ignoreMap":149},[153,486,487],{"class":155,"line":156},[153,488,489],{"class":159},"# Мои кастомные настройки\n",[153,491,492,494,497,499],{"class":155,"line":163},[153,493,69],{"class":267},[153,495,496],{"class":190}," EDITOR",[153,498,273],{"class":267},[153,500,276],{"class":210},[153,502,503,505,508,510],{"class":155,"line":170},[153,504,69],{"class":267},[153,506,507],{"class":190}," LANG",[153,509,273],{"class":267},[153,511,512],{"class":210},"\"ru_RU.UTF-8\"\n",[153,514,515,517,519,521,523,525,527,529],{"class":155,"line":177},[153,516,69],{"class":267},[153,518,390],{"class":190},[153,520,273],{"class":267},[153,522,395],{"class":210},[153,524,362],{"class":190},[153,526,220],{"class":210},[153,528,402],{"class":190},[153,530,531],{"class":210},"/.local/bin\"\n",[46,533,534,537,538,541,542,545,546,537,549,221],{},[49,535,536],{},"Сохраните файл"," (",[26,539,540],{},"Ctrl+O"," в nano, затем ",[26,543,544],{},"Enter",") и ",[49,547,548],{},"закройте редактор",[26,550,551],{},"Ctrl+X",[46,553,554,557,558,570],{},[49,555,556],{},"Примените изменения к текущей сессии",", не перезапуская терминал:\n",[145,559,561],{"className":147,"code":560,"language":61,"meta":149,"style":149},"source ~/.bashrc\n",[26,562,563],{"__ignoreMap":149},[153,564,565,568],{"class":155,"line":156},[153,566,567],{"class":186},"source",[153,569,473],{"class":210},"\nИли просто откройте новое окно терминала.",[572,573],"in-article-ad",{},[17,575,577],{"id":576},"шаг-5-создание-глобальных-переменных-через-profile-или-bash_profile","Шаг 5: Создание глобальных переменных через ~/.profile (или ~/.bash_profile)",[22,579,580,581,584,585,588,589,591,592,595,596,137],{},"Если вам нужно, чтобы переменная была доступна ",[49,582,583],{},"при любом входе в систему"," (включая графический вход, запуск скриптов через ",[26,586,587],{},"cron"," или другие программы, запускаемые из меню), используйте файл ",[26,590,83],{}," (или ",[26,593,594],{},"~/.bash_profile"," в некоторых системах). Этот файл читается ",[49,597,598],{},"при запуске login shell",[234,600,601,616,668],{},[46,602,603,604],{},"Откройте (или создайте) файл:\n",[145,605,607],{"className":147,"code":606,"language":61,"meta":149,"style":149},"nano ~/.profile\n",[26,608,609],{"__ignoreMap":149},[153,610,611,613],{"class":155,"line":156},[153,612,93],{"class":166},[153,614,615],{"class":210}," ~/.profile\n",[46,617,618,619,621,622,624,625],{},"Добавьте туда нужные ",[26,620,69],{},"-команды. Пример для ",[26,623,36],{},":\n",[145,626,628],{"className":147,"code":627,"language":61,"meta":149,"style":149},"# Настройка Java\nexport JAVA_HOME=\"/usr/lib/jvm/java-17-openjdk-amd64\"\nexport PATH=\"$JAVA_HOME/bin:$PATH\"\n",[26,629,630,635,647],{"__ignoreMap":149},[153,631,632],{"class":155,"line":156},[153,633,634],{"class":159},"# Настройка Java\n",[153,636,637,639,642,644],{"class":155,"line":163},[153,638,69],{"class":267},[153,640,641],{"class":190}," JAVA_HOME",[153,643,273],{"class":267},[153,645,646],{"class":210},"\"/usr/lib/jvm/java-17-openjdk-amd64\"\n",[153,648,649,651,653,655,657,660,663,665],{"class":155,"line":170},[153,650,69],{"class":267},[153,652,390],{"class":190},[153,654,273],{"class":267},[153,656,395],{"class":210},[153,658,659],{"class":190},"$JAVA_HOME",[153,661,662],{"class":210},"/bin:",[153,664,362],{"class":190},[153,666,667],{"class":210},"\"\n",[46,669,670,671,674,675],{},"Сохраните файл. ",[49,672,673],{},"Изменения вступят в силу после следующего входа в систему"," (перезагрузки или выхода/входа). Чтобы применить их сейчас в текущем терминале, выполните:\n",[145,676,678],{"className":147,"code":677,"language":61,"meta":149,"style":149},"source ~/.profile\n",[26,679,680],{"__ignoreMap":149},[153,681,682,684],{"class":155,"line":156},[153,683,567],{"class":186},[153,685,615],{"class":210},[327,687,688],{},[22,689,690,691,694,695,697,698,700,701,705],{},"💡 ",[49,692,693],{},"Совет:"," Для большинства пользователей, работающих в основном в терминале, достаточно ",[26,696,79],{},". Используйте ",[26,699,83],{}," для настроек, которые должны быть видны ",[702,703,704],"em",{},"всем"," программам, запущенным от вашего имени.",[17,707,709],{"id":708},"шаг-6-создание-переменной-для-одной-команды-inline","Шаг 6: Создание переменной для одной команды (Inline)",[22,711,712,713,137],{},"Иногда нужно задать переменную только для выполнения одной конкретной команды, не засоряя окружение. Синтаксис: ",[26,714,715],{},"VAR=value command",[145,717,719],{"className":147,"code":718,"language":61,"meta":149,"style":149},"# Выполнить команду 'make' с указанием конкретного компилятора\nCC=gcc-11 make\n\n# Запустить скрипт с временной локалью\nLANG=ru_RU.UTF-8 ./setup_script.sh\n\n# Проверить, что глобальная переменная не изменилась\necho $LANG\n# Вывод будет прежним, если он был задан в .bashrc/.profile\n",[26,720,721,726,739,743,748,760,764,769,776],{"__ignoreMap":149},[153,722,723],{"class":155,"line":156},[153,724,725],{"class":159},"# Выполнить команду 'make' с указанием конкретного компилятора\n",[153,727,728,731,733,736],{"class":155,"line":163},[153,729,730],{"class":190},"CC",[153,732,273],{"class":267},[153,734,735],{"class":210},"gcc-11",[153,737,738],{"class":166}," make\n",[153,740,741],{"class":155,"line":170},[153,742,174],{"emptyLinePlaceholder":173},[153,744,745],{"class":155,"line":177},[153,746,747],{"class":159},"# Запустить скрипт с временной локалью\n",[153,749,750,752,754,757],{"class":155,"line":183},[153,751,32],{"class":190},[153,753,273],{"class":267},[153,755,756],{"class":210},"ru_RU.UTF-8",[153,758,759],{"class":166}," ./setup_script.sh\n",[153,761,762],{"class":155,"line":194},[153,763,174],{"emptyLinePlaceholder":173},[153,765,766],{"class":155,"line":199},[153,767,768],{"class":159},"# Проверить, что глобальная переменная не изменилась\n",[153,770,771,773],{"class":155,"line":205},[153,772,187],{"class":186},[153,774,775],{"class":190}," $LANG\n",[153,777,778],{"class":155,"line":316},[153,779,780],{"class":159},"# Вывод будет прежним, если он был задан в .bashrc/.profile\n",[17,782,784],{"id":783},"проверка-результата","Проверка результата",[22,786,787],{},"После выполнения настроек убедитесь, что всё работает:",[234,789,790,799,821,854],{},[46,791,792,795,796,798],{},[49,793,794],{},"Перезапустите терминал"," (или выполните ",[26,797,567],{}," для соответствующего файла).",[46,800,801,802],{},"Проверьте наличие ваших переменных:\n",[145,803,805],{"className":147,"code":804,"language":61,"meta":149,"style":149},"echo $MY_VAR\nprintenv MY_VAR\n",[26,806,807,814],{"__ignoreMap":149},[153,808,809,811],{"class":155,"line":156},[153,810,187],{"class":186},[153,812,813],{"class":190}," $MY_VAR\n",[153,815,816,818],{"class":155,"line":163},[153,817,129],{"class":166},[153,819,820],{"class":210}," MY_VAR\n",[46,822,823,824,826,827],{},"Проверьте, что ",[26,825,28],{}," содержит нужные пути и в правильном порядке:\n",[145,828,830],{"className":147,"code":829,"language":61,"meta":149,"style":149},"echo $PATH | tr ':' '\\n'  # Вывод каждого пути с новой строки\n",[26,831,832],{"__ignoreMap":149},[153,833,834,836,839,842,845,848,851],{"class":155,"line":156},[153,835,187],{"class":186},[153,837,838],{"class":190}," $PATH ",[153,840,841],{"class":267},"|",[153,843,844],{"class":166}," tr",[153,846,847],{"class":210}," ':'",[153,849,850],{"class":210}," '\\n'",[153,852,853],{"class":159},"  # Вывод каждого пути с новой строки\n",[46,855,856,857],{},"Проверьте, что команды из добавленного каталога доступны:\n",[145,858,860],{"className":147,"code":859,"language":61,"meta":149,"style":149},"which my_custom_tool  # Должен показать полный путь к исполняемому файлу\n",[26,861,862],{"__ignoreMap":149},[153,863,864,867,870],{"class":155,"line":156},[153,865,866],{"class":186},"which",[153,868,869],{"class":210}," my_custom_tool",[153,871,872],{"class":159},"  # Должен показать полный путь к исполняемому файлу\n",[17,874,876],{"id":875},"возможные-проблемы","Возможные проблемы",[43,878,879,892,910,928,946],{},[46,880,881,884,885,888,889,221],{},[49,882,883],{},"«Команда не найдена» после добавления в PATH:"," Убедитесь, что вы добавили путь к ",[49,886,887],{},"каталогу",", а не к самому исполняемому файлу. Проверьте, что файл действительно существует и имеет права на выполнение (",[26,890,891],{},"chmod +x файл",[46,893,894,897,898,901,902,905,906,909],{},[49,895,896],{},"Изменения в .bashrc/.profile не применяются:"," Вы уверены, что редактировали правильный файл? Проверьте, какой shell вы используете (",[26,899,900],{},"echo $SHELL","). Убедитесь, что вы выполнили ",[26,903,904],{},"source ~/.bashrc"," или перезапустили терминал. Для ",[26,907,908],{},".profile"," может потребоваться полный выход/вход в систему.",[46,911,912,915,916,80,918,80,921,924,925,137],{},[49,913,914],{},"Конфликт имён переменных:"," Избегайте использования общих имён (",[26,917,28],{},[26,919,920],{},"HOME",[26,922,923],{},"USER",") для своих переменных, если только вы не уверены в последствиях. Используйте префикс, например, ",[26,926,927],{},"MYAPP_DEBUG",[46,929,930,933,934,937,938,941,942,945],{},[49,931,932],{},"Проблемы с правами:"," При запуске скриптов или программ, которые зависят от ваших переменных, убедитесь, что у вас есть права на выполнение. Ошибки доступа могут возникать, если скрипт запущен через ",[26,935,936],{},"sudo"," — переменные текущего пользователя по умолчанию не передаются. Используйте ",[26,939,940],{},"sudo -E"," для сохранения окружения (осторожно!) или настройте переменные системно в ",[26,943,944],{},"/etc/environment"," (требует прав root).",[46,947,948,951,952,954,955,958,959,962],{},[49,949,950],{},"Кодировка/локализация:"," Если после установки ",[26,953,32],{}," или ",[26,956,957],{},"LC_*"," символы отображаются некорректно, убедитесь, что соответствующая локальная генерация установлена в системе (",[26,960,961],{},"sudo locale-gen ru_RU.UTF-8"," в Debian/Ubuntu).",[964,965,966],"style",{},"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 .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 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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":149,"searchDepth":163,"depth":163,"links":968},[969,970,971,972,973,974,975,976,977,978],{"id":19,"depth":163,"text":20},{"id":40,"depth":163,"text":41},{"id":108,"depth":163,"text":109},{"id":224,"depth":163,"text":225},{"id":349,"depth":163,"text":350},{"id":442,"depth":163,"text":443},{"id":576,"depth":163,"text":577},{"id":708,"depth":163,"text":709},{"id":783,"depth":163,"text":784},{"id":875,"depth":163,"text":876},null,"2026-02-17 14:16:16","Узнайте, как правильно создавать, управлять и сохранять переменные окружения в Linux. Пошаговая инструкция по работе с export, .bashrc, .profile и PATH для настройки вашей системы.","easy",false,"10-15 мин","md",[987,990,993,996],{"question":988,"answer":989},"В чём разница между .bashrc и .profile?","`.profile` (или `.bash_profile`) выполняется при входе в систему (login shell), а `.bashrc` — при каждом запуске нового интерактивного не-логического shell (например, при открытии нового терминала). Для переменных окружения, нужных везде, используйте `.profile`.",{"question":991,"answer":992},"Почему мои переменные не сохраняются после перезагрузки?","Временные переменные, заданные командой `export VAR=value` в открытой сессии, действуют только в ней. Для сохранения нужно добавить команду `export` в файл конфигурации вашего shell (например, `~/.bashrc` или `~/.profile`) и перезапустить shell или выполнить `source ~/.bashrc`.",{"question":994,"answer":995},"Как добавить каталог в переменную PATH?","Используйте синтаксис `export PATH=\"$PATH:/новый/каталог\"`. Обратите внимание на кавычки и двоеточие-разделитель. Добавлять лучше в конец PATH, чтобы не перекрывать системные пути.",{"question":997,"answer":998},"Могу ли я задать переменную окружения только для одной команды?","Да. Используйте синтаксис `VAR=value command`. Например, `LANG=ru_RU.UTF-8 date` выполнит команду `date` с временной локалью `ru_RU.UTF-8`, не меняя глобальную настройку.",[1000,1003,1006,1009,1012],{"name":1001,"text":1002},"Просмотр текущих переменных окружения","Используйте команды `env` для вывода всех переменных или `printenv VAR_NAME` для конкретной. Также `echo $VAR_NAME` покажет значение в текущей оболочке.",{"name":1004,"text":1005},"Создание временной переменной","Задайте переменную и сделайте её доступной для дочерних процессов с помощью `export`. Например: `export MY_VAR=\"Привет\"`. Она будет жить до закрытия текущего терминала.",{"name":1007,"text":1008},"Добавление каталога в PATH","Чтобы система находила исполняемые файлы в вашем каталоге, добавьте его в `PATH`. Пример: `export PATH=\"$PATH:$HOME/myapp/bin\"`.",{"name":1010,"text":1011},"Создание постоянной переменной (для Bash)","Откройте файл `~/.bashrc` в текстовом редакторе (например, `nano ~/.bashrc`) и добавьте строку `export MY_VAR=\"значение\"` в конец файла. Сохраните и выполните `source ~/.bashrc`.",{"name":1013,"text":1014},"Создание постоянной переменной (для всех сессий)","Для переменных, нужных при graphical login (например, для приложений из меню), используйте `~/.profile` или `~/.bash_profile`. Добавьте туда команду `export` и перелогиньтесь.","PT15M",[1017,1018,1019,1020,1021,1022,1023,1024,1025,1026],"переменные окружения linux","управление переменными bash","как задать path в linux","файл .bashrc .profile","export переменная linux","set environment variable ubuntu","bashrc vs profile","сохранить переменную окружения","linux переменная PATH","просмотр env linux","ru_RU",{},"/guides/linux/shell-variables-env","linux",[1032,1033,1034],"/guides/linux/linux-permissions-chmod-chown","/guides/linux/linux-shell-scripting-basics","/errors/linux/bash-command-not-found","Гайды Linux",{"title":5,"description":981},"guides/linux/shell-variables-env","Это руководство объясняет, что такое переменные окружения в Linux, как их просматривать, временно задавать и настраивать постоянно. Вы научитесь управлять путями, переменными для приложений и средой разработки.",[1030,61,1040,1041,1042,1043,1044],"sysadmin","environment-variables","configuration","terminal","devops","guide","V25KQHqcHnH_uSB216QROOS_ZwIq97HpL1d75DKyNfw",{"data":1048,"body":1049},{},{"type":1050,"children":1051},"root",[1052],{"type":1053,"tag":22,"props":1054,"children":1055},"element",{},[1056,1062,1063,1069,1071,1077,1079,1084],{"type":1053,"tag":26,"props":1057,"children":1059},{"className":1058},[],[1060],{"type":1061,"value":908},"text",{"type":1061,"value":591},{"type":1053,"tag":26,"props":1064,"children":1066},{"className":1065},[],[1067],{"type":1061,"value":1068},".bash_profile",{"type":1061,"value":1070},") выполняется при входе в систему (login shell), а ",{"type":1053,"tag":26,"props":1072,"children":1074},{"className":1073},[],[1075],{"type":1061,"value":1076},".bashrc",{"type":1061,"value":1078}," — при каждом запуске нового интерактивного не-логического shell (например, при открытии нового терминала). Для переменных окружения, нужных везде, используйте ",{"type":1053,"tag":26,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":1061,"value":908},{"type":1061,"value":137},{"data":1086,"body":1087},{},{"type":1050,"children":1088},[1089],{"type":1053,"tag":22,"props":1090,"children":1091},{},[1092,1094,1100,1102,1107,1109,1114,1115,1120,1122,1127],{"type":1061,"value":1093},"Временные переменные, заданные командой ",{"type":1053,"tag":26,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":1061,"value":1099},"export VAR=value",{"type":1061,"value":1101}," в открытой сессии, действуют только в ней. Для сохранения нужно добавить команду ",{"type":1053,"tag":26,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":1061,"value":69},{"type":1061,"value":1108}," в файл конфигурации вашего shell (например, ",{"type":1053,"tag":26,"props":1110,"children":1112},{"className":1111},[],[1113],{"type":1061,"value":79},{"type":1061,"value":954},{"type":1053,"tag":26,"props":1116,"children":1118},{"className":1117},[],[1119],{"type":1061,"value":83},{"type":1061,"value":1121},") и перезапустить shell или выполнить ",{"type":1053,"tag":26,"props":1123,"children":1125},{"className":1124},[],[1126],{"type":1061,"value":904},{"type":1061,"value":137},{"data":1129,"body":1130},{},{"type":1050,"children":1131},[1132],{"type":1053,"tag":22,"props":1133,"children":1134},{},[1135,1137,1143],{"type":1061,"value":1136},"Используйте синтаксис ",{"type":1053,"tag":26,"props":1138,"children":1140},{"className":1139},[],[1141],{"type":1061,"value":1142},"export PATH=\"$PATH:/новый/каталог\"",{"type":1061,"value":1144},". Обратите внимание на кавычки и двоеточие-разделитель. Добавлять лучше в конец PATH, чтобы не перекрывать системные пути.",{"data":1146,"body":1147},{},{"type":1050,"children":1148},[1149],{"type":1053,"tag":22,"props":1150,"children":1151},{},[1152,1154,1159,1161,1167,1169,1175,1177,1182],{"type":1061,"value":1153},"Да. Используйте синтаксис ",{"type":1053,"tag":26,"props":1155,"children":1157},{"className":1156},[],[1158],{"type":1061,"value":715},{"type":1061,"value":1160},". Например, ",{"type":1053,"tag":26,"props":1162,"children":1164},{"className":1163},[],[1165],{"type":1061,"value":1166},"LANG=ru_RU.UTF-8 date",{"type":1061,"value":1168}," выполнит команду ",{"type":1053,"tag":26,"props":1170,"children":1172},{"className":1171},[],[1173],{"type":1061,"value":1174},"date",{"type":1061,"value":1176}," с временной локалью ",{"type":1053,"tag":26,"props":1178,"children":1180},{"className":1179},[],[1181],{"type":1061,"value":756},{"type":1061,"value":1183},", не меняя глобальную настройку.",{"data":1185,"body":1186},{},{"type":1050,"children":1187},[1188],{"type":1053,"tag":22,"props":1189,"children":1190},{},[1191,1193,1198,1200,1206,1208,1213],{"type":1061,"value":1192},"Используйте команды ",{"type":1053,"tag":26,"props":1194,"children":1196},{"className":1195},[],[1197],{"type":1061,"value":119},{"type":1061,"value":1199}," для вывода всех переменных или ",{"type":1053,"tag":26,"props":1201,"children":1203},{"className":1202},[],[1204],{"type":1061,"value":1205},"printenv VAR_NAME",{"type":1061,"value":1207}," для конкретной. Также ",{"type":1053,"tag":26,"props":1209,"children":1211},{"className":1210},[],[1212],{"type":1061,"value":142},{"type":1061,"value":1214}," покажет значение в текущей оболочке.",{"data":1216,"body":1217},{},{"type":1050,"children":1218},[1219],{"type":1053,"tag":22,"props":1220,"children":1221},{},[1222,1224,1229,1231,1237],{"type":1061,"value":1223},"Задайте переменную и сделайте её доступной для дочерних процессов с помощью ",{"type":1053,"tag":26,"props":1225,"children":1227},{"className":1226},[],[1228],{"type":1061,"value":69},{"type":1061,"value":1230},". Например: ",{"type":1053,"tag":26,"props":1232,"children":1234},{"className":1233},[],[1235],{"type":1061,"value":1236},"export MY_VAR=\"Привет\"",{"type":1061,"value":1238},". Она будет жить до закрытия текущего терминала.",{"data":1240,"body":1241},{},{"type":1050,"children":1242},[1243],{"type":1053,"tag":22,"props":1244,"children":1245},{},[1246,1248,1253,1255,1261],{"type":1061,"value":1247},"Чтобы система находила исполняемые файлы в вашем каталоге, добавьте его в ",{"type":1053,"tag":26,"props":1249,"children":1251},{"className":1250},[],[1252],{"type":1061,"value":28},{"type":1061,"value":1254},". Пример: ",{"type":1053,"tag":26,"props":1256,"children":1258},{"className":1257},[],[1259],{"type":1061,"value":1260},"export PATH=\"$PATH:$HOME/myapp/bin\"",{"type":1061,"value":137},{"data":1263,"body":1264},{},{"type":1050,"children":1265},[1266],{"type":1053,"tag":22,"props":1267,"children":1268},{},[1269,1271,1276,1278,1284,1286,1292,1294,1299],{"type":1061,"value":1270},"Откройте файл ",{"type":1053,"tag":26,"props":1272,"children":1274},{"className":1273},[],[1275],{"type":1061,"value":79},{"type":1061,"value":1277}," в текстовом редакторе (например, ",{"type":1053,"tag":26,"props":1279,"children":1281},{"className":1280},[],[1282],{"type":1061,"value":1283},"nano ~/.bashrc",{"type":1061,"value":1285},") и добавьте строку ",{"type":1053,"tag":26,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":1061,"value":1291},"export MY_VAR=\"значение\"",{"type":1061,"value":1293}," в конец файла. Сохраните и выполните ",{"type":1053,"tag":26,"props":1295,"children":1297},{"className":1296},[],[1298],{"type":1061,"value":904},{"type":1061,"value":137},{"data":1301,"body":1302},{},{"type":1050,"children":1303},[1304],{"type":1053,"tag":22,"props":1305,"children":1306},{},[1307,1309,1314,1315,1320,1322,1327],{"type":1061,"value":1308},"Для переменных, нужных при graphical login (например, для приложений из меню), используйте ",{"type":1053,"tag":26,"props":1310,"children":1312},{"className":1311},[],[1313],{"type":1061,"value":83},{"type":1061,"value":954},{"type":1053,"tag":26,"props":1316,"children":1318},{"className":1317},[],[1319],{"type":1061,"value":594},{"type":1061,"value":1321},". Добавьте туда команду ",{"type":1053,"tag":26,"props":1323,"children":1325},{"className":1324},[],[1326],{"type":1061,"value":69},{"type":1061,"value":1328}," и перелогиньтесь.",[1330],{"id":1331,"title":1332,"appliesTo":1333,"author":12,"body":1336,"canonical":979,"code":149,"createdAt":2019,"description":2020,"difficulty":982,"draft":983,"estimatedTime":2021,"extension":985,"faq":2022,"howToSteps":2035,"howToTotalTime":2051,"image":979,"keywords":2052,"locale":1027,"meta":2061,"navigation":173,"path":1034,"platform":1030,"related":2062,"section":2066,"seo":2067,"severity":2068,"stem":2069,"summary":2070,"tags":2071,"twitterCreator":979,"twitterSite":979,"type":2075,"updatedAt":2019,"__hash__":2076},"content_ru/errors/linux/bash-command-not-found.md","Bash command not found: причины и 4 способа исправить",[1334,1335],"Все дистрибутивы Linux (Ubuntu, Debian, CentOS, Arch)","Bash 3.2+",{"type":14,"value":1337,"toc":2008},[1338,1342,1356,1359,1389,1403,1407,1474,1478,1483,1486,1512,1516,1529,1534,1598,1603,1651,1656,1695,1697,1701,1872,1876,1879,1919,1924,1928,2005],[17,1339,1341],{"id":1340},"что-означает-ошибка-command-not-found","Что означает ошибка \"command not found\"",[22,1343,1344,1345,591,1350,1353,1354,137],{},"Ошибка ",[49,1346,1347],{},[26,1348,1349],{},"bash: command not found",[26,1351,1352],{},"command not found",") означает, что командная оболочка Bash не может найти исполняемый файл команды, которую вы ввели, ни в одной из директорий, указанных в переменной окружения ",[26,1355,28],{},[22,1357,1358],{},"Полный текст ошибки обычно выглядит так:",[145,1360,1362],{"className":147,"code":1361,"language":61,"meta":149,"style":149},"$ somecommand\nbash: somecommand: command not found\n",[26,1363,1364,1372],{"__ignoreMap":149},[153,1365,1366,1369],{"class":155,"line":156},[153,1367,1368],{"class":166},"$",[153,1370,1371],{"class":210}," somecommand\n",[153,1373,1374,1377,1380,1383,1386],{"class":155,"line":163},[153,1375,1376],{"class":166},"bash:",[153,1378,1379],{"class":210}," somecommand:",[153,1381,1382],{"class":210}," command",[153,1384,1385],{"class":210}," not",[153,1387,1388],{"class":210}," found\n",[22,1390,1391,1392,1395,1396,1399,1400,1402],{},"Эта ошибка возникает ",[49,1393,1394],{},"в момент ввода команды"," в терминал (интерактивном режиме) или при выполнении скрипта. Bash последовательно ищет исполняемый файл с именем ",[26,1397,1398],{},"somecommand"," в каждом каталоге из переменной ",[26,1401,28],{},". Если ни в одном из них файл с таким именем не найден (или он не имеет прав на выполнение), вы получаете это сообщение.",[17,1404,1406],{"id":1405},"причины-возникновения","Причины возникновения",[234,1408,1409,1425,1442,1454,1463],{},[46,1410,1411,1414,1415,80,1418,80,1421,1424],{},[49,1412,1413],{},"Пакет с командой не установлен."," Самая частая причина. Команда является частью программного пакета (например, ",[26,1416,1417],{},"git",[26,1419,1420],{},"docker",[26,1422,1423],{},"htop","), который вы не устанавливали.",[46,1426,1427,1432,1433,954,1436,1439,1440,137],{},[49,1428,1429,1430,137],{},"Команда находится в каталоге, отсутствующем в ",[26,1431,28],{}," Вы установили программу в нестандартное место (например, ",[26,1434,1435],{},"~/apps/",[26,1437,1438],{},"/opt/local/bin","), но этот путь не добавлен в переменную ",[26,1441,28],{},[46,1443,1444,1447,1448,1451,1452,137],{},[49,1445,1446],{},"Опечатка или неверный регистр."," Linux-команды чувствительны к регистру. ",[26,1449,1450],{},"Ls"," ≠ ",[26,1453,366],{},[46,1455,1456,1459,1460,221],{},[49,1457,1458],{},"Исполняемый файл отсутствует или имеет неверные права."," Файл команды был удалён, перемещён или у него нет права на выполнение (",[26,1461,1462],{},"chmod +x",[46,1464,1465,1470,1471,1473],{},[49,1466,1467,1468,137],{},"Повреждён или некорректно настроен ",[26,1469,28],{}," Переменная ",[26,1472,28],{}," может быть пустой, содержать синтаксические ошибки или относительные пути.",[17,1475,1477],{"id":1476},"способы-решения","Способы решения",[1479,1480,1482],"h3",{"id":1481},"способ-1-проверьте-опечатки-и-регистр","Способ 1: Проверьте опечатки и регистр",[22,1484,1485],{},"Перед глубокой диагностикой убедитесь, что команда написана правильно.",[43,1487,1488,1495,1505],{},[46,1489,1490,1491,1494],{},"Используйте клавишу ",[26,1492,1493],{},"Tab"," для автодополнения. Если Bash ничего не дополняет, команда, скорее всего, неизвестна системе.",[46,1496,1497,1498,1501,1502,137],{},"Убедитесь в правильности регистра: ",[26,1499,1500],{},"git status",", а не ",[26,1503,1504],{},"Git Status",[46,1506,1507,1508,1511],{},"Для поиска похожих команд можно использовать ",[26,1509,1510],{},"apropos \u003Cключевое_слово>"," (требует обновлённого индекса man-страниц).",[1479,1513,1515],{"id":1514},"способ-2-найдите-и-установите-недостающий-пакет","Способ 2: Найдите и установите недостающий пакет",[22,1517,1518,1519,80,1522,80,1525,1528],{},"Если команда стандартная (например, ",[26,1520,1521],{},"curl",[26,1523,1524],{},"wget",[26,1526,1527],{},"python3","), её нужно установить.",[22,1530,1531],{},[49,1532,1533],{},"Для Ubuntu/Debian:",[145,1535,1537],{"className":147,"code":1536,"language":61,"meta":149,"style":149},"# Поиск пакета, содержащего команду\napt search \u003Cимя_команды>\n# Установка пакета (требует sudo)\nsudo apt update && sudo apt install \u003Cимя_пакета>\n",[26,1538,1539,1544,1563,1568],{"__ignoreMap":149},[153,1540,1541],{"class":155,"line":156},[153,1542,1543],{"class":159},"# Поиск пакета, содержащего команду\n",[153,1545,1546,1548,1551,1554,1557,1560],{"class":155,"line":163},[153,1547,372],{"class":166},[153,1549,1550],{"class":210}," search",[153,1552,1553],{"class":267}," \u003C",[153,1555,1556],{"class":210},"имя_команд",[153,1558,1559],{"class":190},"ы",[153,1561,1562],{"class":267},">\n",[153,1564,1565],{"class":155,"line":170},[153,1566,1567],{"class":159},"# Установка пакета (требует sudo)\n",[153,1569,1570,1572,1575,1578,1581,1583,1585,1588,1590,1593,1596],{"class":155,"line":177},[153,1571,936],{"class":166},[153,1573,1574],{"class":210}," apt",[153,1576,1577],{"class":210}," update",[153,1579,1580],{"class":190}," && ",[153,1582,936],{"class":166},[153,1584,1574],{"class":210},[153,1586,1587],{"class":210}," install",[153,1589,1553],{"class":267},[153,1591,1592],{"class":210},"имя_пакет",[153,1594,1595],{"class":190},"а",[153,1597,1562],{"class":267},[22,1599,1600],{},[49,1601,1602],{},"Для CentOS/RHEL/Fedora:",[145,1604,1606],{"className":147,"code":1605,"language":61,"meta":149,"style":149},"yum provides */\u003Cимя_команды>  # или dnf на Fedora/CentOS 8+\nsudo yum install \u003Cимя_пакета>\n",[26,1607,1608,1634],{"__ignoreMap":149},[153,1609,1610,1613,1616,1619,1621,1624,1626,1628,1631],{"class":155,"line":156},[153,1611,1612],{"class":166},"yum",[153,1614,1615],{"class":210}," provides",[153,1617,1618],{"class":186}," *",[153,1620,98],{"class":210},[153,1622,1623],{"class":267},"\u003C",[153,1625,1556],{"class":210},[153,1627,1559],{"class":190},[153,1629,1630],{"class":267},">",[153,1632,1633],{"class":159},"  # или dnf на Fedora/CentOS 8+\n",[153,1635,1636,1638,1641,1643,1645,1647,1649],{"class":155,"line":163},[153,1637,936],{"class":166},[153,1639,1640],{"class":210}," yum",[153,1642,1587],{"class":210},[153,1644,1553],{"class":267},[153,1646,1592],{"class":210},[153,1648,1595],{"class":190},[153,1650,1562],{"class":267},[22,1652,1653],{},[49,1654,1655],{},"Для Arch Linux:",[145,1657,1659],{"className":147,"code":1658,"language":61,"meta":149,"style":149},"pacman -Fs \u003Cимя_команды>\nsudo pacman -S \u003Cимя_пакета>\n",[26,1660,1661,1677],{"__ignoreMap":149},[153,1662,1663,1666,1669,1671,1673,1675],{"class":155,"line":156},[153,1664,1665],{"class":166},"pacman",[153,1667,1668],{"class":186}," -Fs",[153,1670,1553],{"class":267},[153,1672,1556],{"class":210},[153,1674,1559],{"class":190},[153,1676,1562],{"class":267},[153,1678,1679,1681,1684,1687,1689,1691,1693],{"class":155,"line":163},[153,1680,936],{"class":166},[153,1682,1683],{"class":210}," pacman",[153,1685,1686],{"class":186}," -S",[153,1688,1553],{"class":267},[153,1690,1592],{"class":210},[153,1692,1595],{"class":190},[153,1694,1562],{"class":267},[572,1696],{},[1479,1698,1700],{"id":1699},"способ-3-проверьте-и-исправьте-переменную-path","Способ 3: Проверьте и исправьте переменную PATH",[234,1702,1703,1729,1785,1812],{},[46,1704,1705,1710,1721,1724,1725,1728],{},[49,1706,1707,1708,220],{},"Посмотрите текущий ",[26,1709,28],{},[145,1711,1713],{"className":147,"code":1712,"language":61,"meta":149,"style":149},"echo $PATH\n",[26,1714,1715],{"__ignoreMap":149},[153,1716,1717,1719],{"class":155,"line":156},[153,1718,187],{"class":186},[153,1720,191],{"class":190},[1722,1723],"br",{},"Вывод будет выглядеть как ",[26,1726,1727],{},"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",". Это список каталогов, где Bash ищет команды.",[46,1730,1731,1734,1777,1779,1780,1782,1783,137],{},[49,1732,1733],{},"Определите, где находится ваша команда (если она есть в системе):",[145,1735,1737],{"className":147,"code":1736,"language":61,"meta":149,"style":149},"# Покажет полный путь к исполняемому файлу, если он найден в PATH\nwhich \u003Cимя_команды>\n# Более точная проверка (встроенная в bash)\ntype -a \u003Cимя_команды>\n",[26,1738,1739,1744,1756,1761],{"__ignoreMap":149},[153,1740,1741],{"class":155,"line":156},[153,1742,1743],{"class":159},"# Покажет полный путь к исполняемому файлу, если он найден в PATH\n",[153,1745,1746,1748,1750,1752,1754],{"class":155,"line":163},[153,1747,866],{"class":186},[153,1749,1553],{"class":267},[153,1751,1556],{"class":210},[153,1753,1559],{"class":190},[153,1755,1562],{"class":267},[153,1757,1758],{"class":155,"line":170},[153,1759,1760],{"class":159},"# Более точная проверка (встроенная в bash)\n",[153,1762,1763,1766,1769,1771,1773,1775],{"class":155,"line":177},[153,1764,1765],{"class":186},"type",[153,1767,1768],{"class":186}," -a",[153,1770,1553],{"class":267},[153,1772,1556],{"class":210},[153,1774,1559],{"class":190},[153,1776,1562],{"class":267},[1722,1778],{},"Если ",[26,1781,866],{}," ничего не выводит — команды нет в ",[26,1784,28],{},[46,1786,1787,1792,1793,1809,1811],{},[49,1788,1789,1790],{},"Если вы знаете, где лежит команда, но её нет в ",[26,1791,28],{},", добавьте каталог временно (до перезагрузки терминала):",[145,1794,1796],{"className":147,"code":1795,"language":61,"meta":149,"style":149},"export PATH=$PATH:/полный/путь/к/каталогу/с/командой\n",[26,1797,1798],{"__ignoreMap":149},[153,1799,1800,1802,1804,1806],{"class":155,"line":156},[153,1801,69],{"class":267},[153,1803,390],{"class":190},[153,1805,273],{"class":267},[153,1807,1808],{"class":190},"$PATH:/полный/путь/к/каталогу/с/командой\n",[1722,1810],{},"После этого команда должна заработать.",[46,1813,1814,1817,1818,1832,1852],{},[49,1815,1816],{},"Чтобы добавить путь навсегда",", отредактируйте конфигурационный файл вашей оболочки.",[43,1819,1820],{},[46,1821,1822,1823,1826,1827,954,1829,1831],{},"Для ",[49,1824,1825],{},"Bash"," (по умолчанию в большинстве дистрибутивов) откройте ",[26,1828,79],{},[26,1830,83],{}," и добавьте строку:",[145,1833,1835],{"className":147,"code":1834,"language":61,"meta":149,"style":149},"export PATH=\"$PATH:/полный/путь/к/каталогу\"\n",[26,1836,1837],{"__ignoreMap":149},[153,1838,1839,1841,1843,1845,1847,1849],{"class":155,"line":156},[153,1840,69],{"class":267},[153,1842,390],{"class":190},[153,1844,273],{"class":267},[153,1846,395],{"class":210},[153,1848,362],{"class":190},[153,1850,1851],{"class":210},":/полный/путь/к/каталогу\"\n",[43,1853,1854,1863],{},[46,1855,1822,1856,1859,1860,137],{},[49,1857,1858],{},"Zsh"," отредактируйте ",[26,1861,1862],{},"~/.zshrc",[46,1864,1865,1866,591,1868,1871],{},"После сохранения файла выполните ",[26,1867,904],{},[26,1869,1870],{},"source ~/.zshrc","), чтобы изменения вступили в силу в текущей сессии.",[1479,1873,1875],{"id":1874},"способ-4-проверьте-права-на-выполнение-файла","Способ 4: Проверьте права на выполнение файла",[22,1877,1878],{},"Если команда — это ваш собственный скрипт или программа, убедитесь, что файл является исполняемым.",[145,1880,1882],{"className":147,"code":1881,"language":61,"meta":149,"style":149},"# Проверьте права\nls -l /полный/путь/к/файлу_команды\n# В выводе должны быть буквы 'x' для владельца/группы/всех (например, -rwxr--r--)\n# Если нет — добавьте право на выполнение:\nchmod +x /полный/путь/к/файлу_команды\n",[26,1883,1884,1889,1899,1904,1909],{"__ignoreMap":149},[153,1885,1886],{"class":155,"line":156},[153,1887,1888],{"class":159},"# Проверьте права\n",[153,1890,1891,1893,1896],{"class":155,"line":163},[153,1892,366],{"class":166},[153,1894,1895],{"class":186}," -l",[153,1897,1898],{"class":210}," /полный/путь/к/файлу_команды\n",[153,1900,1901],{"class":155,"line":170},[153,1902,1903],{"class":159},"# В выводе должны быть буквы 'x' для владельца/группы/всех (например, -rwxr--r--)\n",[153,1905,1906],{"class":155,"line":177},[153,1907,1908],{"class":159},"# Если нет — добавьте право на выполнение:\n",[153,1910,1911,1914,1917],{"class":155,"line":183},[153,1912,1913],{"class":166},"chmod",[153,1915,1916],{"class":210}," +x",[153,1918,1898],{"class":210},[22,1920,1921,1922,137],{},"Убедитесь также, что файл находится в каталоге, который есть в ",[26,1923,28],{},[17,1925,1927],{"id":1926},"профилактика","Профилактика",[43,1929,1930,1946,1952,1978,1993],{},[46,1931,1932,1938,1939,80,1942,1945],{},[49,1933,1934,1935,1937],{},"Управляйте ",[26,1936,28],{}," осознанно."," Не добавляйте в него слишком много каталогов. Стандартные пути (",[26,1940,1941],{},"/usr/local/bin",[26,1943,1944],{},"/usr/bin",") должны присутствовать.",[46,1947,1948,1951],{},[49,1949,1950],{},"Используйте абсолютные пути"," в скриптах для критически важных команд, если вы не уверены в среде выполнения.",[46,1953,1954,1957,1958,624,1960],{},[49,1955,1956],{},"Создавайте алиасы (алиасы)"," для часто используемых длинных команд в ",[26,1959,79],{},[145,1961,1963],{"className":147,"code":1962,"language":61,"meta":149,"style":149},"alias ll='ls -la'\n",[26,1964,1965],{"__ignoreMap":149},[153,1966,1967,1970,1973,1975],{"class":155,"line":156},[153,1968,1969],{"class":267},"alias",[153,1971,1972],{"class":190}," ll",[153,1974,273],{"class":267},[153,1976,1977],{"class":210},"'ls -la'\n",[46,1979,1980,1983,1984,954,1987,1990,1991,137],{},[49,1981,1982],{},"Проверяйте наличие команды"," перед написанием сложных скриптов с помощью ",[26,1985,1986],{},"command -v \u003Cимя_команды>",[26,1988,1989],{},"type \u003Cимя_команды>",". Это более надёжно, чем ",[26,1992,866],{},[46,1994,1995,1998,1999,2002,2003,137],{},[49,1996,1997],{},"После установки ПО вручную"," (из исходников или в ",[26,2000,2001],{},"/opt",") сразу добавляйте его бинарный каталог в ",[26,2004,28],{},[964,2006,2007],{},"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":149,"searchDepth":163,"depth":163,"links":2009},[2010,2011,2012,2018],{"id":1340,"depth":163,"text":1341},{"id":1405,"depth":163,"text":1406},{"id":1476,"depth":163,"text":1477,"children":2013},[2014,2015,2016,2017],{"id":1481,"depth":170,"text":1482},{"id":1514,"depth":170,"text":1515},{"id":1699,"depth":170,"text":1700},{"id":1874,"depth":170,"text":1875},{"id":1926,"depth":163,"text":1927},"2026-02-15 19:17:57","Ошибка 'command not found' в bash? Пошаговая инструкция по диагностике и решению за 5-10 минут. Проверьте PATH, установите пакет или создайте alias.","5-10 мин",[2023,2026,2029,2032],{"question":2024,"answer":2025},"Почему команда работает для sudo, но не для обычного пользователя?","Чаще всего это проблема с переменной PATH для вашего пользователя. Sudo использует безопасный PATH, который может отличаться. Проверьте `echo $PATH` без и с sudo.",{"question":2027,"answer":2028},"Могу ли я добавить папку с командами в PATH навсегда?","Да. Добавьте `export PATH=$PATH:/ваш/путь` в файл `~/.bashrc` или `~/.profile` и выполните `source ~/.bashrc`.",{"question":2030,"answer":2031},"Ошибка возникает только для одной конкретной команды. Что делать?","Скорее всего, пакет с этой командой не установлен. Установите его через менеджер пакетов (apt, yum, pacman). Проверьте, что команда существует: `which \u003Cимя_команды>`.",{"question":2033,"answer":2034},"Правильно ли я пишу команду? Ошибка 'command not found' из-за опечатки?","Да, это самая частая причина. Linux чувствителен к регистру. Проверьте написание: `ls` ≠ `LS`. Используйте `Tab` для автодополнения.",[2036,2039,2042,2045,2048],{"name":2037,"text":2038},"Проверьте правильность написания команды","Убедитесь, что команда написана без опечаток и с правильным регистром. Используйте автодополнение клавишей Tab.",{"name":2040,"text":2041},"Проверьте, установлен ли пакет с командой","Для систем на apt: `apt list --installed | grep \u003Cимя_команды>`. Для других дистрибутивов используйте соответствующий менеджер пакетов.",{"name":2043,"text":2044},"Найдите расположение исполняемого файла","Выполните `which \u003Cимя_команды>` или `type \u003Cимя_команды>`. Если команда не найдена, её бинарный файл отсутствует в директориях из PATH.",{"name":2046,"text":2047},"Проверьте значение переменной PATH","Введите `echo $PATH`. Убедитесь, что каталог, содержащий вашу команду, присутствует в списке (разделённом двоеточиями).",{"name":2049,"text":2050},"Добавьте недостающий каталог в PATH","Временно: `export PATH=$PATH:/путь/к/каталогу`. Для постоянного добавления записи в `~/.bashrc` или `~/.profile`.","PT10M",[2053,2054,2055,2056,2057,2058,2059,2060],"bash command not found","команда не найдена linux","как исправить command not found","bash: команда не найдена","ошибка command not found в терминале","why command not found linux","fix bash command not found","переменная PATH linux",{},[2063,2064,2065],"/errors/linux/package-not-found","/guides/linux/understanding-path-variable","/errors/linux/permission-denied","Ошибки Linux",{"title":1332,"description":2020},"medium","errors/linux/bash-command-not-found","Статья объясняет, почему в терминале Linux появляется ошибка 'command not found', и предлагает 4 практических способа её устранения: от проверки опечаток до настройки переменной PATH.",[2072,61,1043,2073,28,2074],"ошибки linux","command-line","shell","error","sh-IAOtuIx9O5UOGXpRsirN4C4NFNP6r_4WRiL9RXHM"]