Корректные: выключение, перезагрузка, выход из системы
# init 0
Выключить систему
# logout
Завершить текущую сессию
# reboot
Перезагрузка
# shutdown -h now
Еще один вариант корректного выключения
# shutdown -h 22:15 &
Запланировать выключение системы на 22 часа 15 минут
# shutdown -c
Отменить запланированное выключения системы
# shutdown -r now
Еще один вариант перезагрузки
# telinit 0
Тоже способ выключения системы
Вверх Получение различной информации о системе
# arch Вывести на экран архитектуру компьютера # uname -m Так-же выводит архитектуру компьютера # cal 2010 Печатает календарь на 2010 год. Без аргументов выводит календарь на текущий месяц # cat /proc/cpuinfo Вывести подробную информацию о процессоре # cat /proc/interrupts Вывести информацию о прерываниях # cat /proc/meminfo Выводит статистику использования памяти # cat /proc/swaps Вывести информацию о swap файле(ах) ( файл подкачки ) # cat /proc/version Вывести информацию о версии текущего ядра # cat /proc/net/dev Вывести информацию и статистику по сетевым устройствам # cat /proc/mounts Показать смонтированные файловые системы # clock -w Записать текущую системную дату в BIOS # date Вывести текущую системную дату и время # date 041217002007.00 Установить дату и время в значение МесяцДеньЧасМинутаГод.Секунда # dmidecode -q Вывести в читабельном виде информацию по аппаратному оборудованию системы (SMBIOS / DMI) # hdparm -i /dev/hda Вывести характеристики жесткого диска # hdparm -tT /dev/sda Измерять скорость чтения данных с жесткого диска # lspci -tv Вывести список устройств на шине PCI # lsusb -tv Вывести список устройств на USB шине # uname -r Вывести версию используемого ядра
Вверх Дисковое пространство
# df -h Вывод информации о свободном и занятом дисковом пространстве на смонтированных разделах, в формате, удобном для чтения # dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n Выводит объем используемого дискового пространства, занятого файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.) # du -sh dir Выводит объем дискового пространства, занимаемый директорией dir # du -sk * | sort -rn Выводит листинг файлов и директорий с размером, сортируя его по размеру # ls -lSr | more Выводит листинг файлов и директорий, сортируя по возрастанию размера и перенаправляет его в программу more для постраничного просмотра # rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n Выводит объем дискового пространства, занимаемого файлами rpm-пакета, с сортировкой по размеру ( fedora, redhat и т.п. )
Вверх
Работа с файлами и папками # pwd Вывести текущую директорию # cd /home Перейти в директорию /home # cd .. Перейти в родительский каталог, то есть подняться на уровень выше # cd ../.. Подняться в дереве каталогов на два уровня # cd Перейти в домашний каталог # cd ~user Перейти в домашний каталог пользователя user # cd - Перейти в предыдущую директорию, из которой был сделан переход в текущую директорию # cp -a test_1 test_2 Копировать директорию test_1 в директорию test_2 # cp file_1 file_2 Копировать файл file_1 в файл file_2 # cp -a /tmp/test . Rопировать директорию test и все ее содержимое в текущую директорию # cp test/* . Копировать все файлы содержащиеся в директории test в текущую директорию # iconv -l Выводит список доступных для использования кодировок # iconv -c -f windows-1251 -t utf-8 inputFile > outputFile Конвертировать файл из кодировки windows-1251 в кодировку utf-8 # ln -s /path/to/filedir ./link Создать в текущей директории символическую ссылку link на директорию или файл filedir # ln /path/to/filedir ./link Создать в текущей директории жесткую ссылку link на директорию или файл filedir # ls Вывести листинг содержимого текущей директории # ls -F Листинг текущей директории с добавлением к именам символов, обозначающих тип объекта # ls -l Листинг текущей директории с подробностями по каждому объекту ( права доступа, владелец, группа, дата, размер ) # ls -a Кроме обычных объектов, вывести в листинге, скрытые файлы и директории, текущего каталога # ls /tmp | pr -T5 -W$COLUMNS Листинг директории /tmp в 5 колонок # ls *[0-9]* Вывести в листинг файлов и директорий текущего каталога, содержащие в имени цифровые символы # lstree Листинг иерархии директорий и файлов, начиная с корневого каталога (/) # mkdir dir Создать в текущем каталоге, директорию с именем dir # mkdir dir_1 dir_2 Создать в текущем каталоге две директории, с именами dir_1 и dir_2 # mkdir -p /path/to/dir Создать иерархию директорий. Кроме самой директории dir будут созданы все промежуточные директории # mv filedir new_filedir Переместить ( переименовать ) файл или директорию из filedir в new_filedir # rm -rf /dir Рекурсивно удалить директорию dir и всё её содержимое, без запроса подтверждения на удаление # rm -f file Удалить файл file, без запроса подтверждения # rm -rf /dir_1 /dir_2 Удалить директории /dir_1 и /dir_2 вместе с содержимым, без запроса подтверждения # rmdir /dir Удалить директорию /dir # tree Вывести иерархию директорий и файлов, начиная с корневой (/) # touch -t 0712250000 file1 Изменить дату и время создания файла, если указанный файл не существует, создать его с указанными датой и временем (YYMMDDhhmm)
Вверх Поиск нужного файла
# find / -user vasya Найти все директории и файлы принадлежащие пользователю vasya. Поиск будет производиться, начиная с корневой директории (/) # find / -name filedir Найти директории и файлы с именем filedir. Поиск будет производиться, начиная с корневой директории (/) # find /usr/bin -type f -atime +20 Найти все файлы в директории /usr/bin, время последнего обращения к которым более 20 дней # find /usr/bin -type f -mtime -10 Найти все файлы в директории /usr/bin, которые были созданы или модифицированы в течении последних 10 дней # find / -xdev -name \*.rpm Искать директории и файлы, имена которых оканчиваются на ".rpm", но игнорируя съёмные накопители, cdrom, usb и т.п. # find . -maxdepth 1 -name *.jpg -print -exec convert Найти в текущей директории все файлы с расширением jpg и выполнить для каждого команду convert ( Imagemagick ) # find /path/to/dir -name \*.c Найти все директории и файлы, имена которых оканчиваются на ".с". Поиск будет производиться, начиная с директории /path/to/dir # find / -name *.rpm -exec chmod 755 '{}' \; Начиная с корня, найти все фалы и директории, имена которых оканчиваются на ".rpm", и для каждого изменить права доступа # whereis ls Вывод полных путей к бинарным файлам, файлом исходных кодов и руководств, имеющих отношение к файлу ls # locate \*.ps Поиск всех файлов, содержащих в имени ".ps" по специальной базе данных, предварительно сформированной командой updatedb # which ls Вывести полный путь до файла ls
Вверх Монтирование файловых систем
# mount /dev/hda1 /mnt/disk Монтировать устройство /dev/hda1 в папку с именем /mnt/disk. точка монтирования, папка /mnt/disk, должна существовать # fuser -km /mnt/hda1 Размонтировать устройство hda1 если оно заблокировано каким либо процессом # mount -o loop file.iso /mnt/cdrom Смонтировать фаил или образ ISO в директорию /mnt/cdrom # mount /dev/hdb /mnt/cdrecorder Монтировать cdrw или dvdrom # mount -t vfat /dev/hda5 /mnt/hda5 Смонтировать раздел с файловой системой FAT32 # mount /dev/cdrom /mnt/cdrom Монтировать cdrom или dvdrom # mount /dev/fd0 /mnt/floppy Монтировать floppy disk ( дисковод мягких дисков ) # mount /dev/hdc /mnt/cdrecorder Монтировать cdrw или dvdrom # mount /dev/sda1 /mnt/usbdisk Монтировать USB устройство # mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Монтировать сетевую файловую систему Windows (SMB/CIFS) # umount -n /mnt/hda2 Размонтировать без записи в файл /etc/mtab, используется в ситуациях, когда файл находится в режиме только чтение или жесткий диск переполнен # umount /dev/hda2 Размонтировать диск hda2, предварительно неоходимо выйти из точки монтирования /mnt/hda2
Вверх Пользователи и группы
# useradd -c "User Vasya" -g admin -d /home/vasya -s /bin/bash vasya Создать пользователя vasya, домашним каталогом будет создана директория /home/vasya, в качестве системной оболочки будет назначен /bin/bash, пользователь будет включен в группу admin, кроме того для учетной записи будет создан комментарий "User Vasya" # useradd vasya Создать пользователя vasya # usermod -c "User FTP" -g system -d /ftp/ftpuser -s /bin/nologin ftpuser Изменение пользователя # userdel -r vasya Удалить пользователя с именем vasya и его домашнюю директорию # groupadd [ group_name ] Создать группу с именем group_name # chage -E 2005-12-31 vasya Установить дату окончания действия учётной записи пользователя vasya # groupdel [ group_name ] Удалить группу group_name # groupmod -n test new_test Переименовать группу test в new_test # newgrp - [group] Изменяет основную группу текущего пользователя. При указании "-", ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, основная группа будет назначена из файла /etc/passwd # grpck Проверка корректности системных файлов учётных записей. Проверяется файл/etc/group # pwck Проверка корректности системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow # passwd Изменить пароль текущего пользователя # passwd vasya Изменить пароль пользователя vasya ( может выполнять только root )
Вверх Атрибуты файлов
# chattr +a file Разрешает только добавление данных в файл # chattr +d file Игнорировать данный файл при создании резервной копии с помощью программы dump # chattr +c file Разрешить ядру автоматически сжимать/разжимать содержимое файла # chattr +i file1 Защита файла от каких либо изменений или манипуляций: редактирование, перемещение, удаление, создание ссылок на него # chattr +S file1 Определяет, будет-ли при сохранении изменений, произведена синхронизация, как при использовании команды sync # chattr +u file1 При удалении файла с данным атрибутом, его будет сохранено, что-бы оставить пользователю возможность восстановить данные в случае необходимости # chattr +s file1 Позволяет безвозвратное удаление данного файла. При удалении файла с этим атрибутом, место на диске, занимаемое файлом, перезаписывается нулями, после чего файл уже не подлежит восстановлению # lsattr Листинг файлов с атрибутами
Вверх Работа с правами доступа файлов и директорий
# chown vasya /file Назначить пользователя vasya владельцем файла file # chown -R vasya directory Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий # chown vasya:group /file Назначить владельца и группу для файла /file # chmod ugo+rwx /directory Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory # chmod go-rwx /directory Удалить все права на директорию /directory для группы и остальных # chgrp new_group file Изменить группу-владельца для file на new_group # chmod o+t /home/public Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла # chmod o-t /home/public Удалить STIKY-бит с директории /home/public # 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 # find / -perm -u+s Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы # ls -lh Листинг текущего каталога с правами доступа
Вверх Архивация и сжатие файлов
# gzip -9 file1 Поместить файл file1 в архив gzip с максимальной степенью сжатия # rar a file1.rar file1 file2 dir1 Создать rar архив file1.rar, заархивировав файлы: file1, file2 и директорию: dir1 # rar a file1.rar test_file Упаковать в rar архив file1.rar файл test_file # rar x file.rar Разархивировать rar архив file.rar # bzip2 file1 Сжимает файл file1 # bunzip2 file1.bz2 Разжимает файл file1.bz2 # gzip file1 Сжимает файл file1 # gunzip file1.gz Разжимает файл file1.gz # tar -cvf archive.tar file1 file2 dir1 Создать tar архив archive.tar, упаковав в него файлы file1, file2 и директорию dir1 # tar -cvf archive.tar file Упаковать в tar-архив archive.tar, файл file # tar -tf archive.tar Вывести содержимое tar архива # tar -xvf archive.tar Распаковать tar архив # tar -xvf archive.tar -C /tmp Распаковать архив в /tmp # tar -cvfz archive.tar.gz dir1 Создать tar архив и сжать его с помощью программы gzip # tar -xvfz archive.tar.gz Разжать tar архив и распаковать его # tar -cvfj archive.tar.bz2 dir1 Создать архив и сжать его с помощью bzip2 ( ключ -j работает не во всех *nix системах ) # tar -xvfj archive.tar.bz2 Разжать архив и распаковать его ( ключ -j работает не во всех *nix системах ) # zip file1.zip file1 Создать сжатый zip-архив # zip -r file1.zip file1 file2 dir1 Запаковать в архив несколько файлов и/или директорий # unzip file1.zip Разжать и распаковать zip-архив # unrar x file1.rar Распаковать rar-архив
Вверх Работа с RPM пакетами ( Fedora, Red Hat и им подобные дистрибутивы )
# rpm -e [ package ] Удалить пакет package # rpm -qa | grep httpd Вывести список установленных в системе пакетов и отобрать, содержащие в своем имени httpd # rpm -qa Вывести список всех установленных в системе пакетов # rpm -qi [ package ] Вывести информацию о пакете package # rpm -ivh [package.rpm] Установить пакет с выводом сообщений и прогресс-бара # rpm -U [package.rpm] Обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен # rpm -ivh --nodeeps [package.rpm] Установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей # rpm -F [package.rpm] Обновить пакет только если он установлен # rpm -q [package] --whatprovides Список предоставляемой функциональности # rpm -q [package] --changelog Вывести историю ревизий пакета # rpm -q [package] --scripts Отобразит скрипты, запускаемые при установке/удалении пакета # rpm -qf /etc/httpd/conf/httpd.conf Проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла # rpm -qg "System Environment/Daemons" Отобразить пакеты входящие в группу пакетов ( fedora, redhat ) # rpm -qc [package] Вывести список конфигурационных файлов, входящих в пакет # rpm -ql [package] Вывести список файлов, входящих в пакет # rpm -q [package] --whatrequires Вывести список пакетов, необходимых для установки конкретного пакета по зависимостям # rpm -qp [package.rpm] -l Отображает список файлов, входящих в пакет, но ещё не установленных в систему # rpm -Va Проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью! # rpm -ivh /usr/src/redhat/RPMS/`arch`/[package.rpm] Установить пакет, собранный из исходных кодов # rpm -Vp [package.rpm] Проверить пакет, который ещё не установлен в систему # rpm2cpio [package.rpm] | cpio --extract --make-directories *bin* Извлечь из пакета файлы содержащие в своём имени bin # rpm --import /media/cdrom/RPM-GPG-KEY Импортировать публичный ключ цифровой подписи # rpm --checksig [package.rpm] Проверит подпись пакета # rpm -qa gpg-pubkey Проверить целостность установленного содержимого пакета # rpm -V [package] Проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменения пакета # rpmbuild --rebuild [package.src.rpm] Собрать пакет из исходных кодов
Вверх Средство управления пакетами - YUM ( Fedora, RedHat и т.д. )
# yum list Вывести листинг пакетов, установленных в системе # yum clean headers Удалить все заголовки файлов, которые система использует для разрешения зависимостей # yum clean [package] Очистить rpm-кэш, удалив закачанные пакеты # yum search [package] Найти пакет в репозитории # yum clean all Очистить rpm-кэш, удалив закачанные пакеты и заголовки # yum -y install [ package ] Скачать и установить пакет # yum update [package] обновить пакет # yum -y update Обновить все пакеты, установленные в систему # yum localinstall [ package.rpm ] Попытаться установить пакет RPM и все зависимые от него пакеты, используя ваши репозитории # yum remove [package] Удалить пакет
Вверх Средства управления DEB пакетами ( Debian, Ubuntu и т.д. )
# dpkg -l Список пакетов, установленных в системе # dpkg -r [package] Удалить пакет из системы # dpkg -i [package.deb] Установить / обновить пакет # dpkg -l | grep httpd Вывести список установленных в системе пакетов, отобрав, содержащие в своем названии httpd # dpkg -s [package] Вывести информацию о конкретном пакете # dpkg --contents [package.deb] Вывести список файлов, входящих в пакет, который ешё не установлен в систему # dpkg -L [package] Вывести список файлов, входящих в пакет, установленный в систему # dpkg -S /bin/ping В какой пакет входит указанный файл.
Вверх Система управления пакетами Pacman ( Arch, Frugalware and alike )
# pacman -S name Установить пакет name со всеми зависимостями # pacman -R name Удалить пакет и все его файлы
Вверх Средство управление пакетами - APT ( Debian, Ubuntu и т.д. )
# apt-cache search [ package ] Вывести список пакетов, чье имя совпадает со строкой package # apt-get check Проверить зависимости # apt-cdrom install [ package ] Установить / обновить пакет с cdrom'а # apt-get install [ package ] Установить / обновить пакет # apt-get upgrade Обновить установленные в систему пакеты # apt-get remove [ package ] Удалить установленный пакет из системы, сохранив файлы конфигурации # apt-get update Обновить списки пакетов репозитария # apt-get clean Удалить загруженные архивные файлы пакетов
Вверх Анализ файловой системы
# badblocks -v /dev/hda1 Проверить раздел hda1 на наличие bad-блоков # fsck /dev/hda1 Проверить и при необходимости попробовать восстановить целостность linux-файловой системы раздела hda1 # fsck.ext2 /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы ext2 раздела hda1 # fsck.msdos /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы fat раздела hda1 # fsck.vfat /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы fat раздела hda1 # fsck.ext3 /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы ext3 раздела hda1 # dosfsck /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы fat, раздела hda1 # e2fsck /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы ext2 раздела hda1 # e2fsck -j /dev/hda1 Проверить и при необходимости попробовать восстановить целостность файловой системы ext3 раздела hda1, журнал файловой системы расположен там же
Вверх Просмотр содержимого файлов
# cat file1 Вывести все содержимое файла начиная с первой строки # head -2 file1 Отобразить две первые строки файла # tac file1 Отобразить содержимое файла начиная с последней строки # tail -f /var/log/messages В реальном времени выводить все, что добавляется в файл # tail -2 file1 Вывести две последние строки файла # more file1 Отобразить содержимое файла постранично # less file1 Аналогична команде more но позволяет перемещаться по содержимому вперед и назад
Вверх Манипуляции с текстом
# cat -n file1 Вывести содержимое файла, нумеруя выводимые строки # cat example.txt | awk 'NR%2==1' Вывести только не четные строки файла # echo a b c | awk '{print $1,$3}' Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции # echo a b c | awk '{print $1}' Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции # comm -3 file1 file2 Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах # comm -1 file1 file2 Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1 # comm -2 file1 file2 Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2 # grep [0-9] /var/log/messages Отобрать и вывести строки содержащие цифровые символы из файла /var/log/messages # grep ^Aug /var/log/messages Отобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages # grep Aug /var/log/messages Отобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages # grep Aug -R /var/log/* Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже # paste -d '+' file1 file2 Объединить содержимое file1 и file2 в виде таблицы с разделителем "+" # paste file1 file2 Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m # sdiff file1 file2 Сравнить содержимое двух файлов # sed 's/string1/string2/g' example.txt Заменить string1 на string2 в файле example.txt и вывести содержимое # sed '/ *#/d; /^$/d' example.txt Удалить пустые строки и комментарии из файла example.txt # sed '/^$/d' example.txt Удалить пустые строки и комментарии из файла example.txt # sed -e '1d' exampe.txt Удалить первую строку из файла example.txt # sed -n '/string1/p' Отобразить только строки содержащие string1 # sed -e 's/string//g' example.txt Удалить строку string1 из текста файла example.txt не изменяя всего остального # sed -e 's/ *$//' example.txt Удалить пустые символы в конце каждой строки файла example.txt # sed -n '5p;5q' example.txt Вывести пятую строку # sed -n '2,5p' example.txt Вывести строки со второй по пятую # sed -e 's/00*/0/g' example.txt Заменить последовательность из любого количества нулей одним нулём # sort file1 file2 Вывести отсортированное содержимое двух файлов # sort file1 file2 | uniq Вывести отсортированное содержимое двух файлов исключая повторные значения # sort file1 file2 | uniq -u Вывести уникальные значения из отсортированного содержимого двух файлов # sort file1 file2 | uniq -d Вывести только повторяющиеся значения из отсортированного содержимого двух файлов # echo 'word' | tr '[:lower:]' '[:upper:]' Перевести символы нижнего регистра в верхний
Вверх Конвертирование соодержимого текстовых файлов
# dos2unix filedos.txt fileunix.txt Конвертировать содержимое текстового файла из MSDOS кодировки в UNIX кодировку (разница в символах возврата коретки) # unix2dos fileunix.txt filedos.txt Конвертировать содержимое текстового файла из UNIX кодировки в MSDOS кодировку (разница в символах возврата коретки) # recode ..HTML < page.txt > page.html Конвертировать содержимое тестового файла page.txt в html-файл page.html # recode -l | more Вывести список доступных форматов
Вверх Файловая система SWAP ( файл подкачки )
# mkswap /dev/hda3 Создание swap-пространство на разделе hda3 # swapon /dev/hda3 Включить swap-пространство, расположенное на разделе hda3 # swapon /dev/hda2 /dev/hdb3 Активировать swap-пространства, расположенные на разделах hda2 и hdb3
Вверх Форматирование файловой системы
# fdformat -n /dev/fd0 Форматирование флоппи-диска без проверки # mkfs /dev/hda1 Создать файловую систему linux на разделе hda1 # mke2fs -j /dev/hda1 Создать журналируемую файловую систему ext3 на разделе hda1 # mke2fs /dev/hda1 Создание файловой системы ext2 на разделе hda1 # mkfs -t vfat 32 -F /dev/hda1 Создать файловую систему FAT32 на разделе hda1
Вверх Резервное копирование ( Backup )
# find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 Поиск всех файлов, заканчивающихся на ".log" в директории /var/log, и упаковка их в bzip-архив # find /home/user -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents Поиск в директории /home/user файлов, имена которых оканчиваются на ".txt", и копирование их в другую директорию # rsync -rogpav --delete /home /tmp Синхронизировать директории /tmp и /home # rsync -az -e ssh --delete ip_addr:/home/public /home/local Синхронизировать локальную и удаленную директории через ssh туннель используя сжатие # rsync -rogpav -e ssh --delete /home ip_address:/tmp Синхронизация через 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 туннель # dd if=/dev/hda of=/dev/fd0 bs=512 count=1 Создание копии MBR ( Master Boot Record ) с /dev/hda на флоппи-диск # dd if=/dev/sda of=/tmp/backup Создание резервной копии содержимого жесткого диска в файл backup # dd if=/dev/fd0 of=/dev/hda bs=512 count=1 Восстановить MBR с флоппи-диска на /dev/hda # 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 # 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 в директорию /home/share/ удалённого сервера, используя ssh туннель # ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' Упаковка в архив и копирование содержимого /home в директорию /home/backup-home удалённого сервера, используя ssh туннель # tar cf - . | (cd /tmp/backup ; tar xf - ) Упаковка в архив и копирование одной директории в другую с сохранением прав доступа и ссылок
Вверх CDROM
# cd-paranoia -B Перенести аудио-треки с компакт-диска в wav-файлы. # cd-paranoia -- Перенести три аудио-трека с компакт-диска в wav-файлы. # cdrecord -v dev=/dev/cdrom cd.iso Записать ISO-образ на компакт-диск. # gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - Записать сжатый ISO-образ на компакт-диск. # mkisofs /dev/cdrom > cd.iso Создать ISO-образ компакт-диска. # mkisofs -J -allow-leading-dots -R -V Создать ISO-образ из содержимого директории. # mkisofs /dev/cdrom | gzip > cd_iso.gz Создать сжатый ISO-образ компакт-диска. # mount -o loop cd.iso /mnt/iso Смонтировать ISO-образ компакт-диска в файловую систему. # cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force Очистить перезаписываемый компакт-диск. # cdrecord --scanbus Сканировать системную шину для поиска идентификаторов SCSI каналов. # dd if=/dev/hdc | md5sum Вычислить контрольную сумму MD5 для устройства, например, компакт-диска.
Вверх Сети (LAN / WiFi)
# dhclient eth0 Включить DHCP на сетевом интерфейсе eth0 # ethtool eth0 Вывод статистики по сетевому интерфейсу eth0 # hostname Вывести имя компьютера # host www.example.com Преобразовать домен www.example.org в ip-адрес и наоборот # ifconfig eth0 Вывести настройки сетевой карты eth0 # ifconfig eth0 promisc Переключить интерфейс eth0 в promiscuous-режим для сбора ( сниффинг ) сетевых пакетов # ifup eth0 Включить сетевой интерфейс eth0 # ifdown eth0 Отключить сетевой интерфейс eth0 # ifconfig eth0 192.168.1.1 netmask 255.255.255.0 Назначить IP адрес и маску сетевому интерфейсу eth0 # ip link show Вывести статус связи всех сетевых интерфейсов # iwconfig eth1 Вывести конфигурацию беспроводного сетевого интерфейса eth1 # iwlist scan Сканирование и поиск беспроводных сетей и точек доступа # mii-tool eth0 Вывести состояние связи сетевого интерфейса eth0 # nslookup www.example.com Ресольвить ( преобразовать/разрешить ) доменное имя www.example.org в ip-адрес и наоборот # route -n Песать локальной таблицы маршрутизации # 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 add -net 0/0 gw IP_Gateway Назначить ip-адрес шлюза по умолчанию ( default gateway ) # route del 0/0 gw IP_gateway Удалить ip-адрес шлюза по умолчанию ( default gateway ) # netstat -tup Выводит листинг всех установленных соединений по протоколам TCP и UDP без разрешения имён в ip-адреса а так-же PID'ы и имена процессов, обслуживающих данные соединения # netstat -tupl Вывод списка соединений по протоколам TCP и UDP без разрешения имён в ip-адреса а так-же и PID'ы и имена процессов, ожидающих соединений на сетевых портах # netstat -rn Вывести таблицу маршрутизации, аналог команды route -n # echo "1" > /proc/sys/net/ipv4/ip_forward Разрешить форвардинг ( пересылку ) пакетов # tcpdump tcp port 80 Отлавливать и выводить весь трафик на TCP-порт 80 (обычно - HTTP) # whois www.example.com Вывести информацию о доменном имени из базы данных whois
Вверх Microsoft Windows networks (samba)
# mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share Монтировать smb-ресурс, расшаренный на windows-машине, в папку локальной файловой системы # nbtscan ip_addr Преобразовать имя netbios. Программа nbtscan не во всех системах присутствует по-умолчанию, nmblookup включен в пакет samba # nmblookup -A ip_addr Преобразовать имя netbios. Программа nbtscan не во всех системах присутствует по-умолчанию, nmblookup включен в пакет samba # smbclient -L ip_addr/hostname Вывести список ресурсов, выделенных в общий доступ на windows-машине # smbget -Rr smb://ip_addr/share Аналог программы wget для SMB протокола
Вверх Фаервол IPTABLES, штатный, для большинства дистрибутивов Linux
# iptables -t filter -L Вывести список всец цепочек правил # iptables -t nat -L Вывести все цепочки из NAT таблицы # iptables -t nat -F Очистить все цепочки правил в таблице NAT # iptables -t filter -X Очистить все пользовательские цепочки правил в таблице filter # iptables -t filter -F Очистить все цепочки правил в таблице 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 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 Пересылка пакетов, адресованных одному хосту, на другой хост # iptables -t filter -A INPUT -j LOG --log-prefix Включить логгирование пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса "DROP INPUT" # iptables -t filter -A FORWARD -p tcp --dport pop3 -j ACCEPT Разрешить форвардинг POP3 соединений
Вверх Мониторинг и отладка системы
# free -m Вывод статистики по оперативной памяти # kill -9 proc_id Убить процесс с PID proc_id, без соблюдения целостности данных, то есть насмерть # kill -1 proc_id Перечитать файл конфигурации процессом с PID proc_id # last reboot Вывод истории ребутов системы # lsof /home/user1 Вывести список открытых файлов из директории /home/user1 # lsof -p proc_id Вывести список файлов, открытых процессом с PID proc_id # lsmod Список загруженных модулей ядра # ps -e -o pid,args --forest Вывести список PID'ов и процессов в виде дерева # ps -eafw Отобразить работающие в системе процессы, используемые ими ресурсы и другую полезную информацию ( единожды ) # pstree Вывести дерево процессов # smartctl -i /dev/hda Проверить доступность SMART на жёстком диске /dev/hda # smartctl -A /dev/hda Проверка состояния жёсткого диска /dev/hda через SMART # strace -c ls >/dev/null Вывести список системных вызовов, созданных и полученных процессом ls # strace -f -e open ls >/dev/null Вывести список вызовов системных бибилотек # tail /var/log/messages Вывести десять последних записей из системного журнала # tail /var/log/dmesg Вывести десять последних записей из журнала загрузки ядра # top Вывести список работающих в системе процессов с различной полезной информацией в режиме реального времени с автоматическим обновлением данных # watch -n1 'cat /proc/interrupts' Выводить прерывания в режиме реального времени
TOP Другие полезные команды
# alias hh='history' Создать псевдоним hh для команды history # apropos ...keyword Вывод комманд, так или иначе относящихся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду # chsh Изменить системную оболочку пользователя # gpg -c file1 Шифрует файл file1 с помощью GNU Privacy Guard # gpg file1.gpg Дешифрует файл file1 с помощью GNU Privacy Guard # ldd /usr/bin/ssh Список библиотек, используемых программой ssh # man ping Ввывод страниц руководства по работе с программой, в данном случае, ping # mkbootdisk --device /dev/fd0 `uname -r` Создаёт загрузочный флоппи-диск # 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 Включить закачку в определенное время # whatis ...keyword Вывести описание действий указанной программы # who -a Вывести список залогиненных пользователей, время последней загрузки системы и прочую полезную информацию