Subversion Repositories Kolibri OS

Rev

Rev 7024 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. Shell 0.8.2 // 13.06.2021 // rgimad
  2. * use libj.obj instead of built-in "libc"
  3. * big refactoring:
  4.   - fix indentation
  5.   - string constants moved to locale/.../globals.h files
  6. * add new command - kfetch
  7.   it is like neofetch for KolibriOS
  8.   prints logo and main system information.
  9. * other fixes
  10.  
  11. Shell 0.8.1 // 14.04.2020 - 01.04.2021 // rgimad, turbocat, Kenshin
  12.   rgimad:
  13. * fixed bug with ctrl+v
  14. * added navigation in current string by Home, End
  15. * directory highlighting in ls command output
  16. * Now for incorrect scripts (which doesnt start with #SHS) shell says
  17.   that they are incorrect, not "File not found".
  18.   Also, translated comments from russian to english in two files.
  19. * added mv command
  20. * added ren command
  21. * now ls works also with relative pathes
  22. * fixed bug in strrchr
  23. * fixed bug with cd ../
  24. * fixed cd . and cd ./ behavior
  25. * added output redirection to file (> >>) for echo command
  26.   e.g. echo "<html>">123.txt ; echo a b c >> y.txt
  27.  
  28.   turbocat:
  29. * Added new API: SC_GET_PID
  30. * Fixed data type pid - unsigned int.
  31. * Fixed cmd_ps output pid;
  32. * Added new SC_PING api
  33. * Renamed from SC_GET_PID to SC_PID
  34. * added pkill command
  35.  
  36.   Kenshin:
  37. * shell.inc now suports sc_ping & sc_pid functions
  38. * update docs
  39.  
  40. Shell 0.7.7 // 06.02.2017 // Leency
  41. * help теперь выводит список комманд в три колонки
  42. * ps теперь выводит размер ОЗУ, используемый процессом
  43. * ls теперь выводит все файлы не в одну, а в несколько колонок
  44.   размер колонок расчитывается исходя из самого длинного имени файла в папке
  45.   старый вывод списком по прежнему доступен через ключ '-1'
  46.  
  47. Shell 0.7.6 // 06.02.2017 // Siemargl
  48. * Файловые операции используют 64-bit размеры файлов.
  49.   cp <file> <dest> теперь понимает, если <dest> - каталог
  50.   cp использует буфер 1Мб, или не более половины свободной памяти
  51.  
  52. Shell 0.7.5 // 06.01.2017 // Siemargl
  53. * Мелкие багфиксы, изменена логика обработки стрелок вверх/вниз, чтобы как у всех
  54.   Добавлена команда waitfor и вариант ps с параметром
  55.  
  56. Shell 0.7.4 // 23.01.2014 // Albom
  57. * Работа с буфером обмена (копирование Ctrl+C и вставка Ctrl+V строки целиком)
  58.  
  59.  
  60. Shell 0.7.3 // 28.11.2013 // Albom
  61. * Исправлена ошибка с символом % в истории команд
  62.  
  63.  
  64. Shell 0.7.2 // 26.10.2013 // Albom
  65. * Файл .shell перенесен в /sys/settings/
  66. * Исправлена команда "cd .."
  67.  
  68.  
  69. Shell 0.7.1 // 19.10.2013 // Albom
  70. * Исправлена ошибка, связанная с зависанием при попытке чтения пустой истории команд (по клавишам Up и Down)
  71.  
  72.  
  73. Shell 0.7.0 // 13.10.2013 // Albom
  74. * Переработан модуль ввода команды (добавлена обработка клавиш "влево", "вправо", Del)
  75. * Мелкие исправления
  76.  
  77.  
  78. Shell 0.6.4 // 09.10.2013 // Leency
  79. * Поддержка относительных путей в скриптах
  80.  
  81.  
  82. Shell 0.6.3 // 20.09.2013 // Albom
  83. * msvc-style атрибуты для отключения выравнивания в структурах (спасибо CleverMouse и Kirakishou!)
  84.  
  85.  
  86. Shell 0.6.2 // 24.02.2013 // Albom
  87. * Добавлена обработка управляющих символов (\n, \t, \", \', \\, \?)
  88. * Мелкие исправления
  89.  
  90.  
  91. Shell 0.6.1 // 17.02.2013 // Albom
  92. * Простая обработка ошибок внутренних команд
  93. * Команда killall трансформирована в параметр all команды kill
  94. * Изменена кодировка файла History.txt с 1251 на 866
  95.  
  96.  
  97. Shell 0.6 // 16.02.2013 // Albom
  98. + Добавлена возможность запускать программы, имена которых или путь к которым содержат пробелы. Имя программы (возможно с путём к ней) для этого необходимо заключать в кавычки. Т.е. наконец-то можно запустить программу из /rd/1/File managers, не переходя в неё
  99. + Добавлена функция разделения строковой переменной на int argc, char* argv[], что означает возможность улучшения команд (обработка нескольких параметров)
  100. + Добавлена команда cp (копирование файла). Принимает обязательно два параметра - имя файла-источника и имя файла-результата. Имена могут быть краткими (в текущем каталоге), так и с полным путём (должны начинаться с /). Ограничение на размер файла - 4 Гбайта
  101. * Исправлена кодировка в сообщении об ошибке в консольном приложении
  102. * Клавиши истории (вверх и вниз) поменяны между собой
  103. * Количество команд в истории увеличено с пяти до десяти
  104. * Уменьшено количество предупреждений при компиляции
  105. * Команда ccpuid преобразована в параметр cpu команды ver
  106. * Исправления в пакетных файлах сборки
  107. + Добавлен пример консольного приложения на ассемблере и пакетный файл для его сборки
  108.  
  109.  
  110. Shell 0.5.4 // 04.06.2012 // Albom
  111. =======================================
  112. * Исправлен интерфейс исполняемых консольных приложений. Теперь они должны создавать буфер с именем pid-SHELL, где pid - идентификатор процесса без заглавных нулей
  113. * Реинкарнированы команды ccpuid, free, killall
  114. + Добавлена команда history
  115.  
  116.  
  117. Shell 0.5.3 // 19.04.2012 // Albom
  118. =======================================
  119. * Исправление в команде pwd
  120.  
  121.  
  122. Shell 0.5.2 // 16.04.2012 // Albom
  123. =======================================
  124. * Исправление в команде ls
  125. * Незначительные другие исправления
  126.  
  127.  
  128. Shell 0.5.1 // 15.04.2012 // Albom
  129. =======================================
  130. * Некоторые незначительные исправления
  131.  
  132.  
  133. Shell 0.5 // 23.03.2012 // Albom
  134. =======================================
  135. * Добавлена поддержка консольных приложений, которые общаются с шеллом через именованную область
  136.  
  137.  
  138. Shell 0.4.6 // 30.01.2011 // Albom
  139. =======================================
  140. * Временно удалены команды killall и ccpuid (чтобы вернуть, необходимо раскомментировать 2 строчки)
  141. * Исправления в текстовых строках
  142.  
  143.  
  144. Shell 0.4.52 // 25.10.2010 // Pterox
  145. =======================================
  146. * Добавлена команда "killall" - убивает все процессы кроме OS/IDLE.
  147. * Фиксы
  148.  
  149.  
  150. Shell 0.4.51 // 21.10.2010 // Pterox
  151. =======================================
  152. * Команда "turnoff" переименована в "shutdown", "kerver" удалена - теперь её заменяет "ver kernel"; фиксы.
  153.  
  154.  
  155. Shell 0.4.5 // 19.10.2010 // Pterox
  156. =======================================
  157. Программа теперь многоязыковая (английский, и русский язык). Программа полностью русифицированна.
  158. * Команда "free" переименована в "memory" - для точности.
  159. * Добавлены команды turnoff (выключить компьютер), kerver (версия ядра KolibriOS), uptime; reboot теперь может перезагружать ядро ("reboot kernel")
  160.  
  161.  
  162. Shell 0.4.4 // 20.08.2010 // Albom
  163. =======================================
  164. 1) шелл корректно завершается при закрытии окна
  165. 2) исправлено ещё 2 ошибки
  166. 3) добавлены 2 команды:
  167. * sleep - ждать. параметр - время в сотых частях секунды. только целое число.
  168. * ccpuid - вывод в консоль информации (пока скудно) о процессоре. пользы мало, но давно хотел с командой cpuid разобраться (в следующем семестре буду студентам курс читать, включил разбор команды в программу).
  169.  
  170. есть много идей. некоторые легко реализуются, некоторые сложнее. если интересно:
  171. 1) добавить переменную (одну!), в которую будет результат в текстовой форме (не то что возвращает функция) записываться. с ней можно будет работать из командной строки
  172. 2) внедрить простую стековую машину для вычислений с вещественными числами
  173.  
  174.  
  175. Shell 0.4.3 // 20.08.2010 // Albom
  176. =======================================
  177. * Смесь версий 0.4.1 и 0.4.2. Теперь в архиве все исходные файлы, необходимые для компиляции (раньше использовались объектники с моими обёртками, исходники я с шеллом не выкладывал)
  178.  
  179.  
  180. Shell 0.4.2 // 28.08.2009 // diamond
  181. =======================================
  182. * Добавил корректное завершение работы при закрытии окна консоли, работает только начиная с последней на данный момент версией библиотеки (лежит на svn, включена в ночную сборку). Перекомпилировал в VS2008 с LTCG, ещё пошаманил с оптимизацией по размеру
  183.  
  184.  
  185. Shell 0.4.1 // 16.03.2009 // Albom
  186. =======================================
  187. * версия с исправленными ошибками.
  188. * работает команда alias, добавлена команда clear.
  189.  
  190.  
  191. Shell 0.4 // 12.08.2008 // Albom
  192. =======================================
  193. 1) Работает схема псевдонимов (до 256 команд)
  194. - просмотр по команде alias (без параметров)
  195. - добавление псевдонима команды с клавиатуры или в скрипте (в том числе и .shell): alias новая команда = старая команда
  196. - команды регистрозависимые, поэтому поклонникам ДОС придётся внести в .shell строки такого вида
  197. alias dir = ls
  198. alias DIR = ls
  199. alias Dir = ls
  200. alias DIr = ls
  201. и т.д.
  202. - встроенные команды переназвать невозможно, например, бессмысленна команда:
  203. alias ls=somecommand
  204. - при отладке получал странную информацию, но так как у меня всё работает, то пока изменений вносить не планирую
  205.  
  206. 2) Теперь шелл можно запускать с параметром (из самого себя, например)
  207. - синтаксис:
  208. shell команда
  209. - пример:
  210. shell /sys/somescript
  211. - при этом .shell не запускается
  212.  
  213. 3) Реализована команда more
  214. - просмотр текстовых и бинарных файлов (вроде бы задача простая, но пришлось повозиться с управляющими символами)
  215. - очень не рекомендуется просматривать большие файлы
  216.  
  217.  
  218. Shell 0.3 // 07.08.2008 // Albom
  219. =======================================
  220. 1) Возможность запуска скриптов
  221. * каждая строка должна представляет собой команду
  222. * строкой считается набор символов, который заканчивается CR+LF (Windows) или LF(UNIX) или CR(Mac)
  223. * если строка начинается с #, то вся строка (т.е. комментарий) игнорируется
  224. * скрипт должен начитаться с #SHS
  225. * при запуске шелла автоматически запускается скрипт .shell
  226.  
  227. 2) История из 5 (можно изменить при компиляции) введённых команд
  228. * перемещение по истории - UP/DOWN
  229.  
  230. 3) Команда alias, которая позволяет вводить синонимы для команд
  231. * до 256 (можно изменить при компиляции) синонимов
  232. * пока работает только добавление и просмотр синонимов, а отработка пока не реализована
  233.  
  234.  
  235. Shell 0.2 // 04.08.2008 // Albom
  236. =======================================
  237. * добавил новые функции
  238. * написал собственную процедуру ввода команды
  239.  
  240.  
  241. Shell 0.11 // 01.08.2008 // Albom
  242. =======================================
  243. * Добавил команды free и reboot, внёс некоторые изменения, исправил найденные ошибки
  244.  
  245.  
  246. Shell 0.1 // 29.07.2008 // Albom
  247. =======================================
  248. * Реализованы (не полностью) команды: about, cd, date, echo, exit, help, kill, ls, ps, pwd, ver
  249. * При запуске программы (если не указан полный путь) она ищется в каталоге /rd/1 и текущем каталоге
  250.  
  251.  
  252. Shell 0.02 // 27.07.2008 // Albom
  253. =======================================
  254. * Реализовал команды:
  255.   exit - выход
  256.   ls (с параметром и без) - вывод списка директории
  257.   pwd - текущий каталог
  258.   ps - список процессов и их PID
  259.   kill - завершить процесс по PID
  260.   help (с параметром и без) - помощь
  261.  
  262.  
  263. Shell 0.01 // 27.07.2008 // Albom
  264. =======================================
  265. * Решил написать функциональный шелл на Си с использованием console.obj
  266. * Пока сделал функцию отделения команды и параметров, а также реализовал команды help (пока без параметров), ver и exit
  267.  
  268.