No such file or directory linux как исправить

Обновлено: 04.07.2024

Я принципиально не понимаю проблем, с которыми я сталкиваюсь, но буду обновлять этот пост, когда я это сделаю. Позвольте мне просто показать вам.

Контекст: я добавил диск на свою машину, и по какой-то причине я не могу получить доступ к каталогу (?) в теме.

ls -l

ls -a

CD

потрогать

Mkdir Загрузки

Кошка Загрузки

Загрузки файла

М.В. Загрузки вниз

Кроме того, следующие команды не удаляют файл (?) Как root или иным образом:

Еще одна часть информации, bash, автоматически завершает загрузку, так что bash, похоже, тоже думает, что она там есть.

4 ответа 4

ls: cannot access Downloads: No such file or directory total 56 d. ? ? ? ? ? Downloads drwxr-xr-x 26 user 12288 Aug 12 23:29 foo

Это типичный случай наличия только чтения perms на dir и никаких exec perms. А другие выходные данные команды показывают, что у вас нет разрешения на запись. Чтобы понять, почему это происходит, вам нужно знать об inode, dentries и процессе поиска пути в ядре.

D, вы не описали ситуацию вокруг проблемы, но здесь идет,

Каталог "существует", но без каких-либо видимых / установленных / назначенных разрешений и не принадлежит ни пользователю, ни группе. Фактически, на первый взгляд доступ для чтения полностью заблокирован. Опять же, опишите ситуацию вокруг этой проблемы, имея в виду, как вы пришли к этому моменту?

В качестве эксперимента загрузите живой дистрибутив и получите доступ к нему таким образом, получите список для загрузок и либо назначьте "стандартные" разрешения для каталога 755, либо удалите каталог. Время от времени у меня возникали "плохие записи" файлов с той же проблемой, и мне приходилось прыгать в живой дистрибутив, чтобы удалить их из моего ежедневного драйвера. Если вы МОЖЕТЕ получить доступ к каталогу загрузок из действующего дистрибутива, то перед удалением каталога восстановите содержащиеся в нем данные "вне мира". Лучше восстановить каталог правильно, как только вы вернетесь в нормальный режим работы.

Каждый пользователь, рано или поздно сталкивается с определенными проблемами в своей операционной системе Linux. Это может быть просто неправильное использование команд или их непонимание, так и такие серьезные ошибки Linux, как отсутствие драйверов, неработоспособность сервисов зависание системы и так далее. Linux очень сильно отличается от WIndows, это заметно также при возникновении проблем Linux. Вот допустим, произошла ошибка в программе Windows, она полностью закрывается или выдает непонятное число с кодом ошибки и все, вы можете только догадываться или использовать поиск Google, чтобы понять что произошло. Но в Linux все совсем по-другому.

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

Монтирование NTFS раздела от Windows 10 в Linux

Ошибка:

Решение:

sudo mount -t ntfs-3g -o remove_hiberfile /dev/sda2 /mnt

Ошибка:

Решение:

sudo ntfsfix /dev/sda3

Отключение режима гибернации в винде

Нет места, но место есть.

Проблема: ПО пишет, что закончилось место на диске, при этом df -h показывает, что место все-таки есть.

Решение: Надо проверить свободный айноды. df -hTi. Возможно их забили мелкие файлы.

Команда смены владельца и группы владельцев для директории и всех поддиректорий с файлами

sudo chown -R user:group /home/user/dir/

FTP сервер на Ubuntu server

Установить
sudo apt-get install vsftpd

Правим конфигурацию
sudo nano /etc/vsftpd.conf

Если надо анонимный доступ
anonymous_enable=Yes

чтение и правка файлов
local_enable=YES
write_enable=YES

папка входа по умоланию
local_root=/var/www

рестарт
sudo service vsftpd restart

Если права на файлы раздаются не верно

Раскомментируем строчку
umask 002

Расширить диск виртуальной машины KVM и VirtualBox

1)KVM
sudo qemu-img resize /home/vm/disk.img +10G

на вируалке
sudo apt-get install gparted
sudo swapoff /dev/vda5
sudo -X gparted

авторизация SSH без пароля

на своей машине
ssh-keygen -t rsa

в папке /home/имя пользователя/.ssh/id_rsa и id_rsa.pub появятся ключи
копируем на сервер

на сервере
chmod 600

Firefox средняя кнопка мыши не работает как прокрутка

Проброс портов iptables

Примонтировать флешку Ubuntu Linux

service srv1cv83 stop
sudo dpkg -l | more | grep 1c
sudo dpkg -r 1c-enterprise83-ws
sudo dpkg -r 1c-enterprise83-server
sudo dpkg -r 1c-enterprise83-common

dpkg -i 1c-enterprise83-common_8.3.6-2390_amd64.deb
dpkg -i 1c-enterprise83-server_8.3.6-2390_amd64.deb
dpkg -i 1c-enterprise83-ws_8.3.6-2390_amd64.deb

Google Chrome не предлагает сохранить пароли

Если Google Chrome не предлагает сохранить пароли и не использует автозаполнение, то причина может быть в том, что эти опции отключены в настройках. Для их включения перейдите во вкладку chrome://settings/, либо в меню выберите пункт «Настройки»:

На открывшейся странице в разделе «Автозаполнение» выберите пункт «Пароли»:

В открывшемся окне включите две опции:

  • Предлагать сохранение паролей
  • Автоматический вход (Автоматически входить на сайты с помощью сохраненного имени пользователя и пароля. Когда функция отключена, эти данные нужно вводить при каждом входе)

После этого автоматический вход и сохранение пароли должны начать работать.

Google Chrome не сохраняет пароли, хотя предлагает их сохранить

Эта ситуация более нестандартная, она может встречаться на различных операционных системах: в моём случае это Chromium на Linux, но сообщали также об аналогичной проблеме для Google Chrome на MacOS.

  1. После входа на веб-сайт, браузер, как обычно, предлагает сохранить пароль
  2. Я нажимаю на кнопку «Сохранить»
  3. Chrome не показывает никакие ошибки
  4. Но пароль не сохраняется: а) он не вводится автоматически при следующем заходе на сайт; б) пароль не отображается во вкладке chrome://settings/passwords

1. Выйдите из Chrome

2. Перейдите в директорию, где Chrome хранит данные пользователя — внутри домашней папки, в директории, зависящей от операционной системы:

4. Удалите файлы Login Data, Login Data-journal и Login Data 2-journal.

5. Повторите для других профилей, если необходимо.

После этого у меняв вновь включилось сохранение паролей.

Обратите внимание, что если у вас включена автоматическая синхронизация, то вы не потеряете сохранённые ранее пароли.

Какие файлы можно удалить при нехватке места на диске Linux

1. Удаление временных файлов

Файлы в папке /tmp/ будут удалены в любом случае при следующей перезагрузки системы. То есть с одной стороны их можно удалить достаточно безболезненно:

НО: может быть нарушена работа программ, которые запущены в настоящее время и которые сохранили какие-то данные в папку /tmp/.

2. Удаление файлов кэширования

В директории /var/cache/ много поддиректорий, которые можно удалить практически безболезненно (данные утеряны не будут, а программы создадут новые файлы кэширования). Эта директория вызывает особый интерес, поскольку на которых системах кэши разрастаются на гигабайты и десятки гигабайт. Иногда поиск проблемной директории в /var/cache/ может окончательно решить ситуацию с нехваткой места на диске.

Для удаления кэша шрифтов:

Для удаления кэша установочных пакетов (на Debian, Linux Mint, Ubuntu, Kali Linux и их производных):

Для удаления кэша установочных пакетов (на Arch Linux, BlackArch и их производных):

Удаление кэша справочных страниц:

Вы можете продолжить поиск больших кэшей применимо к программному обеспечению, установленному на вашей системе. Например, это могут быть кэши веб-сервера, прокси-сервера и т. д.

3. Удаление логов (журналов)

В этой папке (/var/log/) можно удалить практически все файлы, но старайтесь сохранить структуру папок, поскольку некоторые приложения после удаления здесь папки не в состоянии создать её второй раз…

На веб-серверах могут разрастись слишком сильно журналы веб-сервера.

Для удаления логов Apache на Debian, Linux Mint, Ubuntu, Kali Linux и их производных:

Для удаления логов Apache на Arch Linux, BlackArch и их производных:

Чтобы сервер начал создавать новые файлы журналов и записывать в них, нужно перезапустить службу веб-сервера.

В зависимости от интенсивности использования системы, накопленные журналы могут занимать гигабайты. В зависимости от системы файлы могут называться по-разному, более точный анализ рекомендуется выполнять с помощью утилиты ncdu:

4. Очистите корзину

Этот совет больше для настольных систем. Файлы, которые вы удалили в графическом интерфейсе рабочего стола, попадают в папку

/.local/share/Trash/files/, вы можете проанализировать их и при желании удалить (второй раз):

5. Удаление ненужных файлов исходного кода заголовков ядра

6. Удаление осиротевших пакетов

На Debian, Linux Mint, Ubuntu, Kali Linux и их производных удалить ненужные пакеты можно следующим образом:

7. Очистка журналов systemd

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

Чтобы увидеть, сколько место занимают журналы, выполните:

Чтобы удалить все записи, оставив только записей на 100 мегабайт, выполните:

Либо для удаления всех записей в системном журнале, старше одной недели:

8. Проанализируйте файлы Docker

Самой большой папкой является /var/lib/docker/overlay2/. Для анализа занимаемого места на диске выполните:

программа является частью набора тестов Xenomai, скомпилированного из Linux PC в Linux + Xenomai ARM toolchain.

Edit: хорошо ,я не заметил.1 в конце было частью имени файла. Что это вообще значит?

Ну, это не вранье - нет libpthread_rt.so.1 в этот список. Вероятно, вам нужно повторно настроить и перестроить его, чтобы он зависел от библиотеки, которую вы имеете, или установить все, что предоставляет libpthread_rt.so.1 .

в твоем случае, ты может уйти с symlinking libpthread_rt.so.1 до libpthread_rt.so . Однако нет гарантий, что он не нарушит ваш код и не съест ваши телевизионные обеды.

ваша библиотека динамическая библиотека. Вам нужно сообщить операционной системе, где она может найти его во время выполнения.

для этого, нам нужно будет сделать эти простые шаги:

(1 ) Найдите, где находится библиотека, Если вы ее не знаете.

(2) Проверьте наличие переменной среды пути динамической библиотеки ( LD_LIBRARY_PATH )

если нет ничего, чтобы отображаться, добавьте значение пути по умолчанию (или нет, если вы хотите to)

(3) мы добавляем путь желания, экспортируем его и пробуем приложение.

обратите внимание, что путь должен быть каталог, где path.so.something есть. Так что если path.so.something находится в /my_library/path.so.something должно быть :

вот несколько решений, которые вы можете попробовать:

ldconfig

как отметил AbiusX: если вы только что установили библиотеку, вам может просто понадобиться запустить ldconfig.

ldconfig создает необходимые ссылки и кэш к самым последним общие библиотеки, найденные в каталогах, указанных в команде строка, в файле / etc / ld.Итак.conf и в доверенных каталогах (/lib и / usr / lib).

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

пакет Dev или неправильная версия

если это не сработает, я бы также проверить предложение Павла и найдите версию библиотеки" - dev". Многие библиотеки разделены на пакеты dev и non-dev. Вы можете использовать эту команду для поиска это:

это также может помочь, если у вас просто неправильная версия библиотеки установлены. Некоторые библиотеки публикуются в разных версиях одновременно, например, Python.

Guido нравятся открытые системы, к которым относится ОС Linux за предоставляемые возможности по поиску и исследованию проблем. Если вы готовы потратить немного времени - у вас действительно есть шанс обнаружить проблему.

Почему это не работает!? Способы обнаружения и исправления ошибок в Linux приложениях

bug

Вступление

С точки зрения пользователя для него не интересно - коммерческое это программное обеспечение или свободно распространяемое до тех пор пока все работает и не возникают ошибки. Но ситуация меняется когда возникают проблемы в эксплуатации программного обеспечения.

Несмотря на эти сложности вы можете предпринять кое-какие шаги не разбираясь в коде и внутреннем устройстве приложения.

Наиболее простой и очевидный путь - посмотреть на файл в каталоге /var/log/. Обратите внимание на файл /var/log/messages в большинстве случаев это именно то, что вам нужно. Большие приложения могут писать логи в свои каталоги ( например /var/log/httpd/ /var/log/exim . ).
Многие дистрибутивы используют syslog, который настраивается через файл /etc/syslog.conf. Синтаксис этого файла описан в "man syslog.conf".

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

Трассирование

  1. Собственные функции приложения
  2. Библиотечные функции
  3. Системные вызовы

Системные вызовы можно прервать, проанализировать полученную информацию и продолжить взаимодействие приложения и ядра.

Наиболее распространенные проблемы - отсутствие конфигурационного файла или прав записи в каталог. Эти проблемы легко обнаружить трассированием. Ключевое название системного вызова в этом случае "open".

Трассирование выполняется следующим образом: Приведем пример: Посмотрите внимательно на следующие строки: Приложение пытается прочитать файл /etc/ld.so.preload, но неудачно и затем читает файл /etc/ld.so.cache, получая дескриптор 3. Теперь неудачная попытка чтения файла уже не проблема, потому что теперь приложение может пробовать читать и использовать этот файл если это возможно. Другими словами - ошибка чтения файла не обязательно является проблемой - дело в том как устроено само приложение. Давайте посмотрим на все вызовы "open": Приложение пытается прочитать файл /usr/conf/uucp/config. Странно! Этот файл существует! но в приложении нет кода с обращением к нему. Это уже ошибка. Возможно приложение было скомпилировано с ошибочным путем к конфигурационному файлу.

Можно сказать, что трассирование достаточно эффективный метод. Проблемой данного метода является необходимость знакомства с программированием на языке 'C'.

gdb и core файлы

Когда возникает ошибка "Segmentation fault" создается core файл в текущем каталоге приложения ( обычно это ваш домашний каталог ). Этот файл является дампом памяти на момент возникновения ошибки в приложении. Некоторые shell'ы предоставляют возможность определения места, где будут создаваться эти файлы. В bash по умолчанию запрещено создание core файлов. Чтобы разрешить их создание - используйте следующую команду: Созданный core файл можно посмотреть отладчиком gdb, чтобы попытаться выяснить в чем проблема. Перед запуском отладчика убедитесь, что вы собираетесь изучать именно тот файл: Рассмотрим пример - приложение lshref завершило свою работу с ошибкой, попробуем использовать gdb для выяснения причины. Чтобы использовать gdb для просмотра core файла необходимо в качестве аргументов указать и core файл и исполняемый. Теперь видно, что приложение рушится при попытке вызвать функцию strcpy. Проблема может возникнуть в любом месте приложения, где происходит вызов этой функции.

  1. Перекомпилировать приложение включив отладочную информацию (gcc option -g)
  2. Сделать трассирование в gdb

Что нам действительно может помочь - так это трассирование, в этом случае мы узнаем какая функция вызывалась перед использованием strcpy. Команда трассирования в gdb называется "backtrace". Для обнаружения ошибки таким способом недостаточно просто исследовать core файл. Необходимо запустить приложение в gdb ( для повтора ошибки ): Из приведенного выше видно, что функция main() вызывает string_to_list() откуда и вызывается функция strcpy(). Открываем приложение и смотрим на функцию: Думаю нам будет интересна строка с вызовом функции malloc. Перепишем ее следующим образом:
Меняем, производим перекомпиляцию и смотрим. работает.

Рассмотрим еще один пример, где проблема будет не в библиотечной, а в собственной функции. Компилируем приложение так "gcc -g" и gdb покажет нам строку, где возникает ошибка. Компилируем: Запускаем. gdb указывает на строку 6, указатель "p" обращается к недоступной области памяти.

Вывод

Мы рассмотрели случаи, которые показывают, что обнаружить ошибку можно не зная внутреннего устройства приложения.

Я исключил примеры функциональных ошибок - например кнопка графического интерфейса находится в неверном положении, но работает. В таких ситуациях надо разбираться как работает приложение. Это может занять много времени и универсального рецепта здесь нет.

Тем не менее рассмотренные способы обнаружения ошибок можно использовать в самых разных ситуациях.

Читайте также: