CLI - Command Line Interface A-Z


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

template - описание на русском

    a
    b
    c
    d
    e
    f
    g
    h
    i
    j
    k
    l
    m
    n
    o
    p
    q
    r
    s
    t
    u
    v
    w
    x
    y
    z
  • - -
    
        

A

B

C

chroot - ?

Ключи
  • -
    
        

Примеры

Пример

        content
    

curl - скачивание файлов

Ключи
  • -o, --output - сохранить результат в файл
    
    $ curl ifconfig.co -o ip.txt
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100    13  100    13    0     0    131      0 --:--:-- --:--:-- --:--:--   132
    avis@avis-PC[22:00:18]:/tmp/test$ cat ip.txt 
    95.26.227.10
        
  • -O -
    
        

Примеры

Пример

        content
    

D

dd - Копирование данных побайтово

dd if=[откуда] of=[куда] [опции]

Ключи
  • - -
    
        

Примеры

Скопировать из /dev/urandom в /dev/null 5 раз по 100Мб

$ dd if=/dev/urandom of=/dev/null bs=100M count=5
dd: warning: partial read (33554431 bytes); suggest iflag=fullblock
0+5 записей получено
0+5 записей отправлено
167772155 байт (168 MB, 160 MiB) скопирован, 0,705438 s, 238 MB/s
    

df - Показывает сведения о файловой системе

Ключи
  • -h, --human-readable - показывает размеры в человеко читаемом формате
    
    root@freebsd11:/test02 # df -h /test02/
    Filesystem     Size    Used   Avail Capacity  Mounted on
    /dev/ada0p2    9.0G    1.1G    7.2G    13%    /
            
  • -
    
        
  • -
    
        
Формат
КлючОписание
FilesystemНазвание файловой системы
SizeОбщий размер
UsedСколько использованно
AvailСколько свободно
Capacity
Mounted onТочка монторования

Примеры

Пример

        content
    

du: Disk Usage - информация об использовании дискового пространства

Ключи
  • -s, --summarize - показывать итог
  • -h, --human-readable - печатать размеры в удобном для человека виде (например: 1K, 234M, 2G)

Примеры

Сколько весит директория

avis@PC:~$ du -sh develop/
2,6G    develop/
    
Самые большие файлы/диры

# du -Sh | sort -rh | head -10
    

date - Вывод или установка даты

Ключи
  • - -
    
        

Примеры

Пример

        content
    

Формат

E

F

for - цикл

Ключи
  • - -
    
        

Примеры

Пример

avis@avisPC[19:06:27]:~/develop/learn/linux/sed$ for i in {1..5}; do echo "Welcome $i times"; done
Welcome 1 times
Welcome 2 times
Welcome 3 times
Welcome 4 times
Welcome 5 times
    

G

groupadd - создание группы

Ключи
  • -r, --system - Создать системную группу.
    
        

Примеры

Пример

        content
    

grep - поиск строки в файле

Ключи
  • -A NUM, --after-context=NUM - вывести NUM строк после найденными
    
    $ cat file4.txt 
    line 1
    line 2
    line 3
    line 4
    hello
    line 5
    line 6
    
    $ grep hell -A2 ./file4.txt 
    hello
    line 5
    line 6
        
  • -B NUM, --before-context=NUM - вывести NUM строк перед найденными
    
    $ grep hell -B2 ./file4.txt 
    line 3
    line 4
    hello
        
  • -C NUM, -NUM, --context=NUM - вывести NUM строк вокруг найденными
    
    $ grep hell -C2 ./file4.txt 
    line 3
    line 4
    hello
    line 5
    line 6
        
  • -r, --recursive - рекурсивный поиск
    
    $ tree 
    .
    ├── file1.txt
    └── test2
        ├── hi.txt
        └── link_f1.txt -> ../file1.txt
    
    1 directory, 3 files
    $ grep hello . -r
    ./file1.txt:test_hello_sda
    ./test2/hi.txt:hello
        
  • -R, --dereference-recursive - рекурсивный поиск, вместе с симлинками
    
    $ grep hello . -R
    ./file1.txt:test_hello_sda
    ./test2/link_f1.txt:test_hello_sda
    ./test2/hi.txt:hello
        
  • -v - искоючить строку из поиска
    
    $ cat file2.txt 
    hello1
    hello2
    $ grep hello1 -v ./file2.txt 
    hello2
        
  • -l, --files-with-matches - вывести только названия файлов в которых была найдена строка
    
    $ grep hello1 -l ./file2.txt 
    ./file2.txt
        
  • -L, --files-without-match - вывести только названия файлов в которых НЕ была найдена строка
    
    $ cat file1.txt 
    dsadsa
    $ grep hello -L -R ./file1.txt 
    ./file1.txt
        
  • -H, --with-filename - выводить название файлов
    
    $ grep hello1 -RH ./
    ./file2.txt:hello1
        
  • -h, --no-filename - НЕ выводить название файлов
    
    $ grep hello1 -Rh ./
    hello1
        
  • -n, --line-number - вывести номера строк в которых было найдено совпадение
    
    $ grep hello2 -n ./file2.txt 
    2:hello2
        
  • -i, --ignore-case - регистронезависимый поиск
    
    $ grep hello -i ./file2.txt 
    hello1
    hello2
    HELLO
        
  • -c, --count - вывести кол-во найденых совпадений
    
    $ grep hell -c ./file2.txt
    2
        
  • -m NUM, --max-count=NUM - число максимальных нахождений строки
    
    $ cat file3.txt 
    1hello
    2hello
    3hello
    4hello
    5hello
    6hello
    7hello
    8hello
    9hello
    10hello
    avis@avis-PC[22:35:41]:/tmp/test$ grep hell ./file3.txt -m5
    1hello
    2hello
    3hello
    4hello
    5hello
        

Примеры


    
Убрать из файла file1.txt все строки, содержащиеся в файле not_wanted

avis@avis-PC[00:16:04]:/tmp/test$ cat not_wanted 
2
4
6
8avis@avis-PC[00:16:10]:/tmp/test$ cat file1.txt 
1
2
3
4
5
6
7
8
9
0avis@avis-PC[00:16:13]:/tmp/test$ grep -v -f not_wanted file1.txt 
1
3
5
7
9
0
avis@avis-PC[00:16:15]:/tmp/test$ 
    
Убрать пустые строки в файле

$ cat file1.txt 
test_hello_sda


ds
a
d
sa
d






w

w

avis@avis-PC[00:13:45]:/tmp/test$ grep -v '^$' file1.txt 
test_hello_sda
ds
a
d
sa
d
w
w
avis@avis-PC[00:14:03]:/tmp/test$ 
    
Смотрим конфиги без комментариев

$ cat /etc/ssh/ssh_config | grep -vE "^#|^$"
Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no
    
Найти one или two или three без учета регитра

$ cat file 
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
one
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
TWO
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
...
$ cat file | grep -iE "(one|two|three)"
one
TWO
    
Найти по папкам данное слово и вывести номер строки и путь до файла

$ grep -nri 'hell' ./
Двоичный файл ./big совпадает
./file1.txt:1:test_hello_sda
./test2/hi.txt:1:hello
    

gpg - зашифровать/расшифровать файл

  • -c file - зашифровать файл
    
    $ gpg -c file.txt 
    Введите фразу-пароль: 
        
  • Расшифровать
    
    $ gpg file.txt.gpg 
    gpg: данные зашифрованы алгоритмом AES
    gpg: зашифровано с 1 фразой-паролем     
    Файл `file.txt' существует. Записать поверх (y/N)? 
        

H

htop - вывод списка запущенных процессов

Ключи
  • -
    
        
Управление
  • F3 - Поиск
  • F4 - Фильтр
  • F5 - Показать треды
  • F6 - Свернуть/Раскрыть треды
  • F7 - Уменьшить приоритет
  • F8 - Увеличить приоритет
  • F9 - Убить процесс
  • Shift + F - Следить за процессом

Примеры

Пример

        content
    

host - получения информации DNS-серверов

Ключи
  • -

Примеры

Узнать ip по домену

$ host ya.ru
ya.ru has address 87.250.250.242
ya.ru has IPv6 address 2a02:6b8::2:242
ya.ru mail is handled by 10 mx.yandex.ru.
    
Узнать домен по ip

$ host 87.250.250.242
242.250.250.87.in-addr.arpa domain name pointer ya.ru.
    

I

iptables - файервол

Ключи
  • -

Примеры

Пример

        content
    

J

K

kldload - ?

kldload

Ключи
  • -
    
        

Примеры

Пример

        content
    

L

ls - список файлов и атрибутов

Ключи
  • - -
    
        
  • -1 - Вывести список всех файлов в столбик, без указания дополнительных параметров
    
    $ ls -1
    file1.txt
    test2
        
  • -a - Вывести список всех файлов, включая файлы, имена которых начинаются с точки
    
    $ ls -a
    .  ..  file1.txt  test2
        
  • -l - Подробный вывод, включая атрибуты файлов
    
    $ ls -l
    итого 8
    -rw-rw-r-- 1 avis avis   15 июл 16 22:49 file1.txt
    drwxrwxr-x 2 avis avis 4096 июл 16 22:52 test2
        
  • -t - сортировка по дате модификации
    
    $ ls -lt
    итого 12
    -rw-rw-r-- 1 avis avis    2 июл 16 23:05 test
    drwxrwxr-x 2 avis avis 4096 июл 16 22:52 test2
    -rw-rw-r-- 1 avis avis   15 июл 16 22:49 file1.txt
        
  • -h - ("human-readable" - удобный для восприятия), чтобы размер файлов выводился в килобайтах, мегабайтах и гигабайтах вместо байтов
    
    $ ls -lth
    итого 12K
    -rw-rw-r-- 1 avis avis    2 июл 16 23:05 test
    drwxrwxr-x 2 avis avis 4,0K июл 16 22:52 test2
    -rw-rw-r-- 1 avis avis   15 июл 16 22:49 file1.txt
        
  • -F - Пометить имена определенных файлов целевыми символами, указывающими на топ файлов. Приписывает"/" к иректориям, "*" к исполняемым файлам, "@" к символьным ссылкам, "|" к именованных каналам и "=" - к сокетам
    
    $ ls -F
    file1.txt  link.txt@  test  test2/
        
  • -i - Добавить к выводу информационные дескрипторы (inode) файлов
    
    $ ls -li
    итого 12
    1214101 -rw-rw-r-- 1 avis avis   15 июл 16 22:49 file1.txt
    1214157 lrwxrwxrwx 1 avis avis   14 июл 16 23:08 link.txt -> ./test2/hi.txt
    1214156 -rw-rw-r-- 1 avis avis    2 июл 16 23:05 test
    1214099 drwxrwxr-x 2 avis avis 4096 июл 16 22:52 test2
        
  • -s - Добавить размер файла в блоках, полезно для сортировки файлов по размеру
    
    $ ls -ls
    итого 163852
    163840 -rw-rw-r-- 1 avis avis 167772155 июл 16 23:16 big
         4 -rw-rw-r-- 1 avis avis        15 июл 16 22:49 file1.txt
         0 lrwxrwxrwx 1 avis avis        14 июл 16 23:08 link.txt -> ./test2/hi.txt
         4 -rw-rw-r-- 1 avis avis         2 июл 16 23:05 test
         4 drwxrwxr-x 2 avis avis      4096 июл 16 22:52 test2
        
  • -R - При выводе содержимого директории вывести рекурсивно дерево подкаталогов с выдачей их содержимого
    
    $ ls -lR 
    .:
    итого 163856
    -rw-rw-r-- 1 avis avis 167772155 июл 16 23:16 big
    -rw-rw-r-- 1 avis avis        15 июл 16 22:49 file1.txt
    lrwxrwxrwx 1 avis avis        14 июл 16 23:08 link.txt -> ./test2/hi.txt
    -rw-rw-r-- 1 avis avis         2 июл 16 23:05 test
    drwxrwxr-x 2 avis avis      4096 июл 16 22:52 test2
    
    ./test2:
    итого 4
    -rw-rw-r-- 1 avis avis  6 июл 16 21:38 hi.txt
    lrwxrwxrwx 1 avis avis 12 июл 16 22:52 link_f1.txt -> ../file1.txt
        

Примеры

Пример

        content
    

lsof - какие файлы используются процессами

Ключи
  • -u - Список файлов открытые пользователем
    
        $ lsof -u avis | wc -l
    12903
            
  • -U - Файлы открытые процессом. Знак ^ инвертирует поиск
    
    :~/tmp$ shell -e 'sleep 10; print 1'
    $ lsof -shell
    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
    shell    21941 avis  cwd    DIR    8,5     4096  280406 /home/avis/tmp
    shell    21941 avis  rtd    DIR    8,5     4096       2 /
    shell    21941 avis  txt    REG    8,5  1907192 2097180 /usr/bin/shell
    shell    21941 avis  mem    REG    8,5  4234816 2104059 /usr/lib/locale/locale-archive
    ...
            
    
    $ lsof -c^shell | head 
  • +d - Список файлов открытых в директории(но не в поддиректориях)
    
    avis@avis-PC[13:39:32]:~/develop/doc/_posts$ lsof +d .
    COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
    plugin_ho  4296 avis   19r   REG    8,5    21870 1837814 ./2018-07-09-alg-book.md
    lsof      13108 avis  cwd    DIR    8,5     4096 1837936 .
    lsof      13109 avis  cwd    DIR    8,5     4096 1837936 .
    shell      13235 avis  cwd    DIR    8,5     4096 1837936 .
    
        
  • -d - Эта опция позволяет задать список дескрипторов файлов, разделённых запятой, которые надо включить в вывод или исключить из него.
    
    $ yes > /dev/null
    $ lsof -d 0,1,2 | grep yes
    yes       13822 avis    0u   CHR             136,21      0t0      24 /dev/pts/21
    yes       13822 avis    1w   CHR                1,3      0t0       6 /dev/null
    yes       13822 avis    2u   CHR             136,21      0t0      24 /dev/pts/21
    
        
  • -p - Список файлов открытым процессом по пиду
    
    $ lsof -p 14167
    COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
    shell    14167 avis  cwd    DIR    8,5     4096  262146 /home/avis
    shell    14167 avis  rtd    DIR    8,5     4096       2 /
    shell    14167 avis  txt    REG    8,5  1907192 2097180 /usr/bin/shell
    shell    14167 avis  mem    REG    8,5  4234816 2104059 /usr/lib/locale/locale-archive
    shell    14167 avis  mem    REG    8,5    39224 3807413 /lib/x86_64-linux-gnu/libcrypt-2.23.so
    shell    14167 avis  mem    REG    8,5  1868984 3802622 /lib/x86_64-linux-gnu/libc-2.23.so
    shell    14167 avis  mem    REG    8,5   138696 3801184 /lib/x86_64-linux-gnu/libpthread-2.23.so
    shell    14167 avis  mem    REG    8,5  1088952 3801179 /lib/x86_64-linux-gnu/libm-2.23.so
    shell    14167 avis  mem    REG    8,5    14608 3805631 /lib/x86_64-linux-gnu/libdl-2.23.so
    shell    14167 avis  mem    REG    8,5   162632 3801183 /lib/x86_64-linux-gnu/ld-2.23.so
    shell    14167 avis    0u   CHR 136,21      0t0      24 /dev/pts/21
    shell    14167 avis    1u   CHR 136,21      0t0      24 /dev/pts/21
    shell    14167 avis    2u   CHR 136,21      0t0      24 /dev/pts/21
    
        
  • -i - позволяет вывести сведения о файлах, интернет-адреса которых соответствуют заданному адресу.
    
    ~$ lsof -i 
    COMMAND     PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    plugin_ho  4296 avis   20u  IPv4   33003      0t0  TCP 192.168.1.35:37596->45.55.41.223:http (CLOSE_WAIT)
    chrome    17982 avis   83u  IPv4 1429216      0t0  TCP 192.168.1.35:33904->lu-in-f188.1e100.net:5228 (ESTABLISHED)
    chrome    17982 avis  105u  IPv4 1413784      0t0  UDP *:mdns 
    chrome    17982 avis  124u  IPv4 1507179      0t0  UDP 192.168.1.35:46459->lk-in-f100.1e100.net:https 
    chrome    17982 avis  125u  IPv6 1413785      0t0  UDP *:mdns 
    chrome    17982 avis  132u  IPv4 1508698      0t0  TCP localhost:50142->localhost:4000 (ESTABLISHED)
    chrome    17982 avis  134u  IPv4 1508701      0t0  TCP localhost:50146->localhost:4000 (ESTABLISHED)
    chrome    17982 avis  142u  IPv4 1507651      0t0  TCP 192.168.1.35:44116->mc.yandex.ru:https (ESTABLISHED)
    chrome    17982 avis  143u  IPv4 1508356      0t0  TCP 192.168.1.35:57894->104.236.216.52:https (ESTABLISHED)
    chrome    17982 avis  157u  IPv4 1508718      0t0  TCP localhost:32902->localhost:35729 (ESTABLISHED)
    chrome    17982 avis  170u  IPv4 1505882      0t0  TCP 192.168.1.35:40184->collector.mediator.media:https (ESTABLISHED)
    chrome    17982 avis  178u  IPv4 1508713      0t0  TCP localhost:32898->localhost:35729 (ESTABLISHED)
    ruby2.3   19055 avis    8u  IPv4  817337      0t0  TCP localhost:4000 (LISTEN)
    ruby2.3   19055 avis   12u  IPv4  817333      0t0  TCP localhost:4001 (LISTEN)
    ruby2.3   19055 avis   13u  IPv4  817336      0t0  TCP localhost:35729 (LISTEN)
    ruby2.3   19055 avis   16u  IPv4 1508699      0t0  TCP localhost:4000->localhost:50142 (ESTABLISHED)
    ruby2.3   19055 avis   17u  IPv4 1508714      0t0  TCP localhost:35729->localhost:32898 (ESTABLISHED)
    ruby2.3   19055 avis   18u  IPv4 1508702      0t0  TCP localhost:4000->localhost:50146 (ESTABLISHED)
    ruby2.3   19055 avis   19u  IPv4 1508719      0t0  TCP localhost:35729->localhost:32902 (ESTABLISHED)
        
  • -t - Список PID-ов процессов использующие файл. Удобно использлвать совместно с kill
    
    $ lsof -t ./2018-07-09-alg-book.md
    4296
        

Примеры

Кто использует порт

$ sudo lsof -i :5432
COMMAND    PID         USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
postgres 28941 guest-edib3e    3u  IPv4 422800      0t0  TCP *:postgresql (LISTEN)
postgres 28941 guest-edib3e    4u  IPv6 422801      0t0  TCP *:postgresql (LISTEN)
    
Сколько соединений открыты Chrome

$ lsof -i -a -u $USER | grep chrome
chrome    17982 avis   79u  IPv4 1430215      0t0  TCP 192.168.1.35:52056->srv129-129-240-87.vk.com:https (ESTABLISHED)
chrome    17982 avis   83u  IPv4 1429216      0t0  TCP 192.168.1.35:33904->lu-in-f188.1e100.net:5228 (ESTABLISHED)
chrome    17982 avis  105u  IPv4 1413784      0t0  UDP *:mdns 
chrome    17982 avis  124u  IPv4 1507179      0t0  UDP 192.168.1.35:46459->lk-in-f100.1e100.net:https 
chrome    17982 avis  125u  IPv6 1413785      0t0  UDP *:mdns 
chrome    17982 avis  139u  IPv4 1429165      0t0  TCP 192.168.1.35:51988->srv129-129-240-87.vk.com:https (ESTABLISHED)
chrome    17982 avis  143u  IPv4 1508356      0t0  TCP 192.168.1.35:57894->104.236.216.52:https (ESTABLISHED)
chrome    17982 avis  164u  IPv4 1507411      0t0  UDP 192.168.1.35:60888->lk-in-f194.1e100.net:https 
chrome    17982 avis  170u  IPv4 1505882      0t0  TCP 192.168.1.35:40184->collector.mediator.media:https (ESTABLISHED)
chrome    17982 avis  174u  IPv4 1507455      0t0  TCP localhost:32810->localhost:35729 (ESTABLISHED)
chrome    17982 avis  201u  IPv4 1507460      0t0  TCP localhost:32814->localhost:35729 (ESTABLISHED)
chrome    17982 avis  289u  IPv4 1507443      0t0  TCP localhost:50044->localhost:4000 (ESTABLISHED)
chrome    17982 avis  324u  IPv4 1507326      0t0  TCP localhost:50050->localhost:4000 (ESTABLISHED)
chrome    17982 avis  329u  IPv4 1507448      0t0  TCP localhost:50054->localhost:4000 (ESTABLISHED)
chrome    17982 avis  350u  IPv4 1507450      0t0  TCP localhost:50058->localhost:4000 (ESTABLISHED)

    
Все UDP соединения

$ lsof -iUDP
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
chrome  17982 avis  105u  IPv4 1413784      0t0  UDP *:mdns 
chrome  17982 avis  125u  IPv6 1413785      0t0  UDP *:mdns 

        content
    

M

mkdir - Создаение директории

Ключи
  • -p - создание "родителей"
    
        

Примеры

Пример

        content
    

N

netstat - вывод состояний сетевых соединений

PS Считается устаревшей, лучше использовать ss

Ключи
  • -l - вывести все прослушивающие сокеты
  • -t - все tcp соеднинения
  • -u - все udp соеднинения
  • -p - пид и имя процесса
  • -n - вывести порт который слушает
  • -c - выводить каждую секунду
Формат полей
  • Proto - протокол udp или tcp
  • Recv-Q - получено
  • Send-Q - отправлено
  • Local Address - локальный адрес и порт, к которому привязана служба, то есть IP адрес и порт, которые прослушиваются
  • Foreign Address - удалённый адрес и порт, к которым выполнено соединение.
  • State - Состояние, для tcp=listen, для udp=
  • PID/Program name - пид и название программы

Примеры

Пример

$ sudo netstat -ltup
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State       PID/Program name
tcp        0      0 *:postgresql            *:*                     LISTEN      28941/postgres  
tcp        0      0 *:smtp                  *:*                     LISTEN      3665/master     
tcp        0      0 *:microsoft-ds          *:*                     LISTEN      3561/smbd       
tcp        0      0 localhost:4000          *:*                     LISTEN      13097/ruby2.3   
tcp        0      0 localhost:4001          *:*                     LISTEN      13097/ruby2.3   
tcp        0      0 localhost:4002          *:*                     LISTEN      4483/plugin_host
tcp        0      0 *:netbios-ssn           *:*                     LISTEN      3561/smbd       
tcp        0      0 localhost:35729         *:*                     LISTEN      13097/ruby2.3   
    
Пример

$ sudo netstat -ltupnc
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State       PID/Program name
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      28941/postgres  
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      3665/master     
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      3561/smbd       
tcp        0      0 127.0.0.1:4000          0.0.0.0:*               LISTEN      13097/ruby2.3   
tcp        0      0 127.0.0.1:4001          0.0.0.0:*               LISTEN      13097/ruby2.3   
tcp        0      0 127.0.0.1:4002          0.0.0.0:*               LISTEN      4483/plugin_host
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      3561/smbd       
tcp        0      0 127.0.0.1:35729         0.0.0.0:*               LISTEN      13097/ruby2.3   
    

nmcli - утилита для управления сетевыми соединениями

Ключи
  • device - Список устройств
    
    $ nmcli device
    УСТРОЙСТВО  ТИП       СОСТОЯНИЕ      СОЕДИНЕНИЕ    
    wlp2s0      wifi      подключено     Keenetic-0617 
    enp3s0      ethernet  недоступен     --            
    lo          loopback  не настроенно  --   
        
  • connection [up|down] interface - Включить/выключить интерфейс
    
    $ nmcli connection down Keenetic-0617
    Соединение 'Keenetic-0617' успешно выключено (Активный путь DBus: /org/freedesktop/NetworkManager/ActiveConnection/2)
            
    
    $ nmcli connection up Keenetic-0617
    Соединение успешно активировано (адрес действующего D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/3)
            

Примеры

Пример

        content
    

O

P

Q

R

read - Чтение из файлового дескриптора

Ключи
  • -
    
        

Примеры

Примеры

Запись строки в переменную


$ read test
hello
avis@avis-PC[21:10:19]:~$ echo $test
hello
    

S

ss: socket statistics - мониторинг сетевых подключений

TODO: - https://losst.ru/monitoring-setevyh-podklyuchenij-v-linux

Ключи
  • -s, --summary - Итого
    
    $ ss -s
    Total: 1183 (kernel 0)
    TCP:   37 (estab 19, closed 4, orphaned 0, synrecv 0, timewait 1/0), ports 0
    
    Transport Total     IP        IPv6
    *     0         -         -        
    RAW   1         0         1        
    UDP   17        14        3        
    TCP   33        30        3        
    INET      51        44        7        
    FRAG      0         0         0  
                
  • -l - Слушающие
  • -a - Ожидающие
  • -t - TCP
  • -x
  • - Unix

    Фильтры

  • all - все состояния
  • established -
  • syn-sent -
  • syn-recv -
  • fin-wait-1 -
  • fin-wait-2 -
  • time-wait -
  • closed -
  • close-wait -
  • last-ack -
  • listening -
  • closing -
  • connected - все состояния, кроме ожидающих соединения и закрытых
  • synchronized - все состояния, соответствующие установленным соединениям, за исключением syn-sent
  • bucket - состояния, представляющие собой минисокеты, например — time-wait и syn-recv
  • big - всё кроме того, что соответствует идентификатору bucket

Примеры

Все ожидающие TCP соединения с IPv4

avis@PC:~$ ss -t4 state listening
Recv-Q Send-Q                                      Local Address:Port                                                       Peer Address:Port                
0      50                                                      *:microsoft-ds                                                          *:*                    
0      80                                              127.0.0.1:mysql                                                                 *:*                    
0      50                                                      *:netbios-ssn                                                           *:*                    
0      128                                             127.0.0.1:11211                                                                 *:*                    
0      10                                              127.0.0.1:2222                                                                  *:*                    
0      5                                               127.0.1.1:domain                                                                *:*                    
0      100                                                     *:smtp                                                                  *:*                    

    
Информация о подключенном IP

root@host0:~# ss dst 192.168.33.1
Netid  State      Recv-Q Send-Q                                           Local Address:Port                                               Peer Address:Port   
tcp    ESTAB      0      0                                                192.168.33.10:ssh                                                192.168.33.1:58484   

Узнать, кто занял порт, можно одной из следующих команд:


ss -p state listening '( sport = :443 )'
ss -tlp '( sport = :443 )'
ss -p state listening '( sport = :http or sport = :https )'
            

Процесс:


ss -4tlp | grep nginx
            
Можно ещё добавить, если на дисплее не помещается:

ss -tlp '( sport = :443 )' | tr -d '\t'
            

sed - потоковый редактор для фильтрования и форматирования текста

sed опции -e команды файл

Ключи
  • -n, --quiet, --silent - не выводить содержимое буфера шаблона на каждой итерации
    
        
  • - -
    
        

Примеры

Вывести с 3 по 8 строку файла

avis@avisPC[19:05:05]:~/develop/learn/linux/sed$ for i in {1..10}; do echo $i >> file1.txt ; done
avis@avisPC[19:05:10]:~/develop/learn/linux/sed$ sed -n '3, 8 p' file1.txt 
2
3
4
5
6
7
avis@avisPC[19:05:13]:~/develop/learn/linux/sed$ 
    
Вывести весь файл, кроме строк с 3 по 8

$ sed '3, 8 d' file1.txt 
1
2
9
10
    
Найти и заменить foo на bar

$ cat file1.txt 
1
2
3
4
5
foo
6
7
bar
8
9
foo
10
avis@avisPC[19:30:30]:~/develop/learn/linux/sed$ sed 's/foo/bar/' file1.txt 
1
2
3
4
5
bar
6
7
bar
8
9
bar
10
avis@avisPC[19:30:30]:~/develop/learn/linux/sed$ 
    
Заменить foo на bar с 1 по 5 строки

$ cat file1.txt 
1
2
3 foo
4
5
6 foo
7 bar
8
9 foo
10
avis@avisPC[19:34:30]:~/develop/learn/linux/sed$ sed '1,4 s/foo/bar/' file1.txt 
1
2
3 bar
4
5
6 foo
7 bar
8
9 foo
10
    
Удалить все пустые строки и строки с коментариями

# sed '/^#\|^$/d' /etc/apache2/apache2.conf 
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
...
    
Удалить все пустые строки и строки с коментариями

# sed '/^#\|^$/d' /etc/apache2/apache2.conf 
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
...
    
Удалить строку 4

$ cat file1.txt 
1
2
3 foo
4
5 bar
6
7 foo
8
9 foo
10
avis@avisPC[20:15:27]:~/develop/learn/linux/sed$ sed '4d' file1.txt 
1
2
3 foo
5 bar
6
7 foo
8
9 foo
10
avis@avisPC[20:15:28]:~/develop/learn/linux/sed$
    

T

tail (хвост) - вывод содержимого файла с конца

Ключи
  • -f - выводить непрерывно
    
        

Примеры

Пример

        content
    

U

V

W

wget - консольная программа для загрузки файлов по сети


  • -a logfile, --append-output=logfile -
    
        

  • -b, --background - скачивание в фоновом режиме
    
    wget -b https://ftp.postgresql.org/pub/source/v9.6.16/postgresql-9.6.16.tar.gz
    ...
    Работа продолжается в фоновом режиме, pid 20090.
    Выходные данные будут записаны в «wget-log».
        

  • -c, --continue - Продолжить загрузку ранее не полностью загруженного файла
    
    $ wget -c http://releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.iso
    --2019-12-05 16:03:58--  http://releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.iso
    Распознаётся releases.ubuntu.com (releases.ubuntu.com)... 2001:67c:1560:8001::7, 2001:7b8:3:37::21:3, 2001:67c:1360:8001::26, ...
    Подключение к releases.ubuntu.com (releases.ubuntu.com)|2001:67c:1560:8001::7|:80... соединение установлено.
    HTTP-запрос отправлен. Ожидание ответа... 206 Partial Content
    Длина: 2082816000 (1,9G), 2042833039 (1,9G) осталось [application/x-iso9660-image]
    Сохранение в каталог: ««ubuntu-18.04.3-desktop-amd64.iso»».
    
      ubuntu-18.04.3-deskto   2%[                               ]  42,10M  1,92MB/s               ^C
        

  • -e command, --execute command - выполнить команду
    
        

  • -h, --help - помощь
    
    wget -h
    ...
    GNU Wget 1.17.1, программа автоматического получения файлов по сети.
    Использование: wget [КЛЮЧ]... [URL]...
    
    Обязательные аргументы для длинных параметров являются обязательными и для коротких параметров.
    ...
        

  • -i file, --input-file=file - Чтение URLs из локального файла. Если передан символ `-` что чтение происходит через стандартный ввод.
    
    $ wget -i -
    ya.ru
    --2019-12-05 15:52:59--  http://ya.ru/
    Распознаётся ya.ru (ya.ru)... 2a02:6b8::2:242, 87.250.250.242
    Подключение к ya.ru (ya.ru)|2a02:6b8::2:242|:80... соединение установлено.
    ...
        
    
    $ ls -l
    итого 4
    -rw-rw-r-- 1 avis avis 26 дек  5 15:45 file.txt
    $ cat file.txt 
    ya.ru
    google.com
    asus.com
    $ wget -i file.txt 
    --2019-12-05 15:49:45--  http://ya.ru/
    Распознаётся ya.ru (ya.ru)... 2a02:6b8::2:242, 87.250.250.242
    Подключение к ya.ru (ya.ru)|2a02:6b8::2:242|:80... соединение установлено.
    HTTP-запрос отправлен. Ожидание ответа... 302 Found
    ...
    $ ls -l
    итого 168
    -rw-rw-r-- 1 avis avis     26 дек  5 15:45 file.txt
    -rw-rw-r-- 1 avis avis  20497 дек  5 15:49 index.html
    -rw-rw-r-- 1 avis avis  14988 дек  5 15:49 index.html.1
    -rw-rw-r-- 1 avis avis 126129 дек  4 13:39 index.html.2
        

  • -k, --convert-links - конвертировать в относительные ссылки. Работает вместе с -r
    
    $ wget -r -k https://avis20.github.io/test-html/
    --2019-12-05 16:40:09--  https://avis20.github.io/test-html/
    Распознаётся avis20.github.io (avis20.github.io)... 185.199.111.153, 185.199.109.153, 185.199.108.153, ...
    ...
    $ ls -l avis20.github.io/test-html/
    итого 12
    -rw-rw-r-- 1 avis avis 6890 дек  5 16:36 f1.png
    -rw-rw-r-- 1 avis avis  174 дек  5 16:40 index.html
    $ cat avis20.github.io/test-html/index.html 
    ...
        img src="f1.png" alt="test"
    ...
        

  • -o logfile, --output-file=logfile - вывод сообщений в logfile
    
        

  • -P prefix, --directory-prefix=prefix - Скачивание файла в указанный каталог. По умолчанию текущий каталог .
    
    $ wget -P /tmp/test_wget/ https://ya.ru/
    --2019-12-05 15:55:45--  https://ya.ru/
    Распознаётся ya.ru (ya.ru)... 2a02:6b8::2:242, 87.250.250.242
    Подключение к ya.ru (ya.ru)|2a02:6b8::2:242|:443... соединение установлено.
    HTTP-запрос отправлен. Ожидание ответа... 200 Ok
    Длина: 20433 (20K) [text/html]
    Сохранение в каталог: ««/tmp/test_wget/index.html»».
    ...
    $ ls -l /tmp/test_wget/
    итого 24
    -rw-rw-r-- 1 avis avis    26 дек  5 15:45 file.txt
    -rw-rw-r-- 1 avis avis 20433 дек  5 15:55 index.html
        

  • -q, --quiet - Выключить сообщения Wget.
    
    $ wget -q http://releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.iso
        

  • -V, --version - версия программы
    
    wget -V
    ...
    GNU Wget 1.17.1 для linux-gnu.
        

  • Использование имя пользователя и пароля на FTP/HTTP
    
    $ wget ftp://login:password@ftp.example.org/some_file.iso
    $ wget --user=login --password=password ftp://ftp.example.org/some_file.iso
        

  • Скачать страницу с глубиной следования 10, записывая протокол в файл log
    
    $ wget -r -l 10 http://ya.ru/ -o log
    $ ls -l
    итого 12
    -rw-rw-r-- 1 avis avis   26 дек  5 15:45 file.txt
    -rw-rw-r-- 1 avis avis 1543 дек  5 16:20 log
    drwxrwxr-x 2 avis avis 4096 дек  5 16:20 ya.ru
    $ cat log 
    --2019-12-05 16:20:03--  http://ya.ru/
    Распознаётся ya.ru (ya.ru)... 2a02:6b8::2:242, 87.250.250.242
    Подключение к ya.ru (ya.ru)|2a02:6b8::2:242|:80... соединение установлено.
    ...
    $ ls -l ya.ru/
    итого 24
    -rw-rw-r-- 1 avis avis 20433 дек  5 16:20 index.html
    -rw-rw-r-- 1 avis avis  2561 дек  3 16:03 robots.txt
        

  • ? Скопировать весь сайт целиком
    
    $ wget -r -l 0 -k http://example.org/
        

  • Скачивание галереи картинок с превьюшками.
    
    $ wget -r -k -p -l1 -I /images/ -I /thumb/ --execute robots=off www.example.com/gallery.html
        

  • Скачать url в 01:00 в текущую директорию $ ls -l итого 4 -rw-rw-r-- 1 avis avis 26 дек 5 15:45 file.txt $ echo 'wget http://ya.ru/' | at 16:49 warning: commands will be executed using /bin/sh job 5 at Thu Dec 5 16:49:00 2019 $ ls -l итого 24 -rw-rw-r-- 1 avis avis 26 дек 5 15:45 file.txt -rw-rw-r-- 1 avis avis 20436 дек 5 16:49 index.html
    
        

  • Сделать закачку с уменьшенной скоростью. В данном случае 20 КB/s
    
    $ wget --limit-rate=20k http://releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.iso
    ...
    -desktop-amd64.iso        0%[                               ] 209,12K  20,0KB/s    eta 28h 14m
        

  • ? Проверить ссылки в файле
    
    $ wget -nv --spider --force-html -i bookmarks.html
        

  • ? Оперативно обновлять локальную копию сайта (удобно использовать с cron)
    
    $ wget --mirror http://www.example.com/
        

  • Запустить скачивание списка ссылок в 5 потоков
    
    $ cat links.txt | xargs -P 5 wget {}
        

  • Проверить ссылки из файла $ cat file.txt http://yandex.ru http://google.ru http://yandex.ru/qweqweqweqwe $ wget -nv --spider -i file.txt 2019-12-05 16:56:38 URL: https://yandex.ru/ 200 Ok 2019-12-05 16:56:38 URL: http://www.google.ru/ 200 OK https://yandex.ru/qweqweqweqwe: Удалённый файл не существует — недопустимая ссылка!
    
        

  • - -
    
        

  • - -
    
        

X

Y

Z

zpool - ?

Ключи

Примеры

Пример

        content
    

OLD

                <td>-m</td>
                <td><p>точка монторования<p>Если ее нет, то нужно выбрать legacy или none</p>
                    <ol>
                        <li>none - без монтирования</li>
                        <li>legacy - как я понимаю это наследование уровневых путей. например /export/stuff, то pool/home/user путем наследования получает значение /export/stuff/user
                            <p>Старые точки монтирования. Управление файловыми системами ZFS можно осуществлять при помощи старых средств. Для этого свойство mountpoint должно иметь значение legacy. Управление старыми файловыми системами должно осуществляться с помощью команд mount и umount и файла /etc/vfstab. ZFS не выполняет автоматическое монтирование старых файловых систем при начальной загрузке, и для наборов данных этого типа команды ZFS mount и umount не используются. В следующих примерах демонстрируется настройка и администрирование набора данных ZFS в режиме "legacy":</p></li>
                    </ol>
                </td>
            </tr>
        </table>

        <ol>
            <li>create - создает пул из 1 или нескольких жеских дисков (страйп режим)</li>
            <pre><code class="shell"> # создаем пул с разделенным методом т.е. часть на 1 диск часть на другой root@freebsd11:~ # zpool create test01 /dev/ada1 /dev/ada2  root@freebsd11:~ # zpool list NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT test01  1.97G    93K  1.97G         -     0%     0%  1.00x  ONLINE  -

создание зеркального пула. Все данные зеркалируются на оба диска

root@freebsd11:/ # zpool create test02 mirror /dev/ada1 /dev/ada2 root@freebsd11:/ # zpool status pool: test02 state: ONLINE scan: none requested config:

NAME        STATE     READ WRITE CKSUM
test02      ONLINE       0     0     0
  mirror-0  ONLINE       0     0     0
    ada1    ONLINE       0     0     0
    ada2    ONLINE       0     0     0

errors: No known data errors </code></pre>

            <li>add - добавляет новый диск в пул в страйп режим</li>
            <pre><code class="shell"> root@freebsd11:~ # zpool list NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT test01  1008M   522K  1007M         -     0%     0%  1.00x  ONLINE  - root@freebsd11:~ # zpool add test01 /dev/ada2 root@freebsd11:~ # zpool list NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT test01  1.97G   104K  1.97G         -     0%     0%  1.00x  ONLINE  -
            </code></pre>

            <li>detach - отсоединяет диск от пула. Работает в mirror режиме</li>
            <pre><code class="shell"> root@freebsd11:/ # zpool detach test02 /dev/ada1  root@freebsd11:/ # zpool status   pool: test02  state: ONLINE   scan: none requested config:

NAME        STATE     READ WRITE CKSUM
test02      ONLINE       0     0     0
  ada2      ONLINE       0     0     0

errors: No known data errors </code></pre>

            <li>attach - присоединяет диск от пула. Работает в mirror режиме</li>
            <pre><code class="shell"> root@freebsd11:/ # zpool attach test02 /dev/ada2 /dev/ada1  root@freebsd11:/ # zpool status   pool: test02  state: ONLINE   scan: resilvered 78.5K in 0h0m with 0 errors on Wed Jan  3 02:21:44 2018 config:

NAME        STATE     READ WRITE CKSUM
test02      ONLINE       0     0     0
  mirror-0  ONLINE       0     0     0
    ada2    ONLINE       0     0     0
    ada1    ONLINE       0     0     0

errors: No known data errors </code></pre> <li>replace - заменяет диски</li> <pre> root@freebsd11:/test01 # zpool replace test01 /dev/ada1 /dev/ada3 root@freebsd11:/test01 # zpool status pool: test01 state: ONLINE scan: resilvered 58.5K in 0h0m with 0 errors on Wed Jan 3 02:11:23 2018 config:

NAME        STATE     READ WRITE CKSUM
test01      ONLINE       0     0     0
  ada3      ONLINE       0     0     0
  ada2      ONLINE       0     0     0

errors: No known data errors </code></pre>

            <li>status - выводит подробный статус пула</li>
            <pre><code class="shell"> root@freebsd11:~ # zpool status   pool: test01  state: ONLINE   scan: none requested config:

NAME        STATE     READ WRITE CKSUM
test01      ONLINE       0     0     0
  ada1      ONLINE       0     0     0
            </code></pre>

            <li>list - выводит список пулов</li>
            <pre><code class="shell"> root@freebsd11:~ # zpool list NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT test01  1008M    86K  1008M         -     0%     0%  1.00x  ONLINE  - test02  1008M   500K  1008M         -     0%     0%  1.00x  ONLINE  -
            </code></pre>

            <li>destroy - удалить пул. При удалении пула, удаляется и фс !</li>
            <pre><code class="shell"> root@freebsd11:~ # zpool destroy test01 root@freebsd11:~ # zpool list NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT test02  1008M   500K  1008M         -     0%     0%  1.00x  ONLINE  -
            </code></pre>
        </ol>

        <li>set - установка параметров пулу</li>
            <pre><code class="shell"> todo
            </code></pre>

            <li>destroy - удалить пул. При удалении пула, удаляется и фс !</li>
            <pre><code class="shell"> root@freebsd11:~ # zpool destroy test01 root@freebsd11:~ # zpool list NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT test02  1008M   500K  1008M         -     0%     0%  1.00x  ONLINE  -
            </code></pre>
        </ol>

        <h3 id="features">Фичи</h3>
        <table>
            <tr>
                <th>Опция</th>
                <th>Описание</th>
            </tr>
            <tr>
                <td>feature@lz4_compress=enabled</td>
                <td>Компрессия сжатия данных</td>
            </tr>
            <tr>
                <td>ashift=12</td>
                <td>?</td>
            </tr>
        </table>

        <h3 id="settings_fs">Настройки фс</h3>
        <table>
            <tr>
                <th>Опция</th>
                <th>Описание</th>
            </tr>
            <tr>
                <td>compression=lz4</td>
                <td>Установка способа сжатия</td>
            </tr>
        </table>


        <hr>

<!-- ------------------------------------------------------------- -->


        <h2 id="zfs">zfs</h2>
        <p>zfs [действие] [диск] [ключи]</p>
        <p>Утилита использование zfs системы</p>

        <h3>ключи:</h3>
        <table><tr><th>Ключ</th><th>Описание</th></tr>
            <tr>
                <td>-p</td>
                <td>создать "родителей"</td>
            </tr>
            <tr>
                <td>-r</td>
                <td>удалить рекурсивно</td>
            </tr>
        </table>

        <ol>
            <li>list - список файловых систем</li>
            <pre><code class="shell"> root@freebsd11:~ # zfs list NAME     USED  AVAIL  REFER  MOUNTPOINT test01    74K   880M    23K  /test01 test02   293K   880M    23K  /test02
            </code></pre>

            <li>create - создание новой файловой системы</li>
            <pre><code class="shell"> # Создание вложенных фс root@freebsd11:~ # zfs create -p test01/data/www root@freebsd11:~ # ls -l /test01/data/www/ total 0

создание без точек монтирования

root@freebsd11:~ # zfs create -o mountpoint=none test01/home root@freebsd11:~ # zfs list NAME USED AVAIL REFER MOUNTPOINT test01 168K 880M 23K /test01 test01/data 46K 880M 23K /test01/data test01/data/www 23K 880M 23K /test01/data/www test01/home 23K 880M 23K none test02 293K 880M 23K /test02 </code></pre>

            <li>destroy - удаление фс</li>
            <pre><code class="shell"> root@freebsd11:~ # zfs destroy test01/home root@freebsd11:~ # zfs list NAME              USED  AVAIL  REFER  MOUNTPOINT test01            132K   880M    23K  /test01 test01/data        46K   880M    23K  /test01/data test01/data/www    23K   880M    23K  /test01/data/www test02            293K   880M    23K  /test02

Удаление рекурсивно, в случае если фс содержит вложенные фс

root@freebsd11:~ # zfs destroy -r test01/data root@freebsd11:~ # zfs list NAME USED AVAIL REFER MOUNTPOINT test01 87.5K 880M 23K /test01 test02 293K 880M 23K /test02 </code></pre>

        </ol>

        <hr>

<!-- ------------------------------------------------------------- -->

        <hr>

<!-- ------------------------------------------------------------- -->

<!-- ------------------------------------------------------------- -->

        <h2 id="gpart">gpart</h2>
        <p>gpart [действие] [ключи] [диск]</p>

        <p>Программа для разметки дисков</p>
        <p>gpart - “guess PC-type hard disk partitions” - “угадай тип раздела жесткого диска”</p>

        <pre><code class="shell"> todo
        </code></pre>

        <hr>

<!-- ------------------------------------------------------------- -->

        <h2 id="mkfile">mkfile</h2>
        <p>mkfile [опции] [размер][ед. измерения] [путь до файла]</p>
        <p>Создание файла указанного размера</p>

        <h3>опции:</h3>
        TODO

        <h3>ед. измерения:</h3>
        <ul>
            <li>e</li>
            <li>p</li>
            <li>t</li>
            <li>g</li>
            <li>m - мегабайты</li>
            <li>k</li>
            <li>b</li>
        </ul>

        <h3>Пример:</h3>
        <p>Создать файл /test/foo, размером 100 мб.</p>

        <pre><code class="shell"> =======
        <h3>Ключи:</h3>
        <table><tr><th>Ключ</th><th>Описание</th></tr>
            <tr>
                <td>-t</td>
                <td>тип:
                    <ul>
                        <li>gpt</li>
                        <li>freebsd-boot</li>
                        <li>freebsd-swap</li>
                        <li>freebsd-zfs</li>
                    </ul>
                </td>
            </tr>
            <tr><td>-l</td><td>установить лейбл</td></tr>
            <tr><td>-s</td><td>размер в килобайтах</td></tr>
            <tr><td>-i</td><td>порядковый номер</td></tr>
            <tr><td>-F</td><td> </td></tr>
            <tr><td>-b</td><td>параметр смещения</td></tr>
            <tr><td>-p</td><td> </td></tr>
            <tr><td>-i</td><td>индекс удаляемого раздела</td></tr>
        </table>

        <h3>Действия</h3>

        <ol>
            <li>create - создает таблицу разделов</li>
            <pre><code class="shell"> gpart create -s gpt ada0
            </code></pre>

            <li>add - добавляет новый раздел</li>
            <pre><code class="shell"> # Создаем загрузочный раздел gpart add -b 40 -t freebsd-boot -l gpboot -s 64k ada0

если разметка ufs то создаем:

свап

gpart add -t freebsd-swap -l gpswap -s 128M ada0

подсистемы

основной раздел

gpart add -t freebsd-ufs -l gproot -s 256M ada0

для логи

gpart add -t freebsd-ufs -l gpvar -s 256M ada0

для временных файлов

gpart add -t freebsd-ufs -l gptmp -s 256M ada0

для общих файлов

gpart add -t freebsd-ufs -l gpusr ada0

если zfs, то достаточно

gpart add -t freebsd-zfs -l disk ada0

            </code></pre>

            <li>show - показать таблицу разделов</li>
            <p><img src="../src/img/gpart_show.png" alt=""></p>

            <li>bootcode - загрузочный код ?</li>
            <pre><code class="shell"> gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
            </code></pre>
            <ol>
                <li>-p partcode</li>
                <li>-p bootcode</li>
            </ol>
            <li>delete - удаляет раздел</li>
            <li>destroy - очищает файловую систему</li>
        </ol>

            <hr>

<!-- ------------------------------------------------------------- -->

            <h2 id="mount">mount</h2>
            <p>mount [ключи] [от куда] [куда]</p>
            <p>Монтирование файловых систем</p>

            
            <h3>Ключи:</h3>
            <table><tr><th>Ключ</th><th>Описание</th></tr>
                <tr>
                    <td>-t, --types</td>
                    <td>тип файловой системы:
                        <ul>
                            <li>nullfs - можно использовать как симлинки на диры. Работает только в FreeBSD</li>
                            <li>zfs</li>
                        </ul>
                    </td>
                </tr>
            </table>

            <h3>Пример:</h3>
            <p>TODO</p>

            <pre><code class="shell">

            </code></pre>

            <hr>

<!-- ------------------------------------------------------------- -->

            <h2 id="mkfile">mkfile</h2>
            <p>mkfile [ключи] [размер][ед. измерения] [путь до файла]</p>
            <p>Создание файла указанного размера</p>

            <h3>ключи:</h3>
            TODO

            <h3>ед. измерения:</h3>
            <ul>
                <li>e</li>
                <li>p</li>
                <li>t</li>
                <li>g</li>
                <li>m - мегабайты</li>
                <li>k</li>
                <li>b</li>
            </ul>

            <h3>Пример:</h3>
            <p>Создать файл /test/foo, размером 100 мб.</p>

            <pre><code class="shell"> >>>>>>> 22791dbebf8ccaf15306325f6984275abc558e95 mkfile 100m /test/foo
        </code></pre>

        <h3>Установка</h3>

        <h4>FreeBSD</h4>

        <pre><code class="shell"> root@freebsd11:~ # pkg search mkfile mkfile-1.1.3_1                 Create files suitable for use as swap files root@freebsd11:~ # pkg install mkfile-1.1.3_1
        </code></pre>

        <hr>
        
        <h2 id="shutdown">shutdown</h2>
        <p>shutdown [опции] [время] [сообщение]</p>
        <p>Выключение в заданное время</p>

        <h3>опции:</h3>
        <table>
            <tr>
                <th>Опция</th>
                <th>Описание</th>
            </tr>
                <tr>
                    <td>--help</td>
                    <td>вывести справку по программе</td>
                </tr>
                <tr>
                    <td>-H, -halt</td>
                    <td>отключить питание, не завершая процессы и не перемонтируя файловые системы</td>
                </tr>
                <tr>
                    <td>-P, -poweroff</td>
                    <td>нормальное выключение</td>
                </tr>
                <tr>
                    <td>-r, -reboot</td>
                    <td>перезагрузка</td>
                </tr>
                <tr>
                    <td>-k</td>
                    <td>не выполнять реальных действий, а только вывести сообщение</td>
                </tr>
                <tr>
                    <td>-no-wall</td>
                    <td>выключить компьютер, но не выводить сообщение</td>
                </tr>
                <tr>
                    <td>-c</td>
                    <td>отменить запланированное выключение linux из командной строки</td>
                </tr>
        </table>

        <table>
            <tr>
                <th>Время</th>
                <th>Описание</th>
            </tr>
            <tr>
                <td>now</td>
                <td>сейчас</td>
            </tr>
            <tr>
                <td>+5</td>
                <td>через 5 минут</td>
            </tr>
            <tr>
                <td>21:00</td>
                <td>в 21:00</td>
            </tr>
        </table>

        <h3>Пример:</h3>
        <p>Перезагрузить систему сейчас</p>

        <pre><code class="shell"> shutdown -r now
        </code></pre>

        <hr>

            <hr>

<!-- ------------------------------------------------------------- -->

            <h2 id="dd">dd</h2>
            <p>dd [ключи] </p>
            <p>Копирование данных побайтово</p>

            <h3>Ключи:</h3>
            <table>
                <tr>
                    <th>Ключ</th>
                    <th>Описание</th>
                </tr>
                <tr>
                    <td>--help</td>
                    <td>показать справку и выйти</td>
                </tr>
                <tr>
                    <td>--version</td>
                    <td>показать информацию о версии и выйти</td>
                </tr>
            </table>

            <h3>Пример:</h3>
            <p>Скопировать из /dev/urandom в of=/dev/null 500мб</p>

            <pre><code class="shell"> dd if=/dev/urandom of=/dev/null bs=100M count=5
            </code></pre>

man

Использование: dd [ОПЕРАНД]… или: dd ПАРАМЕТР Копирует файл, преобразует и форматирует в зависимости от операндов.

bs=ЧИСЛО читать и писать до ЧИСЛА байт за раз cbs=ЧИСЛО преобразовывать заданное ЧИСЛО байт за раз conv=СПИСОК преобразовывать файл в соответствии со СПИСКОМ символов, элементы перечисляются через запятую count=ЧИСЛО копировать только заданное ЧИСЛО входных блоков ibs=ЧИСЛО считывать до ЧИСЛА байт за раз (по умолчанию 512) if=ФАЙЛ читать ФАЙЛ, а не стандартный ввод iflag=ФЛАГИ читать в соответствии со списком символов, элементы перечисляются через запятую obs=ЧИСЛО записывать заданное ЧИСЛО байт за раз (по умолчанию 512) of=ФАЙЛ записывать в ФАЙЛ, а не на стандартный вывод oflag=ФЛАГИ записывать в соответствии со списком символов, элементы перечисляются через запятую seek=ЧИСЛО пропустить перед началом вывода заданное ЧИСЛО блоков размером obs skip=ЧИСЛО пропустить перед началом ввода заданное ЧИСЛО блоков размером ibs status=ИНФО заданную ИНФОрмацию не выводить в stderr; «noxfer» — не выводить статистику передачи «none» — не выводить ничего «progress» — показывать индикатор передачи

После ЧИСЛА блоков и байт может стоять один из умножающий суффиксов: c =1, w =2, b =512, kB =1000, K =1024, MB =10001000, M =10241024, xM =M GB =100010001000, G =102410241024 и так далее для T, P, E, Z, Y.

Каждый символ СПИСКА может быть:

ascii из EBCDIC в ASCII ebcdic из ASCII в EBCDIC ibm из ASCII в альтернативную EBCDIC block дополнять записи, заканчивающиеся переводом строки, пробелами до размера cbs unblock заменять завершающие пробелы в записях размера cbs на перевод строки lcase изменять регистр с верхнего на нижний ucase изменять регистр с нижнего на верхний sparse попытаться переместиться, а не записывать в вывод NUL входных блоков swab переставить местами каждую пару входных байт sync дополнять каждый входной блок NUL-ми до размера ibs; при использовании с block или unblock, дополнять пробелам, а не NUL excl завершать с ошибкой, если выходной файл уже существует nocreat не создавать выходной файл notrunc не обрезать выходной файл noerror продолжать после ошибок чтения fdatasync физически записать выходной файл перед завершением fsync аналогично, но записать также метаданные

Символ ФЛАГ может быть таким:

append режим добавления (имеет смысл для вывода; рекомендуется conv=notrunc) direct использовать прямой ввод/вывод для данных directory выдавать ошибку, если это не каталог dsync использовать синхронизированный ввод/вывод для данных sync то же, но так же и для метаданных fullblock накапливать полные блоки входных данных (только iflag) nonblock использовать неблокирующий ввод/вывод noatime не обновлять время последнего доступа nocache запрос на сброс кэша. Смотрите также oflag=sync noctty не назначать управляющий терминал из файла nofollow не следовать по символьным ссылкам count_bytes считать «count=N» как счётчик байт (только с iflag) skip_bytes считать «skip=N» как счётчик байт (только с iflag) seek_bytes считать «seek=N» как счётчик байт (только с oflag)

Если послать работающему процессу «dd» сигнал USR1, он напечатает на стандартный поток ошибок статистику ввода/вывода и продолжит копирование.

Ключи:

  --help     показать эту справку и выйти
  --version  показать информацию о версии и выйти

Оперативная справка GNU coreutils: http://www.gnu.org/software/coreutils/ Об ошибках в переводе сообщений «dd» сообщайте по адресу gnu@mx.ru Полная документация: http://www.gnu.org/software/coreutils/dd или доступная локально: info ‘(coreutils) dd invocation’

    </section>
</div>

TODO

mkfile [ключи] [размер][ед. измерения] [путь до файла]

Создание файла указанного размера

ключи


ед. измерения:

  e
  p
  t
  g
  m - мегабайты
  k
  b

Пример:


# Создать файл /test/foo, размером 100 мб.
mkfile 100m /test/foo

Установка:

  • FreeBSD