5 команд Linux, которые нужно знать для устранения проблем
Возникли проблемы в Linux? Эти команды могут помочь вам разобраться в них.
К большому огорчению тех, кто хотел бы оклеветать операционную систему Linux, на самом деле ею довольно легко пользоваться. Благодаря современным средам рабочего стола и приложениям с графическим пользовательским интерфейсом каждый может вступить в бой и знать, что он делает.
Но в тех редких случаях, когда возникают проблемы, возможно, вам захочется узнать несколько команд, которые помогут вам. Проблема в том, что в Linux доступно так много команд, что сложно определить, какие команды являются лучшими вариантами.
Конечно, вы могли бы выучить любую команду, отображающую системную информацию (например, top, free, iostat, htop, vmstat или iftop), но эти инструменты помогут вам только до определенного момента. Что более ценно, так это перейти к команде, которая действительно может вам помочь, если что-то пойдет не так.
Закончив с этим введением, перейдем к командам.
<h2>1. dmesg
Когда я впервые начал использовать Linux, dmesg был моим лучшим другом. По сути, dmesg используется для проверки всех сообщений, созданных после фазы загрузчика ядра. Другими словами, вы можете найти подсказку для решения любых проблем прямо здесь.
В отличие от старой команды dmesg , теперь вам придется запускать команду с привилегиями sudo, поэтому:
судо dmesg
При этом будет напечатано довольно много вывода, который вы сможете прокрутить, что усложнит поиск того, что вы ищете, и большая часть того, что вы прочтете, скорее всего, покажется тарабарщиной. Хорошей новостью является то, что ошибки отображаются красным цветом, поэтому вы можете быстро прокрутить страницу и найти все, что может быть не так.
Есть способ сделать это еще проще. Допустим, у вас возникла ошибка и вы хотите узнать, регистрируется ли она через dmesg по мере ее возникновения. Для этого введите команду:
dmesg -w
При этом будут отображаться выходные данные dmesg по мере их возникновения, поэтому в случае возникновения ошибки вы увидите ее записанную в окне терминала и сможете оттуда устранить неполадку.
Команда dmesg — отличное место для начала устранения неполадок в Linux.
<h2>2. tail
Говоря о последующем выводе, команда tail позволяет вам отслеживать вывод, записанный в любой файл журнала. Допустим, у вас возникли проблемы с общим ресурсом Samba и вы хотите видеть, что происходит, в режиме реального времени. Первое, что вам нужно сделать, это выяснить, какой файл журнала читать. В этом случае вы можете ввести команду:
ls /var/log/samba
В этой папке вы найдете несколько файлов журналов (для сервера Samba и любых/всех компьютеров, подключенных к общему ресурсу). Допустим, я хочу просмотреть содержимое журнала демона Samba. Для этого я бы дал команду:
tail -f /var/log/samba/log.smbd
По мере возникновения ошибок они будут напечатаны в терминале. Как видите, в файле smb.conf есть неизвестный параметр с именем режимы общего доступа. Я могу открыть этот файл, удалить параметр, перезапустить Samba, и ошибки больше не будет.
Tail — отличный способ просмотреть информацию, записанную в журнал, в режиме реального времени.
Помните, чтобы выйти из команды хвоста, вам нужно использовать комбинацию клавиш Ctrl+c.
<h2>3. ps
Для меня ps — это путь к другим командам. Команда ps отображает снимок любого текущего процесса. Вы можете использовать ps для вывода списка всех запущенных процессов или передать его в grep , чтобы вывести список только определенных процессов.
Но для чего это нужно?
Допустим, у вас есть приложение, которое вылетело из строя и не закрывается. Вы нажимаете на этот маленький крестик в правом верхнем (или левом) углу окна, но он не исчезает. Первое, что вам нужно сделать, это найти PID этого процесса, чтобы затем решить проблему. Вот тут-то и пригодится ps . Но ps сам по себе бесполезен. Почему? Если вы просто запустите ps, он будет отображать только процессы, связанные с используемым вами терминалом. Вместо этого вам необходимо использовать некоторые конкретные параметры, а именно:
пс вспомогательный
- а - все процессы
- u — процессы, принадлежащие пользователю, выполняющему ps
- x — печатает приложения, которые не были запущены с терминала
Команда ps необходима для поиска информации о приложениях, которые могут вести себя не так, как должны.
Эта команда выводит много информации, вся в столбцах. Вы увидите несколько столбцов, но вам следует обратить внимание на PID и COMMAND. Используя информацию из этих двух столбцов, вы можете определить идентификатор процесса, вызывающего у вас проблемы. Как только вы нашли этот процесс, вы можете убить его.
Если вывод ps aux слишком велик, вы можете передать его в grep и вывести список только определенных процессов. Допустим, LibreOffice вызывает у вас проблемы. Вы можете перечислить только те процессы, которые связаны с LibreOffice, следующим образом:
пс вспомогательный | grep libreoffice
<h2>4. kill
Команда kill очень эффективна. Если у вас есть приложение, которое вышло из строя и не закрывается (или не вышло из строя, но потребляет слишком много памяти), команда kill принудительно закроет это приложение.
Но чтобы использовать команду kill, вам сначала необходимо знать PID рассматриваемого приложения (который можно найти с помощью команды ps aux). Допустим, PID своенравного приложения LibreOffice — 604187. Чтобы завершить этот процесс, команда будет такой:
убить 604187
Приложение должно закрыться, и все готово.
<h2>5. systemctl
Команда systemctl не только удобна для запуска и остановки приложений, но и помогает устранять неполадки. Допустим, Samba работает не так, как ожидалось. Выдайте команду:
статус systemctl smbd
В приведенной выше команде будет указано, запущена ли служба, ее PID, количество связанных задач, сколько памяти и процессора она использует, а также группы CGroups, к которым она принадлежит. Еще лучше, если в процессе возникнут какие-либо проблемы, systemctl предоставит вам информацию, необходимую для дальнейшего устранения проблемы (обычно с помощью journalctl).
Вот оно. Эти пять команд послужат отличным началом устранения неполадок Linux. Да, доступно еще немало инструментов, но тем, кто только начинает работать с Linux, возможно, стоит сначала ознакомиться с этими командами.