Friday, December 5, 2008

Quik Note: Мониторинг и отладка

  • ps -eafw отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)
  • ps -e -o pid,args --forest вывести PID'ы и процессы в виде дерева
  • pstree отобразить дерево процессов
  • kill -TERM 98989 Корректно завершить процесс с PID 98989
  • kill -1 98989 заставить процесс с PID 98989 перепрочитать файл конфигурации
  • kill -HUP 98989
  • lsof -p 98989 отобразить список файлов, открытых процессом с PID 98989
  • lsof /home/user1 отобразить список открытых файлов из директории /home/user1
  • strace -c ls >/dev/null вывести список системных вызовов, созданных и полученных процессом ls
  • strace -f -e open ls >/dev/null вывести вызовы бибилотек
  • watch -n1 'cat /proc/interrupts' отображать прерывания в режиме реального времени
  • last reboot отобразить историю перезагрузок системы
  • last user1 отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней
  • lsmod вывести загруженные модули ядра
  • free -m показать состояние оперативной памяти в мегабайтах
  • smartctl -A /dev/hda контроль состояния жёсткого диска /dev/hda через SMART
  • smartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hda
  • tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра
  • tail /var/log/messages вывести десять последних записей из системного журнал

Quick Note: iptables

  • iptables -t filter -nL отобразить все цепочки правил
  • iptables -nL
  • iptables -t nat -L отобразить все цепочки правил в NAT-таблице
  • iptables -t filter -F очистить все цепочки правил в filter-таблице
  • iptables -F
  • iptables -t nat -F очистить все цепочки правил в NAT-таблице
  • iptables -t filter -X удалить все пользовательские цепочки правил в filter-таблице
  • iptables -t filter -A INPUT -p tcp --dport telnet -j ACCEPT позволить входящее подключение telnet'ом
  • iptables -t filter -A OUTPUT -p tcp --dport http -j DROP блокировать исходящие HTTP-соединения
  • iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT позволить "прокидывать" (forward)


Quik Note: Команды для настройки SAMBA

  • nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
  • nmblookup -A ip_addr
  • smbclient -L ip_addr/hostname отобразить ресурсы, предоставленные в общий доступ на windows-машине
  • smbget -Rr smb://ip_addr/share подобно wget может получить файлы с windows-машин через smb-протокол
  • mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему

Quik Note: Команды для работы с сетью

  • ifconfig eth0 promisc перевести интерфейс eth0 в promiscuous-режим для "отлова" пакетов (sniffing)
  • ifconfig eth0 -promisc отключить promiscuous-режим на интерфейсе eth0
  • route -n вывести локальную таблицу маршрутизации
  • netstat -rn route add -net 0/0 gw IP_Gateway задать ip-адрес шлюза по умолчанию (default gateway)
  • route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1
  • route del 0/0 gw IP_gateway удалить ip-адрес шлюза по умолчанию (default gateway)
  • host http://www.linuxguide.it разрешить имя http://www.linuxguide.it хоста в ip-адрес и наоборот
  • tcpdump tcp port 80 отобразить весь трафик на TCP-порт 80 (обычно - HTTP)

Quik Note: Команды для работы с CDROM

  • cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force очистить RW диск
  • mkisofs /dev/cdrom > cd.iso создать iso с CD диска
  • mkisofs /dev/cdrom | gzip > cd_iso.gz создать сжатый ISO образ с CD диска
  • mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd создать ISO образ из папки
  • cdrecord -v dev=/dev/cdrom cd.iso записать CD
  • gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - записать сжатый ISO диск
  • mount -o loop cd.iso /mnt/iso примонтировать ISO образ
  • cd-paranoia -B срипать музыку с CD диска

Quik Note: Преобразование наборов символов и файловых форматов

  • dos2unix filedos.txt fileunix.txt конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата коретки)
  • unix2dos fileunix.txt filedos.txt конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки)
  • recode ..HTML <> page.html конвертировать содержимое тестового файла page.txt в html-файл page.html
  • recode -l | more вывести список доступных форматов

Quik Note: RPM пакеты (Fedora, Red Hat и тому подобное)

  • rpm -U package.rpm обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен
  • rpm -F package.rpm обновить пакет только если он установлен
  • rpm -qa | grep httpd среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени "httpd"
  • rpm -qi package_name вывести информацию о конкрентном пакете
  • rpm -qg "System Environment/Daemons" отобразить пакеты входящие в группу пакетов
  • rpm -ql package_name вывести список файлов, входящих в пакет
  • rpm -qc package_name вывести список конфигурационных файлов, входящих в пакет
  • rpm -q package_name --whatrequires вывести список пакетов, необходимых для установки конкретного пакета по зависимостям
  • rpm -q package_name --whatprovides show capability provided by a rpm package
  • rpm -q package_name --scripts отобразит скрипты, запускаемые при установке/удалении пакета
  • rpm -q package_name --changelog вывести историю ревизий пакета
  • rpm -qf /etc/httpd/conf/httpd.conf проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла.
  • rpm -qp package.rpm -l отображает список файлов, входящих в пакет, но ещё не установленных в систему
  • rpm --import /media/cdrom/RPM-GPG-KEY ипортировать публичный ключ цифровой подписи
  • rpm --checksig package.rpm проверит подпись пакета
  • rpm -qa gpg-pubkey проверить целостность установленного содержимого пакета
  • rpm -V package_name проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменеия пакета
  • rpm -Va проверить содержимое всех пакетов в системе. Выполняйте с осторожностью!
  • rpm -Vp package.rpm проверить пакет, который ещё не установлен в систему
  • rpm2cpio packet.rpm | cpio -idmuv --no-absolute-filenames
  • rpm2cpio package.rpm | cpio --extract --make-directories *bin* извлечь из пакета файлы содержащие в своём имени bin
  • rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm установить пакет, собранный из исходных кодов
  • rpmbuild --rebuild package_name.src.rpm собрать пакет из исходных кодов
  • yum clean headers удалить все заголовки файлов, которые система использует для разрешения зависимостей

Quik Note: Команды для архивирования и сжатия файлов

  • bunzip2 file1.bz2 разжимает файл 'file1.gz'
  • gunzip file1.gz
  • gzip file1 сжимает файл 'file1'
  • bzip2 file1
  • gzip -9 file1 сжать файл file1 с максимальным сжатием
  • rar a file1.rar test_file создать rar-архив 'file1.rar' и включить в него файл test_file
  • rar a file1.rar file1 file2 dir1 создать rar-архив 'file1.rar' и включить в него file1, file2 и dir1
  • rar x file1.rar распаковать rar-архив
  • unrar x file1.rar
  • tar -cvf archive.tar file1 создать tar-архив archive.tar, содержащий файл file1
  • tar -cvf archive.tar file1 file2 dir1 создать tar-архив archive.tar, содержащий файл file1, file2 и dir1
  • tar -tf archive.tar показать содержимое архива
  • tar -xvf archive.tar распаковать архив
  • tar -xvf archive.tar -C /tmp распаковать архив в /tmp
  • tar -cvfj archive.tar.bz2 dir1 создать архив и сжать его с помощью bzip2(Прим.переводчика. ключ -j работает не во всех *nix системах)
  • tar -xvfj archive.tar.bz2 разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах)
  • tar -cvfz archive.tar.gz dir1 создать архив и сжать его с помощью gzip
  • tar -xvfz archive.tar.gz разжать архив и распаковать его
  • zip file1.zip file1 создать сжатый zip-архив
  • zip -r file1.zip file1 file2 dir1 создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий
  • unzip file1.zip разжать и распаковать zip-архив

Quik Note: Специальные атрибуты файлов


  • chattr +a file1 позволить открывать файл на запись только в режиме добавления
  • chattr +c file1 позволяет ядру автоматически сжимать/разжимать содержимое файла.
  • chattr +d file1 указавет утилите dump игнорировать данный файл во время выполнения backup'а
  • chattr +i file1 делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.
  • chattr +s file1 позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных.
  • chattr +S file1 указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync
  • chattr +u file1 данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить lsattr показать атрибуты файлов

Quik Note: Выставление/изменение полномочий на файлы

  • find / -perm -u+s найти, начиная от корня, все файлы с выставленным SUID
  • chmod o+t /home/public назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам
  • chmod o-t /home/public снять STIKY-бит с директории /home/public

Quik Note: Пользователи и группы


  • groupmod -n new_group_name old_group_name переименовать группу old_group_name в new_group_name
  • useradd -c "Nome Cognome" -g admin -d /home/user1 -s /bin/bash user1 создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell'а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome
  • chage -E 2005-12-31 user1 установить дату окончания действия учётной записи пользователя user1
  • pwck проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow
  • grpck проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group newgrp [-] group_name изменяет первичную группу текущего пользователя. Если указать "-", ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd

Quik Note: Дисковое пространство

  • df -h отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах)
  • ls -lSr |more выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр
  • du -sh dir1 подсчитывает и выводит размер, занимаемый директорией 'dir1' (Прим.переводчика. ключ -h работает не во всех *nix системах)
  • du -sk * | sort -rn отображает размер и имена файлов и директорий, с соритровкой по размеру
  • rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.)
  • dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.)

Quik Note: Команды для монтирования файловых систем

  • fuser -km /mnt/hda2 принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем
  • umount -n /mnt/hda2 выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты "только чтение" или недостаточно места на диске
  • mount /dev/fd0 /mnt/floppy монтировать флоппи-диск
  • mount -o loop file.iso /mnt/cdrom смонтировать ISO-образ
  • mount -t vfat /dev/hda5 /mnt/hda5 монтировать файловую систему Windows FAT32
  • mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share монтировать сетевую файловую систему Windows (SMB/CIFS)

Quik Note: Команды для поиска файлов

  • find /usr/bin -type f -atime +100 найти все файлы в '/usr/bin', время последнего обращения к которым более 100 дней
  • find /usr/bin -type f -mtime -10 найти все файлы в '/usr/bin', созданные или изменённые в течении последних 10 дней
  • find / -xdev -name "*.rpm" найти все фалы и директории, имена которых оканчиваются на '.rpm', игнорируя съёмные носители, такие как cdrom, floppy и т.п.
  • whereis halt показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу 'halt'
  • which halt отображает полный путь к файлу 'halt'

Quik Note: Файлы и директории

  • ls -F отобразить содержимое текущей директории с добавлением к именам символов, храктеризующих тип
  • touch -t 0712250000 fileditest модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm)

Quik Note: Команды для остановки системы

  • shutdown -h hours:minutes & запланировать остановку системы на указанное время
  • shutdown -c отменить запланированную по расписанию остановку системы
  • shutdown -r now перегрузить систему

Quik Note: Команды для получения системной информации

  • dmidecode -q показать аппаратные системные компоненты - (SMBIOS / DMI)
  • hdparm -i /dev/hda вывести характеристики жесткого диска
  • hdparm -tT /dev/sda протестировать производительность чтения данных с жесткого диска
  • cat /proc/cpuinfo отобразить информацию о процессоре
  • cat /proc/interrupts показать прерывания
  • cat /proc/meminfo проверить использование памяти
  • cat /proc/swaps показать файл(ы) подкачки
  • cat /proc/version вывести версию ядра
  • cat /proc/net/dev показать сетевые интерфейсы и статистику по ним
  • cat /proc/mounts отобразить смонтированные файловые системы
  • lspci -tv показать в виде дерева PCI устройства
  • lsusb -tv показать в виде дерева USB устройства
  • date вывести системную дату
  • cal 2007 вывести таблицу-календарь 2007-го года
  • date 041217002007.00 установить системные дату и время ММДДЧЧммГГГГ.СС
  • (МесяцДеньЧасМинутыГод.Секунды)
  • clock -w сохранить системное время в BIOS

Quik Note: DEB пакеты (Debian, Ubuntu)

  • dpkg -i package.deb установить / обновить пакет
  • dpkg -r package_name удалить пакет из системы
  • dpkg -l показать все пакеты, установленные в систему
  • dpkg -l | grep httpd среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени "httpd"
  • dpkg -s package_name отобразить инфрмацию о конкретном пакете
  • dpkg -L package_name вывести список файлов, входящих в пакет, установленный в систему
  • dpkg --contents package.deb отобразить список файлов, входящих в пакет, который ешё не установлен в систему
  • dpkg -S /bin/ping найти пакет, в который входит указанный файл.
  • APT - средство управление пакетами (Debian, Ubuntu и тому подобное)
  • apt-get install package_name установить / обновить пакет
  • apt-cdrom install package_name установить / обновить пакет с cdrom'а
  • apt-get update получить обновлённые списки пакетов
  • apt-get upgrade обновить пакеты, установленные в систему
  • apt-get remove package_name удалить пакет, установленный в систему с сохранением файлов конфигурации
  • apt-get purge package_name удалить пакет, установленный в систему с удалением файлов конфигурации
  • apt-get check проверить целостность зависимостей
  • apt-get clean удалить загруженные архивные файлы пакетов
  • apt-get autoclean удалить старые загруженные архивные файлы пакетов