From OpenSCADAWiki
Jump to: navigation, search
(USB-від'єднувані носії)
Line 54: Line 54:
 
** ''cpuinfo'' — інформація о процесорах системи.<br/>
 
** ''cpuinfo'' — інформація о процесорах системи.<br/>
 
* '''/home/<u>user</u>/''' — домашній каталог користувача ''user''.
 
* '''/home/<u>user</u>/''' — домашній каталог користувача ''user''.
 +
 +
== Утиліти ==
 +
=== Основні користувацькі ===
 +
* ''awk'' — оперування файлами даних, вибірка і обробка тексту;
 +
* ''bg'' — оперування із багатьма завданнями у терміналі:
 +
** '''Ctrl+Z''' — переведення завдання на задній план;
 +
** {{InLineCode|fg}} — повернення із заднього плану.
 +
* ''cal'' — календар;
 +
* ''cat'', ''zcat'' — видання вказаного файлу у STDOUT;
 +
* ''cd'' — зміна теки;
 +
* ''cksum'' — підрахунок контрольної суми і кількості байтів файлу;
 +
* ''clear'' — очищення екрану терміналу;
 +
* ''cmp'' — побайтове порівняння файлів;
 +
* ''comm'' — порядкове порівняння файлів;
 +
* ''cp'' — копіювання файлів і тек;
 +
* ''cpio'' — копіювання файлів до архіву та із архіву;
 +
{{Constr|Переклад і актуалізація}}
 +
''cut''  — вырезает из входного файла столбцы, строки и фракции по разделителю;<br/>
 +
''date''  — отображает текущую дату и время;<br/>
 +
''dd''  — преобразование, создание и другие манипуляции с файлами в двоичном виде:
 +
:dd if=/dev/zero of=/swap bs=1024 count=8208  — создание пустого файла swap размером 8Мб
 +
:dd if=/dev/fd0 of=boot.img bs=18k  — создание образа из дискеты<br/>
 +
''ddrescue''  — утилита настойчивого чтения носителей содержащих ошибки;<br/>
 +
''echo''  — выполняет эхо-повтор строки на терминале;<br/>
 +
''exit''  — завершить процесс с указанным кодом возврата;<br/>
 +
''fg''  — работа с множеством задач в терминале: перевод остановленной (Ctrl+Z) задачи на передний план;<br/>
 +
''file''  — определение типа файла, содержит информацию о множестве известных файлов;<br/>
 +
''find''  — поиск:
 +
:-type  — тип выводимых файлов;
 +
:-name  — имя искомого файла;
 +
:-size  — размер искомого файла;
 +
:-atime  — доступ был в течении указанных последних дней;
 +
:-mtime  — файл модифицировался в течении указанных последних дней;
 +
:-ctime  — атрибуты файла модифицировались в течении указанных последних дней;
 +
:-perm  — режим доступа к файлу;<br/>
 +
''gpg''  — утилита шифрования и подписывания электронной подписью;<br/>
 +
''grep''  — поиск указанной строки в указанных файлах или потоках;
 +
:grep 'str' mifile.txt<br/>
 +
''gzexe''  — архивирование в исполняемый модуль, с распаковкой при запуске;<br/>
 +
''gzip''  — компрессия и декомпрессия файлов:
 +
:Опции:
 +
::-<n>  — выполнить компрессию с уровнем <n>=(1..9);
 +
::-d  — декомпрессия.
 +
:Примеры:
 +
::gzip < /dev/cdrom > cdrom.iso.gz — чтение и упаковка образа CD;<br/>
 +
''head''  — показывает заголовок/начало указанного файла;<br/>
 +
''hexdump''  — печать входного потока в указанном формате (DEC,HEX,OCT,ASCII);<br/>
 +
''history''  — показывает нумерованный список истории команд;<br/>
 +
''ipcs''  — показывает ресурсы IPC(inter process communication);<br/>
 +
''ipcrm''  — удаляет ресурсы IPC(inter process communication);<br/>
 +
''kill, skill'' — посылка сигнала процессу;<br/>
 +
''let,bc,expr''  — выполняет арифметические, логические и другие действия над числовыми значениями в переменных окружения;<br/>
 +
''ln''  — создание и обслуживание ссылок;<br/>
 +
''locate''  — поиск файла в уже созданной базе;<br/>
 +
''ls''  — листинг директории или информация про файл/директорию;<br/>
 +
''md5sum''  — подсчёт md5 суммы;<br/>
 +
''mkfifo''  — утилита создания именованных каналов;<br/>
 +
''mknod''  — утилита для создание специальных файлов;<br/>
 +
''more, less, zless''  — просмотр файла постранично;<br/>
 +
''mpage''  — печать нескольких страниц на одной;<br/>
 +
''nice,snice''  — запуск команды с указанным приоритетом (-20 — +20);<br/>
 +
''nohup''  — запуск команды с отвязкой от текущего терминала;<br/>
 +
''pidof''  — показать PID работающей программы;<br/>
 +
''pr''  — форматирование текстового файла для печати;<br/>
 +
''printenv, env''  — показывает переменные окружения;<br/>
 +
''ps''  — показывает запущенные в системе процессы;<br/>
 +
''pstree''  — показывает дерево запущенных процессов;<br/>
 +
''renice''  — изменение приоритета активного процесса (в скрипте);<br/>
 +
''rm''  — удаление файлов и директорий;<br/>
 +
''rpm''  — утилита для работа с RPM-пакетами:
 +
:-i packet  — установить пакет;
 +
:-e packet  — удалить пакет;
 +
:-U packet  — обновить пакет;
 +
:-V packet  — проверка корректности установки/текущего состояния указанного пакета;
 +
:-a  — выполнение указанной операции для всех пакетов;
 +
:-q  — запрос данных о пакете:
 +
::f  — поиск пакета, которому принадлежит указанный файл;
 +
::i  — вывод информации о пакете;
 +
::l  — список файлов, принадлежащих пакету;
 +
::s  — состояние файлов пакета;
 +
::d  — список файлов документации пакета;
 +
::c  — список конфигурационных файлов пакета;
 +
::p  — выполнить операцию над ещё неустановленным пакетом;
 +
:-b файл.spec  — частичная или полная обработка *.spec файла для сборки пакета:
 +
::a  — создание бинарного и исходного rpm пакета;
 +
::b  — создание бинарного rpm пакета;
 +
::c  — выполнение этапов: %pre и %build с распаковкой и компиляцией;
 +
::i  — выполнение этапов: %pre, %build и %install;
 +
::l  — проверка списка файлов в %files;
 +
::p  — выполняется этап %pre (распаковка архива);
 +
:--rebuild my.src.rpm  — скомпилировать и создать бинарный rpm из исходного rpm;
 +
:--recompile my.src.rpm  — скомпилировать из исходного rpm;
 +
:--test  — проверка файла спецификаций;
 +
:--clean  — удаление дерева каталогов BUILD;<br/>
 +
''screen''  — консольный экранный менеджер - позволяет открывать команды в новом окне того же терминала с возможностью переключения (Ctrl+A), временного отключения (Ctrl+A,D) и восстановления сессии (screen -r);<br/>
 +
''sed''  — потоковый редактор;<br/>
 +
''sleep''  — усыпляет данный процесс на указанное количество секунд;<br/>
 +
''slocate'' — поиск файла по ранее созданной базе (slocate bash);<br/>
 +
''sort''  — сортировка данных в файле/потоке;<br/>
 +
''split/csplit''  — разбиение/сбор больших файлов на куски;<br/>
 +
''stat''  — информация о файле/директории;<br/>
 +
''strings''  — выделение символьных сообщений из не текстового файла;<br/>
 +
''symlinks''  — утилита обслуживания символьных ссылок в системе;<br/>
 +
''tar''  — создание архивов и пакетов;
 +
:-v  — отображать список обработанных файлов;
 +
:-с  — создавать новый архив;
 +
:-x  — распаковать архив;
 +
:-f <file>  — упаковывать в указанный файл <file>;
 +
:-z  — выполнять компрессию полученного пакета с помощью gzip;
 +
:-j  — выполнять компрессию полученного пакета с помощью bzip2;
 +
:-t  — просмотр содержимого архива;<br/>
 +
''tail''  — показывает хвост указанного файла;<br/>
 +
''test''  — проверка типов файлов и сравнение значений;<br/>
 +
''tee''  — читает из стандартного входа, а затем записывает в стандартный выход и в файл;<br/>
 +
''touch''  — обновление/установка отметки времени файла или создание пустого файла, при его отсутствии;<br/>
 +
''time''  — определение времени и ресурсов выполнения команды;<br/>
 +
''tr''  — трансляция символов (преобразование/замена одних на другие);<br/>
 +
''tree''  — дерево части файловой системы;<br/>
 +
''updatedb''  — создание и обновление базы данных для команды locate;<br/>
 +
''vi, vim''  — очень мощный текстовый редактор с оригинальным управлением;<br/>
 +
''vimdiff''  — просмотр сравниваемых файлов в vim;<br/>
 +
''wc''  — подсчет количества строк, символов, слов и др. в файле;<br/>
 +
''which,whereis''  — показывает полный путь к искомой программе;
 +
 +
=== Базове адміністрування ===
 +
''adduser, useradd''  — добавление пользователей в систему;<br/>
 +
''anacron''  — периодический запуск программ без чёткой привязки ко времени, но обязательно;<br/>
 +
''apropos''  — поиск man-страницы по ключевому слову;<br/>
 +
''arch''  — архитектура текущей системы;<br/>
 +
''at, batch''  — автоматизация разовых запусков программ в указанное время;
 +
:echo 'wget url' | at 01:00 — запустить загрузку в 01:00<br/>
 +
''basename''  — выделение имени файла/директории из полного пути;<br/>
 +
''badblock''  — поиск плохих блоков на носителе (HDD, FDD);<br/>
 +
''chfn''  — изменение имени пользователя и информация о нем;<br/>
 +
''сhgrp''  — смена группы пользователей: файла, каталога ...;<br/>
 +
''chkconfig''  — конфигурация уровней загрузки различных сервисов;<br/>
 +
''chmod''  — смена режима доступа к файлу;<br/>
 +
''chown''  — смена владельца и группы владельцев файла, каталога ...;<br/>
 +
''chroot''  — смена корня текущей сессии;<br/>
 +
''chvt''  — переключение на указанный терминал;<br/>
 +
''chsh''  — смена типа командного интерпретатора;<br/>
 +
''consolechars''  — загрузка консольных экранных шрифтов;<br/>
 +
''convmv''  — перекодировка имён файлов/директорий с одной кодировки в другую (может понадобиться для перекодирования файлов на ФС: ext2, ext3, reisrfs);<br/>
 +
''cron''  — планирование периодического запуска программ;<br/>
 +
''crontab''  — формирование пользовательской конфигурации cron;<br/>
 +
''df''  — информация о файловых системах данной машины;<br/>
 +
''dirname''  — выделение имени директории из полного пути;<br/>
 +
''du''  — получение информации о размере содержимого файла или директории;<br/>
 +
''dumpkeys''  — dump карты клавиатуры;<br/>
 +
''export''  — встроенная команда BASH для определения переменной окружения и экспортирования её для общей доступности;
 +
:export EDITOR=xemacs  — определение переменной <EDITOR> значением <xemacs>;<br/>
 +
''fgconsole''  — номер текущего терминала;<br/>
 +
''finger,who''  — информация о всех пользователях системы;<br/>
 +
''free''  — информация о состоянии памяти;<br/>
 +
''fuser''  — выдает список процессов, использующих указанный файл или сокет, а также позволяет закрывать процессы занимающие ресурс;<br/>
 +
''getconf'' — запрос системных конфигурационных переменных, собранных ''glibc'' (флаг -a для получения всех переменных);<br/>
 +
''groupadd''  — добавление группы пользователей;<br/>
 +
''groupdel''  — удаление группы пользователей;<br/>
 +
''iconv''  — преобразование содержимого файла из одной кодировки в другую кодировку;<br/>
 +
''id''  — информация о пользователе;<br/>
 +
''info''  — показать документацию из страниц связанной помощи (GNU-doc);<br/>
 +
''init''  — утилита начальной загрузки;
 +
:q  — перезапуск init для активизации изменений в /etc/inittab;<br/>
 +
''loadkeys''  — установка раскладки клавиатуры;<br/>
 +
''locale''  — получение информацию о настройках локали (/etc/sysconfig/i18n);<br/>
 +
''localedef''  — создание новой локали на основе базовой;<br/>
 +
''login''  — вход в систему;<br/>
 +
''logname''  — имя текущего пользователя;<br/>
 +
''logrotate''  — утилита для автоматической упаковки, чистки и другой обработки логов;<br/>
 +
''lsof''  — печатать списка открытых в системе файлов, сокетов, каналов, разделяемых библиотек и др.;
 +
:-p <n>  — список системных ресурсов используемых <n> процессом;
 +
::<name>  — список процессов использующих ресурс <name>.<br/>
 +
''man,xman''  — показать страницу руководства;
 +
:-k <word>  — поиск страницы по ключевому слову;<br/>
 +
''mesg''  — управление доступом на запись к текущему терминалу (для посылаемых сообщений);<br/>
 +
''mpage''  — размещение нескольких страниц текста в одной и печать их на PostScript принтере;<br/>
 +
''ntpdate''  — утилита синхронизации времени через Internet(www.ntp.org);<br/>
 +
''passwd''  — смена пароля пользователя;<br/>
 +
''popd''  — извлечь директорию из стека директорий;<br/>
 +
''pushd''  — помещение текущей директории в стек директорий;<br/>
 +
''pwd''  — получение полного имени текущей директории;<br/>
 +
''rlogin''  — вход на удаленную систему;<br/>
 +
''scp''  — безопасное копирование файлов посредством ssh:
 +
:scp file.txt user1@remote_server:/ — копирование файла на удалённую систему;<br/>
 +
''service''  — утилита для операций над сервисами в /etc/rc.d/init.d;
 +
:service smb start  — запуск сервиса Samba;<br/>
 +
''set''  — выполняет операции над переменными окружения (встроенная команда BASH), часто просто устанавливает переменную окружения;<br/>
 +
''setfont''  — установка консольного шрифта;<br/>
 +
''setsid''  — запуск программы в новой сессии;<br/>
 +
''sg, newgrp''  — смена основной группы пользователя, или выполнение команды от имени указанной группы;<br/>
 +
''slogin''  — вход в систему по шифрованному протоколу ssh (тоже что и ssh);<br/>
 +
''ssh''  — вход в систему по шифрованному протоколу ssh или же удалённый запуск команд:
 +
:ssh -X user@remserver.org — шифрованный вход на удалённую систему с транспортировкой X-протокола;
 +
:ssh user@remserver.org 'wget ftp://myfile' — запуск загрузки на удалённом сервере;
 +
:ssh -L [локальный_адрес:]локальный_порт:удаленный_адрес:удаленный_порт [пользователь@]сервер -p портSSH — инициализация тунеля порта<br/>
 +
''sshfs'' — Fuse модуль для монтирования файловой системы через ssh.<br/>
 +
''stty''  — получение и установка параметров терминала, переопределение специальных клавиш;<br/>
 +
''su''  — смена пользователя текущей сессии или выполнение команды от имени указанного пользователя (по умолчанию root);
 +
:-l  — с перечитыванием конфигурационных файлов;<br/>
 +
''sudo''  — запуск отдельных программ от имени другого пользователя (нужно прописать в /etc/sudoers);<br/>
 +
''shutdown''  — выключение системы;<br/>
 +
''talk''  — двухсторонний разговор с другим пользователем;<br/>
 +
''tload''  — информация о загрузке системы;<br/>
 +
''top, htop''  — вывод информации о процессах с сортировкой по занимаемому времени;<br/>
 +
''tput''  — управление терминалом;<br/>
 +
''tset, reset''  — инициализация терминала на curses;<br/>
 +
''tty''  — имя текущего псевдотерминала;<br/>
 +
''ulimit''  — управление ограничениями пользователей.<br/>
 +
''umask''  — определяет маску прав, по которой будут создаваться новые файлы;<br/>
 +
''uname''  — печатает информацию о текущей OС;<br/>
 +
''unset''  — очистка/удаление переменных окружения (встроенная команда BASH);<br/>
 +
''uptime''  — время непрерывной работы системы;<br/>
 +
''users''  — список пользователей в системе;<br/>
 +
''userdel''  — удаление пользователей из системы;<br/>
 +
''usermod''  — изменение учетной записи пользователя;<br/>
 +
''vmstat''  — информация об использовании виртуальной памяти;<br/>
 +
''w''  — информация о том что делает текущий пользователь;<br/>
 +
''wall''  — передача широковещательного сообщения (всем пользователям системы);<br/>
 +
''watch''  — периодический запуск указанной программы;<br/>
 +
''whoami''  — сообщает имя текущего пользователя;<br/>
 +
''write''  — написать сообщение указанному пользователю;<br/>
 +
''ytalk''  — расширенная версия talk, с возможностью работы в X;
 +
 +
=== Файлова система ===
 +
''cdrecord''  — запись CD дисков;
 +
:cdrecord -v speed=2 dev=0,6,0 -data my.img<br/>
 +
''cfdisk''  — конфигурация разделов диска;<br/>
 +
''edquota''  — редактирование квот файловой системы;<br/>
 +
''fdformat''  — Форматирование дискеты;<br/>
 +
''fdisk''  — работа с разделами диска;<br/>
 +
''fsck''  — проверка файловой системы указанного типа;<br/>
 +
''fsck.<fs>''  — проверка файловой системы типа <fs>;
 +
:fsck.vfat /dev/fd0  — проверка файловой системы FAT12 на флоппи диске.<br/>
 +
''hdparm''  — установка параметров дисковой подсистемы;<br/>
 +
''loadlin.exe''  — загрузка ядра linux из ОС DOS;<br/>
 +
''losetup''  — создание петлевого устройства(loop) с криптованием;
 +
:losetup -k 192 -e aes /dev/loop4 /tmp/file.iso  — создание loop4 на file.iso с криптованием.<br/>
 +
''mkfs''  — создает FS указаного типа как на физический раздел, так и в файл;<br/>
 +
''mkfs.<fs>''  — создание FS типа <fs>;
 +
:mkfs.vfat /dev/fd0  — создание файловой системы FAT12 на флоппи диске.<br/>
 +
''mkisofs''  — создание ISO образа из каталога;
 +
:mkisofs -r -o my.iso /usr/games<br/>
 +
''mount''  — монтирование файловых систем:
 +
:Важные опции:
 +
::quiet  — позволяет копировать/переносить файлы без вопросов о невозможности смены прав доступа (для ФС типа FAT);
 +
::iocharset  — кодировка в которой производится ввод/вывод (для ФС FAT, NTFS и UDF);
 +
::codepage  — кодовая страница в которой хранится монтируемая файловая система (для ФС FAT);
 +
::showexec  — отображать корректно запускаемые файлы (для ФС FAT);
 +
::rw  — монтировать в режиме чтение-запись;
 +
::ro  — монтировать в режиме только для чтения.
 +
:Примеры:
 +
::mount -t smbfs - o username=tridge, password=foobat //c/data/test  — монтирование сетевого диска //c на каталог /data/test;
 +
::mount -t ext2 /dev/fd0 /mnt  — монтирование флоппи диска с FS ext2 на каталог /mnt;
 +
::mount [-t auto] /dev/fd0 /mnt  — монтирование флоппи диска на каталог /mnt с автоматическим определением системы;
 +
::mount host:/mnt/export /mnt/local  — монтирование директории /mnt/export удаленной машины host на локальную директорию /mnt/local;
 +
::mount -t iso9660 -o ro,loop=/dev/loop0 /my.iso /mnt/cdrom2  — создание loop устройства из образа CDROM;
 +
::mount -t cdfs /dev/cdrom /mnt/cdrom  — позволяет увидеть/отредактировать CD диск как есть (с сессиями);
 +
::mount -bind /home /var/local  — подключить каталог /home к каталогу /var/local.<br/>
 +
''parted''  — очень мощный манипулятор дисковыми разделами;<br/>
 +
''quota''  — квоты для текущего пользователя;<br/>
 +
''quotaon''  — включение квот;<br/>
 +
''quotaoff''  — выключение квот;<br/>
 +
''quotacheck''  — проверка квот файловой системы;<br/>
 +
''quotastats''  — состояние квот файловой системы;<br/>
 +
''tune2fs''  — изменение параметров смонтированной ext2/ext3;<br/>
 +
''resize2fs''  — изменение размера файловой системы ext2/ext3 на разделе (в связке с LVM);<br/>
 +
''resize_reiserfs''  — изменение размера файловой reiserfs системы на разделе (в связке с LVM);<br/>
 +
''swapoff''  — отключить свопинг;<br/>
 +
''swapon''  — включить свопинг;<br/>
 +
''sync''  — экстренный сброс буферов на диск;<br/>
 +
''umount''  — отмонтировать файловую систему;<br/>
 +
''xcdroast''  — X-оболочка для записи CD/DVD (над cdrecord и mkisofs).
 +
 +
=== XOrg — графічна підсистема ===
 +
''appres''  — информация о ресурсах X-приложений;<br/>
 +
''glxingo''  — информация о расширении GLX (OpenGL);<br/>
 +
''gnome-session''  — запуск дисплей-менеджера GNOME(GDM);<br/>
 +
''import''  — создаёт снимок X-экрана или конкретного окна;<br/>
 +
''listres''  — вывод списка X-ресурсов;<br/>
 +
''mkfontdir''  — создает раскодировщик шрифтов в текущем каталоге (из указанного каталога);
 +
:mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings<br/>
 +
''showrgb''  — наименования и значения стандартных цветов;<br/>
 +
''startkde''  — запуск оконного менеджера KDE;<br/>
 +
''startx''  — скрипт запуска X-сервера;
 +
:startx -- :2  — запуск еще одного экземпляра X, под номером 2;
 +
:startx -- -depth 24  — запуск X-сервера с глубиной цвета 24 бита;<br/>
 +
''xdpyinfo''  — информация о дисплее;<br/>
 +
''xev''  — просмотр информации о событиях в окне;<br/>
 +
''xf86config''  — конфигурация X-сервера;<br/>
 +
''xfontsel''  — выбор шрифтов для X-сервера;<br/>
 +
''xfs''  — сервер шрифтов;<br/>
 +
''xhost''  — утилита управления доступом удалённых хостов к X-серверу;<br/>
 +
''xinit''  — утилита запуска X, а затем указанного приложения (по умолчанию - xterm);
 +
:xinit /usr/bin/icewm -- :1<br/>
 +
''xkill''  — завершение оконного приложения;<br/>
 +
''xlsfonts''  — вывод списка шрифтов X-сервера;<br/>
 +
''xmag''  — увеличение части экрана;<br/>
 +
''xmodmap''  — изменение раскладки клавиатуры в X;<br/>
 +
''xosview''  — выводит основную информацию об ОС;<br/>
 +
''xprop''  — вывод реквизитов окна;<br/>
 +
''xrefresh''  — перерисовка экрана;<br/>
 +
''xset''  — утилита установки параметров X-сервера;<br/>
 +
''xsetroot''  — установка вида корневого каталога;<br/>
 +
''xvidtune''  — настройка параметров монитора (частоты кадров и строк);<br/>
 +
''xvinfo''  — информация о расширении Xv;<br/>
 +
''xwininfo''  — показать информацию об указанном окне;<br/>
 +
''xwd''  — захват изображения на экране.
 +
 +
=== Залізо ===
 +
''alsaconf''  — установка звуковой карты на подсистеме звука ALSA;<br/>
 +
''dmesg''  — протокол обнаружения оборудования ядром системы, как при загрузки, так и в процессе функционирования;<br/>
 +
''dmidecode''  — декодер информации BIOS об оборудование системы и самом BIOS;<br/>
 +
''hwclock''  — установка/считывание аппаратных часов (CMOS);<br/>
 +
''kbd_mode''  — установка режима работы клавиатуры (RAW, MEDIUMRAW, XLATE, UNICODE);<br/>
 +
''lpr''  — печать с файла или с потока на указанный принтер;
 +
:lpr -P lp1 my.txt  — печать файл my.txt на принтер lp1<br/>
 +
''lpq, lpstat''  — состояние очереди печати;<br/>
 +
''lprm''  — удаление задания печати из очереди;<br/>
 +
''lscpu'' — перечень и информация о процессорах в системе;<br/>
 +
''lshal''  — перечень оборудования обнаруженного и зарегистрированого в абстрактном слое оборудования HAL;<br/>
 +
''lshw''  — мощная утилита сбора информации об оборудовании системы;<br/>
 +
''lspci''  — выводит список устройств на PCI - шине;<br/>
 +
''lsusb''  — перечень устройств на USB-шине;<br/>
 +
''pbm*''  — преобразование, из графического формата *.pdm в формат принтера [*];<br/>
 +
''pciscan''  — сканирование PCI-шины и отображение модулей(драйверов) необходимый для работы с устройствами на PCI-шине;<br/>
 +
''setleds''  — установка светодиодов на клавиатуре;<br/>
 +
''setserial''  — установка/конфигурация COM портов;<br/>
 +
''setterm''  — установка параметров терминала;<br/>
 +
''showkey''  — утилита для отображения сканкодов клавиш и кодов мапированных системой;<br/>
 +
''statserial''  — утилита для контроля за состоянием последовательного(COM) порта;<br/>
 +
''tunelp''  — установка параметров параллельного порта;<br/>
 +
''usbview''  — утилита для просмотра и конфигурации USB-устройств.
 +
 +
=== Мультимедіа ===
 +
''alsamixer''  — ALSA-микшер;<br/>
 +
''aumix''  — консольный AUDIO-микшер;<br/>
 +
''cdparanoia''  — позволяет «грабить» Audio-CD;<br/>
 +
''lame''  — преобразование *.wav в *.mp3;<br/>
 +
''mencoder''  — перекодировка видеофайлов с одного видеоформата в другой;
 +
:mencoder dvd://1 -oac mp3lame -ovc xvid -xvidencopts bitrate=800 -o 1.avi  — перекодировка первой дорожки DVD-диска с битрейтом 800 аудио-кодеком mp3lame и видео-кодеком xvid.<br/>
 +
''oggenc''  — преобразование *.wav в *.ogg;<br/>
 +
''play''  — проигрывание звуковых файлов;<br/>
 +
''rec''  — запись в звуковой файл.
 +
 +
=== Мережа ===
 +
''arp''  — манипуляция системным ARP кешем (манипуляция аппаратными адресами);<br/>
 +
''ethereal''  — мощный анализатор трафика сети;<br/>
 +
''ettercap''  — cнифер(нюхатель) сети;<br/>
 +
''iptraf''  — мощный и удобный сканер сети;<br/>
 +
''ifconfig''  — утилита конфигурации сетевых интерфейсов (eth0, ppp0, lp0 ...);
 +
:down  — выключить интерфейс;
 +
:up  — включить интерфейс;
 +
:inet <ip>  — интерфейс с <ip> адресом;
 +
:hw ether <mac>  — установить MAC адрес интерфейса;
 +
:eth0:0  — псевдоним eth0:0 на интерфейс eth0.<br/>
 +
''iftop''  — контроль общего трафика по интерфейсам;<br/>
 +
''ip''  — основная утилита конфигурации роутинга, из IPROUTE2;
 +
:link  — физические интерфейсы;
 +
:address  — адреса и их ассоциации с физическими интерфейсами;
 +
:route  — роутинг интерфейсов.<br/>
 +
''ipchains''  — утилита конфигурации firewall на основе IP-цепочек (ядра 2.2.*);<br/>
 +
''iptables''  — утилита конфигурации firewall на основе IP-таблиц (ядра 2.4.*);<br/>
 +
''lynx'' — консольный WEB-браузер. Может использоваться для выполнения различных действий над WEB-страницами в скриптах.
 +
:lynx -dump -width=100 file://mypage.html > mypage.txt — преобразование html-страницы в текст.<br/>
 +
''minicom, xminicom''  — установка соединения с другой системой через модем(COM);<br/>
 +
''netstat''  — состояние сети (отображает используемые сокеты и их состояния);
 +
:-a  — вывод всех сокетов;
 +
:-e  — показать какой пользователь работает с сокетом в настоящий момент.<br/>
 +
''nmap,nmapfe''  — сканер сети и его GUI, можно получить перечень открытых портов и т.д;<br/>
 +
''nmblookup''  — утилита работы с NetBIOS (для SMB);
 +
:nmblookup -B Host '*'  — возвращает IP адрес <Host>;
 +
:nmblookup -d 2 '*'  — посылка широковещательных сообщений.<br/>
 +
''ping''  — проверка связи с удаленным хостом, путём посылки служебных тестовых сообщений;<br/>
 +
''route''  — утилита управление таблицей маршрутизации;
 +
:delete  — удаление указанного роутинга;
 +
:add  — добавление указанного роутинга;<br/>
 +
''rsync''  — утилита для работы с протоколом rsinc, который, в свою очередь, используется для синхронизации по сети;
 +
:rsync -va --partial --stats --delete-after -e ssh ./ devel:/incoming/backports/2.4/ — отправка пакетов в репозиторий ALTLinux Sisyphus путём синхронизации локальной директории с удалённым сервером.<br/>
 +
''smbclient''  — утилита для организации клиентских запросов к SMB-серверу;<br/>
 +
''smbprint''  — печать на SMB-принтер;<br/>
 +
''traceroute''  — проверка прохождения сетевых пакетов через сервера в сети;<br/>
 +
''tcpdump''  — дамп TCP протокола, позволяет отслеживать различные запросы;<br/>
 +
''testparm''  — проверка конфигурации файла smb.conf для SMB-сервера;<br/>
 +
''wget''  — мощная утилита для выкачивания файлов из сети по протоколам: HTTP, HTTPS, и FTP.
 +
 +
=== Пошта ===
 +
''mail, mailx''  — создать сообщение;<br/>
 +
''mailq''  — показать очередь отправляемых сообщений;<br/>
 +
''mutt,pine''  — консольный почтовый клиент;<br/>
 +
''newaliases''  — добавляет новые почтовые алиасы сервера исходящих сообщений;<br/>
 +
''procmail''  — утилита автоматизации обработки почтовых сообщений;<br/>
 +
''sendmail''  — управление сервером исходящей почты.
 +
:-q[time]  — обработать сообщения в очереди;
 +
:-v  — режим печати сопровождающих сообщений.
 +
 +
=== Ядро Linux ===
 +
''depmod''  — проверка зависимостей модулей (выполняется при добавлении новых модулей);
 +
:-a  — проверка модулей по всей структуре /lib/modules и внесение соответствующих изменений;<br/>
 +
''installkernel''  — скрипт инсталляции ядра (используется после компиляции ядра - make install);<br/>
 +
''lsmod''  — получение списка загруженных и работающих модулей;<br/>
 +
''insmod''  — подключение модуля к ядру;<br/>
 +
''modinfo''  — получение информации о модуле и его параметрах;<br/>
 +
''modprobe''  — утилита управления модулями ядра, без параметров подключает модуль к ядру;
 +
:-с  — перечисляет все сконфигурированные сокращения, опции и команды для модулей;
 +
:-l  — перечисляет все возможные модули;
 +
:-r  — выгружает модуль;<br/>
 +
''mkinitrd''  — скрипт автоматического создания загрузочного образа RAM-диска (для подключения к ядру);<br/>
 +
''powertweak''  — утилита для тонкого управления настройками ядра (через sysctl);<br/>
 +
''procinfo''  — получить информацию о процессах и системе (из /proc);<br/>
 +
''ramsize''  — конфигурация размера диска в памяти используемого образом ядра по умолчанию;<br/>
 +
''rdev''  — конфигурация корневого каталога используемого образом ядра по умолчанию;<br/>
 +
''rmmod''  — отключение модуля от ядра;<br/>
 +
''sysctl''  — конфигурация параметров (/proc/sys/) ядра во время его работы;<br/>
 +
''vidmode''  — конфигурация видеорежима используемого образом ядра по умолчанию.
 +
 +
=== Програмування ===
 +
''aclocal''  — утилита из инструментария Automake, генерирует макрос aclocal.m4 на основе файла configure.in;<br/>
 +
''ar''  — создание/редактирование архивов(статических библиотек) из объектных модулей;<br/>
 +
''autoconf''  — утилита из инструментария Autoconf, генерирует скрипт configure на основе configure.in;<br/>
 +
''automake''  — утилита из инструментария Automake, генерирует Makefile.in на основе Makefile.am;
 +
:r  — добавление новых и замена старых файлов;
 +
:c  — создание библиотеки при её отсутствии.<br/>
 +
''cpp''  — препроцессор языка C (обычно вызывается из gcc);<br/>
 +
''ctags''  — генерирует тег-файл для облегчения навигации по коду (используется редактором VIM);
 +
:-e  — эмуляция etags для генерации тег-файлов для emacs.<br/>
 +
''ctrace''  — для прослеживания выполнение C-программы по операторам;<br/>
 +
''cxref''  — анализирует группу .c-файлов и строит для каждого файла таблицу перекрестных ссылок на автоматические, статические и глобальные имена.<br/>
 +
''dialog''  — позволяет создавать диалоги в консоли, из скрипта (на основе ncurses);<br/>
 +
''diff''  — поиск изменений в сравниваемых текстовых файлах;
 +
:diff -uNr каталог.orig каталог > my.patch  — создание патча;<br/>
 +
''f2c''  — транслирует исходный код программы на языке "Fortran" в исходный код на языке "C";<br/>
 +
''gcc''  — GNU коллекция компиляторов языка С,С++,ASM (с вызовом линкера);
 +
:-x lang  — определяет язык исходных модулей;
 +
:-c  — компилирует и собирает ранее или позже перечисленные исходные файлы;
 +
:-S  — компилирует перечисленные исходные файлы в *.s файлы;
 +
:-E  — производит первичную обработку исходных файлов;
 +
:-o rez  — собрать перечисленные obj-файлы в один файл <rez>;
 +
:-L  — определяет пути поиска библиотек;
 +
:-l  — определяет перечень статических библиотек (без lib* и *.a);
 +
:-w  — запрет отображения предупреждений компилятора;
 +
:-Wall  — генерировать все возможные предупреждающие сообщения;
 +
:-pedantic  — проверка исходного текста на соответствие стандарту ANSI;
 +
:-Wl  — различные опции линковщика:
 +
::,rpath  — определяет дополнительные пути поиска динамических библиотек (-Wl,rpath,/usr/newpath);
 +
::,soname  — название разделяемой библиотеки (-Wl,-soname,libfuncs.so.1).
 +
:-fPIC  — создание объектных файлов для динамических библиотек (PIC - Position Independent Code.)
 +
:-shared  — создание динамической библиотеки (совместно с -o);
 +
:-nostdlib  — не использовать стандартные системные запускающие файлы или линкующиеся библиотеки;
 +
:-static  — принуждает использовать статические библиотеки вместо динамических;
 +
:-rdynamic  — включает возможность использования символьной информации для разрешения ссылок в динамически загружаемых библиотеках;
 +
:-M  — для каждого файла с исходным текстом препроцессор будет выдавать на стандартный вывод список зависимостей в виде правила для программы make;
 +
:-MM  — аналогичен ключу -M, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include "имя_файла";
 +
:-MD  — аналогичен ключу -M, но список зависимостей выдается не на стандартный вывод, а записывается в отдельный файл зависимостей;
 +
:-MMD  — аналогичен ключу -MD, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include "имя_файла";
 +
:-pipe  — компилятор будет работать через каналы;
 +
:-O[n]  — установить уровень оптимизации (n=0..3);
 +
:-g  — добавить отладочную информацию;
 +
:-p, -pg  — добавить в модуль код для отслеживания узких мест, после выполнения генерируется mon.out файл, который можно обработать утилитой gprof;
 +
:-masm  — использовать стандарт ассемблера (att|intel).<br/>
 +
''gdb''  — мощный консольный GNU дебагер;<br/>
 +
''indent''  — утилита форматирования исходного текста под указанные требования;<br/>
 +
''lclint''  — утилита проверки синтаксиса исходных модулей;<br/>
 +
''ldconfig''  — активизировать изменения в файле /etc/ld.so.conf;<br/>
 +
''ldd''  — показывает динамические библиотеки используемые программой;<br/>
 +
''lint''  — обнаруживает в C-программах конструкции, которые могут привести к ошибкам во время выполнения, расточительно используют ресурсы или могут снизить мобильность программ;<br/>
 +
''ltrace''  — трассировка динамических библиотек, программы указанной в параметре;<br/>
 +
''make''  — используется для организации сложных проектов из десятков файлов;
 +
:-directory  — указывает рабочую директорию;
 +
:-makefile  — указывает на используемый makefile;
 +
:-p  — вызывает вывод списка всех установок по умолчанию;
 +
:-j3  — установить количество параллельно компилирующих процессов;<br/>
 +
''memprof''  — программа для определения утечек памяти в программах и др;<br/>
 +
''mtrace''  — обработка лога созданного С-функцией mtrace;<br/>
 +
''nm''  — используется для получения различной информации из таблицы имен объектных файлов обычного формата;<br/>
 +
''objdump''  — позволяет получить много информации об объектном файле, а также дизасемблировать его;<br/>
 +
''od''  — печать дампа файла;<br/>
 +
''p2c''  — транслирует исходный код программы на языке "Pascal" в исходный код на языке "C";<br/>
 +
''patch''  — внесение изменений в файл исходя из файла изменений;
 +
:patch -p1 < ../my.patch  — внесение изменений в текущий каталог из my.patch;
 +
:patch -p1 < my.diff<br/>
 +
''prof, gprof''  — получение статистики по времени выполнения каждой функции программы, для использования этой функции, необходимо скомпилировать с ключом -p;<br/>
 +
''ranlib''  — добавление таблицы индексов библиотеки созданной ar в эту же библиотеку;<br/>
 +
''SCCS (Source Code Control System)''  — это набор утилит, предназначенных для управления версиями исходных текстов программ, в состав SCCS входят утилиты admin(1), cdc(1), comb(1), delta(1), get(1), prs(1), rmdel(1), sccsdiff(1), val(1), what(1);<br/>
 +
''sdb''  — символьный отладчик (Symbolic Debugger);<br/>
 +
''shar''  — создание самораспаковывающихся кодированных архивов для отправки по почте;<br/>
 +
''size''  — выдает количество байт, занимаемое тремя секциями (.text, .data и .bss) объектного файла обычного формата при загрузке его в память для выполнения;<br/>
 +
''strace''  — трассировка системных вызовов, осуществляемых программой указанной в параметре;<br/>
 +
''strip''  — удаляет из объектного файла обычного формата таблицу имен и информацию о номерах строк;<br/>
 +
''sum''  — расчет контрольной суммы;<br/>
 +
''Xdialog''  — позволяет создавать диалоги в X из скрипта.
  
 
== Процедури ==
 
== Процедури ==

Revision as of 21:07, 11 June 2023

At.png Перенесення, переклад та актуалізація

Contents

 [hide

1 Конфігураційні та інформаційні файли і каталоги

1.1 Загальносистемні

  • /dev/ — містить спеціальні файли пристроїв:
    • pts/ — файли пристроїв відкритих псевдотерміналів.
  • /etc/ — основний каталог конфігураційних файлів:
    • anacrontab — конфігурація завдань виконуваних anacron;
    • crontab, cron.d/ — конфігурація та тека окремих файлів конфігурації завдань планового виконання cron;
    • cron.daily/ — тека окремих файлів конфігурації завдань щоденного виконання cron;
    • cron.hourly/ — тека окремих файлів конфігурації завдань щогодинного виконання cron;
    • cron.monthly/ — тека окремих файлів конфігурації завдань щомісячного виконання cron;
    • cron.weekly/ — тека окремих файлів конфігурації завдань щотижневого виконання cron;
    • fstab — конфігурація файлових систем(ФС) автоматичного монтування при завантажені;
    • group — системні групи користувачів;
    • hostname — поточна назва машини, може перевизначатися у /etc/hosts через зворотне вирішення внутрішньої IP адреси;
    • hosts — внутрішнє-первинне вирішення іменованої мережевої адреси у IP та навпаки, може перевизначати /etc/hostname;
    • inputrc — глобальна конфігурація libreadline, зокрема тут можна вимкнути консольний сигнал-дзвінок (BEEP) за допомогою "set bell-style none";
    • issue — повідомлення видаване перед локальною реєстрацією;
    • issue.net — повідомлення видаване перед мережевою реєстрацією;
    • logrotate.conf, logrotate.d/ — конфігурація та тека окремих конфігураційних файлів демону автоматичної ротації (пакування, видалення) логів;
    • ld.so.conf — конфігурація динамічного лінкувальника поділюваних бібліотек;
    • motd — повідомлення видаване після вдалої реєстрації;
    • mtab — актуальна інформація щодо змонтованих ФС, зазвичай посилання на /proc/self/mounts;
    • nologin — наявність цього файлу забороняє користувачам входити до системи із видачею повідомлення у цьому файлі;
    • nsswitch.conf — конфігурація послідовності пошуку імен за різними джерелами, саме тут визначається первинність /etc/hosts;
    • pam.conf, pam.d/ — конфігурація та тека окремих конфігураційних файлів змінних модулів розпізнавання (PAM):
    • password — системні користувачі;
    • profile, profile.d — конфігурація та тека окремих конфігураційних файлів профілю системи для BASH, (виконується після реєстрації;
    • rc.d/, rcN.d/ — загальна тека та теки за рівнями N до системи ініціалізації-запуску init або нових замість неї, часто містить посилання на відповідні сценарії запуску у /etc/init.d;
    • init.d/ — містить сценарії керування сервісами;
    • security/ — містить файли опису безпеки системи:
      • limits.conf — конфігурація лімітів користувачів.
    • sysctl.conf — містить команди для автоматичної ініціалізації системних параметрів ядра;
    • shadow — містить закодовані паролі користувачів;
    • skel/ — шаблон каталогу користувача, вміст копіюється звідси до теки новоствореного користувача;
    • sudoers, sudoers.d — конфігурація та тека окремих конфігураційних файлів системного доступу з привілеями суперкористувача (root) за допомогою sudo.
  • /proc/ — віртуальна ФС віддзеркалення параметрів ядра:
    • sys/ — містить файли із параметрами системи, більша частина допускає модифікацію:
      • kernel/ — містить файли параметрів ядра:
        • hostname — ім'я хосту-системи;
        • osrelease — версія ядра системи;
        • ostype — тип ОС (Linux, *BSD, ...);
        • panic — ознака паніки ядра;
        • version — дата складання ядра.
      • fs/ — мітить файли параметрів ФС:
        • file-max — максимальна кількість відкривуваних файлів.
    • devices — типи пристроїв у системі;
    • modules — модулі підключені до ядра;
    • cpuinfo — інформація о процесорах системи.
  • /home/user/ — домашній каталог користувача user.

2 Утиліти

2.1 Основні користувацькі

  • awk — оперування файлами даних, вибірка і обробка тексту;
  • bg — оперування із багатьма завданнями у терміналі:
    • Ctrl+Z — переведення завдання на задній план;
    • fg — повернення із заднього плану.
  • cal — календар;
  • cat, zcat — видання вказаного файлу у STDOUT;
  • cd — зміна теки;
  • cksum — підрахунок контрольної суми і кількості байтів файлу;
  • clear — очищення екрану терміналу;
  • cmp — побайтове порівняння файлів;
  • comm — порядкове порівняння файлів;
  • cp — копіювання файлів і тек;
  • cpio — копіювання файлів до архіву та із архіву;
Constr.png Переклад і актуалізація

cut — вырезает из входного файла столбцы, строки и фракции по разделителю;
date — отображает текущую дату и время;
dd — преобразование, создание и другие манипуляции с файлами в двоичном виде:

dd if=/dev/zero of=/swap bs=1024 count=8208 — создание пустого файла swap размером 8Мб
dd if=/dev/fd0 of=boot.img bs=18k — создание образа из дискеты

ddrescue — утилита настойчивого чтения носителей содержащих ошибки;
echo — выполняет эхо-повтор строки на терминале;
exit — завершить процесс с указанным кодом возврата;
fg — работа с множеством задач в терминале: перевод остановленной (Ctrl+Z) задачи на передний план;
file — определение типа файла, содержит информацию о множестве известных файлов;
find — поиск:

-type — тип выводимых файлов;
-name — имя искомого файла;
-size — размер искомого файла;
-atime — доступ был в течении указанных последних дней;
-mtime — файл модифицировался в течении указанных последних дней;
-ctime — атрибуты файла модифицировались в течении указанных последних дней;
-perm — режим доступа к файлу;

gpg — утилита шифрования и подписывания электронной подписью;
grep — поиск указанной строки в указанных файлах или потоках;

grep 'str' mifile.txt

gzexe — архивирование в исполняемый модуль, с распаковкой при запуске;
gzip — компрессия и декомпрессия файлов:

Опции:
-<n> — выполнить компрессию с уровнем <n>=(1..9);
-d — декомпрессия.
Примеры:
gzip < /dev/cdrom > cdrom.iso.gz — чтение и упаковка образа CD;

head — показывает заголовок/начало указанного файла;
hexdump — печать входного потока в указанном формате (DEC,HEX,OCT,ASCII);
history — показывает нумерованный список истории команд;
ipcs — показывает ресурсы IPC(inter process communication);
ipcrm — удаляет ресурсы IPC(inter process communication);
kill, skill — посылка сигнала процессу;
let,bc,expr — выполняет арифметические, логические и другие действия над числовыми значениями в переменных окружения;
ln — создание и обслуживание ссылок;
locate — поиск файла в уже созданной базе;
ls — листинг директории или информация про файл/директорию;
md5sum — подсчёт md5 суммы;
mkfifo — утилита создания именованных каналов;
mknod — утилита для создание специальных файлов;
more, less, zless — просмотр файла постранично;
mpage — печать нескольких страниц на одной;
nice,snice — запуск команды с указанным приоритетом (-20 — +20);
nohup — запуск команды с отвязкой от текущего терминала;
pidof — показать PID работающей программы;
pr — форматирование текстового файла для печати;
printenv, env — показывает переменные окружения;
ps — показывает запущенные в системе процессы;
pstree — показывает дерево запущенных процессов;
renice — изменение приоритета активного процесса (в скрипте);
rm — удаление файлов и директорий;
rpm — утилита для работа с RPM-пакетами:

-i packet — установить пакет;
-e packet — удалить пакет;
-U packet — обновить пакет;
-V packet — проверка корректности установки/текущего состояния указанного пакета;
-a — выполнение указанной операции для всех пакетов;
-q — запрос данных о пакете:
f — поиск пакета, которому принадлежит указанный файл;
i — вывод информации о пакете;
l — список файлов, принадлежащих пакету;
s — состояние файлов пакета;
d — список файлов документации пакета;
c — список конфигурационных файлов пакета;
p — выполнить операцию над ещё неустановленным пакетом;
-b файл.spec — частичная или полная обработка *.spec файла для сборки пакета:
a — создание бинарного и исходного rpm пакета;
b — создание бинарного rpm пакета;
c — выполнение этапов: %pre и %build с распаковкой и компиляцией;
i — выполнение этапов: %pre, %build и %install;
l — проверка списка файлов в %files;
p — выполняется этап %pre (распаковка архива);
--rebuild my.src.rpm — скомпилировать и создать бинарный rpm из исходного rpm;
--recompile my.src.rpm — скомпилировать из исходного rpm;
--test — проверка файла спецификаций;
--clean — удаление дерева каталогов BUILD;

screen — консольный экранный менеджер - позволяет открывать команды в новом окне того же терминала с возможностью переключения (Ctrl+A), временного отключения (Ctrl+A,D) и восстановления сессии (screen -r);
sed — потоковый редактор;
sleep — усыпляет данный процесс на указанное количество секунд;
slocate — поиск файла по ранее созданной базе (slocate bash);
sort — сортировка данных в файле/потоке;
split/csplit — разбиение/сбор больших файлов на куски;
stat — информация о файле/директории;
strings — выделение символьных сообщений из не текстового файла;
symlinks — утилита обслуживания символьных ссылок в системе;
tar — создание архивов и пакетов;

-v — отображать список обработанных файлов;
-с — создавать новый архив;
-x — распаковать архив;
-f <file> — упаковывать в указанный файл <file>;
-z — выполнять компрессию полученного пакета с помощью gzip;
-j — выполнять компрессию полученного пакета с помощью bzip2;
-t — просмотр содержимого архива;

tail — показывает хвост указанного файла;
test — проверка типов файлов и сравнение значений;
tee — читает из стандартного входа, а затем записывает в стандартный выход и в файл;
touch — обновление/установка отметки времени файла или создание пустого файла, при его отсутствии;
time — определение времени и ресурсов выполнения команды;
tr — трансляция символов (преобразование/замена одних на другие);
tree — дерево части файловой системы;
updatedb — создание и обновление базы данных для команды locate;
vi, vim — очень мощный текстовый редактор с оригинальным управлением;
vimdiff — просмотр сравниваемых файлов в vim;
wc — подсчет количества строк, символов, слов и др. в файле;
which,whereis — показывает полный путь к искомой программе;

2.2 Базове адміністрування

adduser, useradd — добавление пользователей в систему;
anacron — периодический запуск программ без чёткой привязки ко времени, но обязательно;
apropos — поиск man-страницы по ключевому слову;
arch — архитектура текущей системы;
at, batch — автоматизация разовых запусков программ в указанное время;

echo 'wget url' | at 01:00 — запустить загрузку в 01:00

basename — выделение имени файла/директории из полного пути;
badblock — поиск плохих блоков на носителе (HDD, FDD);
chfn — изменение имени пользователя и информация о нем;
сhgrp — смена группы пользователей: файла, каталога ...;
chkconfig — конфигурация уровней загрузки различных сервисов;
chmod — смена режима доступа к файлу;
chown — смена владельца и группы владельцев файла, каталога ...;
chroot — смена корня текущей сессии;
chvt — переключение на указанный терминал;
chsh — смена типа командного интерпретатора;
consolechars — загрузка консольных экранных шрифтов;
convmv — перекодировка имён файлов/директорий с одной кодировки в другую (может понадобиться для перекодирования файлов на ФС: ext2, ext3, reisrfs);
cron — планирование периодического запуска программ;
crontab — формирование пользовательской конфигурации cron;
df — информация о файловых системах данной машины;
dirname — выделение имени директории из полного пути;
du — получение информации о размере содержимого файла или директории;
dumpkeys — dump карты клавиатуры;
export — встроенная команда BASH для определения переменной окружения и экспортирования её для общей доступности;

export EDITOR=xemacs — определение переменной <EDITOR> значением <xemacs>;

fgconsole — номер текущего терминала;
finger,who — информация о всех пользователях системы;
free — информация о состоянии памяти;
fuser — выдает список процессов, использующих указанный файл или сокет, а также позволяет закрывать процессы занимающие ресурс;
getconf — запрос системных конфигурационных переменных, собранных glibc (флаг -a для получения всех переменных);
groupadd — добавление группы пользователей;
groupdel — удаление группы пользователей;
iconv — преобразование содержимого файла из одной кодировки в другую кодировку;
id — информация о пользователе;
info — показать документацию из страниц связанной помощи (GNU-doc);
init — утилита начальной загрузки;

q — перезапуск init для активизации изменений в /etc/inittab;

loadkeys — установка раскладки клавиатуры;
locale — получение информацию о настройках локали (/etc/sysconfig/i18n);
localedef — создание новой локали на основе базовой;
login — вход в систему;
logname — имя текущего пользователя;
logrotate — утилита для автоматической упаковки, чистки и другой обработки логов;
lsof — печатать списка открытых в системе файлов, сокетов, каналов, разделяемых библиотек и др.;

-p <n> — список системных ресурсов используемых <n> процессом;
<name> — список процессов использующих ресурс <name>.

man,xman — показать страницу руководства;

-k <word> — поиск страницы по ключевому слову;

mesg — управление доступом на запись к текущему терминалу (для посылаемых сообщений);
mpage — размещение нескольких страниц текста в одной и печать их на PostScript принтере;
ntpdate — утилита синхронизации времени через Internet(www.ntp.org);
passwd — смена пароля пользователя;
popd — извлечь директорию из стека директорий;
pushd — помещение текущей директории в стек директорий;
pwd — получение полного имени текущей директории;
rlogin — вход на удаленную систему;
scp — безопасное копирование файлов посредством ssh:

scp file.txt user1@remote_server:/ — копирование файла на удалённую систему;

service — утилита для операций над сервисами в /etc/rc.d/init.d;

service smb start — запуск сервиса Samba;

set — выполняет операции над переменными окружения (встроенная команда BASH), часто просто устанавливает переменную окружения;
setfont — установка консольного шрифта;
setsid — запуск программы в новой сессии;
sg, newgrp — смена основной группы пользователя, или выполнение команды от имени указанной группы;
slogin — вход в систему по шифрованному протоколу ssh (тоже что и ssh);
ssh — вход в систему по шифрованному протоколу ssh или же удалённый запуск команд:

ssh -X user@remserver.org — шифрованный вход на удалённую систему с транспортировкой X-протокола;
ssh user@remserver.org 'wget ftp://myfile' — запуск загрузки на удалённом сервере;
ssh -L [локальный_адрес:]локальный_порт:удаленный_адрес:удаленный_порт [пользователь@]сервер -p портSSH — инициализация тунеля порта

sshfs — Fuse модуль для монтирования файловой системы через ssh.
stty — получение и установка параметров терминала, переопределение специальных клавиш;
su — смена пользователя текущей сессии или выполнение команды от имени указанного пользователя (по умолчанию root);

-l — с перечитыванием конфигурационных файлов;

sudo — запуск отдельных программ от имени другого пользователя (нужно прописать в /etc/sudoers);
shutdown — выключение системы;
talk — двухсторонний разговор с другим пользователем;
tload — информация о загрузке системы;
top, htop — вывод информации о процессах с сортировкой по занимаемому времени;
tput — управление терминалом;
tset, reset — инициализация терминала на curses;
tty — имя текущего псевдотерминала;
ulimit — управление ограничениями пользователей.
umask — определяет маску прав, по которой будут создаваться новые файлы;
uname — печатает информацию о текущей OС;
unset — очистка/удаление переменных окружения (встроенная команда BASH);
uptime — время непрерывной работы системы;
users — список пользователей в системе;
userdel — удаление пользователей из системы;
usermod — изменение учетной записи пользователя;
vmstat — информация об использовании виртуальной памяти;
w — информация о том что делает текущий пользователь;
wall — передача широковещательного сообщения (всем пользователям системы);
watch — периодический запуск указанной программы;
whoami — сообщает имя текущего пользователя;
write — написать сообщение указанному пользователю;
ytalk — расширенная версия talk, с возможностью работы в X;

2.3 Файлова система

cdrecord — запись CD дисков;

cdrecord -v speed=2 dev=0,6,0 -data my.img

cfdisk — конфигурация разделов диска;
edquota — редактирование квот файловой системы;
fdformat — Форматирование дискеты;
fdisk — работа с разделами диска;
fsck — проверка файловой системы указанного типа;
fsck.<fs> — проверка файловой системы типа <fs>;

fsck.vfat /dev/fd0 — проверка файловой системы FAT12 на флоппи диске.

hdparm — установка параметров дисковой подсистемы;
loadlin.exe — загрузка ядра linux из ОС DOS;
losetup — создание петлевого устройства(loop) с криптованием;

losetup -k 192 -e aes /dev/loop4 /tmp/file.iso — создание loop4 на file.iso с криптованием.

mkfs — создает FS указаного типа как на физический раздел, так и в файл;
mkfs.<fs> — создание FS типа <fs>;

mkfs.vfat /dev/fd0 — создание файловой системы FAT12 на флоппи диске.

mkisofs — создание ISO образа из каталога;

mkisofs -r -o my.iso /usr/games

mount — монтирование файловых систем:

Важные опции:
quiet — позволяет копировать/переносить файлы без вопросов о невозможности смены прав доступа (для ФС типа FAT);
iocharset — кодировка в которой производится ввод/вывод (для ФС FAT, NTFS и UDF);
codepage — кодовая страница в которой хранится монтируемая файловая система (для ФС FAT);
showexec — отображать корректно запускаемые файлы (для ФС FAT);
rw — монтировать в режиме чтение-запись;
ro — монтировать в режиме только для чтения.
Примеры:
mount -t smbfs - o username=tridge, password=foobat //c/data/test — монтирование сетевого диска //c на каталог /data/test;
mount -t ext2 /dev/fd0 /mnt — монтирование флоппи диска с FS ext2 на каталог /mnt;
mount [-t auto] /dev/fd0 /mnt — монтирование флоппи диска на каталог /mnt с автоматическим определением системы;
mount host:/mnt/export /mnt/local — монтирование директории /mnt/export удаленной машины host на локальную директорию /mnt/local;
mount -t iso9660 -o ro,loop=/dev/loop0 /my.iso /mnt/cdrom2 — создание loop устройства из образа CDROM;
mount -t cdfs /dev/cdrom /mnt/cdrom — позволяет увидеть/отредактировать CD диск как есть (с сессиями);
mount -bind /home /var/local — подключить каталог /home к каталогу /var/local.

parted — очень мощный манипулятор дисковыми разделами;
quota — квоты для текущего пользователя;
quotaon — включение квот;
quotaoff — выключение квот;
quotacheck — проверка квот файловой системы;
quotastats — состояние квот файловой системы;
tune2fs — изменение параметров смонтированной ext2/ext3;
resize2fs — изменение размера файловой системы ext2/ext3 на разделе (в связке с LVM);
resize_reiserfs — изменение размера файловой reiserfs системы на разделе (в связке с LVM);
swapoff — отключить свопинг;
swapon — включить свопинг;
sync — экстренный сброс буферов на диск;
umount — отмонтировать файловую систему;
xcdroast — X-оболочка для записи CD/DVD (над cdrecord и mkisofs).

2.4 XOrg — графічна підсистема

appres — информация о ресурсах X-приложений;
glxingo — информация о расширении GLX (OpenGL);
gnome-session — запуск дисплей-менеджера GNOME(GDM);
import — создаёт снимок X-экрана или конкретного окна;
listres — вывод списка X-ресурсов;
mkfontdir — создает раскодировщик шрифтов в текущем каталоге (из указанного каталога);

mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings

showrgb — наименования и значения стандартных цветов;
startkde — запуск оконного менеджера KDE;
startx — скрипт запуска X-сервера;

startx -- :2 — запуск еще одного экземпляра X, под номером 2;
startx -- -depth 24 — запуск X-сервера с глубиной цвета 24 бита;

xdpyinfo — информация о дисплее;
xev — просмотр информации о событиях в окне;
xf86config — конфигурация X-сервера;
xfontsel — выбор шрифтов для X-сервера;
xfs — сервер шрифтов;
xhost — утилита управления доступом удалённых хостов к X-серверу;
xinit — утилита запуска X, а затем указанного приложения (по умолчанию - xterm);

xinit /usr/bin/icewm -- :1

xkill — завершение оконного приложения;
xlsfonts — вывод списка шрифтов X-сервера;
xmag — увеличение части экрана;
xmodmap — изменение раскладки клавиатуры в X;
xosview — выводит основную информацию об ОС;
xprop — вывод реквизитов окна;
xrefresh — перерисовка экрана;
xset — утилита установки параметров X-сервера;
xsetroot — установка вида корневого каталога;
xvidtune — настройка параметров монитора (частоты кадров и строк);
xvinfo — информация о расширении Xv;
xwininfo — показать информацию об указанном окне;
xwd — захват изображения на экране.

2.5 Залізо

alsaconf — установка звуковой карты на подсистеме звука ALSA;
dmesg — протокол обнаружения оборудования ядром системы, как при загрузки, так и в процессе функционирования;
dmidecode — декодер информации BIOS об оборудование системы и самом BIOS;
hwclock — установка/считывание аппаратных часов (CMOS);
kbd_mode — установка режима работы клавиатуры (RAW, MEDIUMRAW, XLATE, UNICODE);
lpr — печать с файла или с потока на указанный принтер;

lpr -P lp1 my.txt — печать файл my.txt на принтер lp1

lpq, lpstat — состояние очереди печати;
lprm — удаление задания печати из очереди;
lscpu — перечень и информация о процессорах в системе;
lshal — перечень оборудования обнаруженного и зарегистрированого в абстрактном слое оборудования HAL;
lshw — мощная утилита сбора информации об оборудовании системы;
lspci — выводит список устройств на PCI - шине;
lsusb — перечень устройств на USB-шине;
pbm* — преобразование, из графического формата *.pdm в формат принтера [*];
pciscan — сканирование PCI-шины и отображение модулей(драйверов) необходимый для работы с устройствами на PCI-шине;
setleds — установка светодиодов на клавиатуре;
setserial — установка/конфигурация COM портов;
setterm — установка параметров терминала;
showkey — утилита для отображения сканкодов клавиш и кодов мапированных системой;
statserial — утилита для контроля за состоянием последовательного(COM) порта;
tunelp — установка параметров параллельного порта;
usbview — утилита для просмотра и конфигурации USB-устройств.

2.6 Мультимедіа

alsamixer — ALSA-микшер;
aumix — консольный AUDIO-микшер;
cdparanoia — позволяет «грабить» Audio-CD;
lame — преобразование *.wav в *.mp3;
mencoder — перекодировка видеофайлов с одного видеоформата в другой;

mencoder dvd://1 -oac mp3lame -ovc xvid -xvidencopts bitrate=800 -o 1.avi — перекодировка первой дорожки DVD-диска с битрейтом 800 аудио-кодеком mp3lame и видео-кодеком xvid.

oggenc — преобразование *.wav в *.ogg;
play — проигрывание звуковых файлов;
rec — запись в звуковой файл.

2.7 Мережа

arp — манипуляция системным ARP кешем (манипуляция аппаратными адресами);
ethereal — мощный анализатор трафика сети;
ettercap — cнифер(нюхатель) сети;
iptraf — мощный и удобный сканер сети;
ifconfig — утилита конфигурации сетевых интерфейсов (eth0, ppp0, lp0 ...);

down — выключить интерфейс;
up — включить интерфейс;
inet <ip> — интерфейс с <ip> адресом;
hw ether <mac> — установить MAC адрес интерфейса;
eth0:0 — псевдоним eth0:0 на интерфейс eth0.

iftop — контроль общего трафика по интерфейсам;
ip — основная утилита конфигурации роутинга, из IPROUTE2;

link — физические интерфейсы;
address — адреса и их ассоциации с физическими интерфейсами;
route — роутинг интерфейсов.

ipchains — утилита конфигурации firewall на основе IP-цепочек (ядра 2.2.*);
iptables — утилита конфигурации firewall на основе IP-таблиц (ядра 2.4.*);
lynx — консольный WEB-браузер. Может использоваться для выполнения различных действий над WEB-страницами в скриптах.

lynx -dump -width=100 file://mypage.html > mypage.txt — преобразование html-страницы в текст.

minicom, xminicom — установка соединения с другой системой через модем(COM);
netstat — состояние сети (отображает используемые сокеты и их состояния);

-a — вывод всех сокетов;
-e — показать какой пользователь работает с сокетом в настоящий момент.

nmap,nmapfe — сканер сети и его GUI, можно получить перечень открытых портов и т.д;
nmblookup — утилита работы с NetBIOS (для SMB);

nmblookup -B Host '*' — возвращает IP адрес <Host>;
nmblookup -d 2 '*' — посылка широковещательных сообщений.

ping — проверка связи с удаленным хостом, путём посылки служебных тестовых сообщений;
route — утилита управление таблицей маршрутизации;

delete — удаление указанного роутинга;
add — добавление указанного роутинга;

rsync — утилита для работы с протоколом rsinc, который, в свою очередь, используется для синхронизации по сети;

rsync -va --partial --stats --delete-after -e ssh ./ devel:/incoming/backports/2.4/ — отправка пакетов в репозиторий ALTLinux Sisyphus путём синхронизации локальной директории с удалённым сервером.

smbclient — утилита для организации клиентских запросов к SMB-серверу;
smbprint — печать на SMB-принтер;
traceroute — проверка прохождения сетевых пакетов через сервера в сети;
tcpdump — дамп TCP протокола, позволяет отслеживать различные запросы;
testparm — проверка конфигурации файла smb.conf для SMB-сервера;
wget — мощная утилита для выкачивания файлов из сети по протоколам: HTTP, HTTPS, и FTP.

2.8 Пошта

mail, mailx — создать сообщение;
mailq — показать очередь отправляемых сообщений;
mutt,pine — консольный почтовый клиент;
newaliases — добавляет новые почтовые алиасы сервера исходящих сообщений;
procmail — утилита автоматизации обработки почтовых сообщений;
sendmail — управление сервером исходящей почты.

-q[time] — обработать сообщения в очереди;
-v — режим печати сопровождающих сообщений.

2.9 Ядро Linux

depmod — проверка зависимостей модулей (выполняется при добавлении новых модулей);

-a — проверка модулей по всей структуре /lib/modules и внесение соответствующих изменений;

installkernel — скрипт инсталляции ядра (используется после компиляции ядра - make install);
lsmod — получение списка загруженных и работающих модулей;
insmod — подключение модуля к ядру;
modinfo — получение информации о модуле и его параметрах;
modprobe — утилита управления модулями ядра, без параметров подключает модуль к ядру;

-с — перечисляет все сконфигурированные сокращения, опции и команды для модулей;
-l — перечисляет все возможные модули;
-r — выгружает модуль;

mkinitrd — скрипт автоматического создания загрузочного образа RAM-диска (для подключения к ядру);
powertweak — утилита для тонкого управления настройками ядра (через sysctl);
procinfo — получить информацию о процессах и системе (из /proc);
ramsize — конфигурация размера диска в памяти используемого образом ядра по умолчанию;
rdev — конфигурация корневого каталога используемого образом ядра по умолчанию;
rmmod — отключение модуля от ядра;
sysctl — конфигурация параметров (/proc/sys/) ядра во время его работы;
vidmode — конфигурация видеорежима используемого образом ядра по умолчанию.

2.10 Програмування

aclocal — утилита из инструментария Automake, генерирует макрос aclocal.m4 на основе файла configure.in;
ar — создание/редактирование архивов(статических библиотек) из объектных модулей;
autoconf — утилита из инструментария Autoconf, генерирует скрипт configure на основе configure.in;
automake — утилита из инструментария Automake, генерирует Makefile.in на основе Makefile.am;

r — добавление новых и замена старых файлов;
c — создание библиотеки при её отсутствии.

cpp — препроцессор языка C (обычно вызывается из gcc);
ctags — генерирует тег-файл для облегчения навигации по коду (используется редактором VIM);

-e — эмуляция etags для генерации тег-файлов для emacs.

ctrace — для прослеживания выполнение C-программы по операторам;
cxref — анализирует группу .c-файлов и строит для каждого файла таблицу перекрестных ссылок на автоматические, статические и глобальные имена.
dialog — позволяет создавать диалоги в консоли, из скрипта (на основе ncurses);
diff — поиск изменений в сравниваемых текстовых файлах;

diff -uNr каталог.orig каталог > my.patch — создание патча;

f2c — транслирует исходный код программы на языке "Fortran" в исходный код на языке "C";
gcc — GNU коллекция компиляторов языка С,С++,ASM (с вызовом линкера);

-x lang — определяет язык исходных модулей;
-c — компилирует и собирает ранее или позже перечисленные исходные файлы;
-S — компилирует перечисленные исходные файлы в *.s файлы;
-E — производит первичную обработку исходных файлов;
-o rez — собрать перечисленные obj-файлы в один файл <rez>;
-L — определяет пути поиска библиотек;
-l — определяет перечень статических библиотек (без lib* и *.a);
-w — запрет отображения предупреждений компилятора;
-Wall — генерировать все возможные предупреждающие сообщения;
-pedantic — проверка исходного текста на соответствие стандарту ANSI;
-Wl — различные опции линковщика:
,rpath — определяет дополнительные пути поиска динамических библиотек (-Wl,rpath,/usr/newpath);
,soname — название разделяемой библиотеки (-Wl,-soname,libfuncs.so.1).
-fPIC — создание объектных файлов для динамических библиотек (PIC - Position Independent Code.)
-shared — создание динамической библиотеки (совместно с -o);
-nostdlib — не использовать стандартные системные запускающие файлы или линкующиеся библиотеки;
-static — принуждает использовать статические библиотеки вместо динамических;
-rdynamic — включает возможность использования символьной информации для разрешения ссылок в динамически загружаемых библиотеках;
-M — для каждого файла с исходным текстом препроцессор будет выдавать на стандартный вывод список зависимостей в виде правила для программы make;
-MM — аналогичен ключу -M, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include "имя_файла";
-MD — аналогичен ключу -M, но список зависимостей выдается не на стандартный вывод, а записывается в отдельный файл зависимостей;
-MMD — аналогичен ключу -MD, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include "имя_файла";
-pipe — компилятор будет работать через каналы;
-O[n] — установить уровень оптимизации (n=0..3);
-g — добавить отладочную информацию;
-p, -pg — добавить в модуль код для отслеживания узких мест, после выполнения генерируется mon.out файл, который можно обработать утилитой gprof;
-masm — использовать стандарт ассемблера (att|intel).

gdb — мощный консольный GNU дебагер;
indent — утилита форматирования исходного текста под указанные требования;
lclint — утилита проверки синтаксиса исходных модулей;
ldconfig — активизировать изменения в файле /etc/ld.so.conf;
ldd — показывает динамические библиотеки используемые программой;
lint — обнаруживает в C-программах конструкции, которые могут привести к ошибкам во время выполнения, расточительно используют ресурсы или могут снизить мобильность программ;
ltrace — трассировка динамических библиотек, программы указанной в параметре;
make — используется для организации сложных проектов из десятков файлов;

-directory — указывает рабочую директорию;
-makefile — указывает на используемый makefile;
-p — вызывает вывод списка всех установок по умолчанию;
-j3 — установить количество параллельно компилирующих процессов;

memprof — программа для определения утечек памяти в программах и др;
mtrace — обработка лога созданного С-функцией mtrace;
nm — используется для получения различной информации из таблицы имен объектных файлов обычного формата;
objdump — позволяет получить много информации об объектном файле, а также дизасемблировать его;
od — печать дампа файла;
p2c — транслирует исходный код программы на языке "Pascal" в исходный код на языке "C";
patch — внесение изменений в файл исходя из файла изменений;

patch -p1 < ../my.patch — внесение изменений в текущий каталог из my.patch;
patch -p1 < my.diff

prof, gprof — получение статистики по времени выполнения каждой функции программы, для использования этой функции, необходимо скомпилировать с ключом -p;
ranlib — добавление таблицы индексов библиотеки созданной ar в эту же библиотеку;
SCCS (Source Code Control System) — это набор утилит, предназначенных для управления версиями исходных текстов программ, в состав SCCS входят утилиты admin(1), cdc(1), comb(1), delta(1), get(1), prs(1), rmdel(1), sccsdiff(1), val(1), what(1);
sdb — символьный отладчик (Symbolic Debugger);
shar — создание самораспаковывающихся кодированных архивов для отправки по почте;
size — выдает количество байт, занимаемое тремя секциями (.text, .data и .bss) объектного файла обычного формата при загрузке его в память для выполнения;
strace — трассировка системных вызовов, осуществляемых программой указанной в параметре;
strip — удаляет из объектного файла обычного формата таблицу имен и информацию о номерах строк;
sum — расчет контрольной суммы;
Xdialog — позволяет создавать диалоги в X из скрипта.

3 Процедури

3.1 USB-від'єднувані носії

Відмінність стаціонарних носіїв від від'єднуваних, звісно окрім можливості знімати на ходу, є такий параметр, як апаратний розмір блоку, тобто ділянка диску, що атомарно читається/записується. Для жорстких дисків розмір блоку зазвичай складає 512 байт, а для флеш-дисків 4096, як і для деяких великих жорстких дисків. Відповідно і більшість Файлових Систем (ФС) форматуються історично у розмір логічного блоку 512 байт. І якщо для жорстких дисків це природно, тобто не відбувається падіння швидкості ані читання, ані запису, то для флеш-дисків це буває дуже помітно, особливо у режимі синхронного запису.

Синхронний запис передбачає запис ділянки ФС на носій одразу, оминаючи дисковий кеш. І якщо для стаціонарних носіїв такий режим зайвий, оскільки немає потреби контролювати завершення запису, то для від'єднуваних цей режим є основним, бо дозволяє контролювати реальний стан запису і оцінювати час його завершення. Синхронний режим у середовищі Linux як правило вимкнений (у Linux Автоматизації увімкнено), створюючи невизначені ситуації при записі великих файлів на від'єднувані носії, а саме — створюється ілюзія швидкого запису через запис у кеш, а при демонтуванні-від'єднані носія відбувається втрата зв'язку за вичерпанням часу очікування із сервісом контролю підключення, який саме скидає кеш на носій, після чого дізнатися про можливість безпечного вилучення носія можна лише за дисковою активністю, інформація про що на екрані як правило відсутня. Тому увімкнення синхронного режиму запису є доцільним та із оптимізацією ФС, оскільки за типового розміру логічного блоку у 512 байт отримаємо падіння швидкості запису в чотири рази, а реально більше через синхронний-же запис службової інформації ФС, що наведено у наступній порівняльній таблиці:

Операція Читання, MB/s Запис, MB/s
Прямо блоком 512 78.3 11.9
Прямо блоком 4096 78.1 49.3
ФС FAT32 із сектором 512 81.8 6.1
ФС FAT32 із сектором 4096 81.8 9.2
ФС Ext4 із блоком 4096 78.8 12
ФС UDF із блоком 512 78.8 0.3

3.1.1 Форматування USB-Флеш у FAT32 із розміром сектору 4096

mkfs.vfat -F32 -S4096 -f1 /dev/sdX1

3.1.2 Форматування USB-Флеш у EXT4 із загальним доступом

Хоча ФС EXT4 і не призначалася для використання з від'єднуваними носіями та незручна тут через наявність прав, але часто вона все-ж зручніша та й права можна розширити; оскільки інші варіанти є обмеженими, як то VFAT, або все ще закриті, як то exFAT, або повільні через малий розмір сектору (512), як то UDF. Для створення на USB-Флеш ФС EXT4, що задовольнила-б зазначеним умовам необхідно у терміналі виконати:

mkfs.ext4 -b 4096 /dev/sdX1
tune2fs -m0 -o acl /dev/sdX1
mount /dev/sdX1 /mnt
chown {username}: /mnt
chmod 777 /mnt
setfacl -m d:u::rwx,d:g::rwx,d:o::rwx /mnt
umount /mnt

3.1.3 Форматування USB-Флеш в UDF

Unified Disk Format первинно розроблено для оптичних дисків із функцією довільного запису, вона підтримує великі файли і яку пізніше адаптовано для жорстких дисків. Але ця ФС записується на диск цілком, не містить інструментарію виправлення і втрата даних на ній є типовим явищем. Окрім того, вона коректно визначається лише для розміру блоку у 512 байт, відтак ДУЖЕ повільно пишеться.

dd if=/dev/zero of=/dev/sdX bs=1M count=1
mkudffs -b 512 --media-type=hd /dev/sdX

3.2 Використання OpenSSL

openssl rand 5  #Генерація послідовності випадкових байтів
openssl ciphers HIGH  #Запит переліку алгоритмів для вказаного рівня
# Генерація секретного RSA та DSA ключа key.pem, зашифрованого des3
# У якості джерела випадкових даних використовується /var/log/messages
openssl genrsa -out key.pem -des3 -rand /var/log/messages 2048
openssl dsaparam -rand /var/log/messages -out dsaprm 1024
openssl gendsa -out key.pem -idea -rand /var/log/messages dsaprm
# Створення публічного RSA т DSA ключа на основі секретного
openssl rsa -in key.pem -out pubkey.pem -pubout
openssl dsa -in key.pem -out pubkey.pem -pubout
# Зміна паролю та алгоритму шифрування секретного RSA та DSA ключа, видалення паролю та шифрування
openssl rsa -in key.pem -out key1.pem -idea
openssl dsa -in key.pem -out key1.pem -des3
openssl rsa -in key.pem -out key1.pem
# Симетричне шифрування файлу алгоритмом des3 та кодування base64
openssl des3 -in logo.png -out logo.des3
openssl base64 -in logo.des3 -out logo.des3.base64
openssl des3 -a -in logo.png -out logo.des3.base64
# Декодування файлу із base64 та симетричне дешифрування із des3
openssl base64 -d -in logo.des3.base64 -out logo.des3
openssl des3 -d -in logo.des3 -out logo.png
openssl des3 -d -a -in logo.des3.base64 -out logo.png
# Конвертація асиметричних ключів та сертифікатів із формату PEM у DER та назад
openssl x509 -inform PEM -in key.pem -outform DER -out key.cer
openssl rsa -inform PEM -in key.pem -outform DER -out key.der
# Вирахування хешу (md5,sha1 ...)
openssl md5 -c ./logo.png
# Підпис файлу секретним ключем та перевірка ЕЦП публічним ключем, з алгоритмом хешування md5
openssl dgst -sign key.pem -out logo.sign -md5 logo.png
openssl dgst -signature logo.sign -verify pubkey.pem -md5 logo.png
# Асиметричне шифрування файлу із використанням публічного ключа та дешифрування секретним (RSA)
openssl rsautl -in logo.png -out logo.cr -inkey pubkey.pem -pubin -encrypt
openssl rsautl -in logo.cr -out logo.png -inkey key.pem -decrypt
# Створення запиту на сертифікацію (підпис центром сертифікації) на основі створюваного секретного ключа, а потім сертифікату
openssl req -new -key tmp.key -out certreq.csr
openssl x509 -req -in certreq.csr -signkey tmp.key -out cert.pem -days 365
# Створення сертифікату підписаного власним секретним ключем (самопідписаний) та разом із ключем
openssl req -x509 -new -key key.pem -out selfcert.pem -days 365
openssl req -x509 -new -keyout cakey.pem -out cacert.pem -days 365
# Перегляд інформації сертифікату у читабельному вигляді
openssl x509 -in selfcert.pem -noout -text
# Підписування клієнтського сертифікату CA сертифікатом
openssl x509 -req -in client.pem -CA CAcert.pem -CAkey CAkey.pem -CAcreateserial -days 365 -out client1.pem

3.3 Налаштування ssh

#Генерація асиметричного ключа на КЛІЄНТІ у теку "~/.ssh/"
ssh-keygen

#Передавання публічного ключа на віддалений сервер
# МЕТОД 1 — окремо передавання на сервер та окремо реєстрація-авторизація там
scp ~/.ssh/identity.pub {rserver}:~/.ssh/  #КЛІЄНТ: копіювання із клієнту на сервер {rserver}
cat ~/.ssh/identity.pub >> ~/.ssh/authorized_keys  #СЕРВЕР: авторизація власного відкритого ключа на сервері
# МЕТОД 2 — однією командою на КЛІЄНТІ до серверу {rserver}
ssh-copy-id {rserver}

#Підключення до віддаленого серверу {rserver} із КЛІЄНТУ
ssh {rserver}

3.4 Створення, використання та обслуговування програмного RAID — ДЗЕРКАЛА

# Запит стану пристроїв дзеркала
cat /proc/mdstat
# Запит інформації/стану пристрою масиву або розділу
mdadm -Q /dev/sdb1
# Аналіз та отримання поточних пристроїв RAID, зазвичай для /etc/mdadm/mdadm.conf
mdadm --examine --scan
# Створення масиву, "missing" для недоступних розділів на цьому етапі
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 [/dev/sdb1|missing]
# Додання розділу до масиву
mdadm /dev/md0 --add /dev/sdb1
# Зупинка масиву
mdadm -S /dev/md0
# Встановлення ознаки "FAIL" для можливості відключення
mdadm --manage /dev/md0 --fail /dev/sdb1
# Видалення розділу із масиву, на профілактику
mdadm --manage /dev/md0 --remove /dev/sdb1
# Додання розділу до масиву, після заміни
mdadm --manage /dev/md0 --add /dev/sdb1

3.5 Адміністрування віртуальних серверів (VPS) на основі технології OpenVZ

#Створення VPS із шаблону
vzctl create 101 --ostemplate altlinux-4.0 --config vps.basic
#Видалення VPS
vzctl destroy 101
#Отримання переліку всіх VPS
vzlist -a
#Встановлення назви VPS
vzctl set 101 --name vps101 --save
#Встановлення загальних параметрів VPS: onboot, hostname, nameserver, searchdomain, userpassword
vzctl set 101 --onboot yes --save
vzctl set 101 --hostname test101.my.org --save
vzctl set 101 --nameserver 192.168.1.165 --save
vzctl set 101 --searchdomain my.org --save
vzctl set 101 --userpasswd root:test
#Конфігурація venet
vzctl set 101 --ipadd 10.10.186.1 --save
#Конфігурація veth
vzctl set 101 --netif_add eth0 --save
#Запуск та зупинка VPS
vzctl start 101
vzctl stop 101
#Виконання команди всередині VPS ("ls /root")
vzctl exec 101 ls /root
#Адміністративний вхід до VPS
vzctl enter 101
#Встановлення можливостей VPS
vzctl set 101 --capability sys_time:on --save  # можливість зміни системного часу
#Перегляд обмежень VPS та їх порушень
$ vzctl exec 101 cat /proc/user_beancounters
#Встановлення обмежень VPS (kmemsize, lockedpages, privvmpages ...)
$ vzctl set 1 --dgramrcvbuf 1512000:1520000 --save
#Встановлення доступу до пристроїв (/dev)
$ vzctl set 101 --devnodes ttyS0:rw --save
$ vzctl set 101 --devices b:8:16:rw --devices b:8:17:rw --devices b:8:18:rw --save

3.6 Система контролю версій CVS

# Вказання на каталог де знаходиться репозиторій CVS
export CVSROOT=/home/Roman/progects/CVS_R
# Вказання на віддалений репозиторій
export CVSROOT=:pserver:user@serv.comp.org:/CVS_R
# Створення порожнього репозиторію
cvs -d /usr/local/cvsroot init
# Створення порожнього репозиторію на віддаленому сервері
cvs -d:pserver:user@serv.comp.org:/usr/local/cvsroot init
# Імпорт проєкту MyProg від ім'я творця MyName у CVS
cvs import MyProg MyName start
# Експорт проєкту tc для зайняття ним, у результаті чого буде створено каталог "tc" до якого буде розміщено всі файли
cvs -z 3 co tc
# Завантаження дерева проєкту за ревізією(тегом) <revise>
cvs co -r revise Prog
# Синхронізація вхідних текстів з усіма змінами, виконувати перед фіксацією своїх змін
cvs up
# Приведення вмісту дерева у відповідності до ревізії <revise>
cvs up -r revise
# Фіксація змін у backend.c та запуск редактору (ENV: CVSEDITOR) щоб ввести журнальний запис про зміни
cvs ci backend.c -r revise
# Фіксація змін у дереві під ревізією <revise> для цілого дерева
cvs ci -r revise
# Приведення вершини дерева до <revise>
cvs tag revise
# Видалення вашої копії проєкту та перевірка при цьому щодо фіксації всіх ваших змін
cvs release -d tc
# Виведення журналу змін щодо файлу file.cc
cvs log file.cc
# Виведення опису змін внесених зо файлу driver.c
cvs diff driver.c
# Внесення файлу readmi.cc під контроль CVS
cvs add readmi.cc
# Сповіщення CVS про необхідність видалення файлу readmi.cc із репозиторію з наступною командою <ci>
cvs rm readmi.cc

3.7 Система контролю версій Subversion (SVN)

# Отримання вмісту гілки репозиторію
svn list svn://rep.org/trunk
# Завантаження локальної копії репозиторію
svn checkout svn://rep.org/trunk/project
# Отримання стану модифікації локальної копії репозиторію
svn status
# Отримання змін у вигляді латки
svn diff
# Додання файлу або каталогу до репозиторію
svn add ./new.file
# Видалення файлу або каталогу із репозиторію
svn delete ./rem.file
# Прийняття локальних змін та відправлення їх на сервер
svn commit -m "Changes message"
EDITOR=vim svn ci  # або із введенням журналу змін у редакторі
# Вирішення конфліктів — зняття ознаки конфлікту
svn resolve /project/innerfolder
# Копіювання ділянки репозиторію включно із локальними, а також створення нової гілки або тегу
svn copy svn://rep.org/trunk/project svn://rep.org/branch/project_user
# Об'єднання змін гілки вказаної ревізії із локальною копією іншої гілки
svn merge -c 1222 svn://rep.org/trunk/project
# Перегляд історії репозиторію
svn log

3.8 Система контролю версій GIT

# Ініціалізація поточного каталогу як новий порожній репозиторій
git init
# Додання віддаленого репозиторію для завантаження локальної копії
git remote add origin user1@gitserver:/home/repo/alpha.git
# Завантаження локальної копії репозиторію
git clone git://git.server.org/rep.git
# Додання змін, нових файлів та видалення старих
git add .
# Отримання стану репозиторію
git status
# Перегляд внесених змін
git diff --cached
# Прийняття локальних змін — перетворення тимчасового стану індексу у постійний
git commit -am "Changes message"
# Формування GIT-латки прийнятих локальних змін
git format-patch -1
# Вивантаження локальних змін
git push
# Додання тегу
git tag -sm "Tag 0.1.0 message" tag-name-0.1.0
# Вивантаження локальних тегів
git push origin --tags
# Отримання переліку всіх гілок
git branch
# Створення нової гілки
git branch experimental
# Видалення гілки
git branch -d experimental
# Перемикання на іншу гілку
git checkout experimental
# Об'єднання змін у гілці experimental із поточною гілкою локального репозиторію
git merge experimental
# Отримання змін із іншого репозиторію та об'єднання їх із поточним
git pull git://git.server.org/rep.git
# або
git fetch git://git.server.org/rep.git
git merge git://git.server.org/rep.git
# Перегляд історії репозиторію
git log

3.9 Приготування та компіляція проєктів на основі AutoTools

gettextize -f -c  #генерація локалізаційних файлів
autoheader  #генерація файлу
autoscan    #автоматична генерація cofigure.scan та перевірка configure.in
ifnames     #створення переліку ідентифікаторів використовуваних препроцесором

# Генерація/перегенерація складальної системи
aclocal -I -m4  #генерація макросу aclocal.m4
autoconf      #генерація сценарію configure
autoreconf -if  #перегенерація сценарію configure
automake -a -c  #генерація файлу Makefile.in
configure     #генерація Makefile
make          #компіляція проєкту
make install  #встановлення програми

4 Формати основних конфігураційних файлів та сценарії-скрипти

4.1 BASH

  • ls -A /home/${USER} — команда ls із аргументами для виконання безпосередньо у цій оболонці;
  • (ls -A /home/${USER}) — виконання команди ls у іншій підоболонці;
  • . /usr/local/bin/my.sh — виконання команд сценарію із файлу "/usr/local/bin/my.sh";
  • ls -A /home/${USER} & — виконання команди ls у фоні, тобто оболонка виклику одразу звільняється;
  • ls -A /home/${USER} > /var/log/my.log — виконання команди ls із переспрямуванням її виводу до файлу "/var/log/my.log" — усі варіанти переспрямування;
  • !2005 , !ls — виконання рядка 2005 та найближчого рядка що містить "ls" із історії (history);
  • var=My User ${USER} — визначення змінної var у необхідне значення;
  • var=(zero one two three) — визначення змінної var масивом із послідовним його заповненням чотирма елементами;
  • var=([0]=zero [3]=three [2]=two [1]=one) — визначення змінної var масивом із довільним його заповненням чотирма елементами;
  • var[2]=val — визначення змінної var масивом із призначенням елементу 2 значення "val".

4.1.1 Основні елементи граматики команд та визначень

  • команда-визначення; команда-визначення' — розділювач (";");
  • команда && команда' — умовний розділювач ("&&"), який передбачає виконання команди після за умови результату першої ВДАЛА(TRUE)-НЕПОМИЛКА;
  • команда || команда — умовний розділювач ("||"), який передбачає виконання команди після за умови результату першої НЕВДАЛА(FALSE)-ПОМИЛКА;
  • \ — екранування спеціального символу після даного ("\$"), часто використовується у кінці рядка для екранування символу переведення рядка чим продовжуючи рядок на наступному;
  • /home/${USER}, 314 — рядок символів із завершенням на пробілі або табуляції, якщо команда або визначення не вважає початково усе рядком до його переведення; де цілі числа це просто символи до моменту потрапляння у середовище їх обчислення згідно до формату;
  • "рядок символів зі вставками ${USER} та екрануванням \$";
  • 'рядок-літерал символів із забороною підставлення значень змінних та екранування';
  • $'рядок-літерал символів лише із\nзабороною підставлення значень змінних';
  • $var, ${var} — підставлення значення змінної var, форма у дужках застосовується якщо назва змінної складна та зі спеціальними символами; де var також може бути спеціальною змінною, змінною оточення (зовнішня) та щодо якої доступно інші форми підстановки;
  • `ls -1 /home/${USER}`, $(ls -1 /home/${USER}) — виконання команди у виразі із поверненням результату;
  • [ -d /home/${USER}/.config ] — тестові-умовні операції із синтаксисом команди test;
  • $[100/3], $((100/3)) — виконання простих цілочисельних операцій.

Приклади

ls -A /home/${USER}; echo "Very Basic\
 \"long string\"" + 'just string literal';

(ls -A /home/${USER})

x=3.14; y="String"; z='Literal'

echo `ls -1 /home/${USER}` $(ls -1 ${PWD})

ls -1A /home/${USER} | grep .config &> /dev/null && echo OK

[ -d /home/${USER}/.config ] && echo OK

a=4; echo $[a=$a+4] $[a+=4] $[a=a+4]
a=4; echo $[a=$a+4, a+=4, a=a+4]

4.1.2 Службові змінні

  • $# — кількість фактичних аргументів;
  • $- — прапорці (однобуквені), вказані при запуску оболонки або встановлені посередництвом set;
  • $? — код повернення останньої команди;
  • $$, $PPID — ідентифікатор поточного процесу-сценарію (PID);
  • $! — ідентифікатор останнього фонового процесу-сценарію (PID);
  • $* — всі аргументи одним рядком зі змішуванням із підрядками ("під рядок");
  • $@ — всі аргументи окремими рядками;
  • $n, ${n} — аргумент n від 1, де 0 — назва команди.

4.1.3 Підстановки

  • ${array[@]} — звернення одразу до всього масиву array;
  • ${var-default}, ${var=default} — до змінної var підставляється значення default за умови якщо вона невизначена;
  • ${var:-default}, ${var:=default} — до змінної var підставляється значення default за умови якщо вона невизначена або нульова;
  • ${var+alt_val} — до змінної var підставляється альтернативне значення alt_val за умови якщо вона визначена;
  • ${var:+alt_val} — до змінної var підставляється альтернативне значення alt_val за умови якщо вона визначена та непорожня;
  • ${var?error} — сповістити про помилку error та завершити сценарій якщо змінна var невизначена;
  • ${var:?error} — сповістити про помилку error та завершити сценарій якщо змінна var невизначена або нульова;
  • ${#var} — повертає довжину, кількість символів, у змінній var, де передбачено спеціальні форми:
    • ${#*}, ${#@} — кількість аргументів сценарію-функції;
    • ${#array[*]}, ${#array[@]} — кількість елементів у масиві array;
  • ${var:offset:lenght}, ${var:offset} — повертає частину-підрядок від var починаючи із offset та довжиною lenght, де передбачено спеціальні форми та значення:
    • арифметичні вирази у offset та lenght;
    • негативні числа у offset та lenght — відраховується від кінця;
    • ${@:offset:lenght} — аргументи починаючи із offset та кількістю lenght;
    • ${array[@]:offset:lenght}, ${array[*]:offset:lenght} — елементи масиву починаючи із offset та кількістю lenght;
  • ${var#pattern}, ${var##pattern} — видалення зі змінної var найкоротшої та найдовшої частини від початку за шаблоном pattern;
  • ${var%pattern}, ${var%%pattern} — видалення зі змінної var найкоротшої та найдовшої частини від кінця за шаблоном pattern;
  • ${var/pattern/replacement}, ${var//pattern/replacement} — заміна у змінній var одної ділянки або всіх ділянок згідно шаблону шаблоном pattern на значення replacement, або видалення якщо відсутня заміна;
  • ${var/#pattern/replacement} — заміна у змінній var префіксу згідно шаблону шаблоном pattern на значення replacement, або видалення якщо відсутня заміна;
  • ${var/%pattern/replacement} — заміна у змінній var суфіксу згідно шаблону шаблоном pattern на значення replacement, або видалення якщо відсутня заміна;
  • ${!varpref*}, ${!varpref@} — підстановка значень змінних префікс яких відповідає varpref.

4.1.4 Змінні оточення та оболонки

  • PWD — поточний робочий каталог;
  • UID — унікальний ідентифікатор поточного користувача;
  • BASH — повний шлях виклику BASH;
  • BASH_VERSION — версія даного BASH
  • EDITOR — назва текстового редактору використовуваного деякими програмами;
  • SHLVL — рівень вкладення запуску BASH;
  • RANDOM — випадкове число [0...32767];
  • SECONDS — час у секундах від запуску сценарію;
  • HISTCMD — номер поточної команди в історії;
  • PATH — шляхи пошуку команд;
  • HOME — домашня тека поточного користувача;
  • MAIL — назва файлу до якого надходить електронна пошта;
  • LOGNAME — ім'я користувача використане для входу до системи;
  • SHELL — ім'я оболонки інтерпретатору команд;
  • TERM — тип-програма користувацького терміналу;
  • LANG — локаль — мова та країна локалізації інтерфейсу;
  • DISPLAY — адреса дисплею для X-додатків;
  • PS1,PS2 — описують вигляд запрошення у командному рядку;

Системне

  • LD_LIBRARY_PATH — користувацькі шляхи до динамічних бібліотек;
  • LD_PRELOAD — перелік бібліотек попереднього завантаження, часто для перевизначення-перехоплення окремих викликів функцій при налагоджені;
  • MALLOC_ARENA_MAX — максимальна кількість арен виділення пам'яті на потік для динамічного розподілювача MALLOC.

4.1.5 Оператори

  • if умова — умовний оператор, у якому часто використовується команда test як безпосередньо, так і у формі "[ тест ]"
then вираз — тіло виразу виконуваного за умова ВДАЛА(TRUE)-НЕПОМИЛКА
else вираз2 — тіло виразу2 виконуваного за умова НЕВДАЛА(FALSE)-ПОМИЛКА
elif умова2 — поєднання команди "else if умова2"
then вираз3 — --//--
else вираз4 — --//--
elif умова3 — --//--
...
fi — завершення умовного оператору
fi — завершення умовного оператору
fi — завершення умовного оператору
  • Цикли:
for var in перелік — оператор циклу із перебирання елементів переліку у змінній var
while умова — виконання тіла виразу циклу допоки умова ВДАЛА(TRUE)-НЕПОМИЛКА, де часто використовується команда test як безпосередньо, так і у формі "[ тест ]"
do вираз — тіло виразу циклу
break — переривання циклу
continue — продовження циклу на наступній ітерації
done — завершення оператору циклу
  • case зразок in — оператор обрання-перевірки виразу зразку за маскою-шаблоном, через символ "|" може бути вказано декілька масок
маска1) вираз1 ;; — виконання вираз1 за умови відповідності зразку до маска1
...
маскаN) виразN ;; — виконання виразN за умови відповідності зразку до маскаN
esac — завершення оператору перевірки
  • function func() { сценарій } — визначення функції func із тілом сценарій, яка потім викликається так само як і звичайна команда

Приклади

if ls -1A /home/${USER} | grep .config &> /dev/null
then
  echo OK
else
  echo FALSE
fi

if [ -d /home/${USER}/.config ]; then echo OK; fi

for var in "1 2" 3 4 "5" "6 7"
do
  case $var in
    [0-9]) echo "Number $var" ;;
    *) echo "String $var" ;;
  esac
done

function testSeq( ) {
  while [ $# -ge 1 ]; do
    case $1 in
      [0-9]) echo "Number $1" ;;
      *) echo "String $1" ;;
    esac
    shift
  done
}

testSeq "1 2" 3 4 "5" "6 7"

4.1.6 Вбудовані та основні команди

  • echo [рядок...] — запис рядків аргументів до стандартного виводу;
  • true, false — повертають логічний результат ВДАЛА(TRUE)-НЕПОМИЛКА та НЕВДАЛА(FALSE)-ПОМИЛКА відповідно;
  • pwd — отримання ім'я поточної теки;
  • cd [тека] — зміна поточної теки;
  • export назва[=слово]... — встановлення експортної (зовнішнє оточення) змінної назва у значення слово;
  • shift [n] — зсув аргументів командного рядку на n пунктів, для доступу з номером більше 9 та загалом їх сканування;
  • exit [n] — вихід із сценарію з кодом n;
  • test [вираз], [ вираз ] — перевірка умов в умовних операціях та циклах командами виразу;
  • set — встановлення та очищення опцій і позиційних параметрів;
  • unset x — зняття значень та атрибутів змінних та функцій;
  • getopts рядокопцій назва [аргумент...] — отримання опції з назвою із рядокопцій, тобто аргументів сценарію;
  • exec [команда [аргумент ...]] [переспрямування ...] — зміна-запуск команди у поточному процесі оболонки із можливістю переспрямування потоків вводу-виводу;
  • read змінна... — введення зі стандартного вводу до вказаних змінних;
  • eval [аргумент...] — конструювання команди поєднанням аргументів;
  • trap — встановлення обробника сигналів у сценарії;
  • alias [синонім[=рядок]...] — контроль синонімів (псевдоніми або альтернативні назви команд), тобто встановлення синоніму у рядок або відображення значення синоніму за відсутності рядка;
  • unalias синонім... — видалення синонімів (псевдоніми або альтернативні назви команд).

4.1.7 Опції перевірки команди test

  • -e шляхшлях вказує на елемент теки;
  • -d шляхшлях вказує на каталог;
  • -f шляхшлях вказує на звичайний файл;
  • -c шляхшлях вказує на спеціальний символьний файл;
  • -b шляхшлях вказує на спеціальний блоковий файл;
  • -p шляхшлях вказує на спеціальний файл іменованого каналу;
  • -L шляхшлях вказує на символічне посилання;
  • -r шляхшлях вказує на файл із доступом для читання;
  • -w шляхшлях вказує на файл із доступом для запису;
  • -x шляхшлях вказує на виконуваний файл;
  • -s шляхшлях вказує на ненульовий файл;
  • -z рядокрядок порожній;
  • -n рядокрядок непорожній;
  • рядокрядок ненульовий;
  • рядок1 = рядок2рядок1 дорівнює рядок2;
  • рядок1 != рядок2рядок1 не дорівнює рядок2;
  • ціле1 -eq ціле2ціле1 дорівнює ціле2;
  • ціле1 -ne ціле2ціле1 не дорівнює ціле2;
  • ціле1 -gt ціле2ціле1 більше ціле2;
  • ціле1 -lt ціле2ціле1 менше ціле2;
  • ціле1 -ge ціле2ціле1 більше або дорівнює ціле2;
  • ціле1 -le ціле2ціле1 менше або дорівнює ціле2;
  • ! вираз — заперечення-інверсія результату виразу;
  • вираз1 -o вираз2вираз1 АБО вираз2;
  • вираз1 -a вираз2вираз1 ТА вираз2.

4.1.8 Прості цілочисельні операції у формі $[100/3], $((100/3))

  • id++, id-- — постфіксне збільшення/зменшення значення змінної id на 1;
  • ++id, --id — префіксне збільшення/зменшення значення змінної id на 1;
  • -, + — унарні мінус та плюс;
  • !, ~ — логічне та побітове заперечення;
  • *, /, % — множення, ділення, отримання залишку від ділення;
  • ** — зведення у ступінь;
  • +, - — складання, віднімання;
  • <<, >> — побітовий зсув ліворуч та праворуч;
  • <=, >=, <, > — порівняння;
  • ==, != — рівність та нерівність;
  • & — побітове "І";
  • ^ — побітове виключене "АБО";
  • | — побітове "АБО";
  • && — логічне "І";
  • || — логічне "АБО";
  • вир1?вир2:вир3 — умовне обчислення у виразі де за TRUE вир1 обчислюється та повертається результат вир2 інакше вир3;
  • =, *=, /=, %=, +=, ?=+ — привласнення
  • вир1,вир2 — розділювач виразів (","-кома) вир1 та вир2;
  • (вираз) — виокремлення більш пріоритетного виразу та його ділянки.

4.1.9 Переспрямування виводу

  • команда1 | команда2 — спрямувати стандартний вивід STDOUT(1) команда1 у стандартний ввід STDIN(0) команда2 через канал;
  • команда < файл — спрямувати вміст файлу на стандартний ввід STDIN(0) команди;
  • команда > файл — спрямувати стандартний вивід STDOUT(1) у файл, попередньо очистивши його;
  • команда >> файл — спрямувати вивід STDOUT(1) у файл, додаючи дані до нього;
  • команда n> файл — спрямувати вивід із дескриптором n у файл, попередньо очистивши його;
  • команда n>> файл — спрямувати вивід із дескриптором n у файл, додаючи дані до нього;
  • команда &> файл — спрямувати стандартний вивід STDOUT(1) та вивід помилок STDERR(2) у файл, попередньо очистивши його;
  • команда &>> файл — спрямувати стандартний вивід STDOUT(1) та вивід помилок STDERR(2) у файл, додаючи дані до нього;
  • команда <> файл — зв'язати стандартний ввід STDIN(0) та стандартний вивід STDOUT(1) команди із файлом;
  • команда n1>&n2 — приєднати вивід файлу із дескриптором n1 до виводу із дескриптором n2, зазвичай приєднується вивід помилок STDERR(2) до стандартного виводу STDOUT(1) або навпаки;
  • команда << мітка текст-сценарій мітка — безпосередньо у сценарії визначає текст-сценарій та спрямовує його до стандартного вводу STDIN(0), де межі тексту-сценарію визначаються міткою.

4.1.10 Спеціальні символи — екранування

  • \n — новий рядок;
  • \b — повернення на один символ;
  • \c — друк рядка без символу нового рядка;
  • \f — перехід до нової сторінки-екрану;
  • \r — повернення каретки;
  • \t — табуляція;
  • \v — табуляція по вертикалі;
  • \\ — зворотна коса риска;
  • \0nnn, \xNN — вісімкове nnn та шістнадцяткове NN число.
At.png ви побачите ці символи у виводі команди echo з аргументами "-e"

4.1.11 Маски-шаблони

  • * — довільна послідовність символів;
  • ? — довільний один символ;
  • [...] — символ із переліку у дужках ([A-Z]), де перший символ "!" або "^" означає виключення наступних символів.

4.1.12 Представлення чисельних значень

  • 45 — десяткове число, починаючи із числа не "0" та символи [0-9] поспіль;
  • 045 — вісімкове число, починаючи із "0" та символи [0-7] поспіль;
  • 0x45, 0X32 — шістнадцяткове число, починаючи із "0x" або "0X" та символи [0-7a-fA-F] поспіль;
  • основа#N — число N із основою.

Приклади

echo $[45], $[045], $[0x45]
echo $[2#101], $[10#101], $[16#101]
echo $[16#FF], $[16#ff], $[0xFF]
echo $[64**2], $[64#@@]
echo $[64#z], $[64#Z]

4.1.13 Корисні обороти

{cmd} || true # примусове встановлення успішного результату
echo "lang=uk_UA.UTF-8" | cut -d= -f2  # розбір за роздільником-тег '=', елемент 2
echo "123 lang=uk_UA.UTF-8" | grep -o 'lang=[^ ]*' # отримання ділянки тексту/рядка згідно до шаблону
wc -l  # отримання кількості рядків
wc -w  # отримання кількості слів
sed -n 4p  # отримання вказаного рядка
ls -1 /etc  # отримання вмісту каталогу за рядками
head -c8 /dev/random | uuencode -m - | sed -n '2s/=*$//;2p'  # генерація випадкового паролю
var="/some/path/file.txt"; echo ${var##*/} OR `basename $var`  # виділення ім'я файлу із розширенням

...