Как читать ошибки без паники
Сейчас будет, наверное, самый важный урок во всём курсе. Потому что главное, что отличает человека, который умеет работать с компьютером, от человека, который боится, - это не знание команд. Это умение спокойно прочитать сообщение об ошибке.
Когда новичок видит красный текст в терминале, у него внутри всё сжимается: “я что-то сломал”. Запомни прямо сейчас, на всю жизнь: красный текст - это не ругань компьютера. Это записка от него. Компьютер не умеет злиться. Он буквально пытается тебе помочь: “Слушай, я не смог сделать то, что ты просил, и вот почему”. Твоя задача - просто прочитать записку.
В этом уроке мы разберём три самых частых сообщения, которые ты увидишь в первые недели. После этого урока красный текст перестанет тебя пугать.
Ошибка - это подсказка, а не приговор
Давай сразу договоримся о настроении. Ошибки получают все: и ты, и я, и программист с двадцатью годами опыта. Разница только в одном: опытный человек читает ошибку как обычный текст, а новичок зажмуривается и зовёт на помощь, не прочитав ни строчки.
Правило номер один: увидел ошибку - не закрывай терминал, не паникуй. Просто прочитай её вслух, медленно, как записку от друга. В девяти случаях из десяти там прямо написано, что не так.
Почти любое сообщение об ошибке состоит из трёх частей: что компьютер пытался сделать, что именно пошло не так, и иногда - подсказка, как починить. Давай научимся видеть эти части.
”command not found”: компьютер не знает такого слова
Первая из тройки. Ты набираешь команду, жмёшь Enter и видишь:
pythn3 hello.py
bash: pythn3: command not found
Прочитаем медленно. bash - это имя нашего помощника в терминале, он представился. Дальше pythn3 - это слово, которое ты набрал. И вердикт: command not found, то есть “команда не найдена”.
Что это значит по-человечески: компьютер не знает слова pythn3. Такой команды у него нет. Почти всегда причина - простая опечатка. Тут мы хотели написать python3, а пропустили букву o.
Подумай об этом как о словаре. Ты сказал компьютеру слово, которого нет в его словаре команд. Он честно отвечает: “я такого слова не знаю”. Проверь, нет ли опечатки, или, может быть, нужная программа ещё не установлена.
Что сделать: перечитай команду по буквам. Скорее всего, опечатка. Если написано верно, но всё равно “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 в той папке, где ты сейчас находишься, он не видит.
Это очень частая ситуация у новичков, и причина почти всегда одна из двух:
- Опечатка в имени файла (
privet.pyвместоhello.py). - Ты находишься не в той папке. Файл существует, но лежит в другом месте.
Что сделать: посмотри, какие файлы есть рядом с тобой прямо сейчас, командой ls:
ls
hello.py notes.txt
Ага, файл называется hello.py, а не privet.py. И он на месте. Значит, дело было в имени:
python3 hello.py
Привет, мир
Очень важная мысль для новичка: компьютер ищет файл в той папке, где ты стоишь сейчас. Если файл “пропал” - чаще всего ты просто в другой папке. Команда pwd покажет, где ты находишься, а ls - что лежит рядом.
”permission denied”: доступ запрещён
Третья ошибка звучит строже всего, и именно она пугает новичков больше всего. Но на самом деле она самая безобидная.
./backup.sh
bash: ./backup.sh: Permission denied
Permission denied - “доступ запрещён” или “нет прав”. Это не значит, что ты что-то сломал. Это значит, что у этого файла нет пометки “меня можно запускать”. Операционная система защищает тебя: она не запускает что попало, пока ты явно не разрешишь.
Самый частый случай у новичка - ты скачал или создал скрипт, и его забыли пометить как исполняемый. Лечится одной командой chmod +x (она ставит ту самую пометку “можно запускать”):
chmod +x backup.sh
./backup.sh
Резервная копия готова
“Permission denied” - это не наказание, а забота. Система спрашивает: “ты точно уверен, что хочешь это запустить?” Иногда такая ошибка значит, что ты лезешь в системную папку, куда обычному пользователю и правда не стоит. Тогда не надо ломиться силой - перечитай, туда ли ты вообще зашёл.
Попробуй сам
Давай специально вызовем все три ошибки, чтобы ты увидел их своими глазами и перестал бояться. Открой терминал и набирай по очереди:
- Набери несуществующую команду и посмотри на
command not found:
abracadabra
- Попроси показать файл, которого точно нет, и поймай
No such file or directory:
cat файла-нет.txt
- Создай пустой файл и попробуй запустить его без прав, чтобы увидеть
Permission denied:
touch test.sh
./test.sh
Прочитай каждое сообщение вслух. Найди в нём три части: что ты просил, что пошло не так, и есть ли подсказка. Это упражнение важнее, чем кажется: ты тренируешь спокойствие. После пяти-шести специально вызванных ошибок красный текст становится обычным рабочим инструментом, а не источником страха.