Системная информация
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | arch // отобразить архитектуру компьютера uname -m // отобразить архитектуру компьютера uname -r // отобразить используемую версию ядра 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 cat ` ls /etc/ *{-,_}{release,version} 2> /dev/null | head -n 1` // версия операционки |
Остановка системы
1 2 3 4 5 6 7 8 | shutdown -h now // Остановить систему init 0 // Остановить систему telinit 0 // Остановить систему shutdown -h hours:minutes & // запланировать остановку системы на указанное время shutdown -c // отменить запланированную по расписанию остановку системы shutdown -r now // перегрузить систему reboot // перегрузить систему logout // выйти из системы |
Файлы и директории
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | cd /home // перейти в директорию '/home' cd .. // перейти в директорию уровнем выше cd ../.. // перейти в директорию двумя уровнями выше cd // перейти в домашнюю директорию cd ~user // перейти в домашнюю директорию пользователя user cd - // перейти в директорию, в которой находились до перехода в текущую директорию pwd // показать текущюю директорию ls // отобразить содержимое текущей директории ls -F // отобразить содержимое текущей директории с добавлением к именам символов, храктеризующих тип ls -l // показать детализированое представление файлов и директорий в текущей директории ls -a // показать скрытые файлы и директории в текущей директории ls *[0-9]* // показать файлы и директории содержащие в имени цифры tree // показать дерево файлов и директорий, начиная от корня (/) lstree // показать дерево файлов и директорий, начиная от корня (/) mkdir dir1 // создать директорию с именем 'dir1' mkdir dir1 dir2 // создать две директории одновременно mkdir -p /tmp/dir1/dir2 // создать дерево директорий rm -f file1 // удалить файл с именем 'file1' rmdir dir1 // удалить директорию с именем 'dir1' rm -rf dir1 // удалить директорию с именем 'dir1' и рекурсивно всё её содержимое rm -rf dir1 dir2 // удалить две директории и рекурсивно их содержимое mv dir1 new_dir // переименовать или переместить файл или директорию cp file1 file2 // сопировать файл file1 в файл file2 cp dir /* . // копировать все файлы директории dir в текущую директорию cp -a /tmp/dir1 . // копировать директорию dir1 со всем содержимым в текущую директорию cp -a dir1 dir2 // копировать директорию dir1 в директорию dir2 ln -s file1 lnk1 // создать символическую ссылку на файл или директорию ln file1 lnk1 // создать "жёсткую" (физическую) ссылку на файл или директорию touch -t 0712250000 fileditest // модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm) |
Поиск файлов
1 2 3 4 5 6 7 8 9 10 11 | find / -name file1 // найти файлы и директории с именем file1. Поиск начать с корня (/) find / -user user1 // найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/) find /home/user1 -name "*.bin" // Найти все файлы и директории, имена которых оканчиваются на '. bin' . Поиск начать с '/ home/user1' find /usr/bin - type f -atime +100 // найти все файлы в '/usr/bin' , время последнего обращения к которым более 100 дней find /usr/bin - type f -mtime -10 // найти все файлы в '/usr/bin' , созданные или изменённые в течении последних 10 дней find / -name *.rpm - exec chmod 755 '{}' \; // найти все фалы и директории, имена которых оканчиваются на '.rpm' , и изменить права доступа к ним find / -xdev -name "*.rpm" // найти все фалы и директории, имена которых оканчиваются на '.rpm' , игнорируя съёмные носители, такие как cdrom, floppy и т.п. locate "*.ps" // найти все файлы, сожержащие в имени '.ps' . Предварительно рекомендуется выполнить команду 'updatedb' whereis halt // показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу 'halt' which halt // отображает полный путь к файлу 'halt' grep -iRI "LEAVE A COMMENT" /var/www/ // найти в папке все файлы содержащие фразу (LEAVE A COMMENT) |
Монтирование файловых систем
1 2 3 4 5 6 7 8 9 10 11 | mount /dev/hda2 /mnt/hda2 // монтирует раздел 'hda2' в точку монтирования '/mnt/hda2' . Убедитесь в наличии директории-точки монтирования '/mnt/hda2' umount /dev/hda2 // размонтирует раздел 'hda2' . Перед выполнением, покиньте '/mnt/hda2' fuser -km /mnt/hda2 // принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем umount -n /mnt/hda2 // выполнить размонитрование без занесения информации в /etc/mtab . Полезно когда файл имеет атрибуты "только чтение" или недостаточно места на диске mount /dev/fd0 /mnt/floppy // монтировать флоппи-диск mount /dev/cdrom /mnt/cdrom // монтировать CD или DVD mount /dev/hdc /mnt/cdrecorder // монтировать CD-R /CD-RW или DVD-R /DVD-RW (+-) 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 ) mount -o bind /home/user/prg /var/ftp/user // "монтирует" директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp -сервера в "песочнице" (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user |
Дисковое пространство
1 2 3 4 5 6 7 | df -h // отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах) du -h --max-depth=1 /var/lib/ | sort -nr // покажет какая папка больше весит в дир /var 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 т.п.) |
Пользователи и группы
1 2 3 4 5 6 7 8 9 10 11 12 13 | groupadd group_name // создать новую группу с именем group_name groupdel group_name // удалить группу group_name 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 useradd user1 // создать пользователя user1 userdel -r user1 // удалить пользователя user1 и его домашний каталог usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 // изменить атрибуты пользователя passwd // сменить пароль passwd user1 // сменить пароль пользователя user1 (только root) chage -E 2005-12-31 user1 // установить дату окончания действия учётной записи пользователя user1 pwck // проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow grpck // проверяет корректность системных файлов учётных записей. Проверяется файл /etc/group newgrp [-] group_name // изменяет первичную группу текущего пользователя. Если указать "-" , ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd |
Выставление/изменение полномочий на файлы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ls -lh // просмотр полномочий на файлы и директории в текущей директории ls /tmp | pr -T5 -W$COLUMNS // вывести содержимое директории /tmp и разделить вывод на пять колонок chmod ugo+rwx directory1 // добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) - всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1 chmod go-rwx directory1 // отобрать у группы и всех остальных все полномочия на директорию directory1. chown user1 file1 // назначить владельцем файла file1 пользователя user1 chown -R user1 directory1 // назначить рекурсивно владельцем директории directory1 пользователя user1 chgrp group1 file1 // сменить группу-владельца файла file1 на group1 chown user1:group1 file1 // сменить владельца и группу владельца файла file1 find / -perm -u+s // найти, начиная от корня, все файлы с выставленным SUID chmod u+s /bin/binary_file // назначить SUID-бит файлу /bin/binary_file . Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла. chmod u-s /bin/binary_file // снять SUID-бит с файла /bin/binary_file . chmod g+s /home/public // назначить SGID-бит директории /home/public . chmod g-s /home/public // снять SGID-бит с директории /home/public . chmod o+t /home/public // назначить STIKY-бит директории /home/public . Позволяет удалять файлы только владельцам chmod o-t /home/public // снять STIKY-бит с директории /home/public |
Специальные атрибуты файлов
1 2 3 4 5 6 7 8 | 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 // показать атрибуты файлов |
Архивирование и сжатие файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | bunzip2 file1.bz2 // разжимает файл 'file1.gz' gunzip file1.gz // разжимает файл 'file1.gz' gzip file1 // сжимает файл 'file1' bzip2 file1 // сжимает файл '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 // распаковать 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 -cvjf archive. tar .bz2 dir1 // создать архив и сжать его с помощью bzip2 (Прим.переводчика. ключ -j работает не во всех *nix системах) tar -xvjf archive. tar .bz2 // разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах) tar -cvzf /home/css1 . tar .gz /home/css1 // создать архив и сжать его с помощью gzip tar -xvzf /home/css1 . tar .gz // разжать архив и распаковать его zip file1.zip file1 // создать сжатый zip-архив zip -r file1.zip file1 file2 dir1 // создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий unzip file1.zip // разжать и распаковать zip-архив |
RPM пакеты (Fedora, Red Hat и тому подобное)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | rpm -ivh package.rpm // установить пакет с выводом сообщений и прогресс-бара rpm -ivh --nodeps package.rpm // установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей rpm -U package.rpm // обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен rpm -F package.rpm // обновить пакет только если он установлен rpm -e package_name.rpm // удалить пакет rpm -qa // отобразить список всех пакетов, установленных в системе 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 package.rpm | cpio --extract -- make -directories *bin* // извлечь из пакета файлы содержащие в своём имени bin rpm -ivh /usr/src/redhat/RPMS/ `arch` /package .rpm // установить пакет, собранный из исходных кодов rpmbuild --rebuild package_name.src.rpm // собрать пакет из исходных кодов |
YUM – средство обновления пакетов(Fedora, RedHat и тому подобное)
1 2 3 4 5 6 7 8 9 | yum install package_name // закачать и установать пакет yum update // обновить все пакеты, установленные в систему yum update package_name // обновить пакет yum remove package_name // удалить пакет yum list // вывести список всех пакетов, установленных в систему yum search package_name // найти пакет в репозитории yum clean packages // очисть rpm-кэш, удалив закачанные пакеты yum clean headers // удалить все заголовки файлов, которые система использует для разрешения зависимостей yum clean all // очисть rpm-кэш, удалив закачанные пакеты и заголовки |
Просмотр содержимого файлов
1 2 3 4 5 6 7 8 9 | cat file1 // вывести содержимое файла file1 на стандартное устройсво вывода tac file1 // вывести содержимое файла file1 на стандартное устройсво вывода в обратном порядке (последняя строка становиться первой и т.д.) cat /var/log/httpd-access-old .ponyexpress.ru.log.2018-10-17 | grep tools/ // вывести содержимое файла httpd-access-old.ponyexpress.ru.log.2018-10-17 содержащее "tools/" tail -n 50 /var/log/httpd-access-old .ponyexpress.ru.log.2018-10-17 // вывести последние 50 строк файла httpd-access-old.ponyexpress.ru.log.2018-10-17 more file1 // постраничный вывод содержимого файла file1 на стандартное устройство вывода less file1 // постраничный вывод содержимого файла file1 на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п. head -2 file1 // вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк tail -2 file1 // вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк tail -f /var/log/messages // выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста. |
Анализ файловых систем
1 2 3 4 5 6 7 8 9 | badblocks - v /dev/hda1 // проверить раздел hda1 на наличие bad-блоков fsck /dev/hda1 // проверить/восстановить целостность linux-файловой системы раздела hda1 fsck .ext2 /dev/hda1 // проверить/восстановить целостность файловой системы ext2 раздела hda1 e2fsck /dev/hda1 // проверить/восстановить целостность файловой системы ext2 раздела hda1 e2fsck -j /dev/hda1 // проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же fsck .ext3 /dev/hda1 // проверить/восстановить целостность файловой системы ext3 раздела hda1 fsck .vfat /dev/hda1 // проверить/восстановить целостность файловой системы fat раздела hda11 fsck .msdos /dev/hda1 // проверить/восстановить целостность файловой системы fat раздела hda11 dosfsck /dev/hda1 // проверить/восстановить целостность файловой системы fat раздела hda11 |
Форматирование файловых систем
1 2 3 4 5 6 | mkfs /dev/hda1 // создать linux-файловую систему на разделе hda1 mke2fs /dev/hda1 // создать файловую систему ext2 на разделе hda1 mke2fs -j /dev/hda1 // создать журналирующую файловую систему ext3 на разделе hda1 mkfs -t vfat 32 -F /dev/hda1 // создать файловую систему FAT32 на разделе hda1 fdformat -n /dev/fd0 // форматирование флоппи-диска без проверки mkswap /dev/hda3 // создание swap-пространства на разделе hda3 |
Создание резервных копий (backup)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | dump -0aj -f /tmp/home0 .bak /home // создать полную резервную копию директории /home в файл /tmp/home0 .bak dump -1aj -f /tmp/home0 .bak /home // создать инкрементальную резервную копию директории /home в файл /tmp/home0 .bak restore - if /tmp/home0 .bak // восстановить из резервной копии /tmp/home0 .bak rsync -rogpav --delete /home /tmp // синхронизировать /tmp с /home rsync -rogpav -e ssh --delete /home ip_address: /tmp // синхронизировать через SSH-туннель rsync -az -e ssh --delete ip_addr: /home/public /home/local // синхронизировать локальную директорию с удалённой директорией через ssh -туннель со сжатием rsync -az -e ssh --delete /home/local ip_addr: /home/public // синхронизировать удалённую директорию с локальной директорией через ssh -туннель со сжатием dd bs=1M if = /dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' // сделать "слепок" локального диска в файл на удалённом компьютере через ssh -туннель tar -Puf backup. tar /home/user // создать инкрементальную резервную копию директории '/home/user' в файл backup. tar с сохранением полномочий ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' // копирование содержимого /tmp/local на удалённый компьютер через ssh -туннель в /home/share/ ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' // копирование содержимого /home на удалённый компьютер через ssh -туннель в /home/backup-home tar cf - . | ( cd /tmp/backup ; tar xf - ) // копирование одной директории в другую с сохранением полномочий и линков find /home/user1 -name '*.txt' | xargs cp -av --target-directory= /home/backup/ --parents // поиск в /home/user1 всех файлов, имена которых оканчиваются на '.txt' , и копирование их в другую директорию find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log. tar .bz2 // поиск в /var/log всех файлов, имена которых оканчиваются на '.log' , и создание bzip-архива из них dd if = /dev/hda of= /dev/fd0 bs=512 count=1 // создать копию MBR (Master Boot Record) с /dev/hda на флоппи-диск dd if = /dev/fd0 of= /dev/hda bs=512 count=1 // восстановить MBR с флоппи-диска на /dev/hda |
Сеть (LAN и WiFi)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | ifconfig eth0 // показать конфигурацию сетевого интерфейса eth0 ifup eth0 // активировать (поднять) интерфейс eth0 ifdown eth0 // деактивировать (опустить) интерфейс eth0 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 // выставить интерфейсу eth0 ip-адрес и маску подсети ifconfig eth0 promisc // перевести интерфейс eth0 в promiscuous-режим для "отлова" пакетов (sniffing) ifconfig eth0 -promisc // отключить promiscuous-режим на интерфейсе eth0 dhclient eth0 // активировать интерфейс eth0 в dhcp-режиме. 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) echo "1" > /proc/sys/net/ipv4/ip_forward // разрешить пересылку пакетов (forwarding) hostname // отобразить имя компьютера host www.linuxguide.it // разрешить имя www.linuxguide.it хоста в ip-адрес и наоборот host // 62.149.140.85 // разрешить имя www.linuxguide.it хоста в ip-адрес и наоборот ip link show // отобразить состояние всех интерфейсов mii-tool eth0 // отобразить статус и тип соединения для интерфейса eth0 ethtool eth0 // отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения netstat -tupn // отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, обеспечивающих эти соединения netstat -tupln // отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID'ы и имена процессов, слушающих порты tcpdump tcp port 80 // отобразить весь трафик на TCP-порт 80 (обычно - HTTP) iwlist scan // просканировать эфир на предмет, доступности беспроводных точек доступа iwconfig eth1 // показать конфигурацию беспроводного сетевого интерфейса eth1 mii-tool // для просмотра текущего состояния сетевого адаптера |
IPTABLES (firewall)
1 2 3 4 5 6 7 8 9 10 11 12 13 | iptables -t filter -nL // отобразить все цепочки правил iptables -nL // отобразить все цепочки правил iptables -t nat -L // отобразить все цепочки правил в NAT-таблице iptables -t filter -F // очистить все цепочки правил в filter-таблице iptables -F // очистить все цепочки правил в filter-таблице 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) POP3-соединения iptables -t filter -A INPUT -j LOG --log-prefix "DROP INPUT" // включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса "DROP INPUT" iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE // включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами. iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.2:22 // перенаправление пакетов, адресованных одному хосту, на другой хост |
Мониторинг и отладка
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | top // отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных) ps -eafw // отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды) ps -e -o pid,args --forest // вывести PID'ы и процессы в виде дерева pstree // отобразить дерево процессов kill -9 98989 // "убить" процесс с PID 98989 "на смерть" (без соблюдения целостности данных) kill -KILL 98989 // "убить" процесс с PID 98989 "на смерть" (без соблюдения целостности данных) kill -TERM 98989 // Корректно завершить процесс с PID 98989 kill -1 98989 // заставить процесс с PID 98989 перепрочитать файл конфигурации kill -HUP 98989 // заставить процесс с PID 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 // вывести десять последних записей из системного журнала dmesg | grep httpd // для вывода буфера сообщений ядра с ошибраки, например при старте апача |
Другие полезные команды
1 2 3 4 5 6 7 8 9 10 11 12 | apropos ...keyword // выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду man ping // вызов руководства по работе с программой, в данном случае, - ping whatis ...keyword // отображает описание действий указанной программы mkbootdisk --device /dev/fd0 ` uname -r` // создаёт загрузочный флоппи-диск gpg -c file1 // шифрует файл file1 с помощью GNU Privacy Guard gpg file1.gpg // дешифрует файл file1 с помощью GNU Privacy Guard wget -r www.example.com // загружает рекурсивно содержимое сайта www.example.com wget -c www.example.com /file .iso // загрузить файл www.example.com /file .iso с возможностью останова и продолжения в последствии echo 'wget -c www.example.com/files.iso' ; | at 09:00 // начать закачку в указанное время ldd /usr/bin/ssh // вывести список библиотек, необходимых для работы ssh alias hh= 'history' // назначить алиас hh команде history chkconfig sendmail off // отключить Sendmail при каждой загрузке сервера |