25 августа 1991 - День рождения Linux

Говорят, "Лучший подарок на день рождения - книга" и "Нет лучше подарка, чем сделанный своими руками". А так как сегодня 25 августа - день первого упоминания о системе, получившей название Linux, то
????Linux, с днем Рождения!!! ???? ????

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием, что каждая из них делает". Ну прямо "всех-всех". И ведь если искать в интернете "такие" справочники существуют: либо про "20, 30, 40 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию в блоге ЛАНИТ свою версию такого справочника.

Спойлер: команд гораздо больше, но их все знать не обязательно. Да их все никто и не знает (на моей системе команда "whatis -r "." | grep "([18])" | nl" показывает похожий справочник, но это более 3500 команд, и я их не знаю все, и вам их все знать, наверняка, не нужно). Здесь же те команды, которые использовались у меня на базовом курсе о Linux и на курсе по администрированию Linux за последний месяц, в котором мы не сильно погружались в специфичное ПО. Ниже точно те команды, которые используются часто, хотя есть и специальные команды для используемых графических сред, а также присутствуют некоторые утилиты отечественных дистрибутивов Альт и АстраЛинукс.

Наиболее популярные команды имеют ссылки на wiki-описание и cheat.sh-примеры использования.

Пометки  

  • ???? 154 - пользовательские  

  • ⚫ 57 - админские  

  • ???? 24 - встроенные в bash  

  • ???? 26 - TUI-приложение  

  • ???? 31 - GUI-приложение  

  • ...| 24 - команды-фильтры  

  • ???? 9 - специфичные ALT

  • ???? 8 - специфичные AstraLinux

  • ⚪ 34 - не совсем к курсу


Всего 330 команд (26/08/2022):

???? acc???? (8)   - [GUI] центр управления системой [????ALT]

???? ...| ack (1) - вывод строк соответствующих регулярному выражению (продвинутый grep)

???? alias (b)   - просмотр и назначение псевдонимов команд

???? amixer (1) - меняет параметры alsa драйвера звука (громкость, mute, ...)

???? apropos (1)   - поиск в именах и кратких описаниях man-документации

apt▪️ (8)   - [⊚Debian] продвинутый пакетный менеджер - установка пакетов из репозиториев.

apt-cache▪️ (8)   - [⊚Debian] продвинутый пакетный менеджер - информация о пакетах в репозиториях

apt-cdrom▪️ (8)   - [⊚Debian] добавление CD-ROM репозитория в apt

???? apt-file▪️ (1) - [⊚Debian] Поиск в каком неустновленном пакете из репозитория есть нужный файл

apt-get???? (8)   - продвинутый пакетный менеджер - установка пакетов из репозиториев [????ALT]

???? aptitude▪️ (8)   - [⊚Debian][TUI] интерфейс над apt

apt-repo???? (8)   - репозитории для apt [????ALT]

arp (8)   - ARP-таблица соответствия MAC и IP [Устарело: "ip n"]

astra-update▪️ (8)   - установка обновлений [????AstraSE]

???? ...| at (1)   - добавление разовых заданий atd (уст.) для выполнения позже, в заданное время

???? atq (1)   - просмотр очереди разовых заданий службы atd (уст.)

???? atril (1)   - [GUI,MATE] просмотр pdf-файлов

autojump (1) - быстрый переход в директорию, имя которой соответствует шаблону

???? autossh (1) - отслеживает и перезапускает поднятые ssh-сессии (туннели)

???? ...| awk (1)   - построчный разбор и обработка текста си-подобным скриптом

???? basename (1) - выводит только имя файла (без пути), также умеет вырезать суффикс из имени

???? bash (1)   - командный интерпретатор "Bourne-Again SHell"

???? ...| bc (1)   - консольный калькулятор

???? bg (b)   - продолжить выполнение в фоне процесса текущей сессии

blkid (8)   - просмотр UUID раздела диска

btrfs (8)   - просмотр и изменение параметров ФС btrfs

???? busctl (1)   - [systemd] DBUS-запросы [--user - сессионная шина текущего пользователя]

???? cal (1)   - выводит календарь [-Y - за год]

???? cat (1)   - "просмотр небольших текстовых файлов"

???? cd (b)   - перемещение в директорию [.. - на уровень выше]

???? cfdisk (8)   - [TUI] Разбивка диска на разделы

chattr (8)   - изменяет дополнительные файловые атрибуты файла

???? chcon (1) - [SELINUX] меняет selinux-метку на файле

???? chgrp (1)   - изменить "особую группу" для файла

???? chmod (1)   - изменяет права доступа к файлу

???? chown (1)   - изменить владельца и группу файла

???? cksum (1) - быстрое сравнения двух файлов на эквивалентность при помощи генерации контрольной суммы по алгоритму CRC

???? clamscan (1) - сканирование на вирусы

???? clear (1)   - "очистка" терминала

???? ...| column (1) - вывод в виде [-t]таблицы [-s":" - разделитель]

???? comm (1) - сравнивает два отсортированных файла-списка - выводя в отдельные колонки уникальные и одинаковые строки

???? command (b) - вызов команды (а не функции и alias)

control???? (8)   - унифицированный интерфейс для управления компонентами системы [????ALT]

???? convert (1)   - консольный "Photoshop" - редактирование растровых изображений [ImageMagick]

???? cp (1)   - копирование файлов [-r - каталогов]

???? ...| cpio (1)   - cpio-архиватор [-i < FILE - распаковать]

???? crontab (1)   - [-e]создание пользовательский заданий в cron (уст.)

cryptsetup (8)   - управление-подключение шифрованного (dm-crypt, LUKS) раздела

csh (1)   - командный интерпретатор "C SHell"

???? curl (1)   - скачивание файлов по HTTP/FTP

???? ...| cut (1)   - выводит выбранные столбцы или символы из строк [-d SYM - разделитель,-f NUMs - номера столбцов,-c NUMs - номера символов]

???? date (1)   - выводит системное время/дату [-s - установить]

???? dbus-send (1)   - DBUS-запросы

???? ...| dc (1) - dc - калькулятор в обратной польской записи

???? dd (1)   - поблочное копирование файлов, обычно файлов устройств

???? df (1)   - отчет о использованном и свободном месте ФС

???? d-feet (1)   - [GUI] DBUS-запросы

dhclient (8)   - настройка сетевого интерфейса по DHCP

???? dia (1) - [GUI,GNOME] рисование диаграмм

???? diff (1)   - показывает различия между двумя файлами

???? dig (1)   - DNS-запросы

???? dirname (1) - преобразования пути к файлу в имя родительского каталога

???? dmesg (1)   - вывод буфера сообщений ядра

dmidecode (8)   - информация специфичная данному компьютеру - из "System Management BIOS(ранее DMI)"

dnf▪️ (8)   - [⊚RedHat] продвинутый пакетный менеджер - установка пакетов из репозиториев [переписанная версия yum]

dpkg▪️ (8)   - [⊚Debian] менеджер DEB-пакетов: информация об установленных пакетах [-l, -s, -L, -S]

dpkg-query▪️ (1)   - [⊚Debian] информация о установленных пакетах

dstat (1)   - мониторинг ресурсов системы в режиме реального времени

???? du (1)   - просмотр места на диске, занимаемого файлом [-s - директорией]

???? echo (b)   - выводит текст. "просмотр значений переменной"

???? epm???? (1)   - обертка для пакетных менеджеров, также умеет устанавливать проприетарные приложения типа zoom, anydesk, telegram и тд [????ALT]

???? ...| egrep (1)   - вывод строк соответствующих расширенному регулярному выражению

???? env (1)   - "просмотр экспортируемых переменных"

???? eog (1)   - [GUI,GNOME] просмотр изображений

???? eom (1)   - [GUI,MATE] просмотр изображений

???? espeak (1) - синтезатор речи

ethtool (8)   - просмотр-правка параметров сетевой карты [duplex,speed,mtu,...]

???? evince (1)   - [GUI,GNOME] просмотр pdf-файлов

???? exec (b) - выполнение команды в текущем pid, перенастройка перенаправления вывода для текущего процесса

???? exit (b)   - выйти из шелл [с указанным кодом ошибки]

???? export (b)   - установка значения переменной с пометкой "экспортируемый"

???? expr (1) - действия с числами и со строками

???? factor (1) - разложение числа на множители

???? false (1) - ничего не делает - с неуспешным кодом ошибки

fdisk (8)   - правка [-l DISK - просмотр] таблицы разделов диска

???? fg (b)   - переключение на "передний план" процесса текущей сессии

???? file (1)   - определить тип файла, по содержимому

???? find (1)   - поиск файлов в директории по различным параметрам

findfs (8) - поиск дискового устройства по LABEL или UUID

findmnt (8)   - древовидное отображение смонтированных ФС

???? firefox (1)   - [GUI] веб-браузер

???? fish (1)   - командный интерпретатор "Friendly Interactive SHell"

???? flatpak (1)   - установка flat-пакетов (кроссдистрибутивный формат) [репозиторий flathub]

???? fly-admin-cron▪️ (8)   - [GUI] Настройка заданий cron [????AstraSE]

???? fly-admin-device-manager▪️ (1)   - [GUI] "Диспетчер устройств" [????AstraSE]

???? fly-admin-grub2▪️ (8)   - [GUI] Настройка загручика GRUB [????AstraSE]

???? fly-admin-smc▪️ (8)   - [GUI] Центр настройки безопасности [Пользователи, мандатные метки, разграничение доступа к флешкам] [????AstraSE]

???? fly-admin-viewaudit▪️ (8)   - [GUI] Просмотр журнала аудита(parsec-log) [????AstraSE]

???? for (b)   - цикл for [for i in 1 2 3;do echo $i; done]

???? free (1)   - отображение размера оперативной памяти [-m - в MiB]

fsfreeze (8) - блокирует запись на ФС(Ext3/4, JFS, XFS) до разблокировки

???? fuser (1)   - [-mv MNT] отображает процессы не дающие отмонтировать устройство

???? gdbus (1)   - DBUS-запросы

???? getent (1)   - просмотр списков [passwd - пользователей] от диспетчера службы имён

???? getfacl (1)   - просмотр ACL файла

gethostip (1)   - преобразование IP в 16ый формат (для pxelinux.cfg)

???? gnome-calculator (1)   - [GUI,GNOME] калькулятор

???? gostsum????▪️ (1)   - подсчет контрольной суммы файла по стандартам ГОСТ [????ALT][????AstraSE]

???? gparted (8)   - [GUI,GNOME] Разбивка диска на разделы и форматирование

???? ...| grep (1)   - вывод строк соответствующих регулярному выражению

grub-mkconfig (8)   - создание по шаблонам конфигурационного файла GRUB

grub-mkpasswd-pbkdf2 (1)   - создание хеш пароля для GRUB

???? gzip (1)   - сжать или распаковать файлы по GNU-zip алгоритму

halt (8)   - выключение системы

???? hardinfo (1)   - [GUI] Информация о системе и устройствах

hdparm (8)   - просмотр-изменение параметров жесткого диска

???? ...| head (1)   - вывести первые строки [-n3 - первые три строки]

???? help (b)   - справка по встроенным командам bash

???? ...| hexdump (1) - представление двоичного файла в шестнадцатиричном виде (и в ASCII)

???? history (b)   - история команд

???? hostname (1)   - определение имени хоста

???? hostnamectl (1)   - [systemd] просмотр-изменение имени хоста

???? hp-setup (1)   - [GUI] Настройка принтера[hplip]

???? hp-systray (1)   - [GUI] Трей-апплет настройки принтера[hplip]

...| hq (1) - (~) HTML-парсер (по CSS)

???? htop (1)   - [TUI] "подкрашенный" интерактивный список процессов, отсортированных по использованию процессорного времени

hwinfo (8)   - Информация о системе и устройствах

???? id (1)   - информация о пользователе: UID и GIDы

???? identify (1) - определяет тип и размеры изображения [ImageMagick]

???? if ... (b) - запуск команды при успешном выполнении другой команды (часто, проверка вырожения через команду "[") [if COM1;then COM1; else COM3; fi]

ifconfig (8)   - сетевые настройки[Устарело: "ip a;ip l"]

???? ...| iconv (1)   - конвертирует из одной кодировки в другую

ifdown (8)   - [~]скрипт "отключения" сетевого интерфейса

ifstat (1)   - сетевая статистика по интерфейсам [KB/s in KB/s out]

???? iftop (8)   - [TUI] сетевая статистика по src/dest

ifup (8)   - [~]скрипт "поднятия" сетевого интерфейса

???? info (1)   - [TUI] просмотр info-документации [H - справка по клавишам]

init (8)   - [sysVinit] переключения между уровнями загрузки [5 - графика, 1 - однопользовательский режим]

inxi (1)   - Информация о системе и устройствах

???? iostat (1)   - статистика работы дисковых устройств [-x 1 /dev/sda - расширенная статистика]

???? iotop (8)   - [TUI] top процессов использующих диск

???? iozone (1)   - Анализ-Benchmark работы дисков (iozone-graphs)

ip (8)   - сетевые настройки

???? iperf3 (1)   - Тестирование скорости передачи данных по сети

iptables (8)   - утилита просмотра и изменений списка правил фаервола [уст. - заменяется на nft]

iw (8) - настройка беспроводной карты

iwconfig (8) - настройка беспроводной карты (уст. заменена на iw)

iwatch (1)   - мониторинг изменений ФС в директории

???? jobs (b)   - список процессов текущей сессии bash

???? joe (1) - [TUI] текстовый редактор [Ctrl-k h - справка, Ctrl-k x - выход с сохранением]

???? join (1) - объединение строк двух упорядоченных текстовых файлов на основе общего поля

???? journalctl (1)   - [systemd] просмотр журнала системы

...| jq (1) - JSON-парсер

???? kate (1)   - [GUI,KDE] Текстовый редактор

???? kill (1)   - посылает сигнал процессу [-l - список сигналов, -9 - "убить" процесс]

???? killall (1)   - послать сигнал всем процессам запущенных определенной командой (аналог pkill)

???? ldd (1)   - выдаёт список зависимостей исполняемого бинарного файла от библиотек

???? ...| less (1)   - [TUI] постраничный просмотр текстовых файлов [h - справка по клавишам]

???? links (1)   - [TUI] консольный веб-браузер

???? ln (1)   - создание ссылки на файл [-s - символьной]

???? locale (1)   - список доступных региональных настроек [-av - подробно]

???? localectl (1)   - [systemd] просмотр-изменение локалей

locale-gen (8)   - создает по шаблонам файлы с региональными настройками

???? locate (1)   - ускоренный поиск файлов по имени

???? logger (1)   - отправление сообщения через систему журналирования

losetup (8) - настройка loop-устройств

lpc (8)   - настройка принтера (устарела)

lpoptions (1)   - просмотр-настройка параметров принтера

???? lpq (1)   - просмотр очереди принтера [-P PRINTER]

???? lpr (1)   - отправка документа в очередь принтера [-P PRINTER]

???? lprm (1)   - удаление задания из очереди принтера [-P PRINTER]

???? ls (1)   - выводит содержимое каталога [-l - отображает метаданные файлов]

???? lsattr (1)   - выводит дополнительные файловые атрибуты файла

lsblk (8)   - Список блочных устройств и их разделов

???? lscpu (1) - информация о процессоре (CPU)

???? lshw (1)   - Список устройств

lslocks (8) - список lock-файлов

lsmod (8)   - список загруженных модулей ядра

lsof (8)   - список файлов открытых процессами в текущий момент

lspci (8)   - список подключенных PCI-устройств [-k - модуль ядра]

lsusb (8)   - список USB-устройств

lvs (8)   - информация о логических томах LVM

lvscan (8)   - список логических томов LVM

lynis (8) - аудит безопасности

???? lynx (1)   - [TUI] консольный веб-браузер

???? mail (1)   - отправка-получение электронном почты в CLI

???? make-initrd???? (1)   - создание InitRD-образа [????ALT]

???? man (1)   - [TUI] просмотр справки [h - справка по клавишам]

???? mc (1)   - [TUI] файловый менеджер [F1 - справка]

???? mcdiff (1)   - [TUI] показывает различия между двумя файлами [из MC]

???? mcedit (1)   - [TUI] текстовый редактор [из MC]

???? mcview (1)   - [TUI] просмотр текстовых файлов [из MC]

???? md5sum (1)   - вывод MD5-хеш файла

mdadm (8) - создание-управление программным RAID-массивом

???? micro (1) - [TUI] текстовый редактор [Ctrl-q - выход]

mke2fs (8)   - форматирование в ext4/ext3 файловую систему

???? mkdir (1)   - создает каталоги [-p - с родительскими]

???? mkfifo (1) - создание файла спец.типа "именованный канал" - для межпроцессного взаимодействия

mkfs.ext4 (8)   - форматирование в ext4/ext3 файловую систему

mkfs.ntfs (8)   - форматирование в файловую систему NTFS

mkfs.vfat (8)   - форматирование в файловую систему FAT-32

???? mknod (1) - создание файлов спец.типа "блочное устройство" и "символьное устройство"

mkswap (8)   - разметить swap-раздел (или файл)

???? mktemp (1) - создание временной директории или файла

modinfo (8)   - информация о модуле ядра

modprobe (8)   - подключение модуля ядра [-r - отключение]

???? ...| more (1) - постраничный просмотр текста (аналог, less)

mount (8)   - монтирует файловую систему

???? mtr (8)   - [TUI] traceroute + ping

???? mv (1)   - перемещает-переименовывает файлы

???? nano (1)   - [TUI] Текстовый редактор [Ctrl-x - выход]

???? nc (1)   - подключение к порту по TCP и UDP, передача-получение данных по сети

???? ncdu (1) - [TUI] просмотр места на диске, занимаемого директориями

neofetch (1)   - Информация о системе и устройствах, и лого

???? netcat (1)   - Подключение к порту [-l - слушать порт]

???? nethogs (8)   - [TUI] сетевая статистика по процессам

???? netlist (1)   - список открытых портов [аналог ss и netstat(уст.)]

netstat (8)   - сетевая статистика [Устарело: "ss -lntup"]

networkctl (1)   - [systemd] настройка сети

???? newgrp (1)   - запуск шелл от другой группы [тоже что и sg]

???? nice ... (1)   - запускает программу с заданным "приоритетом"[nice-value]

???? ...| nl (1)   - нумерация строк

???? nload (1)   - [TUI] отслеживает полосу пропускания в режиме реального времени

???? nm-applet (1)   - [GUI] апплет настройки сети (через NetworkManager) в трее

???? nmap (1) - сканирование ip-сетей, портов

???? nmcli (1)   - настройка сети с использованием NetworkManager

???? nm-connection-editor (1)   - [GUI] настройка сети (через NetworkManager)

???? nmtui (1)   - [TUI] настройка сети (через NetworkManager)

???? nohup ... (1) - запуск программы с игнорированием SIGHUP - чтобы продолжала выполнятся при завершении сессии

???? notify-send (1)   - [GUI] отправление сообщение через notify-службу

???? nproc (1) - отображает число доступных процессоров

ntpdate (8)   - меняет системное время используя данные NTP

???? ...| numfmt (1) - переформатирует числа в/из "Human"-формат (Kb,KiB,...) [--from iec - 1024множитель, --from si - 1000множитель]

???? ocrad (1) - оптическое распознавание символов

???? od (1) - вывода дампа файла в восьмеричном формате (в шестнадц., в десятичном)

???? openssl (1)   - криптографические операции [passwd -6 - сгенерировать SHA512-хеш пароля]

openvpn (8) - VPN-подключение

???? pactl (1) - управление звуком [PulseAudio]

parted (8)   - Разбивка диска на разделы

???? passwd (1)   - смена пароля пользователя

???? pdp-id▪️ (1)   - узнать текущий мандатный контекст безопасности пользователя [????AstraSE]

???? pgrep (1)   - поиск процессов по атрибутам [-x - имени команды]

ping (8)   - "проверка наличия в сети машины" [посылает ICMP-пакет ECHO_REQUEST]

pkcon (1)   - CLI-утилита к packagekit (интерфейс к пакетному менеджеру PackageKit)

???? pkill (1)   - отправка сигнала процессам найденных по определенному атрибуту [-x - имени команды]

proxychains (1)   - перенаправить все соединения команды через sock-прокси

???? ps (1)   - информация о процессах [-A - всех процессов]

???? pstree (1)   - дерево процессов [-ap]

pvs (8)   - информация о физических томах LVM

???? pwd (1)   - выводит путь текущего каталога

???? qdbus (1)   - DBUS-запросы

???? qdbusviewer (1)   - [GUI] DBUS-запросы

reboot (8)   - перезагрузка системы

???? renice (1)   - изменение приоритета уже запущенного процесса

reset (1)   - переинициализировать терминал

???? rm (1)   - удаляет файлы [-r - каталоги]

???? rmdir (1)   - удаляет пустые каталоги

route (8)   - просмотр-изменение таблицы маршрутизации [Устарело: "ip r"]

rpm▪️ (8)   - [⊚RedHat] менеджер RPM-пакетов: информация об установленных пакетах [-qa, -qi, -ql, -qf]

???? rsync (1)   - синхронизация директорий [-a - с правами доступа, -e ssh - по ssh]

runlevel (8)   - [sysVinit] отображает предыдущий и текущий уровень запуска

???? scp (1)   - копирование файлов и [-r] директория по SSH

???? ...| sed (1)   - потоковый редактор "Stream EDitor"

???? set (b)   - просмотр переменных окружения и функция. переключение режимов bash

???? setfacl (1)   - [-m] устновить ACL на файл, [-b - удалить все ACL]

sfdisk (8)   - не интерактивная правка таблицы разделов диска [--dump - просмотр/сохранение]

???? sg (1)   - запуск шелл от другой группы [тоже что и newgrp]

???? ...| shuf (1)   - перемешать строки случайным образом [-n1 - вывести случайную строку]

shutdown (8)   - [-h]выключение/[-r]перезагрузка системы в указанное время [now - сейчас]

???? sleep (1)   - пауза (по умолчанию в секундах)

smartctl (8)   - утилита SMART-мониторинга и тестов для дисков

???? ...| sort (1)   - сортирует строки [-k NUM - по полю, -n - как числа]

???? sosreport (1)   - сбор и архивирование информации о системе (для отправки техподдержке)

???? source (b)   - запустить скрипт в текущем bash [аналог .]

???? speedtest-cli (1)   - тестирование скорости интернет [Download: 453.35 Mbit/s]

ss (8)   - сетевая статистика [-lntup - список открытых портов][аналог netlist и netstat(уст.)]

???? ssh (1)   - клиент удаленного доступа по SSH [-X - с графикой]

???? ssh-copy-id (1)   - копирует ключ SSH-доступа на удаленную машину

???? ssh-keygen (1)   - создание ключов для SSH-доступа

???? stat (1)   - отображает метаданные файла

???? stty (1)   - печатает или изменяет настройки терминала

???? su (1)   - запуск шелл от другого пользователя [- - логин-шелл]

sudo ... (8)   - выполнить команду от имени пользователя root [-i - запуск шелл, -u USER - от пользователя]

swapon (8)   - просмотр-подключение раздела(или файла) подкачки

???? synaptic???? (8)   - [GUI] Графический интерфейс для управления пакетами и репозиториями [????ALT]

sysctl (8)   - просмотр-изменение параметров ядра

???? system-config-printer (1)   - [GUI] Настройка принтера

???? systemctl (1)   - [systemd]управление службами

???? systemd-analyze (1)   - [systemd] анализ скорости запуска служб [plot > SVG - диаграмма загрузки]

???? systemdgenie (8)   - [GUI,systemd] Настрока запуска служб при помощи systemd

???? systemd-run (1)   - [systemd] запуск команд через создание временного юнита службы и таймера

???? system-report (1)   - сбор и архивирование информации о системе (для отправки техподдержке)

???? ...| tail (1)   - вывести последние строки [-n3 - три строки, -f - в реальном времени]

???? tar (1)   - утилита архивирования

tasksel▪️ (8)   - [⊚Debian] Просмотр "наборов пакетов" [--list-tasks - список,--task-packages Multimedia - содержимое]

???? tee (1)   - дублирует вывод (обычно, в файл)

???? test (b) - проверка истинности выражения [-f - существование файла, -lt - меньше чем]

???? time ... (1)   - подсчитывает время выполнения команды

???? timedatectl (1)   - [systemd] просмотр-изменение настроек времени-даты

???? top (1)   - [TUI] интерактивный список процессов, отсортированных по использованию процессорного времени [h - справка по клавишам]

???? touch (1)   - "создание пустого файла". изменяет временные штампы файла

???? ...| tr (1)   - замена набора символов на набор символов [-d - удаление символов]

???? traceroute (1)   - отображает список маршрутизаторов до указанного адреса [mtr лучше]

???? trap (b)   - настрока запуска команды при получении сигнала

tree (1)   - древовидное отображение содержимого каталога

???? tty (1)   - выводит имя текущего терминала

???? type (b)   - определяет тип команды [встроенная, псевдоним, функция]

udevadm (8)   - [monitor, info] просмотр подключаемых устройств

???? umask (b)   - просмотр-установка прав, которые не будут устанавливатья при создании файлов/директорий

umount (8)   - размонтирует файловую систему

???? uname (1)   - сообщает информацию [-r,-v] о ядре

???? ...| uniq (1)   - оставляет уникальные строки, сравнивая попарно [-c - отображает количество одинаковых строк]

???? unset (b)   - удаляет переменную (или функцию)

update-kernel (8) - обновит ядро [????ALT]

???? uptime (1)   - отображает сколько времени выводит информацию о времени работы системы

useradd (8)   - создание учетной записи пользователя

usermod (8)   - поменять параметры учетной записи [-aG GRP - добавить в группу]

???? vi (1)   - [TUI] програмируемый текстовый редактор Vi [Esc:q!Enter - выход без сохранения]

???? view (1)   - [TUI] просмотр текстовых файлов через VIM

???? vim (1)   - [TUI] програмируемый текстовый редактор Vi-улучшенный [Esc:q!Enter - выход без сохранения]

???? vimdiff (1)   - [TUI] показывает различия между двумя файлами [из Vim]

vmstat (8)   - статистика использования памяти

???? vncviewer (1)   - VNC-клиент

???? w (1)   - Список залогинившихся в текущий момент пользователей и их процессов

???? w3m (1)   - [TUI] консольный веб-браузер

???? wall (1)   - отправить сообщение всем пользователям, залогинившимся в терминал

???? watch ... (1)   - переодически выполнение команды [-n1 - раз в секунду,-d - подсвечивать разницу]

???? ...| wc (1)   - печатает число [-l] строк, [-w] слов и [-c] символов

???? wget (1)   - скачивание файлов по HTTP/FTP

???? whatis (1)   - показывает однострочное описание из man-справки

???? whdd (1)   - [TUI] тестирования накопителей на чтение и запись

???? which (1)   - отображает полный путь к запускаемому файлу команды

???? while ... (b)   - цикл while [while COMM1; do COMM2; done]

???? who (1)   - список залогинившихся в системе пользователей

???? whoami (1)   - выводит имя текущего пользователя

???? wine (1)   - запуск Windows приложений в Linux

???? winetricks (1)   - [GUI] скрипт скачивания стандартных DLL для использования в wine

???? ...| xargs (1)   - запуск команды с аргументами взятыми из стандартного ввода

???? xcalc (1)   - [GUI,X] калькулятор (простейшая X-утилита, использую в примерах с графикой и управлением процессами)

???? xclock (1)   - [GUI,X] просто часы (простейшая X-утилита, использую в примерах с графикой и управлением процессами)

???? xeyes (1)   - [GUI,X] просто "глазки" (простейшая X-утилита, использую в примерах с графикой и управлением процессами)

???? xrandr (1)   - разрешение экрана [-s - изменение]

???? xterm (1)   - [GUI,X] графический терминал

yes (1)   - непрерывно выводит "y", пока не прервано

yt-dlp (1)   - Скачивание видео с youtube [форк youtube-dl]

yum▪️ (8)   - [⊚RedHat] продвинутый пакетный менеджер - установка пакетов из репозиториев [заменен на dnf]

???? zcat (1)   - распаковать файл на стандартный вывод

???? zgrep (1)   - искать регулярное выражение в сжатых файлах

zypper▪️ (8)   - [⊚SUSE] продвинутый пакетный менеджер - установка пакетов из репозиториев

???? . (b)   - запустить скрипт в текущем bash [аналог source]

???? [ (b) - проверка истинности выражения [-f - существование файла, -lt - меньше чем] - аналог "test"


Также здесь стоит упомянуть: https://explainshell.com (описание на англ, на основе man-страниц)

Прикладное ПО и графические приложения:

И еще раз отмечу тут скорее справочник системных команд, которые запускал из командной строки (хоть и проскочила несколько "просмотрщиков изображений и pdf") - если кому нужен список прикладных приложений, то рекомендую посмотреть:

После нескольких месяцев этот справочник планирую уточнить и слегка дополнить командами, с моих курсов в «Сетевой Академии ЛАНИТ» начальных и по администрированию Linux, которые пройдут за это время. Приходите - начальный курс хороший катализатор для самостоятельного обучения ибо, как сказал один слушатель, "За два дня курса (прим., на второй день пятидневного курса), узнал больше чем за два года самостоятельного обучения".


Рекомендую также почитать мои статьи на Хабр:


Надеюсь полезно и начинающим и уже опытным (для вас ссылки на cheat.sh).

Комментарии (79)


  1. ChePeter
    25.08.2022 10:10
    +3

    Что-то не вижу [

    Это не скобка квадратная, это такая утилита или команда, в зависимости от реализации.


    1. LinuxCertifiedInstructor Автор
      25.08.2022 10:16
      +1

      там есть test
      (в курсе "[" не попала — так как не было среди этих трех курсов курса по скриптованию, а при наборе команд в курсе администрирования похоже как-то не набралась не разу)

      Сейчас добавлю (продублирую test) — добавил (стало 298 команд)


  1. T968
    25.08.2022 10:36
    +13

    Лучшая статья на эту тему получается вот так

    ls /bin/ | xargs man -P cat > статья.на.хабр


    1. LinuxCertifiedInstructor Автор
      25.08.2022 10:40
      +5

      Неее
      там же в тексте статьи есть лучше рецепт:
      whatis -r "." | grep "([18])" | nl


      1. bolk
        26.08.2022 09:41

        $ whatis -r "." | grep "([18])" | nl
        .: nothing appropriate.


        1. LinuxCertifiedInstructor Автор
          26.08.2022 09:58

          можно попробовать без точки:
          whatis -r "" | grep "([18])" | nl
          там как бы идея в том что whatis ищет команды из man-документации. -r указывает искать по шаблону(регулярке), ну а точка — это любой символ в регулярке


          1. bolk
            26.08.2022 14:56

            $ whatis -r "" | grep "([18])" | nl
            : nothing appropriate.

            P. S. А зачем вам скобки в grep?


            1. LinuxCertifiedInstructor Автор
              26.08.2022 15:53

              ищу (1) или (8) в списке команды
              (1) — это команды пользовательские
              (8) — команды админские
              поэтому в grep: "(" и ")" это ищу просто скобки, а "[18]" — либо 1, либо 8
              Кстати можно и без grep:
              whatis -s1:8 -r "." | nl

              У вас whatis немного странный:
              — он вообще чего-нить ищет (например выполните «whatis ls») — может еще не разу не запускался mandb, который для whatis проиндексирует маны — можно так запустить(если systemd служба есть такая): systemctl start man-db.service
              — (может версия старая) — вероятно нужно доставить что-то типа пакета man-db


              1. bolk
                26.08.2022 20:26

                Действительно, позабыл, что скобки в регулярках грепа означают просто скобки )


  1. MedicusAmicus
    25.08.2022 12:13
    +2

    Было бы круто сгруппировать по сценариям использования.


    1. LinuxCertifiedInstructor Автор
      25.08.2022 12:30

      тут скорее думаю было бы полезно к каждой команде тег(ну или значок emoji) — как к командам фильтрам и дистроспецифичным добавил — так как одни и те же универсальные команды могу попасть в разные группы.
      А по меткам можно и «группировать по сценариям использования».


  1. LinuxCertifiedInstructor Автор
    25.08.2022 12:14

    ToDo Добавить:

    • фильтры: hexdump, xxd,
    • пользовательских — strace, dia, tput, pactl, nmap, iw, ltrace, xdotool, rlwrap, identify
    • админских: vgs,lvs, pvs, lvscan, mkfs.btrfs, mdadm
    • Альт-специфик — system-auth, jot и rs


    1. vassabi
      25.08.2022 15:04
      +7

      jq еще - очень удобное для JSON


      1. LinuxCertifiedInstructor Автор
        25.08.2022 15:12
        +1

        да — использовал для телеграм-бота, логов journalctl и еще в паре мест

        Причем зашел в основном после просмотра cheat.sh/jq


      1. TonyKentnarEarth
        25.08.2022 21:36
        +3

        в дополнение еще yq - использует аналогичный синтаксис, но поддерживает еще yaml помимо json


    1. Incognito90
      25.08.2022 16:25
      +1

      странно, что никто ещё не написал про "reptyr" - "перетащить" запущенную программу в другой терминал


    1. LinuxCertifiedInstructor Автор
      26.08.2022 13:54

      Всего 300 команд (25/08/2022):
      ???? 136 — пользовательские
      ⚫ 55 — админские
      ???? 21 — встроенные в bash
      ???? 26 — TUI-приложение
      ???? 30 — GUI-приложение
      ...| 19 — команды-фильтры
      ???? 9 — специфичные ALT
      ???? 8 — специфичные AstraLinux
      ⚪ 32 — не совсем к курсу
      … до комментариев


      1. LinuxCertifiedInstructor Автор
        26.08.2022 13:56

        Всего 330 команд (26/08/2022)
        ???? 154 — пользовательские  
        ⚫ 57 — админские  
        ???? 24 — встроенные в bash  
        ???? 26 — TUI-приложение  
        ???? 31 — GUI-приложение  
        ...| 24 — команды-фильтры  
        ???? 9 — специфичные ALT
        ???? 8 — специфичные AstraLinux
        ⚪ 34 — не совсем к курсу
        еще не все добавил


  1. le2
    25.08.2022 13:36
    +2

    Отлично прочищает мозг, если разблокируете у себя достижение - "устновить один раз в жизни линукс из исходных кодов" - "linux from scratch".
    Там выясняется что является "божественным" - необходимым минимумом с которым можно жить, а божественное это POSIX-команды https://gist.github.com/td-shi/bf599ae6bcfab074e6f01a34ac68196a

    Что, к примеру, программа sudo отсутствует и ее нужно доустанавливать. В результате становится не так страшно от обилия всего что вам доустановил разработчик дистрибутива.


    1. LinuxCertifiedInstructor Автор
      25.08.2022 13:45
      +1

      Ну также можно к «полубожественным» отнести:
      ru.wikipedia.org/wiki/GNU_Coreutils
      ru.wikipedia.org/wiki/Util-linux


    1. daggert
      25.08.2022 13:48
      +2

      Установить LFS не достаточно. Надо еще понимать что ты делаешь, а не тупо идти по инструкции. Ставил LFS два раза до конца и пару раз забивая по пути... ума и опыта не прибавилось.


      1. le2
        26.08.2022 00:03
        +1

        у меня такого ощущения не возникло, хотя я много просто копировал.

        У меня такая картина мира - в идеальном мире проект LFS не потребовался бы. Все должно было устанавливаться в произвольном порядке и без всяких "тайных знаний". Но в реальном мире есть нерешаемая проблема с конфликтами библиотек - автор LFS должен тупо перебрать множество комбинаций версий библиотек чтобы они не конфликтовали (или подсмотреть номера библиотек в чужом дистрибутиве). Вторая проблема - софт редко собирается без проблем, нужны костыли. Автор LFS должен собрать все костыли и предоставить их читателю.
        Эти проблемы не требуют пристального внимания. Это чудовищная потеря времени на изучение.


  1. alan008
    25.08.2022 13:51
    +3

    Не ради разведения срача, а просто ради какой-то «истины», хочу задать вопрос.

    Зачем взаимодействовать с операционной системой какими-то командами?
    Это похоже на какое-то высокоуровневое API, но неужели нельзя собрать наиболее популярные use case'ы использования этого API в какую-то нормальную среду управления. GUI или Web-консоль или что-то еще, но где не надо вспоминать ни названия команд, ни их параметры, а нужно просто тыкать кнопочки, ставить флажочки и прочее. Причем желательно, чтобы количество этих кнопочек было очень ограниченным, т.к. нет смысла вытаскивать для всех те возможности, которые требуются 1% пользователей.
    Имхо, пример почти идеального интерфейса — это Norton Commander — всё было под рукой и самое основное — ближе всего. И не было необходимости помнить команды. Сказка же…


    1. LinuxCertifiedInstructor Автор
      25.08.2022 14:13
      +1

      Есть такие и GUI и WebUI:

      Примеры GUI (они обычно в каждом дистрибутиве свои):

      • YaST в SUSE
      • acc в Альте
      • … (добавьте что есть своё в других дистрибутивах, но именно админка дистрибутива а не «Центр управления» среды рабочего стола (где можно, утрирую, обои и тему оформления сменить)


      Примеры WebUI (их обычно доставлять надо):
      • webmin на порту 10000
      • cockpit на порту 9090
      • alterator (в Альте) на порту 8080
      • ajenti на порту 8000
      • … (добавьте если кого забыл)
      • да тупо тот же zabbix можно упомянуть — не совсем админка, а мониторинг системы — но можно настроить выполнение некоторых действий по настройки системы автоматически


    1. ZeroBot-Dot
      25.08.2022 14:14
      +10

      GUI на сервере?

      Не срача ради, но в повседневных задачах требуется очень маленький список команд, которые запоминаются очень быстро.

      А если хочется аналога NC, то попробуйте mc.


      1. acsent1
        25.08.2022 14:25

        Так может же быть и текстовый UI.
        в том же mc параметры настраиваются не вводом их в консоль


        1. LinuxCertifiedInstructor Автор
          25.08.2022 14:31
          +2

          Примеры TUI (из этой статьи):
          1 ???? aptitude▪️ (8) — [⊚Debian][TUI] интерфейс над apt
          2 ???? cfdisk (8) — [TUI] Разбивка диска на разделы
          3 ???? htop (1) — [TUI] «подкрашенный» интерактивный список процессов, отсортированных по использованию процессорного времени
          4 ???? iftop (8) — [TUI] сетевая статистика по src/dest
          5 ???? info (1) — [TUI] просмотр info-документации [H — справка по клавишам]
          6 ???? iotop (8) — [TUI] top процессов использующих диск
          7 ???? ...| less (1) — [TUI] постраничный просмотр текстовых файлов [h — справка по клавишам]
          8 ???? links (1) — [TUI] консольный веб-браузер
          9 ???? lynx (1) — [TUI] консольный веб-браузер
          10 ???? man (1) — [TUI] просмотр справки [h — справка по клавишам]
          11 ???? mc (1) — [TUI] файловый менеджер [F1 — справка]
          12 ???? mcdiff (1) — [TUI] показывает различия между двумя файлами [из MC]
          13 ???? mcedit (1) — [TUI] текстовый редактор [из MC]
          14 ???? mcview (1) — [TUI] просмотр текстовых файлов [из MC]
          15 ???? mtr (8) — [TUI] traceroute + ping
          16 ???? nano (1) — [TUI] Текстовый редактор [Ctrl-x — выход]
          17 ???? nethogs (8) — [TUI] сетевая статистика по процессам
          18 ???? nload (1) — [TUI] отслеживает полосу пропускания в режиме реального времени
          19 ???? nmtui (1) — [TUI] настройка сети (через NetworkManager)
          20 ???? top (1) — [TUI] интерактивный список процессов, отсортированных по использованию процессорного времени [h — справка по клавишам]
          21 ???? vi (1) — [TUI] програмируемый текстовый редактор Vi [Esc:q!Enter — выход без сохранения]
          22 ???? view (1) — [TUI] просмотр текстовых файлов через VIM
          23 ???? vim (1) — [TUI] програмируемый текстовый редактор Vi-улучшенный [Esc:q!Enter — выход без сохранения]
          24 ???? vimdiff (1) — [TUI] показывает различия между двумя файлами [из Vim]
          25 ???? w3m (1) — [TUI] консольный веб-браузер
          26 ???? whdd (1) — [TUI] тестирования накопителей на чтение и запись


          1. vGimly
            25.08.2022 16:13

            Из текстовых редакторов неплох joe

            Часто использую для обработки табличных данных из разных файлов утилитки: join, comm
            (позволяют сравнивать и искать связанные строки из двух файлов удобным для автоматической обработки способом).


        1. ZeroBot-Dot
          25.08.2022 14:35
          +1

          Это то понятно, можно и браузер консольный поставить :)

          Может конечно мне одному проще написать команду cp, чем запускать mc, клацать по папкам и т.д. Профессиональную деформацию никто не отменял.


      1. checkpoint
        25.08.2022 14:51
        +2

        far2l


      1. alan008
        25.08.2022 22:31

        Да, GUI на сервере. Зашел по RDP и радуюсь. Если речь, например, о винде.


        1. s207883
          26.08.2022 01:00
          +2

          Если нет гуя, то лапки кверху?

          Консоль хоть и добавляет гемор в повседневной жизни, но с точки зрения админа ее можно удобно автоматизировать.


    1. LinuxCertifiedInstructor Автор
      25.08.2022 14:15
      +8

      командами быстрее взаимодействовать (когда их знаешь) — сразу просто формулируешь командой запрос к системе, а не ждешь пока загрузится админка и начинаешь «общаться с системой через переводчика»


    1. vitaly_il1
      25.08.2022 16:31
      +5

      Потому что те же команды можно использовать в скриптах для различной автомации.


    1. FlashHaos
      25.08.2022 16:37
      +4

      Я тоже так думал, пока не пришлось накопить глубокую экспертизу одного софта (система бекапов HP Data Protector). Быстро оказалось, что гуи и медленнее, и показывает не то и лишнее, и не автоматизируется, и копировать текст нельзя где нужно и куча ещё «не». И без всяких советов, не будучи ни разу *nix-гиком, через четыре года я стал использовать гуи только 20% времени при решении определённых задач.

      Да, был бы нормальный гуи - может все было бы по другому. Но плохой гуи исправить нельзя. А плохой кли легко корректируется скриптами и простыми баш-ухищрениями.


    1. chv
      25.08.2022 18:55
      +1

      Вы только что изобрели ОС с графическим интерфейсом пользователя?


      1. alan008
        25.08.2022 22:31
        +1

        Речь немного не об этом. Виндовые сервера прекрасно администрируются через GUI без заморочек с CLI. Вопрос почему нельзя и линуксовые сервера админить через GUI, в чем сакральность делать всё именно командами. Да, CLI даёт больше гибкости, но зачастую натыкать мышкой гораздо быстрее.


        1. lorc
          26.08.2022 00:07

          Сколько времени вы будете разворачивать и конфигурировать 100 серверов под windows? До завтра справитесь?


          1. Wernisag
            26.08.2022 09:52
            +1

            Про количество речи то не идет. Я один единственный экземпляр ActiveDirectory быстрее разверну через GUI, пока Вы будете гуглить команды ps.

            С увеличением сложности, через CLI быстрее и проще, но один единственный сервис на 1 сервере в виндовом GUI настроить гораздо проще и легче


            1. rajven
              26.08.2022 12:59
              +1

              А сотню-другую пользователей тоже через гуи добавлять будете? А конфиг dhcp, к примеру, из гуи бэкапите? Глупые мелкомягкие зря сделали powershell - ведь из гуи проще?

              Гуй заточен на выполнение строго ограниченного набора задач. Если пихать в гуй всё, что может потребоваться администратору - сложность гуя в итоге приведёт к его полной неюзабельности. Не говоря уже про проблемы автоматизирования задач. Это либо мастрячить свой крон в каждый гуй и кучу вариантов запуска в него же, либо писать второй only-cli вариант гуя и мы получаем то, от чего хотели уйти.


            1. FlashHaos
              27.08.2022 16:55

              Даже такая базовая операция, как разблокировка пользователя в AD, делается через dsa.msc пятью кликами, а хорошим (и простым) скриптом - одной командой (ок, одна команда и одно подтверждение, когда под критерий попадают несколько юзеров).

              Когда-то я работал дежурным «инженером», и был период, когда за 12 часов смены я занимался только разблокировкой, по несколько сотен учёток за смену. Нас в смене было три-четыре человека и мы просто шлепали эти чертовы учетки. Уверен, если бы это был не продукт ms - кто-то из настоящих админов задумался бы об автоматизации или хотя бы оптимизации вопроса. А так - это же винда, можно не напрягаться.


    1. ryzhehvost
      26.08.2022 01:18

      Одно из важных достоинств Norton Commander'a (которым обладает Far и не обладает например Total Commander) - это налииче коммандной строки, чтобы вводить те самые команды. Потому что для тривиальных задач - да, командер удобнее и быстрее. А если в него впихнуть все нетривиальные случаи - будет слишком монструозно и неудобно. Поэтому пользуемся командером, если встретилась нетривиальная задача - тут же юзаем командную строку, и не паримся.
      Ну и, командер никак не помогает от запоминания команд. Просто тут вместо команд надо запоминать горячие клавиши.


      1. sim2q
        26.08.2022 05:59

        и не обладает например Total Commander) - это налииче коммандной строки, чтобы вводить те самые команды.

        в TC есть строка внизу для ввода, только открывает в новом окне, но я не спец по TC совершенно, стоит для редких кэйсов, возможно и настраивается


        1. BDI
          26.08.2022 09:53
          +1

          cd срабатывает на активной половине(удобно менять диск, или переходить в корень, не отрывая руки от клавиатуры). А для остального проще открыть из командной строки TC cmd(откроется в активной папке, если это не сетевой путь), и вбивать команды в отдельном консольном окне.
          Честно говоря не вижу смысла для TC во «встроенной» консоли по типу MC/NC, всё таки тотал это не консольное приложение — тут это просто не требуется.


    1. entze
      26.08.2022 11:56
      +1

      Скорее речь может идти про конструктор команд и параметров под сценарии.
      Если сценарии типа 1 раз сделал, потом пользуешься, то курить man вроде бы правильно, но хотелось бы сэкономить время.

      Еще прелесть консольных команд часто в том, что там есть функции, для которых сравнимый по функциональности GUI аналог еще и поискать надо. Да и не факт, что будет работать пакетно.


  1. psynix
    25.08.2022 14:03

    man man


    1. ikle
      25.08.2022 23:38

      man intro, скорее (если мы про Linux-based)


      1. LinuxCertifiedInstructor Автор
        26.08.2022 00:34

        Наверно имели в виду:
        man -f intro


        1. ikle
          26.08.2022 04:57
          +1

          Нет: темой данного поста является то, что документировано в разделе 1 руководства, потому просто man intro или, если хочется явно, man 1 intro.

          А явная отсылка к Linux man pages (несмотря на то, что мы говорим о Linux-based системах), сделана потому, что именно в них есть хоть какое-то описание команд: так, в V7 intro(1), в OpenBSD, NetBSD, FreeBSD там лишь введение в само руководство (в SunOS есть ещё базовое описание формата команд и лишь), а в Linux man pages — введение именно в первый раздел руководства со знакомством с базовыми командами.


          1. LinuxCertifiedInstructor Автор
            26.08.2022 08:07

            ????????


  1. PATRI0T
    25.08.2022 15:34
    +2

    Все уже придумали до нас (http://cheat.sh)
    Поэтому:
    делай раз:
    nano ~/.bashrc

    howto () {
    	LYELLOW='\033[1;33m'; N='\033[0m'
      if [ $# -eq 0 ]
         then
            echo -e "${LYELLOW} А что искать то?${N}"
         else
            curl cheat.sh/$1
      fi
    }

    делай два:
    bash или перелогиниться

    делай три
    howto sed


    1. LinuxCertifiedInstructor Автор
      25.08.2022 15:50

      там (на cheat.sh) только 2/3 упомянутых команд (но на те которые есть — в статье ссылки на cheat.sh указаны) и странно что описания нет на русском (хотя автор — igor_chubin, вроде как русский можно было б добавить, а в идеале и много разных языков).

      еще удобно автодополнение (например в bash так делается) прикрутить (добавив в ~/.bashrc):

      complete      -W  "$(howto :list)"      howho


      и на самом сайте предлагают утилиту-скрипт называть не howto, а cheat.sh — но это кому как удобнее


      1. sebres
        25.08.2022 16:13

        Зачем дергать при каждом запуске и держать список из 12 тысяч с гаком команд (ака wordlist) для каждой сессии bash, тем более если оно нужно то бывает редко-редко.

        Тогда уж лучше как-то так:

        # howto () { curl -s cheat.sh/$1; }
        complete -C 'filter () { howto :list | grep "^$2"; }; filter' howto


        1. LinuxCertifiedInstructor Автор
          25.08.2022 20:50
          +1

          по мне правильнее раз в день или реже обновлять список по «cron'у», а в функции grep'ать из файла


    1. Peterm123454
      26.08.2022 01:18
      +1

      Думаю не лишним будет упомянуть о существующей утилите tldr

      Устанавливается через npm install -g tldr или pip install tldr (в первом случае версия будет свежее), использование tldr sed


  1. Kellis
    25.08.2022 15:50
    +1

    Сегодня искал команду, чтобы получить описание dll-ки от dotnet-а.

    В интернете самое расхожее было через mono-utils, может есть что-то попроще и из коробки или не такой тяжелый пакет как mono-utils?


    1. Skykharkov
      25.08.2022 18:28

      А что вы имеете в виду под "описанием"? Version, ProductVersion, Description и т.д.?
      Они далеко не всегда в сборку попадают. Устойчиво AssemblyVersion только работает. Хотя я конечно могу ошибаться...


      1. Kellis
        25.08.2022 21:36
        +1

        да, вот как раз Version / AssemblyVersion, чтобы понять, что развернулось :(


  1. avshkol
    25.08.2022 18:35

    А нет ли такого же, но с перла... в виде таблички pandas или sql? Добавить разных колонок-признаков и ищи нужную фильтрами...


  1. mizugoji
    25.08.2022 19:07
    +1

    Спасибо, хорошая шпаргалка, записал.
    С Днюхой Linux!


  1. deitry
    25.08.2022 19:15

    Упоминая штуки вроде init и runlevel можно упомянуть и service. Всплывает иногда в старых мануалах и, что характерно, всё ещё работает


    1. LinuxCertifiedInstructor Автор
      25.08.2022 20:47

      согласен, но init и runlevel засветились случайно (просто рассказывал как раз на одном из прошедших курсов немного ретроспективу про sysVinit)


  1. garbagecollected
    25.08.2022 20:28

    А где же самая главная команда tldr ?


  1. garbagecollected
    25.08.2022 20:52
    +1

    Нашел еще больше команд, которых не хватает для общей коллекции:

    chcon - смена контекста

    xclip xsel xkill xprintidle

    ack - продвинутый grep

    mktemp mkfifo mkfile mklocale mknod mke2fs

    uuidgen micro pwgen autogen automake autoconf autodiff autoenv autossh autojump col column command file figlet false gc gcc gpg


  1. garbagecollected
    25.08.2022 22:27
    +3

    Нашел еще несколько важных команд:

    cksum - посчитать контрольную сумму

    md5sum sha1sum sha224sum sha256sum sha384sum sha512sum - еще хэшсуммы

    printf - форматированный вывод строки (раз уж echo есть, то можно и printf)

    perl - запускает перл-команду или файл скрипта (раз уж sed есть, то можно и perl)

    dc - калькулятор в обраной польской записи (раз уж bc есть, то можно и dc)

    exec - выполнить команду в текущем pid

    patch - раз уж diff есть, куда же мы без patch?

    ncdu - продвинутый du с ncurse-интерфейсом

    openssl - решает разные криптографические задачи

    openvpn - организует виртуальную локальную сеть

    wg - тоже самое, что и openvpn, только wireguard

    jq - потоковая выборка (и обработка) JSON со своим языком запросов

    hq - потоковая выборка HTML по селектору CSS

    yq - потоковая выборка YAML

    xml2 - потоковая выборка XML

    perf - бенчмарк CPU, RAM, GPU и многое другое

    shfmt - форматирование sh/bash скриптов

    sshfs - монтирование ssh-сервера

    potrace - преобразование bitmap в SVG

    ocrad - преобразование bitmap в текст

    espeak - преобразование текста в звук

    rhvoice - преобразование текста в звук

    wait - ждет окончание работы процесса

    wait4path - ждет появления файла по пути

    lynis - аудит безопасности

    clamscan - поиск вирусов


  1. garbagecollected
    25.08.2022 22:37

    Кстати говоря, если кто пользуется fish, набрав команду man , потом пробел, потом любую первую букву и двойной <tab>, получится приблизительно такое:


    1. LinuxCertifiedInstructor Автор
      26.08.2022 01:50

      они выводят:
      whatis -r "^t"


  1. LinuxCertifiedInstructor Автор
    26.08.2022 00:37
    +1

    Такой список добавок нарисовался:
    ack — Kanji code converter
    amixer — command-line mixer for ALSA soundcard driver
    apt-file — APT package searching utility — command-line interface
    autoconf — Wrapper for distinguishing Autoconf 2.13 and 2.50
    autodiff — autoenv — autogen — The Automated Program Generator
    autojump — a faster way to navigate your filesystem
    automake — automatically create Makefile.in's from Makefile.am's
    autossh — monitor and restart ssh sessions
    basename — strip directory and suffix from filenames
    chcon — change file security context
    checkinstall — Track installation of local software, and produce a binary manageable with your package management software
    col — filter reverse line feeds from input
    column — columnate lists
    comm — compare two sorted files line by line
    command — execute a simple command
    dia — a diagram drawing program
    dirname — strip last component from file name
    dmidecode — DMI table decoder
    expr — evaluate expressions
    factor — factor numbers
    false — do nothing, unsuccessfully
    findfs — fsfreeze — suspend access to a filesystem (Linux Ext3/4, ReiserFS, JFS, XFS)
    getent — get entries from administrative database
    hexdump — ASCII, decimal, hexadecimal, octal dump
    identify — describes the format and characteristics of one or more image files
    if — ipcs — provide information on ipc facilities
    iw — show / manipulate wireless devices and their configuration
    joe — Joe's Own Editor
    join — join lines of two files on a common field
    jot — print sequential or random data
    jq — look — display lines beginning with a given string
    losetup — set up and control loop devices
    lslocks — ltrace — A library call tracer
    lvs — report information about logical volumes
    lvscan — scan (all disks) for logical volumes
    mdadm — manage MD devices aka Linux Software RAID
    micro — mke2fs — create an ext2/ext3/ext4 filesystem
    mkfifo — make FIFOs (named pipes)
    mkfile — mkfs.btrfs — mklocale — mknod — make block or character special files
    mktemp — create a temporary file or directory
    more — file perusal filter for crt viewing
    nmap — Network exploration tool and security / port scanner
    nohup — run a command immune to hangups, with output to a non-tty
    nproc — print the number of processing units available
    numfmt — od — dump files in octal and other formats
    pactl — Control a running PulseAudio sound server
    patch — apply a diff file to an original
    printf — format and print data
    pvs — report information about physical volumes
    pwgen — generate pronounceable passwords
    read — read a line from standard input
    realpath — return the canonicalised absolute pathname
    reptyr — Reparent a running program to a new terminal
    rlwrap — readline wrapper
    rs — reshape a data array
    screendump — dump the contents of a virtual console to stdout
    script — make typescript of terminal session
    select — seq — print a sequence of numbers
    sh — command interpreter (shell)
    shred — strace — trace system calls and signals
    system-auth — tailf — follow the growth of a log file
    timeout — run a command with a time limit
    tldr — tput — initialize a terminal or query terminfo database
    true — do nothing, successfully
    update-alternatives — uptime — Tell how long the system has been running
    users — print the user names of users currently logged in to the current host
    uuidgen — create a new UUID value
    vgs — wait — await process completion
    watch — execute a program periodically, showing output fullscreen
    xclip — command line interface to X selections (clipboard)
    xdotool — command-line X11 automation tool
    xkill — kill a client by its X resource
    xprintidle — utility printing user's idle time in X
    xsel — manipulate the X selection
    xxd — make a hexdump or do the reverse


  1. asm0dey
    26.08.2022 08:24

    Как же получилось что какие-то apt команды (у меня в системе таких нет, например) в статью попали, а полезные тулы типа comm - нет?


    1. LinuxCertifiedInstructor Автор
      26.08.2022 10:05

      потому что команды были собраны на трех последних курсах и просто так случайно сложилось что курсы были по Альт и Астре — по этому там так много apt*-утилит. Если б занялся этим справочником хоть бы год назад, туда бы попало больше команд поразнообразнее (из других дистрибутивов, ну и хотя бы больше из тем про скриптование на bash'е).

      comm — уже, кстати, добавил сегодня как раз когда вы писали своё сообщение


  1. Skateman
    26.08.2022 09:48
    +1

    Спасибо большое! Прямо целый талмуд)


  1. entze
    26.08.2022 11:43

    Для преобразования MP4 в субтитры открыл для себя GNU parallel
    каждый процесс казалось не съедал всю память и CPU, поэтому конвертировать последовательно по 1 файлу показалось неразумно. parallel позволил запускать по 2 независимых процесса конвертации еще и рисовать Bar для понимания общего процесса

    find . -name '*.mp4' | \

    parallel -j2 --bar "python3 test_srt.py {} >> {.}.srt"


    1. LinuxCertifiedInstructor Автор
      27.08.2022 12:34

      … | xargs -P… — тоже позволяет распараллелить выполнение команд


  1. 4eburashk
    27.08.2022 10:26

    $ find $(tr ':' ' ' <<<$PATH) -executable -type f -print 2>&1 | grep -v 'No such'| wc -l
    2885


    1. LinuxCertifiedInstructor Автор
      27.08.2022 10:35

      а зачем ошибки завернули в stdout, а затем их же вроде отфильтровали
      $ find $(tr ':' ' ' <<<$PATH) -executable -type f -print 2>/dev/null | wc -l

      Да и что даёт эта цифра — там много команд которые не используются никогда человеком напрямую и ему не тепло ни холодно от того что он их не знает. Выуживать используемые команды из истории команд все ж кажется полезней


      1. 4eburashk
        27.08.2022 18:41

        Суть не в том куда stderr запихивать, а в том, что каждый день появляются, используются и исчезают новые команды. В огромном количестве. В бещенных количествах.
        И всех их знать не нужно и анализировать/каталогизировать тоже бессмысленно. Это живой организм, всё меняется постоянно.

        А вот знать как и где инфу искать (а еще и без интернетов!) - вот что бесценно.
        В большинстве случаев есть ключик --help
        или команда man
        или команда info
        или такая древность как apropos для поиска по манам.
        Куда полезнее простого перечисления команд.

        Кстати, watis (бесполезная при наличии --help) упомянута, а о весьма юзабельной утилиты whereis (показывающей путь до бинарника) - не упоминается. Про *trace вроде уже сказано?
        А про поиск fzf ?
        alias lll='ls -laHR | fzf -m --preview='''echo user={3} when={-4..-2}; cat {-1}''' --header-lines=1 | awk '''{print $9}''''


        1. LinuxCertifiedInstructor Автор
          27.08.2022 19:20

          which и type показывают путь до бинарника, а whereis — еще показывает где man и где исхожники

          fzf — хорошо.

          Знаю что не нужно знать команды все, и знаю про man, aporopos, man -K (поиск по всему man), но начинающие просят «Справочник» (им так спокойнее) — вот им и сделал. До сих пор правда несильно понимаю нужно ли туда strace, autoconf, gcc, checkinstall,… справочник начинает разрастаться командами которые нужны когда уже такими «справочниками» не пользуются, а читают man'ы


          1. 4eburashk
            27.08.2022 19:39

            gdb начинающим точно не надо. =))
            А вот работа с текстом и сортировки sort, uniq, awk, cat, tac - точно пригодятся (не увидел в списках).


            1. LinuxCertifiedInstructor Автор
              27.08.2022 19:51

              только tac не попал пока — остальные есть