Kodomo

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

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

Упражнения

Упражнения обязательно нужно выполнить полностью. Но в отчете их отражать не нужно.

  1. Создать папку ~/term1/pr4, дальше все делайте в этой папке.

  2. Создать папку temp и скопировать в неё файлы из /P/y22/term1/strange_f1les, короткие имена которых содержат либо строчную m, либо заглавную Z, либо цифру 6 (одной командой). Гарантируется, что в папке strange_f1les нет подпапок, короткие имена которых содержат перечисленные символы.

  3. Перейти в папку и посмотреть сколько файлов скопировалось. Должно быть 9. Удалите папку temp вместе со всем содержимым, если все прошло успешно.
  4. С помощью echo определить, во что bash превращает {a,b,c} внутри аргументов перед запуском программы.

  5. Сколько аргументов получит программа echo при выполнении команды echo 1{a..f}2?

  6. Как сделать так, чтобы команда echo {1,2,3} вернула просто {1,2,3}? Сколько символов для этого нужно добавить в команду? Можно ли обойтись одним символом?

  7. Как с помощью команды echo вывести короткие имена файлов и папок внутри текущей директории?

  8. А теперь то же самое, но вместе со скрытыми файлами и папками (их имена начинаются на точку). Для проверки этой и следующей команд советую находиться в домашней директории, там скрытые файлы и папки есть.
  9. А как вывести только те короткие имена, которые не короче 4 символов? (надо чуть-чуть подумать)

Задания практикума 4

Не нужно делать wiki-страницу с "отчетом". Проверять буду только файлы на kodomo. При записи в очередь вместо URL указывайте прочерк.

Внимание, некоторые пункты заданий (все, где это возможно) будут проверяться автоматически! Поэтому внимательно отнеситесь к именам, расположению и содержанию файлов. Если автоматические тесты не будут пройдены, придется переделывать с потерей баллов. Содержательная часть проверяется только в отчетах, прошедших автоматическую проверку.

Мягкий дедлайн – 01:00 AM 1 октября, жесткий дедлайн – 01:00 AM 15 октября. После мягкого дедлайна штраф 0.5 балла, после жесткого – 2 балла.

1. Копирование файлов на удаленный компьютер

Цель задания: научиться использовать SFTP (или SCP) клиент.

Вам нужно загрузить в папку ~/term1/credits свою фотографию в формате JPEG с домашнего компьютера. Назвать файл нужно photo.jpg. Фотография не будет общедоступной, её смогут увидеть только преподаватели. Нужно это для увеличения вероятности того, что мы начнем узнавать вас в лицо. Но если вы все-таки по какой-то причине не хотите нам показывать свою фотографию, то можете положить любую (в рамках приличия :) ) картинку в формате JPEG. Баллы снимать за это не будем.

Если у вас есть доступ к какому-то компьютеру по SSH, то, как правило, доступны еще протоколы удаленного копирования файлов SCP и SFTP. Для работы с этими протоколами в Windows 10 и всех современных Unix-подобных системах существуют встроенные консольные клиенты scp и sftp.

scp работает по аналогии с cp, но понимает дополнительный вид имен файлов – имена на удаленных машинах. Пример: user@host.na.me:file1 – путь к файлу file1, который лежит в домашней папке пользователя user на удаленной машине с доменным именем domain.na.me. В качетве имени файла можно указывать любой путь относительно домашней папки пользователя, или абсолютный путь к файлу (тогда сразу после : будет /). Совет: не пытайтесь скопировать файл с одной удаленной машины на другую удаленную машину (т.е. использовать расширенный синтаксис имени файла сразу и в качестве SOURCE, и в качестве DEST). В теории это возможно, но только при подключении по SSH в режиме без паролей, а вы так не умеете.

sftp работает иначе. Это интерактивная программа. После её запуска вы окажетесь в сеансе связи по SFTP. Вам будут доступны команды для перемещения одновременно на удаленной и локальной машинах (cd и lcd), для определения текущей папки (pwd и lpwd) и получения списка файлов (ls и lls). И главное, в вашем распоряжении команды put и get. Первая позволяет скопировать файл из текущей папки на локальном компьютере в текущую папку на удаленном, а вторая – в обратном направлении. Для выхода из сеанса SFTP предусмотрена команда exit (или quit, или bye, это синонимы). А команда help выводит список доступных команд с кратким описанием.

Советую попробовать обе программы и выбрать подход, который вам ближе. Самое важное при использовании sftp и scp – определиться, на каком из компьютеров их запускать! Помните, что вам нужна возможность подключения к удаленному компьютеру по SSH. Поэтому вы не сможете скопировать файл на kodomo со своего домашнего компьютера, запустив программу на kodomo. У вашего компьютера, скорее всего, нет доменного имени (или публичного IP), и на вашем компьютере не запущен SSH-сервер, необходимый для подключения. Поэтому для копирования файла с домашнего компьютера на kodomo запускать sftp/scp нужно на домашнем компьютере, а не на kodomo.

2. Копирование файлов с удаленного компьютера

Цель задания: научиться использовать SFTP (или SCP) клиент.

  1. В папке /P/y22/term1/images найдите файл, названный вашим пользовательским именем, и скопируйте его в директорию ~/term1/pr4.

  2. Переименуйте его в Xxxx_image.jpeg, вместо Xxxx подставьте вашу фамилию латинскими буквами. Можно задать новое имя сразу во время копирования, т.е. в предыдущей команде.

  3. Переместите переименованный файл в директорию ~/term1/credits.

  4. Cкопируйте файл на свой компьютер с помощью SFTP или SCP клиента.
  5. Откройте файл на своём компьютере какой-нибудь программой просмотра изображений. Содержимое картинки нужно будет описать в файле отчета (задание 4).

3. Использование файловых масок

Цель задания: научиться составлять маски имен файлов и экранировать специальные символы. И еще раз потренировать операции с файлами и автодополнение имен.

Вам нужно скопировать все файлы, короткие имена которых содержат символ *, из папки /P/y22/term1/even_m0re_stran​ge_files в папку ~/term1/pr4. В названии папки есть несколько опечаток (даже не пытайтесь их исправлять), чтобы вы не вводили адрес руками, а использовали автодополнение имен на <Tab>.

Один из скопированных вами файлов содержит русскую букву у вместо английской y. Ваша задача – переместить этот файл в папку ~/term1/credits с изменением короткого имени на pr4.bin. Не нужно предварительно пытаться определить, что это за файл. Всё в этом абзаце нужно сделать одной командой (важно, что такой файл один, это гарантируется, если вы скопировали правильные файлы в папку pr4).

Настоятельно рекомендую все проделать честно и самостоятельно, чтобы действительно разобраться в файловых масках. Аналогичное задание будет на мини-контрольной в начале следующего занятия и в большой контрольной в конце блока.

4. Редактирование файлов

Цель задания: научиться использовать консольный текстовый редактор. А заодно познакомиться с программой file и потренироваться в чтении мануалов.

Первым делом вам нужно прочитать раздел DESCRIPTION справочной страницы man file. Там довольно много всяких технических деталей, не нужно понимать все, что там написано. Но нужно ответить на приведенные ниже вопросы. Ответы должны быть полные, но лаконичные. Не нужно по каждому пункту писать сочинение.

Ответы нужно записать в файл ~/term1/credits/pr4.txt с помощью консольного текстового редактора (рекомендую nano, но можете использовать mcedit или vim). Файл нужно сохранить с кодировкой концов строк в формате старых Mac OS, т.е. символом CR (это будет проверено автоматически).

Изменить кодировку концов строк в nano можно во время сохранения файла. Как это сделать описано во встроенной помощи редактора. Она вызывается сочетанием клавиш Ctrl+G, это указано в нижней части экрана. У экрана сохранения файла есть своя справка, как менять кодировку концов строк указано именно в ней. Разберитесь, как все это работает, на контрольной времени на это уже не будет. Если решили использовать другой редактор, то нужно самостоятельно освоить аналогичные функции.

Ответ на каждый вопрос не должен быть больше одного абзаца текста. Ответы должны идти в том же порядке, что и вопросы. Ответы нужно разделить одной пустой строкой. Нумеровать ответы не нужно.

  1. Что изображено на картинке, которую вы скачали себе с kodomo?
  2. Сколько разных типов тестов применяет программа file для определения типа (формата) файла?

  3. Возможно ли научить file узнавать новые форматы файлов, или для этого придется переписывать его код?

  4. Пытается ли file определить, на каком "человеческом" языке (например, русский, английский, клингонский) написан текстовый файл?

  5. *Как в определении формата программой участвует расширение (часть короткого имени файла после последней точки)? Прямо это не написано, но должно стать понятно из общего алгоритма работы программы. Ответ на этот вопрос для зачета не нужен.

Если чтения мануала оказалось недостаточно для ответа на эти вопросы, можете поискать информацию в других источниках. Но, на самом деле, вся необходимая информация присутствует в разделе DESCRIPTION.

2022/1/pr4 (последним исправлял пользователь is_rusinov 2022-10-14 11:33:26)