Список основных команд Linux. Все команды тестировались на Fedora и Ubuntu.


Команда Описание

•             apropos whatis                Показать команды соответствующие строке. См. также Список основных команд Linux. Все команды тестировались на Fedora и Ubuntu.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) и вернуться в текущую директорию

•             pushd .Положить текущую директорию в стек, чтобы позже вернуться к ней с помощью popd

Поискфайлов

•             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 сайтов)

•             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=1000 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 100 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, так что если Вы хотите редактировать файлы, добавляйте <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'Заескейпить активные метасимволы оболочки двумя ковычками

•             seq 10 | sed "s/^/      /; s/ *\(.\{7,\}\)/\1/"          Выровнять числа по правой границе

                sed -n '1000p;1000q'      Напечатать 1000-ную строку

                sed -n '10,20p;20q'         Напечатать строки с 10 по 20-ую

                sed -n 's/.*<title>\(.*\)<\/title>.*/\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; (100*10^6)/((pad+min)*8)' | bc              Более сложная (целая). Этот пример показывает максимум FastE packet rate

•             echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | pythonПитон занимается математическими вычислениями

•             echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persist          НапечататьFastE packet rate противpacket size

•             echo 'obase=16; ibase=10; 64206' | bc  Конвертация систем счисления (десятичную в шестнадцатиричную)

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

((арифметическое расширение shell-а))

•             units -t '100m/9.58s' 'miles/hour'

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

•             units -t '500GB' 'GiB'       Unit конвертация (SI в IEC префиксы)

•             units -t '1 googol'             Поиск определения

•             seq 100 | (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-1252.. 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.txt > file.b64             Кодированиеbase64

                recode /qp.. < file.txt > file.qp  Раскодированиескавычками

                recode ..HTML < file.txt > file.html         Перевестиtext вHTML

•             recode -lf windows-1252 | 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 < /dev/cdrom > 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/