Интерфейс 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 убивает процесс по . 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 или до завершения явно указанного параметра Скрипты и запуск на исполнение ======================================= Если имя исполнимого файла начинается с / то считается что путь является абсолютным. В противном случае, поиск сначала проводится в текущем каталоге, а затем в /rd/1. Далее, если файл найден, проверяются первые 4 байта на сигнатуру #SHS. С этой сигнатуры начинается командный (пакетный) файл. В командном файле допустимы все команды приведенные выше, а комментарии начинаются с символа # в первой позиции строки. Если на выполнение был задан исполняемый файл, запомнит LASTPID