Subversion Repositories Kolibri OS

Rev

Rev 8638 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8638 Kenshin 1
Интерфейс X-Shell для консольных приложений
2502 Albom 2
=======================================
3
 
8638 Kenshin 4
Обмен информацией между Shell и консольными приложениями осуществляется через именованную разделяемую область памяти.
2735 Albom 5
 
2502 Albom 6
Консольное приложение может быть написано на любом языке программирования - это обыкновенная программа для КолибриОС.
7
 
2735 Albom 8
Консольное приложение после своего запуска в первую очередь должно создать именованную область с именем pid-SHELL, где pid - идентификатор процесса без заглавных нулей,
9
например: 6, 42 или 204.
2502 Albom 10
 
2735 Albom 11
Первый байт области - команда (т.е. максимум 255 команд, что вполне достаточно), далее - данные (могут отсутствовать).
2502 Albom 12
 
2735 Albom 13
Список реализованных команд:
14
SC_OK		0	ничего не делать
15
SC_EXIT		1	выход
16
SC_PUTC		2	вывести на экран символ
17
SC_PUTS		3	вывести на экран строку
18
SC_GETC		4	считать с клавиатуры символ
19
SC_GETS		5	считать с клавиатуры строку
20
SC_CLS		6	очистить экран
8638 Kenshin 21
SC_PID		7	получить PID Shell'а
22
SC_PING		8	проверка связи (пинг)
2502 Albom 23
 
2735 Albom 24
Программа должна сама заботиться о рациональном использовании процессорного времени.
25
 
26
Программа должна сама заботиться о закрытии именованной области.
6822 siemargl 27
 
28
Команды Shell
29
=======================================
30
В угловых скобках указаны параметры команд
31
 
32
about	выводит версию программы shell
33
 
8638 Kenshin 34
alias	без параметра выводит список синонимов команд,
6822 siemargl 35
		с параметром вида newprg = old_name определяет синоним newprg
36
		если есть пробелы, нужно значение закавычить newprg = "old name"
37
cd		сменить текущий каталог на указанный параметром <каталог>
38
clear	очистка экрана
39
cp		копирование файла <источник> <результат>
40
date	показывает дату и время
41
echo	Выводит <данные> на экран
42
exit	завершение работы Shell
43
free	показывает объём оперативной памяти: всей, свободной и используемой
6825 siemargl 44
help	показать перечень команд shell. С параметром <команда> справка по команде
6822 siemargl 45
history	cписок последних использованных команд
8638 Kenshin 46
kill	убивает процесс по . kill all убивает все процессы, слоты >=2
6822 siemargl 47
ls		выводит список файлов в текущем каталоге или указанном <каталоге>
7024 leency 48
        ключ '-1' выводит список в одну колонку, иначе многоколоночный вывод
6822 siemargl 49
mkdir	cоздает <каталог>. Поддерживаются абсолюные и относительные пути
50
more	выводит содержимое <файла> на экран
8638 Kenshin 51
ps		показывает список процессов и их PID,
6825 siemargl 52
		если задать <имя>, покажет %CPU, используемую память и запомнит
53
		внутреннюю переменную LASTPID (полезно для команды waitfor)
7024 leency 54
		<имя> - это первые 11 букв имени исполняемого файла без расширения
6822 siemargl 55
pwd		показывает имя текущего каталога
56
reboot	перезагружает компьютер или ядро KolibriOS. reboot kernel перезапустить ядро Kolibri
57
rm		удаляет <файл>
58
rmdir	удаляет <каталог>
59
shutdown	выключает компьютер
60
sleep	приостанавливает работу Shell'а на заданное <время в сотых долях секунды>
6826 siemargl 61
touch	создаёт пустой <файл> или изменяет дату/время создания файла
6825 siemargl 62
uptime	показывает время работы системы с момента загрузки
8638 Kenshin 63
ver		показывает версию Shell, ver kernel - версию и номер ревизии ядра OS,
6825 siemargl 64
		ver cpu - информацию о процессоре
8638 Kenshin 65
waitfor	если перед этим была запущена программа, приостанавливает
66
		выполнение командного файла до ее завершения по LASTPID
6825 siemargl 67
		или до завершения явно указанного параметра 
68
 
69
Скрипты и запуск на исполнение
70
=======================================
71
Если имя исполнимого файла начинается с / то считается что путь является абсолютным.
9587 vitalkrilo 72
В противном случае, поиск сначала проводится в текущем каталоге, а затем в /sys.
6825 siemargl 73
 
74
Далее, если файл найден, проверяются первые 4 байта на сигнатуру #SHS.
75
С этой сигнатуры начинается командный (пакетный) файл.
8638 Kenshin 76
В командном файле допустимы все команды приведенные выше, а комментарии
6825 siemargl 77
начинаются с символа # в первой позиции строки.
78
 
79
Если на выполнение был задан исполняемый файл, запомнит LASTPID
80