Learning Platform
Глоссарий Troubleshooting
Урок 07.01 · 15 мин
Начальный
ошибкитерминалотладкановичкам

Как читать ошибки без паники

Сейчас будет, наверное, самый важный урок во всём курсе. Потому что главное, что отличает человека, который умеет работать с компьютером, от человека, который боится, - это не знание команд. Это умение спокойно прочитать сообщение об ошибке.

Когда новичок видит красный текст в терминале, у него внутри всё сжимается: “я что-то сломал”. Запомни прямо сейчас, на всю жизнь: красный текст - это не ругань компьютера. Это записка от него. Компьютер не умеет злиться. Он буквально пытается тебе помочь: “Слушай, я не смог сделать то, что ты просил, и вот почему”. Твоя задача - просто прочитать записку.

В этом уроке мы разберём три самых частых сообщения, которые ты увидишь в первые недели. После этого урока красный текст перестанет тебя пугать.


Ошибка - это подсказка, а не приговор

Давай сразу договоримся о настроении. Ошибки получают все: и ты, и я, и программист с двадцатью годами опыта. Разница только в одном: опытный человек читает ошибку как обычный текст, а новичок зажмуривается и зовёт на помощь, не прочитав ни строчки.

TIP

Правило номер один: увидел ошибку - не закрывай терминал, не паникуй. Просто прочитай её вслух, медленно, как записку от друга. В девяти случаях из десяти там прямо написано, что не так.

Почти любое сообщение об ошибке состоит из трёх частей: что компьютер пытался сделать, что именно пошло не так, и иногда - подсказка, как починить. Давай научимся видеть эти части.

Из чего состоит ошибка
КомандаТо, что ты набрал и нажал Enter. Часто компьютер повторяет это в начале сообщения, чтобы ты понял, о чём речь.
не вышло
ПричинаГлавная часть. Тут написано, что именно помешало: файл не найден, команда неизвестна, нет прав.
ИногдаНе всегда, но часто компьютер сам подсказывает: 'может, ты имел в виду вот это?'

”command not found”: компьютер не знает такого слова

Первая из тройки. Ты набираешь команду, жмёшь Enter и видишь:

pythn3 hello.py
bash: pythn3: command not found

Прочитаем медленно. bash - это имя нашего помощника в терминале, он представился. Дальше pythn3 - это слово, которое ты набрал. И вердикт: command not found, то есть “команда не найдена”.

Что это значит по-человечески: компьютер не знает слова pythn3. Такой команды у него нет. Почти всегда причина - простая опечатка. Тут мы хотели написать python3, а пропустили букву o.

NOTE

Подумай об этом как о словаре. Ты сказал компьютеру слово, которого нет в его словаре команд. Он честно отвечает: “я такого слова не знаю”. Проверь, нет ли опечатки, или, может быть, нужная программа ещё не установлена.

Что сделать: перечитай команду по буквам. Скорее всего, опечатка. Если написано верно, но всё равно “not found” - возможно, программа просто не установлена (об установке был отдельный модуль). Кстати, именно поэтому весь курс мы пишем python3, а не голый python: на Mac и в WSL2 короткое python тоже часто даёт command not found.

python3 hello.py
Привет, мир

Исправили одну букву - и всё заработало.


”No such file or directory”: нет такого файла

Вторая частая ошибка. Ты просишь компьютер открыть или запустить файл, а он отвечает:

python3 privet.py
python3: can't open file 'privet.py': [Errno 2] No such file or directory

No such file or directory переводится как “нет такого файла или папки”. Команду python3 компьютер узнал, он не ругается на неё. Но файла privet.py в той папке, где ты сейчас находишься, он не видит.

Это очень частая ситуация у новичков, и причина почти всегда одна из двух:

  1. Опечатка в имени файла (privet.py вместо hello.py).
  2. Ты находишься не в той папке. Файл существует, но лежит в другом месте.

Что сделать: посмотри, какие файлы есть рядом с тобой прямо сейчас, командой ls:

ls
hello.py   notes.txt

Ага, файл называется hello.py, а не privet.py. И он на месте. Значит, дело было в имени:

python3 hello.py
Привет, мир
WARNING

Очень важная мысль для новичка: компьютер ищет файл в той папке, где ты стоишь сейчас. Если файл “пропал” - чаще всего ты просто в другой папке. Команда pwd покажет, где ты находишься, а ls - что лежит рядом.


”permission denied”: доступ запрещён

Третья ошибка звучит строже всего, и именно она пугает новичков больше всего. Но на самом деле она самая безобидная.

./backup.sh
bash: ./backup.sh: Permission denied

Permission denied - “доступ запрещён” или “нет прав”. Это не значит, что ты что-то сломал. Это значит, что у этого файла нет пометки “меня можно запускать”. Операционная система защищает тебя: она не запускает что попало, пока ты явно не разрешишь.

Самый частый случай у новичка - ты скачал или создал скрипт, и его забыли пометить как исполняемый. Лечится одной командой chmod +x (она ставит ту самую пометку “можно запускать”):

chmod +x backup.sh
./backup.sh
Резервная копия готова
NOTE

“Permission denied” - это не наказание, а забота. Система спрашивает: “ты точно уверен, что хочешь это запустить?” Иногда такая ошибка значит, что ты лезешь в системную папку, куда обычному пользователю и правда не стоит. Тогда не надо ломиться силой - перечитай, туда ли ты вообще зашёл.


Попробуй сам

Давай специально вызовем все три ошибки, чтобы ты увидел их своими глазами и перестал бояться. Открой терминал и набирай по очереди:

  1. Набери несуществующую команду и посмотри на command not found:
abracadabra
  1. Попроси показать файл, которого точно нет, и поймай No such file or directory:
cat файла-нет.txt
  1. Создай пустой файл и попробуй запустить его без прав, чтобы увидеть Permission denied:
touch test.sh
./test.sh

Прочитай каждое сообщение вслух. Найди в нём три части: что ты просил, что пошло не так, и есть ли подсказка. Это упражнение важнее, чем кажется: ты тренируешь спокойствие. После пяти-шести специально вызванных ошибок красный текст становится обычным рабочим инструментом, а не источником страха.


Проверка знанийKnowledge check
Ты запускаешь python3 report.py и видишь: "python3: can't open file 'report.py': [Errno 2] No such file or directory". При этом ты точно помнишь, что файл report.py ты вчера создавал. Что произошло и какие две команды помогут разобраться?
ОтветAnswer
Команду python3 компьютер узнал - ошибка не про неё, а про файл. "No such file or directory" значит, что в той папке, где ты стоишь сейчас, файла report.py нет. Файл, скорее всего, никуда не делся - просто ты находишься в другой папке, чем вчера, или ошибся в имени. Разобраться помогают две команды: pwd покажет, в какой папке ты сейчас находишься, а ls покажет, какие файлы лежат рядом. Если в выводе ls файла report.py нет - перейди в нужную папку командой cd или проверь имя на опечатку. Главное: это не поломка, а подсказка, что ты ищешь файл не там.

Проверьте понимание

Результат: 0 из 0
Прикладной
Вопрос 1 из 3. Ты набрал команду и увидел: 'bash: pythn: command not found'. Что это значит и что лучше всего сделать первым?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3