На зачёте по UNIX будут примерно такие задачи:
Из каждого раздела будет ровно один вопрос, кроме раздела про шелл и утилиты командной строки – из него три вопроса.
SSH
- Продемонстрируйте умение создавать пару ключей, загружать их в агента, пользоваться ими
Что такое ~/.ssh/known_hosts?
- X11: Продемонстрируйте умение запускать графическое приложение через ssh.
Wiki
- Покажите страничку на вики, сделанную вашими руками или сделайте страничку
Vi/Vim
- С помощью vim нарисуйте шахматную доску. Нарисуйте рамку вокруг шахматной доски.
В /P/SpecialCourses/Unix/bugs.txt лежит текст с ошибками. Скопируйте текст к себе, и поправьте в нём ошибки. На исправление ошибок после запуска vim нужно уложиться в 20 нажатий на кнопки (включая навигацию по файлу). Для этого, наверное, потребуется иметь правильно настроенным langmap и параметры кодировок (enc, fencs).
- С помощью vim удалить все пробелы в концах строк в файле
- С помощью vim выровните данный кусок текста по центру с заданной шириной строки
Tmux/screen
- Создайте новую сессию tmux или screen; создайте в ней несколько окон; отсоединитесь от сессии; присоединитесь к сессии; переключитесь на предпоследнее (хронологически) открытое окно.
Терминалы
- Дана ситуация с ssh и кодировками русского языка. Требуется добиться понятного поведения.
- Что делает ctrl-Z? Что делает ctrl-C?
- Какие есть магические кнопки в терминале. Когда какие из них работают, когда какие из них нет? (Сигналы, редактирование строки, ввод специальных символов; cooked mode vs. raw mode)
Шелл и утилиты командной строки
- Дана директория с файлами *.ent; переименовать их в *.pdb
- Переименовать все файлы в директории: сделать все буквы строчными (или наоборот, заглавными)
- Удалить все файлы с расширением *.ent, если существует одноимённый файл с расширением *.pdb
- Удалить все файлы с расширением *.pyc или *.bak в текущей директории и всех поддиректориях
Удалить файл с названием -rf * или -foo
- Расскажите, кто что может делать с вашей домашней директорией?
- У вас оказалась директория, в которой и содержимом которой, никому, кроме вас нет прав на чтение-запись-исполнение. Как сделать эту директорию открытой?
Напишите скрипт, который получает с командной строки два числа – номера строк, – со стандартного ввода – файл, и на стандартный вывод выдаёт файл в диапазоне от первого номера строки до второго
Напишите скрипт hello.sh, который печатает "Good Morning", "Good Afternoon" или "Good evening" в зависимости от времени суток.
- Найдите в директории и поддиректориях все файлы, содержащие windows-style переносы строк. Переправьте их на unix-style.
- Выведите имена (не пути) всех pdb-файлов в вашей домашней директории, выводите имя каждого файла не более одного раза.
- Скажите размер своей домашней директории
- FIXME: Чего-нибудь про ln
- FIXME: Чего-нибудь про то, как убить процесс
- FIXME: Чего-нибудь про fg, bg
Поиск документации
- Какие есть разделы в man? (Или как это узнать)
- Чем различаются команды info, man и help? (Интерфейс; содержимое)
- Какие программы установлены на kodomo для работы с последовательностями?
- Как в less найти строку в файле (по слову в ней)? Как после этого сказать less, чтобы он не подсвечивал эту строку везде?