План курса "Основы UNIX" (30 часов) Что такое операционная система и зачем она нужна. История UNIX. Многопользовательская и многозадачная система. Системный администратор. Виртуальные консоли. Установление и удаление пользователя. Пароль и его смена. Вход в систему и выход из нее. Приглашение командной строки и его расшифровка. Интерпрететор командной строки. Редактирование командной строки. Начальный каталог пользователя и команда ls. Что там за файлы, понятие скрытых файлов. Перемещение по каталогам: pwd; cd; cd ..; cd /; cd ~; more, less. Файлы и каталоги, абсолютные и относительные имена. Файловая система ext2fs. Команды, аргументы и опции; опции ls (ls -a; ls -l; ls -Al; ls -F); порядок КОМАНДА -ОПЦИИ АРГУМЕНТ Помощь в UNIX: опция --help (или -h, реже -?). Вызвать ls --help и добиться вывода номера узла. Команда man и команда info. Просмотреть man к использовавшимся командам и отыскать основные разделы man: NAME, SYNOPSIS, DESCRIPTION, FILES, SEE ALSO etc. Разделы страниц руководства (важны 1 и 8). Команда apropos на примере apropos time (задача: узнать, как изменить системное время). Организация файловой системы UNIX. Тур по файловой системе с объяснением основных команд (/bin, команды ps и др.), устройств (/dev), настроек (/etc), основ монтирования (/mnt, команды mount и umount), временных файлов, служебных команд, строения каталогов /home (и /etc/skel), /usr, /usr/local, /var. Как нужно организовывать домашние каталоги. Команды who и whoami. Создание файла командой touch. Имена файлов, длина и разрешенные символы. ЧУВСТВИТЕЛЬНОСТЬ К РЕГИСТРУ. Кодировки русского языка и почему нельзя русские буквы. Создание каталога командой mkdir newfolder. Удаление файлов и каталогов командами rm , rmdir, rm -rf, rm -i *. Шаблоны имен. Значение "?", "*", "[]" и "^"; создание нескольких каталогов командой mkdir new{1,2,3}. Применение ls с шаблонами (ls new*). Как удалить все три каталога new. Тренировка с шаблонами. Атрибуты файлов и их изменение. Команды chmod и chown. Способы задания прав chmod: типа "chmod ugo-w". Создание первого исполнимого файла. Команда ".", позволяющая исполнять все файлы. Цифровые задания прав (типа "chmod 644"), типичные сочетания. "Исполнимость" директорий. Смена собственника файлов. Маска прав файлов. Как избавиться от чужого файла. Команда ln. Жесткие и символические ссылки. Типы файлов: обычные, каталоги, символические ссылки; их отражение по команде ls -F. Команда file и ее смысл. Пересылка и копирование: mv и cp. Нельзя делать "mv *.txt *.text". Как это сделать: написание скрипта "ext" с циклом for и использованием команды basename. Просмотр содержимого файла. Команды cat, less, head, tail и tail -f. Поиск в и справка less. Текстовые утилиты uniq, tac и sort. Команды diff и diff3, чтение их вывода. Команды cmp и dircmp. Переадресация ввода и вывода. Создание нового файла командой cat > my.txt (Ctrl-D). Поток ввода, поток вывода и поток ошибок. Смысл символов ">", "<", "|", ">>" и "2>". Демонстрация действия конвейеров на примере типа "cat my.txt | fmt | sort | less". Процессы, их номера. Выяснение номеров текущих процессов. Команды "ps aux | grep ..." и "top". Команда kill и kill -9. Поиск файлов командой find. Порядок организации аргументов: find <откуда> <что> <что_делать>. Опции -name, -or, -and, -atime, -ctime, - mtime, -newer, -print, -exec '{}' ';', -ok. Команда xargs и ее совместное применение с find. Архивирование недавно измененных файлов (zip -@). Команда locate. Как научиться создавать файлы с определенным шаблоном времени. Описание grep: создание файла-телефонной книжки cat > phonebook. grep с ^, $, ^., [АаБб], ^.[ВвГг], [0-9], а*б, а.*б Экранирование символов при помощи бекслеша. Самостоятельная работа: найти у себя в рабочей директории все файлы, в названии которых НЕТ буквы "a" и архивировать их в ZIP; найти в заданном файле все строки с заданным паттерном, записать их в файл, затем добавить туда строки с другим словом, отсортировать и удалить одинаковые строки. Совместное использование find и grep для поиска и замены в поддиректориях: find . -name '*.[ch]' | xargs grep -l thing. Редактор vi/vim. Основные способы и приемы редактирования. Запуск и выход (:q!, ZZ) Режимы команд, вставки и командной строки. Переходы между режимами (вставки, командным vi, командным ex, поиска, оболочки, визуальным). Движение по файлу. Удаление и пересылка текста. Числовые префиксы. Сохранение текста. Поиск и замена текста. Редактирование следующего файла. Фильтрование в vim (sort, fmt). XWindows и gvim. Настройка vim (.vimrc). Программа ispell и работа с ней. Редактор emacs. Основные способы и приемы редактирования. Отсутствие режимов. Двойные сочетания клавиш. Вход и выход. Сохранение файла. Движение по файлу. Удаление текста. Пересылка и копирование текста. Поиск и замена текста. Загрузка нового файла. Окна в emacs. Помощь в редакторе. Оболочки и их типы. Наиболее распространенные оболочки: bash, ksh, tcsh. История и завершение имени файлов и команд. Идентификация оболочки. Запускающие файлы оболочек. Псевдонимы команд. Управление заданиями. Смена оболочки. Написание сценариев (скриптов) оболочек. Некоторые наиболее распространенные команды для сценариев. Система #! Среда и ее переменные. Просмотр переменных среды командой env. Переменные LOGNAME, HOME, PATH, LOCALE, CDPATH, TZ, TERM, PAGER, EDITOR. Определение, экспортирование и удаление переменной оболочки. Поиск программ. Команда whereis. Процессы и фоновый режим. Выполнение в фоне. Фоновый режим и XWindows. Прерывание фоновой команды. Перевод команды в фоновый режим. Очередность заданий. Перевод в режим переднего плана. Выполнение в определенные сроки (at и cron). Загрузка и выгрузка linux. LILO. Что происходит при загрузке. Понятие о графической подсистеме XWindows. Установка Linux (Red Hat 7.2) на компьютер. Основные проблемы и пути их решения. Основные прикладные программы для консоли и XWindows (кроме рассмотренных выше). Потоковый редактор sed. Awk и perl. Программы работы с почтой mail и pine. Основные оконные менеджеры и десктоп- системы. X-терминалы xterm и rxvt. Графические редакторы xfig, tgif, gimp. Просмотрщик графики XnView, ImageMagick, pbmtools. Редактор шрифтов pfaedit. Система верстки TeX. Текстовый процессор AbiWord. Электронные таблицы Gnumeric. Научная графика в Gnuplot и R. Текстовые браузеры lynx и links. Файлер Midnight Commander. Язык PostScript и Ghostscript, система печати в Linux. Просмотрщики PostScript и PDF --- gv и xpdf, pstools. Tcl/Tk и основанные на них графические приложения. Администрирование Linux. Настройка основных компонентов: chkconfig, lsmod, Xconfigurator, sndconfig, lilo, linuxconf. Файл etc/fstab и настройка монтируемых файловых систем. Команда make, скрипт configure. Команда patch. Компиляция программ при помощи gcc. Работа с rpm.