linux - artyl/artyl GitHub Wiki
Windows здесь
Искусство командной строки (the-art-of-command-line) - Читать до полного просветления
awesome-cli-apps
Консольные утилиты Linux, которые смогут облегчить вам жизнь
Полезные консольные Linux утилиты (огромный список)
- 20.04 focal fossa
- 18.04 bionic buster
- 16.04 xenial stretch
- 14.04 trusty jessie
sudo apt-get install curl git mc screen bash-completion tmux wget htop mtr ncdu pv lz4 xz zstd sysstat iotop lsof nmon strace perf
sudo apt-get install curl git mc screen bash-completion tmux wget htop mtr ncdu pv lz4 xz zstd sysstat iotop lsof nmon strace perf gcc nano openssh-server python vim zsh fish sshfs ufw auditd lnav p7zip smplayer
cifs-utils
sudo yum install epel-release
sudo apt-get install gnome-system-monitor doublecmd remmina xfe
# из своих репозиториев
vscode chrome notepadqq telegram atom wine virtualbox docker-ce
radmin
sudo apt-get install gnome-system-monitor
sudo apt-get install virtualbox-guest-additions-iso and ..-x11 and ..-utils
sudo pm-hibernate
sudo /etc/init.d/lightdm stop
sudo usermod -aG vboxsf `whoami` или sudo usermod -aG vboxsf $(whoami) - чтобы работал exchange в virtualbox
uname -a и lsb_release -a - информация о версии ядра дистрибутива
cat /etc/*release либо cat /proc/version версия ОС
# adduser - интерактивный useradd нет
Эффективная работа в Midnight Commander
https://habr.com/ru/post/524370/comments/ keybinding как в far ищем в коментах ~/.config/mc/mc.keymap
https://github.com/elfmz/far2l far для linux, конечно альфа, не все как надо, но для тех кто так и не привык к mc стоит посмотреть. Собирается из сорцов, но это не требует никаких доп знаний, для тех кто в первый раз в замешательстве не понял где искать собранное - см far2l/_build/install/
https://github.com/corporateshark/far2l-macros/issues/6 Про key макросы для far правильно здесь, а не на основной странице
Другие альтернативы для mc с картинками ranger cfiles vifm nnn lfm lf
###Решенные вопросы ####Cisco VPN - есть vpnc, но не заработал, получилось только через консоль
sudo pcf2vpnc vpnname.pcf /etc/vpnc/vpnname.conf - конвертировать pcf для vpnc (для секьюрности нужно убрать пароль из конфига, будет спрашивать каждый раз)
sudo vpnc vpnname --enable-1des - запустить vpn
sudo vpnc-disconnect - остановить vpn
OpenVpn - не понятно как добавить ovpn файл через GUI
решение с консоли sudo openvpn --config vpnname.ovpn
https://www.rutoken.ru/support/download/pkcs если не качается побраузить файлы в той же и соседней папке
apt install libccid pcscd libpcsclite1 gnutls-bin openconnect sudo dpkg -i librtpkcs11ecp_2.6.1.0-1_amd64.deb sudo mkdir -p /etc/pkcs11/modules sudo bash -c 'echo "module: /usr/lib/librtpkcs11ecp.so" >/etc/pkcs11/modules/rutoken.module' sudo systemctl enable pcscd sudo systemctl start pcscd p11tool --list-tokens - убеждаемся что видим токен. p11tool --login --list-all-cert 'pkcs11:model=Rutoken%20ECP' - попросит PIN выдаст URL в нем смотреть ID вида %61%36... sudo openconnect --certificate 'pkcs11:model=Rutoken%20ECP;id=id_из_выдачи_предыдущей_комманды' your.vpn.server.com
Плейер который может показывать 2е субтитров одновременно smplayer
Перенаправление всех потоков ввода вывода в один >файл 2>&1
gnome-desktop-item-edit ~/Desktop/name.desktop пакет gnome-panel
echo "tmpfs /tmp tmpfs rw,nosuid,nodev" | sudo tee -a /etc/fstab
sudo reboot
/etc/default/grub:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
sudo update-grub
ls /boot/vm*
dnf list installed | grep kernel
grubby --default-kernel
grubby --set-default /boot/vmlinuz-4.18.0-305.12.1.el8_4.x86_64
''' settings set org.gnome.mutter.wayland xwayland-grab-access-rules "['xfreerdp']" Все настройки xcfe xfce4-settings-manager '''
_ssh _ыыр
su username
mkdir ~/.ssh
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
vi ~/.ssh/authorized_keys
-----
sed -i -e 's/^#\?PermitRootLogin yes/PermitRootLogin no/;s/^#\?ChallengeResponseAuthentication yes/ChallengeResponseAuthentication no/;s/^#\?UsePAM yes/UsePAM no/;s/^#\?PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl reload sshd
---
sudo sshd -T эффективные настройки с которыми запущен сервер
есть смысл закоментировать строчку чтобы исключить неожиданности в конфигурации: Include /etc/ssh/sshd_config.d/*.conf
---
vi ~/.ssh/config --- можно настроить нужные хосты, чтобы не набирать их каждый раз + !!! git и прочие тулзы также его используют
netstat -anltp | grep LISTEN --- список открытых портов (tips ss или netstat -tulpan (тюльпан)
lsof -i -n -P --- список открытых портов
lsof -U +E --- список открытых сокетов (open sockets)
cut -f 3 -d ' ' .ssh/authorized_keys | sort | sed '/^$/d' --- список ключей авторизации
ssh -L 127.0.0.1:4444:127.0.0.1:3333 user@remotehost --- ssh + локальный 4444 порт пробросить на remote в порт 3333
ssh -R 127.0.0.1:3333:127.0.0.1:2222 user@remotehost --- ssh + remote 3333 порт пробросить на local в порт 2222
ssh -D 127.0.0.1:3333 user@remotehost --- ssh + SOCKS5 proxy через него на 127.0.0.1:3333
ssh -J host1,host2 user@remotehost --- зайти на remotehost через цепочку прокси
ssh-agent
ssh-agent - хранилище ключей, pagent - это аналог ssh-agent в windows
# Запустить его до до X server - положить в .xsessionrc (cmod +x):
#!/bin/bash
eval `ssh-agent -t 3600`
ssh-add - загрузить в агент ключи (-l список загруженных ключей -D выгрузить ключи)
если набрать в ssh соединении ~C то можно включить/отключить проброшенные порты (~? справка по всем командам)
# Github openkeys
curl https://github.com/<username>.keys
# remove crlf from file
sed -i.bak 's/\r$//g' <filename>
port redirection after a ssh connection(stackexchange)
Start port forwarding over an existing SSH
PV (Physical Volume) - VG (Volume Group) - LV (Logical Volume) - pvs, vgs, lvs, pvscan, lvscan, lvscan ...
lvs - список volume groups и volume
pvs vgs lvscan vgscan
pvmove vgreduce - уменьшить
Копирование файлов по сети через nc Отсюда
nc -l 60000 > qux.txt куда копируем (-l слушать порт) nc bar.example.com 60000 < qux.txt откуда копируем tar zc *.txt | nc -l 60000 откуда, если нужно несколько файлов nc bar.example.com 60000 | tar zx куда, если несколько файлов nc -l 60000 < qux.txt откуда копируем, в обратную сторону (порт открыт на источнике) nc bar.example.com 60000 > qux.txt куда копируем
lspci lsusb lsblk lshw rfkill
ldd - поиск зависимостей запускаемого файла
readelf - информация об объектах внутри ELF файла
# Virtual or physical
sudo dmidecode -s system-manufacturer
Netstat --- в новых дистрибутивах см nstat и ss -tulpan
ip -c addr
ip -c ro
arp -a -- > ip -c neigh show
ifconfig eth0 up -> ip link set eth0 up
ifconfig eth0 192.168.0.77 netmask 255.255.255.0 broadcast 192.168.0.255 -> ip addr add 192.168.0.77/24 broadcast 192.168.0.255 dev eth0
nfs settings /etc/exports и /var/lib/nfs/etab
ip ifconfig nmtui netplan
echo 'nameserver 1.1.1.1' | sudo tee /etc/resolv.conf
netplan get network
netplan apply
/etc/netplan/00-installer-config.yaml
nmtui - Настройки сети
sudo nmcli -f NAME,DEVICE,FILENAME connection show
# Текущие настройки DNS
nmcli device show | grep IP4.DNS
systemd-resolve --status | grep "DNS Server"
resolvectl status | grep "DNS Server"
/etc/resolv.conf
/etc/network/interfaces
# свой IP
hostname -i ifconfig ip addr nmcli
# Чужой IP
getent hosts NAME ; host NAME ; ping NAME ; dig +short NAME ; nslookup NAME
apt шпаргалка
Yum, шпаргалка
pacman шпаргалка
yum rpm dnf apt pacman
apt list --installed список установленных
apt-cache rdepends packagename поиск зависимостей пакета
yum list installed список установленных
dnf list installed список установленных
dnf search pkg-name-here поиск пакета в репозитории
sudo dnf list available | grep x86_64 | grep postgres | grep 16 минорная версия пакета (но без поиска в описании)
sudo dnf download --downloaddir=download/ --resolve postgresql16-server.x86_64 загрузить пакет с зависимостями
yum deplist packetname поиск зависимостей пакета
pacman -Q список установленных
https://www.opennet.ru/docs/RUS/rpm_guide/
rpm -i установка
rpm -e удаление
rpm -qa Список установленных пакетов
rpm -qf $(which sar) query file Какому пакету принадлежит файл
rpm -qi пакет query info Информация о пакете
rpm -ql пакет query list список файлов пакета
rpm -qc пакет query confir список конфиг файлов пакета
rpm -qd пакет query doc список doc файлов пакета
rpm -qs пакет query status статус файлов пакета
https://www.opennet.ru/docs/RUS/APT-HOWTO/
dpkg -i install установка
dpkg -e erase удаление
dpkg -l list Список установленных пакетов
dpkg -S $(which sar) Search Какому пакету принадлежит файл
dpkg -s пакет search Информация о пакете
dpkg -L пакет List список файлов пакета
add repository universe (unsupported)
sudo add-apt-repository universe
Чтобы посмотреть все удаленные файлы, оставшиеся в системе, можно запустить команду
lsof -nP | grep '(deleted)'
Список установленных программ
apt list --installed
Посмотреть список зависимостей
apt-cache depends squid
Просмотр версии приложения в репозитории
apt list python3
Аналог команды start windows
Linux: xdg-open, macos: open
Apt-cacher-ng прокси для загрузки deb apt пакетов
Offline установка без интернета Offline download deb
https://packages.ubuntu.com/search Качаем пакеты и ставим через dpkg -i
https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-from-a-package
apt-get download PACKAGE && apt-cache depends -i PACKAGE | awk '/Depends:/ {print $2}' | xargs apt-get download dpkg -i *.deb # Offline docker image install docker save ubuntu > ubuntu.tar -- сохраняем image (сначала docker pull) docker load < ubuntu.tar -- загружаем image
elinks links lynx w3m links2 www-browser, https://www.brow.sh/
htop ncdu mc ranger gping
# https://habr.com/ru/post/553000/ --- большой список, пополняется
bat exa gdu procs httpie gotty lazydocker lazygit mosh bottom bandwith
regex-rename - переименование файлов с использованием регулярок
type/file/which - инфо о файле
# Change windows title from bash
printf '\033]2;Hello\a'
ps -fax
wc -l
uniq -q
sort -nr
awk '{print $2}'
jobs - list, fg -> foreground , bg -> background
ctrl+Z - отправить в фон и усыпить
& запустить в фоне
nohup - запуск в фоне без tty (если есть вывод он направляется в $HOME/nohup.out)
nice - запуск с измененным приоритетом
bg запустить фоновую задачу
fg перевести в foreground и запустить
nohup ... &
disown -a
https://github.com/pixelb/ps_mem
htop atop powertop iotop iftop sysstat bmon iptraf saidar discus dstat multitail lshw nmon saidar ncdu slurm ccze hwinfo auditd lnav
dstat pcp-system-tools
top 10 process
ps -A --sort -rss -o comm,pmem | head -n 11
ps_mem
ps aux --sort=-pcpu | head -n 20
nmon -f -s 10 -c 9000
nmon -fT -s 120 -c 900
top -p `pgrep -d "," postgres`
top -b -n 1
sar monitoring (sysstat)
sar -h - CPU
sar -b -h - IO bandwith
sar -r -h - mem RAM
iostat -xk
S_COLORS=always; sar | grep --color=always 40 | less -R
pcp # Performance Co-Pilot
holding shift key for grub menu when booting virtualbox vm
select Advanced -> recovery mode, then select root and press enter
passwd or add user:
adduser <username>
usermod -aG sudo <username>
usermod -aG wheel <username>
# random password
pwmake pwgen
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
# localedef -i en_US -f UTF-8 en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_ALL=ru_RU.UTF-8
Window \ Translation \ Remote character set - Utf8
Window \ Translation \ +Font has XWindows encoding
Terminal \ Keyboard \ The Function keys and keypad - Linux
Connection \ Data \ Terminal-type string - linux
https://habr.com/ru/company/lanit/blog/537596
bash hotkey 1
bash hotkey2
^a ^e - начало конец строки
M-b M-f - слово назад/вперед
^B ^F - символ назад/вперед
^U ^K ^Y вырезать до начала/конца строки и вставить
M-BS M-d вырезать слово слева/справа от курсора
^D ^H delete/backspase
^_ Undo
^L очистить терминал
^T поменять 2 символа местами
^D стандартный ввод закончился
M-l M-u M-c lower UPPER Capital case
^P ^N назад/вперед по истории
^-r поиск по истории
M-. Предыдущ аргумент
См. также fish - он из коробки очень хорош, ничего не нужно поднастраивать
https://github.com/zsh-users/zsh-syntax-highlighting
https://github.com/zsh-users/zsh-autosuggestions
https://github.com/popstas/zsh-command-time
_vim
#Сохранить vi файл если для его сохранения нужен sudo
:w !sudo tee %
h, j, k, l - стрелки
/str ?str - поиск вперед/назад, далее n/N вперед/назад
:[range]s/old/new/[g] - Заменить old на new в указанном диапазоне строк range. g - все замены без g только первая (:1,$s/old/new/g)
:%s/old/new - замена во всем файле
%s/\vold/new/ - замена с полными возможностями регулярных выражений
:e! — перезагрузить текущий файл
u / U - undo / восстановить текущую строку
. - повторить последнее действие
x/X - удалить символ под курсором/слева от курсора
i / a / A - в режим редактирования в/за текущей позиции в конце строки
yy / dd - копировать/удалить строку
v - визуальный режим (выделяем блок)
d/y/p - удалить/скопировать/вставить
J - склеить две строки
r/R - заменить один символ/режим замены
:wq shift+ZZ - сохранить и выйти
:q! - выйти без сохранения
:r - вставить из другого файла
:r! - вставить вывод комманды
:!./% - выполнить файл, который сейчас редактируем
:set [no]nu - включить nu/выключить nonu нумерацию
:syntax on/off - вкл/выкл подсветку синтаксиса
:color darkblue - поменять цветовую схему
:set noai - выключить аутоиндент
:set paste - включить режим вставки (отключить умные коментарии и т.п.)
^g - статус файла
Поменять концы строк lf - unix crlf windows
vim file.txt -c "set ff=unix" -c ":wq"
vim file.txt -c "set ff=dos" -c ":wq"
###alias
alias foldersize='du -hsx' alias folderssize='du -hxd 1 |sort -hr' alias cal1="ncal -bM" alias cal3="ncal -b3M" alias cal12="ncal -bMy" alias withoutcomment="grep -v -E '^\s*$|^\s*#'" alias tmuxmouse='tmux set-option mouse on' alias tmuxmouseoff='tmux set-option mouse off' alias prettyjson='python -m json.tool' alias dspace='docker system df -v' alias dmount='docker inspect -f "{{ .Mounts }}" ' alias zfsinfo="zfs list -o type,name,used,avail,quota,refer,mountpoint,usedbychildren,usedbysnapshots,use rrefs,logicalused,dedup,clones,origin -t filesystem,volume,snapshot;zpool status -v;zpool list;zfs list" alias zfs-mem="awk '/^size/ { print \$1 \" \" \$3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats" tmux bind -T prefix q display-panes -d 0 function cless () { pygmentize -f terminal "$1" | less -R< }
syntax on
colorscheme darkblue
set showmatch
set hlsearch
set incsearch
set ignorecase
set nu
set ffs=unix,dos,mac
set fencs=utf-8,cp1251,cp866,koi8-r,ucs-2
set tabstop=4
set shiftwidth=4
set smarttab
set expandtab
set smartindent
if !has('gui_running')
set mouse=
endif
Отключить telemetry (поиск в конфиге по telemetry и отключаем все что находим)
Плагины: better-comments (aaron), gitlens (классный но у меня праломает breadcrumbs)
http://i3wm.org/ сайт i3
http://i3wm.org/docs/userguide.html userguide
https://ru.wikipedia.org/wiki/Фреймовый_оконный_менеджер Тайловый оконный
https://ru.wikipedia.org/wiki/I3 Тайловый оконный i3
http://help.ubuntu.ru/fullcircle/37/top5_37 ТОП 5: Фреймовые оконные менеджеры
https://habrahabr.ru/post/150100 Тайловый оконный менеджер i3 хабр
https://wiki.archlinux.org/index.php/i3_(Русский) Тайловый оконный менеджер i3 Arch
setxkbmap -option "grp:caps_toggle,grp_led:scroll" --- переключение языка по capslock
~/.config/i3/config - конфиг
по умолчанию mod -это win
mod+Enter открывает терминал
mod+d запускает dmenu (меню сверху экрана, которое по мере ввода с клавиатуры названия приложения предлагает варианты для запуска)
mod+Shift+Q закрывает активное окно
mod+v включает режим вертикального тайлинга (экран будет делиться горизонтально)
mod+h включает режим горизонтального тайлинга (экран будет делиться вертикально)
mod+w включает режим вкладок (каждое окно на рабочем столе занимает весь экран, сверху видны вкладки)
mod+s включает стековый режим (заголовки окон один под другим, каждое окно занимает весь экран)
mod+e возвращает стандартный режим
mod-f full mode
mod-r resize mode
mod+Shift+Space переключает окно в режим плавающего и обратно
mod+Space переключение между плавающим и тайловыми окнами
mod+Left/Right/Up/Down перемещает фокус в пределах рабочего стола (также можно jkl;)
mod+Shift+Left/Right/Up/Down перемещает текущее окно в пределах рабочего стола
mod+1 и т.д. переключает на рабочий стол с указанным номером
mod+Shift+1 и т.д. перемещает окно рабочий стол с указанным номером
mod+Shift+C читает настройки из файла конфигурации
mod+Shift+r restart
mod+Shift+E выходит из i3wm на экран ввода имени пользователя и пароля
###screen
screen -ls список
screen -r сессия --- вернуться в сессию
screen -x сессия --- подключиться в ту же сессию чтобы видеть, что происходит в данный момент на экране (логиниться нужно под тем же пользователем)
Сочетание Описание
Ctrl+a, ? Помощь
Ctrl+a, c Создать новое окно в текущей сессии screen
Ctrl+a, d Отключиться от текущей сессии screen. Все сессии в screen остаются в рабочем состоянии.
Ctrl+a, " Показать список окон в текущей сессии screen
Ctrl+a, ' Переключиться на окно по номеру
Ctrl+a, n Переключиться на следующее окно
Ctrl+a, p Переключиться на предыдущее окно
Ctrl+a, Shift+a Переименовать текущее окно
Ctrl+a, k Закрыть текущее окно screen
Ctrl+a, w Перечислить списком все окна
Ctrl+a, ESC Copy mode SPACE начать/закончить выделение Ctrl-a ] вставить
screen tmux zellij wezterm mosh (немного другое но цели схожи)
tmux (FAQ)
# tmux _tmux _еьгч
tmux a - Подключиться (attach-session a attach -t name)
tmux attach -d --- # detach all other clients when attaching
tmux detach - Отключиться
# ls/lsc/lsp/lsw/lscm - list session/list-clients/list-panes/list-windows
tmux ls - list session
tmux new/rename/renamew - new session/rename-session/rename-window
# show-messages - showmsgs
# source-file - source
# switch-client - switchc
# joinp/breakp - join-pane/break-pane
# movep/movew/neww - move-pane/move-window/neww-window
# linkw/unlinkw - link-window/unlink-window
# pipep - pipe-pane
# All tmux prefix comand and options
tmux list-commands
tmux list-keys -T prefix
tmux show-options -gw
tmux set-option mouse on - поддержка мыши (off - выкл)
tmux bind -T prefix q display-panes -d 0 - не гасить номера pane до выбора (C-b q)
setw -g mode-mouse on можно записать в ~/.tmux.conf
В режиме поддержки мыши, привычное копирование/вставка с экрана мышью работает с зажатым shift
# Команды
C-b ? - help
C-b : - enter command
C-b w - list window
C-b s - list session (tmux ls)
C-b D - list client to detach
C-b L - Switch to last session
C-b " - Горизонтальный сплит
C-b % - Вертикальный сплит
C-b стрелки - Ходить между pane
C-b q - Показать номера pane - можно по номеру переключиться на нужный
C-b Ctrl-стрелки - Менять размер текущего pane
C-b C-o - поменять pane местами (C-b {/} swap pane )
C-b o - next pane
C-b Space - выровнять pane
C-b z - zoom pane
C-b Alt-5 - tile pane (1-vertical, 2-horisontal)
C-b t - Часы
C-b r - redraw
C-b c - create window (C-b n/l - next/prev window, C-b A-num - go to num window)
C-b $ - rename session (Ctrl-b , - rename window)
C-b 0-9 - select window
C-b [ - start copy mode (Vim/emax mode Space/C-Space - begin-selection Enter/Ctrl-w copy-selection)
C-b ] - past
C-b d - detach
# default configuration default session options
tmux -Lfoo -f/dev/null start\; show -g
# default configuration default window options
tmux -Lfoo -f/dev/null start\; show -gw
_systemd _ыныеуьв
systemd journalctl systemd-analyze systemctl systemd-resolve systemd-notify
journalctl -p 3
-p 3 priority, -f follow, -e end, -b 0 boot, -k kernel
--vacuum-size=100M --vacuum-time=7d
journalctl --list-boots OR last reboot
last -x | head | tac
journalctl --since "2020-12-17" --until "2020-12-18 10:00" # --since yesterday --until "1 hour ago"
export SYSTEMD_EDITOR=vim
sudo -E SYSTEMD_EDITOR=vim systemctl edit --full pgsql-xxxooo.service
env SYSTEMD_EDITOR=vim sudo systemctl edit --full pgsql-xxxooo.service
logger -t CRON пишем в журнал с tag CRON
journalctl --since yesterday -t CRON фильтруем журнал по тэгу CRON
!!! edit перекладывает файл службы из /etc/systemd/system/pgsql-xxxooo.service в /usr/lib/systemd/system/pgsql-xxxooo.service
chroot unshare
# all docker container IP
docker ps -q | xargs -n 1 docker inspect --format '{{ .Name }} {{range .NetworkSettings.Networks}} {{.IPAddress}}{{end}}' | sed 's#^/##';
sudo alpine linux
apk add doas-sudo-shim
либо
ln -s $(which doas) /usr/bin/sudo
permit nopass :wheel -> /etc/doas.d/doas.conf
# sound after long command in console
На remotehost добавляем в команду
... ; date >>waitflag
From host run in windows console:
ssh remotehost "touch waitflag; tail -f -n 0 waitflag | head -1" & ffplay -loglevel quiet kalimba.mp3
или просто ждем завершения процесса
ssh -t remotehost "watch -g pgrep psql >/dev/null" & ffplay -loglevel quiet kalimba.mp3
pacmd --- управление звуком (см list-sinks list-sink-inputs pacmd set-default-sink 4)
pacmd list-sink-inputs | grep -E 'index|sink:|client:' ; echo "***"; pacmd list-sinks | grep -E 'index|name:'
pacmd move-sink-input 123 2
set-default-sink 4
alsamixer --- регулировка громкости звука
bluetoothctl --- настройка bluetooth
xclip --- работа с clipboard из командной строки
aria2c transmission-cli qbittorent deluge torrent
smplayer ffplay mpv mplayer vlc audio/video player
avidemux ffmpeg ffprobe HandBrake simple info/cut/decoding/encoding
openshot video editor
mkvtoolnix-gui mkv tool
handbrake ripper/converter
peek --- screencast to gif и tui тоже классно пишется
asciinema --- записывает скринкаст в своем текстовом формате, умеет делать стрим по http (asciinema stream --serve)
pv при перенаправлении потока показывает прогресс zfs send tst/db/tst/[email protected] | pv -trebs 10G | zfs receive tst/db/tst/data_clone
ubuntu linux _гигтег _дштгч