forked from KolibriOS/kolibrios
46d9482bb0
git-svn-id: svn://kolibrios.org@9587 a494cfbc-eb01-0410-851d-a64ba20cac60
81 lines
3.6 KiB
Plaintext
81 lines
3.6 KiB
Plaintext
Интерфейс X-Shell для консольных приложений
|
||
=======================================
|
||
|
||
Обмен информацией между Shell и консольными приложениями осуществляется через именованную разделяемую область памяти.
|
||
|
||
Консольное приложение может быть написано на любом языке программирования - это обыкновенная программа для КолибриОС.
|
||
|
||
Консольное приложение после своего запуска в первую очередь должно создать именованную область с именем pid-SHELL, где pid - идентификатор процесса без заглавных нулей,
|
||
например: 6, 42 или 204.
|
||
|
||
Первый байт области - команда (т.е. максимум 255 команд, что вполне достаточно), далее - данные (могут отсутствовать).
|
||
|
||
Список реализованных команд:
|
||
SC_OK 0 ничего не делать
|
||
SC_EXIT 1 выход
|
||
SC_PUTC 2 вывести на экран символ
|
||
SC_PUTS 3 вывести на экран строку
|
||
SC_GETC 4 считать с клавиатуры символ
|
||
SC_GETS 5 считать с клавиатуры строку
|
||
SC_CLS 6 очистить экран
|
||
SC_PID 7 получить PID Shell'а
|
||
SC_PING 8 проверка связи (пинг)
|
||
|
||
Программа должна сама заботиться о рациональном использовании процессорного времени.
|
||
|
||
Программа должна сама заботиться о закрытии именованной области.
|
||
|
||
Команды Shell
|
||
=======================================
|
||
В угловых скобках указаны параметры команд
|
||
|
||
about выводит версию программы shell
|
||
|
||
alias без параметра выводит список синонимов команд,
|
||
с параметром вида newprg = old_name определяет синоним newprg
|
||
если есть пробелы, нужно значение закавычить newprg = "old name"
|
||
cd сменить текущий каталог на указанный параметром <каталог>
|
||
clear очистка экрана
|
||
cp копирование файла <источник> <результат>
|
||
date показывает дату и время
|
||
echo Выводит <данные> на экран
|
||
exit завершение работы Shell
|
||
free показывает объём оперативной памяти: всей, свободной и используемой
|
||
help показать перечень команд shell. С параметром <команда> справка по команде
|
||
history cписок последних использованных команд
|
||
kill убивает процесс по <PID>. kill all убивает все процессы, слоты >=2
|
||
ls выводит список файлов в текущем каталоге или указанном <каталоге>
|
||
ключ '-1' выводит список в одну колонку, иначе многоколоночный вывод
|
||
mkdir cоздает <каталог>. Поддерживаются абсолюные и относительные пути
|
||
more выводит содержимое <файла> на экран
|
||
ps показывает список процессов и их PID,
|
||
если задать <имя>, покажет %CPU, используемую память и запомнит
|
||
внутреннюю переменную LASTPID (полезно для команды waitfor)
|
||
<имя> - это первые 11 букв имени исполняемого файла без расширения
|
||
pwd показывает имя текущего каталога
|
||
reboot перезагружает компьютер или ядро KolibriOS. reboot kernel перезапустить ядро Kolibri
|
||
rm удаляет <файл>
|
||
rmdir удаляет <каталог>
|
||
shutdown выключает компьютер
|
||
sleep приостанавливает работу Shell'а на заданное <время в сотых долях секунды>
|
||
touch создаёт пустой <файл> или изменяет дату/время создания файла
|
||
uptime показывает время работы системы с момента загрузки
|
||
ver показывает версию Shell, ver kernel - версию и номер ревизии ядра OS,
|
||
ver cpu - информацию о процессоре
|
||
waitfor если перед этим была запущена программа, приостанавливает
|
||
выполнение командного файла до ее завершения по LASTPID
|
||
или до завершения явно указанного параметра <PID>
|
||
|
||
Скрипты и запуск на исполнение
|
||
=======================================
|
||
Если имя исполнимого файла начинается с / то считается что путь является абсолютным.
|
||
В противном случае, поиск сначала проводится в текущем каталоге, а затем в /sys.
|
||
|
||
Далее, если файл найден, проверяются первые 4 байта на сигнатуру #SHS.
|
||
С этой сигнатуры начинается командный (пакетный) файл.
|
||
В командном файле допустимы все команды приведенные выше, а комментарии
|
||
начинаются с символа # в первой позиции строки.
|
||
|
||
Если на выполнение был задан исполняемый файл, запомнит LASTPID
|
||
|