Page 1 of 14

Очень функциональный шелл

Posted: Sat Jul 26, 2008 6:11 pm
by Albom
Решил написать функциональный шелл на Си с использованием console.obj.
Большинство команд думаю сделать встроенными (так скорость выше и меньше места будет занимать из-за отсутствия инициализации в каждой программе), но хотелось бы некоторые команды реализовать в виде модулей (не скрипты). У меня пока 2 идеи - использовать IPC или библиотеки. Надо, чтобы во внешнем модуле можно было вызывать ф-ции ввода/вывода в существующую консоль. Кто-нибудь может подсказать как лучше их реализовать?
Пока сделал функцию отделения команды и параметров, а также реализовал команды help (пока без параметров), ver и exit.

Re: Очень функциональный шелл

Posted: Sun Jul 27, 2008 11:49 am
by Albom
Реализовал команды:

exit - выход
ls (с параметром и без) - вывод списка директории
pwd - текущий каталог
ps - список процессов и их PID
kill - завершить процесс по PID
help (с параметром и без) - помощь

Радует, что шелл уже приближается по функциональности к cmd - и это всего за пару часов работы

Re: Очень функциональный шелл

Posted: Sun Jul 27, 2008 11:57 am
by Leency
Классно получаеться, ну вот и будет у нас наконец-то нормальный шелл :)
Только надо будет полосу прокрутки сделать более Колибришной.

Re: Очень функциональный шелл

Posted: Mon Jul 28, 2008 6:16 pm
by Albom
Версия 0.1.

Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver. При перемещении по каталогам желательно указывать осмысленные имена. При запуске программы (если не указан полный путь) она ищется в каталоге /rd/1 и текущем каталоге.

Ассемблерщики! Улучшите пожалуйста библиотеку console.obj. Очень не хватает в ней функций очистки экрана и получения/установки места. Да и создаваемое окно выглядит убого (это скорее вопрос к дизайнерам:)), особенно мне не нравиться невозможность изменения его размеров.

Re: Очень функциональный шелл

Posted: Thu Jul 31, 2008 8:08 pm
by Albom
Версия 0.11.
Добавил команды free и reboot, внёс некоторые изменения, исправил найденные ошибки.

Re: Очень функциональный шелл

Posted: Thu Jul 31, 2008 8:37 pm
by Leency
Забыл сказать: пост "Версия 0.1...." я отправил разработчику либы сонсоль.обдж (диамонду), отправил я ему и скин прокрутки в стиле Еолайта\HTMLv, подождём быть может что-то он придумает)...

Re: Очень функциональный шелл

Posted: Sat Aug 02, 2008 6:31 pm
by Nable
to Albom
Очень рад шеллу, а то все файловые менеджеры строку ввода рисуют, а писать в ней ничего нельзя, а единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мышь.

Re: Очень функциональный шелл

Posted: Sat Aug 02, 2008 7:55 pm
by Albom
единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мыш
у меня та же история! вот более-менее реализую функциональность команд и займусь процедурой ввода - очень не хватает up/down и tab... тогда пользоваться, думаю, будет очень удобно.

Re: Очень функциональный шелл

Posted: Sat Aug 02, 2008 9:28 pm
by DmitrySokolowsky
Хорошо бы значок "#" в начале строки заменить на "$", а то нас могу обвинить в том, что мы всё время работаем под рутом, что среди ортодоксальных линуксоидов считается плохим тоном))
В целом понравилось, удачи в разработке!

Re: Очень функциональный шелл

Posted: Sun Aug 03, 2008 4:58 am
by Ghost
Атауальпа по сути в КОлибри мы всегда под рутом )))
Albom может лучще портировать bash/sh? Конечно отсутствие fork(), dup() и стандартных дескрипторов как таковых усложняет задачу но их можно и эмулировать.

Re: Очень функциональный шелл

Posted: Sun Aug 03, 2008 6:46 am
by Albom
может лучще портировать bash/sh?
вряд ли получится. Уж очень далека Kolibri от POSIX. Слишком многое придётся эмулировать. К тому же стоит ли?

Re: Очень функциональный шелл

Posted: Sun Aug 03, 2008 10:41 am
by Leency
ИМХО не стоит.
Albom wrote:
единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мыш
у меня та же история!
А почему бы не продублировать комманды? чтобы и dir, и ls работали и выполняли одну и ту же функцию.

Re: Очень функциональный шелл

Posted: Sun Aug 03, 2008 1:57 pm
by bw
> Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver.

..bw

Re: Очень функциональный шелл

Posted: Sun Aug 03, 2008 7:46 pm
by Albom
А почему бы не продублировать комманды? чтобы и dir, и ls работали и выполняли одну и ту же функцию.
не надо! я принципиально против такого бреда. или то, или другое. кому надо будет - скомпилирует со своими командами, хоть пусть команда вывода списка файлов будет CATALOG (как на APPLE ][ :)). надо придерживаться хоть каких-то стандартов - я выбрал стандарт UNIX.

Re: Очень функциональный шелл

Posted: Sun Aug 03, 2008 8:20 pm
by Leency
Albom wrote:надо придерживаться хоть каких-то стандартов - я выбрал стандарт UNIX.
Но ведь Колибря во всём наследует Винь!
Можно было бы сказать: надо придерживаться стандартов!, но делай как хочешь. Скажу лишь что доля пользователей Linux на Европейских десктопах 1%, на территории наших стран не более 0.5%. Чем обоснован выбор в сторону Линуксовского стандарта мне _не_понятно_.