Отчёт по заданию 1. Занятиe 1. Основы Linux. Выполнил Бершауэр Владислав. Практическая работа №1,2,3. Ход работы: **Часть 1.1. "Работа в командной строке"** 1. Посмотреть под каким пользователем в системе Linux. ![](https://i.imgur.com/iLxQkw9.png) 2. Перейти в корневой каталог. ![](https://i.imgur.com/UxdZW8N.png) 3. Посмотреть содержимое каталога. ![](https://i.imgur.com/7Ep6bLx.png) 4. Определить типы команд ls, cd. ![](https://i.imgur.com/p7zsr4K.png) 5. Посмотреть из корневого каталога содержимое директории Home. ![](https://i.imgur.com/nXyksX8.png) 6. Перейти в директорию /tmp. ![](https://i.imgur.com/WZODRZX.png) 7. Создать директорию /pt. ![](https://i.imgur.com/hCD0Wrf.png) 8. Создать 3 текстовых документа 1.txt 2.txt 3.txt. ![](https://i.imgur.com/TyHXWul.png) 9. Изменить или добавить содержимое текстового документа с помощью редакторов nano и vim. ![](https://i.imgur.com/hzLwvs8.png) ![](https://i.imgur.com/A7qgheU.png) ![](https://i.imgur.com/Uol2LG5.png) Перейти в режим редактирования – insert. Сохранение «:wq» выход – левый контрол + z ![](https://i.imgur.com/15CtPYB.png) ![](https://i.imgur.com/J51vAdG.png) ![](https://i.imgur.com/nmDyU6K.png) 10. Скопировать и переименовать директорию с файлами. ![](https://i.imgur.com/nYcIaip.png) ![](https://i.imgur.com/2BLusIZ.png) 11. Заархивировать директорию. ![](https://i.imgur.com/B6ilL6r.png) ![](https://i.imgur.com/Qib55TJ.png) 12. Разархивировать директорию. ![](https://i.imgur.com/MNLB6TT.png) ![](https://i.imgur.com/U23ezIK.png) ![](https://i.imgur.com/Q9MNJjD.png) 13. Посмотреть содержимое домашней директории и каталога usr одной командой. ![](https://i.imgur.com/VxaB51Y.png) 14. Посмотреть содержимое каталога в обратном порядке. ![](https://i.imgur.com/hwZTanN.png) 15. Посмотреть права на директорию. ![](https://i.imgur.com/QjHI62y.png) 16. Посмотреть права на текстовые файлы. ![](https://i.imgur.com/SpgQg4v.png) 17. Переместить и переименовать один текстовый файл в директорию /tmp. ![](https://i.imgur.com/313ZMYp.png) ![](https://i.imgur.com/8IO9HQS.png) 18. Создать новую директорию, в ней создать новый текстовый документ, переместить из директории /tmp файл в новую директорию с заменой файла и запросом на его изменение. ![](https://i.imgur.com/yocKPK7.png) ![](https://i.imgur.com/mcOVKlT.png) ![](https://i.imgur.com/2QtjYMg.png) ![](https://i.imgur.com/3dfm13A.png) 19. Определить местоположение данного исполняемого файла ls, cd. ![](https://i.imgur.com/GSBPMXM.png) which ищет только исполняемые программы, она не способна выявлять встроенные команды или псевдонимы, замещающие фактические исполняемые программы. Если попытаться с помощью which определить местоположение встроенной команды (например, cd), мы либо ничего не получим, либо получим сообщение об ошибке: me@linuxbox ~$ which cd /usr/bin/which: no cd in (/opt/jre1.6.0_03/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/opt/jre1.6.0_03/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/home/me/bin) Это своеобразное сообщение «command not found» (команда не найдена). 20. Вывести краткое описание команды и утилиты ls, nano, rm. ![](https://i.imgur.com/Klgsqup.png) 21. Создать символические ссылки. ![](https://i.imgur.com/nlv2z7X.png) 22. Создать символическую ссылку в никуда, продемонстрировать её. ![](https://i.imgur.com/vqK2DoE.png) Файл был удален. 23. Создать прямые ссылки. ![](https://i.imgur.com/s2mH3Oj.png) ![](https://i.imgur.com/8R0UJ1s.png) ![](https://i.imgur.com/SxE2qQH.png) 24. Создать собственную команду, которая будет использовать следующее: cd /usr; ls; cd - , с помощью alias. ![](https://i.imgur.com/dix3Mpj.png) 25. С помощью команды cat написать любой текст и записать его в текстовый файл. ![](https://i.imgur.com/3ecU0QH.png) 26. Удалить один текстовый файл ![](https://i.imgur.com/Obqvt5V.png) 27. Создать пустую директорию и удалить её ![](https://i.imgur.com/zcFB2Mo.png) 28. Удалить директорию с 3-я текстовыми файлами ![](https://i.imgur.com/Emqj677.png) ![](https://i.imgur.com/OiIPfF2.png) 29. Создать пользователя ![](https://i.imgur.com/wB2zbkD.png) 30. Поменять пароль нового пользователя ![](https://i.imgur.com/D710Fqd.png) 31. Найти текстовый документ с помощью команд Find и Grep ![](https://i.imgur.com/TA0Kpcg.png) ![](https://i.imgur.com/j5J3GKv.png) ![](https://i.imgur.com/hZy6gsn.png) 32. Воспользоваться логическими 'и' и 'или' как пример использовать команду ping ![](https://i.imgur.com/EwyLR9E.png) ![](https://i.imgur.com/RNIagc6.png) **Часть 1.2. Практическая работа “GREP”.** - Вы проводите поиск в Интернете, и видите, что используются две разные версии Python, и вы не знаете, какая из них был установлен в вашей системе установщиком Ubuntu или Debian, и устанавливал ли он какие-либо дополнительные модули? ![](https://i.imgur.com/6zUefgt.png) - Допустим, у вас возникли проблемы с вашим веб-сервером Apache, и вы обратились к одному из многих форумов в сети с просьбой о помощи. Добрая душа, которая вам ответила, попросила вас отправить содержимое вашего файла `/etc/apache2/sites-available/default-ssl`. Разве вам не было бы легче, если бы вы могли просто удалить все закомментированные строки? ![](https://i.imgur.com/jeOT4zL.png) Заданная директория не доступна, по этому расскоментировал параметр, отвечающий за машрутизацию в файле sysctl.conf ![](https://i.imgur.com/F2jF7hp.png) - Например, предположим, что у вас есть целая папка, полная музыкальных файлов разных форматов. Вы хотите найти все файлы `.mp3` у исполнителя ABC, но вы не хотите никаких ремиксов. Как поступить? ![](https://i.imgur.com/1ZVBNPO.png) ![](https://i.imgur.com/j70PEVs.png) ![](https://i.imgur.com/YJRkd3X.png) - Как отобразить количество строк до или после строки поиска? ![](https://i.imgur.com/LrMMc5Q.png) - Как вывести количество строк совпадения? ![](https://i.imgur.com/5TGZFcM.png) - Как выяснить количество совпадений? ![](https://i.imgur.com/QglARIO.png) - Как найти файлы по заданным номерам строк? ![](https://i.imgur.com/kuRBZN2.png) - Произвести поиск рекурсивной строки во всех каталогах. ![](https://i.imgur.com/IROjXZM.png) - Произвести поиск строк в архивах файлах Gzip. ![](https://i.imgur.com/MBz9YRP.png) ![](https://i.imgur.com/wJJiYep.png) ![](https://i.imgur.com/LiKPbgy.png) ![](https://i.imgur.com/Aeww4Dr.png) **Часть 1.3. Практическая работа. Философия Vim.** ## 1. Философия Vim Чтобы понять, почему Vim именно такой, какой есть, и чтобы научиться использовать его эффективно, необходимо запомнить две простые истины. Истина первая. Разделение режимов Vim имеет абсолютно логичный утилитарный характер. В одном режиме ты пишешь текст, во втором редактируешь. В современных редакторах эти границы размыты, мы привыкли писать и тут же редактировать, стирать, снова писать. В режиме ввода Vim позволяет это делать, но в очень ограниченных пределах: написал не ту букву — стер, написал другую. Все остальное — в режиме редактирования (основной режим). Истина вторая. «Хоткеи», доступные в режиме редактирования, — это вовсе не хоткеи, а мощная система команд с аргументами, циклами и регистрами. При использовании Vim ты ни в коем случае не должен мыслить стандартным образом: сейчас я тыкну мышкой на том слове, потом нажму Backspace столько раз, сколько потребуется, чтобы его стереть, напишу другое слово, а потом перемещу курсор обратно. Вместо этого ты должен отдать редактору команду: замени вон то слово на это и верни меня обратно. ## 2. Установка VIM уже был установлен. ![](https://i.imgur.com/jQ8wxWw.png) ## 3. Запуск Vim Если не указывать никаких агрументов открывается пустой файл. В зависимости от вашего дистрибутива могут присутствовать представление и информация о лицензии. Когда вы начнете пользоваться редактором, они пропадут. Чтобы открыть файл, укажите его имя. Например, далее мы создадим файл “newfile” и откроем его в vim. ## 3.1 Создание файла: ![](https://i.imgur.com/K93FTam.png) **Открытие файла при помощи vim:** `vim newfile` - Режимы работы Основное отличие vim от многих других редакторов заключается в том, что в нем несколько режимов редактирования, а не один, как в большей части других. В других программах особые функции, например, копирование текста, приводится в действие комбинациями клавиш. В vim для разделения этих функций и набора текста используются разные режимы. - Нормальный режим Режим по умолчанию, в котором vim находится после запуска. Применяется для быстрой навигации по документу и редактирования: в нем можно копировать, вставлять, перемещать, удалять и изменять текст. Переход из других режимов осуществляется нажатием клавиши «escape». Для набора текста не используется. - Режим вставки Для набора текста нужно перейти в режим “вставки”. Он похож на интерфейс набора текста многих других программ. Вводимый вами текст появляется на экране в документе, каждая клавиша соответствует своему символу. Перейти в этот режим можно следующим образом: ![](https://i.imgur.com/8UDnzw0.png) Ключ а: ![](https://i.imgur.com/lba7qD8.png) ![](https://i.imgur.com/d4JXi2H.png) Ключ I: ![](https://i.imgur.com/BiLeBA5.png) Ключ A: ![](https://i.imgur.com/kDrh6bU.png) - Режим визуального выделения Позволяет визуально выделять текстовые фрагменты. Затем к ним можно применять команды нормального режима для редактирования или форматирования. *v — режим обычного (посимвольного) визуального выделения перемещением курсора вверх, вниз, влево или вправо* ![](https://i.imgur.com/uWcyUw0.png) ![](https://i.imgur.com/7tG69zx.png) `[ctrl]-v` — режим блочного визуального выделения. Выделяется прямоугольный участок, который можно увеличивать и уменьшать. Позволяет выбирать фрагменты нескольких линий. ![](https://i.imgur.com/o4xXWNp.png) ### 3.2 Перемещение - Вы всегда можете передвигаться по документу стрелками, но vim предоставляет более быстрый и удобный способ. В нормальном режиме для навигации применяются следующие клавиши: ![](https://i.imgur.com/PeAgvBU.png) ### 3.3 Поиск текста Регистрозависимый поиск: ![](https://i.imgur.com/jD2BJoT.png) Неригистрозависимый поиск: ![](https://i.imgur.com/Feab70Z.png) Явное задание регистрозависимого поиска: ![](https://i.imgur.com/rHNvIZP.png) ### 3.4 Редактирование Редактирование выполняется посредством команд в нормальном режиме. Они очень эффективны в комбинации с командами перемещения. Любая команда из раздела перемещения может задать направление. Например, можно удалить или скопировать одно слово, указав “w” за соответствующей командой. **Рассмотрим наиболее распространённые действия.** ### 3.4.1 Удаление текста - x — удалить символ на позиции курсора ![](https://i.imgur.com/ixToqw2.png) ### 3.4.2 Копирование и вставка - yy — копировать всю строку - p — вставить последнюю скопированную (или удаленную!) строку ниже текущей ![](https://i.imgur.com/5oOqgRU.png) ### 3.4.3 Дополнительные команды редактирования - u — отменить последнее действие ![](https://i.imgur.com/2wyKomW.png) ### 3.5 Команды управления **Команды управления задаются вводом “:” перед каждой командой.** - :w — сохранить изменения. При первичном сохранении или сохранении в другой файл укажите имя через пробел ![](https://i.imgur.com/IsZi0MC.png) - :qw – сохранить файл и выйти ![](https://i.imgur.com/cN51dmH.png) Правильным будет следующий синтаксис ":wq" ### 3.6 Объединение команд Как упоминалось выше, эффективность vim обусловлена возможностью строить цепочки разных действий. Лучше всего этот принцип иллюстрируется, если представлять команды vim в виде языка. Клавиши в нормальном режиме играют роль различных частей речи. **Удалить текст от текущей позиции до окончания файла:** - :dG (d — удалить, G — переход в конец файла) - Также полезно усвоить ряд используемых в действиях vim принципов. Например, сдвоенный символ обычно распространяет действие команды на всю строку. Следующая команда скопирует не один символ, а строку целиком: ![](https://i.imgur.com/CM1qFqM.png) Часть 1.4. Vimtutor. ![](https://i.imgur.com/2RYhldw.png) ![](https://i.imgur.com/dUH1fl1.png) ![](https://i.imgur.com/A0KZAvo.png) ![](https://i.imgur.com/0wtG1YG.png) ![](https://i.imgur.com/qMvtFam.png) ![](https://i.imgur.com/WwXfm43.png) ![](https://i.imgur.com/2Wu9RAG.png) ![](https://i.imgur.com/AkFq1cs.png)