Инструменты пользователя

Инструменты сайта


команды_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 .

Копировать директорию 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.txt · Последние изменения: 2013/11/15 13:07 — 217.197.231.166