- 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
- OLD
- создание зеркального пула. Все данные зеркалируются на оба диска
- создание без точек монтирования
- Удаление рекурсивно, в случае если фс содержит вложенные фс
- если разметка ufs то создаем:
- свап
- подсистемы
- основной раздел
- для логи
- для временных файлов
- для общих файлов
- если zfs, то достаточно
- mkfile [ключи] [размер][ед. измерения] [путь до файла]
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 - скачивание файлов
Ключи
Примеры
Пример
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 - Показывает сведения о файловой системе
Ключи
Формат
Ключ | Описание |
---|---|
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 - создание группы
Ключи
Примеры
Пример
content
grep - поиск строки в файле
Ключи
Примеры
Убрать из файла 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 - вывод списка запущенных процессов
Ключи
Управление
Примеры
Пример
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 - ?
Ключи
Примеры
Пример
content
L
ls - список файлов и атрибутов
Ключи
Примеры
Пример
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 - Создаение директории
Ключи
Примеры
Пример
content
N
netstat - вывод состояний сетевых соединений
PS Считается устаревшей, лучше использовать ss
Ключи
Формат полей
Примеры
Пример
$ 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 команды файл
Ключи
Примеры
Вывести с 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 (хвост) - вывод содержимого файла с конца
Ключи
Примеры
Пример
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