Главная | Контакты



Шпаргалка по программам и командам FreeBSD

Let's Encrypt

  • apache
  • cups
  • dovecot
  • exim
  • find
  • grep
  • ifconfig
  • iostat
  • ip
  • ipfw
  • iptables
  • mysql
  • netstat
  • nginx
  • php
  • pkg
  • postgres
  • sed, awk
  • sysctl
  • systat
  • tar, bzip...
  • tcpdump
  • top
  • tshark
  • wget
  • vim
  • xargs, exec
  • parallel
  • КОМАНДЫ ОБЩЕГО НАЗНАЧЕНИЯ

    КомандаДействие
    apcaccessПроверить состояние APC Smart-UPS
    bgсписок остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
    bisonутилита для создания синтаксических анализаторов, на основе набора грамматик, задаваемых разработчиком
    calвывести календарь на текущий месяц
    columnФорматирование по столбцам. Эта утилита преобразует текст, например какой либо список, в табличное, более "удобочитаемое", представление, вставляя символы табуляции по мере необходимости
    convmv -f cp1251 -t utf-8 -r .
    convmv -f cp1251 -t utf-8 -r --notest .
    Перекодировка имени файлов
    cut-d (разделитель полей) и -f (номер(а) поля(ей)
    date 2004042054установка даты 2020 год, 04 апреля, 20 часов 54 мин
    diskinfo -t ad0показывает информацию по диску, и делает тест на дисковую производительность
    dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz'Сделать резервную копию (сбекапить) жесткого диска и послать ее на удаленный компьютер
    dd if=/dev/urandom | pv | dd of=/dev/nullПрогресс-бар выполнения
    dd if=/dev/mem bs=64k skip=15 count=1|strings|lessОпределение модели материнской платы во FreeBSD
    df -hПоказать свободное место на смонтированных файловых системах
    dmidecodeотобразить версию программы, общую информация базы DMI, и расшифрованное содержимое отдельных записей
    dmidecode -t biosсведения о BIOS
    dmidecode -t systemсведения о переключателях системной платы
    dmidecode -t baseboardсведения о материнской плате
    dmidecode -t chassisсведения о переключателях и датчиках шасси
    dmidecode -t processorсведения о центральном процессоре (о процессорах для многопроцессорных систем)
    dmidecode -t memoryсведения об оперативной памяти
    dmidecode -t cacheсведения о кэш-памяти
    dmidecode -t connectorсведения о разъемах контроллеров периферийных устройств
    dmidecode -t slotсведения о разъемах PCI/PCI-Express
    du -s * | sort -k1,1rn | headПоказать каталоги в текущем с наибольшим объемом используемых данных
    du -a | sort -n -r | head -n 5
    du -hs * | sort -rh | head -5
    du -Sh | sort -rh | head -5
    Найти самые большие каталоги в Linux
    du -sh /var/log/* | sort -hrКак узнать размер каталога(папки) в Linux/FreeBSD?
    du -hsx /каталог
    du -h -s /*
    Показать размер занимаемого места каталогом на диске
    expand,
    unexpand
    преобразует символы табуляции в пробелы/пробелы в символы табуляции
    exprУниверсальный обработчик выражений: вычисляет заданное выражение (аргументы должны отделяться пробелами). Выражения могут быть арифметическими, логическими или строковыми
    fdisk -lПоказать размеры разделов дисков и типы
    fgвыносит на передний план последние задачи
    fg nвынести задачу n на передний план
    file -i file.txtкодировка файла
    finger userпоказать информацию о user
    fmtутилита форматирования текста, чаще всего используемая как фильтр в конвейерах для того, чтобы выполнить "перенос" длинных строк текста
    foldВыравнивает текст по ширине, разрывая, если это необходимо, слова. Особый интерес представляет ключ -s, который производит перенос строк по пробелам, стараясь не разрывать слова
    fstat | grep http | wc -lсписок открытых файлов по процессу http
    gstat -aдля вывода только активных устройств
    host pixelbeat.orgПоиск ДНС ip адреса по имени хоста или наоборот
    joinутилита позволяет объединять два файла по общему полю, что представляет собой упрощенную версию реляционной базы данных
    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Симметрическая разность отсортированных файлов
    groupadd -g 500 userсоздать группу user с идентификатором GID=500
    head fileвывести первые 10 строк указанного файла
    iconv -f WINDOWS-1251 -t UTF-8 -o output_file.txt original_file.txtПерекодировка файла
    kill pidзавершить (убить) процесс с идентификатором pid
    killall procубить все процессы, имена которых начинаются с proc
    kgdb /boot/kernel/kernel /var/crash/vmcore.lastАнализ ошибок (должна быть запущена служба ..., dumpdev="AUTO" >> rc.conf)
    lastсписок пользователей, вошедших в систему по данным из специального файла /var/log/wtmp. Отображается имя, терминал, время входа IP-адрес и т.п.
    last rootотобразить сведения о сеансах пользователя root
    lastloginотобразить сведения о сеансах всех пользователей
    lex,
    flex
    утилита лексического разбора текста. В Linux-системах заменена на свободно распространяемую утилиту flex
    lookКоманда look очень похожа на grep, и предназначена для поиска по "словарям" -- отсортированным файлам. По-умолчанию, поиск выполняется в файле /usr/dict/words, но может быть указан и другой словарь
    ls -lrtСписок файлов по дате
    ls -lSrСписок файлов, отсортированных по размеру (файл с наибольшим размером - последний)
    make config
    make install
    make clean
    make deinstall
    make reinstall
    mount -t vfat /dev/sdb5 /mnt/d
    umount /mnt/d
    Примонтировать устройство /dev/sdb5 в режиме vfat к точке /mnt/d
    Отмонтировать устройство /mnt/d
    niceотобразить текущее значение модификации приоритета nice Модификатор принимает значения от -20 (высокий приоритет) до 19 (низкий)
    nice -4 mcзапустить mc с приоритетом +4 по отношению к родительскому процессу (оболочке пользователя)
    nice --4 mcзапустить приложение mc с приоритетом -4 по отношению к родительскому процессу (оболочке пользователя)
    nlНумерует строки в файле. nl filename -- выведет файл filename на stdout, и в начале каждой строки вставит ее порядковый номер, счет начинается с первой непустой строки. Если файл не указывается, то принимается ввод со stdin.
    Вывод команды nl очень напоминает cat -n, однако, по-умолчанию nl не нумерует пустые строки
    nmap 192.168.1.2
    nslookupзапуск nslookup в интерактивном режиме
    nslookup mail.ruотобразить сведения для домена mail.ru с использованием сервера DNS из сетевых настроек
    nslookup mail.ru 8.8.8.8отобразить сведения для домена mail.ru с использованием сервера DNS с адресом 8.8.8.8 (публичный DNS-сервер Google)
    nslookup –query=mx mail.ruотобразить запись типа MX для домена mail.ru
    openssl rsa -in /path/to/originalkeywithpass.key -out /path/to/newkeywithnopass.keyснять пароль с ключа
    ps –eвывести список процессов с идентификаторами (PID) и их именами
    pwgenпрограмма генерации паролей
    renice 4 -p 11590установить значение приоритета для процесса с идентификатором PID=11590 равное 4
    rename 's/\.txt$/.sql' *.txt
    passwdизменить пароль текущего пользователя
    passwd userизменить пароль пользователя user (команда только для root)
    pasteИспользуется для объединения нескольких файлов в один многоколоночный файл
    ping –c 1 –s 3000 –t 3 ya.ruпинговать 1 раз узел ya.ru с отправкой пакетов длиной 3000 байт. И с использованием TTL=3
    pkg version -vIL=Контролировать устаревшие приложения и утилиты можно командой
    portsnap fetch extract updatefetch — проверить обновления и скачать если есть, extract — развернуть, update — обновить. Но обновится в данном случае лишь порт, а не приложение
    portsnap fetch updateобновление коллекции портов
    portupgrade -aобновить коллекцию портов
    script /var/log/mysession.txtсоздать протокол действий пользователя с записью вводимых команд и отображаемых результатов в файл /var/log/mysession.txt. Для прекращения записи введите команду exit
    scp -p -r $USER@$HOST: file dir/Скопировать папку dir/ с правами доступа в домашнию папку пользователя $USER на хосте $HOST
    smartctl -a /dev/ada0
    Просмотр информации S.M.A.R.T. носителя ada0
    sockstat -cсписок установленных соединений;
    sockstat -4, -6по протоколу ipv4 или ipv6
    sockstat -4 -lключи запуска:
    -4 информация только о IPv4 сокетах.
    -6 информация только о IPv6 сокетах.
    -c информация только о подключенных сокетах.
    -l информация только о задействованых сокетах (открытый порт)
    sort file1 file2 | uniqОбъединение неотсортированных файлов
    sort file1 file2 | uniq -dПересечение неотсортированных файлов
    sort file1 file1 file2 | uniq -uРазность неотсортированных файлов
    sort file1 file2 | uniq -uСимметрическая разность неотсортированных файлов
    sort testfile | uniq -c | sort -nrвыводит статистику встречаемости строк в файле INPUTFILE (ключ -nr, в команде sort, означает сортировку в порядке убывания). Этот шаблон может с успехом использоваться при анализе файлов системного журнала, словарей и везде, где необходимо проанализировать лексическую структуру документа
    su - userвыполнить смену текущего пользоателя на пользователя user с использованием его оболочки (-)
    su -сменить текущего пользователя на суперпользователя root с использованием его командной оболочки
    tail -f /var/log/file.logПросмотр логов в реальном режиме времени
    tail –n 100 /var/log/messagesотобразить последние 100 строк из файла журнала /var/log/messages
    touch 12310130 file.txtУстановить текущего года ДЕКАБРЬ31ПОЛВТОРОГО. [[YY]YY]MMDDhhmm[.sec]
    tr 'A-Z' 'a-z'перевод в нижний регистр
    traceroute ya.ruвыполнить трассировку к узлу ya.ru
    traceroute 8.8.8.8выполнить трассировку к узлу с IP-адресом 8.8.8.8
    uname -aИнформация о операционной системе
    useradd -p PASS userсоздать пользователя user с паролем PASS
    usersсписок имен пользователей, вошедших в систему
    vmstat 6отображает статистику каждые шесть секунд
    vmstat -zпоказывает состояние буфера
    vmstat -iпоказывает состояние прерываний
    wсведения о пользователях, зарегистрировавшихся в системе
    wc -lподсчитывает число файлов и каталогов в текущем каталоге (исключая специальные объекты . и ..)
    wc"word count", счетчик слов в файле или в потоке
    wc -w подсчитывает только слова;
    wc -l подсчитывает только строки;
    wc -c подсчитывает только символы;
    wc -L возвращает длину наибольшей строки.
    whereis kde5выдаст местонахождение порта /usr/ports/x11/kde5. Есть вариант зайти в каталог /usr/ports и запустить make search name=kde5 и будет результат со списком портов которые содержат искомую фразу, но в случае с nginx в выдаче будет всё, включая модуль certbot для nginx, поэтому если знаете что конкретно ищите, то проще where. Если же нужен именно поиск по примерно известному названию то make search у которого есть так же вариант make search key=keyword
    which текстПоказывает где находится команда
    whoamiимя, под которым вы в данный момент работаете в системе
    whois domainполучить информацию whois для domain
    наверх

    Apache

    детальное описание

    КомандаДействие
    /usr/local/sbin/apachectl restartперезапуск службы
    наверх

    Cups

    детальное описание

    КомандаДействие
    наверх

    Dovecot

    детальное описание

    КомандаДействие
    !!!ВНИМАНИЕ!!! Если будем использовать базу данных - собираем из портов с нужными опциями
    service dovecot start/stop/restart
    /usr/local/etc/rc.d/dovecot start/stop/restart
    работа с службой
    /usr/local/sbin/dovecot --build-optionsс каким опциями собран Dovecot
    наверх

    Exim

    детальное описание

    КомандаДействие
    service exim start/stop/restartУправление службой
    /usr/local/etc/exim/configureКонфигурация
    exim –bVПроверить правильность синтаксиса конфигурационного файла и узнать с поддержкой каких опций собран exim
    exim –bpПечать списка сообщений в очереди
    exim -bp | awk '{print $4}' | sort | uniq -c | sort -rnПросмотр активных отправителей
    exim -bp | exiqsummВывод суммарной информации
    exim -bt user@mail.ruТестирование маршрута доставки до указанного адреса
    exim -bh 94.100.176.20Иммитировать SMTP транзакцию из командной строки, как если бы сообщение пришло с указанного IP-адреса. При этом будет показано прохождение и срабатывание проверок, фильтров и листов доступа (ACL). На самом деле, никакое сообщение никуда доставлено не будет
    exim -bPЛистинг всех настроек конфигурации
    exiqgrep -f name@domain.comПросмотр сообщений конкретного отправителя
    exiqgrep -r name2@domain2.comПросмотр сообщений для конкретного получателя
    exiqgrep -o 86400Поиск сообщений, старше, указанного времени (количества секунд). В примере, сообщения старше 1 дня
    exiqgrep -y 3600Поиск сообщений свежее указанного времени (количества секунд). В примере поиск сообщений, пришедших в течение последнего часа
    exiqgrep -zПросмотр замороженных сообщений
    exiqgrep -zcПодсчет замороженных сообщеий
    exiqgrep -xПросмотр заблокированных сообщений
    exiqgrep -iПросмотр только идентификаторов всех сообщений
    exim -bpcПолучить число сообщений, находящихся в очереди
    exim -MПринудительно повторить попытку отправки конкретного письма (с конкретным )
    exim -qfВыполнить обработку очереди
    exim -qffВыполнить обработку очереди и попытаться сбросить "замороженные" письма
    exim -MvlПросмотреть логи для указанного сообщения
    exim -MvbПросмотреть тело сообщения
    exim -MvhПросмотреть заголовки сообщения
    exim -MrmУдалить сообщение из очереди, не отправляя сообщений об ошибке
    exim -MgУдалить из очереди и отправить отправителю диагностику о невозможности доставки
    exiqgrep -o 86400 -i | xargs exim -MrmУдалить из очереди все сообщения, старше чем 86400 секунд (1 сутки)
    exipick -zi | xargs exim -MrmОчистить все замороженные сообщения из очереди
    exipick -i | xargs exim -MrmОчистить все сообщения из очереди
    exim -q -vПринудительная рассылка всей почты в очереди. (Запуск очереди)
    exim -ql -vЗапуск очереди только для локальных доставок
    exipick -i | xargs exim -Mrm или exim -bpr | awk {'print $3'} | xargs exim -MrmУдалить все сообщения из очереди
    exiqgrep -i -f user@example.tld | xargs exim -MfЗаблокировать (заморозить) все письма от указанного отправителя
    exiqgrep -i -f user@example.tld | xargs exim -MrmУдалить все письма от указанного отправителя
    exim -MfЗаблокировать (заморозить) сообщение
    exim -MtРазблокировать сообщение
    exim -McДоставить сообщение, только если достигнуто время для повторной доставки
    exim -MarДобавить получателя в сообщение
    exim -MesИзменить адрес отправителя сообщения
    exigrep '<= .* \[12.34.56.78\] ' /path/to/exim_logПоиск сообщений отправленных с определенного IP адреса
    exigrep '=> .* \[12.34.56.78\]' /path/to/exim_logПоиск сообщений отправленных на определенный IP адрес
    eximstats /path/to/exim_mainlog
    eximstats -ne -nr -nt /path/to/exim_mainlog
    Генерировать из лог файла и показать статистику Exim
    fgrep YYYY-MM-DD /path/to/exim_mainlog | eximstatsСтатистика за определенный день
    grep -lr 'a certain string' /var/spool/exim/input/ | \sed -e 's/^.*\/\([a-zA-Z0-9-]*\)-[DH]$/\1/g' | xargs exim -MrmУдалить все сообщения в очереди, содержащие в теле, определенную строку
    exim -bt postmaster@hostname.domain.comПроверка распознавания адреса exim, и вывода роутера и транспорта который будет использоваться для доставки локальным пользователям
    exim -bt user@mail.ruПроверка распознавания адреса exim, и вывода роутера и транспорта который будет использоваться для доставки внешним пользователям
    exim -v user@mail.ruТестирование доставки сообщений внешним пользователям
    exim -v postmasterТестирование доставки сообщений локальным пользователям
    exim –bpcПросмотр количества сообщений в очереди
    exim -bp | awk '{print $4}' | sort | uniq -c | sort -rnПросмотр активных отправителей
    exiqgrep -i -f name@domain.com | wc -lПодсчет количества сообщений в очереди от конкретного отправителя
    exiqgrep -i -f name@domain.com | lessПросмотр ID-сообщений от конкретного отправителя
    netstat -plan|grep :25|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sortПросмотр IP-адресов, которые подключены на 25 порт
    наверх

    find

    детальное описание

    КомандаДействие
    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Найти директории не доступные для всех
    find /var/backups/moo-backup/moo-2 -type d -maxdepth 1 -mtime +45 -exec rm -rf {} \;Найти директории старше X дней и удалить
    find /path -type d -exec chmod 0755 {} \;
    find /path -type d | xargs chmod 0755
    ищем каталог path и выполняем команду chmod
    find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gzищем все файлы по маске*.png и упаковываем их в tar.gz
    find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"находить и рекурсивно удалять каталог, например, следующая команда будет рекурсивно удалять DomTerm в каталоге «Downloads»
    find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}удалить все файлы в каталоге, кроме одного или нескольких файлов с заданным расширением
    find . -name 'php.ini' -exec sed -i 's/log_errors = Off/log_errors = On/g' "{}" \;Поиск всех файлов php.ini в текущем каталоге и замена текста в каждом найденном файле с помощью команды sed
    find / -mmin -1 -printНайти и вывести список файлов во всей файловой системе, изменённых в течение последней минуты
    find / -mtime +31 -printНайти и вывести список файлов во всей файловой системе, которые были изменены более 31 дня назад
    find / -size +100M -printНайти и вывести список файлов во всей файловой системе, чей размер больше 100 Мб
    find . -user ilyaпоиск осущетвляется по файлам принаждежашим пользователю с именем ilya
    find /var/www -maxdepth 4 -name 'restore.php'Глубина поиска указывается относительно каталога, указанного в аргументе команды. Начинает поиск в папке /var/www, но не глубже /var/www/*/*/*/*
    find /var/www -maxdepth 4 -name 'restore.php' -exec rm -r {} \;Удаляет все файлы restore.php от текущего каталога, но не глубже 4 уровня вложенности относительно аргумента в командной строке. Начинает поиск в папке /var/www, но не глубже /var/www/*/*/*/* и удаляет все файлы restore.php в найденном
    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/ с вложенными папками
    find /path/to/dir/ -mindepth 1 -newermt '2013-08-17 11:35' ! -newermt '2013-08-17 12:17' -lsПример как искать файлы, измененные 17 августа с 11:35 до 12:17
    find / -type l -print | perl -nle '-e || print';найти символьные ссылки идущие вникуда
    find . -name "*.sh" -print0 | xargs -0 rm -rf
    find . -type f -exec cp -t TARGET {} \+Скопировать файлы в целевой каталог
    find -type f -exec du -Sh {} + | sort -rh | head -n 5
    find /home/tecmint/Downloads/ -type f -exec du -Sh {} + | sort -rh | head -n 5
    find /home/tecmint/Downloads/ -type f -printf "%s %p\n" | sort -rn | head -n 5
    Как узнать исключительно самые большие размеры файлов
    find / > /dev/null 2>&1Подавить весь вывод программы
    наверх

    grep / egrep

    детальное описание

    КомандаДействие
    grep -r --include=*.{html,htm} 'find_words' /file/www/housecomputer.ru/*Поиск фразы find_words во всех файлах с расширением html,htm рекурсивно начиная с каталога /file/www/housecomputer.ru/
    grep . file
    egrep -v ^$ file
    убрать в выводе пустые строки
    grep -Ev '^$|^\s*#' /etc/nginx/nginx.confисключить пустые строки и комментарии
    grep -l "www.google.com" *.conf
    find . -name "*.conf" -exec grep -l "ServerName" {} \;
    grep -Rl "ServerName" --include="*.conf"
    find . -name "*.conf" -exec grep -l "ServerName" {} \+
    в каком файле найдено соответствие
    grep -L где не встречается искомое
    tail -f /var/log/apache/access.log|grep --line-buffered myfile|grep 200
    awk '/foo/{print $2}'
    grep seven $(find . -type f | grep -v '\.svn')
    ack --type-set archive:ext:zip --archive seven
    ag --search-binary seven
    zgrep, zegrep, zfgrepПоиск в gz-архивах
    наверх

    ifconfig

    детальное описание

    КомандаДействие
    ifconfigотобразить сведения о конфигурации сетевых интерфейсов
    ifconfig -aотобразить сведения о конфигурации сетевых интерфейсов, в том числи и отключенных
    ifconfig eth0отобразить сведения о конфигурации сетевого интерфейса eth0
    ifсonfig –sотобразить список сетевых интерфейсов
    ifconfig eth0 hw ether 00:11:22:33:44:55установить новое значение аппаратного адреса (MAC-адреса) для сетевого интерфейса eth0
    ifconfig eth1 broadcast 192.168.1.255установить значение широковещательного адреса для интерфейса eth1
    ifconfig eth1 netmask 255.255.255.0установить маску подсети для интерфейса eth1
    ifconfig eth1 192.168.1.1установить IP-адрес для интерфейса eth1
    ifconfig eth1 add 192.168.1.2добавить IP-адрес для интерфейса eth1
    ifconfig eth0 downотключить интерфейс eth0
    ifconfig eth0 upвключить интерфейс eth0
    наверх

    iostat - выводит статистику по I/O усройств

    детальное описание

    КомандаДействие
    iostat -d -w6показывать информацию по дискам, с периодичностью в 6 секунд
    iostat -dx -w6показывает расширенную статистику
    наверх

    ip

    детальное описание

    КомандаДействие
    ip addr showотобразить список сетевых интерфейсов с адресами. Возможно сокращение параметров команды - ip a sh или ip a s
    ip addr list permanentотобразить только статические ip адреса
    ip addr list dynamicотобразить только динамические ip адреса
    ip addr add 1.1.1.13/24 dev eth0установить ip адрес для интерфейса eth0
    ip addr del 1.1.1.13/24 dev eth0удалить ip адрес интерфейса eth0
    ip addr flush dev eth0удалить все ip адреса интерфейса eth0
    ip addr helpотобразить справку по команде ip addr
    ip route add 10.10.20.0/24 via 192.168.5.1создать маршрут к заданной сети через интерфейс c IP=192.168.5.1
    ip route add default via 192.168.50.100создать маршрут по умолчанию
    ip route add 10.10.20.0/24 dev eth0создать маршрут к указной сети
    ip route add table nnn 10.10.20.0/24 dev eth0создать маршрут в специальной таблице маршрутов с номером nnn
    ip route add to blackhole 10.10.0.0/16создать фиктивный маршрут
    ip route add unreachable 10.10.0.0/16создать недостижимый маршрут
    ip route showотобразить сведения о маршрутах. В сокращенном варианте - ip r s
    ip route show table 255отобразить все маршруты из таблицы 255
    ip route get 10.10.20.0/24отобразить маршрут к этой сети
    ip route get 10.10.20.0/24 from 192.168.1.100отобразить маршрут к этой сети от указного интерфейса с IP=192.168.1.100
    ip route delete 10.10.20.0/24удалить указанный маршрут
    ip route del 10.10.20.0/24 via 192.168.50.100удалить указанный маршрут
    ip link showотобразить список сетевых интерфейсов
    ip link show eth0отобразить состояние eth0
    ip link list upотобразить статус всех включенных интерфейсов
    ip link set eth1 upвключить интерфейс eth1
    ip link set eth1 downвыключить интерфейс eth1
    наверх

    ipfw

    детальное описание

    КомандаДействие
    ${fwcmd} add allow ip from any to any via lo0Разрешаем весь трафик внутри локального сетевого интерфейса
    ${fwcmd} add deny ip from any to 127.0.0.0/8
    ${fwcmd} add deny ip from 127.0.0.0/8 to any
    Запрещаем трафик из вне на локальный интерфейс и обратно
    ${fwcmd} add allow ip from ${netlocal} to any via ${local}
    ${fwcmd} add allow ip from any to ${netlocal} via ${local}
    Разрешаем любой трафик внутри локальной сети
    # Настраиваем nat и перенаправление портов.
    # На нашем сервер открываем 80 порт TCP.
    # Перенаправляем 9500 порт TCP на компьютер локальной сети с IP адресом 192.168.0.50.
    ${fwcmd} nat 1 config ip ${ipinet} reset same_ports deny_in redirect_port tcp ${ipinet}:80 80 redirect_port tcp 192.168.0.50: 9500 9500
    
    # Разрешаем прохождение TCP, UDP, ICMP между локальной сетью и интернетом.
    ${fwcmd} add nat 1 tcp from any to any via ${internet}
    ${fwcmd} add nat 1 udp from any to any via ${internet}
    ${fwcmd} add nat 1 icmp from any to any icmptypes 0,8 via ${internet}
    наверх

    iptables

    Описание: НЕТ

    КомандаДействие
    наверх

    MySQL

    детальное описание

    КомандаДействие
    наверх

    netstat

    детальное описание

    КомандаДействие
    netstat -tap
    netstat -na | grep LISTENинформация о прослушиваемых портах
    netstat -napотобразить список соединений и слушаемых портов (a) в числовом виде (n) и с именами программ (p)
    netstat -Lanпокажет информацию о размере очередей на прослушиваемых портах
    netstat -a | moreПеречисление всех портов для соединений TCP и UDP
    netstat -lСписок всех открытых входящих портов
    netstat -l -p tcpСписок всех активных входящих портов TCP
    netstat -lxСписок всех активных входящих сокетов UNIX
    netstat -sОтображение статистики по всем протоколам
    netstat -rОтображение маршрутизации IP-адреса ядра
    netstat -iОтображение транзакций сетевого интерфейса
    netstat -gОтображение информации IPv4 и IPv6
    netstat -c
    netstat -rnотображает таблицу маршрутизации
    netstat -w 1-количество пакетов в настоящее время
    netstatотобразить список текущих соединений
    наверх

    Nginx

    детальное описание

    КомандаДействие
    nginx -v
    наверх

    parallel

    детальное описание

    КомандаДействие
    наверх

    PHP

    детальное описание

    КомандаДействие
    php -vВерсия PHP
    наверх

    Пакетный менеджер PKG

    Описание:

    КомандаДействие
    pkg helpПолный список опций программы
    pkg help updateПосмотреть справку по конкретной команде можно так
    pkg updateОбновляем информацию о доступных пакетах
    pkg infoСмотрим список установленных пакетов
    pkg upgradeОбновляем установленные пакеты
    pkg search xorgИщем пакет по названию
    pkg install xorg, pkg install git-lite vim-lite sudoУстановка пакета/пактетов и всех его/их зависимостей
    pkg delete xorg
    pkg remove xorg
    Удаляем пакет
    pkg autoremoveУдаляем пакеты, которые больше не нужны
    pkg which /usr/local/bin/gitСмотрим, к какому пакету относится файл
    pkg info -l mesa-demosПосмотреть полный список файлов в пакете можно так
    pkg audit -FЗагружаем базу известных уязвимостей
    pkg auditПроверяем установленные пакеты на предмет наличия известных уязвимостей, с ссылками на подробные отчеты
    pkg check -s -aПроверяем все установленные пакеты на предмет валидности контрольных сумм входящих в пакеты файлов
    pkg check -d -aПроверяем все установленные пакеты на предмет отсутствия требуемых зависимостей
    pkg cleanУдаляем из кэша старые пакеты
    pkg statsСмотрим статистику
    pkg lock syncthing, pkg unlock syncthingЗапрещаем/разрешаем обновление конкретного пакета
    pkg lock -lПосмотреть список «залоченых» пакетов
    sudo pkg remove chromium, sudo pkg install /var/cache/pkg/vim.txzОткатиться к более старой версии пакета
    наверх

    PostgreSQL

    детальное описание

    PostgreSQL — полезные команды
    наверх

    sed

    детальное описание

    КомандаДействие
    sed 's/\.[^.]*$//'Убрать "расширение" файлов
    наверх

    sysctl

    детальное описание

    КомандаДействие
    sysctl -aВвывести все системные параметры
    sysctl kern.ipc.numopensocketsпоказывает количество открытых сокетов
    sysctl kern.openfilesпоказывает количество открытых файлов
    наверх

    systat - отображает различные параметры системы

    детальное описание

    КомандаДействие
    systat -vmstat 1отображает суммарную системную статистику
    systat -netstat 1показывает активные сетевые соединения
    systat -ifstat 1отображает нагрузку сетевых интерфейсов
    systat -tcp 1отображает статистику tcp-соединения, возможен просмотр по icmp, ip, icmp6, ip6
    systat -iostat 1отображает нагрузку на процессор, дисковую подсистему
    systat -swap 1показывает загрузку файла подкачки
    systat -ifstatСкорость на всех интерфейсах в том числе статистика
    наверх

    tar, BZip...

    Описание :tar

    КомандаДействие
    tar cfvcСоздать архив
    tar xfvcИзвлечь из архива
    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/ на удаленном компьютере
    tar -tfv filename.tar.gzПросмотр содержимого архива без распаковки
    tar -cvjf filename.tar.bz2 dir_nameПример сжатия Bzip2
    tar cvf archive.tar --exclude='logs/*' --exclude='tmp/*' ./не включать в архив каталоги logs и tmp
    Параметр --exclude нужно указывать обязательно после имени файла архива, но перед именем каталога, который требуется заархивировать, а я помещал ее в конец. Если используются символы * или ?, нужно брать их в одинарные апострофы, чтобы они передавались в tar как есть, иначе оболочка пытается подставить вместо них полный список файлов.
    tar tzf archive.tar.gz
    gzip -vt archive.tar.gz
    Тестирование архивов. Во втором случае Будет проверено только сжатие, в первом выведутся имена хранящихся в .tar файлов
    gunzip file.gz
    gzip -d file.gz
    gunzip -c [archive-name] > [outputfile-name]
    распаковка архива формата GZip. Gunzip удаляет файл архива после распаковки его
    наверх

    tcpdump

    детальное описание

    КомандаДействие
    tcpdump -i eth0 -n -nn -ttt dst host 192.168.2.254Ловим весь входящий трафик из локальной сети на сервер
    tcpdump -i eth0 -n -nn -ttt 'dst host 192.168.2.254 and not ( src host 192.168.2.100 and dst port 22 )'Ловим весь входящий трафик, исключая трафик генерируемый нашей SSH-сессией
    tcpdump -i eth0 -n -nn -ttt 'ip proto \icmp'Отлавливаем исключительно icmp пакеты
    tcpdump -a -i eth0захват всего трафика с интерфейса eth0
    tcpdump –I eth0отображать в сокращенном виде содержимое пакетов на сетевом интерфейсе ith0
    tcpdump –vv –I eth1отображать в подробном виде содержимое пакетов на сетевом интерфейсе eth1
    наверх

    top

    детальное описание

    Она показывает общие сведения о процессоре, памяти и процессах. Параметры утилиты (действуют когда top уже запущен):

    ОпцияДействие
    Sпоказать системные процессы
    u [имя пользователя]например u pgsql покажет процессы запущенные от пользователя pgsql
    oиспользуем для сортировки, возможные параметры — pri, size, res, cpu, time, threads
    mпереключение между режимами отображения нагрузки и ввода-вывода
    kзавершить процесс (kill), ввод pid процесса
    rизменить приоритет процесса, вводим pid процесса
    nотображать статистику по конкретному процессу
    top -n 3показывает самые ресурсоёмкие приложения в данный момент (три штуки)
    наверх

    tshark

    детальное описание

    КомандаДействие
    наверх

    wget

    детальное описание

    КомандаДействие
    wget -O new_name.tar ftp://some.host.com/name.tarСкачать файл name.tar с сохранением имени new_name.tar
    wget -i list-of-files.txtКоманде wget можно передать текстовый файл, в котором на каждой строчке записаны URL-адреса, которые требуется скачать
    wget --force-html -i file.htmlКоманда wget поддерживает скачивание файлов по ссылкам в HTML-документе. То есть она автоматически находит все ссылки в HTML-файле и скачивает их
    wget --limit-rate=500k http://some-site.com/filename.tar.gzЧтобы ограничить скорость скачивания используется опция --limit-rate
    wget -c http://some-site.com/file.tarЧтобы продолжить прервавшуюся загрузку используется опция -c
    wget --spider -i list-of-files.txt
    wget --spider http://site.com/filename.zipПеред тем, как скачать файл, можно проверить существует ли он. Например, это может потребоваться, когда вы скачиваете большое количество файлов и хотите заранее знать, все ли из них доступны. Для проверки доступности файлов используется опция --spider. При использовании опции --spider файлы не скачиваются, а только выполняется проверка
    wget -t 10 http://site.com/filename.zipЕсли соединение нестабильное, то можно задать количество попыток, чтобы загрузка файла продолжалась в случае сбоя. Для указания количества попыток используется опция -t. По умолчанию установлено количество попыток — 20. Но если при попытке загрузки файла получена ошибка 404 (файл не найден) или connection refused, то скачивание прерывается
    wget -w 15 ...
    wget -w 30 --random-wait ...
    Опция -w позволяет задать количество секунд, которое требуется ожидать перед загрузкой очередного файла. Второй пример использования (ожидание будет в диапазоне от 15 до 45 секунд)
    wget -w 50 --random-wait -t 15 --limit-rate=5m http://site.com/file.zipнабор опций
    wget --retry-connrefused --waitretry=1 --read-timeout=20 --timeout=15 -t 0Это приведет к повторным попыткам отклоненных подключений и аналогичным фатальным ошибкам ( --retry-connrefused), будет ждать 1 секунду перед следующей повторной попыткой ( --waitretry), будет ждать максимум 20 секунд, если не будет получено никаких данных, а затем попытаться снова ( --read-timeout), будет ждать максимум 15 секунд до истечения времени ожидания первоначального соединения ( --timeout) и, наконец, оно будет повторяться бесконечное число раз ( -t 0)
    wget --spider -r -nd -nv -H -l 0 -o wget_link.log http://192.168.10.150/МОЁ
    наверх

    xargs

    детальное описание

    Принцип работы xargs можно описать следующим образом: программа берет данные из стандартного ввода или из файла, разбивает их в соответствии с указанными параметрами, а затем передает другой программе в качестве аргумента

    ОпцияДействие
    ls | xargs -p -l gzipСжать все файлы в текущей директории с помощью gzip
    find . -name "*.pl" | xargs tar -zcf pl.tar.gzсжатие с помощью tar всех файлов с расширением *.pl
    ls | sed -e "p;s/.txt$/.sql/" | xargs -n2 fmvесть группа файлов с расширением *.txt, и нам нужно заменить это расширение на *.sql
    find . -group root -print | xargs chown tempнужно найти все папки пользователя root и заменить их владельца на temp
    find /tmp -type f -name '*' -mtime +7 -print0 | xargs -0 rm -fудалить временные файлы, созданные более 7 дней назад
    find /proc -user myuser -maxdepth 1 -type d -mtime +7 -exec basename {} \; | xargs kill -9принудительно остановить процессы, которые уже работают больше 7 дней
    cut -d: -f1 < /etc/passwd | sort | xargs echoвсе пользователи системы
    cat bad_ip_list | xargs -I IP iptables -A INPUT -s IP -j DROPзабанить IP-адреса из списка, нужно их добавить в IP tables c правилом DROP
    tr -dc A-Za-z0-9_ < /dev/urandom | head -c 10 | xargsСгенерировать надежный пароль
    find . -name "new*.sh" -exec rm -f '{}' \+\+ не будет на каждый файл отдельно вызывать rm
    наверх

    VIM

    Файл настройки: ~/.vimrc
    Можно редактировать файлы через сеть, например
    :e <scp|ftp|ftps>://user@host/path/to/the/file.txt
    :Ex или :e ./ - файловый менеджер

    РЕЖИМ РЕДАКТИРОВАНИЯ

    КомандаДействие
    ESC перейти в режим просмотра
    hjklперемещение в разные стороны
    iрежим вставки
    Iдобавление в начало строки
    aрежим добавления
    Aдобавление в конец строки
    oдобавить строку сразу за текущей
    Oдобавить строку перед текущей
    Rписать поверх имеющегося текста
    gfОткрыть файл имя которого прописано в текущем документе и курсор стоит на нем
    u, :u[ndo]отмена предыдущего действия (undo)
    CTRL-R, :red[o]отмена отмены предыдущего действия (redo)
    7jПереместить курсор вниз на 7 строк
    ddвырезать (удалить) строку
    5dd, d5dвырезать (удалить) 5 строк, начиная с текущей
    ccудалить и начать редактирование
    5сс, с5судалить 5 строк и начать редактирование
    yy  копировать строку
    p   вставить из буфера обмена
    <n>dудалить n+1 строку
    <n>yскопировать n+1 строку
    DEL удалить следующий символ
    dwудалить слово
    :<n>перейти на строку #n
    %   перейти к парной скобке
    :10,50s/old/new/g [c]Поиск и замена только в строках с 10-ой по 50-ую [c] подтверждение
    30lПереместить на 30 символов в право
    :e **/filename.cредактировать файл (с поиском по имени)
    :w [filename]записать изменения
    :waсохранить изменения во всех файлах
    :qвыйти из редактора
    :q!выйти из редактора, не сохраняя изменения
    :wq!выйти из редактора сохранив изменения
    ZZСохранить изменения и выйти
    ZQВыйти без сохранения изменений
    Команда>Действие
    :color <name>выбор цветовой схемы. цветвые схемы: /usr/local/share/vim/vim72/colors/*.vim
    :pwdтекущий каталог
    :cd [path]перейти в другой каталог
    :!командавыполнить консольную команду
    CTRL+p или CTRL+nавтоматическое дополнение текста (в режиме редактирования)
    CTR+r,=,<expr>вставить выражение, например 5*2 - 3 (в режиме редактирования)
    CTRL+u, CTRL+dPage Up / Page Down
    CTRL+y, CTRL+eПеремотка вверх/вниз без движения курсора

    Подсветка синтаксиса

    КомандаДействие
    :syntax onвключить подсветку
    :syntax offвыключить подсветку (по умолчанию)

    Перенос строк

    КомандаДействие
    :set wrapразрешить word wrap (по умолчанию)
    :set nowrapзапретить word wrap

    Печать

    КомандаДействие
    :ha[rdcopy]распечатать документ
    :set printoptions=duplex:offотключить двустороннюю печать

    Сворачивание

    КомандаДействие
    zcсвернуть блок
    zoразвернуть блок
    zMзакрыть все блоки
    zRоткрыть все блоки
    zaинвертирование
    zfсм :set foldmethod=manual
    :set foldenableвключить свoрачивание
    :set foldmethod=syntaxсворачивание на основе синтаксиса
    :set foldmethod=indentсворачивание на основе отступов
    :set foldmethod=manualвыделяем участок с помощью v и говорим zf
    :set foldmethod=markerсворачивание на основе маркеров в тексте
    :set foldmarker=bigin,endзадаем маркеры начала и конца блока

    Маркеры

    КомандаДействие
    maустановить локальный маркер a
    mBустановить глобальный маркер B
    `cперейти к локальному маркеру c
    `0вернуться на позицию, на которой закончили работу при закрытии vim
    :marksпросмотр маркеров
    set viminfo='1000,f1маркеры пишутся в ~/.viminfo, восстанавливаясь при следующем запуске vim. маркер
    "хранит последнюю позицию курсора в файле

    Сессии

    КомандаДействие
    mksession file.sessionсохранить текущую сессию
    source file.sessionвосстановить ранее сохраненную сессию

    Сессии

    КомандаДействие
    qaзаписать макрос с именем a
    qв режиме записи макроса: закончить запись
    @aвыполнить макрос с именем a
    @@повторить последний макрос

    Регистры

    КомандаДействие
    "ayyскопировать строку в регистр a
    "bddвырезать строку и поместить в регистр b
    "С2dвырезать три строки и дописать в конец регистра C
    :reg [name1][name2][...]просмотреть содержимое регистров

    Выделение

    КомандаДействие
    v+hjklвыделение текста
    SHIFT+vвыделить строку
    CTRL+vвыделение прямоугольника
    pвставить
    yкопировать
    dудалить
    guк нижнему регистру
    gUк верхнему регистру

    Отступы

    КомандаДействие
    [#]>сдвинуть выделенное вправо
    [#]<сдвинуть выделенное влево
    [#]>>сдвинуть строку вправо
    [#]<<сдвинуть строку влево
    set tabstop=#для табуляции используется # пробелов
    set shiftwidth=#в командах отступа используется # пробелов
    set [no]expandtabзаменять ли табуляцию на соответствующее число пробелов

    Поиск и замена в файле

    КомандаДействие
    /Выражениепоиск выражения в файле
    \cВыражениепоиск без учета регистра
    nследующее совпадение
    Nпредыдущее совпадение
    :%s/foo/bar/giзамена строк

    Поиск по всему проекту

    КомандаДействие
    :vimgrep /EXPR/ **/*.c   поиск по регулярному выражению
    :copenпоказать все найденные места
    :closeскрыть все найденные места
    :cnпереход к следующему результату
    :cpпереход к предыдущему результату

    Нумерация строк

    КомандаДействие
    :set numberвключить нумерацию строк
    :set nonumberотключить нумерацию строк

    Работа с вкладками (a.k.a табами)

    КомандаДействие
    :tabnew [filename]создать таб
    :tabsвывести список табов
    :tabnследующий таб
    :tabpпредыдущий таб
    <n>gtперейти на таб #n
    gt следующий таб
    gT предыдущий таб
    :tabm +1переместить таб вперед на одну позицию
    :tabm -1переместить таб назад на одну позицию
    :tabm 2переместить таб на заданную позицию (нумерация начинается с нуля)

    Работа с окнами

    КомандаДействие
    :splitгоризонтальное разбиение
    :vsplitвертикальное разбиение
    Ctr+W, затем
    сзакрыть окно
    +/-изменение высоты текущего окна
    <>изменение ширины текущего окна
    =установить равный размер окон
    hjkl или стрелочкиперемещение между окнами

    Работа с кодировкой

    КомандаДействие
    e ++enc=<имя кодировки>Редактирование файла в ??? кодировке
    w ++enc=<имя кодировки>Сохранить файл в новой кодировке
    set fileencodings=utf-8,koi8-rСписок автоматически определяемых кодировок в порядке убывания приоритета

    Другое

    КомандаДействие
    :set [no]wildmenuПри автодополнении в командной строке над ней выводятся возможные варианты
    :set listОтображать табуляцию и переводы строк
    q:История команд
    .Повторение последней команды
    — на страницу (экран) вниз — на страницу (экран) верх — на пол страницы (экрана) вниз — на пол страницы (экрана) верх — на строку вверх, без изменения положения курсора — на строку вниз, без изменения положения курсора w — Переместить курсор к следующему слову r — Заменить знак под курсором S — очистить текущую строку и начать ввод 0 («ноль») — в начало текущей строки; ^ — в начало текущей строки (к первому непробельному символу); $ — в конец текущей строки w — на слово вправо b — на слово влево W — до пробела вправо B — до пробела влево } — абзац вниз { — абзац вверх gg — перейти в начало файла G — перейти в конец файла G — перейти на конкретную строку / — перейти к ? — то же самое, но искать назад n — повторить поиск N — повторить поиск назад [[ — в начало функции '' — к месту выполнения команды [[

    Справочник по командам vi

    10.1 Режимы Vi

    Vi имеет 3 режима:

    1. командный режим - Включается при запуске vi; для перехода в командный режим из других режимов (используйте ESC)
    2. режим ввода - активируется специальными командами a i A I o O c C s S R и выключается при помощи ESC или в случае ошибки.
    3. линейный режим - т.е. ожидание ввода команд после нажатия : , / , ? или ! (выключается с CR, обрывается с помощью CTRL-c). CTRL это клавиша control: CTRL-c означает "control c"

    10.2 Команды Shell

    1. TERM= code Помещает имя вашего терминала в переменную TERM
    2. export TERM Передаёт значение переменной TERM (код терминала) любой программе в UNIX системе.
    3. tput init Инициализирует терминал таким образом, чтобы он функционировал правильно с различными UNIX программами.
    4. vi filename Запускает vi и загружает на редактирование указанный файл.
    5. vi file1 file2 file3 Записывает в буфер vi три файла для последующего их редактирования. Эти файлы file1, file2, и file3.
    6. view file Загружает файл file в режиме только-для-чтения.
    7. vi -R file Аналогично преведущей команде.
    8. vi -r file Восстанавливает file и последние изменения после краха системы.

    10.3 Установка параметров

    1. :set опция Активизирует опцию
    2. :set опция=значение Назначает значение для опции
    3. :set no опция Деактивирует опцию
    4. :set Показывает опции установленные пользователем.
    5. :set all Показывает все опции, как установленные пользователем, так и опции "по умолчанию".
    6. :set опцию? Показывает значение опции

    10.4 Используемые обозначения

    1. CTRL-c CTRL Это клавиша control: CTRL-c означает "control c"
    2. CR символ возврата каретки (клавиша ENTER)

    10.5 Обрывание и отмена

    • ESC Обрывает ввод неправильно или неполностью введенной команды
    • CTRL-? CTRL это клавиша control : CTRL-? означает "control ?" удаляет или стирает прерывание.
    • CTRL-l обновляет экран если CTRL-? замусорила его.

    10.6 Манипуляции с файлами

    • ZZ Сохраняет файл и выходит из vi
    • :wq Сохраняет файл и выходит из vi
    • :w Записывает файл
    • :w! Записывает файл даже если он защищен от записи
    • :wимя Записывает файл по именем имя
    • :q Выходит из vi
    • :q! Выходит из vi (независимо от того были ли внесены изменения)
    • :e имя Загружает для редактирования файл под именем имя
    • :e! Перезагрузить файл,стирая любые изменения которые были внесены
    • :e + name Загружает для редактирования файл под именем имя, начиная с конца.
    • :e + n Начинает редактирование со строки номер n
    • :e # Редактирует альтернативный файл
    • :n Редактирует следующий файл в списке файлов
    • :args Показывает файлы в текущем списке файлов
    • :rew Обновить текущий список файлов и начать редактировать первый файл.
    • :n args Указать новый список файлов
    • :f Показывает имя текущего файла и номер строки
    • CTRL-G Синоним для :f
    • :ta tag to tag file entry tag
    • CTRL-] :ta, следующее слово - тэг

    10.7 Перемещение

    • Arrows Перемещают курсор
    • CTRL-d Скроллирует полстраницы вниз
    • CTRL-u Скроллирует полстраницы вверх
    • CTRL-f Скроллирует целую страницу вниз
    • CTRL-b Скроллирует целую страницу вверх
    • :0 Переходит к началу файла
    • :n Переходит к строке номер n
    • :$ Переходит к концу файла
    • 0 Переходит к началу строки
    • ^ Переходит к первому символу, не пробелу
    • $ Переходит к концу строки
    • CR Переходит к началу следующей строки
    • - Переходит к началу преведущей строки
    • % Находит соответствующую скобку
    • G Переходит к строке (по умолчанию - к последней строке)
    • ]] Следующая секция/функция
    • [[ Преведущая секция/функция

    10.8 Позиционирование по строкам

    • H Первая строка экрана
    • L Последняя строка экрана
    • M Средняя строка экрана
    • + Следующая строка, первый символ не являющийся пробелом
    • - Предшествующая строка, первый символ не являющийся пробелом
    • CR возврат, тоже что и +
    • j Следующая строка, таже колонка
    • k Преведущая строка, таже колонка

    10.9 Позиционирование по символам

    • 0 Начало строки
    • $ Конец строки
    • h Вперед
    • l Назад
    • SPACE Тоже что и l
    • fx Найти x вперед по тексту
    • Fx Найти x назад по тексту
    • ; Повторить последнюю операцию f F
    • , Инверсно ;
    • | К специфицированной колонке
    • % Найти соответствующий символ { или }

    10.10 Слова, предложения параграфы

    • w Слово вперед
    • b Слово назад
    • e Конец слова
    • ) К следующему предложению
    • ( К преведущему предложению
    • } К следующему параграфу
    • { К преведущему параграфу
    • W К концу большого слова, включая пробел на его конце
    • B Назад на большое слово W
    • E К концу большого слова W

    10.11 Установка отметок и возврат к ним

    • `` (дважды нажмите клавишу `) К преведущей отметки
    • '' (press twice the single-quote ` key) Последняя отметка, первый не пробел в строке
    • mx Установка отметки с именем x
    • `x (обратная кавычка и x) перейти к отметке x
    • 'x Перейти к отметке x, на первый не пробел в строке

    10.12 Коррекция во время ввода текста

    • CTRL-h Удаляет последний символ
    • CTRL-w Удаляет последнее слово
    • erase Нажмите DELETE, тоже что и CTRL-h
    • kill Ваша клавиша kill, стирает ввод сделанный на этой строке
    • \ Экранирует CTRL-h, DELETE и kill
    • ESC Окончить ввод, назад в командный режим
    • CTRL-? Прервать, терминирует ввод
    • CTRL-d Обратная табуляции на autoindent пробелов
    • CTRL-v Экранирует непечатный символ

    10.13 Обновления экрана

    • CTRL-l Очистить и перерисовать
    • CTRL-r перенабор, убирает @строки
    • z-CR перерисовать, текущую строку на вершине окна
    • z- перерисовать, текущую строку на краю окна
    • z. перерисовать, текущую строку в центре экрана
    • /pat/z- сгладить край строки
    • tn Использовать экран с строкой n
    • CTRL-e Скроллировать окно вниз на 1 строку
    • CTRL-y Скроллировать окно вверх на 1 строку

    10.14 Удаление

    • x Удаляет символ под курсором
    • X Удаляет символ перед курсором
    • D Удаляет до конца строки
    • d^ Удаляет до начала строки
    • dd Удаляет текущую строку
    • ndd Удаляет n строк начиная с текущей
    • dnw Удаляет n слов начиная с положения курсора

    10.15 Вставка, замена

    • i Входит в режим вставки (с вставкой перед курсором)
    • I Входит в режим вставки (перед первым не пробелом)
    • a Входит в режим вставки (вставка после курсора)
    • A Входит режим вставки (вставка после конца текущей строки)
    • o Создать новую строку после текущей и перейти в режим вставки
    • O Создает новую строку перед текущей и входит в режим вставки
    • r Заменить символ под курсором не переходя в режим вставки
    • R Войти в режим замены
    • C shift-c. Изменить остаток строки
    • D shift-d. Удалить остаток строки
    • s Заменить символы
    • S Заменить строки
    • J Объединить строки

    10.16 Копирование и вставка

    "Буфер копирования" заполняется КАЖДОЙ командой удаления,или с помощью Y и yy.

    • Y Копирует текущую строку в буфер
    • nyy Копирует n строк начиная с текущей в буфер копирования
    • p Вставляет содержимое буфера копирования после курсора (или перед текущей строкой)
    • P Вставляет содержимое буфера обмена перед курсором (или перед текущей строкой)
    • "xp Вставить из буфера x
    • "xy Скопировать в буфер x
    • "xd Удалить в буфер x

    10.17 Операции (для применения к строкам вводятся дважды)

    • d удалить
    • c изменить
    • < сдвинуть влево
    • > сдвинуть вправо
    • ! отфильтровать через команду
    • = отдать для LISP
    • y скопировать текст в буфер

    10.18 Поиск и замена

    • /text Искать вперед образец text
    • ?text Искать назад образец text
    • n Повторить последний поиск в том же направлении
    • N Повторить последний поиск в обратном направлении
    • / Повторить последний поиск вперед
    • ? Повторить последний поиск назад
    • [ addr ] s/from/to/ [ g ] Искать from и заменить его на to в текущей строке, или в указанном диапазоне addr (два номера строки разделенные командой; 1,$ весь файл). Заменить одно совпадение на строку либо все совпадения если g указано. Например, :3,20s/someword/anotherword/g. Заменит "someword" на "anotherword" начиная от строки номер 3 до строки 20. 'g' - означает замену всех совпадений.

    10.19 Общие

    • :sh Вызывает shell (выход по CTRL-d)
    • :!команда Вызывает shell для исполнения команды
    • :set number Включает нумерацию строк
    • :set nonumber Выключает нумерацию строк

    10.20 Команды линейного редактора

    • : Говорит vi что следующая введенная команда является командой линейного редактора.
    • :sh Временный выход в shell чтобы исполнить какие либо команды не покидая vi.
    • CTRL-d Выходит из shell запущенного преведущей командой в vi.
    • :n Переходит к строке номер nth текущего буфера.
    • :x,zw filename Записывает строки от x до z в новый файл называемый filename.
    • :$ Передвигает курсор к началу последней строки буфера.
    • :.,$d Удаляет все строки от текущей до последней.
    • :r filename Вставляет содержимое файла filename после текущей строки буфера.
    • :s/text/new_text/ Заменяет первый встреченный образец text на текущей строке на new_text
    • :s/text/new_text/g Заменяет все образцы text на текущей строке на new_text
    • :g/text/s//new_text/g Заменяет все встреченный в буфере образцы text на new_text.

    10.21 Другие команды

    • u Отменить последнее изменение
    • U Восстановить текущую строку
    • ~ Изменить регистр
    • J Соединить текущую строку со следующей
    • . Повторить последнюю команду изменения текста
    • CTRL-g Показать имя файла и номер строки

    Что делать при аварийном остановах системы

    Помощник Windows | Помощник Linux | Помощник MacOS