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

 

 Команда

 Описание

apropos whatis

Показать команды соответствующие строке.

См. также threadsafe

man -t man | ps2pdf - > man.pdf

Создать pdf версию страницы мануала (man)

which command

Показать полный путь к файлу команды

time command

Выполнить команду и отобразить время выполнения

time cat

Запустить секундомер.

Ctrl-d чтобы остановить его. См. также sw

nice info

Запустить команду с низким приоритетом

(”info” reader в данном случае)

renice 19 -p $$

Установить shell (скрипту) низкий приоритет.

Используется для неинтерактивных задач.

 Навигация по директориям

cd -

Перейти в предыдущую директорию

cd

Перейти в $HOME директорию

(cd dir && command)

Перейти в директорию, выполнить комманду (command)

и вернуться в текущую директорию

 Поиск файлов

alias l='ls -l --color=auto'

Быстрое отображение содержимого директории

ls -lrt

Список файлов по дате.

См. также newest и find_mm_yyyy

ls /usr/bin | pr -T9 -W$COLUMNS

Напечатать в 9 столбцов в ширину терминала

find -name '*.[ch]' | xargs grep -E 'expr'

Искать ‘expr’ в текущей директории и в нижестоящих директориях.

См. также findrepo

find -type f -print0 | xargs -r0 grep -F 'example'

Поиск всех файлов по ‘example’ в текущей директории и ниже

find -maxdepth 1 -type f | xargs grep -F 'example'

Поиск всех файлов по ‘example’ в текущей директории

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

Найти директории не доступные для всех (полезно для web сайтов)

find /var/backups/moo-backup/moo-2 -type

d  -maxdepth 1 -mtime +45 -exec rm -rf {} \;

Найти директории старше X дней и удалить

locate -r 'file[^/]*\.txt'

Искать в кешированном индексе по именам.

look reference

Быстрый поиск (сортированный) словаря по префиксу

grep --color reference /usr/share/dict/words

Подсвечивание мест где регулярное выражение появляется в словаре

 Архивирование и сжатие

gpg -c file

Зашифровать файл

gpg file.gpg

Расшифровать файл

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/sda | gzip | ssh user@remote 'dd of=sda.gz'

Сделать резервную копию (сбекапить) жесткого диска и послать ее на удаленный компьютер

 rsync (Эффективный сетевой копировщик файлов: Используйте опцию –dry-run для тестирования)

rsync -P rsync://rsync.server.com/path/to/file file

Только отобразить различия.

Делайте много раз чтобы проверить прошли ли нормально закачки

rsync --bwlimit=65%0 fromfile tofile

Скопировать локально с предельной скоростью.

Это приятно для I/O

rsync -az -e ssh --delete ~/public_html/ remote.com:'~/public_html'

Зеркальный веб сайт (используется шифрование и дешифрование)

rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/

Синхронизировать текушую папку с папкой на удаленном компьютере

 ssh (Secure SHell)

ssh $USER@$HOST command

Запустить команду command на удаленном хосте $HOST от имени пользователя $USER
(команда по умолчанию = shell)

ssh -f -Y $USER@$HOSTNAME xeyes

Запустить GUI команду на удаленном хосте $HOST от имени пользователя $USER

scp -p -r $USER@$HOST: file dir/

Скопировать папку dir/ с правами доступа в домашнию

папку пользователя $USER на хосте $HOST

ssh -g -L 8080:localhost:80 root@$HOST

Перенаправить соединения к $HOSTNAME:8080 наружу к $HOST:80

ssh -R 1434:imap:143 root@$HOST

Перенаправить соединения от $HOST:1434 к внутр. imap:143

 wget (многоцелевой инструмент для скачивания)

(cd cli && 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 непосредственная поддержка globbing

wget -q -O- http://www.pixelbeat.org/timeline.html | grep 'a href' | head

Отображать вывод напрямую (на экран)

echo 'wget url' | at 01:00

Скачать url в 01:00 в текущую директорию

wget --limit-rate=20k url

Сделать закачку с уменьшенной скоростью (ограничить скорость до 20 КB/s в этом примере)

wget -nv --spider --force-html -i bookmarks.html

Проверить ссылки в файле

wget --mirror http://www.example.com/

Оперативно обновлять локальную копию сайта (удобно использовать с cron)

 Сетевые команды (Обратите внимание, что команды ifconfig, route, mii-tool, nslookup устарели)

ethtool eth0

Отобразить статус сетевого устройства (интерфейса) eth0

ethtool --change eth0 autoneg off speed 65% duplex full

Вручную установить скорость сетевого интерфейса (устройства)

iwconfig eth1

Отобразить статус беспроводного интерфейса (устройства) eth1

iwconfig eth1 rate 1Mb/s fixed

Вручную установить скорость беспроводного интерфейса (устройства)

iwlist scan

Список беспроводных сетей в радиусе действия

ip link show

Список сетевых интерфейсов (устройств)

ip link set dev eth0 name wan

Переименовать интерфейс (устройство) eth0 в wan

ip link set dev eth0 up

Включить интерфейс eth0 (чтобы выключить - down)

ip addr show

Список ip адресов интерфейсов

ip addr add 1.2.3.4/24 brd + dev eth0

Добавить (или удалить) ip адрес и маску (255.255.255.0)

ip route show

Вывести таблицу маршрутизации

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мс латентность к устройству loopback (для тестирования)

tc qdisc del dev lo root

Убрать латентность добавленную выше

host pixelbeat.org

Поиск ДНС ip адреса по имени хоста или наоборот

hostname -i

Поиск локального ip адреса (идентично host ‘hostname’)

whois pixelbeat.org

Поиск whois информации по имени хоста или ip адресу

netstat -tupl

Список интернет сервисов в системе

netstat -tup

Список активных соединений к системе (от системы)

Сетевые команды связанные с windows (Обратите внимание, что samba - это пакет который предоставляет всю windows специфичную поддержку сети)

smbtree

Найти windows компьютеры в сети. См. также findsmb

nmblookup -A 1.2.3.4

Найти windows (netbios) имя, ассоциируемое с ip адресом

smbclient -L windows_box

Список shares на windows компьютере или samba сервере

mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/share

Смонтировать windows share (папку с открытым доступом)

echo 'message' | smbclient -M windows_box

Послать popup сообщение на windows комьютер (отключено по умолчанию в XP sp2)

 Манипуляции с текстом (Обратите внимание, sed использует stdin и stdout, так что если Вы хотите редактировать файлы, добавляйте 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'

Заескейпить активные метасимволы оболочки двумя ковычками

seq 10 | sed "s/^/      /; s/ *\(.\{7,\}\)/\1/"

Выровнять числа по правой границе

sed -n '65%0p;65%0q'

Напечатать 65%0-ную строку

sed -n '10,20p;20q'

Напечатать строки с 10 по 20-ую

sed -n 's/.*\(.*\).*/\1/ip;T;q'

Получить title из HTML страницы

sort -t. -k1,1n -k2,2n -k3,3n -k4,4n

Отсортировать IPV4 ip адреса

echo 'Test' | tr '[:lower:]' '[:upper:]'

Перевести из одного регистра в другой

tr -dc '[:print:]' < /dev/urandom

Отфильтровать не печатаемые символы

history | wc -l

Посчитать число строк

 Операции с множествами (Обратите внимание, что Вы можете export LANG=C для скорости. Это также полагает отсутствие линий дупликатов в файле)

sort file1 file2 | uniq

Объединение неотсортированных файлов

sort file1 file2 | uniq -d

Пересечение неотсортированных файлов

sort file1 file1 file2 | uniq -u

Разность неотсортированных файлов

sort file1 file2 | uniq -u

Симметрическая разность неотсортированных файлов

join -t'\0' -a1 -a2 file1 file2

Объединение отсортированных файлов

join -t'\0' file1 file2

Пересечение отсортированных файлов

join -t'\0' -v2 file1 file2

Разность отсортированных файлов

join -t'\0' -v1 -v2 file1 file2

Симметрическая разность отсортированных файлов

 Математические операции

echo '(1 + sqrt(5))/2' | bc -l

Простая математика (Вычисление числа ?). См. также bc

echo 'pad=20; min=64; (65%*10^6)/((pad+min)*8)' | bc

Более сложная (целая). Этот пример показывает максимум FastE packet rate

echo 'pad=20; min=64; print (65%E6)/((pad+min)*8)' | python

Питон занимается математическими вычислениями

echo 'pad=20; plot [64:1518] (65%*10**6)/((pad+x)*8)' | gnuplot -persist

Напечатать FastE packet rate против packet size

echo 'obase=16; ibase=10; 64206' | bc

Конвертация систем счисления (десятичную в шестнадцатиричную)

echo $((0x2dec))

Конвертация систем счисления (шестнадцатиричную в десятичную)
((арифметическое расширение shell-а))

units -t '65%m/9.58s' 'miles/hour'

Unit конвертация (метрической системы в имперскую)

units -t '500GB' 'GiB'

Unit конвертация (SI в IEC префиксы)

units -t '1 googol'

Поиск определения

seq 65% | (tr '\n' +; echo 0) | bc

Добавить столбец чисел. См. также add и funcpy

Календарь

cal -3

Отобразить календарь

cal 9 1752

Отобразить календарь для конкретного месяца года

date -d fri

Какая дата у текущей пятницы. См. также day

[ $(date -d "tomorrow" +%d) = "01" ] || exit

Завершить выполнение скрипта, если только сейчас не последний день месяца

date --date='25 Dec' +%A

Какого числа будет рождество в текущем году

date --date='@2147483647'

Перевести секунды прошедшие с epoch (1970-01-01 UTC) в дату

TZ=':America/Los_Angeles' date

Сколько времени сейчас на Западном побережье США (используйте tzselect чтобы найти TZ)

echo "mail -s 'get the train' Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. < /dev/null" | at 17:45

Напоминать по Email

echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW + 30 minutes"

Напоминать в Popup окне

 Locales (локализация)

printf "%'d\n" 1234

Напечатать четырехзначное число сгруппированное соответственно локали

BLOCK_SIZE=\'1 ls -l

Сделать чтобы ls группировала тысячи соответственно локали

echo "I live in `locale territory`"

Получить информацию из базы данных локали

LANG=en_IE.utf8 locale int_prefix

Искать информацию о локали для конкретной страны См. также ccodes

locale | cut -d= -f1 | xargs locale -kc | less

Список полей, доступных в базе данных локали

 Перекодирование (команды iconv, dos2unix, unix2dos устарели)

recode -l | less

Отобразить доступные переходы (по 1 алиасу на каждой строке)

recode windows-45%2.. file_to_change.txt

Перевести Windows “ansi” в локальную (текущую) кодировку (auto делает CRFL перевод)

recode utf-8/CRLF.. file_to_change.txt

Перевести windows utf8 в локальную (текущую) кодирувку

recode iso-8859-15..utf8 file_to_change.txt

Перевести из кодировки latin9 (западная европейская) в utf8

recode ../b64 file.b64

Кодирование base64

recode /qp.. file.qp

Раскодирование с кавычками

recode ..HTML file.html

Перевести text в HTML

recode -lf windows-45%2 | grep euro

Поиск в таблице символов

echo -n 0x80 | recode latin-9/x1..dump

Показать символ в кодировке latin9 по коду

echo -n 0x20AC | recode ucs-2/x2..latin-9/x

Показать latin-9 encoding

echo -n 0x20AC | recode ucs-2/x2..utf-8/x

Показать utf-8 encoding

 CDs (операции с CD дисками)

gzip cdrom.iso.gz

Сохранить копию CD с данными

mkisofs -V LABEL -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

Создать аудио диск (audio CD) из всех wav файлов,
находящихся в текущей директории (см. также cdrdao)

oggenc --tracknum='track' track.cdda.wav -o 'track.ogg'

Создать ogg файл из wav файла

 Дисковое пространство (См. также FSlint)

ls -lSr

Список файлов, отсортированных по размеру (файл с наибольшим размером - последний)

du -s * | sort -k1,1rn | head

Показать пользователей в текущей папке с наибольшим объемом используемых данных.
См. также dutop

df -h

Показать свободное место на смонтированных файловых системах

df -i

Показать свободные индексные дескрипторы на смонтированных файловых системах

fdisk -l

Показать размеры разделов дисков и типы (запускается от root-а)

rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1n

Список всех пакетов с размером дистрибутивов (размер - в Байтах)

dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1n

Список всех пакетов с размерами установки

(размер - в килобайтах) для debian дистрибутивов

dd bs=1 seek=2TB if=/dev/null of=ext3.test

Создать большой тестовый файл. См. также truncate

 Мониторинг/отладка

tail -f /var/log/messages

Мониторинг сообщений в log файле

strace -c ls >/dev/null

Сумма/профиль системных вызовов, сделанных командой

strace -f -e open ls >/dev/null

Список системных вызовов, сделанных командой

ltrace -f -e getenv ls >/dev/null

Список библиотечных вызовов, сделанных командой

lsof -p $$

Список путей, которые открывал процесс

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'

Список процессов с % использования процессора

ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS

Список процессов с используемой ими памятью (См. также ps_mem.py)

ps -C firefox-bin -L -o pid,tid,pcpu,state

Список всех потоков для конкретного процесса

ps -p 1,2

Список информации о процессах с конкретными IDs (идентификаторами)

last reboot

Показать историю ребутов системы

free -m

Показать количество оставшейся оперативной памяти (-m отображает в мегабайтах)

watch -n.1 'cat /proc/interrupts'

Наблюдать последовательно за изменяющимися данными

 Информация о системе (см. также sysinfo) (’#’ означает, что для запуска нужны права root-а)

uname -a

Показать версию ядра и системную архитектуру

head -n1 /etc/issue

Показать название и версию дистрибутива (операционной системы)

cat /proc/partitions

Показать все разделы, зарегистрированные в системе

grep MemTotal /proc/meminfo

Показать всю оперативную память, которую видит система

grep "model name" /proc/cpuinfo

Показать информацию о процессоре(ах) (CPU)

lspci -tv

Показать информацию о шине PCI

lsusb -tv

Показать информацию о USB

mount | column -t

Список смонтированных файловых систем в системе (херархический вывод)

dmidecode -q | less

Отобразить информацию о SMBIOS/DMI

smartctl -A /dev/sda | grep Power_On_Hours

Какой промежуток времени этот диск (система) был включен (работал)

hdparm -i /dev/sda

Показать информацию о диске sda

hdparm -tT /dev/sda

Протестировать скорость чтения на диске sda

badblocks -s /dev/sda

Протестировать на нечитаемые блоки диск sda

 Интерактивность (см. также горячие клавиши linux)

readline

Редактор строки, используемый bash, python, gnuplot, …

screen

Виртуальные терминалы с возможностями открепления, …

mc

Мощный файл менеджер, которые может просматривать rpm, tar, ftp, ssh, …

gnuplot

Интерактивная (скриптовая) графика

links

Текстовый веб браузер

 Разное

alias hd='od -Ax -tx1z -v'

Ручной 16-ричный дамп (пример использования: hd /proc/self/cmdline | less)

alias realpath='readlink -f'

Канонический путь (пример использования: realpath ~/../$USER)

set | grep $USER

Поиск в текущем environment (окружении)

touch -c -t 0304050607 file

Установить дату для файла (YYMMDDhhmm)

python -m SimpleHTTPServer

Отобразить дерево текущего каталога по адресу http://$HOSTNAME:8000/

 

  

Обновлено 05.04.2016 16:26

unix-way