Полезные команды Linux
Ниже представлены различные команды системной оболочки Unix подобных операционных систем.
Имейте в виду, это просто сборник, не относящийся к какому-то конкретному дистрибутиву, то есть многие из этих команд, специфичны для какой-то определенной системы и могут отсутствовать в других дистрибутивах Linux.
Большинство из приведенных ниже команд, являются достаточно повседневными, то есть часто используются в процессе администрирования Unix систем ( различных дистрибутивов Linux ).
- Корректные: выключение, перезагрузка, выход из системы
- Информация о системе
- Дисковое пространство
- Файлы и папки
- Поиск файлов
- Монтирование файловых систем
- Пользователи и группы
- Атрибуты файлов
- Права доступа
- Архивация файлов
- Работа с RPM пакетами
- Система управления пакетами YUM
- Работа с DEB пакетами
- Система управления пакетами Pacman
- Система управления пакетами APT
- Анализ файловой системы
- Вывод содержимого файлов
- Манипуляции с текстом
- Конвертирование содержимого файлов
- Файловая система SWAP
- Форматирование файловых систем
- Резервное копирование
- CDROM
- Сеть ( LAN/WiFi )
- SAMBA
- Фаервол IPTABLES
- Мониторинг и отладка системы
- Другие полезные команды
Корректные: выключение, перезагрузка, выход из системы
- # 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'
- Выводить прерывания в режиме реального времени
Другие полезные команды
- # 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
этот ключ не актуален, но и вреда от него ноль )
Спасибо. Просто круто !!!
Отправить комментарий