Основы ос linux/unix для пользователей


Глава 8Управление задачами



Pdf просмотр
страница3/5
Дата18.11.2016
Размер5.04 Kb.
Просмотров908
Скачиваний0
1   2   3   4   5
Глава 8
Управление задачами
8.1
Команда ps
Синтаксис:
SYSV:
ps [-efl]
BSD:
ps [-][alx]
Описание:
Вывод информации о состоянии процессов.
Опции:
В SYSV системах:
-e
Выдать информацию и о процессах других пользователей
-f
Выдать полную информацию о процессах
-l
Выдать информацию о процессах в расширенном виде
В BSD системах:
a
Выдать информацию и о процессах других пользователей l
Выдать информацию о процессах в длинном формате x
Выдать в том числе и информацию о процессах, не подсоединенных к тер- миналам
53

8.2. Команда jobs
Поля в выходном листинге:
USER
(BSD), UID
(System V)
Пользователь — хозяин процесса
PID
Идентификатор процесса
%CPU
Доля использования ресурсов процессора
%MEM
Доля использования оперативной памяти
SZ
Используемая виртуальная память в килобайтах (BSD) или страницах
(System V)
RSS
Используемая реальная память (в тех же единицах, что и SZ)
TT
, TTY
Терминал, связанный с процессом
STAT
(BSD),
S
(System V)
Статус текущего процесса:
• R — работает
• S — спит
• I — простаивает (BSD), промежуточное состояние (System V)
• T — остановлен
• Z — зомби
• D (BSD) — ожидание диска
• P (BSD) — ожидание страницы
• X (System V) — ожидание добавочной па- мяти
• W (BSD) — выгружено в свопинг
• N (BSD) — Niced: приоритет понижен
• > (BSD) — Niced: приоритет искусственно повышен
TIME
Полное время работы на CPU
COMMAND
Командная строка программы
STIME
(System V)
Время старта процесса
F
Флаги, связанные с процессом
PPID
PID процесса-родителя
NI
Nice процесса
C
(System V), CP
(BSD)
Используемость процессора, используется при вычислении приоритета (PRI)
PRI
Текущий приоритет
WCHAN
Ожидание события
8.2
Команда jobs
Синтаксис:
jobs [-l]
Описание:
Вывести список задач в данной сессии shell.
Опции:
-l
Вывести также PID процесса, соответствующего задаче
54

8.3. Команда bg
8.3
Команда bg
Синтаксис:
bg [%задача]
Описание:
Перевод задачи shell в фоновый режим. Если задача не указана, имеется в виду текущая.
8.4
Команда fg
Синтаксис:
fg [%задача]
Описание:
Перевод задачи shell в активный режим. Если задача не указана, имеется в виду текущая.
8.5
Команда kill
Синтаксис:
kill [-сигнал] PID...
kill [-сигнал] %задача...
Описание:
Посылка сигнала процессу с идентификационным PID (получаемый командой ps или номером за-
дачи
shell.
55

Глава 9
Отложенной исполнение команд
9.1
Команда sleep
Синтаксис:
sleep время
Описание:
Приостановить интерпретацию команд текущего shell’а на время, указанное в секундах.
9.2
Команды at и batch
Синтаксис:
at [-f файл...] [-m] время...
batch [-m] время...
Описание:
Запуск заданий в определенное время. Если время batch не указано, задание выполняется немедлен- но. По умолчанию задания читаются со стандартного ввода.
Опции:
-f файл
Файл с выполняемым shell-скриптом
-m
Послать пользователю, выполняющему команды, e-mail с содержимым пото- ков стандартного вывода и вывода ошибок запускавшихся команд по завер- шению их работы
время...
Время запуска в формате чч:мм или midnight (00:00), noon (12:00),
now (выполнить немедленно)
. Если указанное время при наборе за- проса уже прошло, задание назначается на следующие сутки. В запро- се может быть указана и дата в форматах месяц день [год], ММДДГГ,
ММ/ДД/ГГ
, ММ:ДД:ГГ или today (сегодня), tomorrow (завтра). Возможно указание смещения в формате метка_времени + количество едини-
цы_времени, гдеединица_времени
— minutes (минуты), hours (ча- сы), days (дни), weeks (недели)
56

9.3. Команда atq
Примеры:
Произвести сортировку файла file завтра в 07:30.
$ at -m 07:30 tomorrow at<
sort > file < outfile at< >EOT<
job 5 at 2010-07-11 07:30
$ batch -f daily-processing now +1 hour
9.3
Команда atq
Синтаксис:
atq
Описание:
Просмотреть очередь заданий.
Примеры:
$ atq
2 2010-07-11 07:30 a guest
9.4
Команда atrm
Синтаксис:
atrm задание [задание...]
Описание:
Удалить задание из очереди по номеру, полученному из atq.
Примеры:
$ atq
2 2010-07-11 07:30 a guest
$ atrm 2
$ atq
9.5
Команда crontab
Синтаксис:
crontab [-l|r|e]
Описание:
Периодический запуск команд. Запросы заполняются следующим образом:
минуты(0-59) часы(0-23) день(1-31) месяц(1-12) день_недели(1-7) команда
57

9.5. Команда crontab
Опции:
-e
Отредактировать файл запросов
-l
Вывести список запросов
-r
Удалить файл запросов
Примеры:
Удалять файлы core каждый рабочий день в 03:15.
$ crontab -l
15 3 * * 1-5 find $HOME -name core 2>/dev/null | xargs rm -f
58

Глава 10
Текстовые редакторы
10.1
Команда ed
Синтаксис:
ed [-] [файл...]
Описание:
Вызвать строковый редактор для указанных файлов.
Опции:
-
Подавление вывода посторонней информации (число строк, диагностика)
Командные последовательности:
.
Текущая строка
$
Последняя строка
строка
Номер строки
/рег_выражение/
Первая вперед по буферу строка, соответствующая регулярному выраже-
нию
?рег_выражение?
Первая назад по буферу строка, соответствующая регулярному выраже-
нию
+строк -строк
На указанное количество строк вперед или назад
+ + -
На 1 строку вперед или назад
59

10.2. Команда vi
Команды:
a
Добавить строку
c
Заменить строку
d
Удалить строку
e файл
Открыть файл для редактирования
i
Вставить перед указанной строкой
s/рег_выражение/замена
[g]
Заменить участки, соответствующие регулярному выраже-
нию
на замену. Участки рег_выражения, ограниченные (),
вставляются при замене на место, указанное конструкцией
\номер
q
Выйти
w [файл]
Сохранить в файле
!команда
Выполнить команду shell
10.2
Команда vi
Синтаксис:
vi [+[строка]] файл...
vi -r файл
Описание:
Вызвать редактор для указанных файлов.
Вторая форма позволяет восстановить прерванную сессию.
Опции:
+строка
Спозиционироваться в строку файла
+
Спозиционироваться в конец файла
60

10.3. Команда emacs
Командные последовательности:
l, h
Сместиться на символ влево, вправо
w, W
Сместиться на слово влево, вправо
k, j
Сместиться на символ вверх, вниз
CTRL-B, CTRL-F
Сместиться на экран вверх, вниз
a
Вставлять текст после курсора
A
Вставлять текст в конец строки
i
Вставлять текст перед курсором
I
Вставлять текст в начало строки
x, X
Удалить символ до или после курсора
dw, dW
Удалить слово ини набор символов до пробела
dd
Удалить строку
u
Отменить предыдущее действие
J
Слить строки
/рег_выражение
Поиск вперед
?рег_выражение
Поиск назад
число
Повторить указанное число раз
P, p
Вставить содержимое буфера до или после курсора
CTRL/L
Перерисовать экран
:rфайл
Прочитать файл
:wфайл
Записать в файл
:wq
Выход с сохранением
:q!
Выход без сохранения
10.3
Команда emacs
Синтаксис:
emacs [+[строка]] файл...
Описание:
Вызвать редактор для указанных файлов.
Опции:
+строка
Спозиционироваться в строку файла
+
Спозиционироваться в конец файла
61

10.4. Команда joe
Командные последовательности:
C-b, C-f
Сместиться на символ влево, вправо
M-b, M-f
Сместиться на слово влево, вправо
C-p, C-n
Сместиться на символ вверх, вниз
C-v, M-v
Сместиться на экран вверх, вниз
DEL, C-d
Удалить символ перед, после курсора
M-d
Удалить слово
C-k
Удалить текст до конца строки
C-w
Удалить маркированный участок
M-w
Пометить маркированный участок
C-x C-u
Отменить предыдущее действие
C-s
Поиск вперед
C-r
Поиск назад
C-, C-SPC
Поставить метку
C-y
Вставить содержимое буфера
M-x recover-session
Восстановить после краха
C-l
Перерисовать экран
C-x C-f
Открыть файл
C-x C-s
Сохранить файл
C-x C-c
Выйти
10.4
Команда joe
Синтаксис:
joe [-asis] [-crlf] файл...
Описание:
Вызвать редактор для указанных файлов.
Опции:
-asis
Отображать символы > 128, не отсекая 8-ой бит
-crlf
Использовать в качестве конечных символов в строке CR/LF
62

10.4. Команда joe
Командные последовательности:
Ctrl-K H
Help
Ctrl-B, Ctrl-F
Сместиться на символ влево, вправо
Ctrl-P, Ctrl-N
Сместиться на символ вверх, вниз
Ctrl-Z, Ctrl-X
Сместиться на слово влево, вправо
Ctrl-U, Ctrl-V
Сместиться на экран вверх, вниз
Ctrl-A
Сместиться в начало строки
Ctrl-E
Сместиться в конец
Ctrl-K U
Сместиться в начало файла
Ctrl-K V
Сместиться в конец файла
Ctrl-K L
Сместиться на определенную строку
Ctrl-K F
Поиск
Ctrl-L
Повторить поиск
Ctrl-K B
Начало блока
Ctrl-K K
Конец блока
Ctrl-K M
Переместить блок
Ctrl-K C
Скопировать блок
Ctrl-K W
Скопировать блок в файл
Ctrl-K Y
Удалить блок
Ctrl-K /
Направить блок на фильтр
Ctrl-D
Удалить букву
Ctrl-Y
Удалить строку
Ctrl-W
Удалить слово справа
Ctrl-O
Удалить слово слева
Ctrl-J
Удалить остаток строки
Ctrl-_
Отменить совершенное действие
Ctrl-^
Повторить отмененное действие
Ctrl-K E
Открыть файл
Ctrl-K R
Вставить файл
Ctrl-K D
Сохранить файл
Ctrl-K X
Выход с сохранением
Ctrl-C
Выход без сохранения
Ctrl-K Z
Выйти в shell
63

Глава 11
Обработка текстовой информации
11.1
Команда sed
Синтаксис:
sed [-n] [-e команды] [-а ком_файл]файл...
Описание:
Вызвать редактор для указанных файлов.
Опции:
-eкоманды
Исполняются команды sed-скрипта
- fфайл_программы
Запустить sed-программу из файла
-n
Выводит только строки, указанные командой р
Командные последовательности:
Синтаксис команд аналогичен ed (см.
Разд. 10.1
).
11.2
Команда awk
Синтаксис:
awk [-Fразделитель] [’программа’] [файл...]
awk [-Fразделитель] [-f файл_программы] [файл...]
Описание:
Интерпретатор языка обработки текстовых потоков.
Каждая строка входного потока разбивается на поля согласно установленным разделителям — по умолчанию пробелы и табуляции. Эти умолчания могут быть изменены установкой переменной среды
$FS
. Поля представляются переменными $1, $2...; $0 обозначает всю строку. При изменении любого поля меняется и вся строка.
Программы имеют следующий формат:
BEGIN
{ начальные_операторы } { селектор действие ... } END { конечные_операторы }
64

11.2. Команда awk
Опции:
-F разделитель
Установить разделитель полей
-f файл_программы
Запустить awk-программу из файла
Переменные:
FS
Разделитель входных полей
RS
Разделитель входных строк
FILENAME
Имя текущего входного файла
NF
Количество полей в текущей строке
NR
Номер строки
OFMT
Формат для вывода чисел. По умолчанию — %6g
OFS
Разделитель выходных полей
ORS
Разделитель выходных строк
Операторы:
if (выражение) оператор [else оператор]
while (выражение) оператор
for (выражение;выражение;выражение) оператор
for (выражение in массив) оператор
break
continue
([оператор...])
переменная
= выражение
print [список_выражений] [>|>> файл]
print [список_выражений] [| процесс]
printf [список_выражений] [>|>> файл]
printf [список_выражений] [| процесс]
next
exit (выражение)
Функции:
length[()]
Длина строки, по умолчанию $0
split(строка,массив,разделители) Разбить строки
substr(строка,начало,длина)
Выделить подстроку
index(строка,подстрока)
Найти позицию подстроки в строке. В случае неудачи возвращается 0
getline
Прочитать следующую входную строку. В случае конца файла возвращается 1, иначе — 0
sprintf(формат,выражение,...)
Форматный вывод в строку
exp(выражение)
Экспонента
logвыражение)
Натуральный логарифм
sqrt(выражение)
Квадратный корень
int(выражение)
Округление до ближайшего целого
Примеры:
$ cat > test
123 456 789
abc def ghi
!@ #$% ^&*
65

11.3. Команда cmp
$ awk ’/abc/’ < test abc def ghi
$ awk ’END{print NR}’ < test
3
$ awk ’{print $2 $3}’ < test
456789
defghi
#$%^&*
11.3
Команда cmp
Синтаксис:
cmp [-s] файл1 файл2
Описание:
Производится сравнение двух бинарных файлов. При их различии возвращается код ошибки и выво- дится номер байта, где это произошло.
Опции:
-s
Не выводить текстового сообщения
11.4
Команда diff
Синтаксис:
diff [-befr] файл_или_каталог1 файл_или_каталог2
Описание:
Найти различия в текстовых файлах и вывести их на стандартный вывод.
Опции:
-b
Игнорирование лишних пробельных символов
-e
Создать последовательность ed-команд (см.
Разд. 10.1
) для преобразования
файла1
в файл2
-f
Создать последовательность ed-команд (см.
Разд. 10.1
) для преобразования
файла2
в файл1
-r
Если аргументы — каталоги, выполнять команду рекурсивно
11.5
Команда fold
Синтаксис:
fold [-b] [-s] [-w ширина] [файл...]
Описание:
Разбивка длинных строк на строки требуемой длины.
66

11.6. Команда sort
Опции:
-b
Учитывать символы возврата каретки
-s
Разбивка по ближайшему пробелу
-wширина
Установить ширину выходной строки (по умолчанию — 80)
11.6
Команда sort
Синтаксис:
sort [-cmunr] [файл...]
Описание:
Сортировка файлов.
Опции:
-c
Проверка, отсортирован ли файл; выдача кода завершения
-m
Слияние отсортированных файлов
-u
Вывод только одной строки из нескольких одинаковых
-n
Численный порядок сортировки
-r
Обратный порядок сортировки
Примеры:
$ cat > test
009 01 2
abc xyz
$ sort test
009 01 2
abc xyz
$ sort -n test abc xyz
01 2
009
11.7
Команда uniq
Синтаксис:
uniq [-cdu] [-полей] [+символов] [входной_файл [выходной_файл]]
67

11.8. Команда tr
Описание:
Поиск повторяющихся строк. По умолчанию применяются опции -d и -u.
Опции:
-полей
Проигнорировать указанное число начальных полей
+символов
Проигнорировать указанное число начальных символов
-c
Каждой группе повторяющихся строк предшествует число повторений
-d
Выводить только первые строки из набора повторяющихся строк
-u
Вывести только неповторяющиеся строки
11.8
Команда tr
Синтаксис:
tr [-cds] строка1 [строка2]
tr -d|s [-c] строка
tr -d|s [-c] строка1 строка2
Описание:
Транслитерация входного потока.
В первом случае транслитерация производится путем совершения подстановки символов из строки2
на место соответствующих символов из строки1. Если длина строки1 больше, то в соответствие остающимся символам ставится последний символ строки2.
Во втором случае происходит удаление указанных символов из входного потока.
Опции:
-c
Дополнение до набора, указанного в строке1
-d
Удалить все символы, соответствующие заданным в строке1
-s
Заменить на выходе все кратные вхождения литер из строки2 одним сим- волом
11.9
Команда join
Синтаксис:
join [-a номер_файла] [-e строка] [-j [номер_файла] поле] [-o список_полей] [-t сим-
вол_разделитель
] файл1|- файл2
Описание:
Объединение строк файлов при наличии общих полей.
68

11.10. Команда paste
Опции:
-aномер_файла
Дополнительно вывести непарные строки файла 1 или 2
-eстрока
Пустые поля заменять строкой
-j
[номер_файла]поле
Выполнить сравнение по полю файла или, если файл пропу- щен, — по каждому файлу
-oсписок_полей
Выходные строки составлять согласно спискам, состоящим из эле- ментов вида номер_файла.поле
-tсимвол_разделитель
Задание разделителей полей
11.10
Команда paste
Синтаксис:
paste [-s] [-d список_разделителей] файл...
Описание:
Слияние строк файлов. Строки файлов сливаются, разделяясь табуляцией.
Опции:
-s
Последовательное слияние — все строки файла сливаются в одну,
разделяясь табуляцией, в конце ставится перевод строки, операция повторяется со следующим файлом
-dсписок_разделителей
Вместо табуляции для разделения полей по очереди используются символы из списка_разделителей
69

Глава 12
Программирование в среде
командных интерпретаторов
Shell обладает средствами для написания исполняемых программных файлов. Он включает все ос- новные средства обычных языков программирования высокого уровня: переменные, условные опе- раторы, операторы цикла, подпрограммы. Вместе с тем, поддержка метасимволов и возможность использования мощного набора программ, существующих в UNIX, позволяет выполнять разработку полноценных программных продуктов в более короткий срок, чем при помощи традиционных языков программирования.
12.1
Запуск командных файлов
Простейший метод запуска командных файлов, написанных на каком-либо shell’е, — это вызвать соответствующий shell, задав ему в качестве параметра ваш программный файл:
shell файл параметр...
Например:
$ cat > hello echo Hello word!
$ sh hello
Hello word!
^D
Интерпретатору можно задавать ключи, помогающие при отладке скриптов:
-v
Выводить больше информации при исполнении скрипта
-x
Отображать ход исполнения скрипта пошагово
При наличии в файле первой строки, указывающей текущий интерпретатор (по умолчанию /bin/sh),
и прав доступа на исполнение, файл можно запускать на исполнение как любую другую программу:
$ cat > hello echo Hello word!
$ sh hello
Hello word!
^D
70

12.2. Позиционные параметры
$ chmod +x hello
$ ./hello
Hello word!
Можно запустить командный файл без порождения нового процесса. Главным следствием этого яв- ляется то, что все установки переменных, сделанные в скрипте, будут иметь силу в текущем shell’е:
$ echo $BYE
$ echo ’BYE="Good Bye!"’ >> hello
$ . ./hello
Hello word!
$ echo $BYE
Good Bye!
12.2
Позиционные параметры
В shell применяется набор зарезервированных переменных:
Переменная
Bourne-Shell
C-Shell
Korn-Shell и выше
Количество аргумен- тов
$#
$#argv
$#
Все аргументы
$*
$*,$argv*,$argv[*]
$*
n-ый аргумент
$n
$n,argv[n]
$n,$[n]
Имя программы
$0
$0
$0
Последний аргумент
$argv[$#argv]
12.3
Основные конструкции и операторы командного языка
12.3.1
Условный интерпретатор if
Bourne-Shell:
if выражение; then команды; [else команды]; fi
C-Shell:
if выражение; then команды; [else if выражение команды]; [else команды]; endif
Korn-Shell:
if выражение; then команды; [elif выражение команды]; [else команды]; fi
Если выражение истинно, то выполняются команды первого уровня. Если же это не так, то либо выполняются команды второго уровня, стоящие после оператора else, либо вычисляется следующее
выражение
12.3.2
Оператор переключения
Bourne-Shell:
case строка in образец) команды ;; *) команды ;; esac
71

12.3. Основные конструкции и операторы командного языка
C-Shell:
switch (строка) case образец: команды breaksw default: команды breaksw endsw
Оператор работает как переключатель между различными альтернативами, описываемыми образца-
ми
. Если ни один из образцов не соответствует указанной строке, выполняются команды, указанные в умолчании. В образцах могут использоваться метасимволы.
12.3.3
Оператор цикла while
Bourne-Shell:
while выражение; do команды; done
C-Shell:
while выражение команды; end
Цикл, выполняющий команды, пока выражение является истинным.
12.3.4
Оператор цикла for
Bourne-Shell:
for переменная in список; do команды; done
C-Shell:
foreach переменная (список) команды; end
Цикл, выполняющий команды, выбирая элементы из списка и присваивая переменной значение этого элемента.
12.3.5
Оператор цикла until
Bourne-Shell:
until выражение; do команды; done
Цикл, выполняющий команды, пока выражение является ложным.
12.3.6
Вычисление выражений
Код завершения любой программы в условных интерпретаторах истолковывается как истина, если он равен 0, в противном случае — ложь. Существуют команды true и false, единственная функция которых состоит в том, чтобы возвращать истину или ложь соответственно.
Оператор test или его аналог [] (см.
Разд. 7.8.4
) часто используется для выполнения различных проверок, связанных с файловой структурой.
72

12.4. Встроенные функции
12.3.7
Определение подпрограмм
[function] имя_функции () {операторы}
Параметры, передаваемые функции, передаются как позиционные параметры. Возврат из подпрограм- мы осуществляется по завершении набора операторов с результирующим кодом завершения или при помощи оператора return.
12.4
Встроенные функции
12.4.1
basename — выделение компонентов имени файла
basename строка [суффикс]
Из строки удаляется любой префикс, кончающийся на ’/’ и указанный суффикс.
12.4.2
dirname — выделение имени каталога
dirname [строка]
Выделение из строки имени каталога. При отсутствии аргументов возвращается символ текущего каталога (.).
12.4.3
echo — вывести на печать
echo [-n] [аргумент...]
В стандартный вывод помещаются аргументы, разделенные пробелами. Если не указана опция -n,
завершается переводом строки.
12.4.4
eval — выполнить команду
eval [оператор...]
Происходит выполнение указанных операторов при выполнении всех указанных подстановок.
12.4.5
exec — запустить программу на исполнение
exec [команда] [аргумент...]
Происходит исполнение команды с аргументами без порождения нового процесса и возврата в текущий shell.
12.4.6
expr — вычисление арифметических выражений
expr выражение
Вычисляется арифметическое выражение, результаты записываются в стандартный вывод.
73

12.4. Встроенные функции
12.4.7
read — прочесть строку
read переменная...
Происходит чтение строки из стандартного ввода. Полученные слова последовательно присваиваются указанным переменным. Остаток строки присваивается последней переменной.
12.4.8
readonly — защита переменных от изменения
readonly [переменная...]
Запрещение записи в указанные командные переменные. При отсутствии аргументов выводится список защищенных переменных.
12.4.9
shift — сдвиг позиционных параметров
shift [сдвиг]
Сдвиг на указанное число параметров. По умолчанию — 1.
74

Часть III
Сетевое окружение ОС Linux/UNIX
75

Важнейшими задачами, решаемыми при удаленной работе по сети, со времен распространения про- токолов для связи компьютеров по коммутируемым телефонным линиям UUCP и первых версий протокола TCP/IP, являются передача данных и удаленное исполнение команд. Наиболее распро- страненным средством для решения таких задач сейчас является набор утилит SSH (Secure Shell),
осуществляющих передачу данных и исполнение программ по специальному шифрованному протоко- лу. В некоторых случаях могут оказаться полезными и аналогичные средства более ранних поколе- ний — telnet, ftp, rcp, rexec и пр.
Как правило, организация передачи данных при использовании таких средств гораздо проще, чем при использовании распространенных сетевых файловых систем типа NFS или SAMBA, а накладные расходы при передаче данных по сети — меньше.
Большую помощь в организации удаленной работы по сети оказывают специализированные программ- ные компоненты, позволяющие поддерживать в рабочем состоянии рабочие сессии как в текстовом
(напр. screen), так и в графическом режиме (например, VNC) даже при отключении сетевого соеди- нения.
76


Каталог: static -> Docs
Docs -> Руководство пользователя Copyright c 2008-2013 ОАО линукс инк. Данное руководство может свободно использоваться и распространяться на условиях, оговоренных в Open Publication License, 0, доступной по следующему ресурсу
Docs -> Инструкция по работе с порталом owa mos ru
Docs -> Настройка системы
Docs -> Linux Format Апрель 2008 Разгоняем Linux Александр Толстой
Docs -> Linux Format Август 2008
Docs -> Руководство по установке Copyright c 2008-2013 ОАО линукс инк. Данное руководство может свободно использоваться и распространяться на условиях, оговоренных в Open Publication License, 0, доступной по следующему ресурсу
Docs -> Руководство пользователя Copyright c 2008-2013 ОАО линукс инк. Данное руководство может свободно использоваться и распространяться на условиях, оговоренных в Open Publication License, 0, доступной по следующему ресурсу
Docs -> План-график проведения обучения специалистов в области технического регулирования в Таможенном союзе и Едином экономическом пространстве (4-й квартал)


Поделитесь с Вашими друзьями:
1   2   3   4   5


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал