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