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

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

Корректные: выключение, перезагрузка, выход из системы

# 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
Вывести список залогиненных пользователей, время последней загрузки системы и прочую полезную информацию
]]>Вверх]]> ]]>оригинал документа]]>

Комментарии

Спасибо за инфу!

Огромное спасибо за подборку! Для новичка в linux это лучше любой книжки. В букмарки однозначно.

Спасибо, весьма полезно. Позабавил вот этот бред: "Песать локальной таблицы маршрутизации"

сори, там должно быть пеЧать )) поправлю

Очень полезно.
Спасибо!

Спасибо, пользуюсь регулярно.
Нашёл ошибку: "tar -xvfz archive.tar.gz" - "z" лишняя.

если не ошибаюсь он без нее не сможет gzip распаковать

Возможно. Просто у меня только после удаления "z" распаковался .tar.gz

этот ключ не актуален, но и вреда от него ноль )

Спасибо. Просто круто !!!

сигейн шешеси котакбастар
амшык мал

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
Регистр имеет значение
 oooo    oooo            oooo         ooooo  ooooo      ooo    .o  
`888 .8P' `888 `888' `888b. `8' o888
888 d8' .oooo.o 888 oooo 888 8 `88b. 8 888
88888[ d88( "8 888 .8P' 888 8 `88b. 8 888
888`88b. `"Y88b. 888888. 888 8 `88b.8 888
888 `88b. o. )88b 888 `88b. 888 8 `888 888
o888o o888o 8""888P' o888o o888o o888o o8o `8 o888o


Введите код, изображенный в стиле ASCII-арт.