Работа в командной строке UNIX
“UNIX в основном простая операционная система, но нужно быть гением, чтобы понять её простоту” (Денис Ритчи)
“Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий” (Козьма Прутков)
Программа курса
Offline материалы к курсу
Видео уроки
Модуль 0. Подготовка стенда в классе.
ipconfig /all
route delete 172.16.1.0 -p
Удалить виртуалки
Удалить профили putty
Отключить не используемые адаптеры
Записать логин пароль и IP (сообщить преподавателю) рабочей станции
Проверить наличие дистрибутивов и образов
Модуль 1. Знакомство с UNIX
Теория
История и стандарты
cat, chdir, chmod, cp, ed, find, mail, mkdir, mkfs, mount, mv, rm, rmdir, wc, who.
Подключение к UNIX
Работа в командной строке
Лабораторные работы
Входное тестирование - скачать свежий образ netinst под архитектуру amd64 с сайта
Подключение к уже установленной и настроенной системе
-
-
-
getty/login (демонстрирует преподаватель)
putty, winscp (во 2-м модуле)
ssh из unix в unix (после развертывания собственной системы)
Принципы работы в системе
Вопросы
Какие Windows программы могут быть использованы для подключения к UNIX системе по протоколу ssh?
Что определяют аргументы команды/утилиты?
Что определяют ключи/опции команды/утилиты?
Какая команда используется для чтения UNIX документации?
Как осуществляется поиск в UNIX документации?
Модуль 2. Файлы в UNIX
Теория
Лабораторные работы
Вопросы
Что обозначают ключи «a», «l» в команде ls?
Какой командой можно создать файл?
Что означает символы “~”, “.”, “..”, “/” в имени файла?
Что обозначают ключи “h/H”, “v”, “r/R” во многих командах?
Какие команды используются для анализа занятого места на диске/в каталоге?
Какой командой можно удалить непустой каталог?
Какие команды могут быть использованы для поиска файлов?
Какие команды используются для просмотра содержимого файлов?
Какая программа может быть использована для копирования файлов между UNIX и Windows по протоколу ssh?
Какой ключ команды tail позволяет “в онлайне” наблюдать процесс появления новых записей в файле?
Какая последовательность клавиш позволяет выйти из редактора vi без сохранения изменений?
Какой командой можно найти содержимое в файле по шаблону?
Какой ключ команды sort позволит отсортировать данные по числовому столбцу?
Что обозначают символы “^”, “$”, “.”, “|” в регулярных выражениях?
Что обозначают ключи “c”, “t”, “x”, “z”, “f” в команде tar
Что появится на экране в результате последовательности команд:
mkdir dir1; cd dir1/; touch echo ls; *
Каким образом можно определить тип файла в UNIX?
Модуль 3. Процессы в UNIX
Теория
Лабораторные работы
# asterisk -x 'sip show users'
# ps ax | grep asterisk
# kill -s HUP НОМЕР_ПРОЦЕССА
# kill -s HUP `cat /var/run/asterisk/asterisk.pid`
Вопросы
Что обозначают ключи “a”, “x” в команде ps?
Что такое STDIN, STDOUT, STDERR и какие у них номера?
Что обозначают элементы “<”, “>”, “2>”, “&1”, “|” в выражениях shell
Объясните, как работает конструкция
:> file1
Чем отличается команда set от команды env?
Что влияет на выбор языка интерфейса в *NIX программах?
Как посмотреть код завершения процесса и какое он должен иметь значение, если не было ошибок?
Что обозначают элементы “&&”, “||”, “;”, “&” в выражениях shell
Объясните, что происходит при использовании комбинаций “Ctrl C”, “Ctrl D”, “Ctrl Z”?
Как обрабатываются сигналы “HUP”, “INT”, “TERM”, “KILL”, “TSTP” процессами?
Модуль 4. Система безопасности и права доступа
Теория
Лабораторные работы
Управление атрибутами доступа к файлам
Задание: исправить владельца файла конфигурации sip.conf
# ps axu | grep asterisk
# ls -l /etc/asterisk/sip.conf
# cp /etc/asterisk/sip.conf .
# ls -l sip.conf
# rm /etc/asterisk/sip.conf
# cp sip.conf /etc/asterisk/
# service asterisk restart
# asterisk -x 'sip show users'
# chown asterisk:asterisk /etc/asterisk/sip.conf
или
# chmod +r /etc/asterisk/sip.conf
# service asterisk restart
# asterisk -x 'sip show users'
Вопросы
Что обозначают ключ “u” в команде ps?
Для чего предназначены команды chmod, chown?
Что определяет маска 640 или
-rw-r-----
для файла?
Что обозначает бит “x” для файла и каталога
Что обозначает значение атрибута EUID=0 для процесса?
Модуль 5. Программирование на shell
Теория
Лабораторные работы
Вопросы
Объясните, результаты выражений:
a=1;a=a+1;echo $a
a=1;a=$a+1;echo $a
a=1;a='$a+1';echo $a
a=1;a=$(($a+1));echo $a
a=Hello;a=$a World;echo $a
a=Hello;a=$a\ World;echo $a
a=Hello;a='$a World';echo $a
a=Hello;a="$a World";echo $a
a=/bin;a="ls $a | wc -l";echo $a
a=/bin;a='ls $a | wc -l';echo $a
a=/bin;a=`ls $a | wc -l`;echo $a
a=/bin;a=$(ls $a | wc -l);echo $a
Что определяет комбинация “#!” в начале файла?
Что содержит значение переменных $0, $1, $!
Объясните результат выражения:
echo '#!/bin/ls' > ex1; chmod +x ex1; ./ex1
В чем разница и что общего при запуске скрипта следующими способами:
./script.sh
. script.sh
sh script.sh
Объясните элементы выражения
while :;do
Что обозначают операторы continue, break, exit в sh программах?
Чем завершаются операторы if, case, do в sh программах?
Какой оператор поможет запретить прекращение выполнения скрипта комбинацией клавиш “Ctrl C”?
Какой оператор поможет получить ввод пользователя в sh программе?
Объясните элементы выражений
while [ $i -lt 254 ]
while test $i -lt 254
Чем оперирует цикл for в sh программах?
Какой оператор позволяет открывать файлы в sh программах?
Какой оператор необходим для написания на sh искусственного интеллекта?
Модуль 6. Дополнительные лабораторные работы