Linux: различия между версиями

Материал из support.qbpro.ru
imported>Vix
Нет описания правки
Нет описания правки
 
(не показано 28 промежуточных версий 2 участников)
Строка 4: Строка 4:
==Стандарты==
==Стандарты==
*[[RFC3164]] Протокол BSD Syslog
*[[RFC3164]] Протокол BSD Syslog
==Wheezy==
==Debian==
* компиляция из исходников:
* компиляция из исходников:
  make
  make
Строка 12: Строка 12:
  make uninstall
  make uninstall
==[[Как собрать бинарный deb пакет: подробное HowTo]]==
==[[Как собрать бинарный deb пакет: подробное HowTo]]==
==Samba или работа в сети с Windows==
==Samba или работа в сети с Windows==
* узнать имя компьютера:
* узнать имя компьютера:
Строка 45: Строка 46:


==Как определить какая программа слушает порт?==
==Как определить какая программа слушает порт?==
netstat -nap|grep 8080
netstat -nap|grep 8080
или
netstat -natp
 
* Альтернативный способ:
ss
или
ss -a
или
ss -l


==Запуск программ в фоне==
==Запуск программ в фоне==
Строка 54: Строка 64:
   nohup top &
   nohup top &
[https://ru.wikipedia.org/wiki/Nohup nohup]
[https://ru.wikipedia.org/wiki/Nohup nohup]
 
==[[Как получить и скопировать список установленных пакетов на Ubuntu / Debian Linux сервере]]==
==Команды Linux==
==[[Файл:Tux.png]]Команды Linux==


<div class="content">
<div class="content">
Строка 575: Строка 585:
<li>-u - разэкспортирует иерархию</li>
<li>-u - разэкспортирует иерархию</li>
<li>-v - "говорительный" режим )</li>
<li>-v - "говорительный" режим )</li>
<li> Дополнительно тут: [[Использование NFS]]</li>
</ul>
</ul>
</li>
</li>
Строка 1540: Строка 1551:
==Полезный справочник по командам Linux==
==Полезный справочник по командам Linux==
* [http://www.k-max.name/linux/osnovnye-komandy-linux-ili-shpargalka-nachinayushhego-linuksojda/print/ справочник]
* [http://www.k-max.name/linux/osnovnye-komandy-linux-ili-shpargalka-nachinayushhego-linuksojda/print/ справочник]
==Обьединение нескольких каналов интернет==
* [https://toster.ru/q/68778 Объединение интернет каналов до определенных сетей]
* [https://habrahabr.ru/post/49137/ Используем 2+ провайдера]
* [http://help.ubuntu.ru/wiki/ip_balancing IP-Балансировка: объединяем несколько интернет-каналов в один]
* [https://habrahabr.ru/post/54748/ Объединение пропускной способности двух интернет каналов и простая отказоустойчивость]
==Управление нагрузкой===
* [https://www.prolinux.org/post/nastroyki-nagruzhennogo-servera/ системные настройки высоконагруженного сервера]
* [https://stackoverflow.com/questions/9361816/maximum-number-of-processes-in-linux Maximum number of processes in linux]
==Автологин в консоль или Xorg==
виртуальных терминалах обычно запускаются одни и те же программы '''rungetty, agetty''' или '''mingetty'''.
все они имеют опцию '''--autologin''' имя-пользователя (некоторые реализации — -a имя-пользователя), которая делает именно то, что следует из её названия.
другое дело, что не всегда просто определить, где именно находится файл, в котором описан запуск '''*getty'''. чтобы добавить опцию к вызову нужного экземпляра '''*getty'''.
* в «старой доброй» sysv-инициализации это, естественно, файл '''/etc/inittab''':
    $ grep -v '^#' /etc/inittab | grep getty
    1:2345:respawn:/sbin/getty 38400 tty1
    2:23:respawn:/sbin/getty 38400 tty2
    3:23:respawn:/sbin/getty 38400 tty3
    4:23:respawn:/sbin/getty 38400 tty4
    5:23:respawn:/sbin/getty 38400 tty5
    6:23:respawn:/sbin/getty 38400 tty6
* в системе инициализации upstart эту роль играют, судя по всему, файлы '''/etc/init/tty?.conf''':
    $ grep -v '^#' /etc/init/tty?.conf | grep getty
    /etc/init/tty1.conf:exec /sbin/getty -8 38400 tty1
    /etc/init/tty2.conf:exec /sbin/getty -8 38400 tty2
    /etc/init/tty3.conf:exec /sbin/getty -8 38400 tty3
    /etc/init/tty4.conf:exec /sbin/getty -8 38400 tty4
    /etc/init/tty5.conf:exec /sbin/getty -8 38400 tty5
    /etc/init/tty6.conf:exec /sbin/getty -8 38400 tty6
в системе инициализации '''systemd''' ситуация несколько сложнее. насколько я понял, глядя на '''debian'''-овскую конфигурацию, надо заменить символическую ссылку '''/etc/systemd/system/getty.target.wants/getty@tty1.service''', которая ссылается на файл универсального сервиса '''/lib/systemd/system/getty@.service''', на реальный файл (с тем же именем — '''getty@tty1.service'''). можно скопировать содержимое того же самого '''/lib/systemd/system/getty@.service''', и добавить вышеупомянутую опцию к вызову программы '''*getty'''.
зачем подменять, а не исправлять сразу файл с универсальным сервисом '''/lib/systemd/system/getty@.service?''' для того, чтобы при переключении на другие виртуальные терминалы ('''не tty1''') программа '''*getty''' запускалась '''«по-старому»''', и предлагала '''«обычное»''' приглашение к вводу логина/пароля.
==[http://rus-linux.net/lib.php?name=/MyLDP/file-sys/terabyte.html Создание раздела диска размером более 2 Тб в Линуксе]==
==[[Ansible]]==
==Команда at в Linux==
Программа at является частью набора, состоящего из четырех программ: at, batch, atq и atrm:
    at выполняет задачи в назначенное время.
    atq выводит список ожидающих выполнения задач для каждого пользователя; в случае использования суперпользователем, выводятся все ожидающие выполнения задачи.
    atrm удаляет задачи, заданные идентификаторами.
    batch выполняет задачи во время периодов низкой загруженности системы; другими словами, когда средний уровень загрузки системы падает ниже значения 1.5 или того значения, которое задано при вызове atd.
Использование программы at
После запуска at предлагает вам ввести последовательность команд для выполнения. Чтобы закончить ввод команд, следует использовать комбинацию клавиш CTRL-D. Описание основных параметров командной строки at приведено ниже:
at [-m] [-q очередь] [-f файл] ВРЕМЯ
Значение этих параметров:
    -q используется для указания очереди. Очередь обозначается одной буквой; корректными очередями считаются очереди с идентификаторами от a до z и от A до Z. Очередь с идентификатором a используется по умолчанию, а очередь с идентификатором b является очередью для программы batch. Команды из очередей с идентификаторами, находящимися далее по алфавиту, выполняются с более высоким приоритетом (nice). Специальная очередь "=" зарезервирована для команд, исполняющихся в данный момент. Если команда добавлена в очередь, идентификатором которой является заглавная буква, считается, что команда передана программе batch. В том случае, если программе atq передан идентификатор очереди, программа выведет команды, находящиеся только в этой очереди.
    -m позволяет отправить пользователю сообщение по электронной почте после выполнения задачи даже в том случае, когда выполненная программа ничего не вывела.
    -f позволяет прочитать команды из файла, а не со стандартного ввода.
    В качестве времени at принимает строки в форматах, совместимых со стандартом POSIX.2. Принимается строка, указывающая время в формате ЧЧ:ММ, позволяющая выполнить команду в назначенное время в течение дня. Вы также можете задать день для выполнения команды при помощи строки, указывающей дату в формате имени месяца и дня с необязательным указанием года или задав дату строкой формата ММДДГГ или ММ/ДД/ГГ или ДД.ММ.ГГ. Указание даты должно следовать за указанием времени.
Примеры
Во время проведения тестов точное время было следующим:
#date
Wed Oct 17 22:31:05 CEST 2012
В том случае, если задать только время, задача будет запланирована на следующий момент достижения этого времени, например, я задал время 20.00, а исполнение задачи было запланировано на следующий день в это время:
#at -f my_at_test.sh 20:00
warning: commands will be executed using /bin/sh
job 4 at Thu Oct 18 20:00:00 2012
При этом, если задать время, которое еще не наступило сегодня, исполнение задачи будет запланировано на этот же день:
#at -f my_at_test.sh 22:35
warning: commands will be executed using /bin/sh
job 5 at Wed Oct 17 22:35:00 2012
А это еще один пример с использованием сочетания клавиш CTRL+D для завершения ввода команд:
at midnight Friday
warning: commands will be executed using /bin/sh
at> cp -a /project/source/* /backup/source/^C
at>
job 6 at Fri Oct 19 00:00:00 2012
Просмотр всех запланированных задач при помощи atq
Вы можете использовать программу atq в качестве альтернативы команде at -l для просмотра списка запланированных или выполняющихся в данный момент задач, а единственным аргументом этой программы является -q для указания определенной очереди.
#atq
3 Thu Oct 18 10:25:00 2012 a linuxaria
4 Thu Oct 18 20:00:00 2012 a linuxaria
6 Fri Oct 19 00:00:00 2012 a linuxaria
На мой взгляд, вывод программы не особенно полезен, так как вы не можете посмотреть, какая команда выполняется в рамках задачи с идентификатором 3 или любой другой задачи.
Для того, чтобы увидеть, что будет выполняться в рамках задачи, вы можете использовать следующую команду:
at -c идентификатор_задачи
Она выведет длинный список переменных окружения для выполнения команды и саму команду:
#at -c 6
 
#!/bin/sh
# atrun uid=1000 gid=1000
# mail linuxaria 0
umask 22
SSH_AGENT_PID=1579; export SSH_AGENT_PID
XDG_SESSION_COOKIE=586bed7d66c5f3bf0810f6ce0000001c-1350495018.439467-8023144; export XDG_SESSION_COOKIE
WINDOWID=25165830; export WINDOWID
GNOME_KEYRING_CONTROL=/tmp/keyring-m0UVoj; export GNOME_KEYRING_CONTROL
USER=linuxaria; export USER
LIBGL_DRIVERS_PATH=/usr/lib/fglrx/dri:/usr/lib32/fglrx/dri; export LIBGL_DRIVERS_PATH
SSH_AUTH_SOCK=/tmp/ssh-DbbUjzXR1501/agent.1501; export SSH_AUTH_SOCK
USERNAME=riccio; export USERNAME
SESSION_MANAGER=local/mint-desktop:@/tmp/.ICE-unix/1501,unix/mint-desktop:/tmp/.ICE-unix/1501; export SESSION_MANAGER
DEFAULTS_PATH=/usr/share/gconf/default.default.path; export DEFAULTS_PATH
XDG_CONFIG_DIRS=/etc/xdg/xdg-default:/etc/xdg; export XDG_CONFIG_DIRS
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games; export PATH
DESKTOP_SESSION=default; export DESKTOP_SESSION
PWD=/tmp; export PWD
GNOME_KEYRING_PID=1424; export GNOME_KEYRING_PID
LANG=en_US.UTF-8; export LANG
MANDATORY_PATH=/usr/share/gconf/default.mandatory.path; export MANDATORY_PATH
MDM_XSERVER_LOCATION=local; export MDM_XSERVER_LOCATION
SHLVL=1; export SHLVL
HOME=/home/linuxaria; export HOME
LOGNAME=linuxaria; export LOGNAME
XDG_DATA_DIRS=/usr/share/default:/usr/local/share/:/usr/share/:/usr/share/mdm/; export XDG_DATA_DIRS
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-QWgLeCbkps,guid=b1c32f270937311ee26524ff00000031; export DBUS_SESSION_BUS_ADDRESS
MDMSESSION=default; export MDMSESSION
WINDOWPATH=8; export WINDOWPATH
MDM_LANG=en_US.UTF-8; export MDM_LANG
XAUTHORITY=/home/linuxaria/.Xauthority; export XAUTHORITY
COLORTERM=gnome-terminal; export COLORTERM
cd /tmp || {
echo 'Execution directory inaccessible' >&2
exit 1
}
cp -a /project/source/* /backup/source/^C
Этот вывод позволяет гораздо лучше понять предназначение задачи.
Удаление запланированной задачи при помощи atrm
Мы научились просматривать список запланированных задач и при желании их содержимое, теперь настало время рассмотреть способ их удаления из очереди при помощи программы atrm или команды at -d для удаления определенной задачи.
Таким образом, для удаления задачи с идентификатором 3, вам необходимо просто ввести команду:
atrm 3
Данная команда ничего не выводит в консоль, но после ее выполнения вы можете убедиться в удалении задачи при помощи команды atq.
Ограничение круга пользователей программы at
Файлы /etc/at.allow и /etc/at.deny устанавливают пользователей, которые могут планировать задачи для последующего исполнения при помощи программ at и batch. В качестве формата этих файлов используется простой список имен пользователей по одному в каждой строке. Использование пробелов в этих файлах не допускается.
Пользователь root может использовать программы at и batch при любых условиях.
В случае существования файла /etc/at.allow, на его основе устанавливается круг пользователей, которым разрешено планирование задач, но обычно в системах этого файла не существует.
Если файла /etc/at.allow не существует, проверяется файл /etc/at.deny, который обычно содержит длинный список "системных пользователей", таких как bin, backup, ftp или www-data, для которых планирование задач запрещено.
==Автоматическое монтирование USB==
Пример:
/etc/udev/rules.d/10-automount.rules
ACTION=="add", KERNEL=="sd[c-z][0-9]", ENV{ID_USB_DRIVER}="usb-storage", RUN+="/bin/mkdir -p /mnt/%k /bin/chmod a+rwx /mnt/%k"
ACTION=="add", KERNEL=="sd[c-z][0-9]", ENV{ID_USB_DRIVER}="usb-storage", RUN+="/bin/mount -o sync,umask=0000,iocharset=cp1251 /dev/%k /mnt/%k"
ACTION=="remove", KERNEL=="sd[c-z][0-9]", ENV{ID_USB_DRIVER}="usb-storage", RUN+="/bin/umount /dev/%k", RUN+="/bin/rmdir /mnt/%k"
* [https://archlinux.org.ru/forum/topic/5221/  взято тут]
Дополнительно к теме:
<hr>
* [http://muhas.ru/?p=168 Автомонтирование с помощью udev и udisks]
* [https://it-explain.com/blog/armbian_dobavljaem_avtomontirovanie_usb_nakopitelej/2017-01-06-201 Armbian: Добавляем автомонтирование USB накопителей]
* [http://zenux.ru/articles/40/ Примеры]
==Закончились inodes как решить проблему?==
Прежде чем что то делать, нужно убедиться что проблема с inodes.
Воспользуйтесь командой:
[alexsystem ~]# df -i
Filesystem            Inodes  IUsed  IFree IUse% Mounted on
/dev/hda2            121896960  227651 121669309    1% /
/dev/hda1              26104      44  26060    1% /boot
tmpfs                  64417      1  64416    1% /dev/shm
Значения IUsed, IFree, IUse% дадут вам понимание, в какой файловой системе (разделе) у вас проблема.
Потом нужно посмотреть, в какой папке больше всего вложенных элементов (файлов и папок), а потом вывести их списком, список отсортировать в возрастающем порядке, используйте вот такой конвейер:
find . -mindepth 2 | awk -F/ '{ print $2"/" }' | sort | uniq -c | sort -n | tail -10
mindepth 2 или 3 потому, что достаточно просмотреть/посчитать файлы в папках 2/3 уровней вложенности. tail -10 это значит будет показан топ 10 папок с наибольшим количеством элементов.
* [https://qna.habr.com/q/546751 источник]
* [https://stackoverflow.com/questions/653096/how-to-free-inode-usage How to Free Inode Usage?]
==IBGP==
* [https://support.qbpro.ru/images/5/5c/Prakticheskie_primeri_bgp.pdf Практические примеры '''BGP''']
==Linux soft==
* [[Linux soft]]
==[https://linux-notes.org/ustanovka-secure-delete-na-unix-linux/ Безопасное удаление файлов (Secure-Delete)]==
==[[Open vSwitch как ядро виртуальной сети]]==
* [https://itnan.ru/post.php?c=1&p=271485 Способ быстрого измерения производительности случайного сервера]
ИСТОЧНИКИ:
<hr>
* [https://wiki.debian.org/ru/AutoLoginX для Debian]
* [https://ru.stackoverflow.com/questions/591993/%D0%9A%D0%B0%D0%BA-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%BB%D0%BE%D0%B3%D0%B8%D0%BD-%D0%B2-%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C-linux различные варианты]
* [http://rus-linux.net/MyLDP/admin/manage-planned-tasks-on-linux-with-the-command-at.html Планирование задач при помощи программы at в Linux]
* [http://rus-linux.net/MyLDP/sec/fswatch.html fswatch - утилита для мониторинга изменений файлов и директорий в Linux]
* [[Установка утилиты fio для тестирования IOPS в Linux]]

Текущая версия от 07:47, 10 октября 2023

Виртуализация

Стандарты

  • RFC3164 Протокол BSD Syslog

Debian

  • компиляция из исходников:
make
mkdir ./complite
make install
checkinstall
make uninstall

Как собрать бинарный deb пакет: подробное HowTo

Samba или работа в сети с Windows

  • узнать имя компьютера:
# nmblookup -A 192.168.0.111
Looking up status of 192.168.0.230
       BEGINER         <20> -         B <ACTIVE> 

       MAC Address = 90-2B-34-41-EF-95

Удаленное управление пользователями в консоли:

ssh remotehost
ps -aux | grep bash

Получаешь примерно такую картину:

root      2043  0.0  0.7  4892 1644 tty1     S    00:24   0:00 -bash 
root      2441  0.0  0.0  4932    8 pts/1    S    00:31   0:00 /bin/bash 
root      2490  0.0  0.0  4932    4 pts/2    S    00:33   0:00 /bin/bash 
root      2497  0.0  0.0  4936    4 pts/3    S    00:33   0:00 /bin/bash 
root      2511  0.0  0.4  4936 1024 pts/4    S    00:35   0:00 /bin/bash 
root      7940  0.0  0.7  4936 1672 pts/5    S    05:09   0:00 -bash 
root      9275  0.0  0.7  4932 1664 pts/6    S    08:12   0:00 -bash 
root     12301  0.2  0.7  4932 1664 pts/7    S    21:44   0:00 -bash 
root     12377  0.0  0.2  3780  532 pts/7    S    21:46   0:00 grep bash

Теперь

kill -9 Nr.prozessa

Только смотри свой процесс не убей... :)

Как определить какая программа слушает порт?

netstat -nap|grep 8080

или

netstat -natp
  • Альтернативный способ:
ss

или

ss -a

или

ss -l

Запуск программ в фоне

top&

или

 nohup top &

nohup

Как получить и скопировать список установленных пакетов на Ubuntu / Debian Linux сервере

Tux.pngКоманды Linux

Не мог не затронуть в блоге данную тему. В данной статье опишу то, что есть на просторах интернета в громадных количествах.
Наверно, в большей степени делаю это для себя, в виде шпаргалки. Ну и для посетителей :)

В статье опишу основные команды Linux, которые приходилось применять при изучении и работе в ОС Linux. Хватит слов, приступим:

Работа в интерпретаторе

  • history – Отображает всю историю введенных команд
    • N – N-строк истории команд
    • -dN - удалить N-ю строку в истории команд (например введенный пароль)
  • !! - последняя введенная команда
  • !N - N-я команда в истории
  • !-N - команда, введенная N-шагов назад
  • !string - последняя команда, начинающаяся со string
  • !$ - последнее слово из предыдущего события
  • !?string? -последняя команда содержащая string
  • !!:s/новый/старый - замена в последней введенной команде, фразы старый на новый

Файловые команды

  • basename - Удаляет любой путь и указанный суффикс из имени файла (получает имя файла)
  • cd dir – сменить директорию на dir, при этом, если в текущем  каталоге нет подкаталога dir, то поиск dir происходит по каталогам, указанным в переменной $CDPATH
  • cp file1 file2– скопировать file1 в file2
    • -r – рекурсивно
    • -f или --force - попытаться удалить существующую цель, если в нее нельзя записывать.
    • -i или --interactive - интерактивно подтвердить попытку замещения существующего файла
    • -b или --backup - сделает резервную копию файлов, которые будут замещены.
    • -p - сохранить атрибуты копируемого файла (время, права и т.п.)
  • csplit - Разбивает заданный файл на несколько новых файлов в соответствие с заданными образцами или номерами строк и выдает количество байтов в каждом новом файле
  • ddif=/source/device of=/target/device bs=blocksize count=кол-во_блоков - копирование и преобразование файлов
  • dirname - Удаляет из имени файла суффикс, не являющийся директорием (получает имя каталога - путь)
  • ln file link – создать хардлинк link к файлу file
    • -s – создать символическую ссылку
  • ls– список файлов и каталогов
    • -a – со скрытыми
    • -l - форматированный одноколоночный список (выводится тип файла, права доступа к файлу, количество жестких ссылок на файл, имя владельца, имя группы, размер файлаr (в байтах), временной штамп и имя файла. Типы файлов могут принимать следующие значения: - для обычного файла, d для каталога, b для блочного устройства, c для символьного устройства, l для символической ссылки, p для PIPE (FIFO) и s для гнезда (socket).
    • -h - отображение размеров в человекопонятном (от human) виде (10M, 15K)
    • -i - вывод inode элементов
    • -t - сортировка по дате модификации (от старых к новым)/time
    • -S - отсортировать по размеру (от больших к маленьким)/size
    • -r - сортировка в обратном порядке
    • -R - список с подкаталогами
  • md5sum - Выводит или проверяет контрольные суммы Message Digest 5 (MD5)
  • mkdir dir – создать каталог dir
    • -p /path/to/three/{dir1,dir2,dir3} создание нескольких каталогов dir1,dir2,dir3 в каталоге /path/to/three/
    • -m permission - указание прав permission на создаваемый каталог
  • mv file1 file2 – переименовать или переместить file1 в file2. если file2 существующий каталог - переместить file1 в каталог file2
  • nl - Сообщает о количестве строк в указанных файлах
  • pwd – показать текущий каталог
  • readlink - Выдает значение указанной символической ссылки
  • rm file – удалить file
    • -r – удалить каталог
    • -f – удалить форсированно (без запроса)
    • -i или --interactive - интерактивно подтвердить попытку удаления файла
  • stat - Отображает статус файла или файловой системы
  • touch file – обновить время доступа к файлу file или создать file, если его нет
    • -c или --no-create - не создавать файл, если его не существует.
    • -d или -t - изменить время на указанное (формат указания времени в man touch)
  • more file – вывести содержимое file с возможностью прокрутки вверх/вниз
  • less File - аналог more
  • tee file - вывод данных, получаемых со стандартного ввода на стандартный вывод И в файл file. (команда называется "тройник")
  • fuser file - идентифицирует (если без параметров - отображает PID) процессы, использующие файл file
  • head file – вывести первые 10 строк file

Управление текстом

  • cut file - выделение из файла file указанных последовательностей и отправка на стандартный вывод
  • cat file – отображение содержимого file на стандартный вывод
    • -E - отображение концов строк
    • -n - нумерация строк
  • tac file – отображение содержимого file на стандартный вывод в обратном порядке
  • echo file - отображение содержимого file на стандартный вывод
    • echo string > file запись строки string в файл file (при наличии в файле других строк, файл перезаписывается)
    • echo string >> file ДОзапись строки string в КОНЕЦ файла file (при наличии в файле других строк, строка string дописывается в конец файла file )
    • -e - интерпретировать управляющие символы, такие как (\n - новая строка,\t -горизонтальная табуляция и т.п.)
  • expand - Конвертирует символы табуляции в пробелы
  • rev  file - Меняет в заданном файле порядок строк на обратный
  • seq - Выдает последовательность чисел из указанного диапазона с указанным значением приращения
  • shred - Удаляет указанные файлы, путем пере записывания на их место данных по сложным образцам, что усложняет восстановление удаляемых файлов
  • shuf - Перемешивает строки текста
  • sort - сортировка строк текстовых файлов по указанным параметрам
    • -k - указание номера поля, по которому сортируем
    • -t - разделитель
    • -n - числовая сортировка, т.е. сравнение ведётся по числовому значению (используют совместно с параметром -b)
    • -r - сортировка в обратном порядке
    • -R - в произвольном порядке
    • -u - исключение повторяющихся строк
  • tail file – вывести последние 10 строк file
    • -f – вывести содержимое file по мере роста, начинает с последних 10 строк
  • tailf file - аналог tail -f
  • wc File - печатает число строк, слов и байт в файле File
    • -c, --bytes - байтов
    • -m, --chars - символов
    • -l, --lines - строк
    • -L, --max-line-length - число символов в строе максимальной длины
  • tr string1 string2- символьное преобразование символов из string1 в string2(echo mama | tr abcd ABCD)
    • -s - замена повторяющихся символов на один
    • -d - убрать из вывода символы (abcd)
  • unexpand - Конвертирует символы пробелов в символы табуляции
  • uniq - Удаляются все повторяющиеся копии уже имеющихся строк

Управление системой

  • runlevel – вывести текущий " уровень выполнения
  • chkconfig - информация о запускаемых сервисах на разных уровнях запуска для RedHat- подобных дистрибутивов
    • --list - вывод всех установленных сервисов с уровнями запуска
    • service on/off - включение - on или отключение - off запуска службы service на всех уровнях запуска
    • --levels 23 service on/off - включение - on или выключение - off запуска службы service на всех уровнях запуска 23
  • update-rc.d service default - добавление демона service в автоматическую загрузку на уровни выполнения по умолчанию для Debian подобных дистрибутивов
  • ctrlaltdel hard или soft - Устанавливает для комбинации символов Ctrl+Alt+Del жесткую или мягкую перезагрузку (обычно используется в стартовом скрипте, например /etc/rc.local)
  • init n - указание процессу init перейти на уровень выполнения n
  • /etc/init.d/daemon command - (управление службами <a title="System V" href="http://www.k-max.name/linux/nachalo-etapy-zagruzki-os-linux-v-sxeme#init" target="_blank">системы инициализации SystemV</a>)  выполнение команды command над демоном daemon (наиболее часто используемые команды: start, stop, status, restart, reload - запустить демон, остановить, перезапустить, проверить статус, перечитать конфигурационный файл соответственно)
  • stty - управление настройками терминала
    • -a - вывод всех текущих настроек
    • sane - сброс настроек к настройкам по умолчанию
  • lscpu - вывод информации о ЦП
  • rtcwake - Используется для перевода системы в режим "сна", продолжающийся до тех пор, пока не настанет указанное время "проснуться"
  • telinit n - аналог (точнее символьная ссылка на init) init
  • <a name="upstart"></a>initctl - управление<a title="система инициализации upstart" href="http://www.k-max.name/linux/nachalo-etapy-zagruzki-os-linux-v-sxeme#upstart" target="_blank"> системой загрузки upstart</a>
    • check-config - проверить конфигурационные файлы Upstart
    • emit event - послать (эмитировать) событие event - upstart'у
    • help - отображение справки по командам initctl
    • list - отображение статуса задач
    • start jobd - запуск задачи/службы jobd
    • stop jobd - остановка задачи/службы jobd
    • status jobd - отобразить статус задачи/службы jobd
    • restart jobd - перезапуск задачи/службы jobd
    • reload jobd - перечитать конфиг задачи/службы jobd
    • reload-configuration - перечитать конфиги из /etc/init/
    • show-config - отобразить конфигурационный файл (когда запускается, останавливается, на какие события реагирует)
    • version - отобразить версию upstart
  • init-checkconf /path/to/file.conf - проверить конфигурационный файл upstart - /path/to/file.conf
  • start jobd/status jobd/stop jobd/restart jobd/reload jobd - аналог команд initctl start jobd и т.д. соответственно
  • shutdown n - переключается на уровень выполнения 1 (однопользовательский режим) через n минут (можно ввести вместо цифр - now, тогда уровень сменится моментально без ожидания)
    • -r переключается на уровень выполнения 6 (перезагрузка)
    • -h переключается на уровень выполнения 0 (выключение)
    • -c отмена запущенного переключения на какой-либо уровень выполнения.
  • reboot - перезагрузка, аналог shutdown -r now
  • halt - выключение, аналог shutdown -h now
  • watch command - запуск команды command через некоторые промежутки времени и отображение ее вывода в полный экран
    • -n sec - каждые sec-секунд
  • <a name="crontab"></a>crontab file - создание таблиц планировщика Linux из файла file
    • -u user - редактирование таблиц планировщика пользователя user
    • -l - отображение текущих заданий из crontab
    • -e - редактирование таблиц планировщика
    • -r - удаление задания планировщика
    • -i - запрос перед удалением заданий crontab

Управление печатью (CUPS)

  • lpstat – отображение статуса заданий, классов и принтеров
    • -a printer - отображение текущего статуса принтера printer
    • -c class - отображение текущего статуса класса class
    • -p printer - отображение текущего статуса принтера/очереди (включен или выключен) printer. Если не указан принтер, то отображается информация о всех принтерах.
    • -d - отображение текущих очередей печати.
  • lpr file - печать файла file на принтер по умолчанию (в новых версиях CUPS заменена на lp)
  • lpinfo - отображение доступных устройств принтеров и драйверов
  • lppasswd username - изменение пароля пользователя username в [ http://www.k-max.name/?p=2614 система печати CUPS ] в файл /etc/cups/passwd.md5
    • -a username - добавление нового пользователя username
    • -x username - удаление пользователя username
  • lpoptions - управление настройками принтера и отображение настроек.
  • lpadmin - настройка CUPS принтеров и класссов
  • accept очередь - включение возможности принятия в очередь заданий
  • reject очередь - отключение возможности приема новых заданий в очередь
  • enable очередь - запуск очереди очередь
  • disable очередь - остановка очереди печати очередь
    • -с очередь - отмена обработки печати всех документов в очереди (аналог "очистить очередь")
    • -r причина - указание причины очистки

Управление процессами

  • bg number – список остановленных и фоновых задач/продолжить выполнение остановленной задачи в фоне, имеющей номер number
  • fg number – выносит на передний план последние задачи
    • n – вынести задачу n на передний план
  • kill pid – убить процесс с id pid
    • -TERM pid - попытаться завершить процесс с pid - сигналом SIGTERM (этот сигнал может быть обработан или проигнорирован программой).
    • -KILL pid - Завершить процесс принудительно, убить процесс в независимости от его состояния сигналом SIGKILL (процесс не может проигнорировать сигнал)
  • killall proc – убить все процессы с именем proc *
  • lsof pid - просмотр открытых файлов, процессом с pid
  • nice -n value script - изменение приоритета запускаемого процесса script на значение, равное value (может быть от -20 до 19, в порядке уменьшения приоритета, т.е. -20 - самый высокий)
  • nohub <a class="b-pseudo-link">script </a>- разрешение запускаемому процессу script , быть устойчивому к закрытию (при выходе пользователя процесс продолжит свое выполнение)
  • nproc - Указывает число дочерних процессов, имеющихся в данном процессе
  • pgrep - Ищет процессы по их именам и другим атрибутам
  • pidof proc1 proc2 - вывести PID всех запрошенных процессов
  • ps – вывести ваши текущие активные процессы
    • -a - связанные с конкретным терминалом, кроме главных системных процессов сеанса
    • a - процессы, связанные с текущим терминалом, а также процессы других пользователей;
    • x - процессы, отсоединённые от терминала (демоны, службы)
    • -u - отображение пользователя (владельца процесса)
    • aux - вывод всех процессов в системе
    • lax - вывод всех процессов в системе (UID не преобразуется в имя пользователя)
    • -ejH - Вывод процессов в виде дерева
    • -С process -o col - вывод информации из колонки col о процессе process (col бывают следующие: USER - имя пользователя, PID, %CPU - % использования CPU, %MEM - % использования памяти, VSZ - виртуальный размер процесса, в Кб, RSS - объем используемой физической памяти, в Кб, TTY - идентификатор управляющего терминала, STAT - текущий статус процесса, м/б D - ожидание вв/выв, R - запущен, S - ожидание, T - остановлен, W - процесс выгружен на диск, X - процесс уничтожен, Z - зомби и др..., START - время запуска процесса, TIME - время ЦП для процесса, COMMAND - команда, запустившая процесс)
    • -u user - отобразить процессы пользователя user
  • pstree - команда отображает дерево запущенных процессов. (ИМХО-отличная программа, дает очень наглядное представление о запущенных процессах в системе)
    • -a - отображение процессов с аргументами запуска командной строки
    • -h - подсвечивает текущий процесс и его предков
    • -u - показывает UID процесса. (Когда uid процесса отличается от uid родителя , то новый uid показывается после имени процесса ,заключенным в круглые скобки)
  • pwdx - Сообщает о текущем рабочем директории процесса
  • sysctl - Модифицирует параметры ядра в режиме реального времени
  • top – показать все запущенные процессы в интерактивном режиме (с возможностью сортировки по загрузке ЦП/памяти/т.п.):
    • h - справка о программе
    • k - уничтожить процесс
    • n - число отображаемых процессов
    • u - сортировать по имени пользователя
    • M - сортировать по объему ОЗУ
    • P - сортировать по загрузке ЦП
    • r - изменить приоритет выполнения
    • q - выход
  • renice -value PID- изменение приоритета запуЩЕННОГО процесса с PID=PIDна значение, равное value (может быть от -20 до 19, в порядке уменьшения приоритета, т.е. -20 - самый высокий)

 

chmod - Права доступа на файлы/папки

  • chmod octal file– сменить права file на octal, раздельно для пользователя, группы и для всех, добавлением:
    • 4 – чтение (r)
    • 2 – запись (w)
    • 1 – исполнение (x)
    • Примеры:
      • chmod 777 – чтение, запись, исполнение для всех
      • chmod 755 – rwx для владельца, rx для группы и остальных.
    • -R - назначение указываемых прав всем дочерним элементам
  • chown user:group file – сменить владельцев file на user:group

SSH

  • ssh user@host– подключится к host как user
    • -p port – подключится на порт port
  • ssh-copy-id user@host – добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам

Поиск

  • grep pattern files– искать pattern в files
    • -r – искать рекурсивно pattern в dir
    • command | grep pattern – искать pattern в выводе command
    • -v - искать строки, не содержащие pattern (например можно найти все строки, не начинающиеся на комметарий и не пустые: grep -v '^#'| grep -v '^$')
    • -i - без учета регистра букв
    • -E - с интерпретацией регулярных выражений
    • -l - листинг файлов, содержащих строку в имени
  • locate file – найти все файлы с именем file
  • find path file - поиск файла file в каталоге path
      • -path - поиск по пути
      • -name - поиск по имени
      • -ipath или -iname - то есть с "i" - регистронезависимый поиск
      • -type d или f или l - поиск по типу файла: 'f' для регулярных файлов, 'd' для каталогов и 'l' для символьных ссылок соответственно (другие типы - в man find)
      • -size n - поиск файла по размеру (n может быть как n, как +n (более n), как -n (менее n), а так же для указания единицы измерения: nc - для байт, nk - для килобайт, nb - блоков)
      • -empty - поиск пустых файлов
      • -print - вывод всего что найдено
      • -ls - вывод найденного аналогично команде ls -lids
      • -exec command; - выполняет команду command для каждого файла (обязательно заканчивается ; ),
      • -mtime n - поиск файла по времени модификации
      • -atime n - поиск файла по времени доступа
      • -daystart - указание на отсчет времени от полуночи
      • -mmin n - указание времени модификации от текущего времени в минутах
            find . -size -26c -size +23c -exec ls -l '{}' \;
      • данный пример ищет файлы размером от 23 байт до 26 и с найденным выполняет команду ls -l.
            find /folder -perm +4000
    • данный пример ищет файлы с битом SUID в каталоге /folder.

Работа с переменными

  • env - работа с переменными окружения (от environment - окружение), без параметров - вывод всех имеющихся
  • peremennaya="znachenie" - присвоеное переменной peremennaya значения znachenie (кавычки желательно использовать на случай, если в переменной несколько подряд идущих символов пробела или табуляции)
  • printenv - Выдает значения переменных среды окружения
  • unset $peremennaya - удаление переменной
  • readonly peremennaya - установка переменной значения "только для чтения", то есть запрет изменения значения переменной. (без аргументов - вывод всех переменных, помеченных только для чтения)
  • export peremennaya - экспорт переменной peremennaya для родительских процессов
  • set arg1 arg2 arg3 ... argn - установка позиционных переменных $1 $2 $3 ... $n на основании arg1 arg2 arg3 ... argn
    • -a (allexport) - экспортирует все инициализируемые переменные
    • -f (noglob) - указывает интерпретатору не развертывать имена файлов
    • -n (noexec) - указывает интерпретатору развертывать команды, но не выполнять их
    • -t (exit) - читает и выполняет одну команду, а затем прекращает работу
    • -u (nounset) - возвращать ошибку при развертывании пустой переменной
  • declare -atr +atr peremennaya - устанавливает (символ - минус) или снимает (символ + плюс) атрибуты atrу переменных (если без указания переменной - то вывод всех переменных с указанным атрибутом)
    • -a - объявление переменной массивом
    • -f - объявление переменной - именем функции
    • -i - пометить переменную для хранения целых числовых значений
    • -r - объявление переменной "только для чтения"
    • -x - пометка переменной для экспорта

Системная информация

  • date – вывести текущую дату и время
    • [ммддччмм[гг]].сс - установка даты и времени (мм - месяц, дд - дата, чч - час, мм - минут, гг - год, сс - секунд)
  • cal – вывести календарь на текущий месяц
  • uptime – показать текущий аптайм
  • uname – показать информацию о ядре
    • -s - Показать имя ядра (информация выдается по умолчанию, если ни одна опция не указана)
    • -n - Показать имя хоста.
    • -r - Показать номер выпуска ядра. Эта опция часто используется с командами управления модулями.
    • -v - Показать версию ядра.
    • -m - Показать имя аппаратной платформы (CPU).
    • -o - Показать имя операционной системы.
    • -a - Показать всю возможную информацию.
  • cat /proc/cpuinfo – информация ЦПУ
  • cat /proc/meminfo – информация о памяти
  • df – показать инф. о использовании дисков
    • -t - указание типа ФС
    • -h - в "понятном" виде
    • -T - отображение типа ФС
    • -i - отображение информации об inode
    • -x fstype - исключение вывода по типу ФС
  • du – вывести “вес” текущего каталога
    • -s - с подкаталогами
    • -h - в "понятном" виде
    • -m - вывод в мегабайтах
  • dmidecode - информация о железе, берется из API DMI (пакет pmtools)
    • -t- указать тип устройства
      • -t 17 - информация о памяти
    • -q - вывод меньшей информации
  • free – использование памяти и swap
  • whereis file– отображение расположения файла file
  • which app – отображает путь к команде app
  • type app - аналог каманды which
  • enable - вывод встроенных в интерпретатор команд
  • lshw - обтображение списка устройств
  • lsmod - список подключенный модулей ядра
  • modprobe modulemane - добавления и удаления модулей ядра Linux
  • modinfo modulename - информация о модуле modulename
    • -F param - отображение только параметра param для модуля

Справочная информация

  • man command – показать ман-страницу для command
  • info command - показать info-страницу для command
  • whatis command – поиск man-страницы для command и отображение информации об имени из соответствующей man-странице
  • apropos command - поиск по ключевым словам в man-страниц и выводит те, которые содержат command(по существу, это аналог команды man -k, где ключ k - указывает на поиск в руководстве по ключевому слову)
    • editor - отобразит имеющиеся в системе текстовые редакторы

Архивация

  • bzcat/bzdiff/bzegrep/bzfgrep/bzgrep/bzless/bzmore - Запуск команды bzcat/bzdiff/bzegrep/bzfgrep/bzgrep/bzless/bzmore соответственно для файлов, заархивированных с помощью bzip
  • tarcf file.tar files– создать tar-архив с именем file.tar содержащий files
    • с - создать архив
    • t - вывести содержимое архива
    • r - дописать в архив
    • x - распаковать архив
    • j - использовать сжатие Bzip2 (*.bz2)
    • z - использовать сжатие Gzip (*.gz)
    • v - выводить отладочную информацию
    • f - название файла архива
  • gzip file – сжать file и переименовать в file.gz (без указания файла - сжатие с stdin)
    • -l - отобразить содержимое архива
    • -d - распаковать архив, исходный удалить
  • zcat/zcmp/zdiff/zegrep/zfgrep/zgrep/zless/zmore - Запускает команду cmp для файлов, заархивированных с помощью gzip
  • zcat file.gz - просмотр содержимого архива file.gz
  • gunzip file.gz– распаковать file.gz в file
    • - отправить вывод на stdout

Управление NFS

    • showmount host - отобразить список хостов, которым разрешено монтировать эксп ортированные файловые системы на хосте host (без указания параметра host будет выведена информация с локальной системы);
      • -a - вывести полную информацию об экспортированных иерархиях (хост/strong– вывести первые 10 строк fileempstree n - поиск файла по размеру (n может быть как n, как +n (более n), как -n (менее n), а так же для указания единицы измерения: nc - для байт, nk - для килобайт, nb - блоков) - каталог)
      • exportfs – управление экспортированными каталогами
        • -a - экспорт всех иерархий из /etc/exports, но не разэкспортирует удаленные элементы.
        • -i - игнорирует файл /etc/exports и использует только параметры из командной строки.
        • -o - задает опции экспорта (обычно используют с -i), например
          exportfs -i -o ro hostname:/folder/subfolder
          # экспортирует файловую систему <em>/folder/subfolder</em> из локальной системы в систему <em>hostname</em> только для чтения (<em>ro</em>)
        • -r - реэкспортирует элементы файла /etc/exports и удаляет неверные записи из /var/lib/nfs/xtab
        • -u - разэкспортирует иерархию
        • -v - "говорительный" режим )
        • Дополнительно тут: Использование NFS

Сеть (DNS)

      • ipcalc - калькулятор сети
      • ethtool interface - отобразить физическую статистику интерфейса interface;
      • ping host – пропинговать host и вывести результат
# # несколько примеров команды ping, выводящие локальное время
ping -I 10.234.4.2 10.224.10.2 | awk '{if($0 ~ /bytes from/){print strftime()" *** "$0}else print}'
ping -I 10.234.4.2 10.224.10.2 | while read pong; do echo "$(date) *** $pong"; done
ping -I 10.234.4.2 10.224.10.2 | perl -nle 'print scalar(localtime), " *** ", $_'
      • whois domain – получить информацию whois для domain
      • traceroute host - трассировка маршрута до определенного хоста
      • <a name="ifconfig"></a>ifconfig eth0 - отображение/настройка параметров сетевого интерфейса etho (либо другого, если без указания интерфейса - отобразит конфигурацию всех интерфейсов)
        • inet ip.add.re.s - задание ip адреса интерфейса (TCP/IP)
        • mask xxx.xxx.xxx.xxx - задание маски подсети интерфейса
        • broadkast xxx.xxx.xxx.xxx - задание широковещательного адреса интерфейса
        • up - запустить интерфейс
        • down - остановить интерфейс
        • -a - отображение всех железных интерфейсов (в том числе и не поднятых и поднятых)
      • <a name="route"></a>route - отображение таблицу маршрутизации
        • -n - не резолвить имена в адреса
        • add destination gw gateway metric metric - добавить маршрут (add) для destination (адрес назначения), IP адрес шлюза (gw) - gateway, с метрикой metric
          • add -net -указание добавить маршрут для сети
          • add - host -указание добавить маршрут для хоста
        • del destination - удалить маршрут с назначением destination
      • mtr host - отображение статистики трассировки до хоста host (красивее чем трасероут <img src="http://www.k-max.name/wp-content/plugins/qipsmiles/smiles/smile.gif" alt=":)" title=":)"> )
      • netcat host port - просмотр, кто слушает порт
      • nc - TCP/IP швейцарсий нож <img src="http://www.k-max.name/wp-content/plugins/qipsmiles/smiles/smile.gif" alt=":)" title=":)">
        • -h - отобразить помощь
        • -l port - прослушивать локальный порт port для входящих соединений.
      • netstat -отображение статистики сети
        • -r - таблица маршрутизации
        • -n - без разрешения IP адресов в имена и сетевых портов в названия
        • -a - состояние всех (во всех состояниях) соединений на локальной машине
        • -t - статистика по протоколу TCP
        • -u - статистика по протоколу UDP
        • -i - отобразить статистику сетевых интерфейсов
        • -l - просмотр сокетов, слушающих (LISTEN) соединения (ожидающих соединения)
        • -p - отобразить имя программы и PID (process ID), с которой взаимодействует сокет
        • примеры:
[root@proxy ~]# netstat -ai
Kernel Interface table
Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500   0 36017870      0     31      0 42781870      0      0      0 BMRU
eth1       1500   0 43918739      0      0      0 34393308      0      0      0 BMRU
eth2       1500   0  3220106      0      0      0  3666398      0      0      0 BMRU
lo        16436   0 15429640      0      0      0 15429640      0      0      0 LRU
ppp0       1246   0    14047      0      0      0     1576      0      0      0 MOPRU
ppp1       1246   0     1329      0      0      0     1941      0      0      0 MOPRU
      • nmap host - просканировать порты на хосте host
        • -p ports - просканировать указанные порты
        • -o - определить ОС при сканировании порта
      • tcpdump - анализатор заголовков пакетов
        • -n - не преобразовывать IP в DNS
        • -i interface - указать какой интерфейс слушать
        • port nn - указать вывод только nn порта
        • -w file - сохранять вывод в файл file
      • wget file – скачать file
        • -c – продолжить остановленную закачку
      • <a name="dns"></a>dig domain – получить DNS информацию о domain
        • -x 1.2.3.4 – реверсивно искать данные о хосте 1.2.3.4 (то есть найти данные для 4.3.2.1.in-addr.arpa.)
        • @ns.server - источником информации о DNS - использовать ns.server
        • SOA|MX|A|NS - указать тип получаемой записи
        • +short - получение коротких отчетов
        • +nocomments - отключить комментарии в отчете
        • +trace - включение трассировки поиска запрашиваемого значения
        • -f file - запуск построчно команды dig с параметрами, указанными в каждой строке файла file
      • named-checkzone zone_name /file/name/zone - проверяет синтаксис файла зоны /file/name/zone
      • named-checkconf- проверяет синтаксис файла named.conf
        • -z - проверка named.conf с проверкой корректности файлов зон
      • nslookup- интерактивные запросы к DNS
        • host - отобразить основные (A и MX) записи хоста host
        • -debug - включить режим отладки
        • -type=SOA|MX|A.... - вывод указанного типа ресурсной записи
        • host ns.server - получить информацио о хосте host с DNS сервера ns.server
      • host domain - получить DNS информацию о домене domain
        • -a - вывести все записи зоны
        • -d - отладка
        • -t A|MX... - указание типа ресурсной записи
        • -v - вывод подробной информации
        • host ns.server - узнать информацию о хосте host  с DNS сервера ns.server

Управление программным обеспечением

      • Установка из исходников:
[mc-sim@ASUS /]$ wget http://www.site.com/packege.tar.gz # получаем архив packege.tar.gz с сайта http://www.site.com/
[mc-sim@ASUS /]$ tar xzvf packege.tar.gz                 # распаковываем архив packege.tar.gz
[mc-sim@ASUS /]$ cd packege                              # переходим в каталог с распакованным архивом
[mc-sim@ASUS /]$ less README или INSTALL                 # читаем файл README или INSTALL, обычно в них описан
HOWTO INSTALL                                            # процесс установки, если нет, то выполняем команды:
....
[mc-sim@ASUS /]$ ./configure
[mc-sim@ASUS /]$ make
[mc-sim@ASUS /]$ make install
      • <a name="apt"></a>apt-get- вывод информации о команде управления пакетами apt-get
        • install pakage - установка пакета pakage
        • remove pakage - удаление пакета pakage
          • --purge - удаление вместе с пакетом конфигурационных файлов
        • check - проверка дерева зависимостей пакетов
        • update - обновление локального списка пакетов
        • upgrade - обновление всех пакетов, не требующих инсталляции (обновляются только те, которые установлены и те, которые зависят от уже установленных)
        • dist-upgrade - обновление пакетов системы с инсталляцией новых пакетов (обновляются все пакеты, в том числе и не инсталлированные)
      • apt-cachesearch pakage - выполняет полный поиск текста pakage по всем доступным файлам пакетов по заданному шаблону. Команда просматривает имена пакетов и описания, для поиска определенной строки, а также выводит имя пакета и его краткое описание.
      • <a name="ldd"></a>ldd /path/program - вывести список библиотек общего доступа от которых зависит программа /path/program
      • strace program - трассировка системных вызовов команды program. (очень полезна для отслеживания попыток программы открыть конфиг/библиотеку и т.п.)
        • -e write - указать параметр фильтрации, в данном примере - отслеживать системные вызовы write (часто используется open)
        • -f - отслеживать системные вызовы потомков (желательно использовать)
        • -o file - вывод трассировки в файл file
      • ldconfig - пересоздание<a title="конфигурационные файлы ld.so" href="http://www.k-max.name/linux/fajlovaya-sistema-linux-i-struktura-katalogov#ldso" target="_blank"> кэша библиотек общего доступа</a>
      • dpkg -i pkg.deb– установить (или обновить) пакет (Debian)
        • -r (--remove) pkg.deb - удаление пакета pkg.deb с сохранением конфигов
        • -P (--purge) pkg.deb - удаление пакета pkg.debс удалением конфигов
        • -l (--list) - отобразить установленные в системе пакеты
        • --search /bin/file - узнать какому пакету принадлежит файл
        • --status pkg или --info pkg - показать информацию о пакете pkg
        • --contents pkg.deb - показать состав пакета pkg.deb
      • netselect-apt- выбор быстрых зеркал для менеджера пакетов
        • stable|testing|unstable|experimental|woody|sarge|etch|sid - указать тип версии репозитория.
        • -o, --outfile file - указать выходной файл с репозиторием
        • -f - использовать FTP репозитории вместо http.
      • rpm - (без параметров) вывод версии пакетного менеджера
        • -i pkg.rpm – установить пакет (RPM) pkg.rpm
        • -v - вывод информации на экран при установке/удалении
        • -q- вывод краткой информации о пакете (версия)
          • -a - вывод информации о всех установленных пакетах
          • -f file - Запросить пакет, которому принадлежит файл file
          • -i pkg.rpm - вывод полной информации об установленном пакете pkg.rpm
          • -l pkg.rpm- Запросить список файлов в пакете pkg.rpm
        • -ivh - установка пакета с выводом доп инфо
        • -Uvh - обновление имеющегося пакета с выводом доп инфо
        • -e - удаление пакета
        • -qpl pkg.rpm - вывод информации о файле пакета pkg.rpm
        • -R - Запросить список пакетов, от которых зависит этот пакет
        • --initdb - инициализация базы данных RPM (создает структуру файлов в каталоге /var/lib/rpm, содержащих информацию о пакетах, зависимостях и т.п.)
        • --nodeps - не обращать внимания на зависимости

Управление пользователями и группами

      • last - Показывает, какие пользователи последними входили в систему (и покидали ее), выполняя для этого поиск в файле /var/log/wtmp в обратном порядке; также показывает информацию о загрузках системы, ее остановках и изменениях ее уровней запуска
      • lastb - Показывает неудачные попытки входа в систему, которые записаны в файле /var/log/btmp
      • w – показать пользователей онлайн
      • whoami – имя, под которым вы залогинены.
      • finger user@host – показать информацию о user (без указания пользователя - выведет список пользователей, залогиненых в системе) на хосте host, утилита не чувствительна к регистру символов
      • write user [terminal] - начать сеанс общения с пользователем user на терминале terminal
      • talk user@host - чат с пользователем user на компьютере host
      • wall message - разместить сообщение message на всех терминалах.
      • mesg y/n - включение - y и выключение - n возможности принимать сообщения на консоли
      • su user - создание оболочки (подоболочки текущей оболочки) с правами пользователя user (без указания пользователя - вызывается оболочка root)
        • -, -l, --login - все 3 параметра имеют одно значение - загрузить окружение вызываемого пользователя (выполняются все стартовые сценарии и подгружаются переменные окружения вызываемого пользователя)
        • -с command - выполнить команду command с правами суперпользователя и "понизить" права в исходные после завершения команды.
      • useradd user - добавление нового регистрационного имени пользователя user в системе
        • -g group - задает основную группу (primary group) для нового пользователя. По умолчанию используется стандартная группа, указанная в файле /etc/default/useradd.
        • -d dir - доманий каталог (home directory) нового пользователя. По умолчанию используется $HOMEDIR/user
        • -s shell - полный путь к программе (шеллу), используемой в качестве начального командного интерпретатора для пользователя
        • -m - Создает начальный каталог нового пользователя, если он еще не существует. Копирует скелетные файлы и другие каталоги из /etc/skel в домашний каталог.
        • -b - Базовый каталог по умолчанию, в котором создаются домашние каталоги пользователей. Обычно это /home, а пользовательские каталоги — /home/$USER.
        • -c "text text" - Текстовая строка для описания id, содержащая, например, полное имя пользователя.
        • -e YYYY-MM_DD - Дата, когда учетная запись потеряет силу или будет заблокирована.
        • -G gr1,gr2,gr3 - Список дополнительных групп, которым принадлежит пользователь.
        • -o - Позволяет создать пользователя с неуникальным id.
        • -u - Неотрицательное цифровое значение id пользователя, которое должно быть уникальным, если не определено иначе опцией -o. По умолчанию используется самое маленькое значение, не меньше, чем UID_MIN, причем больше, чем id любого из существующих пользователей.
      • usermod user - изменение настроек пользователя с именем user в системе
        • аналогичны всем вышеуказанным для useradd
        • -L - блокировка учетной записи
        • -U - разблокировка учетной записи
      • userdel user - удаляет пользователя user из системы
        • -r - удаление домашнего каталога пользователя
      • users - Выдаются имена пользователей, которые в текущий момент зарегистрированы в системе
      • groupadd group - добавление (создание) новой группы group в системе
        • -f - Выйти со статусом успешного выполнения, если группа уже существует. Удобна при написании скриптов, когда нет необходимости проверять, существует ли группа, прежде чем пытаться ее создавать.
        • -g - Задать id группы вручную.
        • -o - Разрешить группу с неуникальным id.
      • groupmod group - изменение информации о группе group в системе
        • -n group2 задание нового имени group2
      • groupdel group - удаление группы group из системы
      • passwd user - изменяет/устанавливает пароль пользователя user
        • -l - блокирование учетной записи
        • -d - удаление пароля учетной записи (блокирование)
        • -f - установка даты прекращения полномочий
        • -n - минимальное время действия пароля в днях
        • -x - максимальное время действие пароля в днях
        • -w - число дней появления предупреждения об окончании действия пароля
        • -i - число дней, после которых пароль потеряет силу и учетка заблокируется.
        • -S - вывод сообщения о статусе пользователя
      • gpasswd group - изменяет/устанавливает пароль группы group (Наличие пароля группы позволяет пользователям временно войти в группу при помощи команды newgrp, если им известен пароль группы.)
      • id who - просмотр информации о пользователе/группе who (принадлежность к группам, UID, GID)
      • ulimit - ограничение пользовательских ресурсов:
        • -a - отображение всех возможных ресурсов
        • -f - ограничение размера файла
        • -t - процессорное время
        • ...

 

Управление блочными устройствами (работа с разделами на жестком диске)

      • fdisk /dev/block_device- интерактивное редактирование таблицы раздела блочного устройства /dev/block_device
        • -l - отображение таблицы разделов устройства.
      • badblocks - Поиск плохих блоков на устройстве (обычно на дисковом разделе)
      • blkid /dev/sda1 - определяет и выдает атрибуты блочного устройства (без параметров - атрибуты всех блочных устройств)
      • dumpe2fs - Выдает информацию о суперблоке и группе суперблоков файловой системы, присутствующей на указанном устройстве
      • e2freefrag - Сообщает информацию о фрагментации свободного пространства
      • e2image - Используется для сохранения в файле данных, критичных для файловой системы ext2
      • e2initrd_helper - Выдает тип файловой системы для указанной файловой системы; указывается имя или метка устройства
      • e2label - Отображает или изменяет метку файловой системы в файловой системе ext2, присутствующей на заданном устройстве
      • e2undo - Выдает информацию, касающуюся отмены действий, из журнала undo_log файловой системы ext2/ext3/ext4, расположенной на устройстве. Может использоваться программой e2fsprogs для отмены неверно выполненной операции.
      • filefrag - Сообщает о том, насколько сильно может быть фрагментирован конкретный файл
      • findfs LABEL=label или UUID=uuid Поиск файловой системы по метке или по универсальному уникальному идентификатору Universally Unique Identifier (UUID)
      • logsave - Сохраняет данные, выдаваемые командой, в журнальном файле.
      • lsattr - Выдает списки атрибутов файлов второй расширенной файловой системы.
      • mkfs -t type /dev/block_device - создание файловой системы type на устройстве /dev/block_device
        • -L - указание метки тома
        • существуют аналоги команды, которые позволяют не использовать опцию -t, аналоги можно посмотреть командой:
            ls /sbin/mk*
      • e2labael /dev/block_device newlabel - задание метки тома newlabel для устройства /dev/block_device
      • tune2fs /dev/block_device newlabel - изменение параметров ФС ext2/ext3
        • -j - добавление журналирования для ext2 (преобразование в ext3)
      • mkswap /dev/block_device newlabel - создание раздела SWAP (раздела подкачки на устройстве /dev/block_device< newlabel)
      • swapon - подключение (монтирование) раздела подкачки
      • swapoff - отключение (размонтирование) раздела подкачки
      • fsck /dev/block_device - проверка и исправление ФС на устройстве /dev/block_device или перечисленных в /etc/fstab и имеющих в поле pass, значение отличное от 0. С увеличением числа - уменьшается очередность сканирования. То есть поле pass со значением 1 будет проверено первым, со значением 2 - вторым и т.д.
        • -AR - проверка всех файловых систем, отмеченных для проверки в /etc/fstab (A), кроме корневой (R)
        • -a - автоматическое подтверждение всех запросов на исправление системы
        • - проверка всех сбойных блоков
        • -v - вывод текстовых сообщений во время проверки
        • у команды есть аналоги для каждого типа ФС, аналоги можно просмотреть командой:
             ls /sbin/*fsck*
      • mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sda[5-8]- создание RAID массива на устройстве /dev/md0, уровня 5, из 3х дисков, c одним hot spare, в массив включить файловые системы на диске /dev/sda - с 5 по 8.
        • -f /dev/sdaN - пометить раздел /dev/sdaN сбойным
        • -r /dev/sdaN - пометить раздел /dev/sdaN извлеченным
        • -a /dev/sdaN - добавить раздел /dev/sdaN в массив
      • mount device dir - монтирование/подключение файлового устройства device в каталог dir (запуск без параметров выводит список уже смонтированных устройств)
        • -a - монтирование всех файловых систем, указанных в /etc/fstab (включая те, которые имеют параметр noauto)
        • -t fstype - указание типа файловой системы (ntfs, nfs, ext3 и т.п.)
        • -h - помощь
        • -r - монтирование в режиме только чтения
        • -o parametr=znachen- устанавливает параметры монтирования:
          • conv=auto - автоконвертирование текста их формата MSDOS в UNIX (замена символа конца строки CR-LF на LF)
          • ro - монтирование в режиме только для чтения
      • umount dir/mount_point - размонтирует файловые системы
        • -a - размонтирование всех файловых систем, указанных в /etc/fstab, кроме корневой
      • quotacheck - проверка установленной квоты на разделах
      • quotaon - установка квот на разделах
      • quotaoff - отключение квот на разделах
      • edquota - отключение квот на разделах
      • partprobe /dev/device - перечитать таблицу разделов устройства /dev/device (обычно используется после внесения изменений в таблицу разделов командой fdisk, если ядру не удалось это сделать автоматом)
      • uuidd - Демон, используемый библиотекой UUID для создания безопасных и гарантированно уникальных идентификаторов UUID
      • uuidgen - Создает новые идентификаторы UUID. Каждый новый идентификатор UUID может обоснованно считаться уникальным среди всех идентификаторов UUID, созданных как на локальной машине, так и на любых других машинах, как в прошлом, так и в будущем.
      • resize2fs /dev/раздел размерM - изменение размера раздела /dev/раздел до размера размерM(в мегабайтах)
        • -p - выводить информацию

На сегодня это все. Еще хочу дать ссылочку на отличную шпаргалку, как говориться мастхэв, распечатал и повесил на стенку рядом с монитором:[ http://www.k-max.name/wp-content/uploads/2010/06/Linuxcommand.pdf" Команды Linux] Нашел ее [ http://fosswire.com тут ]

С Уважением, Mc.Sim!


Решение частых проблем

[1]http://www.opennet.ru/base/sys/bash_tips.txt.html

Потоковый редактор SED

[2]http://linuxgeeks.ru/sed.htm

Неплохая шпаргалка по командам Linux

http://putty.org.ru/

Еще одна хорошая шпаргалка с примерами

http://www.zabrosov.ru/

Полезный портал с примерами

linuxshare.ru

Запуск Xorg приложений из ssh

ssh -X user@host.ru имя программы например iceweasel

Автозапуск приложений из xorg

ставим icewm

в /etc/rc.local вставляем

su user -c "startx" 
А в USER$/icewm/autostart пишешь свою программу (/bin/bash)

Linux low level format - LLFormat

Пример низкоуровнего форматирования носителя:

dd if=/dev/zero of=/dev/sdX

Снятие и Восстановление загрузочной области утилитой dd

команда снятия загрузочной области:

dd if=/dev/sda of=bootsect.bin bs=512 count=1

восстановление загрузчика:

dd of=/dev/sda if=bootsect.bin bs=512 count=1

Подавление всех сообщений в том числе и ошибок

$ ls >myfile.txt 2>myfile.err

или

$ ls 2>/dev/null

At или Выполнение, останов и повторный запуск процессов

Создаем сервер USB Over IP на базе Linux

Довольно долго мне приходилось сталкиваться с ситуацией, при которой мне нужно было продолжать использовать физический сервер, хотя почти вся инфраструктура виртуализирована. Причиной этому было отсутствие подддержки USB устройств в самых разнообразных платформах виртуализации. В частности я использую Xen, а на сервере, который я хотел бы виртуализировать должен быть подключен USB ключ.

Конечно можно использовать аппратное оборудование, например USBoverIP, однако оно стоит значительных денег. И вот наконец решение найдено. Я обнаружил отличный бесплатный проект , доступный по этому линку - http://usbip.sourcefrge.net/

С помощью него можно преврать Linux систему в USB сервер, обслуживающий USB девайсы через IP для клиентов как под управление Linux, так и Windows.


Настройки сервера

1- Скачайте последний пакет по ссылке http://downloads.sourceforge.net/project/usbip/usbip/usbip-win-preview/usbip-win.zip?use_mirror=ignum

Я тестировал все под Ubuntu Karmic, поэтому мне необходимо было выполнить следующую команду:

usbip:~$ sudo aptitude install usbip

Затем необходимо загрузить следующие модули для возможности контролировать USB порты.

usbip:~$ sudo modprobe usbip
usbip:~$ sudo modprobe usbip_common_mod

Теперь запустим usbip в качестве системного демона:

usbip:~$ usbipd -D
Bind usbip.ko to a usb device to be exportable!
usbip:~$ 

Это означает что все идет по плану и нам необходиом выбрать порт, который будет расшариваться.

1- Подключите USB устройство к компьютеру

2- Выполните команду

lsusb

Для поиска соответствующего индентификатора Vendor/Device ID, который имеет следующую форму:

Bus XXX Device YYY: ID VendorID:DeviceID
Know that to find your favourite hardware ID, you can locate its possition on the BUS. Just match the ID with the result of usbip server check:
usbip:~$ sudo usbip_bind_driver --list
busid 1-6 (0c45:63ee)
               1-6:1.0 -  > uvcvideo
             1-6:1.1 -    > uvcvideo

Из этой команды нам становиться известне bus-ID, указывающий на USB устройство. В данном случае это "1-6".

Теперь подключаем устройство к серверу:

usbip:~$ sudo usbip_bind_driver --usbip 1-6

После выполнения данной команды система будет передавать данные о USB устройстве с вашей системы удаленным клиентам.

Настройки клиентов

  • Клиент MS Windows

Скачайте zip версию клиента по ссылке http://ignum.dl.sourceforge.net/project/usbip/usbip/usbip-win-preview/usbip-win.zip

Распакуйте её и выполните два простых шага.

Первое:

В архиве есть файл "bus.inf", который вам необходимо установить как "Generic system device" в своей системе.

Второе:

Выполните следующую команду из командной строки:

path-to-usbip:> usbip.exe -l <server-ip>

В результате выполнения этой команды вы увидите bus-ID, найденные на сервере.

Теперь подключите устройство следующей командой:

path-to-usbip:> usbip.exe -a <server-ip> USB-ID
** USB-ID в нашем случае 1-6.

Все!!! Вы увидите новое USB устройство, обнаруженное вашей системой.


  • Клиент Gnu/Linux

В качестве клиента я тестировал дистрибутив Ubuntu Karmic

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

 $ sudo apt-get install usbip

Загрузите модуль "vhci-hcd":

$ sudo modprobe vhci-hcd

Теперь вы можете опросить сервер на наличие расшаренных USB устройств:

$ sudo usbip -l <server-ip>

А потом и подключить нужное устройство следующей командой:

$ sudo usbip -a <server-ip> X-Y

Настройка dns сервера

устанавливаем необходимые пакеты:

apt-get install resolvconf

только после этого ставим bind9 во избежание конфликтов...

apt-get install bind9

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

editor /etc/default/bind9

изменяем параметр на указанный ниже:

RESOLVCONF=yes

дальше изменяем параметр dhcpclient

editor /etc/dhcp/dhclient.conf

добавляем:

prepend domain-name-servers 127.0.0.1;

перезапускаем службы:

/etc/init.d/bind9 restart
ifdown eth0
ifup eth0

для внутренней сети в настройках /etc/network/interfaces пропишите dns-nameservers 127.0.0.1
пример:

auto eth0
iface eth0 inet static
       address 10.10.1.1
       netmask 255.255.255.0
       network 10.10.1.0
       broadcast 10.10.1.255
       dns-nameservers 127.0.0.1
       dns-search home.local

Восстановление удаленных файлов на ext3/ext4

Команды проверки наличия сети

для всех сетевых карт:

ip link

или

mii-tool

опреление настроек сети:

ifconfig
route

Утилиты контроля состояния трафика и не только для сервера

Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

top

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

atop

Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.

htop

В отличие от atop, htop не собирает статистику и просто показывает текущее состояние. Второе яркое отличие — нортоноподобная панелька с подсказками кнопок снизу и возможность «навигации» по списку процессов.

Поддерживает выделение процессов и выполнения над ними групповых операций (впрочем, с форк бомбой им не справиться).

Общей статистике по системе показыват мало (зато с шкалой а-ля прогресс-бар), зато имеет обширнейшие инструменты для анализа процессов, включая баловство с скедулингом (приоритеты, affinity), просмотр списка открытых файлов, strace и массу мелких, но приятных фич, таких как контекстный поиск по имени процесса, режим «слежения» за процессом, быстрые операции с процессом и т.д.

iotop

Специализированная утилита для анализа потребления дисковой полосы. К сожалению, не показывает иопсы (это вообще возможно?) Благодаря показу kernel threads способен указать на kcopy/swapper/kflush как источник хруста винта (чего не может atop). Заодно показывает общую загруженность IO системы в Мб/с (чего так же не может atop). Довольно быстрый.

iftop

Опять же, специализированная утилита, позволяющая наблюдать за трафиком в реальном времени. Требует очень рутовых прав и pcap, т.к. работает почти аналогичо tcpdump'у. Показывает загруженность интерфейса (поддерживается только один интерфейс в одной копии), направления трафика и интенсивность трафика.

На средне-загруженном сервере, который внезапно начал жрать инет позволяет очень быстро найти направление, в которое идёт больше всего трафика (в любую сторону). К сожалению, не показывает распределение трафика по процессам.

powertop

Специализированная (ага, снова) утилита от intel для мониторинга потребления мощности (электрической мощности!) разными процессами. В реальности никаких ваттов не показывает, а показывает время, затраченное на обслуживание процессором. Уникальна тем, что показывает прерывания и прочие события ядра на одном уровне с процессами (что позволяет находить нетривиальные ситуации перегрузки сервера и даже определять, от какой железки это исходит). При равной нагрузке позволяет оценить, чей драйвер шустрее работает.

Кроме того, во вкладке device stats позволяет оценить степень загруженности устройства (точнее, драйвера устройства). Для сетевых карт (включая виртуальные, типа tun) показывает pps (packets per seconds).

Во вкладке idle status показывает распределение состояний процессора (C1, C2, C3), что весьма полезно при выяснении «батарейка дохлая или что-то не так с системой?» на ноутбуках.

itop

Ну очень специализированная утилита для мониторинга прерываний (настоящих прерываний, идентификацией их по номеру).

kerneltop Наверное, должен показывать что-то интересное про ядро. У меня дома ему не понравился System.map, а на сервере — отсутствие /proc/profile.

dnstop

Специализированный анализатор DNS-трафика на интерфейсе. Наверное, был бы очень полезен при починке DNS на контроллере домена, к сожалению, Active Directory на линуксе работает не очень хорошо.

Безусловно полезно для нахождения засранца, загоняющего бинд в неприличный LA.

jnettop

Почти клон iftop, однако имеет забавный режим, когда может слушать соседей и показывать top по их трафику. Не очень работает в эпоху коммутаторов.

Ещё умеет агрегацию адресов (так, чтобы показывать их трафик одной строкой).

sntop

Замечательная штука для скринсейвера или публичного монитора — по конфигу рассылает пинги и показывает, если какой-то хост лёг. В принципе, в рабочих условиях при настроенном конфиге позволяет быстро оценить состояние не очень большого парка серверов (запустили — и сразу красным видно, кто лежит).

latencytop

Я бы с интересом на него посмотрел, но оно требует особого конфига ядра…

xrestop

Монитор потребления ресурсов X-сервера разными приложениями, которые к нему подключились. (Обнаружил, что хром жрёт ресурсов х-сервера много больше, чем опера).

slabtop

Специализируется на структурах данных SLAB ядра, фактически, показывает использование памяти в более тонких категориях, чем «свободно/занято/кеш». View only, несколько режимов сортировки.

Software specific


apachetop

Не столь полезен, как хотелось бы, показывает статистику ответов на запросы. Никакой магии, просто читает логи апача.

sqtop

Топ по логам сквида. С учётом скорости их роста, сначала генерирует промежуточную статистику, а потом уже даёт по ней шариться.

pg_top

Пакет в debian почему-то называется ptop. Мониторит загрузку postgresql.

mytop


Мониторит mysql. Есть альтернативный mtop, делает примерно то же, но заброшен и (в дебиане) выпилен в районе lenny -> squeeze.

xentop

Мониториг доменов xen'а. Интересен тем, что показывает не только память-процессор, но и дисковые операции с сетью. К сожалению, никакого управления, view only. Единственный из всех top'ов, не влазящий в 80 столбцов при выводе.

Список топов, которые я глазами не посмотрел:

hatop — мониторинг haproxy
virt-top — мониторинг за работой libvirt
mctop — мониторинг состояния memcached
perf-top — нашёл документацию, самого perf-top в виде тарбола или пакета не нашёл.
offTOP


Сначала ложные топы кратко: gkrelmtop — плагин под gkrelm (монитор производительности в гуе) — оффтопик. ntop — нарушает text-based традицию интерактивных программ и ставится как сайт для апача. libgtop — библиотека для мониторигна производительности nload — консольный монитор сетевой активности, в отличие от обычных top'ов не выводит рейтинг, а рисует текстовый график.

А потом настоящие топы без уважительного суффикса 'top' в названии.

nethogs

Отображает сетевой трафик от конкретных приложений.

iptstate

Монитор contrack из iptables, показывает активные трансляции с возможностью их прибить. Фактически, близок к цисковому sh ip nat tra, но удобнее (спасибо за наводку тов. merlin_rterm).

взято тут...

Опредление свободной памяти и железа

  • утилиты:
inxi
top
htop
atop
free
iotop
lshw

aptitude

Краткая справка Debian администратора

Основное и общеизвестное

Получение информации о новых/обновлённых пакетах

sudo aptitude update

Обновление

sudo aptitude safe-upgrade

Поиск пакета по именам пакетов

aptitude search key_word

Поиск пакета по точному названию

aptitude search "^name$"

Поиск по описанию

aptitude search "?description("key_word")"

Информация о пакете

aptitude show package_name

Установка

sudo aptitude install package_name

Удаление

sudo aptitude remove package_name

Полное удаление (вместе с конфигами)

sudo aptitude purge package_name

Очистить кэш загруженных пакетов (освободить место)

aptitude autoclean # удалятся только пакеты неактуальных версий
aptitude clean # очистится весь кэш

Установка отдельно скачанного/созданного пакета (для создания пакета из сторонних исходников нужно использовать утилиту checkinstall с флагом -D)

sudo dpkg -i /path/to/package.deb

Для получения доп информации

man aptitude
sudo aptitude install aptitude-doc-en

и смотрим документацию (/usr/share/doc/aptitude/html/en/index.html), кому быструю справку по поисковым шаблонам, тому сюда — /usr/share/doc/aptitude/html/en/ch02s04.html. Если лень ставить доку, то в сети она есть. Вводная на Debian Wiki: wiki.debian.org/Aptitude

А теперь то что не очевидно или требует полного прочтения документации

1. Как после update посмотреть какие пакеты будут обновлены?

aptitude search ?upgradable

также можно юзать (если поставить)

sudo daptup

но после его установки точно также будет себя вести и обычный update

2. Как узнать что изменилось в пакетах которые будут обновлены? Можно пробовать

sudo aptitude changelog package_name

для каждого пакета. Но лучше поставить apt-listchanges, тогда перед любой установкой обновлений будет показан список изменений, по умолчанию настройки не очень удобные, поэтому лучше перенастроить под себя, например, выбрать формат вывода (пока использую текст, при больших обновлениях наверно pager лучше), не слать писем, спрашивать подтверждения, выводить всю информацию. Для этого нужно запустить

sudo dpkg-reconfigure apt-listchanges

3. Что делать если обновление что-то поломало и нужно откатиться? Отката нет, можно попробовать найти предыдущую версию пакета

sudo aptitude version package_name

и установить её

sudo aptitude install package_name=version

4. Как найти все пакеты установленные вручную? есть вариант команды (aptitude search '~i!~M'), но к сожалению он не даёт желаемого результата, так что вопрос остаётся открытым, есть куча способов основанных на анализе логов

/var/log/aptitude (+ ротированные куски)
/var/log/installer/initial-status.gz
/var/log/dpkg.log (+ ротированные куски)

но простого и готового решения нет, да информация теоретически может быть потеряна при ротациях, нужно конфигурить

5. Как посмотреть список файлов в пакете? если пакет установлен

dpkg -L package_name

для любых пакетов поставить apt-file и

apt-file list package_name

6. Как посмотреть какому пакету принадлежит файл?

dpkg -S file_name

7. Как удалить все пакеты, где есть key в названии пакета?

sudo aptitude purge ~ikey

8. Как удалить оставшиеся конфиги от удалённых пакетов?

sudo aptitude purge ~c

9. Как найти пакет пакет, в котором содержится файл lib.so:

apt-file search lib.so

10. Как сконвертировать rpm пакет в deb?

alien --to-deb /path/to/file.rpm

11. Как найти список установленных ядер?

dpkg --list linux-* | grep ii

12. Как установить пакет из testing или experimental? На эту тему нужно писать отдельно (например так), но если кратко, то команды для этого есть

sudo aptitude -t testing package_name

или

sudo aptitude package_name/testing

13. Как удалить метапакет, но оставить одну из зависимостей? придётся почитать документацию про ключ unmarkauto или глянуть сюда.

14. Как узнать что попало в файловую систему мимо системы управления пакетами? Есть утилита cruft, хотя вопрос интерпретации результатов (файла report) пока открыт

sudo cruft -d / -r report --ignore /home --ignore /var --ignore /tmp

15. Какие есть дополнительные репозитории? Debian — wiki.debian.org/UnofficialRepositories Ubuntu — множество всяких PPA

16. Что есть ещё?

apt-cdrom
apt-spy
auto-apt. заметка на хабре
apt-key
apt-add-repository

Некоторые вещи умеет только apt-get Есть альтернативные утилиты для управления пакетами, например wajig, который пытается вобрать в себя функционал всех остальных утилит.

17. Как найти пакеты зависящие от данного

apt-cache rdepends package_name

также может пригодится

aptitude why package_name

взято тут

mc

Структура
Панели каталогов
После первого запуска mc сам собой возникает вопрос: «Куда коней запрягать?» Чтобы приручить к себе панели, понадобятся следующие комбо-удары:

Tab, Ctrl + i	сменить текущую (активную) панель
Insert, Ctrl + t	отметить файл либо снять отметку
Alt + g Alt + r Alt + j	подсветка верхнего, среднего или нижнего файла из числа отображаемых на панели
Alt + t	переключить режим отображения
Ctrl + \	показать «Справочник каталогов»
+	выбрать (отметить) группу файлов по регулярному выражению
\	снять отметку с группы файлов
Alt + o	если выделен каталог, установить его текущим в неактивной панели. Иначе, установить родительский каталог текущим.
Alt + i	текущий каталог активной панели станет текущим каталогом неактивной панели
Alt + y	к предыдущему каталогу из истории перемещения
Alt + u	к следующему каталогу из истории перемещения
Alt + H	отображает историю перемещения по каталогам
Alt + e	поменять кодировку панели
Alt + .	отобразить скрытые файлы
Alt + ,	расположить панели вертикально/горизонтально
Ctrl + u	поменять панели местами

Разные команды
Итак, худо-бедно жонглировать файлами и каталогами научились. Пора взяться за права и обязанности владельцев, попутно наблюдая за другими фокусами:

Ctrl + l	перерисовать экран
Ctrl + x c	поменять права (chmod) для отмеченных файлов
Ctrl + x o	поменять владельца (chown) для отмеченных файлов
Ctrl + x l	создать жёсткую ссылку
Ctrl + x s	создать абсолютную символическую ссылку
Ctrl + x v	создать относительную символическую ссылку
Ctrl + x i	переводит пассивную панель в режим «Информация»
Ctrl + x q	переводит пассивную панель в режим быстрого просмотра
Ctrl + x !	меню → «Критерий панелизации»
Ctrl + x h	добавить имя каталога в «Справочник каталогов»
Alt + !	меню → «Просмотр вывода команды»
Alt + ?	окно «Поиск файла»
Alt + c	окно «Быстрая смена каталога»
Ctrl + o	скрыть/показать панели
Ctrl + Space	подсчёт размера каталога
Ctrl + r	перечитать содержимое каталога
Ctrl + x j	показать фоновые задания
Ctrl + x d	сравнить каталоги
Ctrl + x, Ctrl + d	сравнить файлы
Shift + F6	переименовать файл

Быстрый поиск
Здесь могла быть реклама гугла с настоящим контекстом, но Ларри до сих пор не отреагировал на моё деловое предложение. Если серьёзно, быстрый поиск «на лету» выделяет файлы по первым символам введённого имени.

Ctrl/Alt + s	режим быстрого поиска

Командная строка оболочки
Ниже представлены сочетания, призванные сократить количество телодвижений, связанных с вводом команд в командной строке.

Ctrl/Alt + Enter	копирует подсвеченное имя файла в командную строку
Alt + Tab	пытается выполнить операцию Завершение ввода
Ctrl + x t, Ctrl + x Ctrl + t	копирует в командную строку имена помеченных файлов из активной/пассивной панели
Ctrl + x p, Ctrl + x Ctrl + p	копирует в командную строку имя текущего каталога из активной/пассивной панели
Ctrl + q	вставить символы, которые интерпретируются mc (пример: +)
Alt + p, Alt + n	перемещение по истории команд
Alt + h	выводит историю текущей строки ввода (историю команд)
Ctrl + V	вставка из буфера обмена

взято тут

Пример монтирования папки в папку

  • полезно при организации общих ресурсов между пользователям в окружении chroot (ftp)

пример команды:

mount --bind /home/user/directory /opt/public_ftp/pub/directory

пример записи в fstab:

/home/user/directory /opt/public_ftp/pub/directory  none           bind    0       0

Ввод и вывод в терминале linux или управление потоками

Полезный справочник по командам Linux

Обьединение нескольких каналов интернет

Управление нагрузкой=

Автологин в консоль или Xorg

виртуальных терминалах обычно запускаются одни и те же программы rungetty, agetty или mingetty.

все они имеют опцию --autologin имя-пользователя (некоторые реализации — -a имя-пользователя), которая делает именно то, что следует из её названия.

другое дело, что не всегда просто определить, где именно находится файл, в котором описан запуск *getty. чтобы добавить опцию к вызову нужного экземпляра *getty.

  • в «старой доброй» sysv-инициализации это, естественно, файл /etc/inittab:
   $ grep -v '^#' /etc/inittab | grep getty
   1:2345:respawn:/sbin/getty 38400 tty1
   2:23:respawn:/sbin/getty 38400 tty2
   3:23:respawn:/sbin/getty 38400 tty3
   4:23:respawn:/sbin/getty 38400 tty4
   5:23:respawn:/sbin/getty 38400 tty5
   6:23:respawn:/sbin/getty 38400 tty6
  • в системе инициализации upstart эту роль играют, судя по всему, файлы /etc/init/tty?.conf:
   $ grep -v '^#' /etc/init/tty?.conf | grep getty
   /etc/init/tty1.conf:exec /sbin/getty -8 38400 tty1
   /etc/init/tty2.conf:exec /sbin/getty -8 38400 tty2
   /etc/init/tty3.conf:exec /sbin/getty -8 38400 tty3
   /etc/init/tty4.conf:exec /sbin/getty -8 38400 tty4
   /etc/init/tty5.conf:exec /sbin/getty -8 38400 tty5
   /etc/init/tty6.conf:exec /sbin/getty -8 38400 tty6

в системе инициализации systemd ситуация несколько сложнее. насколько я понял, глядя на debian-овскую конфигурацию, надо заменить символическую ссылку /etc/systemd/system/getty.target.wants/getty@tty1.service, которая ссылается на файл универсального сервиса /lib/systemd/system/getty@.service, на реальный файл (с тем же именем — getty@tty1.service). можно скопировать содержимое того же самого /lib/systemd/system/getty@.service, и добавить вышеупомянутую опцию к вызову программы *getty.

зачем подменять, а не исправлять сразу файл с универсальным сервисом /lib/systemd/system/getty@.service? для того, чтобы при переключении на другие виртуальные терминалы (не tty1) программа *getty запускалась «по-старому», и предлагала «обычное» приглашение к вводу логина/пароля.

Создание раздела диска размером более 2 Тб в Линуксе

Ansible

Команда at в Linux

Программа at является частью набора, состоящего из четырех программ: at, batch, atq и atrm:
   at выполняет задачи в назначенное время.
   atq выводит список ожидающих выполнения задач для каждого пользователя; в случае использования суперпользователем, выводятся все ожидающие выполнения задачи.
   atrm удаляет задачи, заданные идентификаторами.
   batch выполняет задачи во время периодов низкой загруженности системы; другими словами, когда средний уровень загрузки системы падает ниже значения 1.5 или того значения, которое задано при вызове atd.

Использование программы at После запуска at предлагает вам ввести последовательность команд для выполнения. Чтобы закончить ввод команд, следует использовать комбинацию клавиш CTRL-D. Описание основных параметров командной строки at приведено ниже:

at [-m] [-q очередь] [-f файл] ВРЕМЯ

Значение этих параметров:

   -q используется для указания очереди. Очередь обозначается одной буквой; корректными очередями считаются очереди с идентификаторами от a до z и от A до Z. Очередь с идентификатором a используется по умолчанию, а очередь с идентификатором b является очередью для программы batch. Команды из очередей с идентификаторами, находящимися далее по алфавиту, выполняются с более высоким приоритетом (nice). Специальная очередь "=" зарезервирована для команд, исполняющихся в данный момент. Если команда добавлена в очередь, идентификатором которой является заглавная буква, считается, что команда передана программе batch. В том случае, если программе atq передан идентификатор очереди, программа выведет команды, находящиеся только в этой очереди.
   -m позволяет отправить пользователю сообщение по электронной почте после выполнения задачи даже в том случае, когда выполненная программа ничего не вывела.
   -f позволяет прочитать команды из файла, а не со стандартного ввода.
   В качестве времени at принимает строки в форматах, совместимых со стандартом POSIX.2. Принимается строка, указывающая время в формате ЧЧ:ММ, позволяющая выполнить команду в назначенное время в течение дня. Вы также можете задать день для выполнения команды при помощи строки, указывающей дату в формате имени месяца и дня с необязательным указанием года или задав дату строкой формата ММДДГГ или ММ/ДД/ГГ или ДД.ММ.ГГ. Указание даты должно следовать за указанием времени.

Примеры Во время проведения тестов точное время было следующим:

#date
Wed Oct 17 22:31:05 CEST 2012

В том случае, если задать только время, задача будет запланирована на следующий момент достижения этого времени, например, я задал время 20.00, а исполнение задачи было запланировано на следующий день в это время:

#at -f my_at_test.sh 20:00
warning: commands will be executed using /bin/sh
job 4 at Thu Oct 18 20:00:00 2012

При этом, если задать время, которое еще не наступило сегодня, исполнение задачи будет запланировано на этот же день:

#at -f my_at_test.sh 22:35
warning: commands will be executed using /bin/sh
job 5 at Wed Oct 17 22:35:00 2012

А это еще один пример с использованием сочетания клавиш CTRL+D для завершения ввода команд:

at midnight Friday
warning: commands will be executed using /bin/sh
at> cp -a /project/source/* /backup/source/^C
at> 
job 6 at Fri Oct 19 00:00:00 2012

Просмотр всех запланированных задач при помощи atq Вы можете использовать программу atq в качестве альтернативы команде at -l для просмотра списка запланированных или выполняющихся в данный момент задач, а единственным аргументом этой программы является -q для указания определенной очереди.

#atq
3	Thu Oct 18 10:25:00 2012 a linuxaria
4	Thu Oct 18 20:00:00 2012 a linuxaria
6	Fri Oct 19 00:00:00 2012 a linuxaria

На мой взгляд, вывод программы не особенно полезен, так как вы не можете посмотреть, какая команда выполняется в рамках задачи с идентификатором 3 или любой другой задачи. Для того, чтобы увидеть, что будет выполняться в рамках задачи, вы можете использовать следующую команду:

at -c идентификатор_задачи

Она выведет длинный список переменных окружения для выполнения команды и саму команду:

#at -c 6
 
#!/bin/sh
# atrun uid=1000 gid=1000
# mail linuxaria 0
umask 22
SSH_AGENT_PID=1579; export SSH_AGENT_PID
XDG_SESSION_COOKIE=586bed7d66c5f3bf0810f6ce0000001c-1350495018.439467-8023144; export XDG_SESSION_COOKIE
WINDOWID=25165830; export WINDOWID
GNOME_KEYRING_CONTROL=/tmp/keyring-m0UVoj; export GNOME_KEYRING_CONTROL
USER=linuxaria; export USER
LIBGL_DRIVERS_PATH=/usr/lib/fglrx/dri:/usr/lib32/fglrx/dri; export LIBGL_DRIVERS_PATH
SSH_AUTH_SOCK=/tmp/ssh-DbbUjzXR1501/agent.1501; export SSH_AUTH_SOCK
USERNAME=riccio; export USERNAME
SESSION_MANAGER=local/mint-desktop:@/tmp/.ICE-unix/1501,unix/mint-desktop:/tmp/.ICE-unix/1501; export SESSION_MANAGER
DEFAULTS_PATH=/usr/share/gconf/default.default.path; export DEFAULTS_PATH
XDG_CONFIG_DIRS=/etc/xdg/xdg-default:/etc/xdg; export XDG_CONFIG_DIRS
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games; export PATH
DESKTOP_SESSION=default; export DESKTOP_SESSION
PWD=/tmp; export PWD
GNOME_KEYRING_PID=1424; export GNOME_KEYRING_PID
LANG=en_US.UTF-8; export LANG
MANDATORY_PATH=/usr/share/gconf/default.mandatory.path; export MANDATORY_PATH
MDM_XSERVER_LOCATION=local; export MDM_XSERVER_LOCATION
SHLVL=1; export SHLVL
HOME=/home/linuxaria; export HOME
LOGNAME=linuxaria; export LOGNAME
XDG_DATA_DIRS=/usr/share/default:/usr/local/share/:/usr/share/:/usr/share/mdm/; export XDG_DATA_DIRS
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-QWgLeCbkps,guid=b1c32f270937311ee26524ff00000031; export DBUS_SESSION_BUS_ADDRESS
MDMSESSION=default; export MDMSESSION
WINDOWPATH=8; export WINDOWPATH
MDM_LANG=en_US.UTF-8; export MDM_LANG
XAUTHORITY=/home/linuxaria/.Xauthority; export XAUTHORITY
COLORTERM=gnome-terminal; export COLORTERM
cd /tmp || {
	 echo 'Execution directory inaccessible' >&2
	 exit 1
}
cp -a /project/source/* /backup/source/^C

Этот вывод позволяет гораздо лучше понять предназначение задачи. Удаление запланированной задачи при помощи atrm

Мы научились просматривать список запланированных задач и при желании их содержимое, теперь настало время рассмотреть способ их удаления из очереди при помощи программы atrm или команды at -d для удаления определенной задачи. Таким образом, для удаления задачи с идентификатором 3, вам необходимо просто ввести команду:

atrm 3

Данная команда ничего не выводит в консоль, но после ее выполнения вы можете убедиться в удалении задачи при помощи команды atq. Ограничение круга пользователей программы at

Файлы /etc/at.allow и /etc/at.deny устанавливают пользователей, которые могут планировать задачи для последующего исполнения при помощи программ at и batch. В качестве формата этих файлов используется простой список имен пользователей по одному в каждой строке. Использование пробелов в этих файлах не допускается.

Пользователь root может использовать программы at и batch при любых условиях.

В случае существования файла /etc/at.allow, на его основе устанавливается круг пользователей, которым разрешено планирование задач, но обычно в системах этого файла не существует.

Если файла /etc/at.allow не существует, проверяется файл /etc/at.deny, который обычно содержит длинный список "системных пользователей", таких как bin, backup, ftp или www-data, для которых планирование задач запрещено.

Автоматическое монтирование USB

Пример:
/etc/udev/rules.d/10-automount.rules
ACTION=="add", KERNEL=="sd[c-z][0-9]", ENV{ID_USB_DRIVER}="usb-storage", RUN+="/bin/mkdir -p /mnt/%k /bin/chmod a+rwx /mnt/%k"
ACTION=="add", KERNEL=="sd[c-z][0-9]", ENV{ID_USB_DRIVER}="usb-storage", RUN+="/bin/mount -o sync,umask=0000,iocharset=cp1251 /dev/%k /mnt/%k"
ACTION=="remove", KERNEL=="sd[c-z][0-9]", ENV{ID_USB_DRIVER}="usb-storage", RUN+="/bin/umount /dev/%k", RUN+="/bin/rmdir /mnt/%k"

Дополнительно к теме:


Закончились inodes как решить проблему?

Прежде чем что то делать, нужно убедиться что проблема с inodes. Воспользуйтесь командой:

[alexsystem ~]# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/hda2            121896960  227651 121669309    1% /
/dev/hda1              26104      44   26060    1% /boot
tmpfs                  64417       1   64416    1% /dev/shm

Значения IUsed, IFree, IUse% дадут вам понимание, в какой файловой системе (разделе) у вас проблема.

Потом нужно посмотреть, в какой папке больше всего вложенных элементов (файлов и папок), а потом вывести их списком, список отсортировать в возрастающем порядке, используйте вот такой конвейер:

find . -mindepth 2 | awk -F/ '{ print $2"/" }' | sort | uniq -c | sort -n | tail -10

mindepth 2 или 3 потому, что достаточно просмотреть/посчитать файлы в папках 2/3 уровней вложенности. tail -10 это значит будет показан топ 10 папок с наибольшим количеством элементов.

IBGP

Linux soft

Безопасное удаление файлов (Secure-Delete)

Open vSwitch как ядро виртуальной сети

ИСТОЧНИКИ: