Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 6824 → Rev 6825

/programs/system/shell/Docs_rus.txt
39,13 → 39,16
echo Âûâîäèò <äàííûå> íà ýêðàí
exit çàâåðøåíèå ðàáîòû Shell
free ïîêàçûâàåò îáú¸ì îïåðàòèâíîé ïàìÿòè: âñåé, ñâîáîäíîé è èñïîëüçóåìîé
help ïîêàçàòü ïå÷åíü êîìàíä shell. Ñ ïàðàìåòðîì <êîìàíäà> ñïðàâêà ïî êîìàíäå
help ïîêàçàòü ïåðå÷åíü êîìàíä shell. Ñ ïàðàìåòðîì <êîìàíäà> ñïðàâêà ïî êîìàíäå
history cïèñîê ïîñëåäíèõ èñïîëüçîâàííûõ êîìàíä
kill óáèâàåò ïðîöåññ ïî <PID>. kill all óáèâàåò âñå ïîëüçîâàòåëüñêèå ïðîöåññû PID >=2
kill óáèâàåò ïðîöåññ ïî <PID>. kill all óáèâàåò âñå ïðîöåññû, ñëîòû >=2
ls âûâîäèò ñïèñîê ôàéëîâ â òåêóùåì êàòàëîãå èëè óêàçàííîì <êàòàëîãå>
mkdir cîçäàåò <êàòàëîã>. Ïîääåðæèâàþòñÿ àáñîëþíûå è îòíîñèòåëüíûå ïóòè
more âûâîäèò ñîäåðæèìîå <ôàéëà> íà ýêðàí
ps ïîêàçûâàåò ñïèñîê ïðîöåññîâ è èõ PID
ps ïîêàçûâàåò ñïèñîê ïðîöåññîâ è èõ PID,
åñëè çàäàòü <èìÿ>, ïîêàæåò %CPU, èñïîëüçóåìóþ ïàìÿòü è çàïîìíèò
âíóòðåííþþ ïåðåìåííóþ LASTPID (ïîëåçíî äëÿ êîìàíäû waitfor)
<èìÿ> - ýòî ïåðâûå 10 áóêâ èìåíè èñïîëíÿåìîãî ôàéëà áåç ðàñøèðåíèÿ
pwd ïîêàçûâàåò èìÿ òåêóùåãî êàòàëîãà
reboot ïåðåçàãðóæàåò êîìïüþòåð èëè ÿäðî KolibriOS. reboot kernel ïåðåçàïóñòèòü ÿäðî Kolibri
rm óäàëÿåò <ôàéë>
53,5 → 56,22
shutdown âûêëþ÷àåò êîìïüþòåð
sleep ïðèîñòàíàâëèâàåò ðàáîòó Shell'à íà çàäàííîå <âðåìÿ â ñîòûõ äîëÿõ ñåêóíäû>
touch ñîçäà¸ò ïóñòîé <ôàéë> èëè èçìåíÿåò äàòó/âðåìÿ ñîçäàíèÿ ôàéëà. Íå ðàáîòàåò
uptime ïîêàçûâàåò âðåìÿ ðàáîòó ñèñòåìû ñ ìîìåíòà çàãðóçêè
ver ïîêàçûâàåò âåðñèþ Shell, ver kernel - âåðñèþ è íîìåð ðåâèçèè ÿäðà OS, ver cpu - èíôîðìàöèþ î ïðîöåññîðå
uptime ïîêàçûâàåò âðåìÿ ðàáîòû ñèñòåìû ñ ìîìåíòà çàãðóçêè
ver ïîêàçûâàåò âåðñèþ Shell, ver kernel - âåðñèþ è íîìåð ðåâèçèè ÿäðà OS,
ver cpu - èíôîðìàöèþ î ïðîöåññîðå
waitfor åñëè ïåðåä ýòèì áûëà çàïóùåíà ïðîãðàììà, ïðèîñòàíàâëèâàåò
âûïîëíåíèå êîìàíäíîãî ôàéëà äî åå çàâåðøåíèÿ ïî LASTPID
èëè äî çàâåðøåíèÿ ÿâíî óêàçàííîãî ïàðàìåòðà <PID>
 
Ñêðèïòû è çàïóñê íà èñïîëíåíèå
=======================================
Åñëè èìÿ èñïîëíèìîãî ôàéëà íà÷èíàåòñÿ ñ / òî ñ÷èòàåòñÿ ÷òî ïóòü ÿâëÿåòñÿ àáñîëþòíûì.
 ïðîòèâíîì ñëó÷àå, ïîèñê ñíà÷àëà ïðîâîäèòñÿ â òåêóùåì êàòàëîãå, à çàòåì â /rd/1.
 
Äàëåå, åñëè ôàéë íàéäåí, ïðîâåðÿþòñÿ ïåðâûå 4 áàéòà íà ñèãíàòóðó #SHS.
Ñ ýòîé ñèãíàòóðû íà÷èíàåòñÿ êîìàíäíûé (ïàêåòíûé) ôàéë.
 êîìàíäíîì ôàéëå äîïóñòèìû âñå êîìàíäû ïðèâåäåííûå âûøå, à êîììåíòàðèè
íà÷èíàþòñÿ ñ ñèìâîëà # â ïåðâîé ïîçèöèè ñòðîêè.
 
Åñëè íà âûïîëíåíèå áûë çàäàí èñïîëíÿåìûé ôàéë, çàïîìíèò LASTPID
 
/programs/system/shell/History.txt
1,5 → 1,6
Shell 0.7.5 // 01.01.2017 // Siemargl
Shell 0.7.5 // 06.01.2017 // Siemargl
* Œ¥«ª¨¥ ¡ £ä¨ªáë, ¨§¬¥­¥­  «®£¨ª  ®¡à ¡®âª¨ áâ५®ª ¢¢¥àå/¢­¨§, çâ®¡ë ª ª ã ¢á¥å
„®¡ ¢«¥­  ª®¬ ­¤  waitfor ¨ ¢ à¨ ­â ps á ¯ à ¬¥â஬
 
Shell 0.7.4 // 23.01.2014 // Albom
*  ¡®â  á ¡ãä¥à®¬ ®¡¬¥­  (ª®¯¨à®¢ ­¨¥ Ctrl+C ¨ ¢áâ ¢ª  Ctrl+V áâப¨ 楫¨ª®¬)
/programs/system/shell/all.h
42,6 → 42,7
#include "cmd/cmd_uptime.c"
#include "cmd/cmd_history.c"
#include "cmd/cmd_cp.c"
#include "cmd/cmd_waitfor.c"
 
#include "modules/module_command.c"
#include "modules/module_program_console.c"
/programs/system/shell/bin/eng/.shell
1,5 → 1,6
#SHS
 
about
echo
ver kernel
echo
echo Type 'help' for help
echo
/programs/system/shell/cmd/cmd_ps.c
2,7 → 2,7
int cmd_ps(char param[])
{
 
int i, n;
int i, n, sel;
char *buf1k;
unsigned PID;
short STATE;
11,6 → 11,8
if (NULL == buf1k)
return FALSE;
 
sel = param && strlen(param) > 0;
 
for (i = 1;;i++)
{
n = kol_process_info(i, buf1k);
17,7 → 19,18
PID = *(buf1k+30);
STATE = *(buf1k+50);
if ( 9 != STATE)
{
if (!sel || 0 == strnicmp(param, buf1k+10, 10))
{
printf (" %7d %s\n\r", PID, buf1k+10);
if (sel)
{
LAST_PID = PID;
int cpu_tck = kol_system_cpufreq() / 100;
printf (" CPU %d%% RAM %d\n\r", *(int*)buf1k / cpu_tck , *(int*)(buf1k+26)+1);
}
}
}
if (i == n)
break;
}
/programs/system/shell/cmd/cmd_waitfor.c
0,0 → 1,52
 
int cmd_waitfor(char param[])
// waits for LASTPID or pid in param
{
 
int i, n, sel, sel_pid;
char *buf1k;
unsigned PID;
short STATE;
 
sel = param && strlen(param) > 0;
sel_pid = LAST_PID;
if (sel)
{
sel_pid = _atoi(param);
}
if (0 == sel_pid)
return FALSE;
 
#if LANG_ENG
printf(" Awaing finish PID %d\n\r", sel_pid);
#elif LANG_RUS
printf(" Ž¦¨¤ ¥¬ § ¢¥à襭¨ï PID %d\n\r", sel_pid);
#endif
 
buf1k = malloc(1024);
if (NULL == buf1k)
return FALSE;
 
while(1)
{
for (i = 1;;i++)
{
n = kol_process_info(i, buf1k);
PID = *(buf1k+30);
STATE = *(buf1k+50);
if (PID == sel_pid)
if(9 == STATE)
goto exit_normal;
else break;
if (i == n)
goto exit_normal;
}
kol_sleep(10); // 100ms
}
 
exit_normal:
free(buf1k);
return TRUE;
 
}
 
/programs/system/shell/globals.h
20,6 → 20,7
char CMD_HISTORY[CMD_HISTORY_NUM][256];
char CMD_NUM = 0;
char CMD_HISTORY_NUM_REAL = 0;
unsigned LAST_PID = 0;
 
/// ===========================================================
 
66,8 → 67,8
int cmd_killall(char process_name[]);
int cmd_history(char arg[]);
int cmd_cp(char param[]);
int cmd_waitfor(char param[]);
 
 
/// ===========================================================
 
#if LANG_ENG
/programs/system/shell/locale/eng/globals.h
16,7 → 16,7
{"ls", " Lists the files in a directory. Usage:\n\r ls ;lists the files in current directory\n\r ls <directory> ;lists the files at specified folder\n\r", &cmd_ls},
{"mkdir", " Makes directory. Usage:\n\r mkdir <folder name> ;creates the folder in working directory\n\r mkdir <path><folder name> ;create folder by specified path\n\r", &cmd_mkdir},
{"more", " Displays a file data to the screen. Usage:\n\r more <file name>\n\r", &cmd_more},
{"ps", " Lists the current processes running\n\r", &cmd_ps},
{"ps", " Lists the current processes running\n\r or shows more info on <procname> and save LASTPID\n\r", &cmd_ps},
{"pwd", " Displays the name of the working directory\n\r", &cmd_pwd},
{"reboot", " Reboots the computer or KolibriOS kernel. Usage:\n\r reboot ;reboot a PC\n\r reboot kernel ;reboot the KolibriOS kernel\n\r", &cmd_reboot},
{"rm", " Removes a file. Usage:\n\r rm file name>\n\r", &cmd_rm},
26,5 → 26,6
{"touch", " Creates an empty file or updates the time/date stamp on a file. Usage:\n\r touch <file name>\n\r", &cmd_touch},
{"uptime", " Displays the uptime\n\r", &cmd_uptime},
{"ver", " Displays version. Usage:\n\r ver ;Shell version\n\r ver kernel ;version of KolibriOS kernel\n\r ver cpu ;information about CPU\n\r", &cmd_ver},
{"waitfor", " Stops console waiting while process finish. Usage:\n\r waitfor ;waiting previous started executable LASTPID\n\r waitfor <PID>;awaiting PID finish\n\r", &cmd_waitfor},
};
 
/programs/system/shell/locale/rus/globals.h
16,7 → 16,7
{"ls", " ‚뢮¤¨â ᯨ᮪ ä ©«®¢. ˆá¯®«ì§®¢ ­¨¥:\n\r ls ;ᯨ᮪ ä ©«®¢ ¢ ⥪ã饬 ª â «®£¥\n\r ls <¤¨à¥ªâ®à¨ï> ;ᯨ᮪ ä ©«®¢ ¨§ § ¤ ­­®© ¤¨à¥ªâ®à¨¨\n\r", &cmd_ls},
{"mkdir", " ‘®§¤ ¥â ª â «®£. ˆá¯®«ì§®¢ ­¨¥:\n\r mkdir <¨¬ï ¯ ¯ª¨> ;ᮧ¤ âì ¯ ¯ªã ¢ ⥪ã饬 ª â «®£¥\n\r mkdir <¯ãâì><¨¬ï ¯ ¯ª¨> ;ᮧ¤ âì ¯ ¯ªã ¯® 㪠§ ­­®¬ã ¯ãâ¨\n\r", &cmd_mkdir},
{"more", " ‚뢮¤¨â ᮤ¥à¦¨¬®¥ ä ©«  ­  íªà ­. ˆá¯®«ì§®¢ ­¨¥:\n\r more <¨¬ï ä ©« >\n\r", &cmd_more},
{"ps", " ‚뢮¤¨â ᯨ᮪ ¯à®æ¥áᮢ\n\r", &cmd_ps},
{"ps", " ‚뢮¤¨â ᯨ᮪ ¯à®æ¥áᮢ\n\r …᫨ 㪠§ ­® <¨¬ï¯à®æ¥áá >, ¯®ª §ë¢ ¥â ¡®«ìè¥ ¤ ­­ëå ¨ á®åà ­ï¥â LASTPID\n\r", &cmd_ps},
{"pwd", " ®ª §ë¢ ¥â ¨¬ï ⥪ã饩 ¤¨à¥ªâ®à¨¨\n\r", &cmd_pwd},
{"reboot", " ¥à¥§ £à㦠¥â ª®¬¯ìîâ¥à ¨«¨ ï¤à® KolibriOS. ˆá¯®«ì§®¢ ­¨¥:\n\r reboot ;¯¥à¥§ £à㧨âì Š\n\r reboot kernel ;¯¥à¥§ ¯ãáâ¨âì ï¤à® Kolibri\n\r", &cmd_reboot},
{"rm", " “¤ «ï¥â ä ©«. ˆá¯®«ì§®¢ ­¨¥:\n\r rm <¨¬ï ä ©« >\n\r", &cmd_rm},
26,5 → 26,6
{"touch", " ‘®§¤ ñâ ¯ãá⮩ ä ©« ¨«¨ ¨§¬¥­ï¥â ¤ âã/¢à¥¬ï ᮧ¤ ­¨ï ä ©« . ˆá¯®«ì§®¢ ­¨¥:\n\r touch <¨¬ï ä ©« >\n\r", &cmd_touch},
{"uptime", " ®ª §ë¢ ¥â uptime\n\r", &cmd_uptime},
{"ver", " ®ª §ë¢ ¥â ¢¥àá¨î. ˆá¯®«ì§®¢ ­¨¥:\n\r ver ;¢¥àá¨ï Shell\n\r ver kernel ;¢¥àá¨ï ¨ ­®¬¥à ॢ¨§¨¨ ï¤à  KolibriOS\n\r ver cpu ;¨­ä®à¬ æ¨ï ® ¯à®æ¥áá®à¥\n\r", &cmd_ver},
{"waitfor", " à¨®áâ ­ ¢«¨¢ ¥â ¢ë¯®«­¥­¨¥ ª®¬ ­¤. ˆá¯®«ì§®¢ ­¨¥:\n\r waitfor ;®¦¨¤ ¥¬ ¯à¥¤ë¤ã騩 § ¯ã饭­ë© ¯à®æ¥áá LASTPID\n\r waitfor <PID>;¦¤¥¬ § ¢¥à襭¨ï ¯à®æ¥áá  á 㪠§ ­­ë¬ PID\n\r", &cmd_waitfor},
};
 
/programs/system/shell/modules/module_command.c
8,6 → 8,8
 
if ('\0' == CMD[0]) return;
 
CMD_NUM = -1;
 
for (i = 0; i < CMD_HISTORY_NUM_REAL; i++)
if ( 0 == strcmp( CMD_HISTORY[i], CMD ) )
return;
20,8 → 22,6
if (CMD_HISTORY_NUM_REAL < CMD_HISTORY_NUM-1)
CMD_HISTORY_NUM_REAL++;
 
CMD_NUM = -1;
 
}
 
 
/programs/system/shell/modules/module_executable.c
48,6 → 48,7
if ( !program_console(result) )
{
LAST_PID = result;
#if LANG_ENG
printf (" '%s' started. PID = %d\n\r", cmd, result);
#elif LANG_RUS
/programs/system/shell/system/string.c
70,7 → 70,25
 
}
 
int strnicmp(const char* string1, const char* string2, unsigned count)
{
int pc = 0;
while (1)
{
if (toupper(*string1)<toupper(*string2))
return -1;
if (toupper(*string1)>toupper(*string2))
return 1;
 
if (*string1=='\0' || pc == count)
return 0;
 
string1++;
string2++;
pc++;
}
}
 
void strcpy(char strDest[], const char strSource[])
{
unsigned i;
/programs/system/shell/system/string.h
18,3 → 18,4
void reverse(char *s);
void itoa(int i, char *s);
int _atoi( char *s );
int strnicmp(const char* string1, const char* string2, unsigned count);