Linux cc не работает

Обновлено: 06.07.2024

Каждый пользователь, рано или поздно сталкивается с определенными проблемами в своей операционной системе Linux. Это может быть просто неправильное использование команд или их непонимание, так и такие серьезные ошибки Linux, как отсутствие драйверов, неработоспособность сервисов зависание системы и так далее.

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

  • Проблемы с командами в терминале
  • Проблемы с программами
  • Проблемы с драйверами и ядром
  • Проблемы с графической оболочкой
  • Проблемы с диском и файловой системой

Все это мы рассмотрим ниже, но сначала общее введение и немного теории.

Решение проблем Linux

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

  • 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 и т д.

Проблемы с командами в терминале

Обычно проблемы с командами в терминале возникают не из-за ошибки linux или потому, что разработчики что-то недоработали, а потому, что вы ввели что-то неправильно или предали не те что нужно опции.

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

Также довольно частой ошибкой при выполнении команд есть неиспользование команды sudo перед самой командой для предоставления ей прав суперпользователя. В таких случаях вы обычно получаете ошибку Permission Denied или просто уведомление, что не удалось открыть тот или иной файл или ресурс: can not open . can not read . и так далее.

Очень распространенной среди новичков ошибкой, есть no such file or directory при попытке выполнить файл, скачанный из интернета. Сразу кажется что это бред, ведь файл существует, но на самом деле оболочка ищет только файлы с флагом исполняемый, а поэтому пока вы не установите этот флаг для файла, он для оболочки существовать не будет.

Проблемы в программах

Если ни с того ни с сего закрывается или не так, как требуется работает, какая-нибудь графическая программа, решение проблем linux начинается из запуска ее через терминал. Для этого просто введите исполняемый файл программы и нажмите Enter. Обычно достаточно начать вводить имя программы с маленькой буквы и использовать автодополнение для завершения ввода названия.

Многие ошибки системы linux, связанные с графической оболочкой вы можете найти в файле

/.xsession-errors в вашей домашней директории. Если оболочка работает медленно, зависает или не работают другие программы, но в других логах причин этому нет, возможно, ответ находится именно в этом файле.

$ sudo systemctl status имя_сервиса

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

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

Проблемы с драйверами и ядром

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

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

sudo dmesg | less

Или сразу выбрать все ошибки:

sudo dmesg | grep error

Проблемы с графической оболочкой

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

При проблемах с графической оболочкой вы можете всегда переключиться в режим терминала с помощью сочетания клавиш Ctrl+Alt+F1. Далее, вам нужно ввести логин и пароль, затем можете вводить команды терминала.

Посмотреть логи графической оболочки вы можете в том же файле

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

Проблемы с диском и файловой системой

Самая частая проблема с диском у новичков - это переполнение диска. Если под диск выделить очень мало места, то он переполнится и система не сможет создавать даже временные файлы, а это приведет к тому что все если не зависнет, то, по крайней мере, не сможет нормально работать.

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

Выводы

Теперь исправление ошибок Linux будет для вас немного проще. Ошибки системы linux довольно сложная тема и этой информации явно мало, если у вас остались вопросы или есть предложения по улучшению статьи пишите в комментариях!

Ctrl + C не всегда работает, чтобы убить текущий процесс (например, если этот процесс занят в определенных сетевых операциях). В этом случае вы просто видите «^ C» своим курсором и больше не можете делать.

Какой самый простой способ заставить этот процесс умереть сейчас, не теряя моего терминала?

Чтобы понять, почему Ctrl + C не работает, очень полезно понять, что происходит, когда вы нажимаете его:

Программы могут игнорировать этот сигнал, так как они могут игнорировать SIGTSTP :

(Это то, что делают большинство оболочек, когда вы нажимаете Ctrl + Z , поэтому не гарантируется работа.)

Если Ctrl + C (SIGINT) не работает, попробуйте Ctrl + \ (SIGQUIT) , Затем попробуйте Ctrl + Z (SIGTSTP). Если это возвращает вас к приглашению оболочки, выполните kill идентификатор процесса. (По умолчанию это сигнал SIGTERM, который вы можете указать с помощью kill -TERM . В некоторых оболочках вы можете использовать %1 для ссылки на PID.) Если это не сработает, перейдите на другой терминал или сеанс SSH и выполните kill или kill -TERM идентификатор процесса. Только в качестве последнего средства следует выполнить kill -KILL , aka kill -9 , так как это не дает процессу возможности прервать очистить свои открытые файлы, удалить его временные файлы, закрыть сетевые подключения и т. д.

(Восстановить на передний план снова с помощью fg )

Затем вы можете kill или kill -9 его, учитывая его идентификатор процесса (вы получаете это из ps a )).

Ctrl + Z : приостановить процесс.

Ctrl + C : вежливо попросить процесс завершить работу.

Ctrl + \ : беспощадно убить процесс, который сейчас находится на переднем плане

Обычно вы можете остановить процесс ( Ctrl + Z ), а затем использовать kill -9 . Для kill -9 сначала необходимо процесс PID . Для фоновых заданий kill -9 %1 - это самый простой способ сделать это - если вы не знаете, какое количество фоновых заданий вы хотите убить, запустите jobs .

В качестве альтернативы вы можете найти идентификатор процесса с помощью

Затем вы можете запустить

1) Если вы находитесь на консоли и в многопользовательском режиме, вы можете нажать CTRL-ALT-Fn и войти на другой экран, используйте ps -ef | grep <myprocessname> или pidof <myprocessname> , а затем убить -9 процесс по идентификационному номеру.

2) Если вы подключены удаленно, выполните то же самое через другой сеанс терминала.

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

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

), которая является клавишей эвакуации, а затем нажмите CTRL-Z, чтобы вернуться к сеансу хоста , то вы можете убить застрявший процесс ssh или дождаться его таймаута, который больше всего делает после периода бездействия.

Более простое решение для Bash (и других оболочек?):

где «% 1» означает, что номер задания убит. Это может быть «% 2» (или что-то еще), если у вас уже есть другие задания. Вы можете видеть, какой номер задания он имеет, когда вы нажимаете Ctrl-z:

Обратите внимание, что «kill» - это версия kill, а не /bin /kill.

Если вы используете tmux или screen, и ни одно из вышеперечисленных действий не работает, вы все равно можете убить панель с помощью <prefix> x , тогда процесс также будет убит.

Возможно, в вашем /etc /profile есть ловушка с SIGINT (2). Если это так, удалите его. Выйдите из системы и войдите в систему, и вы должны быть хорошими.

image

Как известно, типичные РС-компьютеры собирают из весьма разношерстных компонентов — процессор от одного производителя, видеокарта от другого, звуковая карта от третьего. Темы про принтеры/сканеры/Wi-Fi адаптеры/TV-тюнеры просто кишат повсюду на форумах. Не добавляют оптимизма и вездесущие китайские производители, не особо-то стремящиеся к стандартизации. Перед операционной системой стоит непростая задача заставить работать согласованно все эти устройства.
Предлагаю вашему вниманию небольшой гайд по устранению типичных проблем в Linux.

Восстановление загрузчика

Что там у меня в жужжащей коробке?

Есть такие замечательные команды, как lspci и lsusb , которые покажут, какими же устройствами начинена ваша PCI шина и USB порты соответственно.
Вывод команды будет похож на такой:

Bus 001 Device 004: ID 03f0:2c17 Hewlett-Packard
Bus 004 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 002 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Что бы узнать побольше о конкретном устройстве, есть опции -s и -v:

sudo lspci -s 03:00.0 -v
sudo lsusb -s 001:004 -v

image

где непонятные символы 001:004 — адрес устройства из вывода команды lspci или lsusb.
Если вы испытываете страх при взгляде на мигающий курсор в терминале, то можно воспользоваться пакетом Hardinfo

Ох уж эти иксы

Довольно часто бывает, что после окончания начальной загрузки вы лицезреете чёрный экран. Что случилось? Возможно, слетел видеодрайвер. Разумеется, для не искушённого пользователя лучше воспользоваться драйверами из репозиториев. Для того, чтобы войти в ваш любимый Gnome или KDE для запуска менеджера пакетов, нажмите Ctrl-Alt-F1, и вы попадёте в терминал. Зайдите с правами рута, и заставьте ваш Xorg заюзать VESA драйвера: команда dpkg-reconfigure xserver-xorg для дебиана/убунту, yast2 для SUSE, а там выбираете VESA-совместимую видеокарту. Или nano /etc/X11/xorg.conf, ищете там слово intel, nvidia и подобное в секции Driver и меняете на vesa. Далее запускаем иксы: kdm или gdm или startxfce4 и т.д. (по вкусу). Если экран и дальше чёрный, прибиваете иксы с помощью Ctrl-Alt-Backspace и смотрите, где кошка зарыта: cat /var/log/Xorg.0.log | grep EE и гуглите текст ошибки.

Для начала поговорим о беспроводной сети. Проверьте наличие сети с помощью команды ifconfig. Естественно, ваша точка доступа должна быть включена и настроена. Если в выводе команды отсутствует интерфейс, названный ath0 или wlan0, то нужно что-то делать. Есть такие замечательные драйвера, как madwifi. Инструкцию по установке можно найти там же. Если они не помогли, вам возможно поможет такая утилита, как NDISwrapper. Этот костыль позволит использовать виндовые драйвера для адаптеров беспроводной сети в линуксе.

sudo ndiswrapper -i /path/to/driver.inf

Потом загрузите модуль ndiswrapper: sudo modprobe -v ndiswrapper

Далее попробуем поднять сеть:

sudo ifconfig wlan0 up
sudo iwlist wlan0 scan

Если на первую команду система ругается вроде «Interface Doesn't Support Scanning», то вы неверно выбрали название интерфейса, или не тот драйвер. Вторая команда запустит поиск беспроводной сети.

В дистрибутивах Debian, Linux Mint, Ubuntu, Kali Linux и других на их основе при установке пакета командой «sudo apt install ПАКЕТ» может возникнуть ошибка, что не удалось получить некоторые архивы.

Эта же самая ошибка может возникнуть при использовании команд sudo apt full-upgrade и sudo apt dist-upgrade.

При установке пакета информация о нём берётся из локального кэша, который не обновляется автоматически. То есть если файл изменился на сервере (например, вышла новая версия), то при попытке его скачать будет запрошена старая версия, которая может быть уже удалена с сервера обновлений, что и приводит к подобным ошибкам.

Пример такой ошибки:


Ключевой здесь является строка Ошб:1 404 Not Found — то есть файл пакета не найден. Самой частой причиной этого является устаревший кэш с информацией о пакетах и ссылками на их загрузку.

Поэтому перед установкой пакета или обновлением системы обновите кэш:

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

Часть выводимой при неудачном обновлении информации:

Ключевой здесь является информация:

То есть не удалось получить некоторые файлы пакетов.

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

Для решение проблемы — просто заново перезапустите обновление командами:

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