Kodomo

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

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

Работа в классе

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

Если какие-то этапы показались сложными или непонятными, нужно разобраться и повторить их еще раз. Вы должны уметь без затруднений выполнять все операции из упражнений для любых файлов и папок. Не стесняйтесь обращаться к преподавателям за помощью!

Подключение по SSH

Ваша задача – подключиться к серверу kodomo.fbb.msu.ru с помощью консольного клиента ssh, используя свою учетную запись. Вы уже подключались к kodomo аналогичным образом, если выполняли домашние задания.

ssh -p22221 ЛОГИН@kodomo.fbb.msu.ru

Перемещение по дереву директорий

По приглашению командной строки убедитесь, что находитесь на kodomo. Все этапы нужно выполнять последовательно.

  1. Определите абсолютный путь к текущей папке с помощью pwd. Определите содержимое текущей папки с помощью ls. Проверяйте так текущую папку и её содержимое после каждого действия (перемещения, копирования/перемещения/удаления файлов и т.д.), пока не начнете чувствовать себя уверенно.

  2. Переместитесь в корневую папку, потом в подпапку usr, потом в local, потом в lib. Какое имя текущей папки? Сколько в ней вложенных подпапок (подпапки можно отличить от файлов по цвету)?

  3. Переместитесь в папку /lib (начинается со слеша, это абсолютный путь). По содержимому папки убедитесь, что это не та папка, которая была текущей на предыдущем этапе. Короткие имена папок и файлов могут совпадать, если они не лежат в одной папке. А имя (полное, т.е. путь) всегда однозначно идентифицирует файл/папку.

  4. Переместитесь в папку, которая была текущей перед пунктом 3 с помощью одной команды, используя её абсолютный путь.

  5. Перейдите в родительскую папку, используя относительный путь (т.е. ..). Проверьте, что оказались в той папке, которую ожидали.

  6. Переместитесь в папку с коротким именем bin, расположенную в родительской папке (относительно текущей в предыдущем пункте), используя относительный путь. Если после этого вы оказались не в папке /usr/bin, то вы что-то делаете не так, разберитесь!

  7. Перейдите в свою домашнюю папку (это поведение cd в случае отсутствия аргумента).

  8. Попробуйте перейти в несуществующую папку term1/gene (со слеша не начинается, значит это относительный путь) с помощью одной команды. Посмотрите внимательно, какое сообщение появилось в командной строке. Аналогичное сообщение об ошибке всегда будет означать, что вы пытаетесь перейти в несуществующую папку.

  9. Перейдите в папку term1/genome с помощью одной команды, используя абсолютный путь. Было бы проще использовать относительный путь, но это упражнение. Позовите преподавателя, если испытываете сложности с составлением пути.

  10. Перейдите в домашнюю папку одной командой, используя относительный путь. Использовать cd без аргументов в этом пункте запрещено.

  11. Перейдите в папку /usr/local/lib с помощью одной команды по относительному пути. Этот путь, очевидно, будет начинаться с некоторого количества повторений ../ . Используйте автодополнение на <Tab> <Tab>, чтобы ориентироваться прямо в процессе набора команды.

  12. Перейдите в папку /usr/lib с помощью одной команды по относительному пути. Аналогично предыдущему, но значительно проще, можно справиться даже без автодополнения.

Если успели проделать все шаги и ждете остальных, то можете открыть другой терминал и повторить перемещения на локальном компьютере класса, т.е. без входа на kodomo. И попробуйте сравнивать содержимое папок, которые посещаете, между локальным компьютером и kodomo. Есть отличия?

На kodomo хоть и имеются папки с теми же именами, как на компьютерах классов 207/208, но в них другое содержимое. Дерево основных системных папок Linux описано в стандарте, поэтому будет по большей части совпадать на всех компьютерах под управлением этой ОС. Аналогично, на большей части компьютеров с Windows есть диск C:\, на котором, в частности, расположена ОС.

Исключение составляют папки /home, /P и /Z, они экспортируется на компьютеры классов с kodomo для удобства. Поэтому на компьютерах классов это точно те же папки, что и на kodomo. Об этом сообщалось в правилах, которые вы подписывали на первом занятии, помните?

Работа с файлами

  1. Убедитесь, что вы в домашней папке на kodomo. Иначе перейдите в неё. Проверьте её содержимое.

  2. С помощью программы less, не изменяя текущую папку, просмотрите содержимое текстового файла /etc/os-release. Потом аналогично для файла с таким же коротким именем в папке /Z.

  3. Скопируйте файл /etc/os-release в домашнюю папку без изменения короткого имени. Убедитесь, что файл появился в домашней папке. Просмотрите содержимое копии. Убедитесь, что файл os-release остался в папке /etc.

  4. Скопируйте файл /Z/os-release в домашнюю папку без изменения короткого имени. Обратите внимание, что копия нового файла записалась вместо старого os-release (убедитесь, просмотрев содержимое файла). Не появилось никакого os-release(2) или new os-release. Старый файл os-release из вашей домашней папки был удален безвозвратно! Все операции по копированию, переименованию, удалению и изменению файлов в командной строке нужно производить предельно аккуратно!

  5. Скопируйте файл /etc/os-release в домашнюю папку с коротким именем os-release-etc, чтобы повторно не затереть существующий файл os-release. Проверьте наличие и содержимое обеих копий.

  6. Создайте папку temp и переместите файл os-release из домашней папки в нее, оставаясь в домашней папке. Повторите то же с файлом os-release-etc (отредактируйте предыдущую команду, получив её из истории команд, нажав стрелку вверх на клавиатуре).

  7. Находясь в домашней папке, посмотрите содержимое папки temp. Программа ls умеет показывать содержимое любой папки, путь к которой получает в качестве первого аргумента.

  8. С помощью одной команды, не переходя в папку temp, переименуйте (а не скопируйте) файл os-release в папке temp так, чтобы его короткое имя совпадало с вашим пользовательским именем.

  9. Перейдите в папку temp и убедитесь, что все прошло успешно.

  10. Прочитайте краткую справку по программе wc, запустив её с опцией --help без других аргументов.

  11. Примените команду wc к файлу os-release-etc без дополнительных параметров. Что означают выданные программой числа?

  12. Примените команду wc сразу к обоим файлам в папке temp. После чего добавьте в команду опцию, которая позволит вывести только количество строк в файлах. Испробуйте опции -c и -m, чем они отличаются? Какая из этих опций по вашему мнению позволяет точнее оценить размер файла на диске?

  13. С помощью wc посчитайте слова в файле os-release-etc. Что wc считает словами? Перепроверьте ответ, вручную посчитав слова в файле.

  14. Изучите справку к программам head и tail (у этих программ тоже есть опция --help). Примените эти программы к файлу os-release-etc с параметром (опцией) n равным 3. А потом примените их сразу к двум файлам. Поменялся ли формат выдачи? Найдите в справке, как отключить отображение имен файлов у программы head. Есть ли такая же опция у tail?

  15. Вернитесь в домашнюю папку. Удалите папку temp вместе с файлами (сначала удалите файлы, потом пустую папку).

Освоение терминала

В первую очередь нужно научиться понимать приглашение командной строки – определять на каком компьютере и в какой папке вы находитесь, происходит в данный момент ввод команды, или работает какая-то программа и т.д. Краткую справку по приглашению командной строки можно найти здесь.

Далее нужно освоить работу с историей команд (стрелочки вверх и вниз), автодополнение (<Tab> и <Tab> <Tab>), копирование и вставку текста в терминал из буфера обмена (Ctrl+Shift+C и Ctrl+Shift+V).

История команд

  1. Понажимайте стрелочки вверх и вниз и найдите команду для вывода абсолютного пути к текущей папке. Выполните её нажав <Enter>.

  2. Пролистайте вверх штук 10-15 команд. Не выполняя выбранную команду нажмите Ctrl+C. В какое место истории команд вы переместились?

  3. Найдите в истории ближайшую предыдущую команду cd с каким-нибудь аргументом, кроме ... Отредактируйте её так, чтобы она означала переход в родительскую папку. Выполните отредактированную команду на <Enter>.

Автодополнение

  1. Наберите в командной строке hea и, не вводя пробелов и не нажимая <Enter>, нажмите <Tab>. Bash автоматически дополнит название команды head и добавит пробел. Нажмите Ctrl+C, чтобы прервать ввод команды, мы передумали запускать head.

  2. Наберите в командной строке ta и, не вводя пробелов и не нажимая <Enter>, нажмите <Tab>. Ничего не произошло, так как в системе много команд на ta. Нажмите <Tab> два раза подряд, чтобы посмотреть все доступные варианты. Из предложенного списка ничего нельзя выбрать, он только для ознакомления. Продолжайте набирать название команды, пробуя <Tab> и <Tab> <Tab> после каждой следующей буквы.

  3. Наберите в командной строке pw и, не вводя пробелов и не нажимая <Enter>, нажмите <Tab>. Bash дополнил название команды до pwd, но, почему-то, не добавил после него пробел. Нажмите <Tab> два раза, чтобы понять причину. Оказывается, есть еще какая-то pwdx, но эта команда вряд ли вам интересна.

  4. Автодополнение изменяется, в зависимости от контекста. В начале команды bash пытается дополнять названия команд. Если название у команды уже есть, то обычно автоматически дополняются пути к существующим файлам и папкам. Попробуйте ввести cd и набрать в качестве аргумента /P/y26/term1/Tab-and-Arrows_are_your_friends, вводя минимальное число символов с клавиатуры и максимально используя автодополнение на <Tab>. Двойное нажатие на <Tab> очень помогает сориентироваться по предложенным вариантам.

  5. В некоторых (довольно редких) случаях bash умеет автоматически дополнять не только имена команд, файлов и папок, но и другие сущности. Не стоит на это расчитывать. Но, если интересно, можете попробовать, например, ввести head -- и дважды нажать <Tab>.

Копирование и вставка текста

За работу с буфером обмена отвечает не bash, а графическое приложение – эмулятор терминала (который для краткости часто называют просто терминалом). Эта программа всегда запускается на том компьютере, за которым вы физически работаете. Разные эмуляторы терминала сильно отличаются даже в одной операционной системе, не говоря уже о разных. Как копировать и вставлять текст в эмуляторе терминала на домашнем компьютере вам придется разобраться самостоятельно. Спрашивайте гугл и преподавателей. Преподавателей лучше найти тех, которые используют такой же эмулятор терминала (т.е., в первом приближении, ту же ОС).

В компьютерах классов 207/208 эмулятор терминала позволяет выделять текст в терминале мышкой, копировать его с помощью Ctrl+Shift+C в буфер обмена и выкладывать из буфера с помощью Ctrl+Shift+V. Аналогичным образом ведут себя почти все эмуляторы терминалов во всех Linux. Кроме того, в Linux есть дополнительный независимый буфер, текст в который попадает сразу в момент выделения мышкой. Вставить текст из этого буфера можно, нажав на колесико мыши. В терминале этот буфер обмена часто оказывается удобнее, чем основной.

  1. Скопируйте и выполните на kodomo команду base64 -d <<<bHYuZmJiLm1zdS5ydS91amN5Zwo=
    Вам не нужно понимать значение этой команды. Если вы все правильно скопировали и вставили, то команда при исполнении выведет строку, начинающуюся на lv.

  2. Скопируйте выдачу предыдущей команды, откройте в браузере новую вкладку и вставьте скопированный текст в поле адреса, нажмите <Enter>. Если все сделали правильно, во вкладке откроется картинка с иероглифом kodomo.

2026/1/pr3_class (последним исправлял пользователь is_rusinov 2026-09-17 20:10:11)