forked from KolibriOS/kolibrios
Rustem Gimadutdinov (rgimad)
68cf3e4293
- big refactoring, now uses libc.obj - added kfetch command git-svn-id: svn://kolibrios.org@8827 a494cfbc-eb01-0410-851d-a64ba20cac60
268 lines
15 KiB
Plaintext
268 lines
15 KiB
Plaintext
Shell 0.8.2 // 13.06.2021 // rgimad
|
||
* use libj.obj instead of built-in "libc"
|
||
* big refactoring:
|
||
- fix indentation
|
||
- string constants moved to locale/.../globals.h files
|
||
* add new command - kfetch
|
||
it is like neofetch for KolibriOS
|
||
prints logo and main system information.
|
||
* other fixes
|
||
|
||
Shell 0.8.1 // 14.04.2020 - 01.04.2021 // rgimad, turbocat, Kenshin
|
||
rgimad:
|
||
* fixed bug with ctrl+v
|
||
* added navigation in current string by Home, End
|
||
* directory highlighting in ls command output
|
||
* Now for incorrect scripts (which doesnt start with #SHS) shell says
|
||
that they are incorrect, not "File not found".
|
||
Also, translated comments from russian to english in two files.
|
||
* added mv command
|
||
* added ren command
|
||
* now ls works also with relative pathes
|
||
* fixed bug in strrchr
|
||
* fixed bug with cd ../
|
||
* fixed cd . and cd ./ behavior
|
||
* added output redirection to file (> >>) for echo command
|
||
e.g. echo "<html>">123.txt ; echo a b c >> y.txt
|
||
|
||
turbocat:
|
||
* Added new API: SC_GET_PID
|
||
* Fixed data type pid - unsigned int.
|
||
* Fixed cmd_ps output pid;
|
||
* Added new SC_PING api
|
||
* Renamed from SC_GET_PID to SC_PID
|
||
* added pkill command
|
||
|
||
Kenshin:
|
||
* shell.inc now suports sc_ping & sc_pid functions
|
||
* update docs
|
||
|
||
Shell 0.7.7 // 06.02.2017 // Leency
|
||
* help теперь выводит список комманд в три колонки
|
||
* ps теперь выводит размер ОЗУ, используемый процессом
|
||
* ls теперь выводит все файлы не в одну, а в несколько колонок
|
||
размер колонок расчитывается исходя из самого длинного имени файла в папке
|
||
старый вывод списком по прежнему доступен через ключ '-1'
|
||
|
||
Shell 0.7.6 // 06.02.2017 // Siemargl
|
||
* Файловые операции используют 64-bit размеры файлов.
|
||
cp <file> <dest> теперь понимает, если <dest> - каталог
|
||
cp использует буфер 1Мб, или не более половины свободной памяти
|
||
|
||
Shell 0.7.5 // 06.01.2017 // Siemargl
|
||
* Мелкие багфиксы, изменена логика обработки стрелок вверх/вниз, чтобы как у всех
|
||
Добавлена команда waitfor и вариант ps с параметром
|
||
|
||
Shell 0.7.4 // 23.01.2014 // Albom
|
||
* Работа с буфером обмена (копирование Ctrl+C и вставка Ctrl+V строки целиком)
|
||
|
||
|
||
Shell 0.7.3 // 28.11.2013 // Albom
|
||
* Исправлена ошибка с символом % в истории команд
|
||
|
||
|
||
Shell 0.7.2 // 26.10.2013 // Albom
|
||
* Файл .shell перенесен в /sys/settings/
|
||
* Исправлена команда "cd .."
|
||
|
||
|
||
Shell 0.7.1 // 19.10.2013 // Albom
|
||
* Исправлена ошибка, связанная с зависанием при попытке чтения пустой истории команд (по клавишам Up и Down)
|
||
|
||
|
||
Shell 0.7.0 // 13.10.2013 // Albom
|
||
* Переработан модуль ввода команды (добавлена обработка клавиш "влево", "вправо", Del)
|
||
* Мелкие исправления
|
||
|
||
|
||
Shell 0.6.4 // 09.10.2013 // Leency
|
||
* Поддержка относительных путей в скриптах
|
||
|
||
|
||
Shell 0.6.3 // 20.09.2013 // Albom
|
||
* msvc-style атрибуты для отключения выравнивания в структурах (спасибо CleverMouse и Kirakishou!)
|
||
|
||
|
||
Shell 0.6.2 // 24.02.2013 // Albom
|
||
* Добавлена обработка управляющих символов (\n, \t, \", \', \\, \?)
|
||
* Мелкие исправления
|
||
|
||
|
||
Shell 0.6.1 // 17.02.2013 // Albom
|
||
* Простая обработка ошибок внутренних команд
|
||
* Команда killall трансформирована в параметр all команды kill
|
||
* Изменена кодировка файла History.txt с 1251 на 866
|
||
|
||
|
||
Shell 0.6 // 16.02.2013 // Albom
|
||
+ Добавлена возможность запускать программы, имена которых или путь к которым содержат пробелы. Имя программы (возможно с путём к ней) для этого необходимо заключать в кавычки. Т.е. наконец-то можно запустить программу из /rd/1/File managers, не переходя в неё
|
||
+ Добавлена функция разделения строковой переменной на int argc, char* argv[], что означает возможность улучшения команд (обработка нескольких параметров)
|
||
+ Добавлена команда cp (копирование файла). Принимает обязательно два параметра - имя файла-источника и имя файла-результата. Имена могут быть краткими (в текущем каталоге), так и с полным путём (должны начинаться с /). Ограничение на размер файла - 4 Гбайта
|
||
* Исправлена кодировка в сообщении об ошибке в консольном приложении
|
||
* Клавиши истории (вверх и вниз) поменяны между собой
|
||
* Количество команд в истории увеличено с пяти до десяти
|
||
* Уменьшено количество предупреждений при компиляции
|
||
* Команда ccpuid преобразована в параметр cpu команды ver
|
||
* Исправления в пакетных файлах сборки
|
||
+ Добавлен пример консольного приложения на ассемблере и пакетный файл для его сборки
|
||
|
||
|
||
Shell 0.5.4 // 04.06.2012 // Albom
|
||
=======================================
|
||
* Исправлен интерфейс исполняемых консольных приложений. Теперь они должны создавать буфер с именем pid-SHELL, где pid - идентификатор процесса без заглавных нулей
|
||
* Реинкарнированы команды ccpuid, free, killall
|
||
+ Добавлена команда history
|
||
|
||
|
||
Shell 0.5.3 // 19.04.2012 // Albom
|
||
=======================================
|
||
* Исправление в команде pwd
|
||
|
||
|
||
Shell 0.5.2 // 16.04.2012 // Albom
|
||
=======================================
|
||
* Исправление в команде ls
|
||
* Незначительные другие исправления
|
||
|
||
|
||
Shell 0.5.1 // 15.04.2012 // Albom
|
||
=======================================
|
||
* Некоторые незначительные исправления
|
||
|
||
|
||
Shell 0.5 // 23.03.2012 // Albom
|
||
=======================================
|
||
* Добавлена поддержка консольных приложений, которые общаются с шеллом через именованную область
|
||
|
||
|
||
Shell 0.4.6 // 30.01.2011 // Albom
|
||
=======================================
|
||
* Временно удалены команды killall и ccpuid (чтобы вернуть, необходимо раскомментировать 2 строчки)
|
||
* Исправления в текстовых строках
|
||
|
||
|
||
Shell 0.4.52 // 25.10.2010 // Pterox
|
||
=======================================
|
||
* Добавлена команда "killall" - убивает все процессы кроме OS/IDLE.
|
||
* Фиксы
|
||
|
||
|
||
Shell 0.4.51 // 21.10.2010 // Pterox
|
||
=======================================
|
||
* Команда "turnoff" переименована в "shutdown", "kerver" удалена - теперь её заменяет "ver kernel"; фиксы.
|
||
|
||
|
||
Shell 0.4.5 // 19.10.2010 // Pterox
|
||
=======================================
|
||
Программа теперь многоязыковая (английский, и русский язык). Программа полностью русифицированна.
|
||
* Команда "free" переименована в "memory" - для точности.
|
||
* Добавлены команды turnoff (выключить компьютер), kerver (версия ядра KolibriOS), uptime; reboot теперь может перезагружать ядро ("reboot kernel")
|
||
|
||
|
||
Shell 0.4.4 // 20.08.2010 // Albom
|
||
=======================================
|
||
1) шелл корректно завершается при закрытии окна
|
||
2) исправлено ещё 2 ошибки
|
||
3) добавлены 2 команды:
|
||
* sleep - ждать. параметр - время в сотых частях секунды. только целое число.
|
||
* ccpuid - вывод в консоль информации (пока скудно) о процессоре. пользы мало, но давно хотел с командой cpuid разобраться (в следующем семестре буду студентам курс читать, включил разбор команды в программу).
|
||
|
||
есть много идей. некоторые легко реализуются, некоторые сложнее. если интересно:
|
||
1) добавить переменную (одну!), в которую будет результат в текстовой форме (не то что возвращает функция) записываться. с ней можно будет работать из командной строки
|
||
2) внедрить простую стековую машину для вычислений с вещественными числами
|
||
|
||
|
||
Shell 0.4.3 // 20.08.2010 // Albom
|
||
=======================================
|
||
* Смесь версий 0.4.1 и 0.4.2. Теперь в архиве все исходные файлы, необходимые для компиляции (раньше использовались объектники с моими обёртками, исходники я с шеллом не выкладывал)
|
||
|
||
|
||
Shell 0.4.2 // 28.08.2009 // diamond
|
||
=======================================
|
||
* Добавил корректное завершение работы при закрытии окна консоли, работает только начиная с последней на данный момент версией библиотеки (лежит на svn, включена в ночную сборку). Перекомпилировал в VS2008 с LTCG, ещё пошаманил с оптимизацией по размеру
|
||
|
||
|
||
Shell 0.4.1 // 16.03.2009 // Albom
|
||
=======================================
|
||
* версия с исправленными ошибками.
|
||
* работает команда alias, добавлена команда clear.
|
||
|
||
|
||
Shell 0.4 // 12.08.2008 // Albom
|
||
=======================================
|
||
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
|
||
- просмотр текстовых и бинарных файлов (вроде бы задача простая, но пришлось повозиться с управляющими символами)
|
||
- очень не рекомендуется просматривать большие файлы
|
||
|
||
|
||
Shell 0.3 // 07.08.2008 // Albom
|
||
=======================================
|
||
1) Возможность запуска скриптов
|
||
* каждая строка должна представляет собой команду
|
||
* строкой считается набор символов, который заканчивается CR+LF (Windows) или LF(UNIX) или CR(Mac)
|
||
* если строка начинается с #, то вся строка (т.е. комментарий) игнорируется
|
||
* скрипт должен начитаться с #SHS
|
||
* при запуске шелла автоматически запускается скрипт .shell
|
||
|
||
2) История из 5 (можно изменить при компиляции) введённых команд
|
||
* перемещение по истории - UP/DOWN
|
||
|
||
3) Команда alias, которая позволяет вводить синонимы для команд
|
||
* до 256 (можно изменить при компиляции) синонимов
|
||
* пока работает только добавление и просмотр синонимов, а отработка пока не реализована
|
||
|
||
|
||
Shell 0.2 // 04.08.2008 // Albom
|
||
=======================================
|
||
* добавил новые функции
|
||
* написал собственную процедуру ввода команды
|
||
|
||
|
||
Shell 0.11 // 01.08.2008 // Albom
|
||
=======================================
|
||
* Добавил команды free и reboot, внёс некоторые изменения, исправил найденные ошибки
|
||
|
||
|
||
Shell 0.1 // 29.07.2008 // Albom
|
||
=======================================
|
||
* Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver
|
||
* При запуске программы (если не указан полный путь) она ищется в каталоге /rd/1 и текущем каталоге
|
||
|
||
|
||
Shell 0.02 // 27.07.2008 // Albom
|
||
=======================================
|
||
* Реализовал команды:
|
||
exit - выход
|
||
ls (с параметром и без) - вывод списка директории
|
||
pwd - текущий каталог
|
||
ps - список процессов и их PID
|
||
kill - завершить процесс по PID
|
||
help (с параметром и без) - помощь
|
||
|
||
|
||
Shell 0.01 // 27.07.2008 // Albom
|
||
=======================================
|
||
* Решил написать функциональный шелл на Си с использованием console.obj
|
||
* Пока сделал функцию отделения команды и параметров, а также реализовал команды help (пока без параметров), ver и exit
|
||
|