Board.KolibriOS.org
http://board.kolibrios.org/

Очень функциональный шелл
http://board.kolibrios.org/viewtopic.php?f=48&t=1111
Page 1 of 13

Author:  Albom [ Sat Jul 26, 2008 6:11 pm ]
Post subject:  Очень функциональный шелл

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

Attachments:
shell.zip [1.46 KiB]
Downloaded 431 times

Author:  Albom [ Sun Jul 27, 2008 11:49 am ]
Post subject:  Re: Очень функциональный шелл

Реализовал команды:

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

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

Attachments:
File comment: 0.02
shell.zip [2.53 KiB]
Downloaded 412 times

Author:  Leency [ Sun Jul 27, 2008 11:57 am ]
Post subject:  Re: Очень функциональный шелл

Классно получаеться, ну вот и будет у нас наконец-то нормальный шелл :)
Только надо будет полосу прокрутки сделать более Колибришной.

Author:  Albom [ Mon Jul 28, 2008 6:16 pm ]
Post subject:  Re: Очень функциональный шелл

Версия 0.1.

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

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

Attachments:
shell-0.1.zip [3.36 KiB]
Downloaded 381 times

Author:  Albom [ Thu Jul 31, 2008 8:08 pm ]
Post subject:  Re: Очень функциональный шелл

Версия 0.11.
Добавил команды free и reboot, внёс некоторые изменения, исправил найденные ошибки.

Attachments:
shell-0.11.zip [3.27 KiB]
Downloaded 382 times

Author:  Leency [ Thu Jul 31, 2008 8:37 pm ]
Post subject:  Re: Очень функциональный шелл

Забыл сказать: пост "Версия 0.1...." я отправил разработчику либы сонсоль.обдж (диамонду), отправил я ему и скин прокрутки в стиле Еолайта\HTMLv, подождём быть может что-то он придумает)...

Author:  Nable [ Sat Aug 02, 2008 6:31 pm ]
Post subject:  Re: Очень функциональный шелл

to Albom
Очень рад шеллу, а то все файловые менеджеры строку ввода рисуют, а писать в ней ничего нельзя, а единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мышь.

Author:  Albom [ Sat Aug 02, 2008 7:55 pm ]
Post subject:  Re: Очень функциональный шелл

Quote:
единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мыш

у меня та же история! вот более-менее реализую функциональность команд и займусь процедурой ввода - очень не хватает up/down и tab... тогда пользоваться, думаю, будет очень удобно.

Author:  DmitrySokolowsky [ Sat Aug 02, 2008 9:28 pm ]
Post subject:  Re: Очень функциональный шелл

Хорошо бы значок "#" в начале строки заменить на "$", а то нас могу обвинить в том, что мы всё время работаем под рутом, что среди ортодоксальных линуксоидов считается плохим тоном))
В целом понравилось, удачи в разработке!

Author:  Ghost [ Sun Aug 03, 2008 4:58 am ]
Post subject:  Re: Очень функциональный шелл

Атауальпа по сути в КОлибри мы всегда под рутом )))
Albom может лучще портировать bash/sh? Конечно отсутствие fork(), dup() и стандартных дескрипторов как таковых усложняет задачу но их можно и эмулировать.

Author:  Albom [ Sun Aug 03, 2008 6:46 am ]
Post subject:  Re: Очень функциональный шелл

Quote:
может лучще портировать bash/sh?

вряд ли получится. Уж очень далека Kolibri от POSIX. Слишком многое придётся эмулировать. К тому же стоит ли?

Author:  Leency [ Sun Aug 03, 2008 10:41 am ]
Post subject:  Re: Очень функциональный шелл

ИМХО не стоит.
Albom wrote:
Quote:
единожды привыкныв к командам cd.. dir, и прочим сложно перейти на мыш
у меня та же история!
А почему бы не продублировать комманды? чтобы и dir, и ls работали и выполняли одну и ту же функцию.

Author:  bw [ Sun Aug 03, 2008 1:57 pm ]
Post subject:  Re: Очень функциональный шелл

> Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver.

..bw

Author:  Albom [ Sun Aug 03, 2008 7:46 pm ]
Post subject:  Re: Очень функциональный шелл

Quote:
А почему бы не продублировать комманды? чтобы и dir, и ls работали и выполняли одну и ту же функцию.

не надо! я принципиально против такого бреда. или то, или другое. кому надо будет - скомпилирует со своими командами, хоть пусть команда вывода списка файлов будет CATALOG (как на APPLE ][ :)). надо придерживаться хоть каких-то стандартов - я выбрал стандарт UNIX.

Author:  Leency [ Sun Aug 03, 2008 8:20 pm ]
Post subject:  Re: Очень функциональный шелл

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

Page 1 of 13 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/