Решил написать функциональный шелл на Си с использованием console.obj.
Большинство команд думаю сделать встроенными (так скорость выше и меньше места будет занимать из-за отсутствия инициализации в каждой программе), но хотелось бы некоторые команды реализовать в виде модулей (не скрипты). У меня пока 2 идеи - использовать IPC или библиотеки. Надо, чтобы во внешнем модуле можно было вызывать ф-ции ввода/вывода в существующую консоль. Кто-нибудь может подсказать как лучше их реализовать?
Пока сделал функцию отделения команды и параметров, а также реализовал команды help (пока без параметров), ver и exit.
Очень функциональный шелл
-
- Attachments
-
-
shell.zip (1.46 KiB)Downloaded 669 times
-
Реализовал команды:
exit - выход
ls (с параметром и без) - вывод списка директории
pwd - текущий каталог
ps - список процессов и их PID
kill - завершить процесс по PID
help (с параметром и без) - помощь
Радует, что шелл уже приближается по функциональности к cmd - и это всего за пару часов работы
exit - выход
ls (с параметром и без) - вывод списка директории
pwd - текущий каталог
ps - список процессов и их PID
kill - завершить процесс по PID
help (с параметром и без) - помощь
Радует, что шелл уже приближается по функциональности к cmd - и это всего за пару часов работы
- Attachments
-
-
shell.zip (2.53 KiB)
- 0.02
Downloaded 665 times
-
Классно получаеться, ну вот и будет у нас наконец-то нормальный шелл
Только надо будет полосу прокрутки сделать более Колибришной.
Только надо будет полосу прокрутки сделать более Колибришной.
Из хаоса в космос
Версия 0.1.
Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver. При перемещении по каталогам желательно указывать осмысленные имена. При запуске программы (если не указан полный путь) она ищется в каталоге /rd/1 и текущем каталоге.
Ассемблерщики! Улучшите пожалуйста библиотеку console.obj. Очень не хватает в ней функций очистки экрана и получения/установки места. Да и создаваемое окно выглядит убого (это скорее вопрос к дизайнерам:)), особенно мне не нравиться невозможность изменения его размеров.
Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver. При перемещении по каталогам желательно указывать осмысленные имена. При запуске программы (если не указан полный путь) она ищется в каталоге /rd/1 и текущем каталоге.
Ассемблерщики! Улучшите пожалуйста библиотеку console.obj. Очень не хватает в ней функций очистки экрана и получения/установки места. Да и создаваемое окно выглядит убого (это скорее вопрос к дизайнерам:)), особенно мне не нравиться невозможность изменения его размеров.
- Attachments
-
-
shell-0.1.zip (3.36 KiB)Downloaded 623 times
-
Версия 0.11.
Добавил команды free и reboot, внёс некоторые изменения, исправил найденные ошибки.
Добавил команды free и reboot, внёс некоторые изменения, исправил найденные ошибки.
- Attachments
-
-
shell-0.11.zip (3.27 KiB)Downloaded 626 times
-
Забыл сказать: пост "Версия 0.1...." я отправил разработчику либы сонсоль.обдж (диамонду), отправил я ему и скин прокрутки в стиле Еолайта\HTMLv, подождём быть может что-то он придумает)...
Из хаоса в космос
to Albom
Очень рад шеллу, а то все файловые менеджеры строку ввода рисуют, а писать в ней ничего нельзя, а единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мышь.
Очень рад шеллу, а то все файловые менеджеры строку ввода рисуют, а писать в ней ничего нельзя, а единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мышь.
у меня та же история! вот более-менее реализую функциональность команд и займусь процедурой ввода - очень не хватает up/down и tab... тогда пользоваться, думаю, будет очень удобно.единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мыш
Хорошо бы значок "#" в начале строки заменить на "$", а то нас могу обвинить в том, что мы всё время работаем под рутом, что среди ортодоксальных линуксоидов считается плохим тоном))
В целом понравилось, удачи в разработке!
В целом понравилось, удачи в разработке!
Атауальпа по сути в КОлибри мы всегда под рутом )))
Albom может лучще портировать bash/sh? Конечно отсутствие fork(), dup() и стандартных дескрипторов как таковых усложняет задачу но их можно и эмулировать.
Albom может лучще портировать bash/sh? Конечно отсутствие fork(), dup() и стандартных дескрипторов как таковых усложняет задачу но их можно и эмулировать.
вряд ли получится. Уж очень далека Kolibri от POSIX. Слишком многое придётся эмулировать. К тому же стоит ли?может лучще портировать bash/sh?
ИМХО не стоит.
А почему бы не продублировать комманды? чтобы и dir, и ls работали и выполняли одну и ту же функцию.Albom wrote:у меня та же история!единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мыш
Из хаоса в космос
> Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver.
..bw
..bw
не надо! я принципиально против такого бреда. или то, или другое. кому надо будет - скомпилирует со своими командами, хоть пусть команда вывода списка файлов будет CATALOG (как на APPLE ][ ). надо придерживаться хоть каких-то стандартов - я выбрал стандарт UNIX.А почему бы не продублировать комманды? чтобы и dir, и ls работали и выполняли одну и ту же функцию.
Но ведь Колибря во всём наследует Винь!Albom wrote:надо придерживаться хоть каких-то стандартов - я выбрал стандарт UNIX.
Можно было бы сказать: надо придерживаться стандартов!, но делай как хочешь. Скажу лишь что доля пользователей Linux на Европейских десктопах 1%, на территории наших стран не более 0.5%. Чем обоснован выбор в сторону Линуксовского стандарта мне _не_понятно_.
Из хаоса в космос
Who is online
Users browsing this forum: No registered users and 2 guests