# Linux_Basic-Остапенко_Владимир-Практика-1 ## Практическая работа №1.1 "Работа в командной строке" ### **Цель работы:** - Научиться работать в командной строке на уровне опытного пользователя. ### Задача: - Выполнить все задания. - Необходимо работать исключительно в терминале. **Задания:** 1. Посмотреть под каким пользователем в системе Linux. 2. Перейти в корневой каталог. 3. Посмотреть содержимое каталога. 4. Определить типы команд ls, cd. 5. Посмотреть из корневого каталога содержимое директории Home. 6. Перейти в директорию /tmp. 7. Создать директорию /pt. 8. Создать 3 текстовых документа 1.txt 2.txt 3.txt. 9. Изменить или добавить содержимое текстового документа с помощью редакторов nano и vim. 10. Скопировать и переименовать директорию с файлами. 11. Заархивировать директорию. 12. Разархивировать директорию. 13. Посмотреть содержимое домашней директории и каталога usr одной командой. 14. Посмотреть содержимое каталога в обратном порядке. 15. Посмотреть права на директорию. 16. Посмотреть права на текстовые файлы. 17. Переместить и переименовать один текстовый файл в директорию /tmp. 18. Создать новую директорию, в ней создать новый текстовый документ, переместить из директории /tmp файл в новую директорию с заменой файла и запросом на его изменение. 19. Определить местоположение данного исполняемого файла ls, cd. 20. Вывести краткое описание команды и утилиты ls, nano, rm. 21. Создать символические ссылки. 22. Создать символическую ссылку в никуда, продемонстрировать её. 23. Создать прямые ссылки. 24. Создать собственную команду, которая будет использовать следующее: cd /usr; ls; cd - , с помощью alias. 25. С помощью команды cat написать любой текст и записать его в текстовый файл. 26. Удалить один текстовый файл 27. Создать пустую директорию и удалить её 28. Удалить директорию с 3-я текстовыми файлами 29. Создать пользователя 30. Поменять пароль нового пользователя 31. Найти текстовый документ с помощью команд Find и Grep 32. Воспользоваться логическими 'и' и 'или' как пример использовать команду ping ### Решение 1. Посмотреть под каким пользователем в системе Linux. ![](https://i.imgur.com/L4QF4Dw.png) 2. Перейти в корневой каталог и посмотреть содержимое каталога. ![](https://i.imgur.com/1PZvm0n.png) 3. Определить типы команд ls, cd. ![](https://i.imgur.com/bfngLLo.png) 4. Посмотреть из корневого каталога содержимое директории Home. ![](https://i.imgur.com/ay6AlXm.png) 5. Перейти в директорию /tmp. ![](https://i.imgur.com/dhsBaQs.png) 6. Создать директорию /pt. ![](https://i.imgur.com/EEQgFbS.png) 7. Создать 3 текстовых документа 1.txt 2.txt 3.txt. ![](https://i.imgur.com/fWoQ2IA.png) 8. Изменить или добавить содержимое текстового документа с помощью редакторов nano и vim. ![](https://i.imgur.com/iChdgon.png) ![](https://i.imgur.com/Jh6KxVJ.png) ![](https://i.imgur.com/RVwfSEr.png) 9. Скопировать и переименовать директорию с файлами. ![](https://i.imgur.com/oXvgNRU.png) 10. Заархивировать директорию. ![](https://i.imgur.com/ygAMAnP.png) 11. Разархивировать директорию. ![](https://i.imgur.com/J6y7Zrz.png) 12. Посмотреть содержимое домашней директории и каталога usr одной командой. ![](https://i.imgur.com/ueZ8i85.png) 13. Посмотреть содержимое каталога в обратном порядке. ![](https://i.imgur.com/mndXFLR.png) 14. Посмотреть права на директорию. ![](https://i.imgur.com/TlgcY8b.png) 15. Посмотреть права на текстовые файлы. ![](https://i.imgur.com/y9Vwo50.png) 16. Переместить и переименовать один текстовый файл в директорию /tmp. ![](https://i.imgur.com/aDdCVks.png) 17. Создать новую директорию, в ней создать новый текстовый документ, переместить из директории /tmp файл в новую директорию с заменой файла и запросом на его изменение. ![](https://i.imgur.com/WVCklKq.png) 18. Определить местоположение данного исполняемого файла ls, cd. ![](https://i.imgur.com/4GZ8uvQ.png) 19. Вывести краткое описание команды и утилиты ls, nano, rm. ![](https://i.imgur.com/kfiLDCK.png) 20. Создать символические ссылки. ![](https://i.imgur.com/KAPgzi8.png) 21. Создать символическую ссылку в никуда, продемонстрировать её. ![](https://i.imgur.com/m1VHgvx.png) 22. Создать прямые ссылки. ![](https://i.imgur.com/SWOSvJ3.png) 23. Создать собственную команду, которая будет использовать следующее: cd /usr; ls; cd - , с помощью alias. ![](https://i.imgur.com/yYl1AD6.png) 24. С помощью команды cat написать любой текст и записать его в текстовый файл. ![](https://i.imgur.com/fQCjfnY.png) 25. Удалить один текстовый файл ![](https://i.imgur.com/1UJQc8k.png) 26. Создать пустую директорию и удалить её ![](https://i.imgur.com/Mmnd1wz.png) 27. Удалить директорию с 3-я текстовыми файлами ![](https://i.imgur.com/slHqC0J.png) 28. Создать пользователя и поменять пароль нового пользователя ![](https://i.imgur.com/zJJaNpa.png) 29. Найти текстовый документ с помощью команд Find и Grep ![](https://i.imgur.com/FBc5sRx.png) 30. Воспользоваться логическими 'и' и 'или' как пример использовать команду ping ![](https://i.imgur.com/gehSbFv.png) ![](https://i.imgur.com/SbJ5y1b.png) > (Пинговал EVE-NG) ## Практическая работа №1.2 **“GREP”** ### **Цель:** - Научиться базовым функциям команды GREP. ### Задачи: - Вы проводите поиск в Интернете, и видите, что используются две разные версии Python, и вы не знаете, какая из них был установлен в вашей системе установщиком Ubuntu или Debian, и устанавливал ли он какие-либо дополнительные модули? - Допустим, у вас возникли проблемы с вашим веб-сервером Apache, и вы обратились к одному из многих форумов в сети с просьбой о помощи. Добрая душа, которая вам ответила, попросила вас отправить содержимое вашего файла `/etc/apache2/sites-available/default-ssl`. Разве вам не было бы легче, если бы вы могли просто удалить все закомментированные строки? - Например, предположим, что у вас есть целая папка, полная музыкальных файлов разных форматов. Вы хотите найти все файлы `.mp3` у исполнителя ABC, но вы не хотите никаких ремиксов. Как поступить? - Как отобразить количество строк до или после строки поиска? - Как вывести количество строк совпадения? - Как выяснить количество совпадений? - Как найти файлы по заданным номерам строк? - Произвести поиск рекурсивной строки во всех каталогах. - Произвести поиск строк в архивах файлах Gzip. (создать zip архив см.п.1.10) ### Решение 1.1 Поиск файлов ![](https://i.imgur.com/Kvsk3Ts.png) 1.2 Поиск и фильтрация файлов ![](https://i.imgur.com/flCRe6x.png) 1.3 Найти все файлы .mp3 ![](https://i.imgur.com/qSzDCLV.png) > Скачал два трека mp3 от ABC Kids 1.4 Отображение количества строк до или после строки поиска ![](https://i.imgur.com/5VMm3Bk.png) 1.5 Вывод количества строк совпадения ![](https://i.imgur.com/JhFDLfF.png) 1.6. Количество совпадений ![](https://i.imgur.com/HW6zHE1.png) 1.7 Поиск файлов по заданным номерам строк ![](https://i.imgur.com/jOtDdD1.png) 1.8 Поиск рекурсивной строки во всех каталогах ![](https://i.imgur.com/PcyPWL9.png) 1.9 Поиск по всему шаблону ![](https://i.imgur.com/20WGNO9.png) 1.10 Поиск строки в архивах файлах Gzip ![](https://i.imgur.com/wmbUQ26.png) 1.11 Создаем простой zip-архив Создаем zip-архив папки ![](https://i.imgur.com/qGreIO7.png) Распаковка zip-архива ![](https://i.imgur.com/hTDv5vH.png) ## Практическая работа №1.3 Философия Vim ### **Цель:** - Научиться работать в VIM. ### Задачи: - Выполнить все задания. **Vim** — один из самых противоречивых инструментов из всех видевших свет. Это не просто редактор, это лакмусовая бумажка, четко разделяющая программистов, администраторов и юниксоидов на своих и чужих. Пока одни задаются вопросом, зачем нужна эта мертвечина в XXI веке, другие не могут представить себе жизни без Vim. Но чем же он их привлекает? Почему у редактора, который появился на свет более сорока лет назад, столько фанатов в сегодняшнем мире? Попробуем разобраться. - Контрольные вопросы на знание того, что проделано в данной работе и в интерактивное обучение [https://www.openvim.com/](https://www.openvim.com/). - Сделать скриншоты выполнения заданий. Решение: 1.3.1 Создание файла: ![](https://i.imgur.com/FEUMfUf.png) v — режим обычного (посимвольного) визуального выделения ![](https://i.imgur.com/rPRWMSx.png) V — режим построчного визуального выделения. ![](https://i.imgur.com/EUSjw7e.png) [ctrl]-v — режим блочного визуального выделения. ![](https://i.imgur.com/lG3IR68.png) 1.3.2 Перемещение gg — переход в начало документа ![](https://i.imgur.com/eANQlDZ.png) G — переход в конец документа. ![](https://i.imgur.com/TRJzCZ1.png) w — перемещение к следующему слову ![](https://i.imgur.com/9lYjVex.png) b — перемещение к предыдущему слову ![](https://i.imgur.com/Gbtp9QC.png) e — перемещение к концу слова. ![](https://i.imgur.com/sXwXl24.png) 0 — перемещение к началу строки ![](https://i.imgur.com/7Lh8Zvl.png) \$ — перемещение к концу строки ![](https://i.imgur.com/WWJ3tJe.png) 1.3.3 Поиск текста Что бы найти фрагмент текста, нужно перед текстом поиска ввести слэш «/» и нажать enter ![](https://i.imgur.com/7nfBr8u.png) По умолчанию поиск в vim регистрозависимый, для того что бы сделать поиск независимый от регистра, нужно перед текстом ввести следующую комбинацию "/\c" ![](https://i.imgur.com/z9qcUhT.png) Если же наоборот нужно сделать явное задание регистрозависимого поиска используйте комбинацию «/\C» ![](https://i.imgur.com/dl0cgam.png) 1.3.4 Редакирование 1.3.4.1 Удаление текста x — удалить символ на позиции курсора ![](https://i.imgur.com/s4W0AXP.png) d — удалить в заданном командой перемещения направлении. Например, “dl” удаляет один символ справа ![](https://i.imgur.com/tbCSdB4.png) ![](https://i.imgur.com/DMFT8Y4.png) dd — удалить строку ![](https://i.imgur.com/2AmB2iT.png) D — удалить все символы от положения курсора до окончания строки ![](https://i.imgur.com/FnypIGg.png) ![](https://i.imgur.com/KQdMqZp.png) Замена текста r — заменить символ на позиции курсора заданным после команды символом ![](https://i.imgur.com/Xky8fIf.png) c — заменить в заданном командой перемещения направлении. Например, “cb” заменяет предыдущее слово. Для набора текста на замену запускается режим вставки. ![](https://i.imgur.com/jGIU1ZU.png) >cb C — заменить до окончания строки. Текст на замену набирается в режиме вставки. ![](https://i.imgur.com/2a61A2J.png) 1.3.4.2 Копирование и вставка y — копировать в заданном далее направлении ![](https://i.imgur.com/KQhizwB.png) yy — копировать всю строку ![](https://i.imgur.com/kuvvIPP.png) > p — вставить последнюю скопированную (или удаленную!) строку ниже текущей - примеялось сразу после выделения 1.3.4.2 Дополнительные команды редактирования u — отменить последнее действие ![](https://i.imgur.com/SoaYB5m.png) \<ctrl\>-r — вернуть последнее отмененное действие ![](https://i.imgur.com/fl9r1MH.png) J — присоединить строку ниже к текущей ![](https://i.imgur.com/KA0vBE9.png) 1.3.5 Командный режим :q — выход из программы. :w — сохранить изменения. ![](https://i.imgur.com/Ct6Tfzs.png) 1.3.6 :y5w (y — копировать, 5 — количество, w — слов) ![](https://i.imgur.com/71sIZHR.png) Удалить текст от текущей позиции до окончания файла: :dG (d — удалить, G — переход в конец файла) ![](https://i.imgur.com/Lh9TjBF.png) 1.4 Заключение - vimtutor **Two modes, insert and normal** change to insert mode - i ![](https://i.imgur.com/SVYFfZQ.png) change back to normal mode - Esc ![](https://i.imgur.com/Hu7Hiva.png) Basic movement: h, j, k, and l ![](https://i.imgur.com/IMDXYOu.png) Word movement: w, e, b ![](https://i.imgur.com/MOjQNG3.png) Number powered movement, e.g. 5w ![](https://i.imgur.com/BRYEpFJ.png) Insert text repeatedly, e.g. 3iYes ![](https://i.imgur.com/iLlvjgE.png) Find a character, f and F ![](https://i.imgur.com/pKSbkly.png) Go to matching parentheses, % ![](https://i.imgur.com/rpxkaoR.png) Find word under cursor, * and # ![](https://i.imgur.com/NLzhpMQ.png) Goto line, g and G ![](https://i.imgur.com/7DLAHQ9.png) Search, /text with n and N ![](https://i.imgur.com/JRFWADl.png) Insert new line, o and O ![](https://i.imgur.com/JyYxsE0.png) Removing a character, x and X ![](https://i.imgur.com/69ZroST.png) Replacing letter under cursor, r ![](https://i.imgur.com/lcpHWLA.png) Deleting, d ![](https://i.imgur.com/d5BhRK4.png) Repetition with . ![](https://i.imgur.com/hdngzJa.png) Visual mode, v ![](https://i.imgur.com/2TosBfq.png) Real Vim awaits ![](https://i.imgur.com/1pjhj3M.png) The end ![](https://i.imgur.com/g4ytIXp.png) True "The end") ![](https://i.imgur.com/XQqzi3E.png)