Tips

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Обновление из онлайновых репозиториев)
(Различие между фабричным rpm и реальными файлами в своей системе)
 
(32 промежуточные версии не показаны)
Строка 1: Строка 1:
-
Страница хитростей, советов и секретов при работе в ALT Linux.
+
{{review
 +
|Title          = Хитрости, советы и секреты при работе в ALT Linux
 +
|Annotation    = Хитрости, советы и секреты при работе в ALT Linux
 +
|Author        = ALT Club
 +
|Tag            =
 +
|Section        = практика
 +
|Issue          =
 +
}}
 +
{{review-nav
 +
|link=
 +
|link2=
 +
|page=FAQ
 +
}}
 +
 
 +
== Копирование и вставка через буфер выделения ==
 +
В графической среде 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>
-
less `ls -r /var/log/syslog/messages*` | egrep 'apt-get:.*(installed|removed) $'
+
== Самые большие пакеты в системе ==
 +
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
+
apt-get -o Debug::pkgProblemResolver=1 dist-upgrade
-
 
+
</source>
== Одна команда для установки и удаления пакетов ==
== Одна команда для установки и удаления пакетов ==
Чтобы одной командой установить новый пакет и убрать старый, воспользуйтесь командой:
Чтобы одной командой установить новый пакет и убрать старый, воспользуйтесь командой:
-
 
+
<source lang="bash">
-
apt-get install libcrypto10 libcrypto7-
+
apt-get install libcrypto10 libcrypto7-
-
 
+
</source>
-
(минус ставится на конце удаляемых пакетов)
+
(минус ставится сразу после названий удаляемых пакетов)
== Обновление из онлайновых репозиториев ==
== Обновление из онлайновых репозиториев ==
При обновлении из онлайновых репозиториев источники с CDROM лучше отключить.
При обновлении из онлайновых репозиториев источники с CDROM лучше отключить.
-
Удалить запись cdrom из /etc/fstab:
+
Удалить точку монтирования cdrom (которая сделана только для того, чтобы для apt мог монтировать его сам), отредактировав /etc/fstab:
<source lang="bash">
<source lang="bash">
su -l root
su -l root
-
mcedit /etc/fstab
+
sed -i '/[[:space:]]\/media\/cdrom[[:space:]]/s/^/#/' /etc/fstab
</source>
</source>
Отключить репозитории командой:
Отключить репозитории командой:
<source lang="bash">
<source lang="bash">
-
apt-repo rm all cdroms
+
apt-repo rm all cdroms
</source>
</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
 +
</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>
 +
 +
== Полезные команды ==
 +
{| 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}}
 +
|-
 +
|Найти ненужные ни одному пакету библиотеки (должен быть установлен 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|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}}
 +
|}
 +
 +
== Прочие советы ==
 +
 +
* [[Tips/GNOME|Для приложений GNOME]]
 +
* [[Thunderbird|Для Thunderbird]]
 +
[[Категория:HOWTO]]
[[Категория:HOWTO]]
 +
[[Категория:Полезно]]
 +
 +
__SHOWFACTBOX__
 +
[[Категория:ALT-review-edit]]

Текущая версия на 15:40, 20 июля 2016

Хитрости, советы и секреты при работе в ALT Linux
ALT-review logo.png
Хитрости, советы и секреты при работе в ALT Linux

Автор: ALT Club   Раздел: практика   

Alt Club.png
Alt linux team.png

Навигация

Главная: ALT-review

Все статьи

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

Ресурсы

FAQ


Содержание

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

В графической среде 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

Работа с объектами 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')"

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

ОписаниеКоманда
Узнать версию ядраuname -r
Переключиться в rootsu -
Все загруженные в ядро модули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 в имени, исключая из списка пакеты с abc2rpm -qa | grep abc | grep -v abc2 | sort
Найти ненужные ни одному пакету библиотеки (должен быть установлен 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
Показать зависимости пакета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

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

 
Факты: TipsRDF источник
AnnotationХитрости, советы и секреты при работе в ALT Linux
AuthorALT Club  +
Sectionпрактика  +
TitleХитрости, советы и секреты при работе в ALT Linux
Личные инструменты