Учебная страница курса биоинформатики,
год поступления 2024
Упражнения
Перемещение по дереву директорий
Все этапы нужно выполнять последовательно.
Определите абсолютный путь к текущей папке с помощью pwd. Проверяйте так текущую папку после каждого перемещения, пока не начнете чувствовать себя уверенно.
Переместитесь в корневую папку, потом в подпапку usr, потом в local, потом в lib. Какое имя текущей папки? Сколько в ней вложенных подпапок?
Переместитесь в папку /lib. Убедитесь, что это не та папка, которая была текущей на предыдущем этапе. Короткие имена папок и файлов могут совпадать, если они не лежат в одной папке! А имя (полное, т.е. путь) всегда однозначно идентифицирует файл/папку.
- Переместитесь в папку, которая была текущей перед пунктом 3 с помощью одной команды, используя её абсолютный путь.
- Перейдите в свою домашнюю папку.
Попробуйте перейти в несуществующую папку term1/gene с помощью одной команды. Посмотрите внимательно, какое сообщение появилось в командной строке. Аналогичное сообщение об ошибке всегда будет означать, что вы пытаетесь перейти в несуществующую папку.
Перейдите в папку term1/genome с помощью одной команды, используя абсолютный путь. Было бы проще использовать относительный путь, но это упражнение. Если у вас все еще нет этой папки, то создайте её.
Перейдите в папку /usr/local/lib с помощью одной команды по относительному пути.
Перейдите в папку /usr/lib с помощью одной команды по относительному пути.
Подключение к серверу по протоколу SSH
Ваша задача – подключиться к серверу kodomo.fbb.msu.ru с помощью консольного клиента ssh, используя свою учетную запись. Аналогичным образом вы будете подключаться к kodomo для выполнения практикумов по биоинформатике.
После подключения необходимо полностью повторить упражнения по перемещению. Убедитесь, что на kodomo хоть и имеются папки с теми же именами, но в них другое содержимое. Дерево основных системных папок Linux описано в стандарте, поэтому будет по большей части совпадать на всех компьютерах под управлением этой ОС. Аналогично, на большей части компьютеров с Windows есть диск C:\, на котором расположена ОС.
Исключение составляет папка /home, она экспортируется на компьютеры классов с kodomo для удобства. Поэтому на компьютерах классов это точно та же папка, что и на kodomo.
Операции с файлами
- Перейдите в домашнюю папку.
Скопируйте файл /etc/os-release в домашнюю папку. Убедитесь, что файл точно скопирован в нужное место. Убедитесь, что файл os-release остался в папке /etc. Это текстовый файл, можете посмотреть его с помощью пейджера (т.е. программы постраничного просмотра) less.
Создайте папку temp и переместите файл os-release в нее, оставаясь в домашней папке.
Переименуйте файл os-release, назовите его своим пользовательским именем. Это нужно сделать одной командой, не переходя в папку temp.
Перейдите в папку temp и убедитесь, что все прошло успешно. Вернитесь в домашнюю папку.
Посмотрите размер уже переименованного файла os-release.
Прочитайте мануал к команде wc. Примените команду wc к переименованному файлу os-release без дополнительных параметров. Что получилось?
С помощью команды wc с подходящей опцией выведите количество строк в переименованном файле os-release. Убедитесь, что ответ правильный.
С помощью команды wc с подходящей опцией выведите количество слов в переименованном файле os-release. Убедитесь, что ответ правильный. Что считается за слова?
Удалите папку temp вместе с файлом (сначала файл, потом пустую папку).
Перейдите в папку term1/genome. Не выходя из этой папки создайте новую папку temp в домашней директории.
Опять скопируйте файл /etc/os-release в папку ../../temp, сразу изменив его короткое имя на tmp.txt, не изменяя текущую папку. Этот пункт нужно выполнить с помощью одной команды cp, задав ей правильные пути в качестве аргументов.
Все еще находясь в папке genome, убедитесь, что копирование прошло успешно с помощью ls, откройте скопированный файл с помощью less.
Переместите и переименуйте папку temp, чтобы она лежала внутри папки term1 и имела короткое имя pr3.
Изучите мануалы к программам head и tail. Примените эти команды к файлу tmp.txt с параметром n, установите значение параметра n, равное 3.
Удалите файл tmp.txt.
Повторите все этапы, которые вызвали затруднения.
Чтение документации
Прочитайте раздел DESCRIPTION справочной страницы в системе man про саму себя (man man). Вам надо разобраться, как в справочных страницах устроен раздел SYNOPSIS, какие в нем используются обозначения. Убедитесь, что у вас получается понять SYNOPSIS страниц man для программ ls, cp, mv, rm и rmdir.
Если все сделали и не знаете, чем заняться, то поизучайте программу less. Разберитесь, как заставить её обрезать (chop), а не переносить (wrap) длинные строки; как отобразить номера строк; как переключать отображение номеров строк и обрезку длинных строк во время интерактивной работы с less. Еще очень полезно научиться производить поиск при просмотре текста в less. Разберитесь, как найти следующее вхождение какого-то слова. А как найти предыдущее?
Обязательные задания
Мягкий дедлайн – 01:00 AM 27 сентября, жесткий дедлайн – 01:00 AM 4 октября. При записи на проверку номер практикума – 3. Обязательно нужно указать URL wiki-страницы с отчетом. Проверять буду наличие правильных файлов в папке ~/term1/credits (см. задание 1) и wiki-страницу с описанием опций программы ls (см. задание 2).
0. Перемещение между папками – успеть за 90 секунд
Для начала испытания нужно подключиться к kodomo по SSH. За 90 секунд вам надо успеть поочередно сделать активными десять перечисленных ниже папок. В каждой из папок требуется выполнить команду check_wd для подтверждения. Если активная папка при выполнении этой команды неверная, то таймер сбрасывается, и все папки нужно посетить заново. В случае успешного прохождения испытания появится зеленая мигающая надпись SUCCESS.
Папки:
- домашняя директория
term1 в домашней директории
term1/credits
- корневая директория
/P/y24/term1/use_TAB_to-autoсomp1ete-1oong-names
/usr/bin
снова ~/term1
опять /P/y24/term1/use_TAB_to-autoсomp1ete-1oong-names
и снова ~/term1
- родительская папка для текущей папки из предыдущего пункта
Прохождение испытания требуется для зачета практикума, но не приносит баллов. Исключением является первый студент, которому на момент мягкого дедлайна потребовалось для прохождения испытания (не обязательно первого успешного) не более секунд, чем любому из однокурсников. Этот студент получает +1 бонусный балл к практикуму №3.
Первый, кто справится с испытанием быстрее, чем за одну секунду, получит зачет за практикум №3 с максимальным баллом без выполнения обязательных заданий. Предложение актуально только до мягкого дедлайна.
Это не шутка! К концу блока каждый из вас должен быть в состоянии такое провернуть
— ИР
1. Операции с файлами
В папке /P/y24/term1/use_TAB_to-autoсomp1ete-1oong-names на kodomo лежат файлы, короткие имена которых состоят из одной строчной латинской буквы. Вам необходимо:
создать папку ~/term1/pr3, если её еще нет;
- составить список из пяти разных латинских букв, встречающихся раньше остальных в вашем логине на kodomo (если в нем всего менее пяти букв, остальные возьмите из начала алфавита);
скопировать по очереди (порядок копирования не важен) пять файлов из упомянутой ранее папки со страшным названием в папку ~/term1/pr3;
для каждого файла определить, какой у него формат (с помощью программ file и less) и размер в байтах (с помощью du -b или ls -l);
переименовать файлы так, чтобы они имели короткие имена file_NUMBER.EXTENSION, где NUMBER – это номер файла по размеру, самый маленький должен иметь номер 1, самый большой – номер 5; a EXTENSION – это расширение, соответствующее формату файла, одно из приведенного ниже списка. Примеры имен: file_1.py, file_2.fasta, file_3.csv, file_4.jpeg, file_5.pdb.
создать папку ~/term1/credits и переместить в нее готовые файлы из pr3. Проверяться будет наличие правильных файлов с правильными именами именно в этой папке. В ней не должно быть никаких посторонних файлов или папок!
Выбор букв для задания однозначен! Например, если ваш логин mmib22, то вы должны использовать буквы m, i, b, a и c.
Возможные расширения и соответствующие им форматы файлов (гарантируется, что каждый файл имеет один из перечисленных форматов):
- fasta
- файл с последовательностями (нуклеотидными или белковыми) в формате FastA (см. вводную лекцию);
- png
- изображение в формате PNG;
- jpeg
- изображение в формате JPEG;
- py
- скрипт на языке Python;
- pl
- скрипт на языке Perl;
- sh
- скрипт командной оболочки (shell);
- html
- HTML-страница;
- pdb
- текстовый файл с координатами атомов биологической молекулы в формате Protein Data Bank;
- gz
- файл, сжатый с помощью программы gzip;
- xml
- текстовый файл с данными в формате XML;
- stk
- выравнивание последовательностей в формате Stockholm;
- hmm
- HMM-профиль в формате пакета HMMER;
- csv
- текстовая таблица в формате CSV (comma-separated values) – ячейки текста разделяются запятыми, строчки – символом переноса строки.
Программа file плохо умеет определять форматы текстовых файлов. Часто о них вам придется догадываться самостоятельно, просматривая файлы с помощью less.
2. Чтение документации
Прочитайте справочную страницу man о программе ls. У этой программы множество разных опций. Понять их все у вас вряд ли получится, это не требуется. Требуется выбрать три опции, которые вы поняли, и описать в отчете. Опцию -l выбирать нельзя, она приведена ниже в качестве примера.
Отчет – это wiki-страница с адресом https://kodomo.fbb.msu.ru/wiki/Users/ваш-логин/pr3. Страница должна иметь адекватный заголовок (например, "Практикум 3") и оформление (см. ниже). Должно присутствовать краткое введение, сообщающее читателю, чему посвящена эта страница. Текст должен быть понятен случайному посетителю, не знающему, где можно прочитать задание.
Чтобы создать новую wiki-страницу нужно попытаться открыть эту страницу браузером (т.е. ввести в адресную строку браузера URL не существующей пока страницы и нажать <Enter>). Появится сообщение о том, что страницы не существует, которое будет содержать предложение её создать. При переходе по соответствующей ссылке вы окажетесь в уже знакомом редакторе wiki-страниц. Если вместо этого вы видите сообщение, что у вас недостаточно прав, то либо вы забыли залогиниться в систему wiki kodomo, либо указали неправильный URL (не любые страницы вам позволено создавать).
Для каждой из выбранных опций должно быть приведено её название (короткое и/или длинное), краткое описание назначения этой опции, и приведен пример использования: команда и выдача с указанной опцией, без нее и описание произошедших изменений.
Описание опции -l (пример оформления).
Опция -l позволяет кроме короткого имени вывести также дополнительную информацию о каждом файле/папке.
Без указания опции ls выводит только короткое имя каждого элемента внутри интересующей директории.
kodomo:~$ ls folder/
dir1 file.txt folder2
file.tmp file.tar.gz
kodomo:~$
Если указать опцию -l, то выдача оформляется в виде таблицы, каждая строка которой соответствует элементу из директории. В таблице содержится информация о владельце файла, его размере в байтах, дате последнего изменения, а также прочая информация, значение которой я пока не понимаю.
kodomo:~$ ls -l folder/
total 12
drwxr-xr-x 4 test24 year-24 4096 Mar 28 2020 dir1
-rw-r--r-- 1 test24 year-24 1 Mar 28 2020 file.tmp
-rw-r--r-- 1 test24 year-24 80132 Apr 3 2019 file.tar.gz
-rw-r--r-- 1 test24 year-24 1231 Mar 20 2021 file.txt
drwxr-xr-x+ 2 test24 year-24 4096 Mar 27 2020 folder2
kodomo:~$
Вы можете посмотреть разметку (т.е. код) любой wiki-страницы на kodomo. Для этого в меню нужно выбрать "More Actions" -> "Raw Text", или добавить ?action=raw к URL страницы в адресной строке.