Tips: различия между версиями
Tora-bora (обсуждение | вклад) (→Полезные команды: Найти пакет, который предоставляет нужный файл в Сизифе) |
|||
(не показано 48 промежуточных версий 9 участников) | |||
Строка 1: | Строка 1: | ||
{{review | |||
|Title = ALT tips & tricks | |||
|Annotation = Хитрости, советы и секреты при работе в ALT Linux | |||
|Author = ALT Club | |||
|Tag = console | |||
|Section = практика | |||
|Issue = 01 | |||
}} | |||
{{review-nav | |||
|link= | |||
|link2= | |||
|page=FAQ | |||
}} | |||
== Полезные команды == | |||
{| class="standard" | |||
|- | |||
!Описание||Команда | |||
|- | |||
|Узнать версию ядра||{{cmd|uname -r}} | |||
|- | |||
|[[Su|Переключиться в root]]||{{cmd|su -}} | |||
|- | |||
|Все загруженные в ядро модули||{{cmd|lsmod}} | |||
|- | |||
|Список оборудования||{{cmd|lspci}} | |||
|- | |||
|Список оборудования подробно (включая используемый драйвер)||{{cmd|lspci -v}} | |||
|- | |||
|Список USB-устройств||{{cmd|lsusb}} | |||
|- | |||
|Информация о памяти (свободной/занятой) в Мб||{{cmd|free -m}} | |||
|- | |||
|Информация о всех процессах в системе ||{{cmd|top}} | |||
|- | |||
|Информация о процессе и его ID по строке запуска ||{{cmd|ps aux {{!!}} grep строка}} | |||
|- | |||
|Свободное место на разделах винта||{{cmd|df -h}} | |||
|- | |||
|Информация о сетевых интерфейсах (устаревшее)||{{cmd|ifconfig -a}} | |||
|- | |||
|Информация о сетевых интерфейсах ||{{cmd|ip a}} | |||
|- | |||
|Пингуемся для проверки работы сети||{{cmd|ping адрес}} | |||
|- | |||
|Группы, в которых состоит пользователь||{{cmd| id}} | |||
|- | |||
|Найти пакет/версию в подключенном репозитории||{{cmd|apt-cache search пакет}} или {{cmd|apt-cache showpkg пакет}} | |||
|- | |||
|Найти пакет/версию среди установленных||{{cmd|rpm -qa пакет}} | |||
|- | |||
|Найти все пакеты с сочетанием abc в имени, исключая из списка пакеты с abc2||{{cmd|rpm -qa {{!!}} grep abc {{!!}} grep -v abc2 {{!!}} sort}} | |||
|- | |||
|Список последних 20-ти установленных пакетов||{{cmd|rpm -qa --last {{!!}} head -n20}} | |||
|- | |||
|Найти ненужные ни одному пакету библиотеки (должен быть установлен apt-scripts; осторожно, {{pkg|libreoffice}})|| {{cmd|apt-cache list-nodeps {{!!}} grep ^lib}} | |||
|- | |||
|Удалить пакет вместе с установленными вместе с ним зависимостями || {{cmd|apt-get remove -D пакет}} | |||
|- | |||
|Установить более старую версию пакета || {{cmd|rpm -Uvh --oldpackage файл_с_пакетом.rpm}} | |||
|- | |||
|Найти расположение пакета||{{cmd|rpm -ql пакет}} | |||
|- | |||
|Найти пакет, которому принадлежит файл||{{cmd|rpm -qf файл (например: rpm -qf /usr/bin/mc)}} | |||
|- | |||
|Найти пакет, который предоставляет нужный файл/каталог в указанном репо (на примере qmake-qt4 в branch/t6)<br> '''Внимание!''' Команда скачивает индексный файл и при первом запуске скачает около 8 Мб (для branch/t6)||{{cmd| rsync -qz rsync://ftp.altlinux.org/ALTLinux/t6/branch/i586/base/contents_index .&& cat contents_index {{!!}} grep qmake-qt4}} | |||
Для Сизифа: | |||
{{cmd| rsync -qz rsync://ftp.altlinux.org/ALTLinux/Sisyphus/x86_64/base/contents_index .&& cat contents_index {{!!}} grep startplasma-x11}} | |||
|- | |||
|Показать зависимости пакета||{{cmd|apt-cache depends пакет}} | |||
|- | |||
|Подключить диск с репозиторием/обновлениями||{{cmd|apt-cdrom add}} | |||
|- | |||
|Просмотреть список используемых для обновления репозиториев||{{cmd|grep -vE "^<nowiki>[[:space:]]</nowiki>*(#{{!!}}$)" /etc/apt/sources.list.d/*.list {{!!}}{{!!}} grep -vE "^<nowiki>[[:space:]]</nowiki>*(#{{!!}}$)" /etc/apt/sources.list}} | |||
|- | |||
|Просмотреть список используемых для обновления репозиториев (при установленной утилите apt-repo)||{{cmd|apt-repo}} | |||
|- | |||
|[[Обновление ОС|Обновить систему]]||{{cmd|apt-get update && apt-get dist-upgrade}} | |||
|- | |||
|Информация об устройстве /dev/video0 от udev||{{cmd|<nowiki>/sbin/udevadm info --query=all --name=/dev/video0</nowiki>}} | |||
|- | |||
|Cписок лезущих в сеть сервисов (от root, для отслеживания всех) || {{cmd|netstat --inet -p}} | |||
|- | |||
|Cписок "неприбитых" сервисов смотрящих в сеть || {{cmd|netstat --inet -pl}} | |||
|- | |||
|Показать самые последние записи журнала, и продолжать печатать новые записи, при добавлении их в журнал || {{cmd|journalctl -f}} | |||
|- | |||
|Показывать записи журнала с момента запуска системы с расшифровкой ошибок || {{cmd|journalctl -xb}} | |||
|} | |||
== Копирование и вставка через буфер выделения == | |||
В графической среде Linux работает буфер выделения мышью. Просто выделите текст и можете вставить его щелчком колёсика мыши. | |||
== Список установленных программ == | |||
<source lang="bash"> | |||
find /usr/share/applications -type f -name \*.desktop | while read f; do rpm -qf --qf '%{NAME}\n' "$f"; done| sort -u | |||
</source> | |||
== Список установленных пакетов == | |||
Первый вариант: | |||
<source lang="bash"> | |||
rpm -qa --qf '%{name}\n' | |||
</source> | |||
Второй вариант: | |||
<source lang="bash"> | |||
rpm -qa | sed 's/-[^-]*-[^-]*$//' | |||
</source> | |||
==Различие между фабричным rpm и реальными файлами в своей системе== | |||
По контрольным суммам: | |||
<pre>$ rpm -V dovecot-pigeonhole | |||
S.5..UGT c /etc/dovecot/conf.d/90-sieve.conf | |||
</pre> | |||
diff по содержанию этих изменённых файлов -- например, так: | |||
<source lang="bash"> | |||
rpmpeek -n /var/cache/apt/archives/dovecot-pigeonhole_1%3a0.4.11-alt1_x86%5f64_1454508938.rpm find -type f -exec diff -duNw '{}' /'{}' ';' | |||
</source> | |||
Программа {{cmd|rpmpeek}} -- из пакета [https://packages.altlinux.org/en/Sisyphus/srpms/qa-robot {{pkg|qa-robot}}]. | |||
== Список обновлённых пакетов == | == Список обновлённых пакетов == | ||
Посмотреть список установленных и удалённых пакетов apt-get можно командой | Посмотреть список установленных и удалённых пакетов apt-get можно командой | ||
<source lang="bash"> | |||
less `ls -r /var/log/syslog/messages*` | egrep 'apt-get:.*(installed|removed) $' | |||
</source> | |||
== Самые большие пакеты в системе == | |||
10 самых "тяжелых" пакетов, установленных в системе | |||
<source lang="bash"> | |||
rpm -qa --qf='%{size}\t%{name}\n' | sort -n | tail -n10 | |||
</source> | |||
== Удалить из базы пакетов, но оставить установленные файлы == | |||
rpm --erase --justdb --noscripts --nodeps --notriggers teamviewer | |||
== Отладка обновления == | == Отладка обновления == | ||
Чтобы посмотреть, какой граф будет при обновлении системы, вызывайте | Чтобы посмотреть, какой граф будет при обновлении системы, вызывайте | ||
<source lang="bash"> | |||
apt-get -o Debug::pkgProblemResolver=1 dist-upgrade | |||
</source> | |||
== Одна команда для установки и удаления пакетов == | |||
Чтобы одной командой установить новый пакет и убрать старый, воспользуйтесь командой: | |||
<source lang="bash"> | |||
apt-get install libcrypto10 libcrypto7- | |||
</source> | |||
(минус ставится сразу после названий удаляемых пакетов) | |||
== Обновление из онлайновых репозиториев == | |||
При обновлении из онлайновых репозиториев источники с CDROM лучше отключить. | |||
Удалить точку монтирования cdrom (которая сделана только для того, чтобы для apt мог монтировать его сам), отредактировав /etc/fstab: | |||
<source lang="bash"> | |||
su -l root | |||
sed -i '/[[:space:]]\/media\/cdrom[[:space:]]/s/^/#/' /etc/fstab | |||
</source> | |||
Отключить репозитории командой: | |||
<source lang="bash"> | |||
apt-repo rm all cdroms | |||
</source> | |||
== Как перенаправить вывод apt-get в файл, но при этом видеть, что apt выводит на консоль == | |||
<source lang="bash"> | |||
apt-get dist-upgrade | tee file.log | |||
</source> | |||
Команда {{cmd|tee}} показывает на экране и дублирует вывод в файл file.log. | |||
== Просмотр конфигурационных файлов без комментариев == | |||
Просмотр конфигурационных файлов без комментариев и пустых строк: | |||
<source lang="bash"> | |||
cat foo.conf | egrep -v '^(#|;|[[:space:]]*$)' | more | |||
grep "^[^#;]" foo.conf | less | |||
</source> | |||
== Работа с объектами Alterator из командной строки == | |||
Центр управления [[Alterator]] доступен не только из графического и веб-интерфейса, его функциями можно воспользоваться и из командной строки с помощью программы {{prg|alterator-cmdline}}. Вывод осуществляется в формате <имя>:<значение>, запись отделяется пустой строкой. | |||
Вывод всех групп, в которые входит пользователь: | |||
<source lang=bash> | |||
alterator-cmdline /ldap-users action list _objects member_of user <имя> | |||
</source> | |||
Пример: | |||
<source lang=bash> | |||
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 | |||
</source> | |||
Вывести только именование групп: | |||
<source lang=bash> | |||
alterator-cmdline /ldap-users action list _objects member_of user ivanov | sed -n 's/^name://p' | |||
</source> | |||
Перечень доступных методов можно посмотреть в файле модуля в каталоге ''/usr/lib/alterator/backend3/'' | |||
== Показать текущий драйвер видео == | |||
С помощью {{pkg|lshw}}: | |||
<source lang=bash>lshw -c display | egrep 'physical|configuration' | |||
physical id: 0 | |||
configuration: driver=nvidia latency=0</source> | |||
== | или c запущенным графическим сеансом: | ||
<source lang=bash>lsof | grep _drv | grep -v evdev_drv | |||
X 16253 root mem REG 8,2 7971968 634092 /usr/lib64/nvidia_340.32/nvidia_drv.so</source> | |||
(в обоих случаях показывает драйвер ''nvidia''). | |||
== Создание самораспаковывающегося скрипта на Bash == | |||
<source lang=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 | |||
</source> | |||
Где: | |||
;TO | |||
:куда распаковывать | |||
;FILES | |||
:что упаковывать | |||
На выходе получается архив в виде самораспаковывающегося скрипта на Bash. | |||
== Получить текущий путь к libdir без rpm == | |||
getconf LIBDIR | |||
== Как прочитать несколько переменных из конвейера == | |||
Как прочитать несколько переменных из конвейера, если он в bash запускается в subshell? Очень просто: | |||
<source lang="bash">read -r version tag <<< "$(gear-remotes-watch | sed -n 's/^New version \([^ ]*\) is available from tag \([^ ]*\)./\1 \2/p')"</source> | |||
== Свой сервер времени == | |||
Для установки сервера синхронизации времени, использующего не внешние серверы, а собственное время, необходимо для сети 10.4.1.0/24 прописать в файле {{path|/etc/ntp.conf}} | |||
<source lang="text">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</source> | |||
== Завести пользователей с точкой == | |||
Укажите в файле {{path|/etc/login.defs}}: | |||
REGEXP_NAME "^[a-z_][a-z0-9_.-]*[$]\?$" | |||
== Прочие советы == | |||
* [[Tips/GNOME|Для приложений GNOME]] | |||
* [[Thunderbird|Для Thunderbird]] | |||
[[Категория:HOWTO]] | [[Категория:HOWTO]] | ||
[[Категория:Полезно]] | |||
__SHOWFACTBOX__ | |||
[[Категория:ALT-review]] |
Текущая версия от 15:15, 18 августа 2023
Журнал ALT-review
Title::ALT tips & tricks- Автор: Author::ALT Club Раздел: Section::практика Выпуск: Issue::01 Тег: Tag::console
|
Полезные команды
Описание | Команда |
---|---|
Узнать версию ядра | 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__