Исправление ошибок Linux
Каждый пользователь, рано или поздно сталкивается с определенными проблемами в своей операционной системе Linux. Это может быть просто неправильное использование команд или их непонимание, так и такие серьезные ошибки Linux, как отсутствие драйверов, неработоспособность сервисов зависание системы и так далее.
Эта статья ориентирована в первую очередь на новичков, которые не знают, что делать когда их будут поджидать проблемы linux, мы дадим общую концепцию и попытаемся показать в какую сторону двигаться дальше. Мы рассмотрим исправление ошибок в linux как простых, так и более сложных. Но давайте сначала определим, какие проблемы linux будем рассматривать, разобьем их на категории:
- Проблемы с командами в терминале
- Проблемы с программами
- Проблемы с драйверами и ядром
- Проблемы с графической оболочкой
- Проблемы с диском и файловой системой
Все это мы рассмотрим ниже, но сначала общее введение и немного теории.
Решение проблем Linux
Linux очень сильно отличается от WIndows, это заметно также при возникновении проблем Linux. Вот допустим, произошла ошибка в программе Windows, она полностью закрывается или выдает непонятное число с кодом ошибки и все, вы можете только догадываться или использовать поиск Google, чтобы понять что произошло. Но в Linux все совсем по-другому. Здесь каждая программа создает лог файлы, в которых мы можем при достаточном знании английского или даже без него, выяснить, что произошло. Более того, если программу запускать из терминала, то все ошибки linux и предупреждения мы увидим прямо в окне терминала. и сразу можно понять что нужно делать.
Причем вы сможете понять что произошло, даже не зная английского. Главным признаком ошибки есть слово ERROR (ошибка) или WARNING (предупреждение). Рассмотрим самые частые сообщения об ошибках:
- Permission Denied — нет доступа, означает что у программы нет полномочий доступа к определенному файлу или ресурсу.
- File or Directory does not exist — файл или каталог не существует
- No such file or Directory — нет такого файла или каталога
- Not Found — Не найдено, файл или ресурс не обнаружен
- Connection Refused — соединение сброшено, значит, что сервис к которому мы должны подключиться не запущен
- is empty — означает, что папка или нужный файл пуст
- Syntax Error — ошибка синтаксиса, обычно значит, что в конфигурационном файле или введенной команде допущена ошибка.
- Fail to load — ошибка загрузки, означает что система не может загрузить определенный ресурс, модуль или библиотеку (fail to load library) обычно также система сообщает почему она не может загрузить, permission denied или no such file и т д.
Сообщения об ошибках, кроме терминала, мы можем найти в различных лог файлах, все они находятся в папке /var/log, мы рассматривали за какие программы отвечают определенные файлы в статье просмотр логов linux. Теперь же мы подробнее рассмотрим где и что искать если linux выдает ошибку.
Проблемы с командами в терминале
Обычно проблемы с командами в терминале возникают не из-за ошибки linux или потому, что разработчики что-то недоработали, а потому, что вы ввели что-то неправильно или предали не те что нужно опции.
Если были переданы не те опции, то, скорее всего, программа покажет вам справку, ознакомившись с которой вы сможете очень быстро понять в чем проблема. Также справку выдают множество команд если их запустить без параметров.
Также довольно частой ошибкой при выполнении команд есть неиспользование команды sudo перед самой командой для предоставления ей прав суперпользователя. В таких случаях вы обычно получаете ошибку Permission Denied или просто уведомление, что не удалось открыть тот или иной файл или ресурс: can not open . can not read . и так далее.
Если файла, которого вы передали в параметрах не существует, то вам будет об этом сказано соответствующим сообщением. Сообщения могут быть и более специфичные, в зависимости от ошибки, но в конце концов, вы можете воспользоваться переводчиком Google, чтобы понять смысл того, что хочет система.
Очень распространенной среди новичков ошибкой, есть no such file or directory при попытке выполнить файл, скачанный из интернета. Сразу кажется что это бред, ведь файл существует, но на самом деле оболочка ищет только файлы с флагом исполняемый, а поэтому пока вы не установите этот флаг для файла, он для оболочки существовать не будет.
Проблемы в программах
Если ни с того ни с сего закрывается или не так, как требуется работает, какая-нибудь графическая программа, решение проблем linux начинается из запуска ее через терминал. Для этого просто введите исполняемый файл программы и нажмите Enter. Обычно достаточно начать вводить имя программы с маленькой буквы и использовать автодополнение для завершения ввода названия.
В терминале программа, скорее всего, покажет почему она не работает. Также у многих программ поддерживается опция -v или —verbose. Вы можете попробовать использовать эту опцию, если первый запуск в терминале ничего не дал. Далее, когда уже есть сообщение об ошибке, вы можете попытаться исправить его сами, если поняли в чем дело или попытаться найти решение на формуме, скорее всего, другие пользователи уже решили вашу проблему. Но если нет, вы можете создать новую тему и описать там свою ошибку. Но без вывода программы в терминале вам вряд ли помогут.
Многие ошибки системы linux, связанные с графической оболочкой вы можете найти в файле
/.xsession-errors в вашей домашней директории. Если оболочка работает медленно, зависает или не работают другие программы, но в других логах причин этому нет, возможно, ответ находится именно в этом файле.
Также ошибки linux могут возникать не только в обычных программах но и в работающих в фоне сервисах. Но их тоже можно решить, чтобы посмотреть сообщения, генерируемые сервисом, запущенным с помощью systemd, просто наберите команду просмотра состояния сервиса:
$ sudo systemctl status имя_сервиса
Дальше вы знаете, что делать с этой ошибкой, главное что у вас есть зацепка, а дальше все можно решить, ну или почти все.
Здесь, как и всегда большинство ошибок связано с тем, что что-то не установлено, какого-то файла нет или к чему-то невозможно получить доступ, тогда решение проблем linux не вызовет много забот.
Проблемы с драйверами и ядром
Проблемы с драйверами, модулями ядра или прошивками могут вызвать много неприятностей во время загрузки системы. Это может быть просто медленная загрузка системы, неработоспособность определенных устройств неправильная работа видео или полная невозможность запустить графическую подсистему. Исправление ошибок Linux начинается с просмотра логов.
Вы можете посмотреть все сообщения ядра с момента начала загрузки, выполнив команду чтобы узнать какую linux выдает ошибку:
Чтобы иметь возможность удобно листать вывод можно выполнить:
sudo dmesg | less
Или сразу выбрать все ошибки:
sudo dmesg | grep error
Дальше будет очень просто понять какого драйвера не хватает, что система не может загрузить или что нужно установить. Если возникает ошибка ввода-вывода linux, то, скорее всего, драйвер несовместим с вашим устройством, в таком случае, может помочь обновление ядра, чтобы получить самую новую версию драйвера. В некоторых случаях ядро может само предложить вариант решения проблемы прямо в сообщении об ошибке вплоть до того какую команду выполнить или какой файл скачать. Если же нет, вы все еще можете воспользоваться поиском для решения своей проблемы linux.
Проблемы с графической оболочкой
Когда проблемы linux касаются графической оболочки, то решить их новичкам не так уж просто. Больше всего потому что доступен только терминал. Графическая оболочка может просто зависнуть или вовсе не запускаться, например, после обновления.
При проблемах с графической оболочкой вы можете всегда переключиться в режим терминала с помощью сочетания клавиш Ctrl+Alt+F1. Далее, вам нужно ввести логин и пароль, затем можете вводить команды терминала.
Посмотреть логи графической оболочки вы можете в том же файле
Если проблема наблюдается после обновления до новой версии, то можно очистить кеш и удалить папку с настройками, обычно это помогает.
Проблемы с диском и файловой системой
Самая частая проблема с диском у новичков — это переполнение диска. Если под диск выделить очень мало места, то он переполнится и система не сможет создавать даже временные файлы, а это приведет к тому что все если не зависнет, то, по крайней мере, не сможет нормально работать.
Если это случилось, вам, скорее всего, придется переключиться в режим терминала и удалить несколько файлов. Вы можете удалять файлы логов или кэша пакетного менеджера. Много файлов удалять не нужно, достаточно освободить несколько мегабайт, чтобы прекратились ошибки системы linux и нормально работала графическая оболочка, а затем уже в ней решать все проблемы linux.
Выводы
Теперь исправление ошибок Linux будет для вас немного проще. Ошибки системы linux довольно сложная тема и этой информации явно мало, если у вас остались вопросы или есть предложения по улучшению статьи пишите в комментариях!
Решаем ошибку error no such file or directory
Ошибка error no such file or directory (Ошибка: нет файла или каталога) возникает на различных устройствах и программах. Разберем возможные решения в некоторых случаях.
В любом случае, в первую очередь обратите внимание на наличие необходимого файла или папки, если он указан в ошибке.
Если ошибка возникает при запуске приложения и после появления ошибки загрузка прекращается, происходет «вылет», вероятно игра или приложение установлена с ошибкой, либо в установочном файле отсутствуют важные компоненты. Если файлы скачаны через торент, проверьте целостность ХЭШа. Для этого кликните на закачку правой кнопкой и нажмите «Пересчитать хэш».

Проверьте, соответствует ли разрядность вашей операционной и запускаемого приложения. К примеру, ошибка no such file or directory появится, если вы запускаете программу, предназначенную для 64-х битных систем в 86-битной Windows.
Так же проверьте, есть ли у выполняемой программы или скрипты все необходимые права на чтение и запись. В windows запустите программу от имени администратора.
При написании программ и скриптов обратите внимание на кириллические символы в пути к файлу или папке.
Эта статья очень обобщенная, но вы наверняка пришли с конкретной ошибкой. Просим вас внести свой вклад в сообщество и напишите свою ошибку error no such file or directory и название программы, в которой она возникает в комментариях ниже. Мы постараемся вам помочь.
Solve No Such File or Directory Error in Linux Bash

Linux terminal allows you to execute programs. This article will explain how to execute files properly and solve the bash: No such file or directory error in Linux Bash.
Please enable JavaScript
There are many code-related reasons why you get a bash: No such file or directory error in Bash. We will explain the most common mistakes and ways to fix them.
Check Path and Interpreter to Solve the bash: No such file or directory Error in Linux Bash
First, make sure you execute the program with the correct path. If you make a typo on the directory or file name, you will get this error or give the wrong path.
If you are executing the file with a relative path ( ../../file ), try executing with the absolute path ( /path/to/file ) instead.
Another reason you might get this error could be that you are using the wrong interpreter. The first line in the code is called shebang ( #!/bin/bash ).
It tells the operating system which shell to use to parse the file. If the shebang is not specified correctly, your program will not run.
Make sure the program uses the proper interpreter.
Install Library Packages to Solve the bash: No such file or directory Error in Linux Bash
Missing libraries on your system can cause you to get the bash: No such file or directory error. Examine the file with the file command.
If the file is a 32-bit executable, you need some libraries to execute it on a 64-bit architecture OS. To solve this error in Ubuntu, add the i386 architecture with the dpkg command, then install the necessary libraries.
Use the dos2unix Command to Solve the bash: No such file or directory Error in Linux Bash
Unix operating systems use line feed ( «\n» ) as the end of the line, but Windows operating systems use carriage return and line feed ( «\r\n» ). So if you try to execute a code written in Windows on Linux, you may get this error.
You must clear the carriage return characters to be able to execute the file.
The dos2unix command-line tool is a DOS to Unix text file format converter and vice versa. You can use the dos2unix tool to make your file Unix compatible.
Its usage is as follows.
The file will be converted to Unix format. You can now execute the file.
While we have explained the most common errors and solutions here, this error can have many code-related causes. You can solve this by choosing the solution that suits your application.
Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.
"No such file or directory" but it exists
I have no idea why the OS can’t even see the file when it’s there. Any thoughts?
![]()
19 Answers 19
This error can mean that ./arm-mingw32ce-g++ doesn’t exist (but it does), or that it exists and is a dynamically linked executable recognized by the kernel but whose dynamic loader is not available. You can see what dynamic loader is required by running ldd /arm-mingw32ce-g++ ; anything marked not found is the dynamic loader or a library that you need to install.
If you’re trying to run a 32-bit binary on an amd64 installation:
- Up to Ubuntu 11.04, install the package ia32-libs .
- On Ubuntu 11.10, install ia32-libs-multiarch .
- Starting with 12.04, install ia32-libs-multiarch , or select a reasonable set of :i386 packages in addition to the :amd64 packages.
![]()
I faced this error when I was trying to build Selenium source on Ubuntu. The simple shell script with correct shebang was not able to run even after I had all pre-requisites covered.
I opened the file in Vim and I could see that just because I once edited this file on a Windows machine, it was in DOS format. I converted the file to Unix format with below command:
I hope that we should take care whenever we edit files across platforms we should take care for the file formats as well.
![]()
![]()
This error may also occur if trying to run a script and the shebang is misspelled. Make sure it reads #!/bin/sh , #!/bin/bash , or whichever interpreter you’re using.
![]()
I had the same error message when trying to run a Python script — this was not @Warpspace’s intended use case (see other comments), but this was among the top hits to my search, so maybe somebody will find it useful.
In my case it was the DOS line endings ( \r\n instead of \n ) that the shebang line ( #!/usr/bin/env python ) would trip over. A simple dos2unix myfile.py fixed it.
I found my solution for my Ubuntu 18 here.
I got this error “No such file or directory” but it exists because my file was created in Windows and I tried to run it on Ubuntu and the file contained invalid 15\r where ever a new line was there. I just created a new file truncating unwanted stuff
As mentioned by others, this is because the loader can’t be found, not your executable file. Unfortunately the message is not clear enough.
You can fix it by changing the loader that your executable uses, see my thorough answer in this other question: Multiple glibc libraries on a single host
Basically you have to find which loader it’s trying to use:
Then find the right path for an equivalent loader, and change your executable to use the loader from the path that it really is:
You will probably need to set the path of the includes too, you will know if you want it or not after you try to run it. See all the details in that other thread.
I got the same error for a simple bash script that wouldn’t have 32/64-bit issues. This is possibly because the script you are trying to run has an error in it. This ubuntu forum post indicates that with normal script files you can add sh in front and you might get some debug output from it. e.g.
and see if you get any output.
In my case the actual problem was that the file that I was trying to execute was in Windows format rather than Linux.
![]()
Below command worked on 16.4 Ubuntu
This issue comes when your .sh file is corrupt or not formatted as per unix protocols.
dos2unix converts the .sh file to Unix format!
![]()
I had the same problem with a file that I’ve created on my mac. If I try to run it in a shell with ./filename I got the file not found error message. I think that something was wrong with the file.
open a ssh session to the server
cat filename
copy the output to the clipboard
rm filename
touch filename
vi filename
i for insert mode
paste the content from the clipboard
ESC to end insert mode
:wq!
This worked for me.
Added here for future reference (for users who might fall into the same case): This error happens when working on Windows (which introduces extra characters because of different line separator than Linux system) and trying to run this script (with extra characters inserted) in Linux. The error message is misleading.
In Windows, the line separator is CRLF (\r\n) whereas in linux it is LF (\n). This can be usually be chosen in text editor.
In my case, this happened due to working on Windows and uploading to Unix server for execution.
![]()
I just had this issue in mingw32 bash . I had execuded node/npm from Program Files (x86)\nodejs and then moved them into disabled directory (essentially removing them from path). I also had Program Files\nodejs (ie. 64bit version) in path, but only after the x86 version. After restarting the bash shell, the 64bit version of npm could be found. node worked correctly all the time (checked with node -v that changed when x86 version was moved).
I think bash -r would’ve worked instead of restarting bash: https://unix.stackexchange.com/a/5610
I had this issue and the reason was EOL in some editors such as Notepad++. You can check it in Edit menu/EOL conversion. Unix(LF) should be selected. I hope it would be useful.
Hit this error trying to run terraform/terragrunt (Single go binary).
Using which terragrunt to find where executable was, got strange error when running it in local dir or with full path
Problem was that there was two installations of terragrunt, used brew uninstall terragrunt to remove one fixed it.
After removing the one, which terragrunt showed the new path /usr/bin/terragrunt everything worked fine.
![]()
For those encountering this error when running a java program, it’s possible that you’re trying to run a 64-bit java program using on a 32-bit linux operating system.
I only realised when I ran ldd on 64-bit java which reported:
‘not a dynamic executable’
Whereas the old 32 bit java reported sensible results:
In my case, it turns out the file was a symlink:
Misleading errors like this are fairly common on Linux. Related discussion: https://lwn.net/Articles/532771/
Give it a try by changing the name of file or folder which is not showing in terminal/command prompt.
step1 : change the name of file or folder. step2 : cd filename/foldername
For future readers, I had this issue when trying to launch a Django server using gunicorn. I was using AWS CodeBuild to build the virtual environment and run tests and using CodeDeploy to put the built artifacts onto the production server and launch the new version (all environments were Ubuntu 20.04). I had mistakenly thought that env/bin/. contained actual binaries of native libraries but that was not the case. It was just Python scripts with a shebang of the path to the Python interpreter on the build machine. In my case, the machine installing the packages and actually running the packages was different. To be more specific, all of the files in env/bin had the shebang #!/codebuild/output/src715682316/src/env/bin/python , so of course running env/bin/gunicorn on the production server would fail. The cryptic error message was when Ubuntu would tell me that env/bin/gunicorn didn’t exist as opposed to saying /codebuild/output/src715682316/src/env/bin/python didn’t exist. I was able to fix this problem by starting gunicorn using python3 env/bin/gunicorn instead of env/bin/gunicorn .
In a .sh script, each line MUST end with a single character — newline ( LF or " \n ").
Don’t make mistakes like me, because my text-editor of choice is Notepad++ in Win.