From OpenSCADAWiki
Jump to: navigation, search
(Базове адміністрування)
 
(170 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
* '''Автор:''' [[User:RomanSavochenko|Роман Савоченко]]
 
* '''Автор:''' [[User:RomanSavochenko|Роман Савоченко]]
 
* '''Засновано:''' 2002
 
* '''Засновано:''' 2002
* '''Початково створено ([[file:mRu.png]]):'''<br/>LaTeX ([http://ftp.oscada.org/books/LinuxShortAll.tex Вихідні], [http://ftp.oscada.org/books/LinuxShortAll.pdf PDF]), [http://wiki.oscada.org/RomanSavochenko/LinuxShortAll стара Wiki]
+
* '''Початково створено ([[file:mRu.png]]):'''<br/>LaTeX ([http://ftp.oscada.org/books/LinuxShortAll.tex Вихідні], [http://ftp.oscada.org/books/LinuxShortAll.pdf PDF]), [http://wiki.oscada.org/RomanSavochenko/LinuxShortAll стара Wiki] }}
[[File:At.png]] Перенесення, переклад та актуалізація }}
+
  
 
== Конфігураційні та інформаційні файли і каталоги ==
 
== Конфігураційні та інформаційні файли і каталоги ==
Line 17: Line 16:
 
** '''cron.weekly/''' — тека окремих файлів конфігурації завдань щотижневого виконання '''cron''';
 
** '''cron.weekly/''' — тека окремих файлів конфігурації завдань щотижневого виконання '''cron''';
 
** ''fstab'' — конфігурація файлових систем(ФС) автоматичного монтування при завантажені;
 
** ''fstab'' — конфігурація файлових систем(ФС) автоматичного монтування при завантажені;
 +
<syntaxhighlight lang="BASH" style="margin-left: 40pt">
 +
# CD/DVD/BLURAY для монтування udisks2
 +
/dev/sr0        /media/cdrom0  udf,iso9660 user,noauto    0      0
 +
# FD для монтування udisks[2]
 +
/dev/fd0        /media/floppy  auto noauto,users,owner,iocharset=utf8,codepage=866 0 0
 +
</syntaxhighlight>
 
** ''group'' — системні групи користувачів;
 
** ''group'' — системні групи користувачів;
 +
*** "dialout" — для доступу до послідовних пристроїв на кшталт ''/dev/ttyUSB0'';
 +
*** "sudo" — для доступу користувачів до ROOT-привілеїв через '''sudo'''.
 
** ''hostname'' — поточна назва машини, може перевизначатися у ''/etc/hosts'' через зворотне вирішення внутрішньої IP адреси;
 
** ''hostname'' — поточна назва машини, може перевизначатися у ''/etc/hosts'' через зворотне вирішення внутрішньої IP адреси;
 
** ''hosts'' — внутрішнє-первинне вирішення іменованої мережевої адреси у IP та навпаки, може перевизначати ''/etc/hostname'';
 
** ''hosts'' — внутрішнє-первинне вирішення іменованої мережевої адреси у IP та навпаки, може перевизначати ''/etc/hostname'';
Line 25: Line 32:
 
** ''logrotate.conf'', '''logrotate.d/''' — конфігурація та тека окремих конфігураційних файлів демону автоматичної ротації (пакування, видалення) логів;
 
** ''logrotate.conf'', '''logrotate.d/''' — конфігурація та тека окремих конфігураційних файлів демону автоматичної ротації (пакування, видалення) логів;
 
** ''ld.so.conf'' — конфігурація динамічного лінкувальника поділюваних бібліотек;
 
** ''ld.so.conf'' — конфігурація динамічного лінкувальника поділюваних бібліотек;
** ''motd'' — повідомлення видаване після вдалої реєстрації;
+
** ''motd'' — повідомлення, видаване після вдалої реєстрації;
 
** ''mtab'' — актуальна інформація щодо змонтованих ФС, зазвичай посилання на ''/proc/self/mounts'';
 
** ''mtab'' — актуальна інформація щодо змонтованих ФС, зазвичай посилання на ''/proc/self/mounts'';
 
** ''nologin'' — наявність цього файлу забороняє користувачам входити до системи із видачею повідомлення у цьому файлі;
 
** ''nologin'' — наявність цього файлу забороняє користувачам входити до системи із видачею повідомлення у цьому файлі;
Line 54: Line 61:
 
** ''cpuinfo'' — інформація о процесорах системи.<br/>
 
** ''cpuinfo'' — інформація о процесорах системи.<br/>
 
* '''/home/<u>user</u>/''' — домашній каталог користувача ''user''.
 
* '''/home/<u>user</u>/''' — домашній каталог користувача ''user''.
 +
 +
=== Мережа ===
 +
* '''/etc/'''  — основний каталог конфігураційних файлів:
 +
** '''NetworkManager/''' — конфігурація Менеджеру Мережі;
 +
*** '''system-connections/''' — тека із конфігурацією загальних підключень;
 +
*** ''NetworkManager.conf'' — загальна конфігурація сервісу.
 +
** ''dhcpcd.conf'' — конфігурація сервісу DHCPD, який у простих системах часто бере на себе всі мережеві підключення;
 +
** '''network/''' [DEBIAN] — конфігурація мережі, базовий сервіс, який зараз часто замінюється '''NetworkManager''' і '''dhcpd''';
 +
*** ''interfaces'' — безпосередньо містить опис інтерфейсів.
 +
** '''ssh/''' — загальна конфігурація SSH клієнту та серверу:
 +
*** ''ssh_config'' — загальна конфігурація клієнту:
 +
<syntaxhighlight lang="BASH" style="margin-left: 40pt">
 +
PubkeyAcceptedAlgorithms +ssh-rsa  # доповнення алгоритмів, які приймаються для публічного ключа.
 +
</syntaxhighlight>
 +
* '''/home/<u>user</u>/.ssh''' — налаштування SSH для користувача ''user'':
 +
** ''id_rsa'', ''id_dsa'', ''id_ecdsa'' — приватний RSA, DSA, ECDSA ключ клієнта;
 +
** ''id_rsa.pub'', ''id_dsa.pub'', ''id_ecdsa.pub'' — публічний RSA, DSA, ECDSA ключ клієнта;
 +
** ''known_hosts'' — перелік відомих хостів за якими здійснювалося SSH підключення, наповнюється автоматично;
 +
** ''authorized_keys'' — публічні ключі клієнтів, яким дозволено підключатися до цього хосту і за цим користувачем, фактично копія файлу на кшталт ''id_rsa.pub'';
 +
** ''config'' — конфігурація користувача на кшталт специфіки підключення до окремих хостів і автентифікації.
 +
<syntaxhighlight lang="BASH" style="margin-left: 40pt">
 +
# Обов'язкове для функціювання SFTP у MC
 +
Host home
 +
    User roman
 +
    IdentityFile ~/.ssh/id_rsa
 +
</syntaxhighlight>
  
 
== Утиліти ==
 
== Утиліти ==
 
=== Основні користувацькі ===
 
=== Основні користувацькі ===
 +
* ''apropos'' — пошук сторінки посібника (man) за ключовим словом;
 
* ''awk'' — оперування файлами даних, вибірка і обробка тексту;
 
* ''awk'' — оперування файлами даних, вибірка і обробка тексту;
* ''bg'' — оперування із багатьма завданнями у терміналі:
+
* ''bg'', ''fg'' — оперування із багатьма завданнями у терміналі:
** '''Ctrl+Z''' — переведення завдання на задній план;
+
** '''Ctrl+Z''' — зупинка і переведення завдання на задній план;
** {{InLineCode|fg}} — повернення із заднього плану.
+
** {{InLineCode|fg}} — повернення із заднього плану;
 +
** {{InLineCode|jobs -l}} — перелік завдань у фоні.
 
* ''cal'' — календар;
 
* ''cal'' — календар;
 
* ''cat'', ''zcat'' — видання вказаного файлу у STDOUT;
 
* ''cat'', ''zcat'' — видання вказаного файлу у STDOUT;
Line 70: Line 105:
 
* ''cp'' — копіювання файлів і тек;
 
* ''cp'' — копіювання файлів і тек;
 
* ''cpio'' — копіювання файлів до архіву та із архіву;
 
* ''cpio'' — копіювання файлів до архіву та із архіву;
{{Constr|Переклад і актуалізація}}
+
* ''cut'' — вирізання із вхідного файлу стовпців, рядків і фракцій за роздільником;
''cut'' вырезает из входного файла столбцы, строки и фракции по разделителю;<br/>
+
* ''date'' — відображення поточної дати у необхідному форматі або її встановлення;
''date'' отображает текущую дату и время;<br/>
+
** {{InLineCode|<nowiki>date 10031545</nowiki>}} — встановлення дати у 03.10 15:45.
''dd'' преобразование, создание и другие манипуляции с файлами в двоичном виде:
+
* ''dd'' — перетворення, створення, копіювання та інші маніпуляції із файлами у двійковому вигляді:
:dd if=/dev/zero of=/swap bs=1024 count=8208 создание пустого файла swap размером 8Мб
+
** {{InLineCode|<nowiki>dd if=/dev/zero of=/swap bs=1024 count=8208</nowiki>}} створення порожнього файлу "swap" розміром 8МБ
:dd if=/dev/fd0 of=boot.img bs=18k создание образа из дискеты<br/>
+
** {{InLineCode|<nowiki>dd if=/dev/fd0 of=boot.img bs=18k</nowiki>}} створення штампу із дискети
''ddrescue'' утилита настойчивого чтения носителей содержащих ошибки;<br/>
+
** {{InLineCode|<nowiki>dd if=/dev/sdb of=sys.img bs=1M oflag=direct,sync status=progress</nowiki>}} — копіювання образу диску із відображенням прогресу
''echo'' выполняет эхо-повтор строки на терминале;<br/>
+
* ''ddrescue'' — утиліта наполегливого читання носіїв, що містять помилки;
''exit'' завершить процесс с указанным кодом возврата;<br/>
+
* ''echo'' — здійснення луни-повторення рядка у терміналі;
''fg''  — работа с множеством задач в терминале: перевод остановленной (Ctrl+Z) задачи на передний план;<br/>
+
* ''exit'' — завершення процесу із вказаним кодом повернення;
''file'' определение типа файла, содержит информацию о множестве известных файлов;<br/>
+
* ''file'' — визначення типу файлу - містить інформацію про багато відомих файлів;
''find'' поиск:
+
* ''find'' — пошук:
:-type — тип выводимых файлов;
+
** -type <c> — тип файлів виведення ''c'' [d,f,...];
:-name имя искомого файла;
+
** -name <patern> ім'я файлу пошуку за шаблоном ''patern'';
:-size  размер искомого файла;
+
** -regex <pattern> ім'я файлу пошуку за регулярним виразом ''patern'';
:-atime  — доступ был в течении указанных последних дней;
+
** -size <n>[cwbkMG] — розмір файлу пошуку менше ''n'' якщо негативне або більше ''n''.
:-mtime  — файл модифицировался в течении указанных последних дней;
+
* ''gpg'' — утиліта шифрування і підписування електронним підписом;
:-ctime  — атрибуты файла модифицировались в течении указанных последних дней;
+
* ''grep'' — пошук вказаного рядка у визначених файлах або потоках;
:-perm  — режим доступа к файлу;<br/>
+
** {{InLineCode|grep 'str' mifile.txt}}
''gpg'' утилита шифрования и подписывания электронной подписью;<br/>
+
* ''gzexe'' — стиснення у виконавчий модуль із розпакуванням при запуску;
''grep'' поиск указанной строки в указанных файлах или потоках;
+
* ''gzip'' — компресія і декомпресія файлів:
:grep 'str' mifile.txt<br/>
+
: ''Опції'':
''gzexe'' архивирование в исполняемый модуль, с распаковкой при запуске;<br/>
+
:* -<n> — здійснити компресію із рівнем <n>=(1..9);
''gzip'' компрессия и декомпрессия файлов:
+
:* -d — декомпресія.
:Опции:
+
: ''Приклади'':
::-<n> выполнить компрессию с уровнем <n>=(1..9);
+
:* {{InLineCode|gzip < /dev/cdrom > cdrom.iso.gz}} читання і компресія штампу КД;
::-d декомпрессия.
+
* ''head'', ''tail'' показує заголовок/початок або хвіст/кінець вказаного файлу;
:Примеры:
+
* ''hexdump'' — друк вхідного потоку у вказаному форматі (DEC,HEX,OCT,ASCII);
::gzip < /dev/cdrom > cdrom.iso.gz — чтение и упаковка образа CD;<br/>
+
* ''history'' — відображення нумерованого переліку історії команд;
''head'' показывает заголовок/начало указанного файла;<br/>
+
* ''ipcs'' — відображення ресурсів IPC (між-процесна комунікація);
''hexdump'' печать входного потока в указанном формате (DEC,HEX,OCT,ASCII);<br/>
+
* ''ipcrm'' — видалення ресурсів IPC;
''history'' показывает нумерованный список истории команд;<br/>
+
* ''kill'', ''skill'', ''killall'' надсилання сигналу процесу — за PID, за шаблоном назви;
''ipcs'' показывает ресурсы IPC(inter process communication);<br/>
+
* ''let'', ''bc'', ''expr'' — виконання арифметичних, логічних і інших дій над числовими значеннями у змінних оточення;
''ipcrm'' удаляет ресурсы IPC(inter process communication);<br/>
+
* ''ln'' — створення та обслуговування жорстких і символічних посилань;
''kill, skill'' посылка сигнала процессу;<br/>
+
* ''locate'' — швидкий пошук файлів у системі за іменем по '''mlocate''' базі;
''let,bc,expr'' выполняет арифметические, логические и другие действия над числовыми значениями в переменных окружения;<br/>
+
* ''ls'' — перелічення файлів/тек у теці;
''ln'' создание и обслуживание ссылок;<br/>
+
* ''md5sum'' — підрахунок MD5-суми;
''locate'' поиск файла в уже созданной базе;<br/>
+
* ''mkfifo'' — створення іменованих каналів;
''ls'' листинг директории или информация про файл/директорию;<br/>
+
* ''mknod'' — створення спеціальних файлів;
''md5sum'' подсчёт md5 суммы;<br/>
+
* ''more'', ''less'', ''zless'' — перегляд файлу або виводу посторінково, для зазіпованих із '''gzip''';
''mkfifo'' утилита создания именованных каналов;<br/>
+
* ''nice'', ''snice'', ''renice'' — запуск команди з відмінним значенням поступливості у межах [-20...19], встановлення вказаним програмам, встановлення поточній;
''mknod'' утилита для создание специальных файлов;<br/>
+
* ''nohup'' — запуск команди із відв'язуванням від поточного терміналу;
''more, less, zless'' просмотр файла постранично;<br/>
+
* ''pidof'' — відображення PID виконуваної програми;
''mpage'' — печать нескольких страниц на одной;<br/>
+
* ''pr'' — форматування текстового файлу до друку;
''nice,snice'' — запуск команды с указанным приоритетом (-20 — +20);<br/>
+
* ''printenv'', ''env'' — відображення змінних оточення, відображення і встановлення;
''nohup'' — запуск команды с отвязкой от текущего терминала;<br/>
+
* ''ps'', ''pstree'' — відображення виконуваних процесів системи списком, деревом;
''pidof'' показать PID работающей программы;<br/>
+
* ''rm'' — видалення файлів і тек;
''pr'' форматирование текстового файла для печати;<br/>
+
* ''scp'' — безпечне копіювання файлів і тек через OpenSSH;
''printenv, env'' показывает переменные окружения;<br/>
+
** {{InLineCode|scp file.txt user1@remote_server:/}} копіювання файлу на віддалену систему.
''ps'' — показывает запущенные в системе процессы;<br/>
+
* ''screen'' консольний екранний менеджер, що дозволяє відкривати команди у новому вікні того-ж терміналу із можливістю:
''pstree'' показывает дерево запущенных процессов;<br/>
+
** '''Ctrl+A''' перемикання;
''renice''  изменение приоритета активного процесса (в скрипте);<br/>
+
** '''Ctrl+A,D''' тимчасове відключення;
''rm'' удаление файлов и директорий;<br/>
+
** {{InLineCode|screen -R}} відновлення останнього сеансу за можливості або створення нового;
''rpm'' утилита для работа с RPM-пакетами:
+
** {{InLineCode|screen -r <sess>}} — відновлення сеансу ''sess'';
:-i packet  — установить пакет;
+
** {{InLineCode|screen -x}} — підключення до невід'єднаного сеансу (Багатоекранний Режим).
:-e packet  — удалить пакет;
+
* ''sed'' — потоковий редактор;
:-U packet  — обновить пакет;
+
* ''sleep'' — приспання поточного процесу на визначену кількість секунд;
:-V packet  — проверка корректности установки/текущего состояния указанного пакета;
+
* ''sort'' — сортування даних у файлі/потоці;
:-a  выполнение указанной операции для всех пакетов;
+
* ''split/csplit'' — розбиття/складання великих файлів на/з шматки;
:-q  запрос данных о пакете:
+
* ''stat'' — інформація про файл/теку на ФС;
::f  — поиск пакета, которому принадлежит указанный файл;
+
* ''strings'' — виведення символьних повідомлень з не текстового файлу;
::i  — вывод информации о пакете;
+
* ''sum'' — розрахунок контрольної суми;
::l  — список файлов, принадлежащих пакету;
+
* ''tar'' — утиліта оперування із архівами і пакетами відомими як TAR-пакети, які можуть стискатися різними компресорами;
::s  — состояние файлов пакета;
+
** -v — багатослівність, відображати перелік оброблених файлів;
::d  — список файлов документации пакета;
+
** -с — створити новий архів;
::c  — список конфигурационных файлов пакета;
+
** -x — розпакувати архів;
::p  — выполнить операцию над ещё неустановленным пакетом;
+
** -f <file> — упакувати до вказаного файлу ''file'';
:-b файл.spec  — частичная или полная обработка *.spec файла для сборки пакета:
+
** -z — здійснити стискання отриманого пакету за допомогою '''gzip''', розширення "*.tar.gz";
::a  создание бинарного и исходного rpm пакета;
+
** -j — здійснити стискання отриманого пакету за допомогою '''bzip2''';
::b  — создание бинарного rpm пакета;
+
** -J здійснити стискання отриманого пакету за допомогою '''xz''', розширення "*.tar.xz";
::c  — выполнение этапов: %pre и %build с распаковкой и компиляцией;
+
** -I<compr> — здійснити стискання отриманого пакету за допомогою програми стискання ''compr'';
::i  — выполнение этапов: %pre, %build и %install;
+
** -t — перегляд вмісту архіву.
::l  проверка списка файлов в %files;
+
* ''test'' — перевірка значень, файлів та інших умов, деталі у [[#BASH_TEST|розділі BASH]];
::p  — выполняется этап %pre (распаковка архива);
+
* ''tee'' — читання зі стандартного входу та запис до стандартного виходу і у файл;
:--rebuild my.src.rpm  скомпилировать и создать бинарный rpm из исходного rpm;
+
* ''touch'' — оновлення/встановлення позначки часу файлу або створення порожнього за відсутності;
:--recompile my.src.rpm  — скомпилировать из исходного rpm;
+
* ''time'' — визначення часу і ресурсів виконання команди;
:--test  — проверка файла спецификаций;
+
* ''tr'' — трансляція символів, перетворення/заміна одних іншими;
:--clean  — удаление дерева каталогов BUILD;<br/>
+
* ''tree'' — відображення дерева каталогу, з відступами і кольором;
''screen'' — консольный экранный менеджер - позволяет открывать команды в новом окне того же терминала с возможностью переключения (Ctrl+A), временного отключения (Ctrl+A,D) и восстановления сессии (screen -r);<br/>
+
* ''vi'', ''vim'' — потужний текстовий редактор з оригінальним керуванням;
''sed'' потоковый редактор;<br/>
+
* ''vimdiff'' — перегляд порівнюваних файлів у '''vim''';
''sleep'' усыпляет данный процесс на указанное количество секунд;<br/>
+
* ''wc'' — підрахунок у файлі кількості рядків, символів, слів і інше;
''slocate'' — поиск файла по ранее созданной базе (slocate bash);<br/>
+
* ''which'', ''whereis'' — відображення повного шляху до програми, що шукається;
''sort'' сортировка данных в файле/потоке;<br/>
+
''split/csplit'' разбиение/сбор больших файлов на куски;<br/>
+
''stat'' информация о файле/директории;<br/>
+
''strings'' выделение символьных сообщений из не текстового файла;<br/>
+
''symlinks'' утилита обслуживания символьных ссылок в системе;<br/>
+
''tar'' создание архивов и пакетов;
+
:-v отображать список обработанных файлов;
+
: создавать новый архив;
+
:-x распаковать архив;
+
:-f <file> упаковывать в указанный файл <file>;
+
:-z выполнять компрессию полученного пакета с помощью gzip;
+
:-j выполнять компрессию полученного пакета с помощью bzip2;
+
:-просмотр содержимого архива;<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/>
+
* ''addgroup''-''delgroup'', ''groupadd''-''groupdel'' — додання-видалення групи користувачів у системі;
''anacron'' — периодический запуск программ без чёткой привязки ко времени, но обязательно;<br/>
+
* ''adduser''-''deluser'', ''useradd''-''userdel'' додання-видалення користувача у системі;
''apropos'' поиск man-страницы по ключевому слову;<br/>
+
** {{InLineCode|<nowiki>useradd -m -s /bin/bash myuser</nowiki>}} — створення користувача ''myuser'' із власною домашньою текою і розширеною оболонкою ''/bin/bash''.
''arch'' архитектура текущей системы;<br/>
+
* ''apt'', ''apt-get'' [DEBIAN|...] — утиліта менеджеру APT із керування DEB-пакетами (є варіанти із RPM) за репозиторіями:
''at, batch'' автоматизация разовых запусков программ в указанное время;
+
** install [<packet>...] — встановлення пакету(ів) з віддаленого репозиторію(їв);
:echo 'wget url' | at 01:00 — запустить загрузку в 01:00<br/>
+
*** -f — перевірка-оновлення залежностей щодо останнього встановлення.
''basename'' выделение имени файла/директории из полного пути;<br/>
+
** reinstall [<packet>...] — перевстановлення пакету(ів) з віддаленого репозиторію(їв);
''badblock'' поиск плохих блоков на носителе (HDD, FDD);<br/>
+
** remove [<packet>...] — видалення пакету(ів);
''chfn'' изменение имени пользователя и информация о нем;<br/>
+
** autoremove — видалення автоматично усіх пакунки, що не використовуються;
''сhgrp'' смена группы пользователей: файла, каталога ...;<br/>
+
** update — оновлення переліку пакетів за актуальними репозиторіями;
''chkconfig'' конфигурация уровней загрузки различных сервисов;<br/>
+
** upgrade — оновлення системи шляхом встановлення/оновлення пакетів;
''chmod'' смена режима доступа к файлу;<br/>
+
*** -o — параметри операції.
''chown'' смена владельца и группы владельцев файла, каталога ...;<br/>
+
**** "Acquire::Queue-mode=access" — завантаження пакетів по одному, тобто у черзі.
''chroot'' смена корня текущей сессии;<br/>
+
** build-dep [<packet>...] — встановлення пакету(ів), що необхідні для складання вказаних пакетів ''packet''.
''chvt'' переключение на указанный терминал;<br/>
+
* ''apt-get'' [DEBIAN|...] попередня утиліта менеджеру APT із керування DEB-пакетами за репозиторіями, специфічні команди:
''chsh'' смена типа командного интерпретатора;<br/>
+
** purge [<packet>...] — видалення пакунків разом із їхніми конфігураційними файлами;
''consolechars'' загрузка консольных экранных шрифтов;<br/>
+
** download <packet> — завантаження двійкового пакунку у поточну директорію;
''convmv'' перекодировка имён файлов/директорий с одной кодировки в другую (может понадобиться для перекодирования файлов на ФС: ext2, ext3, reisrfs);<br/>
+
** source <packet> — завантаження вихідних текстів пакунку у поточну директорію із розпакуванням;
''cron'' планирование периодического запуска программ;<br/>
+
** changelog <packet> — отримання і відображення журналу змін визначеного пакунку;
''crontab'' формирование пользовательской конфигурации cron;<br/>
+
** dist-upgrade — оновлення всієї системи;
''df'' информация о файловых системах данной машины;<br/>
+
** clean — видалення завантажених архівів-пакунків;
''dirname'' выделение имени директории из полного пути;<br/>
+
** autoclean — видалення старих завантажених архівів-пакунків;
''du'' получение информации о размере содержимого файла или директории;<br/>
+
** check — перевірка наявності порушених залежностей.
''dumpkeys''  dump карты клавиатуры;<br/>
+
* ''apt-cache'' [DEBIAN|...] утиліта менеджеру APT із запиту кешу актуальних репозиторіїв пакетів:
''export'' встроенная команда BASH для определения переменной окружения и экспортирования её для общей доступности;
+
** search <pattern> — пошук пакунків із назвою, що задовольняє регулярному виразу;
:export EDITOR=xemacs  определение переменной <EDITOR> значением <xemacs>;<br/>
+
** depends <packet> — показати інформацію про залежності пакунку;
''fgconsole''  — номер текущего терминала;<br/>
+
** rdepends <packet> — показати інформацію про зворотні залежності пакунку;
''finger,who'' информация о всех пользователях системы;<br/>
+
** show <packet> — показати інформацію про пакунок.
''free'' информация о состоянии памяти;<br/>
+
* ''arch'' — архітектура поточної системи, дивіться '''setarch''' для встановлення архітектури — запуск програми із вказаною;
''fuser'' выдает список процессов, использующих указанный файл или сокет, а также позволяет закрывать процессы занимающие ресурс;<br/>
+
* ''at'', ''batch'' — відкладене виконання задач і пакетна обробка;
''getconf'' — запрос системных конфигурационных переменных, собранных ''glibc'' (флаг -a для получения всех переменных);<br/>
+
** {{InLineCode|<nowiki>echo 'wget url' | at 01:00</nowiki>}} запуск завантаження о 01:00.
''groupadd'' добавление группы пользователей;<br/>
+
* ''basename'' — виокремлення імені файлу/теки з повного шляху;
''groupdel'' удаление группы пользователей;<br/>
+
* ''chfn'' — зміна ім'я користувача і інформації про нього;
''iconv'' преобразование содержимого файла из одной кодировки в другую кодировку;<br/>
+
* ''chgrp'' — зміна групи користувачів файлу або каталогу;
''id'' информация о пользователе;<br/>
+
* ''chkconfig'' [INIT] конфігурація рівнів завантаження сервісів;
''info'' показать документацию из страниц связанной помощи (GNU-doc);<br/>
+
* ''chmod'' — зміна режиму доступу до файлу;
''init'' утилита начальной загрузки;
+
* ''chown'' — зміна власника і групи власників файлу або каталогу;
:q  перезапуск init для активизации изменений в /etc/inittab;<br/>
+
* ''chpasswd'' — проста зміна паролю із можливістю здійснення зі скрипту;
''loadkeys'' установка раскладки клавиатуры;<br/>
+
** {{InLineCode|<nowiki>echo username:new_password | chpasswd</nowiki>}} — зміна паролю ''username'' у ''new_password''.
''locale'' получение информацию о настройках локали (/etc/sysconfig/i18n);<br/>
+
* ''chroot'', ''schroot'' зміна кореня поточного сеансу або виконання команди від іншого кореня, також у безпечному варіанті від звичайного користувача;
''localedef'' создание новой локали на основе базовой;<br/>
+
** у деяких середовищах спостерігаються проблеми при складанні у CHROOT із '''objcopy''', що пов'язано зі змінною оточення LANG, яку необхідно видалити {{InLineCode|<nowiki>unset LANG</nowiki>}}
''login'' вход в систему;<br/>
+
* ''chvt'' — перемикання на вказаний термінал;
''logname'' имя текущего пользователя;<br/>
+
* ''chsh'' — зміна типу командного інтерпретатора;
''logrotate'' утилита для автоматической упаковки, чистки и другой обработки логов;<br/>
+
* ''convmv'' — перекодування назв файлів/тек з одного кодування на інше, може знадобитися для перекодування файлів на ФС ext2, ext3, reisrfs;
''lsof'' печатать списка открытых в системе файлов, сокетов, каналов, разделяемых библиотек и др.;
+
* ''cron'' — планування періодичного запуску програм;
:-p <n> список системных ресурсов используемых <n> процессом;
+
* ''crontab'' — формування користувацької конфігурації cron;
::<name>  — список процессов использующих ресурс <name>.<br/>
+
* ''df'' — інформація з файлових системах системи;
''man,xman'' показать страницу руководства;
+
* ''dirname'' — виокремлення назви теки із повного шляху;
:-k <word> поиск страницы по ключевому слову;<br/>
+
* ''dpkg'' [DEBIAN] утиліта оперування DEB-пакетами:
''mesg'' управление доступом на запись к текущему терминалу (для посылаемых сообщений);<br/>
+
** -i <packet> — встановлення пакету;
''mpage'' размещение нескольких страниц текста в одной и печать их на PostScript принтере;<br/>
+
** -r <packet> видалення пакету;
''ntpdate'' утилита синхронизации времени через Internet(www.ntp.org);<br/>
+
** --purge <packet> — цілковите видалення пакету разом із конфігурацією.
''passwd'' смена пароля пользователя;<br/>
+
* ''dpkg-query'' [DEBIAN] утиліта запиту до бази DEB-пакетів:
''popd'' — извлечь директорию из стека директорий;<br/>
+
** -s [<packet>...] — отримання статусу пакету(ів) або усіх у базі;
''pushd'' помещение текущей директории в стек директорий;<br/>
+
** -L <packet>... отримання переліку файлів у пакеті(ах);
''pwd'' получение полного имени текущей директории;<br/>
+
** -l [<pattern>...] — отримання переліку пакетів у базі за шаблоном;
''rlogin'' вход на удаленную систему;<br/>
+
** --show [<packet>...] — отримання інформації (зазвичай версії) пакету(ів) або усіх у базі;
''scp'' безопасное копирование файлов посредством ssh:
+
** -S <pattern>... — пошук пакету, якому належить файл за шаблоном.
:scp file.txt user1@remote_server:/ копирование файла на удалённую систему;<br/>
+
** {{InLineCode|<nowiki>dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n</nowiki>}} — отримання переліку встановлених пакетів, відсортованих за розміром.
''service'' утилита для операций над сервисами в /etc/rc.d/init.d;
+
* ''du'' — отримання інформації про розмір вмісту файлу або теки;
:service smb start — запуск сервиса Samba;<br/>
+
* ''dumpkeys'' — дамп карти клавіатури;
''set'' — выполняет операции над переменными окружения (встроенная команда BASH), часто просто устанавливает переменную окружения;<br/>
+
* ''export'' [SH] визначення змінної оточення та її експорт для загального доступу;
''setfont'' установка консольного шрифта;<br/>
+
:* {{InLineCode|<nowiki>export EDITOR=vim</nowiki>}} — визначення змінної оточення EDITOR у значення "vim";
''setsid'' — запуск программы в новой сессии;<br/>
+
* ''fgconsole'' — номер поточного терміналу;
''sg, newgrp'' смена основной группы пользователя, или выполнение команды от имени указанной группы;<br/>
+
* ''free'' — інформація щодо стану пам'яті;
''slogin'' вход в систему по шифрованному протоколу ssh (тоже что и ssh);<br/>
+
* ''fuser'' — отримання переліку процесів, які використовують-займають зазначений файл або сокет, а також закриття процесів, що займають ресурс;
''ssh'' вход в систему по шифрованному протоколу ssh или же удалённый запуск команд:
+
* ''iconv'' — перетворення вмісту текстового файлу з одного кодування у інше;
:ssh -X user@remserver.org — шифрованный вход на удалённую систему с транспортировкой X-протокола;
+
* ''journalctl'' [SYSTEMD] отримання журналу сервісу;
:ssh user@remserver.org 'wget ftp://myfile' — запуск загрузки на удалённом сервере;
+
:* {{InLineCode|<nowiki>journalctl -u NetworkManager.service</nowiki>}} — журнал NetworkManager.
:ssh -L [локальный_адрес:]локальный_порт:удаленный_адрес:удаленный_порт [пользователь@]сервер -p портSSH — инициализация тунеля порта<br/>
+
* ''id'' — інформація щодо користувача;
''sshfs'' — Fuse модуль для монтирования файловой системы через ssh.<br/>
+
* ''info'' — отримання сторінки документації зі сторінок пов'язаної допомоги (GNU-doc);
''stty'' получение и установка параметров терминала, переопределение специальных клавиш;<br/>
+
* ''init'' [sysvinit] утиліта початкового завантаження;
''su'' смена пользователя текущей сессии или выполнение команды от имени указанного пользователя (по умолчанию root);
+
* ''ldconfig'' активування змін у файлі /etc/ld.so.conf щодо пошуку бібліотек динамічного лікування;
:-l  — с перечитыванием конфигурационных файлов;<br/>
+
: [[File:at.png]] Інколи має запускатися у випадку невизначення динамічних бібліотек.
''sudo'' — запуск отдельных программ от имени другого пользователя (нужно прописать в /etc/sudoers);<br/>
+
* ''ldd'' — відображення динамічних бібліотек, від яких залежить вказана програма або інша динамічна бібліотека, включно із можливістю знайти ці бібліотеки;
''shutdown'' выключение системы;<br/>
+
* ''locale'' — отримання інформації щодо налаштувань локалі;
''talk'' двухсторонний разговор с другим пользователем;<br/>
+
* ''localedef'' — створення нової локалі на основі базової;
''tload'' информация о загрузке системы;<br/>
+
* ''login'' — вхід у систему;
''top, htop'' вывод информации о процессах с сортировкой по занимаемому времени;<br/>
+
* ''logname'' — ім'я поточного користувача;
''tput'' управление терминалом;<br/>
+
* ''logrotate'' — засіб ротації журналів із автоматичним пакуванням, чищенням та іншою обробкою;
''tset, reset'' инициализация терминала на curses;<br/>
+
* ''lsof'' — перелік відкритих у системі файлів, сокетів, каналів, поділюваних бібліотек і інше;
''tty'' имя текущего псевдотерминала;<br/>
+
:* -p <n> — системних ресурсів, використаних процесом ''n''.
''ulimit'' управление ограничениями пользователей.<br/>
+
* ''man'', ''xman'' — відображення сторінок посібника;
''umask'' определяет маску прав, по которой будут создаваться новые файлы;<br/>
+
:* -k <word> — пошук сторінки за ключовим словом.
''uname'' печатает информацию о текущей OС;<br/>
+
* ''newgrp'' — зміна основної групи користувача або виконання команди від ім'я вказаної групи;
''unset''  — очистка/удаление переменных окружения (встроенная команда BASH);<br/>
+
* ''mesg'' — управління відображенням повідомлень від інших користувачів у поточному терміналі;
''uptime'' время непрерывной работы системы;<br/>
+
* ''ntpdate'' [NTP] синхронізація часу через Internet стрибком;
''users'' список пользователей в системе;<br/>
+
* ''passwd'' — зміна паролю користувача;
''userdel'' удаление пользователей из системы;<br/>
+
* ''pushd'', ''popd'' — розташування або вилучення каталогу із стеку каталогів;
''usermod'' изменение учетной записи пользователя;<br/>
+
* ''pwd'' — отримання повної назви поточного каталогу;
''vmstat'' информация об использовании виртуальной памяти;<br/>
+
* ''rlogin'' [SSH] вхід на віддалену систему;
''w'' информация о том что делает текущий пользователь;<br/>
+
* ''rpm'' [REDHAT] утиліта оперування RPM-пакетами:
''wall'' — передача широковещательного сообщения (всем пользователям системы);<br/>
+
:* -i <packet> — встановлення пакету;
''watch'' периодический запуск указанной программы;<br/>
+
:* -e <packet> видалення пакету;
''whoami'' сообщает имя текущего пользователя;<br/>
+
:* -U <packet> — оновлення пакету;
''write'' написать сообщение указанному пользователю;<br/>
+
:* -V <packet> — перевірка коректності встановлення/поточного стану вказаного пакету;
''ytalk''  — расширенная версия talk, с возможностью работы в X;
+
:* -a — виконання вказаної операції для усіх пакетів;
 +
:* -q — запит даних про пакет:
 +
::* f — пошук пакету, якому належить вказаний файл;
 +
::* i — виведення інформації про пакет;
 +
::* l — перелік файлів, що належать пакету;
 +
::* s — стан файлів пакету;
 +
::* d — перелік файлів документації пакету;
 +
::* c — перелік конфігураційних файлів пакету;
 +
::* p — виконання операції над ще невстановленим пакетом.
 +
* ''service'' [LSB] оперування сервісами у /etc/rc.d/init.d;
 +
:* {{InLineCode|<nowiki>service smb start</nowiki>}} — запуск сервісу Samba;
 +
* ''set'', ''unset'' [SH] — встановлення або очищення змінної оточення;
 +
* ''setarch'' — зміна заявленої архітектури нового середовища програми;
 +
* ''setfont'' — встановлення консольного екранного шрифту;
 +
* ''setsid'' — запуск програми у новому сеансі;
 +
* ''sftp'' [SSH] безпечний FTP клієнт;
 +
:* -i — файл ідентифікації для авторизації без паролю, фактично є приватним ключем на кшталт ''id_rsa'' якщо типовий не підходить.
 +
* ''slogin'' [SSH] вхід до системи за шифрованим протоколом SSH (те саме, що і SSH);
 +
* ''ssh'' — вхід до системи за шифрованим протоколом SSH або-ж віддалений запуск команд:
 +
:* {{InLineCode|<nowiki>ssh -X user@remserver.org</nowiki>}} шифрований вхід до віддаленої системи із транспортуванням X-протоколу;
 +
:* {{InLineCode|<nowiki>ssh user@remserver.org 'wget ftp://myfile'</nowiki>}} — запуск завантаження на віддаленому сервері;
 +
:* {{InLineCode|<nowiki>ssh -L [локальна_адреса:]локальний_порт:віддалена_адреса:віддалений_порт [користувач@]сервер -p портSSH</nowiki>}} — ініціювання тунелю порту.
 +
* ''ssh-keygen'' — проста генерація пари ключів, зазвичай у теку користувача ~/.ssh/;
 +
* ''sshfs'' — Fuse модуль для монтування файлової системи через SSH;
 +
* ''stty'' — отримання і встановлення параметрів терміналу, перевизначення спеціальних клавіш;
 +
* ''su'' — зміна користувача поточного сеансу або виконання команди від імені вказаного користувача (по замовченню — root);
 +
* ''sudo'' — запуск окремих програм від імені іншого користувача, яких необхідно прописати у /etc/sudoers;
 +
* ''shutdown'' — вимкнення системи;
 +
* ''systemctl'' [SYSTEMD] — управління сервісами;
 +
** start <service> — запуск;
 +
** stop <service> — зупинка;
 +
** restart <service> — перезапуск;
 +
** reload <service> — перевантаження;
 +
** enable <service> — увімкнення;
 +
** disable <service> — вимкнення.
 +
* ''talk'' — двостороння розмова із іншим користувачем;
 +
* ''tload'' — інформація щодо завантаження системи;
 +
* ''top'', ''htop'' — виведення інформації про процеси із сортуванням за часом;
 +
* ''tput'' — управління терміналом;
 +
* ''tset'', ''reset'' — ініціалізація терміналу на curses;
 +
* ''tty'' — назва поточного псевдотерміналу;
 +
* ''ulimit'' — управління обмеженнями користувачів.
 +
* ''umask'' — визначення маски прав для створення нових файлів;
 +
* ''uname'' — інформація про поточну OС;
 +
* ''uptime'' — час безперервного функціювання системи;
 +
* ''users'' — перелік користувачів у системі;
 +
* ''vmstat'' — інформація щодо використання віртуальної пам'яті;
 +
* ''w'' — інформація щодо активності поточного користувача;
 +
* ''wall'' — передавання широковіщального повідомлення — усім користувачам системи;
 +
* ''watch'' — періодичний запуск вказаної програми;
 +
* ''who'', ''finger'' — інформація щодо користувачів системи;
 +
* ''whoami'' — ім'я поточного користувача;
 +
* ''write'' — написання повідомлення вказаному користувачу.
  
 
=== Файлова система ===
 
=== Файлова система ===
''cdrecord'' запись CD дисков;
+
* ''cdrecord'' — запис CD дисків;
:cdrecord -v speed=2 dev=0,6,0 -data my.img<br/>
+
** {{InLineCode|<nowiki>cdrecord -v speed=2 dev=0,6,0 -data my.img</nowiki>}}
''cfdisk'' конфигурация разделов диска;<br/>
+
* ''cfdisk'' — конфігурація розділів диску;
''edquota'' редактирование квот файловой системы;<br/>
+
* ''edquota'' [QUOTA] редагування квот файлової системи;
''fdformat'' Форматирование дискеты;<br/>
+
* ''fdformat'' [fdtools] низькорівневе форматування дискети;
''fdisk'' работа с разделами диска;<br/>
+
* ''fdisk'' — операції із розділами диску;
''fsck'' — проверка файловой системы указанного типа;<br/>
+
* ''fsck -t {type}'', ''fsck.{type}'' — перевірка файлової системи визначеного типу ''type'';
''fsck.<fs>'' проверка файловой системы типа <fs>;
+
** {{InLineCode|<nowiki>fsck.vfat /dev/fd0</nowiki>}} перевірка файлової системи FAT12 на гнучкому диску.
:fsck.vfat /dev/fd0 проверка файловой системы FAT12 на флоппи диске.<br/>
+
* ''gnome-disks'' [GNOME] графічна програма для оперування дисками, включно зі зміною розділів, отриманням SMART і перевіркою швидкості;
''hdparm'' установка параметров дисковой подсистемы;<br/>
+
* ''hdparm'' — встановлення параметрів дискової підсистеми;
''loadlin.exe'' загрузка ядра linux из ОС DOS;<br/>
+
* ''losetup'' — створення петльового пристрою (loop) із криптуванням;
''losetup'' создание петлевого устройства(loop) с криптованием;
+
** {{InLineCode|<nowiki>losetup -k 192 -e aes /dev/loop4 /tmp/file.iso</nowiki>}} створення дискового пристрою ''loop4'' на ''file.iso'' із криптуванням.<br/>
:losetup -k 192 -e aes /dev/loop4 /tmp/file.iso создание loop4 на file.iso с криптованием.<br/>
+
* ''mkfs -t {type}'', ''mkfs.{type}'' — створення ФС визначеного типу ''type'' на фізичний розділ або файл;
''mkfs'' — создает FS указаного типа как на физический раздел, так и в файл;<br/>
+
** {{InLineCode|<nowiki>mkfs.vfat /dev/fd0</nowiki>}} створення файлової системи FAT12 на гнучкому диску.
''mkfs.<fs>'' создание FS типа <fs>;
+
* ''mkisofs'' — створення ISO-штампу із каталогу;
:mkfs.vfat /dev/fd0 создание файловой системы FAT12 на флоппи диске.<br/>
+
** {{InLineCode|<nowiki>mkisofs -r -o my.iso /usr/games</nowiki>}}
''mkisofs'' создание ISO образа из каталога;
+
* ''mount'', ''umount'' монтування-підключення/демонтування-відключення файлових систем;
:mkisofs -r -o my.iso /usr/games<br/>
+
** -o {opt1}[,{opt2}[,{optN}]] — параметри монтування:
''mount'' монтирование файловых систем:
+
*** "quiet" мовчазне копіювання/перенесення файлів без питань щодо неможливості зміни прав доступу (для ФС на кшталт FAT);
:Важные опции:
+
*** "iocharset={code}" кодування здійснення введення/виведення (для ФС FAT, NTFS і UDF);
::quiet позволяет копировать/переносить файлы без вопросов о невозможности смены прав доступа (для ФС типа FAT);
+
*** "codepage={code}" кодова сторінка збереження назв файлової системи (для ФС FAT);
::iocharset кодировка в которой производится ввод/вывод (для ФС FAT, NTFS и UDF);
+
*** "showexec" коректно відображати виконувальні файли (для ФС FAT);
::codepage кодовая страница в которой хранится монтируемая файловая система (для ФС FAT);
+
*** "rw" монтування у режимі читання-запис;
::showexec отображать корректно запускаемые файлы (для ФС FAT);
+
*** "ro" монтування у режимі лише читання.
::rw монтировать в режиме чтение-запись;
+
** {{InLineCode|<nowiki>mount -t smbfs -o username=tridge,password=foobat //c/data/test</nowiki>}} монтування мережевого диску ''//c'' на теку ''/data/test'';
::ro монтировать в режиме только для чтения.
+
** {{InLineCode|<nowiki>mount -t ext2 /dev/fd0 /mnt</nowiki>}} монтування гнучкого диску із FS "ext2" на теку ''/mnt'';
:Примеры:
+
** {{InLineCode|<nowiki>mount [-t auto] /dev/fd0 /mnt</nowiki>}} монтування гнучкого диску на теку ''/mnt'' із автоматичним визначенням типу ФС;
::mount -t smbfs - o username=tridge, password=foobat //c/data/test монтирование сетевого диска //c на каталог /data/test;
+
** {{InLineCode|<nowiki>mount host:/mnt/export /mnt/local</nowiki>}} монтування теки ''/mnt/export'' віддаленої машини ''host'' на локальну теку ''/mnt/local'';
::mount -t ext2 /dev/fd0 /mnt монтирование флоппи диска с FS ext2 на каталог /mnt;
+
** {{InLineCode|<nowiki>mount -t iso9660 -o ro,loop=/dev/loop0 /my.iso /mnt/cdrom2</nowiki>}} створення loop-пристрою зі штампу CDROM;
::mount [-t auto] /dev/fd0 /mnt монтирование флоппи диска на каталог /mnt с автоматическим определением системы;
+
** {{InLineCode|<nowiki>mount -t cdfs /dev/cdrom /mnt/cdrom</nowiki>}} перегляд/редагування CD-диску як є, із сесіями;
::mount host:/mnt/export /mnt/local монтирование директории /mnt/export удаленной машины host на локальную директорию /mnt/local;
+
** {{InLineCode|<nowiki>mount --bind /home /var/local</nowiki>}} підключення каталог ''/home'' до іншого каталогу ''/var/local''.
::mount -t iso9660 -o ro,loop=/dev/loop0 /my.iso /mnt/cdrom2 создание loop устройства из образа CDROM;
+
* ''parted'', ''gparted'' [GNOME] потужний менеджер дискових розділів;
::mount -t cdfs /dev/cdrom /mnt/cdrom позволяет увидеть/отредактировать CD диск как есть (с сессиями);
+
* ''quota'' [QUOTA] менеджер обмежень-квот ФС;
::mount -bind /home /var/local — подключить каталог /home к каталогу /var/local.<br/>
+
* ''quotaon'', ''quotaoff'' [QUOTA] увімкнення/вимкнення обмежень-квот ФС;
''parted''  очень мощный манипулятор дисковыми разделами;<br/>
+
* ''quotacheck'' [QUOTA] перевірка обмежень-квот ФС;
''quota''  — квоты для текущего пользователя;<br/>
+
* ''quotastats'' [QUOTA] стан обмежень-квот ФС;
''quotaon'' — включение квот;<br/>
+
* ''tune2fs'' — зміна параметрів ФС ext2/3/4;
''quotaoff''  — выключение квот;<br/>
+
* ''resize2fs'' — зміна розміру файлової системи ext2/3/4 на розділі.
''quotacheck''  — проверка квот файловой системы;<br/>
+
* ''swapon'', ''swapoff'' — увімкнення/вимкнення розділу підкачування пам'яті;
''quotastats''  — состояние квот файловой системы;<br/>
+
* ''sync'' — скидання буферів на диск.
''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/>
+
* ''badblocks'' — перевірка твердотілих носіїв (HDD, FDD) на погані блоки;
''dmesg'' протокол обнаружения оборудования ядром системы, как при загрузки, так и в процессе функционирования;<br/>
+
** -w — перевіряти запис;
''dmidecode'' декодер информации BIOS об оборудование системы и самом BIOS;<br/>
+
** -s — показувати прогрес.
''hwclock'' установка/считывание аппаратных часов (CMOS);<br/>
+
* ''dmesg'' — журнал ядра Linux із повідомленнями виявлення обладнання як під час завантаження, так і у процесі функціювання;
''kbd_mode'' установка режима работы клавиатуры (RAW, MEDIUMRAW, XLATE, UNICODE);<br/>
+
* ''dmidecode'' — декодування інформації BIOS щодо обладнання системи і самої BIOS;
''lpr'' печать с файла или с потока на указанный принтер;
+
* ''hwclock'' — відображення/встановлення апаратного годинника (CMOS);
:lpr -P lp1 my.txt печать файл my.txt на принтер lp1<br/>
+
* ''i2cdetect'' — виявлення пристроїв на шині I2C;
''lpq, lpstat'' состояние очереди печати;<br/>
+
* ''kbd_mode'' — встановлення режиму функціювання клавіатури (RAW, MEDIUMRAW, XLATE, UNICODE);
''lprm'' удаление задания печати из очереди;<br/>
+
* ''lpr'' — BSD lpr/lpd система лінійного виводу на друкарку з буферизуванням;
''lscpu'' — перечень и информация о процессорах в системе;<br/>
+
** {{InLineCode|<nowiki>lpr -P lp1 my.txt</nowiki>}} друк файлу ''my.txt'' на принтер ''lp1''.
''lshal'' перечень оборудования обнаруженного и зарегистрированого в абстрактном слое оборудования HAL;<br/>
+
* ''lscpu'' — перелік та інформація про процесори у системі;
''lshw'' мощная утилита сбора информации об оборудовании системы;<br/>
+
* ''lshw'' — збір інформації щодо обладнання системи;
''lspci'' выводит список устройств на PCI - шине;<br/>
+
* ''lspci'' — перелік пристроїв на PCI шині;
''lsusb'' перечень устройств на USB-шине;<br/>
+
* ''lsusb'' — перелік пристроїв на USB шині;
''pbm*'' преобразование, из графического формата *.pdm в формат принтера [*];<br/>
+
* ''mbw'' — вимірювання продуктивності пам'яті декількома методами;
''pciscan'' сканирование PCI-шины и отображение модулей(драйверов) необходимый для работы с устройствами на PCI-шине;<br/>
+
** {{InLineCode|<nowiki>mbw -b 1048576 2048</nowiki>}} — перевірка продуктивності пам'яті методами MEMCPY, DUMB, MCBLOCK для обсягу у 2048 MiB і розміру блоку 1048576 B.
''setleds'' установка светодиодов на клавиатуре;<br/>
+
* ''memtest'' [BOOT] тестування пам'яті із отриманням інформації про неї та із певним вимірюванням продуктивності, запускається із завантажувача;
''setserial'' установка/конфигурация COM портов;<br/>
+
* ''pbm{format}'' — перетворення із графічного формату *.pdm у формат принтеру ''format'';
''setterm'' установка параметров терминала;<br/>
+
* ''setleds'' — встановлення світлодіодів на клавіатурі;
''showkey'' утилита для отображения сканкодов клавиш и кодов мапированных системой;<br/>
+
* ''setserial'' — контроль конфігурації послідовних портів;
''statserial'' утилита для контроля за состоянием последовательного(COM) порта;<br/>
+
** {{InLineCode|<nowiki>setserial -g /dev/ttyS[0123]</nowiki>}} — отримання налаштувань COM-портів із 1 по 4.
''tunelp'' установка параметров параллельного порта;<br/>
+
* ''setterm'' — встановлення параметрів терміналу;
''usbview'' утилита для просмотра и конфигурации USB-устройств.
+
* ''showkey'' — відображення сканкодів клавіш і кодів системної карти;
 +
* ''smartctl '' — контроль SMART дискових носіїв;
 +
** -A {dev} — показати коротку інформацію по пристрою ''dev'';
 +
** -a {dev} — показати повну інформацію по пристрою ''dev'';
 +
** --test={name} — запустити самотестування ''name'' (offline, short, long, ...) по пристрою ''dev''.
 +
* ''statserial'' — контроль стану статусних ліній модему послідовного порту;
 +
* ''sysbench'' — програма із набором тестів продуктивності компонентів системи;
 +
** {{InLineCode|<nowiki>sysbench --test=memory --memory-total-size=4G --memory-block-size=1M run</nowiki>}} — перевірка продуктивності пам'яті обсягом 4 GiB та блоком у 1 MiB.
 +
* ''testdisk'' — сканер розділів і інструмент відновлення диску, і PhotoRec інструмент відновлення файлів;
 +
* ''usbview'' — огляд і конфігурація USB-пристроїв.
 +
 
 +
=== Графіка ===
 +
* ''appres'' [X11] — отримання інформації щодо ресурсів X-додатків;
 +
* ''fc-match'' [FontConfig] — отримання інформації щодо використаного шрифту (файлу) для вказаного шаблону шрифту;
 +
** {{InLineCode|<nowiki>fc-match Arial</nowiki>}} — отримання шрифту, використовуваного для "Arial".
 +
* ''glxgears'' [GLX] поверхневе тестування GLX (OpenGL) та визначення загальної його працездатності;
 +
* ''glxinfo'' [GLX] — отримання інформації щодо розширення GLX (OpenGL);
 +
* ''listres'' [X11] — перелік ресурсів X-додатків;
 +
* ''mogrify'' [ImageMagic] — перетворення графічних файлів у інший формат;
 +
** {{InLineCode|<nowiki>mogrify -format jpg *.png</nowiki>}} — перетворення PNG у JPEG.
 +
* ''plymouth-set-default-theme'' [PLYMOUTH] оперування темами графічної заставки запуску, яка передує безпосередньо графічному інтерфейсу;
 +
** {{InLineCode|<nowiki>plymouth-set-default-theme --list</nowiki>}} — отримання переліку наявних тем;
 +
** {{InLineCode|<nowiki>plymouth-set-default-theme lines --rebuild-initrd</nowiki>}} — встановлення теми "lines" із перескладанням образу попереднього ініціалізації системи.
 +
* ''showrgb'' — найменування і значення стандартних кольорів;
 +
* ''startx'' [X11] — скрипт запуску X-серверу;
 +
** {{InLineCode|<nowiki>startx -- :2</nowiki>}} — запуск ще одного екземпляру X під номером 2;
 +
** {{InLineCode|<nowiki>startx -- -depth 24</nowiki>}} — запуск X-серверу із глибиною кольору 24 біти.
 +
* ''x11vnc'' — запуск VNC-серверу до графічного сеансу користувача, і що корисно при віддаленому SSH підключені для графічного підключення до стільниці;
 +
** {{InLineCode|<nowiki>x11vnc -display :0</nowiki>}} — запуск VNC до дисплею ":0", який є типовим на системах із одним сеансом X11.
 +
* ''xdpyinfo'' [X11] інформація щодо дисплею, зокрема і DPY;
 +
* ''xev'' [X11] — перегляд інформації щодо подій у вікні;
 +
* ''xfontsel'' [X11] — вибір шрифтів для X-серверу;
 +
* ''xhost'' [X11] — управління доступом віддалених хостів до X-серверу;
 +
* ''xinit'' [X11] — утиліта запуску X із вказаним додатком, по замовченню — '''xterm''';
 +
** {{InLineCode|<nowiki>xinit /usr/bin/icewm -- :1</nowiki>}} — запуск разом із ICEWM.
 +
* ''xkill'' [X11] завершення віконного додатку;
 +
* ''xlsfonts'' [X11] — перелік шрифтів X-серверу;
 +
* ''xmag'' [X11] — збільшення частини екрану;
 +
* ''xprintidle'' [X11] — друк часу неактивності графічного інтерфейсу у мілісекундах;
 +
: [[file:at.png]] Деякі програми можуть цей час умисно скидати для запобігання блокування екрану, а деякі можуть це здійснювати за помилкою, забуваючи припинити, як то: Chromium (MS Teams, ...) — починаючи із Debian 12 ця проблема не спостерігається.
 +
* ''xprop'' [X11] — виведення властивостей обраного вікна;
 +
* ''xrefresh'' [X11] оновлення-перемалювання екрану;
 +
* ''xset'' [X11] встановлення параметрів X-серверу;
 +
* ''xvidtune'' [X11] — налаштування параметрів монітору як то частоти кадрів та рядків;
 +
* ''xvinfo'' [X11] — інформація з розширення XV;
 +
* ''xwininfo'' [X11] — інформація щодо вказаного вікна;
 +
* ''xwd'' [X11] — захоплення зображення на екрані.
  
 
=== Мультимедіа ===
 
=== Мультимедіа ===
''alsamixer'' — ALSA-микшер;<br/>
+
* ''alsamixer'' [ALSA] мікшер звукової підсистеми ALSA;
''aumix'' консольный AUDIO-микшер;<br/>
+
* ''aumix'' — простий консольний AUDIO-мікшер;
''cdparanoia'' позволяет «грабить» Audio-CD;<br/>
+
* ''cdparanoia'' — вичитування Audio-CD;
''lame'' преобразование *.wav в *.mp3;<br/>
+
* ''ffmpeg'' — утиліта перекодування відео-аудіо файлів між різними форматами;
''mencoder'' перекодировка видеофайлов с одного видеоформата в другой;
+
** -i {mfile} — показати інформацію за медіа-файлом ''mfile'';
:mencoder dvd://1 -oac mp3lame -ovc xvid -xvidencopts bitrate=800 -o 1.avi перекодировка первой дорожки DVD-диска с битрейтом 800 аудио-кодеком mp3lame и видео-кодеком xvid.<br/>
+
** -vcodec {codec} — selection a videocodec like to libx264, libx265; call for all {{InLineCode|<nowiki>ffmpeg -codecs</nowiki>}};
''oggenc'' преобразование *.wav в *.ogg;<br/>
+
** {{InLineCode|<nowiki>ffmpeg -i video.mp4 -c:v vp9 -c:a libopus -f webm video.webm</nowiki>}} — перекодування у формат WEBM для гарантованого програвання у будь якому WEB-оглядачі;
''play'' проигрывание звуковых файлов;<br/>
+
* ''mencoder'' [MPlayer] утиліта перекодування відеофайлів між різними форматами;
''rec'' запись в звуковой файл.
+
** {{InLineCode|<nowiki>mencoder dvd://1 -oac mp3lame -ovc xvid -xvidencopts bitrate=800 -o 1.avi</nowiki>}} перекодування першої доріжки DVD-диску із бітрейтом 800, аудіокодеком mp3lame і відеокодеком xvid.
 +
* ''oggenc'' — бібліотека та утиліта кодування OGG;
 +
* ''play'' [SOX] програвання звукових файлів з консолі;
 +
* ''rec'' [SOX] — запис звуку до файлу;
 +
* ''<nowiki>yt-dlp</nowiki>'' — завантаження відео-потоків зі стріменгових ресурсів.
 +
** {{InLineCode|<nowiki>yt-dlp https://stream.url -o "%(id)s.%(ext)s"</nowiki>}} вивантаження потоку у файл із назвою за шаблоном.
  
 
=== Мережа ===
 
=== Мережа ===
''arp'' манипуляция системным ARP кешем (манипуляция аппаратными адресами);<br/>
+
* ''arp'' — оперування системним ARP-кешем (апаратними адресами);
''ethereal''  — мощный анализатор трафика сети;<br/>
+
* ''bluetoothctl'' — контроль мережі BlueTooth;
''ettercap'' cнифер(нюхатель) сети;<br/>
+
** scan [on|off] — увімкнути сканування мережі;
''iptraf'' мощный и удобный сканер сети;<br/>
+
** pair <addr> — спарувати пристрій із адресою ''addr'';
''ifconfig'' утилита конфигурации сетевых интерфейсов (eth0, ppp0, lp0 ...);
+
** trust <addr> — позначити пристрій із адресою ''addr'' довіреним.
:down выключить интерфейс;
+
* ''curl'' потужний інструмент обміну файлами у мережі, а також формування довільних запитів;
:up включить интерфейс;
+
** {{InLineCode|<nowiki>curl -T ./loc.file -u {user}:{passw} ftp://dest.org</nowiki>}} — вивантаження локального файлу "loc.file" на FTP-сервер "dest.org" за визначеними даними автентифікації "{user}:{passw}".
:inet <ip> интерфейс с <ip> адресом;
+
* ''ethtool'' [OLD] — отримання статусу мережевого інтерфейсу щодо підключення і його режиму, замінено '''mii-tool''';
:hw ether <mac> установить MAC адрес интерфейса;
+
* ''ettercap'' — cніфер-нюхач мережі;
:eth0:0  — псевдоним eth0:0 на интерфейс eth0.<br/>
+
* ''iptraf'' — потужний і зручний сканер мережі;
''iftop'' — контроль общего трафика по интерфейсам;<br/>
+
* ''ifconfig'' — системна утиліта конфігурування мережевих інтерфейсів (eth0, ppp0, ...);
''ip'' основная утилита конфигурации роутинга, из IPROUTE2;
+
** down <if> вимкнути інтерфейс ''if'';
:link физические интерфейсы;
+
** up <if> увімкнути інтерфейс ''if'';
:address адреса и их ассоциации с физическими интерфейсами;
+
** inet <ip> — інтерфейс із ''ip'' адресою;
:route роутинг интерфейсов.<br/>
+
** hw ether <mac> — встановити MAC-адресу інтерфейсу.
''ipchains'' утилита конфигурации firewall на основе IP-цепочек (ядра 2.2.*);<br/>
+
* ''iftop'' — контроль загального трафіку за інтерфейсом(и);
''iptables'' утилита конфигурации firewall на основе IP-таблиц (ядра 2.4.*);<br/>
+
* ''ip'' — основна утиліта конфігурування маршрутизації, із IPROUTE2;
''lynx'' — консольный WEB-браузер. Может использоваться для выполнения различных действий над WEB-страницами в скриптах.
+
** link — фізичні інтерфейси;
:lynx -dump -width=100 file://mypage.html > mypage.txt — преобразование html-страницы в текст.<br/>
+
** address — адреси та їх асоціації із фізичними інтерфейсами;
''minicom, xminicom'' установка соединения с другой системой через модем(COM);<br/>
+
** route — маршрутизація інтерфейсів.<br/>
''netstat''  — состояние сети (отображает используемые сокеты и их состояния);
+
* ''iwconfig'' — конфігурування та контроль бездротових мережевих інтерфейсів;
:-a вывод всех сокетов;
+
** power [on|off] — увімкнення або вимкнення керування живленням інтерфейсу.
:-e показать какой пользователь работает с сокетом в настоящий момент.<br/>
+
* ''iptables'' — утиліта конфігурування FIREWALL на основі IP-таблиць;
''nmap,nmapfe'' — сканер сети и его GUI, можно получить перечень открытых портов и т.д;<br/>
+
* ''lynx'' — класичний неграфічний (текстовий) вебоглядач;
''nmblookup'' утилита работы с NetBIOS (для SMB);
+
** {{InLineCode|<nowiki>lynx -dump -width=100 file://mypage.html > mypage.txt</nowiki>}} перетворення html-сторінки у текст.
:nmblookup -B Host '*' возвращает IP адрес <Host>;
+
* ''mii-tool'' — отримання статусу мережевого інтерфейсу щодо підключення і його режиму;
:nmblookup -d 2 '*'  — посылка широковещательных сообщений.<br/>
+
* ''minicom'', ''cutecom'' програма оперування послідовними інтерфейсами і модемами;
''ping'' проверка связи с удаленным хостом, путём посылки служебных тестовых сообщений;<br/>
+
* ''netstat''  — отримання стану мережі, відображає використані сокети і їх стан;
''route'' утилита управление таблицей маршрутизации;
+
** -a — виведення усіх сокетів;
:delete удаление указанного роутинга;
+
** -e — відображення користувача, що працює із сокетом на цей час.
:add — добавление указанного роутинга;<br/>
+
* ''nmap'' — сканер мережі, яким можна отримати перелік відкритих портів та інше;
''rsync'' утилита для работы с протоколом rsinc, который, в свою очередь, используется для синхронизации по сети;
+
* ''nmcli'' [NetworkManager] — консольна утиліта керування підключеннями Менеджеру Мережі;
:rsync -va --partial --stats --delete-after -e ssh ./ devel:/incoming/backports/2.4/ — отправка пакетов в репозиторий ALTLinux Sisyphus путём синхронизации локальной директории с удалённым сервером.<br/>
+
** {{InLineCode|<nowiki>nmcli connection import type openvpn file mycon.ovpn</nowiki>}} — імпорт файлу конфігурації OpenVPN ''mycon.ovpn''.
''smbclient'' утилита для организации клиентских запросов к SMB-серверу;<br/>
+
* ''ping'' — перевірка зв'язку із віддаленим вузлом шляхом надсилання службових тестових повідомлень;
''smbprint'' печать на SMB-принтер;<br/>
+
* ''puttygen'' [Putty] утиліта перетворення сертифікатів Putty (файли *.ppk) у формат OpenSSH;
''traceroute'' проверка прохождения сетевых пакетов через сервера в сети;<br/>
+
** {{InLineCode|<nowiki>puttygen my.ppk -O private-openssh -o my.key</nowiki>}} — вилучення приватного сертифікату;
''tcpdump'' дамп TCP протокола, позволяет отслеживать различные запросы;<br/>
+
** {{InLineCode|<nowiki>puttygen my.ppk -O public-openssh -o my.pub</nowiki>}} — вилучення публічного сертифікату.
''testparm'' проверка конфигурации файла smb.conf для SMB-сервера;<br/>
+
* ''rfcomm'' — менеджер послідовних підключень через Bluetooth;
''wget'' мощная утилита для выкачивания файлов из сети по протоколам: HTTP, HTTPS, и FTP.
+
** {{InLineCode|<nowiki>rfcomm bind 0 40:2B:6D:EF:48:A7</nowiki>}} — зв'язування пристрою 40:2B:6D:EF:48:A7 із послідовним портом /dev/rfcomm0.
 +
* ''route'' — класична утиліта управління таблицею маршрутизації;
 +
** delete <route> видалення маршруту ''route'';
 +
** add <route> ... — додання маршруту ''route''.
 +
* ''rsync'' — утиліта оперування протоколом "rsinc" для синхронізації у мережі;
 +
** {{InLineCode|<nowiki>rsync -va --partial --stats --delete-after -e ssh ./ devel:/incoming/backports/2.4/</nowiki>}} надсилання пакетів до репозиторію ALTLinux Sisyphus шляхом синхронізації локального каталогу із віддаленим сервером.
 +
* ''smbclient'' [SMB/CIFS] утиліта організації клієнтських запитів до SMB-серверу;
 +
* ''traceroute'' — перевірка проходження мережевих пакетів через сервери у мережі;
 +
* ''tcpdump'' — дамп TCP протоколу для відстеження різних запитів;
 +
** {{InLineCode|<nowiki>tcpdump -i br0 -s 65535 -w traf.log 'host 192.168.1.1'</nowiki>}} запис трафіку за хостом 192.168.1.1 на інтерфейсі "br0" у файл "traf.log", який можна переглянути '''WireShark''';
 +
** {{InLineCode|<nowiki>tcpdump -i br0 -s 65535 -w traf.log 'tcp port 80'</nowiki>}} — запис TCP-трафіку за портом 80 на інтерфейсі "br0" у файл "traf.log", який можна переглянути '''WireShark'''.
 +
* ''telnet'' — утиліта-сервіс контролю хостів в мережі через отримання віддаленого терміналу;
 +
* ''wget'' — потужна утиліта завантаження файлів з мережі за різноманітними протоколами, як то HTTP, HTTPS, FTP.
 +
** -P <dir> — тека цільового завантаження.
  
 
=== Пошта ===
 
=== Пошта ===
''mail, mailx'' создать сообщение;<br/>
+
* ''mail'', ''mailx'' — створити повідомлення;
''mailq'' показать очередь отправляемых сообщений;<br/>
+
* ''mailq'' [POSTFIX] показати чергу повідомлень відправлення;
''mutt,pine'' консольный почтовый клиент;<br/>
+
* ''mutt'' — консольний поштовий клієнт;
''newaliases'' добавляет новые почтовые алиасы сервера исходящих сообщений;<br/>
+
* ''procmail'' — інструмент обробки поштових повідомлень;
''procmail'' утилита автоматизации обработки почтовых сообщений;<br/>
+
* ''sendmail'' [POSTFIX] — надсилання поштових повідомлень і управління сервером вихідної пошти.
''sendmail'' управление сервером исходящей почты.
+
** -q{time} — опрацювати повідомлення у черзі;
:-q[time]  обработать сообщения в очереди;
+
** -v — режим друку супровідних повідомлень.
:-режим печати сопровождающих сообщений.
+
 
 +
=== Бази Даних ===
 +
* ''mysql'' [MYSQL] — доступ до БД MySQL;
 +
** {{InLineCode|<nowiki>mysql --default-character-set=utf8 --user=root -p db < ./db.sql</nowiki>}} — імпорт-ініціалізація вмісту БД ''db'' із файлу SQL-команд "db.sql".
 +
* ''mysqldump'' [MYSQL] формування SQL-дампів від БД MySQL;
 +
** {{InLineCode|<nowiki>mysqldump -Q --user=root -p db > db.sql</nowiki>}} — експорт-дамп вмісту БД ''db'' до файлу SQL-команд у нотації MySQL;
 +
* ''sqlite3'' — доступ до файлів БД SQLite версії 3.
 +
** {{InLineCode|<nowiki>sqlite3 my.db '.dump --newlines' > my.db.sql</nowiki>}} експорт-дамп вмісту файлу БД ''my.db'' до файлу SQL-команд у нотації SQLite;
 +
** {{InLineCode|<nowiki>sqlite3 -init my.db.sql my.db .exit</nowiki>}} імпорт-ініціалізація вмісту файлу БД "my.db.sql" у нотації SQLite до бінарного файлу БД.
  
 
=== Ядро Linux ===
 
=== Ядро Linux ===
''depmod'' проверка зависимостей модулей (выполняется при добавлении новых модулей);
+
* ''depmod'' — перевірка залежностей модулів, яка здійснюється при додаванні нових модулів;
:-a проверка модулей по всей структуре /lib/modules и внесение соответствующих изменений;<br/>
+
** -a — перевірка модулів по всій структурі "/lib/modules" та внесення відповідних змін;
''installkernel'' скрипт инсталляции ядра (используется после компиляции ядра - make install);<br/>
+
* ''installkernel'' — сценарій встановлення ядра, який використовується після компіляції ядра за {{InLineCode|<nowiki>make install</nowiki>}};
''lsmod'' получение списка загруженных и работающих модулей;<br/>
+
* ''lsmod'' — отримання переліку завантажених і функціонуючих модулів із залежностями;
''insmod'' подключение модуля к ядру;<br/>
+
* ''insmod'', ''rmmod'' підключення/відключення модуля до ядра;
''modinfo'' получение информации о модуле и его параметрах;<br/>
+
* ''modinfo'' — отримання інформації щодо модуля і його параметрах;
''modprobe'' утилита управления модулями ядра, без параметров подключает модуль к ядру;
+
* ''modprobe'' — управління модулями ядра, без параметрів підключає модуль до ядра;
:-с  — перечисляет все сконфигурированные сокращения, опции и команды для модулей;
+
** -r — вивантаження модуля.
:-l  — перечисляет все возможные модули;
+
* ''procinfo'' — отримання інформації о процесах (/proc) і системі (/sys);
:-r выгружает модуль;<br/>
+
* ''sysctl'' — конфігурація системних параметрів (/proc/sys/) ядра.
''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/>
+
* ''libata.dma'' — прапорці увімкнення DMA до певних систем (1-PATA/SATA; 2-ATAPI-CDROM; 4-CF);
''ar'' создание/редактирование архивов(статических библиотек) из объектных модулей;<br/>
+
: [[File:at.png]] На системах із CF і певних версіях ядра, загальне увімкнення DMA (7) призводить до конфлікту із ATAPI, що вирішується увімкненням DMA лише для CF (4)!
''autoconf'' утилита из инструментария Autoconf, генерирует скрипт configure на основе configure.in;<br/>
+
* ''libata.force'' — примусове встановлення параметрів дискової підсистем як загалом, так і для окремих пристроїв;
''automake'' утилита из инструментария Automake, генерирует Makefile.in на основе Makefile.am;
+
** {{InLineCode|<nowiki>libata.force=1:udma33</nowiki>}} — встановлення режиму UDMA/33 для пристрою 1.
:r  — добавление новых и замена старых файлов;
+
* ''radeon.dpm'' — увімкнення/вимкнення DPM у відеоконтролерів на RADEON.
:c  — создание библиотеки при её отсутствии.<br/>
+
: [[File:at.png]] Вимкнення DPM може виправити перезапуск одразу після завантажувача на різних RADEON відеоадаптерах!
''cpp'' препроцессор языка C (обычно вызывается из gcc);<br/>
+
* ''nouveau.noaccel'' — вимкнення 3D акцелерації у відеоконтролерів на NVidia.
''ctags'' генерирует тег-файл для облегчения навигации по коду (используется редактором VIM);
+
: [[File:at.png]] Може запобігти артифачингу із зависанням на вбудованих NVidia контролерах разом із 3D! :)
:-e  — эмуляция etags для генерации тег-файлов для emacs.<br/>
+
 
''ctrace''  — для прослеживания выполнение C-программы по операторам;<br/>
+
=== Розробка ===
''cxref'' анализирует группу .c-файлов и строит для каждого файла таблицу перекрестных ссылок на автоматические, статические и глобальные имена.<br/>
+
* ''aclocal'' [AUTOTOOLS] — генерація макросу "aclocal.m4" із файлу "configure.in";
''dialog'' позволяет создавать диалоги в консоли, из скрипта (на основе ncurses);<br/>
+
* ''adb'' [Android] міст налагодження Android (Android Debug Bridge);
''diff'' поиск изменений в сравниваемых текстовых файлах;
+
:* {{InLineCode|<nowiki>adb devices</nowiki>}} — перелік пристроїв на USB для налагодження і авторизація PC для налагодження Android;
:diff -uNr каталог.orig каталог > my.patch   создание патча;<br/>
+
::* на деяких пристроях видає повідомлення — "<nowiki>no permissions (user in plugdev group; are your udev rules wrong?); ...</nowiki>"; що виправляється:
''f2c'' транслирует исходный код программы на языке "Fortran" в исходный код на языке "C";<br/>
+
<syntaxhighlight lang="bash" style="margin-left: 40pt">
''gcc'' — GNU коллекция компиляторов языка С,С++,ASM (с вызовом линкера);
+
apt-get install android-sdk-platform-tools-common
:-x lang определяет язык исходных модулей;
+
cp /lib/udev/rules.d/51-android.rules /etc/udev/rules.d/
:-c компилирует и собирает ранее или позже перечисленные исходные файлы;
+
</syntaxhighlight>
:-S компилирует перечисленные исходные файлы в *.s файлы;
+
:* {{InLineCode|<nowiki>adb shell</nowiki>}} — підключення до консолі пристрою Android;
:-E производит первичную обработку исходных файлов;
+
:* {{InLineCode|<nowiki>adb pull sdcard/btsnoop_hci.log ./</nowiki>}} — вивантаження файлу із пристрою Android (btsnoop_hci.log доступний на Android < 8);
:-o rez  — собрать перечисленные obj-файлы в один файл <rez>;
+
:* {{InLineCode|<nowiki>adb push test.apk sdcard</nowiki>}} — завантаження файлу на пристрій Android;
:-L определяет пути поиска библиотек;
+
:* {{InLineCode|<nowiki>adb install test.apk</nowiki>}} — завантаження і встановлення APK-пакету на пристрій Android;
:-l определяет перечень статических библиотек (без lib* и *.a);
+
:* {{InLineCode|<nowiki>adb shell dumpsys bluetooth_manager > dumpsys.log</nowiki>}} — отримання дампу сервісу "bluetooth_manager", який надалі може бути оброблений [https://github.com/nokia/rcm-bluez/blob/master/android_8_1/bt_mobile_android8_1/system/bt/tools/scripts/btsnooz.py btsnooz.py] для вилучення btsnoop_hci.log на сучасних версіях Android.
:-w запрет отображения предупреждений компилятора;
+
* ''ar'' — створення/редагування архівів статичних бібліотек з об'єктних модулів;
:-Wall генерировать все возможные предупреждающие сообщения;
+
* ''autoconf'' [AUTOTOOLS] генерація скрипту '''configure''' із "configure.in";
:-pedantic проверка исходного текста на соответствие стандарту ANSI;
+
* ''automake'' [AUTOTOOLS] генерація "Makefile.in" із "Makefile.am";
:-Wl различные опции линковщика:
+
* ''cpp'' [C] препроцесор мови C, зазвичай викликається із gcc;
::,rpath определяет дополнительные пути поиска динамических библиотек (-Wl,rpath,/usr/newpath);
+
* ''ctags'' — генерація тег-файлу для полегшення навігації по коду, використовується редактором VIM;
::,soname название разделяемой библиотеки (-Wl,-soname,libfuncs.so.1).
+
* ''cxref'' [C] аналіз групи С-файлів і побудова для кожного файлу таблиці перехресних посилань на автоматичні, статичні і глобальні імена;
:-fPIC создание объектных файлов для динамических библиотек (PIC - Position Independent Code.)
+
* ''dialog'' [ncurses] створення діалогів у консолі із скрипту;
:-shared создание динамической библиотеки (совместно с -o);
+
* ''diff'' — пошук змін у порівнюваних текстових файлах;
:-nostdlib не использовать стандартные системные запускающие файлы или линкующиеся библиотеки;
+
** {{InLineCode|diff -uNr dir/old dir/new > my.patch}} створення латки;
:-static принуждает использовать статические библиотеки вместо динамических;
+
* ''dpkg-buildpackage'' [DEBIAN] утиліта побудови DEB-пакетів:
:-rdynamic включает возможность использования символьной информации для разрешения ссылок в динамически загружаемых библиотеках;
+
** -b — складання лише бінарних пакунків без джерельних;
:-M  — для каждого файла с исходным текстом препроцессор будет выдавать на стандартный вывод список зависимостей в виде правила для программы make;
+
** -j[<number>|auto] — кількість завдань-потоків складання, або автоматично;
:-MM  — аналогичен ключу -M, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include "имя_файла";
+
** -a<arch> — хостова архітектура складання;
:-MD  — аналогичен ключу -M, но список зависимостей выдается не на стандартный вывод, а записывается в отдельный файл зависимостей;
+
** -d — не перевіряти залежності складання, часто потрібно при зміні хостової архітектури.
:-MMD  — аналогичен ключу -MD, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include "имя_файла";
+
* ''gcc'' — GNU колекція компіляторів мови С, С++, ASM, Fortran, Java, Obj, ... із підтримкою багатьох платформ;
:-pipe компилятор будет работать через каналы;
+
** -x<lang> визначення мови вхідних файлів, якщо із розширення це не очевидно;
:-O[nустановить уровень оптимизации (n=0..3);
+
** -c — компіляція та складання перелічених вхідних файлів;
:-g добавить отладочную информацию;
+
** -S — компіляція перелічених вхідних файлів у файли Асемблеру (*.s);
:-p, -pg добавить в модуль код для отслеживания узких мест, после выполнения генерируется mon.out файл, который можно обработать утилитой gprof;
+
** -E — здійснення первинної обробки вихідних файлів;
:-masm использовать стандарт ассемблера (att|intel).<br/>
+
** -o <rez.o> — складання об'єктних файлів до одного ''rez.o'';
''gdb'' мощный консольный GNU дебагер;<br/>
+
** -L — визначення шляху пошуку бібліотек;
''indent''  утилита форматирования исходного текста под указанные требования;<br/>
+
** -l — визначення переліку бібліотек (без "lib*" і "*.a");
''lclint'' утилита проверки синтаксиса исходных модулей;<br/>
+
** -w — заборона відображення попереджень компілятору;
''ldconfig'' активизировать изменения в файле /etc/ld.so.conf;<br/>
+
** -Wall — генерація всіх можливих повідомлень попередження;
''ldd'' показывает динамические библиотеки используемые программой;<br/>
+
** -pedantic — "педантична" перевірка вихідного тексту на відповідність стандарту ANSI;
''lint'' обнаруживает в C-программах конструкции, которые могут привести к ошибкам во время выполнения, расточительно используют ресурсы или могут снизить мобильность программ;<br/>
+
** -Wl — різноманітні опції лінкувальника:
''ltrace'' трассировка динамических библиотек, программы указанной в параметре;<br/>
+
*** ,rpath — визначення додаткового шляху пошуку динамічних бібліотек (-Wl,rpath,/usr/newpath);
''make'' используется для организации сложных проектов из десятков файлов;
+
*** ,soname — назва поділюваної бібліотеки (-Wl,-soname,libfuncs.so.1).
:-directory  указывает рабочую директорию;
+
** -fPIC — створення об'єктних файлів для динамічних бібліотек (PIC Position Independent Code);
:-makefile  — указывает на используемый makefile;
+
** -shared — створення динамічної бібліотеки (разом із -o);
:-p  — вызывает вывод списка всех установок по умолчанию;
+
** -nostdlib — заборона використання стандартних системних виконуваних файлів або динамічних бібліотек;
:-j3  — установить количество параллельно компилирующих процессов;<br/>
+
** -static — примушення до використання статичних бібліотек замість динамічних;
''memprof'' — программа для определения утечек памяти в программах и др;<br/>
+
** -rdynamic — увімкнення можливості використання символьної інформації для вирішення посилань у динамічних завантажувальних бібліотеках;
''mtrace'' обработка лога созданного С-функцией mtrace;<br/>
+
** -pipe — функціювання компілятору через канали;
''nm''  — используется для получения различной информации из таблицы имен объектных файлов обычного формата;<br/>
+
** -O<n> встановлення рівня оптимізації [0..3];
''objdump'' позволяет получить много информации об объектном файле, а также дизасемблировать его;<br/>
+
** -g — додавання налагоджувальної інформації;
''od'' печать дампа файла;<br/>
+
** -p, -pg — додавання до модуля коду відстеження вузьких місць, після виконання генерується файл "mon.out", який можна обробляти утилітою '''gprof''';
''p2c'' транслирует исходный код программы на языке "Pascal" в исходный код на языке "C";<br/>
+
** -masm — використовувати стандарт асемблеру "att" або "intel".
''patch'' внесение изменений в файл исходя из файла изменений;
+
* ''fastboot'' [Android] завантажувач Android пристроїв.
:patch -p1 < ../my.patch внесение изменений в текущий каталог из my.patch;
+
** {{InLineCode|<nowiki>fastboot devices</nowiki>}} — перелік пристроїв на USB для операцій із завантажувачем;
:patch -p1 < my.diff<br/>
+
** {{InLineCode|<nowiki>fastboot oem unlock</nowiki>}} — розблокування завантажувача;
''prof, gprof'' получение статистики по времени выполнения каждой функции программы, для использования этой функции, необходимо скомпилировать с ключом -p;<br/>
+
** {{InLineCode|<nowiki>fastboot flash boot boot.img</nowiki>}} прошивка зазначеного розділу файлом образу;
''ranlib'' добавление таблицы индексов библиотеки созданной ar в эту же библиотеку;<br/>
+
** {{InLineCode|<nowiki>fastboot reboot-bootloader</nowiki>}} — перевантаження завантажувача.
''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/>
+
* ''gdb'' — консольний налагоджувач GNU;
''sdb''  символьный отладчик (Symbolic Debugger);<br/>
+
* ''getconf'' — запит системних конфігураційних змінних оточення для програм, складених із GLibC;
''shar''  создание самораспаковывающихся кодированных архивов для отправки по почте;<br/>
+
** -a — отримання усіх змінних.
''size'' выдает количество байт, занимаемое тремя секциями (.text, .data и .bss) объектного файла обычного формата при загрузке его в память для выполнения;<br/>
+
* ''indent'' [C] форматування вихідного коду на мові Сі;
''strace'' трассировка системных вызовов, осуществляемых программой указанной в параметре;<br/>
+
* ''lint'' [C] виявлення у C-програмах конструкцій, які можуть призвести до помилок під час виконання, марно використовують ресурси або можуть знизити переносимість програми;
''strip'' удаляет из объектного файла обычного формата таблицу имен и информацию о номерах строк;<br/>
+
* ''ltrace'' — трасування динамічних бібліотек вказаної програми;
''sum'' расчет контрольной суммы;<br/>
+
* ''make'' — інтерпретатор мови сценаріїв MAKE із побудови проєктів з багатьох файлів;
''Xdialog''  — позволяет создавать диалоги в X из скрипта.
+
** -j{N} встановлення кількості процесів паралельного складання у ''N'', де інколи актуальне значення 1(один) для виключення багатопотоковості та мінімізації ресурсів.
 +
* ''nm'' — отримання переліку імен-символів вказаного об'єктного файлу;
 +
* ''objdump'' — отримання різноманітної інформації щодо вказаного об'єктного файлу, а також його дизасемблювання;
 +
* ''od'' — виведення бінарного дампу файлу;
 +
* ''patch'' — внесення змін у файли (зазвичай текстові вихідні) згідно до журналу змін (латки), який приготовано програмою '''diff''';
 +
** -p{N} — визначення рівня вкладеності файлів у латці ''N'', з якого починати опрацювання;
 +
** --no-backup-if-mismatch не створювати файлу резерву для невідповідностей у номеру рядків;
 +
** {{InLineCode|<nowiki>patch -p1 < ../my.patch</nowiki>}} латання файлів у поточній теці згідно файлу латки ''my.patch'' та починаючи від першого рівня латки.
 +
* ''prof'' — отримання статистики часу виконання кожної функції програми, для використання необхідно скласти програму із ключем "-p";
 +
* ''ranlib'' — додання таблиці індексів до бібліотеки, створеної '''ar''', задля збільшення швидкості доступу до цієї бібліотеки;
 +
* ''rpm'' [REDHAT] утиліта оперування RPM-пакетами:
 +
:* -b <file>.spec — часткова або повна обробка *.spec файлу для складання пакету:
 +
::* a — створення бінарного та вихідного rpm-пакету;
 +
::* b — створення бінарного rpm-пакету;
 +
::* c — виконання етапів: %pre і %build з розпакуванням і компіляцією;
 +
::* i — виконання етапів: %pre, %build і %install;
 +
::* l — перевірка переліку файлів у %files;
 +
::* p виконання етапу %pre (розпакування архіву);
 +
:* --rebuild <file>.src.rpm компілювання і створення бінарного RPM із вихідного;
 +
:* --recompile <file>.src.rpm — компілювання із вихідного RPM;
 +
:* --test — перевірка файлу специфікацій;
 +
:* --clean — видалення дерева каталогів BUILD.
 +
* ''size'' — інформація про кількість байтів секцій ".text", ".data" і ".bss" об'єктного файлу при його завантажені у пам'ять для виконання;
 +
* ''strace'' — трасування системних викликів, здійснюваних вказаною програмою;
 +
* ''strip'' — видалення таблиці імен та інформацію щодо номерів рядків із об'єктного файлу;
 +
* ''valgrind'' — інструмент стеження за коректністю поводження програми із пам'яті, тобто на доступ поза виділених просторів та звільнення виділених ділянок.
  
 
== Процедури ==
 
== Процедури ==
Line 562: Line 670:
 
|-
 
|-
 
| ФС FAT32 із сектором 4096 || 81.8 || 9.2
 
| ФС FAT32 із сектором 4096 || 81.8 || 9.2
 +
|-
 +
| ФС exFAT || 81.8 || 14
 
|-
 
|-
 
| ФС Ext4 із блоком 4096 || 78.8 || 12
 
| ФС Ext4 із блоком 4096 || 78.8 || 12
Line 571: Line 681:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
mkfs.vfat -F32 -S4096 -f1 /dev/sdX1
 
mkfs.vfat -F32 -S4096 -f1 /dev/sdX1
 +
</syntaxhighlight>
 +
 +
==== Форматування USB-Флеш у exFAT ====
 +
<syntaxhighlight lang="bash">
 +
mkfs.exfat /dev/sdX1
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 653: Line 768:
 
#Підключення до віддаленого серверу {rserver} із КЛІЄНТУ
 
#Підключення до віддаленого серверу {rserver} із КЛІЄНТУ
 
ssh {rserver}
 
ssh {rserver}
 +
</syntaxhighlight>
 +
 +
=== Формування альтернатив — можливості перемикання версій програм, на прикладі GCC ===
 +
<syntaxhighlight lang="bash">
 +
# Встановлення різних версій GCC
 +
apt-get install gcc-4.12 g++-4.12 gcc-4.11 g++-4.11
 +
 +
# Видалення наявних альтернатив
 +
update-alternatives --remove-all gcc
 +
update-alternatives --remove-all g++
 +
 +
# Додання варіантів альтернатив, із версією у якості пріоритету
 +
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11
 +
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11
 +
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
 +
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12
 +
 +
# Оновлення/вибір актуальної версії
 +
update-alternatives --config gcc
 +
update-alternatives --config g++
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 798: Line 933:
 
# Формування GIT-латки прийнятих локальних змін
 
# Формування GIT-латки прийнятих локальних змін
 
git format-patch -1
 
git format-patch -1
# Вивантаження локальних змін
+
# Вивантаження локальних змін, ключ -f для примусового заміщення
 
git push
 
git push
 
# Додання тегу
 
# Додання тегу
Line 821: Line 956:
 
# Перегляд історії репозиторію
 
# Перегляд історії репозиторію
 
git log
 
git log
 +
</syntaxhighlight>
 +
 +
==== Процедура вивантаження змін до TGW (https://wiki.trinitydesktop.org/TDE_Gitea_Workspace) ====
 +
<syntaxhighlight lang="bash">
 +
# Отримання дерева вихідного коду для внесення змін, на прикладі tdenetwork
 +
git clone https://mirror.git.trinitydesktop.org/gitea/TDE/tdenetwork.git
 +
# Перехід до теки дерева
 +
cd tdenetwork
 +
# Створення локальної гілки, як то feat/{whatever} - feat/krfb
 +
git checkout -b feat/krfb
 +
# Накладення латки на локальну гілку
 +
patch -p1 --no-backup-if-mismatch < ../krfb-new_symbols_appending.patch
 +
# Додання-реєстрація усіх змін від латки
 +
git add .
 +
# Приготування дії-commit для вивантаження змін
 +
git commit -s -m "krfb: Crashes after the VNC client disconnect"
 +
# Вивантаження змін у гілці із авторизацією
 +
git push -u origin feat/krfb
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 965: Line 1,118:
  
 
* '''case <u>зразок</u> in''' — оператор обрання-перевірки виразу ''зразку'' за [[#BASH_MASK|маскою-шаблоном]], через символ "|" може бути вказано декілька масок
 
* '''case <u>зразок</u> in''' — оператор обрання-перевірки виразу ''зразку'' за [[#BASH_MASK|маскою-шаблоном]], через символ "|" може бути вказано декілька масок
:: ''<u>маска1</u>) <u>вираз1</u> ;;'' — виконання ''вираз1'' за умови відповідності ''зразку'' до ''маска1''
+
:: ''<u>маска1</u>[ | <u>маска2</u>]) <u>вираз1</u> ;;'' — виконання ''вираз1'' за умови відповідності ''зразку'' до ''маска1''
 
:: ...
 
:: ...
 
:: ''<u>маскаN</u>) <u>виразN</u> ;;'' — виконання ''виразN'' за умови відповідності ''зразку'' до ''маскаN''
 
:: ''<u>маскаN</u>) <u>виразN</u> ;;'' — виконання ''виразN'' за умови відповідності ''зразку'' до ''маскаN''
Line 1,101: Line 1,254:
 
* ''[...]'' — символ із переліку у дужках ([A-Z]), де перший символ "!" або "^" означає виключення наступних символів.
 
* ''[...]'' — символ із переліку у дужках ([A-Z]), де перший символ "!" або "^" означає виключення наступних символів.
  
==== {{Anch|BASH_NUMBERS|Представлення чисельних значень}} ====
+
==== {{Anch|BASH_NUMBERS|Представлення числових значень}} ====
 
* ''45'' — десяткове число, починаючи із числа не "0" та символи [0-9] поспіль;
 
* ''45'' — десяткове число, починаючи із числа не "0" та символи [0-9] поспіль;
 
* ''045'' — вісімкове число, починаючи із "0" та символи [0-7] поспіль;
 
* ''045'' — вісімкове число, починаючи із "0" та символи [0-7] поспіль;
Line 1,124: Line 1,277:
 
wc -w  # отримання кількості слів
 
wc -w  # отримання кількості слів
 
sed -n 4p  # отримання вказаного рядка
 
sed -n 4p  # отримання вказаного рядка
 +
sed -i "s/dialout:x:20:/&user/" /etc/group  # додати користувача "user" до групи "dialout"
 
ls -1 /etc  # отримання вмісту каталогу за рядками
 
ls -1 /etc  # отримання вмісту каталогу за рядками
 
head -c8 /dev/random | uuencode -m - | sed -n '2s/=*$//;2p'  # генерація випадкового паролю
 
head -c8 /dev/random | uuencode -m - | sed -n '2s/=*$//;2p'  # генерація випадкового паролю
 
var="/some/path/file.txt"; echo ${var##*/} OR `basename $var`  # виділення ім'я файлу із розширенням
 
var="/some/path/file.txt"; echo ${var##*/} OR `basename $var`  # виділення ім'я файлу із розширенням
 +
sed $'s/\r$//' src.txt > dest.txt  # переривання рядка DOS у Unix
 +
sed $'s/$/\r/' src.txt > dest.txt  # переривання рядка Unix у DOS
 
</syntaxhighlight>
 
</syntaxhighlight>
 
...
 

Latest revision as of 11:05, 5 July 2025

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 — конфігурація файлових систем(ФС) автоматичного монтування при завантажені;
# CD/DVD/BLURAY для монтування udisks2
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
# FD для монтування udisks[2]
/dev/fd0        /media/floppy   auto noauto,users,owner,iocharset=utf8,codepage=866 0 0
    • group — системні групи користувачів;
      • "dialout" — для доступу до послідовних пристроїв на кшталт /dev/ttyUSB0;
      • "sudo" — для доступу користувачів до ROOT-привілеїв через sudo.
    • 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.

1.2 Мережа

  • /etc/ — основний каталог конфігураційних файлів:
    • NetworkManager/ — конфігурація Менеджеру Мережі;
      • system-connections/ — тека із конфігурацією загальних підключень;
      • NetworkManager.conf — загальна конфігурація сервісу.
    • dhcpcd.conf — конфігурація сервісу DHCPD, який у простих системах часто бере на себе всі мережеві підключення;
    • network/ [DEBIAN] — конфігурація мережі, базовий сервіс, який зараз часто замінюється NetworkManager і dhcpd;
      • interfaces — безпосередньо містить опис інтерфейсів.
    • ssh/ — загальна конфігурація SSH клієнту та серверу:
      • ssh_config — загальна конфігурація клієнту:
PubkeyAcceptedAlgorithms +ssh-rsa   # доповнення алгоритмів, які приймаються для публічного ключа.
  • /home/user/.ssh — налаштування SSH для користувача user:
    • id_rsa, id_dsa, id_ecdsa — приватний RSA, DSA, ECDSA ключ клієнта;
    • id_rsa.pub, id_dsa.pub, id_ecdsa.pub — публічний RSA, DSA, ECDSA ключ клієнта;
    • known_hosts — перелік відомих хостів за якими здійснювалося SSH підключення, наповнюється автоматично;
    • authorized_keys — публічні ключі клієнтів, яким дозволено підключатися до цього хосту і за цим користувачем, фактично копія файлу на кшталт id_rsa.pub;
    • config — конфігурація користувача на кшталт специфіки підключення до окремих хостів і автентифікації.
# Обов'язкове для функціювання SFTP у MC
Host home
    User roman
    IdentityFile ~/.ssh/id_rsa

2 Утиліти

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

  • apropos — пошук сторінки посібника (man) за ключовим словом;
  • awk — оперування файлами даних, вибірка і обробка тексту;
  • bg, fg — оперування із багатьма завданнями у терміналі:
    • Ctrl+Z — зупинка і переведення завдання на задній план;
    • fg — повернення із заднього плану;
    • jobs -l — перелік завдань у фоні.
  • cal — календар;
  • cat, zcat — видання вказаного файлу у STDOUT;
  • cd — зміна теки;
  • cksum — підрахунок контрольної суми і кількості байтів файлу;
  • clear — очищення екрану терміналу;
  • cmp — побайтове порівняння файлів;
  • comm — порядкове порівняння файлів;
  • cp — копіювання файлів і тек;
  • cpio — копіювання файлів до архіву та із архіву;
  • cut — вирізання із вхідного файлу стовпців, рядків і фракцій за роздільником;
  • date — відображення поточної дати у необхідному форматі або її встановлення;
    • date 10031545 — встановлення дати у 03.10 15:45.
  • dd — перетворення, створення, копіювання та інші маніпуляції із файлами у двійковому вигляді:
    • dd if=/dev/zero of=/swap bs=1024 count=8208 — створення порожнього файлу "swap" розміром 8МБ
    • dd if=/dev/fd0 of=boot.img bs=18k — створення штампу із дискети
    • dd if=/dev/sdb of=sys.img bs=1M oflag=direct,sync status=progress — копіювання образу диску із відображенням прогресу
  • ddrescue — утиліта наполегливого читання носіїв, що містять помилки;
  • echo — здійснення луни-повторення рядка у терміналі;
  • exit — завершення процесу із вказаним кодом повернення;
  • file — визначення типу файлу - містить інформацію про багато відомих файлів;
  • find — пошук:
    • -type <c> — тип файлів виведення c [d,f,...];
    • -name <patern> — ім'я файлу пошуку за шаблоном patern;
    • -regex <pattern> — ім'я файлу пошуку за регулярним виразом patern;
    • -size <n>[cwbkMG] — розмір файлу пошуку менше n якщо негативне або більше n.
  • gpg — утиліта шифрування і підписування електронним підписом;
  • grep — пошук вказаного рядка у визначених файлах або потоках;
    • grep 'str' mifile.txt
  • gzexe — стиснення у виконавчий модуль із розпакуванням при запуску;
  • gzip — компресія і декомпресія файлів:
Опції:
  • -<n> — здійснити компресію із рівнем <n>=(1..9);
  • -d — декомпресія.
Приклади:
  • gzip < /dev/cdrom > cdrom.iso.gz — читання і компресія штампу КД;
  • head, tail — показує заголовок/початок або хвіст/кінець вказаного файлу;
  • hexdump — друк вхідного потоку у вказаному форматі (DEC,HEX,OCT,ASCII);
  • history — відображення нумерованого переліку історії команд;
  • ipcs — відображення ресурсів IPC (між-процесна комунікація);
  • ipcrm — видалення ресурсів IPC;
  • kill, skill, killall — надсилання сигналу процесу — за PID, за шаблоном назви;
  • let, bc, expr — виконання арифметичних, логічних і інших дій над числовими значеннями у змінних оточення;
  • ln — створення та обслуговування жорстких і символічних посилань;
  • locate — швидкий пошук файлів у системі за іменем по mlocate базі;
  • ls — перелічення файлів/тек у теці;
  • md5sum — підрахунок MD5-суми;
  • mkfifo — створення іменованих каналів;
  • mknod — створення спеціальних файлів;
  • more, less, zless — перегляд файлу або виводу посторінково, для зазіпованих із gzip;
  • nice, snice, renice — запуск команди з відмінним значенням поступливості у межах [-20...19], встановлення вказаним програмам, встановлення поточній;
  • nohup — запуск команди із відв'язуванням від поточного терміналу;
  • pidof — відображення PID виконуваної програми;
  • pr — форматування текстового файлу до друку;
  • printenv, env — відображення змінних оточення, відображення і встановлення;
  • ps, pstree — відображення виконуваних процесів системи — списком, деревом;
  • rm — видалення файлів і тек;
  • scp — безпечне копіювання файлів і тек через OpenSSH;
    • scp file.txt user1@remote_server:/ — копіювання файлу на віддалену систему.
  • screen — консольний екранний менеджер, що дозволяє відкривати команди у новому вікні того-ж терміналу із можливістю:
    • Ctrl+A — перемикання;
    • Ctrl+A,D — тимчасове відключення;
    • screen -R — відновлення останнього сеансу за можливості або створення нового;
    • screen -r <sess> — відновлення сеансу sess;
    • screen -x — підключення до невід'єднаного сеансу (Багатоекранний Режим).
  • sed — потоковий редактор;
  • sleep — приспання поточного процесу на визначену кількість секунд;
  • sort — сортування даних у файлі/потоці;
  • split/csplit — розбиття/складання великих файлів на/з шматки;
  • stat — інформація про файл/теку на ФС;
  • strings — виведення символьних повідомлень з не текстового файлу;
  • sum — розрахунок контрольної суми;
  • tar — утиліта оперування із архівами і пакетами відомими як TAR-пакети, які можуть стискатися різними компресорами;
    • -v — багатослівність, відображати перелік оброблених файлів;
    • -с — створити новий архів;
    • -x — розпакувати архів;
    • -f <file> — упакувати до вказаного файлу file;
    • -z — здійснити стискання отриманого пакету за допомогою gzip, розширення "*.tar.gz";
    • -j — здійснити стискання отриманого пакету за допомогою bzip2;
    • -J — здійснити стискання отриманого пакету за допомогою xz, розширення "*.tar.xz";
    • -I<compr> — здійснити стискання отриманого пакету за допомогою програми стискання compr;
    • -t — перегляд вмісту архіву.
  • test — перевірка значень, файлів та інших умов, деталі у розділі BASH;
  • tee — читання зі стандартного входу та запис до стандартного виходу і у файл;
  • touch — оновлення/встановлення позначки часу файлу або створення порожнього за відсутності;
  • time — визначення часу і ресурсів виконання команди;
  • tr — трансляція символів, перетворення/заміна одних іншими;
  • tree — відображення дерева каталогу, з відступами і кольором;
  • vi, vim — потужний текстовий редактор з оригінальним керуванням;
  • vimdiff — перегляд порівнюваних файлів у vim;
  • wc — підрахунок у файлі кількості рядків, символів, слів і інше;
  • which, whereis — відображення повного шляху до програми, що шукається;

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

  • addgroup-delgroup, groupadd-groupdel — додання-видалення групи користувачів у системі;
  • adduser-deluser, useradd-userdel — додання-видалення користувача у системі;
    • useradd -m -s /bin/bash myuser — створення користувача myuser із власною домашньою текою і розширеною оболонкою /bin/bash.
  • apt, apt-get [DEBIAN|...] — утиліта менеджеру APT із керування DEB-пакетами (є варіанти із RPM) за репозиторіями:
    • install [<packet>...] — встановлення пакету(ів) з віддаленого репозиторію(їв);
      • -f — перевірка-оновлення залежностей щодо останнього встановлення.
    • reinstall [<packet>...] — перевстановлення пакету(ів) з віддаленого репозиторію(їв);
    • remove [<packet>...] — видалення пакету(ів);
    • autoremove — видалення автоматично усіх пакунки, що не використовуються;
    • update — оновлення переліку пакетів за актуальними репозиторіями;
    • upgrade — оновлення системи шляхом встановлення/оновлення пакетів;
      • -o — параметри операції.
        • "Acquire::Queue-mode=access" — завантаження пакетів по одному, тобто у черзі.
    • build-dep [<packet>...] — встановлення пакету(ів), що необхідні для складання вказаних пакетів packet.
  • apt-get [DEBIAN|...] — попередня утиліта менеджеру APT із керування DEB-пакетами за репозиторіями, специфічні команди:
    • purge [<packet>...] — видалення пакунків разом із їхніми конфігураційними файлами;
    • download <packet> — завантаження двійкового пакунку у поточну директорію;
    • source <packet> — завантаження вихідних текстів пакунку у поточну директорію із розпакуванням;
    • changelog <packet> — отримання і відображення журналу змін визначеного пакунку;
    • dist-upgrade — оновлення всієї системи;
    • clean — видалення завантажених архівів-пакунків;
    • autoclean — видалення старих завантажених архівів-пакунків;
    • check — перевірка наявності порушених залежностей.
  • apt-cache [DEBIAN|...] — утиліта менеджеру APT із запиту кешу актуальних репозиторіїв пакетів:
    • search <pattern> — пошук пакунків із назвою, що задовольняє регулярному виразу;
    • depends <packet> — показати інформацію про залежності пакунку;
    • rdepends <packet> — показати інформацію про зворотні залежності пакунку;
    • show <packet> — показати інформацію про пакунок.
  • arch — архітектура поточної системи, дивіться setarch для встановлення архітектури — запуск програми із вказаною;
  • at, batch — відкладене виконання задач і пакетна обробка;
    • echo 'wget url' | at 01:00 — запуск завантаження о 01:00.
  • basename — виокремлення імені файлу/теки з повного шляху;
  • chfn — зміна ім'я користувача і інформації про нього;
  • chgrp — зміна групи користувачів файлу або каталогу;
  • chkconfig [INIT] — конфігурація рівнів завантаження сервісів;
  • chmod — зміна режиму доступу до файлу;
  • chown — зміна власника і групи власників файлу або каталогу;
  • chpasswd — проста зміна паролю із можливістю здійснення зі скрипту;
    • echo username:new_password | chpasswd — зміна паролю username у new_password.
  • chroot, schroot — зміна кореня поточного сеансу або виконання команди від іншого кореня, також у безпечному варіанті від звичайного користувача;
    • у деяких середовищах спостерігаються проблеми при складанні у CHROOT із objcopy, що пов'язано зі змінною оточення LANG, яку необхідно видалити — unset LANG
  • chvt — перемикання на вказаний термінал;
  • chsh — зміна типу командного інтерпретатора;
  • convmv — перекодування назв файлів/тек з одного кодування на інше, може знадобитися для перекодування файлів на ФС ext2, ext3, reisrfs;
  • cron — планування періодичного запуску програм;
  • crontab — формування користувацької конфігурації cron;
  • df — інформація з файлових системах системи;
  • dirname — виокремлення назви теки із повного шляху;
  • dpkg [DEBIAN] — утиліта оперування DEB-пакетами:
    • -i <packet> — встановлення пакету;
    • -r <packet> — видалення пакету;
    • --purge <packet> — цілковите видалення пакету разом із конфігурацією.
  • dpkg-query [DEBIAN] — утиліта запиту до бази DEB-пакетів:
    • -s [<packet>...] — отримання статусу пакету(ів) або усіх у базі;
    • -L <packet>... — отримання переліку файлів у пакеті(ах);
    • -l [<pattern>...] — отримання переліку пакетів у базі за шаблоном;
    • --show [<packet>...] — отримання інформації (зазвичай версії) пакету(ів) або усіх у базі;
    • -S <pattern>... — пошук пакету, якому належить файл за шаблоном.
    • dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n — отримання переліку встановлених пакетів, відсортованих за розміром.
  • du — отримання інформації про розмір вмісту файлу або теки;
  • dumpkeys — дамп карти клавіатури;
  • export [SH] — визначення змінної оточення та її експорт для загального доступу;
  • export EDITOR=vim — визначення змінної оточення EDITOR у значення "vim";
  • fgconsole — номер поточного терміналу;
  • free — інформація щодо стану пам'яті;
  • fuser — отримання переліку процесів, які використовують-займають зазначений файл або сокет, а також закриття процесів, що займають ресурс;
  • iconv — перетворення вмісту текстового файлу з одного кодування у інше;
  • journalctl [SYSTEMD] — отримання журналу сервісу;
  • journalctl -u NetworkManager.service — журнал NetworkManager.
  • id — інформація щодо користувача;
  • info — отримання сторінки документації зі сторінок пов'язаної допомоги (GNU-doc);
  • init [sysvinit] — утиліта початкового завантаження;
  • ldconfig — активування змін у файлі /etc/ld.so.conf щодо пошуку бібліотек динамічного лікування;
At.png Інколи має запускатися у випадку невизначення динамічних бібліотек.
  • ldd — відображення динамічних бібліотек, від яких залежить вказана програма або інша динамічна бібліотека, включно із можливістю знайти ці бібліотеки;
  • locale — отримання інформації щодо налаштувань локалі;
  • localedef — створення нової локалі на основі базової;
  • login — вхід у систему;
  • logname — ім'я поточного користувача;
  • logrotate — засіб ротації журналів із автоматичним пакуванням, чищенням та іншою обробкою;
  • lsof — перелік відкритих у системі файлів, сокетів, каналів, поділюваних бібліотек і інше;
  • -p <n> — системних ресурсів, використаних процесом n.
  • man, xman — відображення сторінок посібника;
  • -k <word> — пошук сторінки за ключовим словом.
  • newgrp — зміна основної групи користувача або виконання команди від ім'я вказаної групи;
  • mesg — управління відображенням повідомлень від інших користувачів у поточному терміналі;
  • ntpdate [NTP] — синхронізація часу через Internet стрибком;
  • passwd — зміна паролю користувача;
  • pushd, popd — розташування або вилучення каталогу із стеку каталогів;
  • pwd — отримання повної назви поточного каталогу;
  • rlogin [SSH] — вхід на віддалену систему;
  • rpm [REDHAT] — утиліта оперування RPM-пакетами:
  • -i <packet> — встановлення пакету;
  • -e <packet> — видалення пакету;
  • -U <packet> — оновлення пакету;
  • -V <packet> — перевірка коректності встановлення/поточного стану вказаного пакету;
  • -a — виконання вказаної операції для усіх пакетів;
  • -q — запит даних про пакет:
  • f — пошук пакету, якому належить вказаний файл;
  • i — виведення інформації про пакет;
  • l — перелік файлів, що належать пакету;
  • s — стан файлів пакету;
  • d — перелік файлів документації пакету;
  • c — перелік конфігураційних файлів пакету;
  • p — виконання операції над ще невстановленим пакетом.
  • service [LSB] — оперування сервісами у /etc/rc.d/init.d;
  • service smb start — запуск сервісу Samba;
  • set, unset [SH] — встановлення або очищення змінної оточення;
  • setarch — зміна заявленої архітектури нового середовища програми;
  • setfont — встановлення консольного екранного шрифту;
  • setsid — запуск програми у новому сеансі;
  • sftp [SSH] — безпечний FTP клієнт;
  • -i — файл ідентифікації для авторизації без паролю, фактично є приватним ключем на кшталт id_rsa якщо типовий не підходить.
  • slogin [SSH] — вхід до системи за шифрованим протоколом SSH (те саме, що і SSH);
  • ssh — вхід до системи за шифрованим протоколом SSH або-ж віддалений запуск команд:
  • ssh -X user@remserver.org — шифрований вхід до віддаленої системи із транспортуванням X-протоколу;
  • ssh user@remserver.org 'wget ftp://myfile' — запуск завантаження на віддаленому сервері;
  • ssh -L [локальна_адреса:]локальний_порт:віддалена_адреса:віддалений_порт [користувач@]сервер -p портSSH — ініціювання тунелю порту.
  • ssh-keygen — проста генерація пари ключів, зазвичай у теку користувача ~/.ssh/;
  • sshfs — Fuse модуль для монтування файлової системи через SSH;
  • stty — отримання і встановлення параметрів терміналу, перевизначення спеціальних клавіш;
  • su — зміна користувача поточного сеансу або виконання команди від імені вказаного користувача (по замовченню — root);
  • sudo — запуск окремих програм від імені іншого користувача, яких необхідно прописати у /etc/sudoers;
  • shutdown — вимкнення системи;
  • systemctl [SYSTEMD] — управління сервісами;
    • start <service> — запуск;
    • stop <service> — зупинка;
    • restart <service> — перезапуск;
    • reload <service> — перевантаження;
    • enable <service> — увімкнення;
    • disable <service> — вимкнення.
  • talk — двостороння розмова із іншим користувачем;
  • tload — інформація щодо завантаження системи;
  • top, htop — виведення інформації про процеси із сортуванням за часом;
  • tput — управління терміналом;
  • tset, reset — ініціалізація терміналу на curses;
  • tty — назва поточного псевдотерміналу;
  • ulimit — управління обмеженнями користувачів.
  • umask — визначення маски прав для створення нових файлів;
  • uname — інформація про поточну OС;
  • uptime — час безперервного функціювання системи;
  • users — перелік користувачів у системі;
  • vmstat — інформація щодо використання віртуальної пам'яті;
  • w — інформація щодо активності поточного користувача;
  • wall — передавання широковіщального повідомлення — усім користувачам системи;
  • watch — періодичний запуск вказаної програми;
  • who, finger — інформація щодо користувачів системи;
  • whoami — ім'я поточного користувача;
  • write — написання повідомлення вказаному користувачу.

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

  • cdrecord — запис CD дисків;
    • cdrecord -v speed=2 dev=0,6,0 -data my.img
  • cfdisk — конфігурація розділів диску;
  • edquota [QUOTA] — редагування квот файлової системи;
  • fdformat [fdtools] — низькорівневе форматування дискети;
  • fdisk — операції із розділами диску;
  • fsck -t {type}, fsck.{type} — перевірка файлової системи визначеного типу type;
    • fsck.vfat /dev/fd0 — перевірка файлової системи FAT12 на гнучкому диску.
  • gnome-disks [GNOME] — графічна програма для оперування дисками, включно зі зміною розділів, отриманням SMART і перевіркою швидкості;
  • hdparm — встановлення параметрів дискової підсистеми;
  • losetup — створення петльового пристрою (loop) із криптуванням;
    • losetup -k 192 -e aes /dev/loop4 /tmp/file.iso — створення дискового пристрою loop4 на file.iso із криптуванням.
  • mkfs -t {type}, mkfs.{type} — створення ФС визначеного типу type на фізичний розділ або файл;
    • mkfs.vfat /dev/fd0 — створення файлової системи FAT12 на гнучкому диску.
  • mkisofs — створення ISO-штампу із каталогу;
    • mkisofs -r -o my.iso /usr/games
  • mount, umount — монтування-підключення/демонтування-відключення файлових систем;
    • -o {opt1}[,{opt2}[,{optN}]] — параметри монтування:
      • "quiet" — мовчазне копіювання/перенесення файлів без питань щодо неможливості зміни прав доступу (для ФС на кшталт FAT);
      • "iocharset={code}" — кодування здійснення введення/виведення (для ФС FAT, NTFS і UDF);
      • "codepage={code}" — кодова сторінка збереження назв файлової системи (для ФС 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, gparted [GNOME] — потужний менеджер дискових розділів;
  • quota [QUOTA] — менеджер обмежень-квот ФС;
  • quotaon, quotaoff [QUOTA] — увімкнення/вимкнення обмежень-квот ФС;
  • quotacheck [QUOTA] — перевірка обмежень-квот ФС;
  • quotastats [QUOTA] — стан обмежень-квот ФС;
  • tune2fs — зміна параметрів ФС ext2/3/4;
  • resize2fs — зміна розміру файлової системи ext2/3/4 на розділі.
  • swapon, swapoff — увімкнення/вимкнення розділу підкачування пам'яті;
  • sync — скидання буферів на диск.

2.4 Залізо

  • badblocks — перевірка твердотілих носіїв (HDD, FDD) на погані блоки;
    • -w — перевіряти запис;
    • -s — показувати прогрес.
  • dmesg — журнал ядра Linux із повідомленнями виявлення обладнання як під час завантаження, так і у процесі функціювання;
  • dmidecode — декодування інформації BIOS щодо обладнання системи і самої BIOS;
  • hwclock — відображення/встановлення апаратного годинника (CMOS);
  • i2cdetect — виявлення пристроїв на шині I2C;
  • kbd_mode — встановлення режиму функціювання клавіатури (RAW, MEDIUMRAW, XLATE, UNICODE);
  • lpr — BSD lpr/lpd система лінійного виводу на друкарку з буферизуванням;
    • lpr -P lp1 my.txt — друк файлу my.txt на принтер lp1.
  • lscpu — перелік та інформація про процесори у системі;
  • lshw — збір інформації щодо обладнання системи;
  • lspci — перелік пристроїв на PCI шині;
  • lsusb — перелік пристроїв на USB шині;
  • mbw — вимірювання продуктивності пам'яті декількома методами;
    • mbw -b 1048576 2048 — перевірка продуктивності пам'яті методами MEMCPY, DUMB, MCBLOCK для обсягу у 2048 MiB і розміру блоку 1048576 B.
  • memtest [BOOT] — тестування пам'яті із отриманням інформації про неї та із певним вимірюванням продуктивності, запускається із завантажувача;
  • pbm{format} — перетворення із графічного формату *.pdm у формат принтеру format;
  • setleds — встановлення світлодіодів на клавіатурі;
  • setserial — контроль конфігурації послідовних портів;
    • setserial -g /dev/ttyS[0123] — отримання налаштувань COM-портів із 1 по 4.
  • setterm — встановлення параметрів терміналу;
  • showkey — відображення сканкодів клавіш і кодів системної карти;
  • smartctl — контроль SMART дискових носіїв;
    • -A {dev} — показати коротку інформацію по пристрою dev;
    • -a {dev} — показати повну інформацію по пристрою dev;
    • --test={name} — запустити самотестування name (offline, short, long, ...) по пристрою dev.
  • statserial — контроль стану статусних ліній модему послідовного порту;
  • sysbench — програма із набором тестів продуктивності компонентів системи;
    • sysbench --test=memory --memory-total-size=4G --memory-block-size=1M run — перевірка продуктивності пам'яті обсягом 4 GiB та блоком у 1 MiB.
  • testdisk — сканер розділів і інструмент відновлення диску, і PhotoRec інструмент відновлення файлів;
  • usbview — огляд і конфігурація USB-пристроїв.

2.5 Графіка

  • appres [X11] — отримання інформації щодо ресурсів X-додатків;
  • fc-match [FontConfig] — отримання інформації щодо використаного шрифту (файлу) для вказаного шаблону шрифту;
    • fc-match Arial — отримання шрифту, використовуваного для "Arial".
  • glxgears [GLX] — поверхневе тестування GLX (OpenGL) та визначення загальної його працездатності;
  • glxinfo [GLX] — отримання інформації щодо розширення GLX (OpenGL);
  • listres [X11] — перелік ресурсів X-додатків;
  • mogrify [ImageMagic] — перетворення графічних файлів у інший формат;
    • mogrify -format jpg *.png — перетворення PNG у JPEG.
  • plymouth-set-default-theme [PLYMOUTH] — оперування темами графічної заставки запуску, яка передує безпосередньо графічному інтерфейсу;
    • plymouth-set-default-theme --list — отримання переліку наявних тем;
    • plymouth-set-default-theme lines --rebuild-initrd — встановлення теми "lines" із перескладанням образу попереднього ініціалізації системи.
  • showrgb — найменування і значення стандартних кольорів;
  • startx [X11] — скрипт запуску X-серверу;
    • startx -- :2 — запуск ще одного екземпляру X під номером 2;
    • startx -- -depth 24 — запуск X-серверу із глибиною кольору 24 біти.
  • x11vnc — запуск VNC-серверу до графічного сеансу користувача, і що корисно при віддаленому SSH підключені для графічного підключення до стільниці;
    • x11vnc -display :0 — запуск VNC до дисплею ":0", який є типовим на системах із одним сеансом X11.
  • xdpyinfo [X11] — інформація щодо дисплею, зокрема і DPY;
  • xev [X11] — перегляд інформації щодо подій у вікні;
  • xfontsel [X11] — вибір шрифтів для X-серверу;
  • xhost [X11] — управління доступом віддалених хостів до X-серверу;
  • xinit [X11] — утиліта запуску X із вказаним додатком, по замовченню — xterm;
    • xinit /usr/bin/icewm -- :1 — запуск разом із ICEWM.
  • xkill [X11] — завершення віконного додатку;
  • xlsfonts [X11] — перелік шрифтів X-серверу;
  • xmag [X11] — збільшення частини екрану;
  • xprintidle [X11] — друк часу неактивності графічного інтерфейсу у мілісекундах;
At.png Деякі програми можуть цей час умисно скидати для запобігання блокування екрану, а деякі можуть це здійснювати за помилкою, забуваючи припинити, як то: Chromium (MS Teams, ...) — починаючи із Debian 12 ця проблема не спостерігається.
  • xprop [X11] — виведення властивостей обраного вікна;
  • xrefresh [X11] — оновлення-перемалювання екрану;
  • xset [X11] — встановлення параметрів X-серверу;
  • xvidtune [X11] — налаштування параметрів монітору як то частоти кадрів та рядків;
  • xvinfo [X11] — інформація з розширення XV;
  • xwininfo [X11] — інформація щодо вказаного вікна;
  • xwd [X11] — захоплення зображення на екрані.

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

  • alsamixer [ALSA] — мікшер звукової підсистеми ALSA;
  • aumix — простий консольний AUDIO-мікшер;
  • cdparanoia — вичитування Audio-CD;
  • ffmpeg — утиліта перекодування відео-аудіо файлів між різними форматами;
    • -i {mfile} — показати інформацію за медіа-файлом mfile;
    • -vcodec {codec} — selection a videocodec like to libx264, libx265; call for all ffmpeg -codecs;
    • ffmpeg -i video.mp4 -c:v vp9 -c:a libopus -f webm video.webm — перекодування у формат WEBM для гарантованого програвання у будь якому WEB-оглядачі;
  • mencoder [MPlayer] — утиліта перекодування відеофайлів між різними форматами;
    • mencoder dvd://1 -oac mp3lame -ovc xvid -xvidencopts bitrate=800 -o 1.avi — перекодування першої доріжки DVD-диску із бітрейтом 800, аудіокодеком mp3lame і відеокодеком xvid.
  • oggenc — бібліотека та утиліта кодування OGG;
  • play [SOX] — програвання звукових файлів з консолі;
  • rec [SOX] — запис звуку до файлу;
  • yt-dlp — завантаження відео-потоків зі стріменгових ресурсів.
    • yt-dlp https://stream.url -o "%(id)s.%(ext)s" — вивантаження потоку у файл із назвою за шаблоном.

2.7 Мережа

  • arp — оперування системним ARP-кешем (апаратними адресами);
  • bluetoothctl — контроль мережі BlueTooth;
    • scan [on|off] — увімкнути сканування мережі;
    • pair <addr> — спарувати пристрій із адресою addr;
    • trust <addr> — позначити пристрій із адресою addr довіреним.
  • curl — потужний інструмент обміну файлами у мережі, а також формування довільних запитів;
    • curl -T ./loc.file -u {user}:{passw} ftp://dest.org — вивантаження локального файлу "loc.file" на FTP-сервер "dest.org" за визначеними даними автентифікації "{user}:{passw}".
  • ethtool [OLD] — отримання статусу мережевого інтерфейсу щодо підключення і його режиму, замінено mii-tool;
  • ettercap — cніфер-нюхач мережі;
  • iptraf — потужний і зручний сканер мережі;
  • ifconfig — системна утиліта конфігурування мережевих інтерфейсів (eth0, ppp0, ...);
    • down <if> — вимкнути інтерфейс if;
    • up <if> — увімкнути інтерфейс if;
    • inet <ip> — інтерфейс із ip адресою;
    • hw ether <mac> — встановити MAC-адресу інтерфейсу.
  • iftop — контроль загального трафіку за інтерфейсом(и);
  • ip — основна утиліта конфігурування маршрутизації, із IPROUTE2;
    • link — фізичні інтерфейси;
    • address — адреси та їх асоціації із фізичними інтерфейсами;
    • route — маршрутизація інтерфейсів.
  • iwconfig — конфігурування та контроль бездротових мережевих інтерфейсів;
    • power [on|off] — увімкнення або вимкнення керування живленням інтерфейсу.
  • iptables — утиліта конфігурування FIREWALL на основі IP-таблиць;
  • lynx — класичний неграфічний (текстовий) вебоглядач;
    • lynx -dump -width=100 file://mypage.html > mypage.txt — перетворення html-сторінки у текст.
  • mii-tool — отримання статусу мережевого інтерфейсу щодо підключення і його режиму;
  • minicom, cutecom — програма оперування послідовними інтерфейсами і модемами;
  • netstat — отримання стану мережі, відображає використані сокети і їх стан;
    • -a — виведення усіх сокетів;
    • -e — відображення користувача, що працює із сокетом на цей час.
  • nmap — сканер мережі, яким можна отримати перелік відкритих портів та інше;
  • nmcli [NetworkManager] — консольна утиліта керування підключеннями Менеджеру Мережі;
    • nmcli connection import type openvpn file mycon.ovpn — імпорт файлу конфігурації OpenVPN mycon.ovpn.
  • ping — перевірка зв'язку із віддаленим вузлом шляхом надсилання службових тестових повідомлень;
  • puttygen [Putty] — утиліта перетворення сертифікатів Putty (файли *.ppk) у формат OpenSSH;
    • puttygen my.ppk -O private-openssh -o my.key — вилучення приватного сертифікату;
    • puttygen my.ppk -O public-openssh -o my.pub — вилучення публічного сертифікату.
  • rfcomm — менеджер послідовних підключень через Bluetooth;
    • rfcomm bind 0 40:2B:6D:EF:48:A7 — зв'язування пристрою 40:2B:6D:EF:48:A7 із послідовним портом /dev/rfcomm0.
  • route — класична утиліта управління таблицею маршрутизації;
    • delete <route> — видалення маршруту route;
    • add <route> ... — додання маршруту route.
  • rsync — утиліта оперування протоколом "rsinc" для синхронізації у мережі;
    • rsync -va --partial --stats --delete-after -e ssh ./ devel:/incoming/backports/2.4/ — надсилання пакетів до репозиторію ALTLinux Sisyphus шляхом синхронізації локального каталогу із віддаленим сервером.
  • smbclient [SMB/CIFS] — утиліта організації клієнтських запитів до SMB-серверу;
  • traceroute — перевірка проходження мережевих пакетів через сервери у мережі;
  • tcpdump — дамп TCP протоколу для відстеження різних запитів;
    • tcpdump -i br0 -s 65535 -w traf.log 'host 192.168.1.1' — запис трафіку за хостом 192.168.1.1 на інтерфейсі "br0" у файл "traf.log", який можна переглянути WireShark;
    • tcpdump -i br0 -s 65535 -w traf.log 'tcp port 80' — запис TCP-трафіку за портом 80 на інтерфейсі "br0" у файл "traf.log", який можна переглянути WireShark.
  • telnet — утиліта-сервіс контролю хостів в мережі через отримання віддаленого терміналу;
  • wget — потужна утиліта завантаження файлів з мережі за різноманітними протоколами, як то HTTP, HTTPS, FTP.
    • -P <dir> — тека цільового завантаження.

2.8 Пошта

  • mail, mailx — створити повідомлення;
  • mailq [POSTFIX] — показати чергу повідомлень відправлення;
  • mutt — консольний поштовий клієнт;
  • procmail — інструмент обробки поштових повідомлень;
  • sendmail [POSTFIX] — надсилання поштових повідомлень і управління сервером вихідної пошти.
    • -q{time} — опрацювати повідомлення у черзі;
    • -v — режим друку супровідних повідомлень.

2.9 Бази Даних

  • mysql [MYSQL] — доступ до БД MySQL;
    • mysql --default-character-set=utf8 --user=root -p db < ./db.sql — імпорт-ініціалізація вмісту БД db із файлу SQL-команд "db.sql".
  • mysqldump [MYSQL] — формування SQL-дампів від БД MySQL;
    • mysqldump -Q --user=root -p db > db.sql — експорт-дамп вмісту БД db до файлу SQL-команд у нотації MySQL;
  • sqlite3 — доступ до файлів БД SQLite версії 3.
    • sqlite3 my.db '.dump --newlines' > my.db.sql — експорт-дамп вмісту файлу БД my.db до файлу SQL-команд у нотації SQLite;
    • sqlite3 -init my.db.sql my.db .exit — імпорт-ініціалізація вмісту файлу БД "my.db.sql" у нотації SQLite до бінарного файлу БД.

2.10 Ядро Linux

  • depmod — перевірка залежностей модулів, яка здійснюється при додаванні нових модулів;
    • -a — перевірка модулів по всій структурі "/lib/modules" та внесення відповідних змін;
  • installkernel — сценарій встановлення ядра, який використовується після компіляції ядра за make install;
  • lsmod — отримання переліку завантажених і функціонуючих модулів із залежностями;
  • insmod, rmmod — підключення/відключення модуля до ядра;
  • modinfo — отримання інформації щодо модуля і його параметрах;
  • modprobe — управління модулями ядра, без параметрів підключає модуль до ядра;
    • -r — вивантаження модуля.
  • procinfo — отримання інформації о процесах (/proc) і системі (/sys);
  • sysctl — конфігурація системних параметрів (/proc/sys/) ядра.

2.10.1 Опції Ядра

  • libata.dma — прапорці увімкнення DMA до певних систем (1-PATA/SATA; 2-ATAPI-CDROM; 4-CF);
At.png На системах із CF і певних версіях ядра, загальне увімкнення DMA (7) призводить до конфлікту із ATAPI, що вирішується увімкненням DMA лише для CF (4)!
  • libata.force — примусове встановлення параметрів дискової підсистем як загалом, так і для окремих пристроїв;
    • libata.force=1:udma33 — встановлення режиму UDMA/33 для пристрою 1.
  • radeon.dpm — увімкнення/вимкнення DPM у відеоконтролерів на RADEON.
At.png Вимкнення DPM може виправити перезапуск одразу після завантажувача на різних RADEON відеоадаптерах!
  • nouveau.noaccel — вимкнення 3D акцелерації у відеоконтролерів на NVidia.
At.png Може запобігти артифачингу із зависанням на вбудованих NVidia контролерах разом із 3D! :)

2.11 Розробка

  • aclocal [AUTOTOOLS] — генерація макросу "aclocal.m4" із файлу "configure.in";
  • adb [Android] — міст налагодження Android (Android Debug Bridge);
  • adb devices — перелік пристроїв на USB для налагодження і авторизація PC для налагодження Android;
  • на деяких пристроях видає повідомлення — "no permissions (user in plugdev group; are your udev rules wrong?); ..."; що виправляється:
apt-get install android-sdk-platform-tools-common
cp /lib/udev/rules.d/51-android.rules /etc/udev/rules.d/
  • adb shell — підключення до консолі пристрою Android;
  • adb pull sdcard/btsnoop_hci.log ./ — вивантаження файлу із пристрою Android (btsnoop_hci.log доступний на Android < 8);
  • adb push test.apk sdcard — завантаження файлу на пристрій Android;
  • adb install test.apk — завантаження і встановлення APK-пакету на пристрій Android;
  • adb shell dumpsys bluetooth_manager > dumpsys.log — отримання дампу сервісу "bluetooth_manager", який надалі може бути оброблений btsnooz.py для вилучення btsnoop_hci.log на сучасних версіях Android.
  • ar — створення/редагування архівів статичних бібліотек з об'єктних модулів;
  • autoconf [AUTOTOOLS] — генерація скрипту configure із "configure.in";
  • automake [AUTOTOOLS] — генерація "Makefile.in" із "Makefile.am";
  • cpp [C] — препроцесор мови C, зазвичай викликається із gcc;
  • ctags — генерація тег-файлу для полегшення навігації по коду, використовується редактором VIM;
  • cxref [C] — аналіз групи С-файлів і побудова для кожного файлу таблиці перехресних посилань на автоматичні, статичні і глобальні імена;
  • dialog [ncurses] — створення діалогів у консолі із скрипту;
  • diff — пошук змін у порівнюваних текстових файлах;
    • diff -uNr dir/old dir/new > my.patch — створення латки;
  • dpkg-buildpackage [DEBIAN] — утиліта побудови DEB-пакетів:
    • -b — складання лише бінарних пакунків без джерельних;
    • -j[<number>|auto] — кількість завдань-потоків складання, або автоматично;
    • -a<arch> — хостова архітектура складання;
    • -d — не перевіряти залежності складання, часто потрібно при зміні хостової архітектури.
  • gcc — GNU колекція компіляторів мови С, С++, ASM, Fortran, Java, Obj, ... із підтримкою багатьох платформ;
    • -x<lang> — визначення мови вхідних файлів, якщо із розширення це не очевидно;
    • -c — компіляція та складання перелічених вхідних файлів;
    • -S — компіляція перелічених вхідних файлів у файли Асемблеру (*.s);
    • -E — здійснення первинної обробки вихідних файлів;
    • -o <rez.o> — складання об'єктних файлів до одного rez.o;
    • -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 — увімкнення можливості використання символьної інформації для вирішення посилань у динамічних завантажувальних бібліотеках;
    • -pipe — функціювання компілятору через канали;
    • -O<n> — встановлення рівня оптимізації [0..3];
    • -g — додавання налагоджувальної інформації;
    • -p, -pg — додавання до модуля коду відстеження вузьких місць, після виконання генерується файл "mon.out", який можна обробляти утилітою gprof;
    • -masm — використовувати стандарт асемблеру "att" або "intel".
  • fastboot [Android] — завантажувач Android пристроїв.
    • fastboot devices — перелік пристроїв на USB для операцій із завантажувачем;
    • fastboot oem unlock — розблокування завантажувача;
    • fastboot flash boot boot.img — прошивка зазначеного розділу файлом образу;
    • fastboot reboot-bootloader — перевантаження завантажувача.
  • gdb — консольний налагоджувач GNU;
  • getconf — запит системних конфігураційних змінних оточення для програм, складених із GLibC;
    • -a — отримання усіх змінних.
  • indent [C] — форматування вихідного коду на мові Сі;
  • lint [C] — виявлення у C-програмах конструкцій, які можуть призвести до помилок під час виконання, марно використовують ресурси або можуть знизити переносимість програми;
  • ltrace — трасування динамічних бібліотек вказаної програми;
  • make — інтерпретатор мови сценаріїв MAKE із побудови проєктів з багатьох файлів;
    • -j{N} — встановлення кількості процесів паралельного складання у N, де інколи актуальне значення 1(один) для виключення багатопотоковості та мінімізації ресурсів.
  • nm — отримання переліку імен-символів вказаного об'єктного файлу;
  • objdump — отримання різноманітної інформації щодо вказаного об'єктного файлу, а також його дизасемблювання;
  • od — виведення бінарного дампу файлу;
  • patch — внесення змін у файли (зазвичай текстові вихідні) згідно до журналу змін (латки), який приготовано програмою diff;
    • -p{N} — визначення рівня вкладеності файлів у латці N, з якого починати опрацювання;
    • --no-backup-if-mismatch — не створювати файлу резерву для невідповідностей у номеру рядків;
    • patch -p1 < ../my.patch — латання файлів у поточній теці згідно файлу латки my.patch та починаючи від першого рівня латки.
  • prof — отримання статистики часу виконання кожної функції програми, для використання необхідно скласти програму із ключем "-p";
  • ranlib — додання таблиці індексів до бібліотеки, створеної ar, задля збільшення швидкості доступу до цієї бібліотеки;
  • rpm [REDHAT] — утиліта оперування RPM-пакетами:
  • -b <file>.spec — часткова або повна обробка *.spec файлу для складання пакету:
  • a — створення бінарного та вихідного rpm-пакету;
  • b — створення бінарного rpm-пакету;
  • c — виконання етапів: %pre і %build з розпакуванням і компіляцією;
  • i — виконання етапів: %pre, %build і %install;
  • l — перевірка переліку файлів у %files;
  • p — виконання етапу %pre (розпакування архіву);
  • --rebuild <file>.src.rpm — компілювання і створення бінарного RPM із вихідного;
  • --recompile <file>.src.rpm — компілювання із вихідного RPM;
  • --test — перевірка файлу специфікацій;
  • --clean — видалення дерева каталогів BUILD.
  • size — інформація про кількість байтів секцій ".text", ".data" і ".bss" об'єктного файлу при його завантажені у пам'ять для виконання;
  • strace — трасування системних викликів, здійснюваних вказаною програмою;
  • strip — видалення таблиці імен та інформацію щодо номерів рядків із об'єктного файлу;
  • valgrind — інструмент стеження за коректністю поводження програми із пам'яті, тобто на доступ поза виділених просторів та звільнення виділених ділянок.

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
ФС exFAT 81.8 14
ФС 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-Флеш у exFAT

mkfs.exfat /dev/sdX1

3.1.3 Форматування 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.4 Форматування 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 Формування альтернатив — можливості перемикання версій програм, на прикладі GCC

# Встановлення різних версій GCC
apt-get install gcc-4.12 g++-4.12 gcc-4.11 g++-4.11

# Видалення наявних альтернатив
update-alternatives --remove-all gcc
update-alternatives --remove-all g++

# Додання варіантів альтернатив, із версією у якості пріоритету
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12

# Оновлення/вибір актуальної версії
update-alternatives --config gcc
update-alternatives --config g++

3.5 Створення, використання та обслуговування програмного 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.6 Адміністрування віртуальних серверів (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.7 Система контролю версій 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.8 Система контролю версій 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.9 Система контролю версій 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
# Вивантаження локальних змін, ключ -f для примусового заміщення
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.1 Процедура вивантаження змін до TGW (https://wiki.trinitydesktop.org/TDE_Gitea_Workspace)

# Отримання дерева вихідного коду для внесення змін, на прикладі tdenetwork
git clone https://mirror.git.trinitydesktop.org/gitea/TDE/tdenetwork.git
# Перехід до теки дерева
cd tdenetwork
# Створення локальної гілки, як то feat/{whatever} - feat/krfb
git checkout -b feat/krfb
# Накладення латки на локальну гілку
patch -p1 --no-backup-if-mismatch < ../krfb-new_symbols_appending.patch
# Додання-реєстрація усіх змін від латки
git add .
# Приготування дії-commit для вивантаження змін
git commit -s -m "krfb: Crashes after the VNC client disconnect"
# Вивантаження змін у гілці із авторизацією
git push -u origin feat/krfb

3.10 Приготування та компіляція проєктів на основі 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[ | маска2]) вираз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  # отримання вказаного рядка
sed -i "s/dialout:x:20:/&user/" /etc/group  # додати користувача "user" до групи "dialout"
ls -1 /etc  # отримання вмісту каталогу за рядками
head -c8 /dev/random | uuencode -m - | sed -n '2s/=*$//;2p'  # генерація випадкового паролю
var="/some/path/file.txt"; echo ${var##*/} OR `basename $var`  # виділення ім'я файлу із розширенням
sed $'s/\r$//' src.txt > dest.txt  # переривання рядка DOS у Unix
sed $'s/$/\r/' src.txt > dest.txt  # переривання рядка Unix у DOS