|
Slush
Введение
Файлы и файловая система
TTY Сервер
Telnet Сервер
FTP Сервер
Команды
Введение
По умолчанию
Slush
грузится в 7й банк и запускается при каждой загрузке
TINI
Board.
Ну что сказать, ну
что сказать… «синтементальная болтовня (Lingvo
7.0)» или
Slush
малюсенькая такая системная оболочка с ярко выраженными чертами
операционной системы.
UNIXоиды
скажут что мол, копия
sh,
ну почти. Так что, это и оболочка и операционка в одном лице.
Slush
разрабатывался как многопользовательская, многопоточная система. Так же
аналогично *NIX поддерживается аутентификация на уроне пользователей и естественно в
наличии его величество
ROOT.
Что еще из общих слов, да, далее все сравнения и аналогии будут идти от
*NIX,
так видимо проще.
Файлы и файловая система
Структура системных
файлов:
После первого запуска
системы создаются несколько основных файлов хранимых в директории
/etc
-
.tininet,
.startup
и
passwd.
|
Имя файла |
Назначение |
Значение по
умолчанию |
|
/etc/.tininet |
Хранение имени
хоста и доменного имени |
Hostname= TINI Domain=неопределенно |
|
/etc/.startup |
Явствует из
названия, выполнение заранее определенных действий, запуск программ,
выполнение команд при старте
TINI |
При этом все .tini
программы запускаются и «крутятся» в фоновом режиме |
|
/etc/.passwd |
Содержится вся
информация о пользователях, в т.ч.,
User name,
User ID
и хэш пароля. Используется для идентификации пользователей
. |
User =Root – password=tini ;
User=guest – password=guest |
По умолчанию файл .startup
имеет вид:
#Autogen'd slush startup file
setenv TelnetServer enable
setenv SerialServer enable
#Add user calls to setenv here:
#Add other user additions here:
В принципе я думаю что все понятно. Для отключения ненужного Вам сервера
вполне достаточно его просто закомментировать (т.е. поставить тильду #) перед
В «болтуне» есть одна Виндузовая примочка, если во время загрузки Slush на
терминале удерживать клавишу «5» то отработки .startup файла не произойдет.
TTY
Сервер
TTY
сервер необходим для поддержания входа и работы в системы по
последовательному каналу.
К конфигурационным
опциям
TTY
сервера относятся две переменные:
|
Переменная |
Опции |
Описание |
|
setenv
HISTORY |
[размер] |
Размер буфера
истории команд |
|
setenv BROADCASTS |
[true/false] |
Разрешить либо
запретить рассылку сообщений ВСЕМ пользователям в системе. По
умолчанию – разрешить (true) |
Внимание: Для принятия изменений необходим перезапуск сервера
Что еще интересного
есть в
TTY ?
А) Можно для каждого
юзверя завести /Home
dir
и по заходу в систему он автоматом будет попадать туда. По умолчанию все
попадают в корневую директорию.
Б) Проистекает из А)
в /Home директории можно будет создать файлец
.login
и он будет отрабатываться для конкретного пользователя как системный
.startup
Я же говорил ну просто
Sh
^-)
FTP
Сервер
Как и везде
FTP
«слушает» стандартный 21й порт.
К конфигурационным
опциям
FTP
сервера относится несколько переменных
|
Переменная |
Опции |
Описание |
|
setenv FTP_ALLOW_ROOT |
[true/false] |
Автоматическое
присвоение имени пользователя =root
при соединении с
TINI.
По умолчанию =
true |
|
setenv FTP_TIMEOUT |
[ms] |
Период
ожидания при неактивности. 0= бесконечное ожидание. По умолчанию = 0 |
|
setenv FTP_ALLOW_ANON |
[true/false] |
Разрешить/запретить анонимное подключение. По умолчанию = разрешить. |
|
setenv FTP_LOG_ANON |
[файл] |
Ведение
журнала для анонимных подключений. |
|
setenv FTP_WELCOME |
[файл] |
Файл
приветственного сообщения после штатного входа. |
|
setenv FTP_CONNECT |
[файл] |
Я бы обозвал
как 00index
в больших
FTP
серверах |
Внимание: Для
принятия изменений необходим перезапуск сервера
Telnet
Сервер
Telnet сервер
«висит» на 23 порту.
К конфигурационным
опциям
Telnet сервера
относится несколько переменных:
|
Переменная |
Опции |
Описание |
|
setenv TELNET_ALLOW_ROOT |
[true/false] |
Автоматическое
присвоение имени пользователя =root
при соединении с
TINI.
По умолчанию =
true |
|
setenv HISTORY |
[размер] |
Размер буфера
истории команд |
|
setenv TELNET_TIMEOUT |
[ms] |
Период
ожидания при неактивности. 0= бесконечное ожидание. По умолчанию = 0 |
|
setenv TELNET_WELCOME |
[файл] |
Файл
приветственного сообщения после штатного входа. |
|
setenv BROADCASTS |
[true/false] |
Разрешить либо
запретить рассылку широковещательных сообщений всем пользователям
системы. По умолчанию = разрешить. |
Внимание: Для
принятия изменений необходим перезапуск сервера.
Команды
Slush
Поговорим о
командах. К сожалению пока не поддерживается функция динамической
линковки команд, но команда разработчиков выражает уверенность в том,
что это будет реализовано.
Первая команда это
конечно
‘help’.
Для получения помощи по конкретной команде наберите:
‘help’
<команда>
очень интересное
наблюдение. Хотя команды и есть, но в стандартном пакете
Slush
их нет J,
т.ч. надо просто взять исходники «болтуна» и подключить их.
Slush
позволяет перенаправлять стандартный вывод в/из файла. Для направления
стандартного вывода в файл как обычно используется указатель
‘>’,
для направления из файла на стандартный вывод используется
‘<’.
Так же возможно перенаправление
stdout и
stderr в файл,
для этого применяется конструкция ‘>&’.
Еще одна «фича», возможен запуск
java
программ в фоновом режиме, для этого используйте ‘&’.Вы
ожидаете что и команды можно крутить в фоне ? Нет, к сожалению пока нет
(естественно я имею ввиду команды
Slush).
При этом есть возможность перенаправления стандартного вывода в «космос»
и последовательный порт. Для вывода в пустоту, команда будет иметь вид:
Java
space.tini
>
null
Для вывода в порт:
Java
serial.tini >
S0
При этом, возможет
вывод только в порт
serial0 (S0=serial0),
остальные не поддерживаются . Так же для вывода в последовательный порт
необходимо запускать свою «прогу» с админовскими привилегиями. Еще
маленькое замечание, не стоит перенаправлять вывод в порт если Вы сами
(имею ввиду терминал) подключены к
TINI.
TTY
сервер уйдет в
down
и соединение будет однозначно потеряно.
К примеру можно
сделать так – надо брать данные из файла (file.in),
стандартные сообщения программы и сообщения об ошибка писать в другой
файл (file.out)
при этом Ваша программа(myprog.tini)
будет жить в фоне:
java myprog.tini < file.in >& file.out &
Встроенные команды
append
Дописывает исходный
файл в файл назначения
-append
SRC
DEST
arp
Отображение текущих
записей
ARP КЭШа
-
arp
cat
Отображение
содержимого файла
-cat
FILE
cd
Смена текущей
директории
-cd
DIR
chmod
Смена прав на файл
-chmod
[[u|o][+|-][r|w|x]] OR [##]
Пример использования
chmod:
Снятие прав
чтения/записи в файл
s.txt
-chmod
-r-w s.txt <OR> chmod 10 s.txt
Снятие прав на
выполнение и добавления прав на чтение файла
s.txt
-chmod
o+r-x s.txt <OR> chmod 75 s.txt
chown
Смена
владельца
файла
-chown
USER FILE
clear
Очистка экрана. В
данный момент (firmware
1.02e)
работает только с
Telnet
сессией. Обещаются добавить следующий релиз
Java
Kit
-clear
cp
Копирование исходного
файла в файл назначения. (Возможно использование псевдонима –copy)
-cp
SRC
DEST
date
Отображение и
установка системного времени:
-date
MMDDYYYYHHMMSS[am
|
pm]
[временная зона]
Пример использования
date. Устанавливаем 17-марта-1980. 18:00:24
-date
03171980060024pm
или
date
03171980180024
В первом варианте
время описывается в 12 часовом формате, где
am
–
c
00:00 до 12:59,
pm
с 13:00 до 23:59. Установка секунд не обязательна.
df
Отображение суммы
свободного ОЗУ. Стоит помнить о том, что ОЗУ одновременно используется
«кучей» и файловой системой. Около 64 байт в верхней части ОЗУ
«занимается» при обработке каждой команды
slush.
-df
echo
Команда
echo
выводит строку текста в стандартный поток
System.out
(т.е. текущую консоль) по умолчанию. Так же возможно переназначение
вывода в файл.
-echo
TEXT
gc
Запуск «сборщика
мусора».
-gc
genlog
Управление генерацией
системного «лога» (/etc/.log) при загрузке системы. Для использования команды
необходимо обладать администраторскими привилегиями.
-genlog
[опции]
[-e]
включить
ведение лога
[-d]
выключить
ведение лога
help
И так ясно. При
использовании команды без аргументов происходит вывод списка всех
доступных команд. Для получения помощи по конкретной команде необходимо
в качестве аргумента указать интересующею Вас команду.
-help
[команда]
history
Индикация текущего списка «истории» команд. Для перемещения
по спуску используйте: вверх -!!,
на строку -
!<строка>,
вниз -
!#
-history
hostname
Установка и индикация
имени «хоста» и домена. Для использования озаботьтесь получением
привилегий администратора.
-hostname
Пример использования
hostname:
Установка имени
«хоста»:
-hostname
AKTITIY
Установка имени
«хоста» и домена:
-hostname
AKTITIY.home.net
ipconfig
Команда используется
для установки и индикации сетевых установок
TINI
Board.
Без аргументов команда просто выводит текущую настройку.
В случае изменения
установок, запущенные серверы (Telnet и
FTP) будут остановлены, конфигурация системы будет
обновлена и серверы стартую автоматически. Так же следует помнить что
при использовании
ipconfig в
Telnet сессии,
эта сессия будет потеряна.
Для использования
команды необходимы привилегии админа:
-ipconfig
[опции]
поддерживаемые опции:
[-a
xx.xx.xx.xx]-
Установка
IP
адреса. Используется совместно с опцией
-m
[-n
domainname]
- Установка имени домена
[-m
xx.xx.xx.xx]-
Наложение маски подсети. Используется совместно с опцией
-a
[-g
xx.xx.xx.xx]-
Установка адреса шлюза
[-p
xx.xx.xx.xx]-
Установка адреса основного
DNS
сервера
[-s
xx.xx.xx.xx]-
Установка адреса вторичного
DNS
сервера
[-d]-
Использовать
DHCP
для получения
IP
адреса
[-r]-
Удерживать выделенный
DHCP
адрес
[-x]-
Показать данные по всем интерфейсам
[-h
xx.xx.xx.xx]-
Установка адреса «Почтового Сервера»
[-f]-
Не требовать дополнительного подтверждения ввода
Пример использования
ipconfig:
Установим
IP
адрес, маску и шлюз:
-ipconfig
-f -a 192.168.0.10 -m 255.255.255.0 -g 192.168.0.254
Запросим
DHCP
на предмет получения адреса:
-ipconfig
-f
-d
java
Эта команда позволяет
запустить Ваш файл
Java
класса (.tini).
При этом автоматически запускается процесс. Стоит обратить внимание,
что, если процесс запускается не в фоне (для запуска процесса в фоновом
режиме укажите в конце команды &), то до конца выполнения своего файла
Вы не сможете сделать что либо другое, т.к. не будет приглашения
командной строки. Хм.. стоит глянуть на команду
KILL
J.
Тут существует
специфическая особенность: при работе в
Telnet сессии
с процессом в фоновом режиме, вы сможете лицезреть сообщения своей проги
и получите доступ к командному интерпретатору
slush.
При работе же с последовательным портом Вы не увидите «мессаги» своей
программы, но получите доступ к командной строке. Это происходит по
причине того, что система не может «расшарить» вывод
Slush
и Вашей программы. Как выход, можно посоветовать перенаправить вывод из
своей программы с «терминала» в файл.
Перед запуском стоит
проверить свои привилегии на данный файл.
-
java
AK.tini
Пример использования
java:
Просто запустим
нужную нам прогу:
-java
ak.tini
Запустим программу в
фоновом режиме, вывод перенаправим в файл:
-java ak.tini > out.txt &
Так же можно хитро
переназначить ввод и вывод из программы вместо стандартного ввода-файл:
-java ak.tini < in.txt > out.txt
Запустим программу в
фоне, вывод «индикации» нам не нужен:
-java
Pepe.tini
>
null
&
В общем думаю хватит
о перенаправлениях, о них уже писал.
kill
Для того что бы
«грохнуть» процесс используется убивец. Для убийства надо знать
ID
нужного процесса, которое можно получить при помощи команды
ps:
-kill
PROCESS_ID
logout
Завершение текущего
сеанса пользователя. Если вы использовали «супер пользователя –su),
выход на уровень выше (т.е. в сеанс пользователя под именем которого Вы
входили в систему).
-logout
Возможно
использовать псевдонима
-
bye,
exit,
quit
ls
Вывод списка файлов в
текущей директории, а так же информации об указанном файле:
-ls
[опции] [FILE]
Опции: [-l]
Показать все атрибуты файла
Возможно использовать
псевдонима
-
dir
Пример использования ls -l:
И что сие значит
спросите Вы:
|
№ |
Знак |
Описание |
|
1 |
-
(d) |
Признак
директории |
|
2 |
r |
Владелец –
право на чтение |
|
3 |
w |
Владелец –
право на запись |
|
4 |
x |
Владелец –
право на исполнение |
|
5 |
r |
Все остальные –
право на чтение |
|
6 |
- |
Все остальные –
нет права на запись |
|
7 |
- |
Все остальные –
нет права на исполнение |
|
8 |
1
root |
Владелец файла
–
root |
|
9 |
admin |
Группа к
которой относится владелец |
|
10 |
101 |
Длина файла |
|
11 |
Jan 05 |
Дата создания
или последней модификации файла |
|
12 |
04:06 |
Время создания
или последней модификации файла |
|
13 |
passwd |
Имя файла |
Стоит отметить что
Slush не поддерживает разделение пользователей на группы. Единственная
существующая группа это –admin.
Добавлена для совместимости
FTP
сервера с *NIX.
mkdir
Создание директории
-mkdir
DIR
Возможно использовать псевдонима
-
md
mv
Перемещение файла с
места расположения (SRC) в место назначения (DEST).
Может использоваться для переименования файла.
-mv
SRC
DEST
Возможно использовать псевдонима
-
move
nslookup
Индикация имени [NAME или
IP] адреса в зависимости от установленного аргумента
-nslookup
[NAME
|
IP]
passwd
Установка пароля
доступа для указанного пользователя. В случае отсутствия имени
пользователя как аргумента команды, по умолчанию применяется имя
текущего пользователя. Для использования команды необходимы
администраторские привилегия.
-passwd
[имя пользователя]
ping
Проверка соединения с
другим «хостом»[HOST] в сети. Используется стандартное
ICMP
эхо.
-ping
HOST
[кол-во запросов]
ps
Вывод «листинга»
текущих запущенных процессов и идентификаторов (ID)
процессов
-ps
pwd
Индикация текущей
используемой директории
-pwd
reboot
Остановка всех
серверов
Slush и перезагрузка системы. При этом возможно указать на необходимость
очистки «кучи» и системной памяти.
-reboot
[опции]
используемые
опции:
[-f]
Не требовать подтверждения перезагрузки
[-h]
Очистить «кучу» и перезагрузиться
[-a]
Очистить «кучу» и системную память, перезагрузиться
rm
Удалить указанный
файл
-rm
FILE
Возможно
использовать псевдонима
-
del
rmdir
Удалить указанную
директорию
-rmdir
DIR
Возможно
использовать псевдонима
-
rd
sendmail
Отправка электронной
почты указанным абонентам. Можно отправить нескольким абонентам
одновременно, для этого необходимо разделить адреса назначения запятой.
В конце сообщения обязательно поставить точку. Отправка сообщения
происходит после нажатия на <Enter>.В случае если Вы забыли указать необходимы параметры в
командной строке,
sendmail запросит их у Вас.
-sendmail
[абонент(ы)] [CC's] ТЕКСТ сообщения
setenv
Установка значения
указанной переменной рабочей среды. Без указанная переменной будет
выдана распечатка параметров рабочей среды.
-setenv
VAR
VALUE
source
По сути спецификация
указанного [FILE] файла как сценарного файла. Позволяет выполнять
каждую строку в файле, как будто вы вводите эти строки в
Slush
-source
FILE
sled
Команда запускает
базовый текстовый редактор (типа
vi)
Внимание! На данный
момент
sled работает только в
Telnet сессии.
Возможно что данная возможность
Slush будет реализована и в
JavaKit.
Sled поддерживает некоторые расширения стандартного
vi.
Полный перевод всего
описания
Sled будет дан отдельно.
-
sled
[FILE]
stats
Отображение текущего
статуса системы
-stats
startserver
Запуск указанного
сервера. Необходимы администраторские привилегия.
-startserver
[опции]
Доступные опции команды:
[-s]
Сервер обслуживания последовательного порта
S0
[-t]
Telnet сервер
[-f]
FTP
сервер
stopserver
Остановка указанного сервера. Необходимы администраторские
привилегия. Так же эта команда используется для отключения сообщений
Slush
передаваемых по последовательному порту
S0 во время загрузки.
-stopserver
[опции]
Доступные опции команды:
[-s]
Сервер обслуживания последовательного порта
S0
[-d]
Отключение сообщений с консоли. Используется только совместно с опцией –s.
[-t]
Telnet сервер
[-f]
FTP
сервер
Возможно использовать
псевдонима
-
downserver
su
Получение прав
указанного пользователя [USER]. По умолчанию принимается как
root.
-su
[USER]
touch
Изменяет время
последней модификации файла [FILE].
В случае отсутствия файла, он будет создан, размер файла в этом случае
будет равен 0.
-touch
FILE
useradd
Добавление указанного
пользователя в список пользователей системы. Для внесения пользователя
необходимо указать: имя пользователя, его пароль, а так же идентификатор
(ID) пользователя. При этом считаются правильными
ID
в диапазоне от 0 до 255. Следует обратить внимание на то, что,
ID=0 закреплено за гостевым входом,
ID=127
зарезервирован для
super
user,
ID=128
соответствует привилегиям
root.
Т.е. по сути
ID
является определяющим правилом для назначения привилегий пользователя.
Для использования команды необходимо иметь администраторские привилегия.
-useradd
[опции]
Доступные опции
команды:
[-n
имя пользователя]
Имя нового пользователя
[-p
пароль] Пароль нового пользователя
[-i
ID пользователя] Идентификатор нового пользователя
userdel
Удаление указанного
пользователя [USER] из списка пользователей системы. Возможно
использование команды для удаления нескольких пользователей, при этом
имена пользователей указываются через пробел. Для использования
необходимо быть админом.
-userdel
[USER]
[USER]
wall
«Широковещательное»
сообщение всем подключенным к системе пользователям.
Broadcast
a
-wall
сообщение
wd
Установка и
отображение значения «сторожевого» таймера (WatchDog).
При использовании команды без аргументов отображается текущее значение.
Использование данной команды полезно при отладке программ, да и вообще
грамотно настроенный «сторожевой пес» позволит избежать множества
проблем. Для использования необходимы администраторские привилегия.
-wd
[опции]
Доступные опции команды:
[-i
интервал]
Установка интервала
WD (ms). Используется в паре с опцией -p.
[-p
интервал]
Установка интервала срабатывания
WD(ms). Значение должно быть меньше значения «Установки
интервала
WD» .
[-s]
Остановка счета текущего
WD.
who
Отображение списка
всех подключенных к системе в данный момент пользователей
-who
whoami
Отображение имени
пользователя текущей сессии (т.е. по сути того
Login
под которым Вы в данный момент находитесь в системе).
-whoami
(C) 2002-2003
AK
|