Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2014

Разбор контрольной по линуксу

Разберем по шагам, как надо было выполнить контрольную 6 по теме "Линукс".

Зайти на kodomo через Putty

Найдите в меню программу Putty, введите имя хоста kodomo.fbb.msu.ru, нажмите Open. Введите свой логин. Нажмите Enter. Введите ваш пароль и нажмите Enter. Обратите внимание, что при вводе пароля курсор будет стоять на месте и никакие символы не будут появляться.

Зайти в папку с целевыми файлами

Выполните команду:

$ cd папка

где папка - это папка с целевыми файлами, например "/home/export/samba/public/y14/term2/linux/cw6a". Убедитесь, что вы правильно написали имя папки с файлами!

Составить маску имён файлов согласно заданию

В маске могут встречаться звёзды (*) и знаки вопроса (?). Звёзды означают любое количество (в том числе 0) произвольных символов. Знак вопроса означает ровно один произвольный символ.

Пример: "g?*1.fasta" - файлы, имя которых начинается на g, после чего следует хотя бы один произвольный символ, после чего следует цифра 1 и ".fasta" - расширение файла.

В последующих примерах мы будем использовать эту маску.

В зависимости от задания извлечь из файлов определенную информацию

# число таких файлов
ls g?*1.fasta | wc -l

# суммарное число строк в таких файлах
cat g?*1.fasta | wc -l

# число строк, содержащих TAAGG, из этих файлов
grep TAAGG g?*1.fasta | wc -l

Есть и другие способы решения. Если вы не понимаете, как были составлены эти команды, обратитесь к команде man, google и к следующим ссылкам:

[лекция] [задания] [подсказки] [справка по linux на kodomo]

[учебник по linux для начинающих (рус.)]

[учебник по linux для начинающих (рус.)] (если видна абракадабра, то кодировку кириллицы KOI8-R выставляйте вручную!)

Регулярные выражения для grep

Изготовить скрипт, выполняющий те же действия автоматически

В задании указан полный путь к скрипту, который вам предстоит создать. Откройте этот файл своим текстовым редактором и сохраните в него команды, которые вы вводили. (Если вы ошибались в командах, то такие команды не надо вводить.)

Пример:

#!/bin/bash
cd /home/export/samba/public/y14/term2/linux/cw6
ls g?*1.fasta | wc -l

Не забудьте shebang (#!/bin/bash).

Убедитесь, что файл скрипта сохранен с юниксовыми концами строк, а не с виндовыми. Это можно сделать с помощью FAR. Если скрипт будет с виндовыми концами строк, он, скорее всего, не будет работать.

Проставьте на скрипте x-бит, чтобы сделать его исполняемым:

$ chmod +x скрипт

Зайдите в папку со скриптом и запустите его, чтобы проверить, что он работает и выдаёт тот же результат, который вы получали при ручном вводе команд:

$ ./скрипт
42

Скрипт должен выдавать строго требуемый ответ, который во всех заданиях представляет собой число. Никаких дополнительных сообщений печатать не надо, это затрудняет проверку.

Убедитесь, что правильно назвали скрипт! Регистр букв в имени файла имеет значение. Проверяться будут только скрипты, названные точь-в-точь как написано в задании.

Про переписывание 7 апреля

Результаты переписывания, которое состоялось 7 апреля, опубликованы на листе "linux-cw6a" ведомости. Всего было подготовлено два набора входных данных для скриптов: 1 и 2. Во время контрольной в папке /home/export/samba/public/y14/term2/linux/cw6a лежал набор данных 1, а после контрольной он был заменён на набор данных 2, а набор данных 1 был перемещён в папку /home/export/samba/public/y14/term2/linux/cw6a-orig. Набор данных 2 не демонстрировался студентам до завершения контрольной. Набор данных 2 нужен для исключения возможности сдачи скрипта, в который просто зашит правильный ответ.

Скрипты прогнали против обоих наборов данных (результаты помещены в колонки set1-observed и set2-observed) и сравнили ответы с правильными ответами (колонки set1-expected и set2-expected). Если скрипт выдал правильные ответы на обоих наборах данных, то контрольная оценивалась положительно, а иначе оценивалась нулем баллов. К сожалению, мало кто может похвастать положительным результатом.

Вниманию студентов, которые не справилась с переписыванием контрольной!

Разберитесь, как же нужно было решать контрольную. Вам в помощь в том же листе опубликованы правильные ответы. В связи с этим, дорешенные контрольные приниматься не будут - вам придётся переписывать ещё раз. Если вы всё же не понимаете, как надо было решать контрольную, или не согласны с вердиктом, пишите на bnagaev@gmail.com