No such file or directory linux как исправить
Я принципиально не понимаю проблем, с которыми я сталкиваюсь, но буду обновлять этот пост, когда я это сделаю. Позвольте мне просто показать вам.
Контекст: я добавил диск на свою машину, и по какой-то причине я не могу получить доступ к каталогу (?) в теме.
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.
- После входа на веб-сайт, браузер, как обычно, предлагает сохранить пароль
- Я нажимаю на кнопку «Сохранить»
- Chrome не показывает никакие ошибки
- Но пароль не сохраняется: а) он не вводится автоматически при следующем заходе на сайт; б) пароль не отображается во вкладке 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 приложениях
Вступление
С точки зрения пользователя для него не интересно - коммерческое это программное обеспечение или свободно распространяемое до тех пор пока все работает и не возникают ошибки. Но ситуация меняется когда возникают проблемы в эксплуатации программного обеспечения.Несмотря на эти сложности вы можете предпринять кое-какие шаги не разбираясь в коде и внутреннем устройстве приложения.
Наиболее простой и очевидный путь - посмотреть на файл в каталоге /var/log/. Обратите внимание на файл /var/log/messages в большинстве случаев это именно то, что вам нужно. Большие приложения могут писать логи в свои каталоги ( например /var/log/httpd/ /var/log/exim . ).
Многие дистрибутивы используют syslog, который настраивается через файл /etc/syslog.conf. Синтаксис этого файла описан в "man syslog.conf".
Процедура отладки приложения будет следующей: Проблема использования этого метода отладки в том, что он напрямую завистит от разработчика - насколько он хорошо создал свое приложение. Если он не добавил функции работы с логом в наиболее важные участки приложения, то естественно никакой отладочной информации вы не получите. Другими словами - вы сможете обнаружить проблемы только в том случае, если разработчик предусматривал их появление.
Трассирование
- Собственные функции приложения
- Библиотечные функции
- Системные вызовы
Системные вызовы можно прервать, проанализировать полученную информацию и продолжить взаимодействие приложения и ядра.
Наиболее распространенные проблемы - отсутствие конфигурационного файла или прав записи в каталог. Эти проблемы легко обнаружить трассированием. Ключевое название системного вызова в этом случае "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. Проблема может возникнуть в любом месте приложения, где происходит вызов этой функции.
- Перекомпилировать приложение включив отладочную информацию (gcc option -g)
- Сделать трассирование в gdb
Что нам действительно может помочь - так это трассирование, в этом случае мы узнаем какая функция вызывалась перед использованием strcpy. Команда трассирования в gdb называется "backtrace". Для обнаружения ошибки таким способом недостаточно просто исследовать core файл. Необходимо запустить приложение в gdb ( для повтора ошибки ): Из приведенного выше видно, что функция main() вызывает string_to_list() откуда и вызывается функция strcpy(). Открываем приложение и смотрим на функцию: Думаю нам будет интересна строка с вызовом функции malloc. Перепишем ее следующим образом:
Меняем, производим перекомпиляцию и смотрим. работает.
Рассмотрим еще один пример, где проблема будет не в библиотечной, а в собственной функции. Компилируем приложение так "gcc -g" и gdb покажет нам строку, где возникает ошибка. Компилируем: Запускаем. gdb указывает на строку 6, указатель "p" обращается к недоступной области памяти.
Вывод
Мы рассмотрели случаи, которые показывают, что обнаружить ошибку можно не зная внутреннего устройства приложения.
Я исключил примеры функциональных ошибок - например кнопка графического интерфейса находится в неверном положении, но работает. В таких ситуациях надо разбираться как работает приложение. Это может занять много времени и универсального рецепта здесь нет.
Тем не менее рассмотренные способы обнаружения ошибок можно использовать в самых разных ситуациях.
Читайте также: