Version 1/3 - Next » - Current version
Arthur Zalevsky, 09.02.2017 17:02


Домашнее задание

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

  1. Вход на удаленный сервер любым удобным для вас инструментом
  2. Команды:
    • pwd, ls (особенно ls -l!), cd, mkdir, rmdir
    • echo, cp, mv, more, less, cat, rm, wc
    • grep
    • man
    • history
    • exit
  3. Пути:
    • Специальные пути: /, .., ., ~
    • Что такое абсолютный и относительный пути к файлу или директории
  4. Операторы перенаправления потоков:
    • >, >>, |
  5. Спецсимволы в масках имен файлов:
    • *, ?,
    • экранирование спецсимволов (например, \* или так '*'), [0-9]
  1. Приемы эффективной работы:
    • tab
    • history
    • стрелки вверх и вниз
Задания

=== 0. Тренировочные задания в классе ===

1. Подключитесь к любому из устройств с GNU/Linux
 * Сервер kodomo.fbb.msu.ru
 * Raspberry PI (user: fbbstudent, password: fbbstudent)
 * Ноутбук Артура (user: fbbstudent, password: fbbstudent)
1. Выполните базовые команды: * whoami, who, finger * pwd, ls (c опциями) * cd, mkdir, rm * touch, echo * cp * less, vim
1. Корректно завершите сессию: * exit

{{{#!wiki warning

Результатом выполнения практикума является файл kodomo.fbb.msu.ru:~/term2/linux/credits/<username>_was_here.txt (~ - ваша домашняя директория, не перепутайте!)

}}}

{{{#!wiki comment
''Подсказка от ААл.'' Лучший учебник для новичка - google! Например, набираете linux rm и получаете хорошие ссылки на русском языке. Конечно, Артур вас и меня побьёт за использование таких подсказок)))

''Комментарий от АЗ'' На слайде про источники помощи, гугл даже выше коллег! Но после man, конечно же.
}}}

=== 1. Подключитесь к серверу kodomo.fbb.msu.ru ===

Для подключения к серверу kodomo.fbb.msu.ru из:

  • Windows:

Воспользуйтесь программой [[ https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe | PuTTY ]].

{{{
Host Name: kodomo.fbb.msu.ru
Port: 22
Connection type: SSH
}}}

Графические инструкции можно найти в лекции.

  • GNU/Linux, OS X, etc

{{{
ssh <username>@kodomo.fbb.msu.ru
}}}

{{{#!wiki warning

Умение подключаться из Windows при помощи Putty обязательно

}}}

=== 2. Создайте директорию ~/term2/linux/pr7 и перейдите в нее ===

Сначала осмотритесь. Команда pwd [[ http://citforum.ru/operating_systems/manpages/PWD.1.shtml | (man pwd) ]] покажет вам в какой вы директории. Команда ls [[ http://citforum.ru/operating_systems/manpages/LS.1.shtml | (man ls) ]]покажет список файлов и поддиректорий в этой директории.

Используйте команды mkdir [[ http://citforum.ru/operating_systems/manpages/MKDIR.1.shtml | (man mkdir) ]] и cd [[ http://citforum.ru/operating_systems/manpages/CD.1.shtml | (cd) ]]. Например, так.

{{{#!wiki comment

  • '''`mkdir term2`''' (в текущей директории создается поддиректория term2)
  • '''`ls`''' (чтобы проверить что получилось)
  • '''`cd term2`''' (перейти в term2; другими словами, сделать term2 текущей директорией; текущую директорию называют также рабочей)
  • '''`pwd`''' (проверить, что получилось)
  • '''`mkdir linux`''' и т.д.

}}}

Чтобы не тратить время на набор лишних символов чаще используйте клавишу Tab (табулятор).

=== 3. Скопируйте файлы с расширением txt из директории /P/y15/term2/Block2/some_strange_files в директорию pr7 ===

Для копирования файлов воспользуйтесь командой cp [[http://citforum.ru/operating_systems/manpages/CP.1.shtml | (man cp)]]

В простейшем виде синтаксис команды выглядит следующим образом: '''`cp <файл> <имя копии файла>`'''. Внимательно отнеситесь к описанию путей к файлам.

Но копировать файлы по одному достаточно непрактично. Оптимизируйте эту операцию при помощи файловых масок (регулярных выражений).

Проверьте, что получилось (команды ls и less).

Если, случайно, вы скопировали не только нужные файлы, то удалите лишние при помощи команды '''`rm <имя файла>`'''. Вместо имени файла можно написать маску имен файлов. '''Будьте аккуратны!''' Корзины и операций восстановления в файлов в GNU/Linux нет. Для перестраховки используйте вызов '''`rm -i`''' или '''`rm -I`'''. Прочитайте в мануале [[ http://citforum.ru/operating_systems/manpages/RM.1.shtml | (man rm)]] за что отвечают эти опции.

=== 4. Определите уникальное содержимое файлов из предыдущего задания ===

Вывести содержимое файлов можно при помощи команды '''`cat <one_file> <or_more_files>`'''. [[ http://citforum.ru/operating_systems/manpages/CAT.1.shtml | (man cat) ]]

Отфильтровать уникальное содержимое можно при помощи команды '''`uniq`''', только внимательно прочтите документацию [[ http://citforum.ru/operating_systems/manpages/UNIQ.1.shtml | (man uniq)]] к программе перед ее использованием.

Для передачи выдачи одной программы на вход другой воспользуйтесь конвейером ( он же "пайп", знак `|`), например так: '''`cat smth | uniq`'''.

=== 5. Создайте директорию term2/linux/credits и в ней файл с отчетом <username>_was_here.txt ===

В файл отчета <username>_was_here.txt внесите следующие строки:

'''Первая строка:''' "absolute path to credits dir"

Используйте команду echo <строка>. Когда освоитесь с ней -- перенаправьте ее выход в файл оператором ">": echo <строка> > <имя файла>

'''Вторая строка:''' сам путь.

Используйте оператор ">>" для дописывания в конец файла

Далее добавьте в этот файл команду, которую вы использовали для копирования файлов по маске.

Далее добавьте в этот файл результат выполнения задания 4 и команду, при помощи которой вы его получили.

Проверьте содержимое файла командой less <имя файла>. Выход "q". Проверьте, появилось ли приглашение командной строки bash: "....$ " .

=== Для штатного выходы из linux выполните команду `exit` === {{{#!wiki warning
Если команда `exit` не выполнена, а вы закрываете окно, то список выполненных за сеанс команд не запоминается. Значит, при следующем заходе команда history не вспомнит об этих командах.
}}}
--------