Документация TempOS 107.05 LTS
Содержание:
Оболочка tsh |
Встроенные команды |
Файлы |
Пользователи |
Система |
Сценарии .run
Оболочка tsh
Приглашение имеет вид пользователь@хост:каталог$. У root вместо
$ стоит #, а ~ означает домашний каталог.
Аргументы с пробелами берутся в двойные кавычки.
| Запись | Действие |
cmd1 ; cmd2 | Выполнить команды по очереди. |
cmd1 && cmd2 | Выполнить вторую команду, только если первая завершилась успешно. |
cmd > file | Записать вывод команды в файл (перезаписать). |
cmd >> file | Дописать вывод команды в конец файла. |
./program | Запустить файл из текущего каталога. Нужно право на выполнение. |
Обычная команда ищется в /bin и /usr/bin. Если удалить
файл программы, команда перестанет работать.
Встроенные команды
| Команда | Описание |
help | Список встроенных команд и программ из PATH. |
cd [каталог] | Сменить каталог. Без аргумента - домашний каталог. |
pwd | Показать текущий каталог. |
echo текст | Вывести текст. |
history | Последние 50 команд. |
exit, logout | Вернуться к предыдущему пользователю или закрыть терминал. |
Работа с файлами
| Команда | Описание |
ls [-l] [-a] [путь...] | Содержимое каталога. -l - подробно, -a - со скрытыми файлами. |
cat файл... | Вывести содержимое файлов. |
touch файл... | Создать пустой файл. |
mkdir [-p] каталог... | Создать каталог. -p - вместе с родительскими. |
rmdir каталог... | Удалить пустой каталог. |
rm [-r] [-f] путь... | Удалить файлы. -r - каталоги целиком, -f - без ошибок. |
cp [-r] откуда куда | Скопировать файл или каталог. |
mv откуда куда | Переместить или переименовать. |
chmod [-R] режим файл... | Права: 755, 644 или u+x, go-w, a=r. |
chown [-R] владелец[:группа] файл... | Сменить владельца. Только root. |
nano файл | Открыть файл в текстовом редакторе. |
Пользователи и права
| Команда | Описание |
whoami | Текущий пользователь. |
id [пользователь] | UID, GID и группы. |
groups [пользователь] | Группы пользователя. |
su [-] [пользователь] | Войти под другим пользователем. Требует пароль root. |
sudo команда | Выполнить команду от имени root. Требует пароль root. |
passwd [пользователь] | Сменить пароль. |
useradd имя | Создать пользователя. Только root. |
userdel [-r] имя | Удалить пользователя. -r - вместе с домашним каталогом. |
usermod [-a] -G группа имя | Добавить пользователя в группы. |
Перенаправление выполняется от имени текущего пользователя, поэтому
sudo echo x > /etc/hostname не сработает. Используйте
sudo nano /etc/hostname или sudo hostname имя.
Система и сеть
| Команда | Описание |
uname [-a|-s|-n|-r|-m] | Сведения о системе. |
hostname [имя] | Показать или сменить имя хоста (смена - только root). |
ifconfig | Сетевые интерфейсы и IP-адрес. |
ping адрес | Проверить связь с другим терминалом. |
clear | Очистить экран. |
reboot | Перезагрузка. Только root. |
apt list [--installed] | Список пакетов. |
apt search слово | Поиск пакета. |
apt show пакет | Сведения о пакете. |
apt install пакет... | Установить пакет. Только root. |
apt remove пакет... | Удалить пакет. Только root. |
apt update, apt upgrade | Обновить списки пакетов. |
neofetch | Сведения о системе с логотипом (пакет neofetch). |
Сценарии .run
Запуск
run file.run — нужно расширение .run и право на чтение.
./file — нужно право на выполнение (chmod +x file), расширение любое.
- Сценарий в
/bin или /usr/bin вызывается по имени, как обычная команда.
Общие правила
- Одна инструкция на строку, пробелы по краям обрезаются, пустые строки пропускаются.
- Первая строка вида
#!... игнорируется.
- Ключевые слова можно писать в любом регистре.
Комментарии
rem текст
:: текст
# текст
Переменные
set NAME=value
set GREETING="hello world"
echo %GREETING%, %USER%
- Имя: латинские буквы, цифры и
_, не с цифры. Регистр не важен.
%NAME% подставляется в любой строке. Неизвестная переменная заменяется пустой строкой.
- Встроенные:
%0% (путь к сценарию), %USER%, %HOME%,
%HOSTNAME%, %ERRORLEVEL% (0 или 1 после каждой команды).
Условия
if %USER% == root
echo admin
else
echo not admin
endif
Операторы == и !=, сравнение строк без учёта регистра. else необязателен.
Циклы
for N in (1, 2, "a, b")
echo item %N%
endfor
Ограничения
| Параметр | Значение |
| Вложенность блоков и сценариев | 8 |
| Значений в одном цикле | 100 |
| Шагов за запуск | 1000 |
| Объём вывода | 16384 символа |
В сценариях нельзя использовать ping, nano, clear,
passwd, reboot, exit, su и sudo.
Пример
#!/usr/bin/run
rem Отчёт о системе
set REPORT=%HOME%/report.txt
echo "Host: %HOSTNAME%" > %REPORT%
for DIR in (/etc, /tmp)
ls -l %DIR% >> %REPORT%
endfor
if %ERRORLEVEL% == 0
echo "Отчёт сохранён в %REPORT%"
endif
|