cli-app-icon_64.png   Програми командного рядка характерні для Haiku

Розташування:/boot/system/bin/
/boot/system/non-packaged/bin/
~/config/bin/
~/config/non-packaged/bin/


Усі програми командного рядка, які входять до дистрибутиву Haiku, знаходяться у каталозі /boot/system/bin. Ваші власні або додатково встановлені програми командного рядка з'являться там же, або у ~/config/bin, якщо вони встановлюються з пакета .hpkg. В іншому випадку Ви можете помістити їх у /boot/system/non-packaged/bin/ або ~/config/non-packaged/bin/. Усі ці місця є частиною змінної оточення «PATH» і тому будуть знайдені автоматично.
Наведений нижче список не є вичерпним переліком усіх програм CLI характерних для Haiku, він лише показує декілька найкорисніших з них, щоб дати Вам уявлення про їхню роботу. Вам буде корисно самостійно розібратися з тим, що знаходиться у каталозі bin/. Запуск програми з параметром --help показує довідку по використанню команди і всі її різноманітні опції.

index Команди пов'язані з атрибутами: listattr, catattr, addattr, rmattr, copyattr

Ці команди використовуються для відображення, зчитування, додавання і видалення атрибутів файлів. Пам'ятайте, що ці метадані наразі доступні лише на томах у форматі BFS. Переміщення файлів до інших файлових систем позбавляє файли усіх атрибутів!
Усі ці команди описано у розділі Атрибути у Терміналі.

index Команди пов'язані з індексом: lsindex, mkindex, reindex, rmindex

За допомогою цих команд Ви можете обробляти списки, створювати, переіндексувати та видаляти атрибути з індексу BFS. Кожен том має власний індекс, пам'ятайте про це, коли копіюєте файли з одного тому до іншого.
Ці команди описано у розділі Індекс.

index Команди управління пакетами: package, pkgman

Для управління пакетами HPKG використовується команда package. Перегляньте статтю Інсталяція програм, щоб дізнатися про основи цього процесу. Зазвичай для автоматичного створення пакетів за так званими «рецептами» використовується інструмент haikuporter.

pkgman призначено для пошуку, інсталяції, оновлення та деінсталяції пакетів. Працює з репозитаріями: репозитарії пакетів можна додавати, прибирати і оновлювати їхні списки. За допомогою параметра full-sync викликається спеціальний тип оновлення: він є більш агресивним, може понижати версію або вилучати пакети, якщо це необхідно.
Щоб отримати докладнішу інформацію про параметр, додайте «--help», наприклад, pkgman search --help.

index Команди сценаріїв

Ось декілька інструментів командного рядка, які особливо корисні при написанні сценаріїв (додатково дивіться розділ Bash і Написання сценаріїв).

alert

alert виводить типове вікно попередження з попередньо визначеним значком, пояснювальним текстом і кнопками (до трьох кнопок). Повертає назву натиснутої кнопки і статус виходу (починаючи з 0). Наприклад, така команда виводить таке вікно:

alert --idea "FantasticApp(tm) успішно встановлено! \
Бажаєте створити посилання на нього?" "На Робочому столі" "На Панелі задач" "Ні, дякую"

cli-alert.png

filepanel

filepanel відображає панель відкриття або збереження файлу і дозволяє користувачеві вибрати файл або місце розташування. У якості значення, яке повертає команда, Ви отримаєте шлях до вибраного файлу або папки. Доступно декілька параметрів, наприклад, встановлення початкового каталогу, заголовка вікна, назви файлу за замовчуванням при збереженні або обмеження на дозволені типи файлів. Ось приклад:

filepanel -s -t "Збереження файлу журналу" -d ~/config/settings -n Fantastic.log

cli-filepanel.png

hey

hey це невеликий допоміжний інструмент, який надсилає «BMessages» програмам і виводить (роздруковує) їхні відповіді. Його можна використовувати для програмних сценаріїв, тобто «дистанційного керування» програмою зі сценарію або командного рядка. Його використання є дещо складним… Запис у Humdinger's blog слугує гарним вступом а завдяки «BeOS Bible» від Scot Hacker's є набагато повніший підручник по роботі з hey від Chris Herborth.

notify

notify показує панель сповіщень з повідомленням. У команди існують різні параметри, опис яких можна подивитись виконавши команду notify --help. Сповіщення може бути використано для показу прогресу виконання певної дії. Для цього важливо встановити messageID і завжди використовувати його при оновленні прогресу (число з плаваючою комою від 0.0 до 1.0, яке виводиться у відсотках). Інакше Ви побачите кілька панелей сповіщень, якщо Ви оновите прогрес швидше, ніж встановлений таймаут.
Приклад:

notify --type progress --group "Група елементів" --title "Заголовок" --icon /boot/home/bebook.hvif \
--messageID MyMessageID --progress .75 "Трохи зачекайте"

cli-notification.png

query

query – це версія командного рядка пошукової панелі «Знайти». Насправді, швидкий спосіб створити пошуковий запит – це створити запит на панелі «Знайти», переключитися у режим за формулою, додати подвійні лапки (") спереду і ззаду і вставити весь рядок після команди query в Терміналі або Вашому сценарії.

waitfor

waitfor – це зручний спосіб дочекатися запуску або завершення певної програми чи потоку.

index Інші команди

checkfs

checkfs – важливий інструмент для перевірки файлової системи на наявність помилок. Просто додайте назву тому, наприклад /Haiku або шлях до пристрою і програма перевірить кожен файл і виправить невідповідності, де це можливо.

desklink

За допомогою desklink можна встановити значок для будь-якого файлу, папки, запиту або програми в системному треї панелі задач Deskbar. Також можна створити контекстне меню при натисканні правою кнопкою миші на значку для виконання спеціальних дій. Для прикладу, спробуйте додати програму командного рядка screenshot з різними параметрами (символ «\» у першому рядку слугує лише для переведення рядка у Терміналі):

 desklink "cmd=Активне вікно (2с):/bin/screenshot --window --border --delay 2" \
"cmd=Прибрати реплікант:desklink --remove=screenshot" /bin/screenshot

cli-desklink.png

diskimage

diskimage дозволяє зареєструвати звичайний файл як дисковий пристрій. Наприклад, Ви можете зареєструвати образ Haiku «anyboot», підключити (змонтувати) його у Tracker і копіювати, редагувати або видаляти файли, перш ніж використовувати його як джерело в Інсталяторі.

launch_roster

Демон «launch_daemon» запускає всілякі служби та програми під час загрузки системи. Для деяких з цих служб/програм прописана інструкція на автоматичний перезапуск, якщо вони були завершені. Якщо Вам це не потрібно – наприклад, якщо Ви хочете протестувати модифікований Tracker – Ви можете використовувати launch_roster з параметром stop, щоб відключити перезапуск програми перед завершенням роботи з нею і зупинити програму. Параметр start, навпаки, відновить автоматичний перезапуск і запустить службу/програму а параметр info надасть інформацію про неї. Параметр log виводить (друкує) журнал усіх подій, пов'язаних з «launch_daemon».
Без параметрів, launch_roster виводить список усіх служб/програм, які перебувають під його контролем.
Наприклад, ця команда зупинить повторний запуск і саму програму Deskbar:

launch_roster stop x-vnd.be-tskb

mountvolume
mount

Багато хто надає перевагу mountvolume для підключення (монтування) локальних розділів і дисків, оскільки вона дуже проста у використанні: просто викличте її, вказавши назву розділу, і все готово. Використовуйте --help для отримання повної довідки по програмі.

mount може додатково підключати (монтувати) віддалені диски за допомогою мережевої файлової системи, наприклад, NFS4. Ви вказуєте файлову систему за допомогою параметра -t а віддалене розташування – за допомогою параметра -p. У якості параметра файлової системи Ви можете використовувати будь-що, що знайдете в /system/add-ons/kernel/file_system (і, звісно, у відповідних файлових структурах в ~/config або «non-packaged»). Ви також повинні створити папку як точку монтування. Ось приклад:

mkdir -p /DiskStation
mount -t nfs4 -p "192.168.178.3:volume1" /DiskStation

open

open – дуже зручний маленький інструмент. За допомогою нього Ви відкриваєте будь-який файл у пріоритетній програмі або запускаєте певну програму за її сигнатурою без необхідності знати її точний шлях. Він також працює з URL-адресами і навіть з «віртуальними» каталогами «.» для поточного каталогу та «..» для батьківського, відкриваючи папку в Tracker.

ramdisk

RAM-диск схожий на жорсткий диск, який працює лише в оперативній пам'яті комп'ютера. Це робить його дуже швидким, але водночас і нестабільним, оскільки його вміст зникає, коли Ви вимикаєте комп'ютер, або він виходить з ладу, коли у Вас відключається світло.
Щоб створити RAM-диск розміром 1 гігабайт, відформатувати його під назвою «RAMses» і підключити (монтувати), введіть цю команду у терміналі або створіть відповідний сценарій:

ramdisk create -s 1gb
mkfs -q -t bfs /dev/disk/virtual/ram/0/raw RAMses
mountvolume RAMses

Примітка: Під час створення RAM-диску команда ramdisk виводить шлях до нього. Якщо Ви створите декілька дисків, цей шлях /dev/disk/virtual/ram/0/raw зміниться!

Щоб зберегти вміст, принаймні, якщо не станеться якихось непередбачуваних ситуацій, таких як відключення електроенергії тощо, ramdisk можна запустити у режимі читання/запису образу на жорсткому диску. Для цього Вам потрібно створити файл потрібного розміру, який зчитуватиметься щоразу, коли Ви запускатимете ramdisk, і записуватиметься, коли Ви будете відключати (розмонтовувати) RAM-диск. Щоб створити файл образу «RAMimage» розміром 500 MiB і відформатувати його, виконайте такі дії:

dd if=/dev/zero of=RAMimage bs=500M count=1
mkfs -q -t bfs /dev/disk/virtual/ram/0/raw RAMimage

Відтепер Ви запускаєте ramdisk таким чином:

ramdisk create RAMimage
mountvolume RAMimage

Дуже важливо завжди чисто відключати (розмонтовувати) Ваш RAM-диск, або з Tracker або за допомогою unmount /RAMimage, інакше зміни не будуть записані назад до файлу образу!

screenmode

Ця команда встановлює режим екрана (роздільну здатність, бітову глибину, частоту оновлення). Зазвичай це можна зробити у настройках параметрів екрана. Ще один параметр робить її корисною у поєднанні з клавішами швидкого доступу: наприклад, --brightness +3 збільшує яскравість на «3». Корисно для зміни підсвічування за допомогою комбінації клавіш.

setvolume

Ця команда встановлює гучність головного виходу системи. Окрім конкретних значень у дБ, Ви можете використовувати такі параметри, як --togglemute, --mute або --unmute та --increase або --decrease для управління гучністю. Для тих параметрів, які використовуються постійно, корисно призначити комбінації клавіш за допомогою панелі налаштувань клавіш швидкого доступу.