Adbm2017 pr2

Version 1 (Arthur Zalevsky, 09.02.2017 17:02) → Version 2/3 (Arthur Zalevsky, 09.03.2017 18:08)

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

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

# Вход на удаленный сервер любым удобным для вас инструментом
# Команды:

* <code>pwd, ls</code> (особенно <code>ls -l</code>!), <code>cd, mkdir, rmdir</code>
* <code>echo, cp, mv, more, less, cat, rm, wc</code>
* <code>grep</code>
* <code>man</code>
* <code>history</code>
* <code>exit</code>
# Пути:

* Специальные пути: <code>/, .., ., ~ </code>
* Что такое абсолютный и относительный пути к файлу или директории
# Операторы перенаправления потоков:

* <code>>, >>, |</code>
# Спецсимволы в масках имен файлов:

* <code>*, ?,</code>
* экранирование спецсимволов (например, \* или так '*'), [0-9]

# Приемы эффективной работы:

* <code>tab</code>
* <code>history</code>
* стрелки вверх и вниз

h3. == Задания ==

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

===

1. Подключитесь к любому из устройств с GNU/Linux


* Сервер xwing.cmm.msu.ru
kodomo.fbb.msu.ru
* Raspberry PI (user: adbmstudent, fbbstudent, password: adbmstudent)
fbbstudent)
* Ноутбук Артура (user: adbmstudent, fbbstudent, password: adbmstudent)

2.
fbbstudent)
1.
Выполните базовые команды:


* <code>whoami, whoami, who, finger</code>
finger
* <code>pwd, ls</code> pwd, ls (c опциями)

* <code>cd, cd, mkdir, rm</code>
rm
* <code>touch, echo</code>
touch, echo
* <code>cp</code> cp
* less, vim

* l<code>ess, vim</code>

3.
1. Корректно завершите сессию:


* <code>exit</code> exit

*NB:* {{{#!wiki warning

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

h4. }}}

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

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

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

kodomo.fbb.msu.ru ===

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

* Windows:

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

<pre> {{{
Host Name: xwing.cmm.msu.ru kodomo.fbb.msu.ru
Port: 443 22
Connection type: SSH
</pre>

}}}

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

* GNU/Linux, OS X, etc

<pre>

{{{
ssh -p 443 <username>@xwing.cmm.msu.ru &lt;username&gt;@kodomo.fbb.msu.ru
}}}

{{{#!wiki warning

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


</pre>

h4.
}}}

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

===

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

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

{{{#!wiki comment

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

}}}

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

h4.



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

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

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

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

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

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

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

===

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

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

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

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

===

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

*Первая строка*: username:
*Вторая строка*: <username>
*Третья строка*: absolute
&#x27;&#x27;&#x27;Первая строка:&#x27;&#x27;&#x27; &quot;absolute path to credits dir:
*Четвертая строка*: <path>

dir&quot;

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

&#x27;&#x27;&#x27;Вторая строка:&#x27;&#x27;&#x27; сам путь.

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

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

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

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

h4. === Для штатного выходы из linux выполните команду `exit`

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