мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

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