Задание

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

  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
    • стрелки вверх и вниз

Задания

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

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

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

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

  • whoami, who, finger
  • pwd, ls (c опциями)
  • cd, mkdir, rm
  • touch, echo
  • cp
  • less, vim

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

  • exit

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

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

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

  • Windows:

Воспользуйтесь программой PuTTY.

Host Name: xwing.cmm.msu.ru
Port: 443
Connection type: SSH

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

  • GNU/Linux, OS X, etc

ssh -p 443 <username>@xwing.cmm.msu.ru

Создайте директорию ~/linux/tmp и перейдите в нее

Сначала осмотритесь. Команда pwd (man pwd) покажет вам в какой вы директории. Команда ls (man ls) покажет список файлов и поддиректорий в этой директории.

Используйте команды mkdir (man mkdir) и cd (man cd). Например, так.

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

Скопируйте файлы с расширением txt из директории /tasks/linux/some_strange_files в директорию ~/linux/tmp

Для копирования файлов воспользуйтесь командой cp (man cp)

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

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

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

Если, случайно, вы скопировали не только нужные файлы, то удалите лишние при помощи команды rm <имя файла>. Вместо имени файла можно написать маску имен файлов. Будьте аккуратны! Корзины и операций восстановления в файлов в GNU/Linux нет. Для перестраховки используйте вызов rm -i или rm -I. Прочитайте в мануале (man rm) за что отвечают эти опции.

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

Вывести содержимое файлов можно при помощи команды cat <one_file> <or_more_files>'. (man cat)

Отфильтровать уникальное содержимое можно при помощи команды uniq, только внимательно прочтите документацию (man uniq) к программе перед ее использованием.

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

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

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

Первая строка: username:
Вторая строка: <username>
Третья строка: absolute path to credits dir:
Четвертая строка: <path>

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

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

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

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

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

Если команда `exit` не выполнена, а вы закрываете окно, то список выполненных за сеанс команд не запоминается. Значит, при следующем заходе команда history не вспомнит об этих командах.