Tips

Материал из ALT Linux Wiki
Версия от 15:15, 18 августа 2023; Tora-bora (обсуждение | вклад) (→‎Полезные команды: Найти пакет, который предоставляет нужный файл в Сизифе)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Журнал ALT-review

Title::ALT tips & tricks
ALT-review logo.png
Alt Club.png
Alt linux team.png

Навигация

Главная: ALT-review

Все статьи

Предложения и пожелания

Ресурсы

FAQ


Полезные команды

Описание Команда
Узнать версию ядра uname -r
Переключиться в root su -
Все загруженные в ядро модули lsmod
Список оборудования lspci
Список оборудования подробно (включая используемый драйвер) lspci -v
Список USB-устройств lsusb
Информация о памяти (свободной/занятой) в Мб free -m
Информация о всех процессах в системе top
Информация о процессе и его ID по строке запуска ps aux | grep строка
Свободное место на разделах винта df -h
Информация о сетевых интерфейсах (устаревшее) ifconfig -a
Информация о сетевых интерфейсах ip a
Пингуемся для проверки работы сети ping адрес
Группы, в которых состоит пользователь id
Найти пакет/версию в подключенном репозитории apt-cache search пакет или apt-cache showpkg пакет
Найти пакет/версию среди установленных rpm -qa пакет
Найти все пакеты с сочетанием abc в имени, исключая из списка пакеты с abc2 rpm -qa | grep abc | grep -v abc2 | sort
Список последних 20-ти установленных пакетов rpm -qa --last | head -n20
Найти ненужные ни одному пакету библиотеки (должен быть установлен apt-scripts; осторожно, libreoffice) apt-cache list-nodeps | grep ^lib
Удалить пакет вместе с установленными вместе с ним зависимостями apt-get remove -D пакет
Установить более старую версию пакета rpm -Uvh --oldpackage файл_с_пакетом.rpm
Найти расположение пакета rpm -ql пакет
Найти пакет, которому принадлежит файл rpm -qf файл (например: rpm -qf /usr/bin/mc)
Найти пакет, который предоставляет нужный файл/каталог в указанном репо (на примере qmake-qt4 в branch/t6)
Внимание! Команда скачивает индексный файл и при первом запуске скачает около 8 Мб (для branch/t6)
rsync -qz rsync://ftp.altlinux.org/ALTLinux/t6/branch/i586/base/contents_index .&& cat contents_index | grep qmake-qt4

Для Сизифа: rsync -qz rsync://ftp.altlinux.org/ALTLinux/Sisyphus/x86_64/base/contents_index .&& cat contents_index | grep startplasma-x11

Показать зависимости пакета apt-cache depends пакет
Подключить диск с репозиторием/обновлениями apt-cdrom add
Просмотреть список используемых для обновления репозиториев grep -vE "^[[:space:]]*(#|$)" /etc/apt/sources.list.d/*.list || grep -vE "^[[:space:]]*(#|$)" /etc/apt/sources.list
Просмотреть список используемых для обновления репозиториев (при установленной утилите apt-repo) apt-repo
Обновить систему apt-get update && apt-get dist-upgrade
Информация об устройстве /dev/video0 от udev /sbin/udevadm info --query=all --name=/dev/video0
Cписок лезущих в сеть сервисов (от root, для отслеживания всех) netstat --inet -p
Cписок "неприбитых" сервисов смотрящих в сеть netstat --inet -pl
Показать самые последние записи журнала, и продолжать печатать новые записи, при добавлении их в журнал journalctl -f
Показывать записи журнала с момента запуска системы с расшифровкой ошибок journalctl -xb

Копирование и вставка через буфер выделения

В графической среде Linux работает буфер выделения мышью. Просто выделите текст и можете вставить его щелчком колёсика мыши.

Список установленных программ

find /usr/share/applications -type f -name \*.desktop | while read f; do rpm -qf --qf '%{NAME}\n' "$f"; done| sort -u

Список установленных пакетов

Первый вариант:

rpm -qa --qf '%{name}\n'

Второй вариант:

rpm -qa | sed 's/-[^-]*-[^-]*$//'

Различие между фабричным rpm и реальными файлами в своей системе

По контрольным суммам:

$ rpm -V dovecot-pigeonhole
S.5..UGT c /etc/dovecot/conf.d/90-sieve.conf

diff по содержанию этих изменённых файлов -- например, так:

rpmpeek -n /var/cache/apt/archives/dovecot-pigeonhole_1%3a0.4.11-alt1_x86%5f64_1454508938.rpm find -type f -exec diff -duNw '{}' /'{}' ';'

Программа rpmpeek -- из пакета qa-robot.

Список обновлённых пакетов

Посмотреть список установленных и удалённых пакетов apt-get можно командой

less `ls -r /var/log/syslog/messages*` | egrep 'apt-get:.*(installed|removed) $'

Самые большие пакеты в системе

10 самых "тяжелых" пакетов, установленных в системе

rpm -qa --qf='%{size}\t%{name}\n' | sort -n | tail -n10

Удалить из базы пакетов, но оставить установленные файлы

rpm --erase --justdb --noscripts --nodeps --notriggers teamviewer

Отладка обновления

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

apt-get -o Debug::pkgProblemResolver=1 dist-upgrade

Одна команда для установки и удаления пакетов

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

apt-get install libcrypto10 libcrypto7-

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

Обновление из онлайновых репозиториев

При обновлении из онлайновых репозиториев источники с CDROM лучше отключить.

Удалить точку монтирования cdrom (которая сделана только для того, чтобы для apt мог монтировать его сам), отредактировав /etc/fstab:

su -l root
sed -i '/[[:space:]]\/media\/cdrom[[:space:]]/s/^/#/' /etc/fstab

Отключить репозитории командой:

apt-repo rm all cdroms

Как перенаправить вывод apt-get в файл, но при этом видеть, что apt выводит на консоль

apt-get dist-upgrade | tee file.log

Команда tee показывает на экране и дублирует вывод в файл file.log.

Просмотр конфигурационных файлов без комментариев

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

cat foo.conf | egrep -v '^(#|;|[[:space:]]*$)' | more
grep "^[^#;]" foo.conf | less

Работа с объектами Alterator из командной строки

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

Вывод всех групп, в которые входит пользователь:

alterator-cmdline /ldap-users action list _objects member_of user <имя>

Пример:

alterator-cmdline /ldap-users action list _objects member_of user ivanov

name:ivanov
label:ivanov (P)

name:l1
label:l1

name:webmaster
label:webmaster

name:wheel
label:wheel

Вывести только именование групп:

alterator-cmdline /ldap-users action list _objects member_of user ivanov | sed -n 's/^name://p'

Перечень доступных методов можно посмотреть в файле модуля в каталоге /usr/lib/alterator/backend3/

Показать текущий драйвер видео

С помощью lshw:

lshw -c display | egrep 'physical|configuration'
       physical id: 0     
       configuration: driver=nvidia latency=0

или c запущенным графическим сеансом:

lsof | grep _drv | grep -v evdev_drv
X         16253             root  mem       REG                8,2     7971968     634092 /usr/lib64/nvidia_340.32/nvidia_drv.so

(в обоих случаях показывает драйвер nvidia).

Создание самораспаковывающегося скрипта на Bash

TO=/
FILES="/etc/fstab /etc/resolv.conf"
echo -e '#!/bin/sh'"\ncat << EOF | base64 -d - | tar xz -C $TO\n$(tar cz $FILES|base64 -)\nEOF" > my_archive
chmod +x my_archive

Где:

TO
куда распаковывать
FILES
что упаковывать

На выходе получается архив в виде самораспаковывающегося скрипта на Bash.

Получить текущий путь к libdir без rpm

getconf LIBDIR

Как прочитать несколько переменных из конвейера

Как прочитать несколько переменных из конвейера, если он в bash запускается в subshell? Очень просто:

read -r version tag <<< "$(gear-remotes-watch | sed -n 's/^New version \([^ ]*\) is available from tag \([^ ]*\)./\1 \2/p')"

Свой сервер времени

Для установки сервера синхронизации времени, использующего не внешние серверы, а собственное время, необходимо для сети 10.4.1.0/24 прописать в файле /etc/ntp.conf

interface ignore 0.0.0.0/0
interface listen eth0
server 127.127.1.2
fudge 127.127.1.2 stratum 1
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp.log
restrict default ignore
restrict 127.0.0.1
restrict 10.4.1.0 mask 255.255.255.0 nomodify
broadcast 10.4.1.255
disable auth

Завести пользователей с точкой

Укажите в файле /etc/login.defs:

REGEXP_NAME             "^[a-z_][a-z0-9_.-]*[$]\?$"

Прочие советы

__SHOWFACTBOX__