Учебная страница курса биоинформатики,
год поступления 2023
Упражнения в классе
Чтение документации
Прочитайте раздел DESCRIPTION справочной страницы в системе man про саму себя (man man). Вам надо разобраться, как в справочных страницах устроен раздел SYNOPSIS, какие в нем используются обозначения. Убедитесь, что у вас получается понять SYNOPSIS страниц man для программ ls, cp, mv, rm и rmdir.
Перемещение
Все этапы нужно выполнять последовательно.
Определите абсолютный путь к текущей папке с помощью pwd. Проверяйте так текущую папку после каждого перемещения, пока не начнете чувствовать себя уверенно.
Переместитесь в корневую папку, потом в подпапку usr, потом в local, потом в lib. Какое имя текущей папки? Сколько в ней вложенных подпапок?
Переместитесь в папку /lib. Убедитесь, что это не та папка, которая была текущей на предыдущем этапе. Короткие имена папок и файлов могут совпадать, если они не лежат в одной папке! А имя (полное, т.е. путь) всегда однозначно идентифицирует файл/папку.
- Переместитесь в папку, которая была текущей перед пунктом 3 с помощью одной команды, используя её абсолютный путь.
- Перейдите в свою домашнюю папку.
Перейдите в папку term1/gene с помощью одной команды, используя абсолютный путь. По относительному пути было бы значительно проще, но это упражнение! Смогли ли вы это сделать? Посмотрите внимательно, что появилось в командной строке.
- Перейдите в папку term1/genome с помощью одной команды, используя абсолютный путь. Если у вас все еще нет этой папки, то создайте её.
Перейдите в папку /usr/local/lib с помощью одной команды по относительному пути.
Перейдите в папку /usr/lib с помощью одной команды по относительному пути.
Операции с файлами
- Перейдите в домашнюю папку.
Скопируйте файл /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.
Повторите все этапы, которые вызвали затруднения.
Если все сделали и не знаете, чем заняться, то поизучайте программу less. Разберитесь, как заставить её обрезать (chop), а не переносить (wrap) длинные строки; как отобразить номера строк; как переключать отображение номеров строк и обрезку длинных строк во время интерактивной работы с less. Еще очень полезно научиться производить поиск при просмотре текста в less. Разберитесь, как найти следующее вхождение какого-то слова. А как найти предыдущее?
Обязательные задания
Мягкий дедлайн – 01:00 AM 29 сентября, жесткий дедлайн – 01:00 AM 6 октября. При записи на проверку указывайте URL wiki-страницы с отчетом. Проверять буду наличие правильных файлов в папке ~/term1/credits (см. задание 1) и wiki-страницу с описанием опций программы ls (см. задание 2).
Следующее занятие опять начнется с небольшой контрольной, просьба не опаздывать.
1. Операции с файлами
В папке /P/y23/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. Проверяться будет наличие правильных файлов с правильными именами именно в этой папке. В ней не должно быть никаких посторонних файлов или папок!
Возможные расширения и соответствующие им форматы файлов (гарантируется, что каждый файл имеет один из перечисленных форматов):
- 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 test23 year-23 4096 Mar 28 2020 dir1
-rw-r--r-- 1 test23 year-23 1 Mar 28 2020 file.tmp
-rw-r--r-- 1 test23 year-23 80132 Apr 3 2019 file.tar.gz
-rw-r--r-- 1 test23 year-23 1231 Mar 20 2021 file.txt
drwxr-xr-x+ 2 test23 year-23 4096 Mar 27 2020 folder2
kodomo:~$
Вы можете посмотреть разметку (т.е. код) любой wiki-страницы на kodomo. Для этого в меню нужно выбрать "More Actions" -> "Raw Text", или добавить ?action=raw к URL страницы в адресной строке.
Все справочные страницы в системе man распределены по секциям, в зависимости от того, что эти сраницы описывают. Вас почти исключительно будут интересовать страницы из секции №1, в этой секции расположены руководства по пользовательским программам.
Будет не лишним ознакомиться с "введением" по этой секции. Для этого следует выполнить команду man 1 intro (1 – номер секции, в которой нужно искать справочную страницу, а intro – её название).
Каждая справочная страница man о программе имеет фиксированную структуру – в частности, всегда есть раздел NAME, содержащий название и однострочное описание программы; раздел SYNOPSIS, котором указана схема команды для запуска программы с указанием возможных аргументов; раздел DESCRIPTION, который содержит краткое описание предназначения программы, её опции и прочую информацию, касающуюся использования программы.
В разделе SYNOPSIS, как правило, используются следующие рекомендованные обозначения:
курсив или подчеркнутый текст (отображение зависит от возможностей терминала) – эту часть команды надо заменить на нужное значение;
жирный или более яркий текст (не все терминалы умеют отображать, обычно это все, кроме курсива) – эта часть команды должна быть буквально такой, как указано;