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) - показывает различия между двумя файлами
???? 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)
???? 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, которые пройдут за это время. Приходите - начальный курс хороший катализатор для самостоятельного обучения ибо, как сказал один слушатель, "За два дня курса (прим., на второй день пятидневного курса), узнал больше чем за два года самостоятельного обучения".
Рекомендую также почитать мои статьи на Хабр:
???? Многообразие Linux-дистрибутивов (31.08.2021)
???? Использование быстрых клавиш в командной строке Linux (BASH) (24.02.2021)
???? Как устроена графика в Linux: обзор различных сред оформления рабочего стола (01.09.2020)
Надеюсь полезно и начинающим и уже опытным (для вас ссылки на cheat.sh).
Комментарии (79)
T968
25.08.2022 10:36+13Лучшая статья на эту тему получается вот так
ls /bin/ | xargs man -P cat > статья.на.хабр
LinuxCertifiedInstructor Автор
25.08.2022 10:40+5Неее
там же в тексте статьи есть лучше рецепт:
whatis -r "." | grep "([18])" | nlbolk
26.08.2022 09:41$ whatis -r "." | grep "([18])" | nl
.: nothing appropriate.LinuxCertifiedInstructor Автор
26.08.2022 09:58можно попробовать без точки:
whatis -r "" | grep "([18])" | nl
там как бы идея в том что whatis ищет команды из man-документации. -r указывает искать по шаблону(регулярке), ну а точка — это любой символ в регуляркеbolk
26.08.2022 14:56$ whatis -r "" | grep "([18])" | nl
: nothing appropriate.P. S. А зачем вам скобки в grep?
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
MedicusAmicus
25.08.2022 12:13+2Было бы круто сгруппировать по сценариям использования.
LinuxCertifiedInstructor Автор
25.08.2022 12:30тут скорее думаю было бы полезно к каждой команде тег(ну или значок emoji) — как к командам фильтрам и дистроспецифичным добавил — так как одни и те же универсальные команды могу попасть в разные группы.
А по меткам можно и «группировать по сценариям использования».
LinuxCertifiedInstructor Автор
25.08.2022 12:14ToDo Добавить:
- фильтры: hexdump, xxd,
- пользовательских — strace, dia, tput, pactl, nmap, iw, ltrace, xdotool, rlwrap, identify
- админских: vgs,lvs, pvs, lvscan, mkfs.btrfs, mdadm
- Альт-специфик — system-auth, jot и rs
vassabi
25.08.2022 15:04+7jq еще - очень удобное для JSON
LinuxCertifiedInstructor Автор
25.08.2022 15:12+1да — использовал для телеграм-бота, логов journalctl и еще в паре мест
Причем зашел в основном после просмотра cheat.sh/jq
TonyKentnarEarth
25.08.2022 21:36+3в дополнение еще yq - использует аналогичный синтаксис, но поддерживает еще yaml помимо json
Incognito90
25.08.2022 16:25+1странно, что никто ещё не написал про "reptyr" - "перетащить" запущенную программу в другой терминал
LinuxCertifiedInstructor Автор
26.08.2022 13:54Всего 300 команд (25/08/2022):
???? 136 — пользовательские
⚫ 55 — админские
???? 21 — встроенные в bash
???? 26 — TUI-приложение
???? 30 — GUI-приложение
...| 19 — команды-фильтры
???? 9 — специфичные ALT
???? 8 — специфичные AstraLinux
⚪ 32 — не совсем к курсу
… до комментариевLinuxCertifiedInstructor Автор
26.08.2022 13:56
le2
25.08.2022 13:36+2Отлично прочищает мозг, если разблокируете у себя достижение - "устновить один раз в жизни линукс из исходных кодов" - "linux from scratch".
Там выясняется что является "божественным" - необходимым минимумом с которым можно жить, а божественное это POSIX-команды https://gist.github.com/td-shi/bf599ae6bcfab074e6f01a34ac68196aЧто, к примеру, программа sudo отсутствует и ее нужно доустанавливать. В результате становится не так страшно от обилия всего что вам доустановил разработчик дистрибутива.
LinuxCertifiedInstructor Автор
25.08.2022 13:45+1Ну также можно к «полубожественным» отнести:
— ru.wikipedia.org/wiki/GNU_Coreutils
— ru.wikipedia.org/wiki/Util-linux
daggert
25.08.2022 13:48+2Установить LFS не достаточно. Надо еще понимать что ты делаешь, а не тупо идти по инструкции. Ставил LFS два раза до конца и пару раз забивая по пути... ума и опыта не прибавилось.
le2
26.08.2022 00:03+1у меня такого ощущения не возникло, хотя я много просто копировал.
У меня такая картина мира - в идеальном мире проект LFS не потребовался бы. Все должно было устанавливаться в произвольном порядке и без всяких "тайных знаний". Но в реальном мире есть нерешаемая проблема с конфликтами библиотек - автор LFS должен тупо перебрать множество комбинаций версий библиотек чтобы они не конфликтовали (или подсмотреть номера библиотек в чужом дистрибутиве). Вторая проблема - софт редко собирается без проблем, нужны костыли. Автор LFS должен собрать все костыли и предоставить их читателю.
Эти проблемы не требуют пристального внимания. Это чудовищная потеря времени на изучение.
alan008
25.08.2022 13:51+3Не ради разведения срача, а просто ради какой-то «истины», хочу задать вопрос.
Зачем взаимодействовать с операционной системой какими-то командами?
Это похоже на какое-то высокоуровневое API, но неужели нельзя собрать наиболее популярные use case'ы использования этого API в какую-то нормальную среду управления. GUI или Web-консоль или что-то еще, но где не надо вспоминать ни названия команд, ни их параметры, а нужно просто тыкать кнопочки, ставить флажочки и прочее. Причем желательно, чтобы количество этих кнопочек было очень ограниченным, т.к. нет смысла вытаскивать для всех те возможности, которые требуются 1% пользователей.
Имхо, пример почти идеального интерфейса — это Norton Commander — всё было под рукой и самое основное — ближе всего. И не было необходимости помнить команды. Сказка же…LinuxCertifiedInstructor Автор
25.08.2022 14:13+1Есть такие и GUI и WebUI:
Примеры GUI (они обычно в каждом дистрибутиве свои):- YaST в SUSE
- acc в Альте
- … (добавьте что есть своё в других дистрибутивах, но именно админка дистрибутива а не «Центр управления» среды рабочего стола (где можно, утрирую, обои и тему оформления сменить)
Примеры WebUI (их обычно доставлять надо):- webmin на порту 10000
- cockpit на порту 9090
- alterator (в Альте) на порту 8080
- ajenti на порту 8000
- … (добавьте если кого забыл)
- да тупо тот же zabbix можно упомянуть — не совсем админка, а мониторинг системы — но можно настроить выполнение некоторых действий по настройки системы автоматически
ZeroBot-Dot
25.08.2022 14:14+10GUI на сервере?
Не срача ради, но в повседневных задачах требуется очень маленький список команд, которые запоминаются очень быстро.
А если хочется аналога NC, то попробуйте mc.
acsent1
25.08.2022 14:25Так может же быть и текстовый UI.
в том же mc параметры настраиваются не вводом их в консоль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] тестирования накопителей на чтение и записьvGimly
25.08.2022 16:13Из текстовых редакторов неплох joe
Часто использую для обработки табличных данных из разных файлов утилитки: join, comm
(позволяют сравнивать и искать связанные строки из двух файлов удобным для автоматической обработки способом).
ZeroBot-Dot
25.08.2022 14:35+1Это то понятно, можно и браузер консольный поставить :)
Может конечно мне одному проще написать команду cp, чем запускать mc, клацать по папкам и т.д. Профессиональную деформацию никто не отменял.
LinuxCertifiedInstructor Автор
25.08.2022 14:15+8командами быстрее взаимодействовать (когда их знаешь) — сразу просто формулируешь командой запрос к системе, а не ждешь пока загрузится админка и начинаешь «общаться с системой через переводчика»
vitaly_il1
25.08.2022 16:31+5Потому что те же команды можно использовать в скриптах для различной автомации.
FlashHaos
25.08.2022 16:37+4Я тоже так думал, пока не пришлось накопить глубокую экспертизу одного софта (система бекапов HP Data Protector). Быстро оказалось, что гуи и медленнее, и показывает не то и лишнее, и не автоматизируется, и копировать текст нельзя где нужно и куча ещё «не». И без всяких советов, не будучи ни разу *nix-гиком, через четыре года я стал использовать гуи только 20% времени при решении определённых задач.
Да, был бы нормальный гуи - может все было бы по другому. Но плохой гуи исправить нельзя. А плохой кли легко корректируется скриптами и простыми баш-ухищрениями.
chv
25.08.2022 18:55+1Вы только что изобрели ОС с графическим интерфейсом пользователя?
alan008
25.08.2022 22:31+1Речь немного не об этом. Виндовые сервера прекрасно администрируются через GUI без заморочек с CLI. Вопрос почему нельзя и линуксовые сервера админить через GUI, в чем сакральность делать всё именно командами. Да, CLI даёт больше гибкости, но зачастую натыкать мышкой гораздо быстрее.
lorc
26.08.2022 00:07Сколько времени вы будете разворачивать и конфигурировать 100 серверов под windows? До завтра справитесь?
Wernisag
26.08.2022 09:52+1Про количество речи то не идет. Я один единственный экземпляр ActiveDirectory быстрее разверну через GUI, пока Вы будете гуглить команды ps.
С увеличением сложности, через CLI быстрее и проще, но один единственный сервис на 1 сервере в виндовом GUI настроить гораздо проще и легче
rajven
26.08.2022 12:59+1А сотню-другую пользователей тоже через гуи добавлять будете? А конфиг dhcp, к примеру, из гуи бэкапите? Глупые мелкомягкие зря сделали powershell - ведь из гуи проще?
Гуй заточен на выполнение строго ограниченного набора задач. Если пихать в гуй всё, что может потребоваться администратору - сложность гуя в итоге приведёт к его полной неюзабельности. Не говоря уже про проблемы автоматизирования задач. Это либо мастрячить свой крон в каждый гуй и кучу вариантов запуска в него же, либо писать второй only-cli вариант гуя и мы получаем то, от чего хотели уйти.
FlashHaos
27.08.2022 16:55Даже такая базовая операция, как разблокировка пользователя в AD, делается через dsa.msc пятью кликами, а хорошим (и простым) скриптом - одной командой (ок, одна команда и одно подтверждение, когда под критерий попадают несколько юзеров).
Когда-то я работал дежурным «инженером», и был период, когда за 12 часов смены я занимался только разблокировкой, по несколько сотен учёток за смену. Нас в смене было три-четыре человека и мы просто шлепали эти чертовы учетки. Уверен, если бы это был не продукт ms - кто-то из настоящих админов задумался бы об автоматизации или хотя бы оптимизации вопроса. А так - это же винда, можно не напрягаться.
ryzhehvost
26.08.2022 01:18Одно из важных достоинств Norton Commander'a (которым обладает Far и не обладает например Total Commander) - это налииче коммандной строки, чтобы вводить те самые команды. Потому что для тривиальных задач - да, командер удобнее и быстрее. А если в него впихнуть все нетривиальные случаи - будет слишком монструозно и неудобно. Поэтому пользуемся командером, если встретилась нетривиальная задача - тут же юзаем командную строку, и не паримся.
Ну и, командер никак не помогает от запоминания команд. Просто тут вместо команд надо запоминать горячие клавиши.sim2q
26.08.2022 05:59и не обладает например Total Commander) - это налииче коммандной строки, чтобы вводить те самые команды.
в TC есть строка внизу для ввода, только открывает в новом окне, но я не спец по TC совершенно, стоит для редких кэйсов, возможно и настраивается
BDI
26.08.2022 09:53+1cd срабатывает на активной половине(удобно менять диск, или переходить в корень, не отрывая руки от клавиатуры). А для остального проще открыть из командной строки TC cmd(откроется в активной папке, если это не сетевой путь), и вбивать команды в отдельном консольном окне.
Честно говоря не вижу смысла для TC во «встроенной» консоли по типу MC/NC, всё таки тотал это не консольное приложение — тут это просто не требуется.
entze
26.08.2022 11:56+1Скорее речь может идти про конструктор команд и параметров под сценарии.
Если сценарии типа 1 раз сделал, потом пользуешься, то курить man вроде бы правильно, но хотелось бы сэкономить время.
Еще прелесть консольных команд часто в том, что там есть функции, для которых сравнимый по функциональности GUI аналог еще и поискать надо. Да и не факт, что будет работать пакетно.
psynix
25.08.2022 14:03man man
ikle
25.08.2022 23:38man intro, скорее (если мы про Linux-based)
LinuxCertifiedInstructor Автор
26.08.2022 00:34Наверно имели в виду:
man -f introikle
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 — введение именно в первый раздел руководства со знакомством с базовыми командами.
PATRI0T
25.08.2022 15:34+2Все уже придумали до нас (http://cheat.sh)
Поэтому:
делай раз:
nano ~/.bashrchowto () { LYELLOW='\033[1;33m'; N='\033[0m' if [ $# -eq 0 ] then echo -e "${LYELLOW} А что искать то?${N}" else curl cheat.sh/$1 fi }
делай два:
bash
или перелогиниться
делай триhowto sed
LinuxCertifiedInstructor Автор
25.08.2022 15:50там (на cheat.sh) только 2/3 упомянутых команд (но на те которые есть — в статье ссылки на cheat.sh указаны) и странно что описания нет на русском (хотя автор — igor_chubin, вроде как русский можно было б добавить, а в идеале и много разных языков).
еще удобно автодополнение (например в bash так делается) прикрутить (добавив в ~/.bashrc):complete -W "$(howto :list)" howho
и на самом сайте предлагают утилиту-скрипт называть не howto, а cheat.sh — но это кому как удобнееsebres
25.08.2022 16:13Зачем дергать при каждом запуске и держать список из 12 тысяч с гаком команд (ака wordlist) для каждой сессии bash, тем более если оно нужно то бывает редко-редко.
Тогда уж лучше как-то так:
# howto () { curl -s cheat.sh/$1; } complete -C 'filter () { howto :list | grep "^$2"; }; filter' howto
LinuxCertifiedInstructor Автор
25.08.2022 20:50+1по мне правильнее раз в день или реже обновлять список по «cron'у», а в функции grep'ать из файла
Peterm123454
26.08.2022 01:18+1Думаю не лишним будет упомянуть о существующей утилите
tldr
Устанавливается через
npm install -g tldr
илиpip install tldr
(в первом случае версия будет свежее), использованиеtldr sed
Kellis
25.08.2022 15:50+1Сегодня искал команду, чтобы получить описание dll-ки от dotnet-а.
В интернете самое расхожее было через mono-utils, может есть что-то попроще и из коробки или не такой тяжелый пакет как mono-utils?
Skykharkov
25.08.2022 18:28А что вы имеете в виду под "описанием"? Version, ProductVersion, Description и т.д.?
Они далеко не всегда в сборку попадают. Устойчиво AssemblyVersion только работает. Хотя я конечно могу ошибаться...Kellis
25.08.2022 21:36+1да, вот как раз Version / AssemblyVersion, чтобы понять, что развернулось :(
avshkol
25.08.2022 18:35А нет ли такого же, но с перла... в виде таблички pandas или sql? Добавить разных колонок-признаков и ищи нужную фильтрами...
deitry
25.08.2022 19:15Упоминая штуки вроде
init
иrunlevel
можно упомянуть иservice
. Всплывает иногда в старых мануалах и, что характерно, всё ещё работаетLinuxCertifiedInstructor Автор
25.08.2022 20:47согласен, но init и runlevel засветились случайно (просто рассказывал как раз на одном из прошедших курсов немного ретроспективу про sysVinit)
garbagecollected
25.08.2022 20:52+1Нашел еще больше команд, которых не хватает для общей коллекции:
chcon
- смена контекстаxclip xsel xkill xprintidle
ack
- продвинутый grepmktemp mkfifo mkfile mklocale mknod mke2fs
uuidgen micro pwgen autogen automake autoconf autodiff autoenv autossh autojump col column command file figlet false gc gcc gpg
garbagecollected
25.08.2022 22:27+3Нашел еще несколько важных команд:
cksum
- посчитать контрольную суммуmd5sum
sha1sum
sha224sum
sha256sum
sha384sum
sha512sum
- еще хэшсуммыprintf
- форматированный вывод строки (раз ужecho
есть, то можно иprintf
)perl
- запускает перл-команду или файл скрипта (раз ужsed
есть, то можно иperl
)dc
- калькулятор в обраной польской записи (раз ужbc
есть, то можно иdc
)exec
- выполнить команду в текущем pidpatch
- раз ужdiff
есть, куда же мы безpatch
?ncdu
- продвинутыйdu
с ncurse-интерфейсомopenssl
- решает разные криптографические задачиopenvpn
- организует виртуальную локальную сетьwg
- тоже самое, что иopenvpn
, толькоwireguard
jq
- потоковая выборка (и обработка) JSON со своим языком запросовhq
- потоковая выборка HTML по селектору CSSyq
- потоковая выборка YAMLxml2
- потоковая выборка XMLperf
- бенчмарк CPU, RAM, GPU и многое другоеshfmt
- форматирование sh/bash скриптовsshfs
- монтирование ssh-сервераpotrace
- преобразование bitmap в SVGocrad
- преобразование bitmap в текстespeak
- преобразование текста в звукrhvoice
- преобразование текста в звукwait
- ждет окончание работы процессаwait4path
- ждет появления файла по путиlynis
- аудит безопасностиclamscan
- поиск вирусов
garbagecollected
25.08.2022 22:37Кстати говоря, если кто пользуется fish, набрав команду
man
, потом пробел, потом любую первую букву и двойной<tab>
, получится приблизительно такое:
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
asm0dey
26.08.2022 08:24Как же получилось что какие-то apt команды (у меня в системе таких нет, например) в статью попали, а полезные тулы типа comm - нет?
LinuxCertifiedInstructor Автор
26.08.2022 10:05потому что команды были собраны на трех последних курсах и просто так случайно сложилось что курсы были по Альт и Астре — по этому там так много apt*-утилит. Если б занялся этим справочником хоть бы год назад, туда бы попало больше команд поразнообразнее (из других дистрибутивов, ну и хотя бы больше из тем про скриптование на bash'е).
comm — уже, кстати, добавил сегодня как раз когда вы писали своё сообщение
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"
LinuxCertifiedInstructor Автор
27.08.2022 12:34… | xargs -P… — тоже позволяет распараллелить выполнение команд
4eburashk
27.08.2022 10:26$ find $(tr ':' ' ' <<<$PATH) -executable -type f -print 2>&1 | grep -v 'No such'| wc -l 2885
LinuxCertifiedInstructor Автор
27.08.2022 10:35а зачем ошибки завернули в stdout, а затем их же вроде отфильтровали
$ find $(tr ':' ' ' <<<$PATH) -executable -type f -print 2>/dev/null | wc -l
Да и что даёт эта цифра — там много команд которые не используются никогда человеком напрямую и ему не тепло ни холодно от того что он их не знает. Выуживать используемые команды из истории команд все ж кажется полезней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}''''
LinuxCertifiedInstructor Автор
27.08.2022 19:20which и type показывают путь до бинарника, а whereis — еще показывает где man и где исхожники
fzf — хорошо.
Знаю что не нужно знать команды все, и знаю про man, aporopos, man -K (поиск по всему man), но начинающие просят «Справочник» (им так спокойнее) — вот им и сделал. До сих пор правда несильно понимаю нужно ли туда strace, autoconf, gcc, checkinstall,… справочник начинает разрастаться командами которые нужны когда уже такими «справочниками» не пользуются, а читают man'ы4eburashk
27.08.2022 19:39gdb начинающим точно не надо. =))
А вот работа с текстом и сортировки sort, uniq, awk, cat, tac - точно пригодятся (не увидел в списках).
ChePeter
Что-то не вижу [
Это не скобка квадратная, это такая утилита или команда, в зависимости от реализации.
LinuxCertifiedInstructor Автор
там есть test
(в курсе "[" не попала — так как не было среди этих трех курсов курса по скриптованию, а при наборе команд в курсе администрирования похоже как-то не набралась не разу)
Сейчас добавлю (продублирую test) — добавил (стало 298 команд)