Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Dec 01, 2020 2:16 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 195 posts ]  Go to page Previous 1 2 3 4 513 Next
Author Message
PostPosted: Mon Aug 04, 2008 12:38 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Fri Jun 30, 2006 9:01 am
Posts: 1276
Nice shell, albom
How are you going to link it to applications? I hope not through IPC...

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Top
   
PostPosted: Mon Aug 04, 2008 2:06 am 
Offline

Joined: Mon Aug 04, 2008 1:48 am
Posts: 7
Albom wrote:
Quote:
А почему бы не продублировать комманды? чтобы и dir, и ls работали и выполняли одну и ту же функцию.

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


Albom,
I agree with the concept of double-commands, triple commands, or n*commands having the same meaning. If done right, this makes an OS much easier for any user. If a user comes from MS Windows, they may think "dir" for directory listing, where a *nix user may think "ls" for directory listing, or perhaps catalog for mac people.

Therefore, I think having synonyms for commands is a great feature that Kolibri could implement. There should be a "base" or "primary" or "standard" version of a command, plus an additional easy-to-maintain list of synonyms that a user can manage. Perhaps "ls" is the "standard" for a directory listing, but the shell-command infrastructure should also make it easy to add user-defined synonyms so I can type either ls, cat, dir, listdir, showmefiles, or whatever else I want.

Just my thoughts.

By the way: this is my first posting on here, and I really really like what you have all done with KolibriOS. I think it has huge potential, and I hope to learn enough to be able to help contribute to the coding work.

Mike

_________________
Mike


Top
   
PostPosted: Mon Aug 04, 2008 6:44 am 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
Quote:
Чем обоснован выбор в сторону Линуксовского стандарта мне _не_понятно_


Выбор основан на моём личном опыте. Когда на моём первом компе стоял DR-DOS, я использовал VC и понятное дело никаких команд не вводил, хотя я их знал (была даже книга "IBM для пользователей", Фигурнова вроде, хотя точно не помню). Потом мне поставили 95 винду. Там про командную строку я вообще не вспоминал. Когда я поставил на комп Linux (о да!), там не было ни одного файлового менеджера (вернее всё-таки был один, но до mc ему было очень далеко, а mc достать было трудно, так как интернет развития у нас ещё не получил) и приходилось все команды набирать вручную. Но делалось это довольно удобно (история команд стрелочками и автоподстановка по tab). Потом я достал иксы... Но это уже другая история...


Quote:
How are you going to link it to applications? I hope not through IPC...


I don't know yet... For the first time there will not be applications linked to the shell. I hope I'll make a script mechanism. I think scripts will have "an assembler syntax" but with a lot of features such as i/o redirecting and maybe a realization of pipes.


Quote:
I agree with the concept of double-commands, triple commands, or n*commands having the same meaning.


OK, if people need such feature then I could try to make it using INI-file. So you could call commands as you want. But I think I'll do it in version 0.3 or 0.4 because I have a lot of plans now.


Btw, I have almost done version 0.2. ;)


Top
   
PostPosted: Mon Aug 04, 2008 10:27 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5333
Судя по всему ты поюзал ацкую строку Линукса и посчитал её удобной, хотя тебе небыло с чем сравнивать, ведь ДОС ты не юзал, с твоих слов.
Это запоминание было и в ДОСе по стрелочке вверх, по табу оно подставляет имя файла.

_________________
Звиздеть не мешки ворочать


Top
   
PostPosted: Mon Aug 04, 2008 2:40 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
Версия 0.2
* добавил новые функции
* написал собственную процедуру ввода команды

Quote:
Это запоминание было и в ДОСе по стрелочке вверх, по табу оно подставляет имя файла.

по-моему не было там запоминания по стрелочке вверх, а только по стрелочке вправо - запоминание последней команды. А таба и поныне нет (по-крайней мере я в 2000 проверил - НЕТУ!!!)


Attachments:
shell-0.2.zip [23.25 KiB]
Downloaded 185 times
Top
   
PostPosted: Mon Aug 04, 2008 3:10 pm 
Offline

Joined: Mon Aug 04, 2008 1:48 am
Posts: 7
Albom wrote:
Выбор основан на моём личном опыте. Когда на моём первом компе стоял DR-DOS, я использовал VC и понятное дело никаких команд не вводил, хотя я их знал (была даже книга "IBM для пользователей", Фигурнова вроде, хотя точно не помню). Потом мне поставили 95 винду. Там про командную строку я вообще не вспоминал. Когда я поставил на комп Linux (о да!), там не было ни одного файлового менеджера (вернее всё-таки был один, но до mc ему было очень далеко, а mc достать было трудно, так как интернет развития у нас ещё не получил) и приходилось все команды набирать вручную. Но делалось это довольно удобно (история команд стрелочками и автоподстановка по tab). Потом я достал иксы... Но это уже другая история...

This is a perfect example of why command-synonyms make a lot of sense in my opinion. We each have different experience and knowledge, and we each can think of the same shell-functionality as a different command based on our experience. So, it does not matter very much what the "standard" command is for any particular task, as long as the command is listed in simple help-file or description text so another person can think "oh, that is the command that I think of as ..." and create a synonym for it.

This leads me to question about configuration data in Kolibri. Is there already a standard location for placing global INI files like what may be required to implement command-synonyms lookup-table? I am trying to learn how such things are done properly in Koblibri.

Thanks for considering, and maybe I will see this feature in v.3 or .4 :)

_________________
Mike


Top
   
PostPosted: Mon Aug 04, 2008 6:28 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Fri Jun 30, 2006 9:01 am
Posts: 1276
nice going

ps: you have made a spelling mistake in english documentation: aviable should be available ;)

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Top
   
PostPosted: Mon Aug 04, 2008 8:52 pm 
Offline
User avatar

Joined: Mon Nov 05, 2007 12:09 am
Posts: 32
Albom wrote:
OK, if people need such feature then I could try to make it using INI-file.

Albom, сделай команду alias, и спорить будет больше не о чем. Каждый настроит команды так, как ему удобно.


Top
   
PostPosted: Tue Aug 05, 2008 6:45 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
Quote:
ps: you have made a spelling mistake in english documentation: aviable should be available

Thanks! I thought I know English well but I still make a lot of mistakes...

Quote:
Albom, сделай команду alias

I'll make alias command, but where should Shell save preferences? I think the only right way is using INI (I try to write an gcc interface of libini).


Top
   
PostPosted: Tue Aug 05, 2008 10:04 pm 
Offline
User avatar

Joined: Mon Nov 05, 2007 12:09 am
Posts: 32
Albom wrote:
I'll make alias command, but where should Shell save preferences?

Put shell commands to the logon script, like .profile (or .bash_login) in *nix.


Top
   
PostPosted: Thu Aug 07, 2008 12:29 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
Версия 0.3


1) Возможность запуска скриптов.
- каждая строка должна представляет собой команду
- строкой считается набор символов, который заканчивается CR+LF (Windows) или LF(UNIX) или CR(Mac)
- если строка начинается с #, то вся строка (т.е. комментарий) игнорируется
- скрипт должен начитаться с #SHS
- при запуске шелла автоматически запускается скрипт .shell

2) История из 5 (можно изменить при компиляции) введённых команд.
- перемещение по истории - UP/DOWN

3) Команда alias, которая позволяет вводить синонимы для команд.
- до 256 (можно изменить при компиляции) синонимов
- пока работает только добавление и просмотр синонимов, а отработка пока не реализована.


Attachments:
shell-0.3.zip [26.98 KiB]
Downloaded 188 times
Top
   
PostPosted: Thu Aug 07, 2008 6:38 pm 
Offline

Joined: Tue Jun 24, 2008 11:12 pm
Posts: 64
По сравнению с версией 0.1 программа стала гораздо функциональней. Отличный проект! Желаю успехов в дальнейшем развитии.

ЗЫ. Кстати, команду "free" лучше переименовать в "mem" или "meminfo", хотя если будет отработка alias'ов, то это не так важно :)


Top
   
PostPosted: Mon Aug 11, 2008 5:14 pm 
Offline
Just Flooding

Joined: Sat Jan 06, 2007 2:30 pm
Posts: 269
to Albom
От нефиг делать нашёл баг: если передать в строку ввода что содерщащее %s, %u, %x и т.п. то потом при нажатии кнопок вверх или вниз shell передаёт консоли строку как есть, но так как кроме строки ничего не передавалось, то сначала выталкивается из стека адрес возврата из printf, затем из функции вызвавшей printf и т.д. Ес-сно консоль умирает (не, не умирает, но выдаёт что угодно кроме того, что нужно). Я о таком виде багов прочитал в одной статье Криса Касперски (ака Мыщъх), решил попробовать - есть такое дело. Исправление простое - вместо printf(&string) писать printf("%s",&string), где string - твоя строка. Да это медленнее и больше, зато надёжнее.


Top
   
PostPosted: Mon Aug 11, 2008 8:49 pm 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 756
Версия 0.4

1) Работает схема псевдонимов (до 256 команд)
- просмотр по команде alias (без параметров)
- добавление псевдонима команды с клавиатуры или в скрипте (в том числе и .shell): alias новая команда = старая команда
- команды регистрозависимые, поэтому поклонникам ДОС придётся внести в .shell строки такого вида
alias dir = ls
alias DIR = ls
alias Dir = ls
alias DIr = ls
и т.д.
- встроенные команды переназвать невозможно, например, бессмысленна команда:
alias ls=somecommand
- при отладке получал странную информацию, но так как у меня всё работает, то пока изменений вносить не планирую

2) Теперь шелл можно запускать с параметром (из самого себя, например).
- синтаксис:
shell команда
- пример:
shell /sys/somescript
- при этом .shell не запускается

3) Реализована команда more. ( MEMENTO MORI! - Моментально... в море! :) )
- просмотр текстовых и бинарных файлов (вроде бы задача простая, но пришлось повозиться с управляющими символами)
- очень не рекомендуется просматривать большие файлы


to Nable
спасибо. я в одном месте уже сам исправил, ну а в такой важной части и не заметил! в следующей версии исправлю.


Attachments:
shell-0.4.zip [29.12 KiB]
Downloaded 219 times
Top
   
PostPosted: Tue Aug 12, 2008 1:01 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 7:57 pm
Posts: 835
Круто, молодец! :)

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 195 posts ]  Go to page Previous 1 2 3 4 513 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited