Здесь представлен список команд Linux для выполнения типичных операций.
Команды, отмеченные знаком • "готовы к употреблению" и могут быть скопированы, вставлены и использованы в терминале без каких-либо ограничений.
Команда | Описание | |
---|---|---|
• | apropos word | Показать команды, соответствующие слову word. См. также threadsafe |
which command | Показать полное имя команды | |
time command | Показать время выполнения команды | |
• | time cat | Запустить таймер. Для остановки использовать Ctrl-d. См. также sw |
• | nice info | Запустить команду (в данном случае info) с низким приоритетом выполнения |
• | renice 19 -p $$ | Понизить приоритет выполнения оболочки (скрипта). Используется для неинтерактивных задач |
• | look prefix | Быстрый поиск по (отсортированному) словарю |
• | grep –color expr...ion /usr/share/dict/words | Подсветка совпадений с регулярным выражением в словаре |
gpg -c file | Зашифровать файл | |
gpg file.gpg | Расшифровать файл | |
• | alias hd='od -Ax -tx1z -v' | Удобный шестнадцатеричный дамп. (пример использования: • hd /proc/self/cmdline | less) |
• | alias realpath='readlink -f' | Привести путь к каноническому виду. (пример использования: • realpath ~/../$USER) |
• | set | grep $USER | Поиск в текущей среде окружения |
• | ls /usr/bin | pr -T9 -W$COLUMNS | Вывод в 9 столбцов по ширине терминала |
touch -c -t 0304050607 file | Задать временную отметку (timestamp) файла (ГГММДДччмм) | |
Навигация по директориям | ||
• | cd - | Перейти в предыдущую директорию |
• | cd | Перейти в домашнюю директорию |
(cd dir && command) | Перейти в директорию, выполнить команду и вернуться в текущую директорию | |
• | pushd . | Поместить текущую директорию в стек, так что Вы сможете к ней вернуться с помощью popd |
CD-диски | ||
gzip < /dev/cdrom > cdrom.iso.gz | Сохранить копию cdrom с данными | |
mkisofs -V NAME -r dir | gzip > cdrom.iso.gz | Создать образ CD на основе содержимого директории | |
mount -o loop cdrom.iso /mnt/dir | Монтировать образ CD в /mnt/dir (только на чтение) | |
cdrecord -v dev=/dev/cdrom blank=fast | Очистить CDRW-болванку | |
gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom - | Записать образ CD (используйте dev=ATAPI -scanbus для подтверждения устройства) | |
cdparanoia -B | Преобразовать звуковые дорожки с CD в wav файлы в текущей директории | |
cdrecord -v dev=/dev/cdrom -audio *.wav | Создать звуковой CD из всех wav-файлов в текущей директории (см. также cdrdao) | |
oggenc –tracknum='track' track.cdda.wav -o 'track.ogg' | Преобразовать wav-файл в ogg-файл | |
Архивы | ||
tar c dir/ | bzip2 > dir.tar.bz2 | Создать из dir/ архив | |
bzip2 -dc dir.tar.bz2 | tar x | Извлечь содержимое архива (использовать gzip вместо bzip2 для файлов tar.gz) | |
tar c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg' | Создать из dir/ криптованный архив на удалённой машине | |
find dir/ -name '*.txt' | tar c –files-from=- | bzip2 > dir_txt.tar.bz2 | Создать архив из выборки по директории dir/ и ниже | |
find dir/ -name '*.txt' | xargs cp -a –target-directory=dir_txt/ –parents | Создать копию выборки по директории dir/ и ниже | |
( tar c /dir/to/copy ) | ( cd /where/to/ && tar x -p ) | Копировать (с полномочиями) директорию copy/ в директорию /where/to/ | |
( cd /dir/to/copy && tar c . ) | ( cd /where/to/ && tar x -p ) | Копировать (с полномочиями) содержимое директории copy/ в /where/to/ | |
( tar c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ && tar x -p' | Копировать (с полномочиями) директорию copy/ в директорию remote:/where/to/ | |
dd bs=1M if=/dev/hda | gzip | ssh user@remote 'dd of=hda.gz' | Создать резервную копию жёсткого диска на удалённой машине | |
rsync (для тестов использовать опцию –dry-run) | ||
rsync -P rsync://rsync.server.com/path/to/file file | Получение только различий. Позволяет выполнять синхронизацию в несколько заходов в случае проблем с закачкой | |
rsync –bwlimit=1000 fromfile tofile | Локальное копирование с ограничением скорости. Подобно nice для ввода/вывода | |
rsync -az -e ssh –delete ~/public_html/ remote.com:'~/public_html' | Создать "зеркало" веб-сайта (используя сжатие и шифрование) | |
rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/ | Синхронизировать текущую директорию с удалённой | |
Поиск файлов | ||
• | alias l='ls -l –color=auto' | Быстрый листинг директории |
• | ls -lrt | Листинг файлов, отсортированный по дате. См. также newest |
find -name '*.[ch]' | xargs grep -E 'expr' | Искать 'expr' в текущей директории и ниже. См. также findrepo | |
find -type f -print0 | xargs -r0 grep -F 'string' | Искать во всех обычных файлах в текущей директории и ниже строку 'string' | |
find -maxdepth 1 -type f | xargs grep -F 'string' | Искать во всех обычных файлах в текущей директории строку 'string' | |
find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done | Произвести над каждым элементом списка несколько действий (в цикле while) | |
• | find -type f ! -perm -444 | Поиск файлов, не доступных на чтение для всех (полезно для веб-сайта) |
• | find -type d ! -perm -111 | Поиск директорий, не доступных для всех (полезно для веб-сайта) |
• | locate -r 'file[^/]*\.txt' | Поиск имён файлов в кешированном индексе. Окончание команды работает как шаблон *file*.txt |
Работа в сети (обратите внимание, команды ifconfig, route, mii-tool, nslookup - устаревшие) | ||
• | ip link show | Список сетевых интерфейсов |
ethtool interface | Вывести статус сетевого интерфейса | |
ip link set dev eth0 name wan | Переименовать eth0 в wan | |
ip addr add 1.2.3.4/24 brd + dev eth0 | Добавить ip и маску (255.255.255.0) | |
ip link set dev interface up | Подключить сетевой интерфейс (или отключить, используя interface down) | |
ip route add default via 1.2.3.254 | Установить по-умолчанию шлюз 1.2.3.254 | |
• | tc qdisc add dev lo root handle 1:0 netem delay 20msec | Добавить задержку ответа в 20мс устройству обратной связи (для тестирования) |
• | tc qdisc del dev lo root | Убрать заданную выше задержку |
• | host pixelbeat.org | Определить ip-адрес по имени хоста и наоборот |
• | hostname -i | Определить локальный ip-адрес (то же, что и host `hostname`) |
• | netstat -tupl | Вывести список internet-сервисов в системе |
• | netstat -tup | Вывести список активных соединений с системой / системы |
wget (многофункциональная утилита закачки) | ||
• | (cd cmdline && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html) | Сохранить локальную, пригодную для просмотра версию веб-страницы в текущей директории |
wget -c http://www.example.com/large.file | Возобновление закачки частично скаченного файла | |
wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/ | Скачать группу файлов в текущую директорию | |
wget ftp://remote/file[1-9].iso/ | FTP поддерживает непосредственную подстановку | |
• | wget -q -O- http://www.pixelbeat.org/timeline.html | grep 'a href' | head | Непосредственно обработать вывод |
echo 'wget url' | at 01:00 | Скачать url в час ночи в текущую директорию | |
wget –limit-rate=20k url | Осуществить закачку с низким приоритетом (в данном случае ограничение - 20Kb/s) | |
wget -nv –spider –force-html -i bookmarks.html | Проверить ссылки в файле | |
wget –mirror http://www.example.com/ | Эффективно обновить локальную копию сайта (удобно вызывать по cron-у) | |
windows (отметьте, что samba - это пакет, обеспечивающий всю специфичную для windows поддержку сети) | ||
• | smbtree | Найти машины под windows. См. также findsmb |
nmblookup -A 1.2.3.4 | Найти виндовое (netbios) имя, привязанное к ip-адресу | |
smbclient -L windows_box | Вывести список расшаренных ресурсов на машине под windows или сервере samba | |
mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share | Монтировать расшаренную windows-папку | |
echo 'message' | smbclient -M windows_box | Послать сообщение во всплывающем окне на windows-машину (по-умолчанию отключено в XP sp2) | |
Математика | ||
• | echo '(1 + sqrt(5))/2' | bc -l | Быстрые математические вычисления (вычислить φ) |
• | echo 'obase=16; ibase=10; 123' | bc | Смена системы счисления (десятичной на шестнадцатиричную) |
• | echo $((0x2dec)) | Смена системы счисления (шестнадцатеричной на десятичную) ((арифметическое расширение shell)) |
• | echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bc | Более сложное (целочисленное) выражение. В примере вычисляется максимальная норма прохождения пакетов в сети FastEthernet |
• | echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | python | Python понимает научную форму записи чисел |
• | echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persist | Построить график нормы прохождения пакетов в сети FastEthernet в зависимости от размера пакетов |
Манипуляции с текстом (отметьте, что sed использует потоки stdin и stdout, поэтому если Вы хотите редактировать файлы, добавляйте к командам <oldfile >newfile) | ||
sed 's/string1/string2/g' | Заменить string1 на string2 | |
sed 's/\(.*\)1/\12/g' | Преобразовать anystring1 в anystring2 | |
sed '/ *#/d; /^ *$/d' | Удалить комментарии и пробельные строки | |
sed ':a; /\\$/N; s/\\\n//; ta' | Произвести конкатенацию (объединение) строк конечными \ | |
sed 's/[ \t]*$//' | Убрать конечные пробелы из строк | |
sed 's/\([\\`\\"$\\\\])/\\\1/g' | Экранировать метасимволы shell, срабатывающие в двойных кавычках | |
sed -n '1000p;1000q' | Вывести 1000ую строку | |
sed -n '10,20p;20q' | Вывести строки с 10 по 20 | |
sed -n 's/.*<[tT][iI][tT][lL][eE]>\(.*\)<\/[tT][iI][tT][lL][eE]>.*/\1/p;T;q' |
Извлечь заголовок из HTML-страницы | |
sort -t. -k1,1n -k2,2n -k3,3n -k4,4n | Сортировка ip-адресов стандарта IPV4 | |
• | echo 'Test' | tr '[:lower:]' '[:upper:]' | Смена регистра букв |
• | tr -dc '[:print:]' < /dev/urandom | Фильтровать невыводимые символы |
• | grep 'processor' /proc/cpuinfo | wc -l | Подсчёт числа строк |
Операции над множествами (Обратите внимание, LANG=C задано для большей скорости) | ||
LANG=C sort file1 file2 | uniq | Объединение несортированных файлов | |
LANG=C sort file1 file2 | uniq -d | Пересечение несортированных файлов | |
LANG=C sort file1 file1 file2 | uniq -u | Разница между несортированными файлами | |
LANG=C sort file1 file2 | uniq -u | Симметрическая разность между несортированными файлами | |
LANG=C comm file1 file2 | sed 's/^\t*//' | Объединение отсортированных файлов | |
LANG=C comm -12 file1 file2 | Пересечение отсортированных файлов | |
LANG=C comm -13 file1 file2 | Разница между отсортированными файлами | |
LANG=C comm -3 file1 file2 | sed 's/^t*//' | Симметрическая разность между отсортированными файлами | |
Календарь | ||
• | cal -3 | Вывести календарь |
• | cal 9 1752 | Вывести календарь на определённый месяц года |
• | date -d fri | Узнать дату этой пятницы. См. также day |
• | date –date='25 Dec' +%A | На какой день в этом году выпадает католическое рождество? |
• | date –date '1970-01-01 UTC 1234567890 seconds' | Преобразовать число секунд с начала эпохи в дату |
• | TZ=':America/Los_Angeles' date | Который сейчас час на западном побережье США? (используйте tzselect для получения TZ - временной зоны) |
echo "mail -s 'get the train' P@draigBrady.com < /dev/null" | at 17:45 | Напоминание о событии по электронной почте | |
• | echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW + 30 minutes" | Высплывающее напоминание о событии |
Локали | ||
• | printf "%'d\n" 1234 | Вывести число с группировкой разрядов в соответствии с локалью |
• | echo "I live in `locale territory`" | Извлечь информацию из базы данных локали |
• | locale | cut -d= -f1 | xargs locale -kc | less | Вывести список полей в базе данных локали |
• | LANG=en_IE.utf8 locale int_prefix | Поиск информации о локали для заданной страны. См. также ccodes |
Дисковое пространство (см. также FSlint) | ||
• | ls -lSr | Вывести файлы, самые большие - в конце списка |
• | du -s * | sort -k1,1rn | head | Показать главных потребителей дискового пространства в текущей директории. См. также dutop |
• | df -h | Показать размер свободного дискового пространства |
• | df -i | Вывести свободные иноды (inodes) |
• | fdisk -l | Вывести размеры и типы дисковых партиций (запускать от root-а) |
• | rpm -q -a –qf "%10{SIZE}\t%{NAME}\n" | sort -k1,1n | Вывести список всех установленных пакетов, отсортированный по размеру (в байтах), на rpm-дистрибутивах |
• | dpkg-query -W -f="${Installed-Size;10}\t${Package}\n" | sort -k1,1n | Вывести список всех установленных пакетов, отсортированный по размеру (в килобайтах), на deb-дистрибутивах |
• | dd bs=1 seek=2TB if=/dev/null of=ext3.test | Создать большой тестовый файл (не занимающий места). См. также truncate |
Мониторинг / отладка | ||
• | strace -c ls >/dev/null | Подвести итог / детально показать системные вызовы, произведённые командой |
• | strace -f -e open ls >/dev/null | Вывести список системных вызовов, произведённых командой |
• | ltrace -f -e getenv ls >/dev/null | Вывести список библиотечных вызовов, произведённых командой |
• | lsof -p $$ | Вывести список путей, открытых процессом с заданным id |
• | lsof ~ | Вывести список процессов, открывших указанный путь |
• | tcpdump not port 22 | Показать сетевой траффик за исключением ssh. См. также tcpdump_not_me |
• | ps -e -o pid,args –forest | Вывести иерархический список процессов |
• | ps -e -o pcpu,cpu,nice,state,cputime,args –sort pcpu | sed '/^ 0.0 /d' | Список процессов с сортировкой по % использования cpu |
• | ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS | Список процессов с сортировкой по объёму использования памяти. См. также ps_mem.py |
• | ps -C firefox-bin -L -o pid,tid,pcpu,state | Вывести все нити (threads) для конкретного процесса |
• | ps -p 1,2 | Вывести информацию о процессах с указанными id |
• | last reboot | Показать историю перезагрузок системы. |
• | free -m | Вывести количество (оставшейся) ОЗУ (ключ -m задаёт отображение в Mb) |
• | watch -n1 'cat /proc/interrupts' | Смотреть меняющиеся данные непрерывно |
Системная информация | ||
hdparm -i /dev/hda | Показать информацию о диске hda | |
hdparm -tT /dev/hda | Выполнить тест на скорость чтения с диска hda | |
badblocks -s /dev/hda | Выполнить тест на нечитаемые блоки на диске hda | |
• | mount | column -t | Вывести подмонтированные файловые системы (с выравниванием вывода) |
• | cat /proc/partitions | Вывести все партиции, зарегистрированные в системе |
• | grep MemTotal /proc/meminfo | Вывести общий объем оперативной памяти, видимой системой |
• | grep "model name" /proc/cpuinfo | Вывести информацию о процессоре(ах) |
• | lspci -tv | Вывести информацию о шине PCI |
• | lsusb -tv | Вывести информацию о шине USB |
recode (устаревшие iconv, dos2unix, unix2dos) | ||
• | recode -l | less | Вывести список возможных преобразований кодировок (на каждой строчке - альтернативные названия) |
recode windows-1252.. file_to_change.txt | Из Windows "ansi" в локальную кодировку (автоматически преобразует CRLF) | |
recode utf-8/CRLF.. file_to_change.txt | Из Windows utf8 в локальную кодировку | |
recode iso-8859-15..utf8 file_to_change.txt | Latin9 (западноевропейская кодировка) в utf8 | |
recode ../b64 < file.txt > file.b64 | Кодирование в Base64 | |
recode /qp.. < file.txt > file.qp | Декодирование в формат Quoted printable | |
recode ..HTML < file.txt > file.html | Преобразование текста в HTML | |
• | recode -lf windows-1252 | grep euro | Поиск по таблице символов |
• | echo -n 0×80 | recode latin-9/x1..dump | Показать, что код обозначает в наборе символов latin-9 |
• | echo -n 0x20AC | recode ucs-2/x2..latin-9/x | Показать код в кодировке latin-9 |
• | echo -n 0x20AC | recode ucs-2/x2..utf-8/x | Показать код в кодировке utf-8 |
Интерактивное | ||
• | mc | Мощный файловый менеджер, способный осуществлять также навигацию по rpm, tar, ftp, ssh, ... |
• | screen | Виртуальные терминалы с возможностью прерывания соединения, ... |
• | links | Текстовый веб-браузер |
• | gnuplot | Построение графиков, интерактивно / с помощью скриптов |
• | octave | Оболочка, подобная Matlab |
Оригинал документа: http://www.pixelbeat.org/cmdline.html
Дата создания: 2006-11-09 03:09:40 (Фетисов Ф. А. (faf))
Последнее изменение: 2006-11-09 03:11:55 (Фетисов Ф. А. (faf))
Владелец: Фетисов Ф. А. (faf)
Версия: 2 Все версии
Wiki::Admin Карта раздела Оглавление Изменения за сутки Изменения за неделю Изменения за месяц