Difference between revisions of "Shell/ru"

From KolibriOS wiki
Jump to navigation Jump to search
m
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Image:SHELL.png|thumb|right]]
 
[[Image:SHELL.png|thumb|right]]
<CODE>SHELL</CODE> - командная оболочка с базовым набором команд. Консольное приложение (использует библиотеку console.obj).
+
<CODE>SHELL</CODE> - командная оболочка с базовым набором команд из мира UNIX. Консольное приложение (использует библиотеку console.obj).
 +
Язык разработки - Си. Компилятор - gcc (MinGW).
  
 
== Основные возможности ==
 
== Основные возможности ==
* 20 базовых команд (about, alias, cd, clear, date, echo, exit, free, help, kill, ls, mkdir, more, ps, pwd, reboot, rm, rmdir, touch, ver);
+
* 28 базовых команд (about, alias, cd, clear, cp, mv, ren, date, echo, exit, free, help, history, kill, ls, mkdir, more, ps, pwd, reboot, rm, rmdir, shutdown, sleep, touch, uptime, ver, waitfor);
 
* Схема псевдонимов, построенная на команде alias;
 
* Схема псевдонимов, построенная на команде alias;
 
* История из 5 (можно изменить при компиляции) введённых команд;
 
* История из 5 (можно изменить при компиляции) введённых команд;
* Возможность запуска скриптов.
+
* Возможность запуска скриптов (при запуске шелла автоматически запускается скрипт .shell, скрипт должен начитаться с #SHS, если строка начинается с #, то вся строка  игнорируется);
 +
* Возможность запуска консольных приложений.
 +
 
 +
== Консольные приложения ==
 +
Консольное приложение может быть написано на любом языке программирования - это обыкновенная программа для Колибри.
 +
 
 +
1) Консольное приложение после своего запуска В ПЕРВУЮ ОЧЕРЕДЬ должно создать именованную область с именем pid-SHELL, где pid - идентификатор процесса,
 +
например: 6, 42 или 204.
 +
+ нужно сделать, чтобы программа корректно завершалась, если запущена не из шелла (СЕЙЧАС НЕ РЕАЛИЗОВАНО!!!)
 +
 
 +
2) Первый байт области - команда (т.е. максимум 255 команд), далее - данные (могут отсутствовать).
 +
Список команд для версии 0.5:
 +
SC_OK 0 ничего не делать
 +
SC_EXIT 1 выход
 +
SC_PUTC 2 вывести на экран символ
 +
SC_PUTS 3 вывести на экран строку
 +
SC_GETC 4 считать с клавиатуры символ
 +
SC_GETS 5 считать с клавиатуры строку
 +
SC_CLS 6 очистить экран
 +
 
 +
3) Программа должна САМА заботиться о рациональном использовании процессорного времени.
 +
 
 +
4) Программа должна САМА заботиться о закрытии именованной области.
 +
 
  
 
== Авторы ==
 
== Авторы ==
Albom, diamond
+
Albom, diamond, Pterox, Leency, rgimad
  
 
{{Файловые_менеджеры}}
 
{{Файловые_менеджеры}}
 
[[Category:Файловые_менеджеры]]
 
[[Category:Файловые_менеджеры]]
 
[[Category:Программы на Си]]
 
[[Category:Программы на Си]]

Latest revision as of 17:50, 24 November 2020

SHELL.png

SHELL - командная оболочка с базовым набором команд из мира UNIX. Консольное приложение (использует библиотеку console.obj). Язык разработки - Си. Компилятор - gcc (MinGW).

Основные возможности

  • 28 базовых команд (about, alias, cd, clear, cp, mv, ren, date, echo, exit, free, help, history, kill, ls, mkdir, more, ps, pwd, reboot, rm, rmdir, shutdown, sleep, touch, uptime, ver, waitfor);
  • Схема псевдонимов, построенная на команде alias;
  • История из 5 (можно изменить при компиляции) введённых команд;
  • Возможность запуска скриптов (при запуске шелла автоматически запускается скрипт .shell, скрипт должен начитаться с #SHS, если строка начинается с #, то вся строка игнорируется);
  • Возможность запуска консольных приложений.

Консольные приложения

Консольное приложение может быть написано на любом языке программирования - это обыкновенная программа для Колибри.

1) Консольное приложение после своего запуска В ПЕРВУЮ ОЧЕРЕДЬ должно создать именованную область с именем pid-SHELL, где pid - идентификатор процесса, например: 6, 42 или 204. + нужно сделать, чтобы программа корректно завершалась, если запущена не из шелла (СЕЙЧАС НЕ РЕАЛИЗОВАНО!!!)

2) Первый байт области - команда (т.е. максимум 255 команд), далее - данные (могут отсутствовать). Список команд для версии 0.5: SC_OK 0 ничего не делать SC_EXIT 1 выход SC_PUTC 2 вывести на экран символ SC_PUTS 3 вывести на экран строку SC_GETC 4 считать с клавиатуры символ SC_GETS 5 считать с клавиатуры строку SC_CLS 6 очистить экран

3) Программа должна САМА заботиться о рациональном использовании процессорного времени.

4) Программа должна САМА заботиться о закрытии именованной области.


Авторы

Albom, diamond, Pterox, Leency, rgimad