=====Задание №2===== ==== Шаг 1. Команды Linux ==== Введите логин/пароль, полученный у преподавателя, для входа на консоль вашей виртуальной машины. После входа на консоль сперва разберемся с навигацией по каталогам (аналог папок в Windows) операционной системы Linux. Выполните команду перехода в корневой каталог (это что-то вроде C:/ в Windows): cd / После выполнения команды вы перешли в корневой каталог. Выполните команду pwd, отображающую текущий каталог: pwd Вы увидите, что находитесь текущий каталог / Следующая команда (ls) отображает список файлов и каталогов в текущем каталоге. ls Нам необходимо попасть в личный каталог пользователя. Каталоги пользователей находятся в каталоге home. Для перехода в каталог home выполним команду cd home, затем проверим в каком каталоге мы находимся (pwd), затем посмотрим список файлов и каталогов в каталоге home: cd home pwd ls Перейдем в каталог пользователя. У меня это bsk23-01-student-1: В командной строке можно набрать «cd bsk» и нажать клавишу tab. Система автоматически заполнит оставшееся название каталога. Затем проверим в каком каталоге мы находимся и посмотрим список файлов в каталоге: cd bsk23-01-student-1 pwd ls Создадим в личном каталоге пользователя новый каталог с именем python: mkdir python Проверим, что создали каталог командой ls, перейдем в новый каталог cd python, проверим, что находимся в новом каталоге pwd: ls cd python pwd Стрелки вверх/вниз – перемещение по истории команд (чтобы не набирать заново).\\ Другие базовые команды в Linux (uname, man, mkdir, touch, cat, nano, cp, mv, rm, df). ==Шаг 2. Установка пакетов== Программы в Linux называются пакетами. apt - менеджер пакетов. Используется для установки новых пакетов, обновления и удаления пакетов в системе. Если запустить apt без параметров, то увидим справку по использованию apt. apt Запуск apt с параметров list отображает список всех возможных пакетов (и установленных и тех, которые можно установить). Вывод результата выполнения команды займет несколько секунд: apt list Для того, чтобы apt list отобразил не весь список можно передать вывод команде grep. Для этого после apt list нужно поставить знак | и далее написать grep с текстом который нужно найти в результатах выполнения apt list. Например apt list | grep installed покажет только строки в которых есть слово installed, т.е. установленные пакеты: apt list | grep installed Чтобы грепнуть по нескольким условиям выполним команду с ключом -E. Команда отобразит установленный пакет gzip: apt list | grep -E 'gzip.*installed' Если вывод команды не пустой и отображает строку "gzip/stable ..." значит пакет gzip установлен.\\ Установим пакет mc (Midnight Commander) для удобства работы с файлами системы. Для этого выполним команду apt с параметром install и именем пакета mc. Система позволяет устанавливать новые пакеты только администратору системы. Ваш пользователь обладает правами запуска команд от имени администратора. Для этого в начале команду необходимо написать sudo: sudo apt install mc подтверждаем установку «Y» Проверим, что установили пакет mc apt list | grep -E 'mc.*installed' ==Шаг 3. Midnight Commander== **mc** – визуальный файловый менеджер. Позволяет:\\ — копировать, перемещать и удалять файлы и целые деревья каталогов;\\ — искать файлы и запускать команды в подкоманде;\\ — использовать внутренний просмотрщик и редактор.\\ **F3** – просмотр файла\\ **F4** – редактирование файла\\ **Shift+F4** – создание нового файла\\ **F7** – создание нового каталога\\ **F8** – удаление файла или каталога\\ **F10** – выход из mc\\ Другие базовые команды MC и Nano. ==Шаг 4. Первый скрипт Python== Создадим новый файл нажатием **Shift+F4**.\\ При первом редактировании MC спросит какой редактор использовать. Выберем редактор Nano. Также файл можно создать из консоли выполнив команду nano с именем файла. nano hello.py В созданном файле пишем: print(“Hello!”) \\ **Ctrl+X** (сохранить и выйти) затем подтверждаем нажатием **Y** Если вы редактируете существующий файл или создали файл из командной строки сразу указав имя то nano попросит подтвердить имя файла. Если вы создали файл из MC с помощью Shift+F4 то нужно ввести имя файла. Указываем или подтверждаем название файла «hello.py»\\ Если мы были в MC то нажмём **F10** для выхода из mc.\\ Запустим Python Shell без параметров: python3 Видим короткую справку и приглашение для ввода команд Python >>>. Выполним команду вывода на экран текста print: print("text") увидим результат выполнения команды: Текст выведен на экран.\\ Выйдем из Python Shell: exit() //так же для выхода можно использовать сочетание клавиш **Сtrl+D**// Теперь выполним скрипт Python из созданного нами файла hello.py: python3 hello.py Скрипт выполнил команду и написал нам: Hello! //Теперь вы можете написать в резюме, что имеете опыт написания скрипта Python на виртуальном сервере Linux Debian 8-)// ==Шаг 5. Простой цикл== Сделаем скрипт с простым циклом for. Создайте новый файл **for.py** (либо из MC, либо из консоли с помощью nano). В файле напишите: for i in range(1, 10): print(i) Цикл for в этом скрипте будем изменять значение переменной i в диапазоне от 1 до 10 и для каждого значения выполнять команду вывода на экран этого значения print(i).\\ Команда print(i) находится в блоке, выполняемом внутри цикла. Команды внутри блока написаны не с начала строки, а со смещением (это может быть пробелы или tab). В блоке цикла может быть несколько команд. Все они должны быть написаны со смещением. ==Шаг 6. Чтение файла== Создайте новый файл с именем **file.txt**. Напишите в нем любые 5 или больше строк. Это будет файл с входными данными для следующего скрипта. Скрипт прочитает данные из этого файла и отобразит их на экран.\\ Создайте новый файл скрипта Python с именем **fileread.py**\\ В скриптах Python можно писать комментарии. Всё, что написано после знака «#» считается комментарием # открываем файл на чтение f = open(‘file.txt’,’r’) # выводим содержимое файла на экран print(*f) # закрываем открытый файл f.close В этом скрипте мы открыли файл **file.txt** (функция open) на чтение (параметр ‘r’ в функции open) и вывели на экран всё содержимое файла (*f). Затем закрыли файл (функция close). ==Шаг 7. Чтение одной строки файла== Вместо вывода всего файла считаем одну строку (функция readline) запишем её в переменную l и выведем её на экран (print(l)) # открываем файл на чтение f = open(‘file.txt’,’r’) # читаем строку файла записываем в переменную l l = f.readline() # выводим переменную l на экран print(l) # закрываем открытый файл f.close ==Шаг 8. Чтение 3х строк из файла== Теперь считаем из файла 3 строки с помощью цикла for # открываем файл на чтение f = open(‘file.txt’,’r’) # запускаем цикл 3 раза for i in range(1,4): # читаем строку файла записываем в переменную l l = f.readline() # выводим переменную l на экран print(l) # закрываем открытый файл f.close ==Шаг 9. Чтение и изменение 3х строк из файла== Считаем из файла 3 строки и изменим их, добавив в конце каждой строки !!!! # открываем файл на чтение f = open(‘file.txt’,’r’) # запускаем цикл 3 раза for i in range(1,4): # читаем строку файла, добавляем «!» записываем в переменную l l = f.readline()[:-1]+ ‘!!!!’ # выводим переменную l на экран print(l) # закрываем открытый файл f.close [:-1] – метод удаляет последний символ в строке (у нас это перевод строки) ==Шаг 10. Чтение 3х строк из файла, изменение и запись в другой файл== Выведем результат не на экран, а в другой файл # открываем файл на чтение f = open(‘file.txt’,’r’) # открываем файл на запись fw = open(‘newfile.txt’,’w’) # запускаем цикл 3 раза for i in range(1,4): # читаем строку файла, добавляем «!» записываем в переменную l l = f.readline()[:-1] + ‘!!!!’ # выводим переменную l, но не на экран, а в файл fw print(l, file = fw) # закрываем открытые файлы f.close fw.close После выполнения этого скрипта вы не увидите результата на экране. Но можете увидеть новый файл «newfile.txt», в котором будут 3 измененные строки входного файла ==Шаг 11. Чтение файла полностью== Теперь считаем и обработаем не 3 строки, а все строки входного файла **file.txt**\\ Сделаем это с помощью цикла while. Цикл while используется в Python для многократного исполнения блока команд до тех пор, пока заданное условие остается истинным: # открываем файл на чтение f = open(‘file.txt’,’r’) # открываем второй файл на запись fw = open(‘newfile.txt’,’w’) # выполняем пока есть возможность считать строку из файла while True: # считываем строку l = f.readline() # прерываем цикл, если строка пустая if not l: break # добавляем к строке «!» ll = l[:-1] + ‘!!!!’ # выводим строку print(ll) # закрываем открытые файлы f.close fw.close Тут более подробное описание цикла While в Python