Шпаргалка по командам Linux

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

зы. систематизации этой свалки и не ждите…

Проверка диска на бедблоки с выводом результата (списка обнаруженных бедблоков) в файл:

badblocks -n -s -o badblocks_500g.txt /dev/sdd1

Изменение размера раздела диска (и последующая проверка раздела на ошибки):

resize2fs -f /dev/sda5
fsck.ext4 -cv /dev/sda5

Просмотр текущих настроек (первая команда) и изменение частоты проверки раздела диска при запуске системы:

tune2fs -l /dev/sda1
tune2fs -i 1 /dev/sda1
tune2fs -c 1 /dev/sda1

Создание образа диска и одновременное сжатие его сразу в архив (для многоядерных процессоров имеет смысл вместо команды gzip использовать команду pigz — при сжатии данных будут задействованы все ядра процессора):

dd if=/dev/sda1 bs=8096 | gzip -9cf > sda1.dd-image.gz

Распаковка созданного приведенной выше командой архива образа диска и одновременное копирование его на раздел диска:

gunzip -c sda1.dd-image.gz | dd of=/dev/sda1 bs=8096

Вывод ТОЛЬКО ПОЛЕЗНЫХ (без комментариев) строк выбранного файла настроек (в примере используется файл /etc/dnsmasq.conf, в случае чего — подставьте любой другой, который вам нужен):

egrep -v '^(#|\s#|$)' /etc/dnsmasq.conf

Поиск приложения, «слушающего» необходимый номер порта (в примере — 3990-й):

netstat -anp | grep ":3990"

Вывести список установленных соединений, а также служб-обработчиков :

netstat -anA inet

Вывод информации о ЦПУ:

cat /proc/cpuinfo

Вывод информации обо всех устройствах:

dmidecode
  • кстати, если полистать man по команде dmidecode, можно найти описание всех возможных ее ключей. Наиболее полезным, полагаю, окажется ключ —type, позволяющий указать конкретный тип устройств, информацию по которым вы хотите узнать.

Удобная «фишка», благодаря которой в консоли при повторе команд (стрелкой «вверх») осуществляетя поиск по первым буквам. Например, если вы сначала введете два буквы «ex», а потом будете нажимать стрелку вверх, то  предлагаться будут только те из команд, хранящихся в «истории», которые начинаются на указанные буквы. Чтобы это происходило, в файл /etc/inputrc нужно добавить такие две строки (или раскоментировать, если они там уже есть):

"\e[A": history-search-backward
"\e[B": history-search-forward

Чтобы при использовании программы screen иметь возможность корректно отключаться от сеанса (по ctrl+a+d), нужно в файл /etc/screenrc добавить

defflow off

Преобразование PDF-файла в Word-овский doc в консоли:

soffice --infilter="writer_pdf_import" --convert-to doc исходный_файл.pdf

или же:

libreoffice --invisible --convert-to docx:"MS Word 2007 XML" исходный_файл.pdf

«Склейка» нескольких PDF-файлов в один в консоли (в системе должен быть установлен пакет poppler-utils):

pdfunite file1.pdf file2.pdf output.pdf

Заполнить определенный объем (4096 раза по 1 Мб) раздела диска «нулями»:

sudo dd if=/dev/sda2 of=/dev/null bs=1MB count=4096
  • чтобы обнулить не раздел, а диск, в качестве «цели» указывайте не раздел (/dev/sda2), а диск (/dev/sda);
  • чтобы «обнулить» все содержимое раздела (или диска), уберите опцию count=4096, и запись будет выполняться до тех пор, пока на разделе не закончится свободное место;
  • чтобы изменить размер блока при записи, измените значение параметра bs;
  • если есть желание заполнять не нулями, а произвольными значениями (что, имхо, помешает восстановить информацию в дальнейшем), вместо источника /dev/null нужно указать /dev/urandom ;
  • если в команду добавить опцию status=progress, процедура будет отображать ход процесса (хоть какую-то информацию о тем, сколько записано, с какой скоростью, сколько затрачено времени, и т.д.).

Простая программа, позволяющая проверить скорость 3D-рендеринга (в системе д.б. установлен пакет mesa-utils):

glxgears

Программа glxinfo из этого же пакета (mesa-utils) позволит получить информацию по видео подсистеме:

glxinfo | grep direct
glxinfo | grep rendering

Чтобы посмотреть текущие параметры подключения к сети (адрес, маршрутизацию и используемый сервер разрешения имен):

ip a
ip r
resolvectl status

Просмотреть информацию о времени, затраченном на загрузку системы:

systemd-analyze

Посмотреть список наиболее критичных моментов загрузки системы:

systemd-analyze critical-chain

Управление службами

  • «Разовый» запуск службы (служба не будет загружена после перезагрузки):
sudo systemctl start "имя-службы"
  • «Разовая» остановка службы (после перезагрузки служба будет снова запущена):
sudo systemctl stop "имя-службы"
  • Перезапуск службы:
sudo systemctl restart "имя-службы"
  • Если служба поддерживает такую возможность, задействование («загрузка») обновленного списка параметров, без перезапуска самой службы:
sudo systemctl reload "имя-службы"
  • Просмотр текущего статуса (состояния) службы:
systemctl status "имя-службы"
  • Включение автоматического запуска службы после перезагрузки компьютера (то есть, после перезагрузки, а также при всех последующих запусках ОС служба будет запускаться автоматически):
sudo systemctl enable "имя-службы"
  • Выключение автоматического запуска службы после перезагрузки (то есть, после перезагрузки, а также при всех последующих запусках ОС автоматический старт службы будет отключен):
sudo systemctl disable "имя-службы"
  • Полный запрет службы (вместо скрипта управления данной службой подставляется симлинк на /dev/null, в результате чего в дальнейшем службу не получится «включить» или запустить вручную):
sudo systemctl mask "имя-службы"
  • Отмена подмены скрипта управления службой симлинком на /dev/null (последующая возможность «включения» или ручного запуска службы будет восстановлена):
sudo systemctl unmask "имя-службы"

Проверка списка версий deb-пакета, доступных во всех подключенных в системе репозиториях (по имени пакета):

sudo apt list -a "имя_пакета"

То же самое, но с более развернутой информацией:

sudo apt-cache policy "имя_пакета"

«Борьба» с лишними локалями  — правка файлов в каталоге /var/lib/locales/supported.d/. Увидеть, сколько всего понаписано там изначально, и есть ли в списке лишнее, можно с помощью команды:

cat /var/lib/locales/supported.d/*

далее будет…