# Linux. Практическая работа № 1. ## 1.1. Работа в командной строке ### 1.1.1. Посмотреть под каким пользователем в системе Linux. ```bash= whoami ``` ![](https://i.imgur.com/26hjDCM.png) ### 1.1.2. Перейти в корневой каталог. ```bash= cd / ``` ![](https://i.imgur.com/QhQFkBD.png) ### 1.1.3. Посмотреть содержимое каталога. ```bash= ls ``` ![](https://i.imgur.com/KrbvcNm.png) ### 1.1.4. Определить типы команд ls, cd. ```bash= type ls type cd ``` ![](https://i.imgur.com/HJYHV9q.png) ### 1.1.5. Посмотреть из корневого каталога содержимое директории Home. ```bash= ls /home/ ``` ![](https://i.imgur.com/RoWwQdD.png) ### 1.1.6. Перейти в директорию /tmp. ```bash= cd /tmp ``` ![](https://i.imgur.com/vPPyWzM.png) ### 1.1.7. Создать директорию /pt. ```bash= mkdir /pt ``` ![](https://i.imgur.com/8417ao5.png) ### 1.1.8. Создать 3 текстовых документа 1.txt 2.txt 3.txt. ```bash= touch 1.txt 2.txt 3.txt ``` ![](https://i.imgur.com/0RWSKE9.png) ### 1.1.9. Изменить или добавить содержимое текстового документа с помощью редакторов nano и vim. ```bash= nano file.txt vi file.txt cat file.txt ``` ![](https://i.imgur.com/Stjbu85.png) ![](https://i.imgur.com/fHA69W5.png) ![](https://i.imgur.com/ylSqgGU.png) ### 1.1.10. Скопировать и переименовать директорию с файлами. ```bash= cp -R dir dir1 ``` ![](https://i.imgur.com/Bh9uxwK.png) ### 1.1.11. Заархивировать директорию. ```bash= tar -cv dir | gzip > dir.archive.tar.gz ``` ![](https://i.imgur.com/MFGAiKC.png) ### 1.1.12. Разархивировать директорию. ```bash= gzip -d dir.archive.tar.gz tar xvf dir.archive.tar ``` ![](https://i.imgur.com/1vQld46.png) ### 1.1.13. Посмотреть содержимое домашней директории и каталога usr одной командой. ```bash= ls /home /usr ``` ![](https://i.imgur.com/rTvRwK4.png) ### 1.1.14. Посмотреть содержимое каталога в обратном порядке. ```bash= ls /usr | sort -r ``` ![](https://i.imgur.com/UyK6osC.png) ### 1.1.15. Посмотреть права на директорию. ```bash= ls -dl /usr ``` ![](https://i.imgur.com/2XNYaip.png) ### 1.1.16. Посмотреть права на текстовые файлы. ```bash= ls -l ``` ![](https://i.imgur.com/xk56pK6.png) ![](https://i.imgur.com/mXotX53.png) ### 1.1.17. Переместить и переименовать один текстовый файл в директорию /tmp. ```bash= mv 1.txt /tmp/moved.txt ``` ![](https://i.imgur.com/ts1uDhr.png) ### 1.1.18. Создать новую директорию, в ней создать новый текстовый документ, переместить из директории /tmp файл в новую директорию с заменой файла и запросом на его изменение. ```bash= touch /tmp/newfile mkdir newdir touch ./newdir/newfile mv /tmp/newfile ./newdir/newfile -i ``` ![](https://i.imgur.com/eGeDSXO.png) ### 1.1.19. Определить местоположение данного исполняемого файла ls, cd. ```bash= type -a ls type -a cd ``` ![](https://i.imgur.com/szgRd0I.png) ### 1.1.20. Вывести краткое описание команды и утилиты ls, nano, rm. ```bash= whatis ls nano rm ``` ![](https://i.imgur.com/e7xBWta.png) ### 1.1.21. Создать символические ссылки. ```bash= touch first ln -s first second ls -l first second ``` ![](https://i.imgur.com/GXBVynt.png) ### 1.1.22. Создать символическую ссылку в никуда, продемонстрировать её. ```bash= ln -s badlink ``` ![](https://i.imgur.com/iqvaD8C.png) ### 1.1.23. Создать прямые ссылки. ```bash= ln first second ls -i first second ``` ![](https://i.imgur.com/VXDlgC9.png) ### 1.1.24. Создать собственную команду, которая будет использовать следующее: cd /usr; ls; cd - , с помощью alias. ```bash= alias lsusr="cd /usr; ls; cd -" ``` ![](https://i.imgur.com/r2x6x0w.png) ### 1.1.25. С помощью команды cat написать любой текст и записать его в текстовый файл. ```bash= cat file.txt > file2.txt ``` ![](https://i.imgur.com/fIKutUz.png) ### 1.1.26. Удалить один текстовый файл ```bash= rm file2.txt ``` ![](https://i.imgur.com/p2erdct.png) ### 1.1.27. Создать пустую директорию и удалить её ```bash= mkdir dir rm -R dir ``` ![](https://i.imgur.com/aN9vqYE.png) ### 1.1.28. Удалить директорию с 3-я текстовыми файлами ```bash= rm -R dir ``` ![](https://i.imgur.com/tVLBpJf.png) ### 1.1.29. Создать пользователя ```bash= useradd newuser ``` ![](https://i.imgur.com/XdbDlXp.png) ![](https://i.imgur.com/9zBYTQk.png) ![](https://i.imgur.com/YxfNrqc.png) ![](https://i.imgur.com/YEIhSUD.png) ### 1.1.30. Поменять пароль нового пользователя ```bash= passwd newuser ``` ![](https://i.imgur.com/6UQTtPt.png) ### 1.1.31. Найти текстовый документ с помощью команд Find и Grep ```bash= find /tmp/dir -type f | grep ?*.txt ``` ![](https://i.imgur.com/sMq0TA1.png) ### 1.1.32. Воспользоваться логическими 'и' и 'или' как пример использовать команду ping ```bash= ping 127.0.0.1 -c 1 && ls /tmp # к 128.0.0.1 доступа нет ping 128.0.0.1 -c 1 && ls /tmp ping 127.0.0.1 -c 1 || ls /tmp ping 128.0.0.1 -c 1 || ls /tmp ``` ![](https://i.imgur.com/BBRHgrw.png) ![](https://i.imgur.com/mn26ZxY.png) ![](https://i.imgur.com/hbH4Iy2.png) ![](https://i.imgur.com/o3p00Oy.png) ## 1.2 ### 1.2.1 Вы проводите поиск в Интернете, и видите, что используются две разные версии Python, и вы не знаете, какая из них был установлен в вашей системе установщиком Ubuntu или Debian, и устанавливал ли он какие-либо дополнительные модули? ```bash= dpkg -l | grep -i python ``` ![](https://i.imgur.com/4kqVmlM.png) ### 1.2.2 Допустим, у вас возникли проблемы с вашим веб-сервером Apache, и вы обратились к одному из многих форумов в сети с просьбой о помощи. Добрая душа, которая вам ответила, попросила вас отправить содержимое вашего файла `/etc/apache2/sites-available/default-ssl`. Разве вам не было бы легче, если бы вы могли просто удалить все закомментированные строки? ```bash= cat /etc/samba/smb.conf | grep -v "#" ``` ![](https://i.imgur.com/tvsLv1e.png) ### 1.2.3 Например, предположим, что у вас есть целая папка, полная музыкальных файлов разных форматов. Вы хотите найти все файлы `.mp3` у исполнителя ABC, но вы не хотите никаких ремиксов. Как поступить? ```bash= find . –name "*.mp3" | grep –i ABC | grep –vi "remix" ``` ![](https://i.imgur.com/Mj55BJg.png) ### 1.2.4 Как отобразить количество строк до или после строки поиска? ```bash= ifconfig | grep -A 4 eth0: ifconfig | grep -B 2 lo: ``` ![](https://i.imgur.com/9kAZiKY.png) ### 1.2.5 Как вывести количество строк совпадения? ```bash= ifconfig | grep -C 2 lo ``` ![](https://i.imgur.com/qqDuT17.png) ### 1.2.6 Как выяснить количество совпадений? ```bash= ifconfig | grep -c inet6 ``` ![](https://i.imgur.com/hUx5LDi.png) ### 1.2.7 Как найти файлы по заданным номерам строк? ```bash= grep -n "main" /home/kali/pypykatz/setup.py ``` ![](https://i.imgur.com/8dup1vi.png) ### 1.2.8 Произвести поиск рекурсивной строки во всех каталогах. ```bash= grep -r "function" * ``` ![](https://i.imgur.com/HzIrk72.png) ### 1.2.9 Произвести поиск строк в архивах файлах Gzip. (создать zip архив см.п.1.10) ```bash= zgrep -i error messages.gz ``` ![](https://i.imgur.com/Wg1APx5.png) ## 1.3 Vim ### 1.3.0 Описание Vim и установка Vim - свободный текстовый редактор, созданный на основе более старого vi. Ныне это мощный текстовый редактор с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам (Wikipedia). Проверим установлен ли vim ![](https://i.imgur.com/3T1MXEX.png) И установим его. ![](https://i.imgur.com/JHtQaB9.png) Vim установлен ### 1.3.1 Создание файла ```bash= echo "Это новый файл. Вот вторая строчка, А это третья. Это будет очень здорово." >> newfile ``` ![](https://i.imgur.com/wxgCWeb.png) Откроем его в vim ```bash= vim newfile ``` ![](https://i.imgur.com/07orikD.png) ![](https://i.imgur.com/HYTqIH6.png) ### 1.3.2 Перемещение Основные функции * h — перемещение влево * j — перемещение вниз * k — перемещение вверх * l — перемещение вправо ![](https://i.imgur.com/ffYWS0V.png) Дополниельные сочетания - gg — переход в начало документа - G — переход в конец документа. Если предварительно ввести номер — переместиться на строку с этими номером - w — перемещение к следующему слову. Если предварительно ввести количество — переместиться на это количество слов - b — перемещение к предыдущему слову. Если предварительно вввести количество — переместиться на это количество слов назад - e — перемещение к концу слова. Если предварительно указать количество — переместиться на указанное количество слов - 0 — перемещение к началу строки - $ — перемещение к концу строки ### 1.3.3 Поиск текста Для поиска необходимо нажать / и сам текст, \с - регистронезависимость. ![](https://i.imgur.com/SHwZVwG.png) ![](https://i.imgur.com/cb46RNe.png) ![](https://i.imgur.com/OWQ2irb.png) ### 1.3.4 Редактирование #### 1.3.4.1 Удаление текста Основные команды - x — удалить символ на позиции курсора - d — удалить в заданном командой перемещения направлении. Например, “dl” удаляет один символ справа - dd — удалить строку - D — удалить все символы от положения курсора до окончания строки Замена текста - r — заменить символ на позиции курсора заданным после команды символом - c — заменить в заданном командой перемещения направлении. Например, “cb” заменяет предыдущее слово. Для набора текста на замену запускается режим вставки. - C — заменить до окончания строки. Текст на замену набирается в режиме вставки. ![](https://i.imgur.com/LAnY4k5.png) ![](https://i.imgur.com/HtarCpI.png) #### 1.3.4.2 Копирование и вставка Основные команды - y — копировать в заданном далее направлении - yy — копировать всю строку - Y — копировать до окончания строки - p — вставить последнюю скопированную (или удаленную!) строку ниже текущей - P — вставить последнюю скопированную (или удаленную!) строку выше текущей ![](https://i.imgur.com/iWcbgCH.png) #### 1.3.4.3 Дополнительные команды редактирования - u — отменить последнее действие - <ctrl>-r — вернуть последнее отмененное действие - J — присоединить строку ниже к текущей ![](https://i.imgur.com/oYtM3tv.png) ![](https://i.imgur.com/aw517Uo.png) ### 1.3.5 Команды управления - :q — выход из программы. Действие не будет выполнена, если не сохранить изменения - :q! — выход из программы с отменой всех изменений, которые не были сохранены - :w — сохранить изменения. При первичном сохранении или сохранении в другой файл укажите имя через пробел - :e — редактировать указанный далее файл - :bn — редактировать следующий файл (если открыто несколько файлов) - :bp — редактировать предыдущий файл (если открыто несколько файлов) - :wq – сохранить файл и выйти ![](https://i.imgur.com/JFVL61h.png) ![](https://i.imgur.com/3cftZMc.png) ![](https://i.imgur.com/iVWHkDT.png) ### 1.3.6 Объединение командв - y5w (y — копировать, 5 — количество, w — слов) - dG (d — удалить, G — переход в конец файла) dG ![](https://i.imgur.com/Frdacbn.png) ## 1.4 Задания на https://www.openvim.com --- ### 1.4.1 Introduction ![](https://i.imgur.com/UXGoPY0.png) ### 1.4.2 Two modes, insert and normal ![](https://i.imgur.com/HlmVRFd.png) --- ### 1.4.3 Basic movement: h, j, k, and l ![](https://i.imgur.com/bVJxOVr.png) --- ### 1.4.4 Word movement: w, e, b ![](https://i.imgur.com/aOiycuh.png) --- ### 1.4.5 Number powered movement, e.g. 5w ![](https://i.imgur.com/sYPJfO0.png) --- ### 1.4.6 Insert text repeatedly, e.g. 3iYes ![](https://i.imgur.com/epe2Y6C.png) --- ### 1.4.7 Find a character, f and F ![](https://i.imgur.com/05NiKck.png) --- ### 1.4.8 Go to matching parentheses, % ![](https://i.imgur.com/wEyNnHX.png) --- ### 1.4.9 Go to start/end of line, 0 and $ ![](https://i.imgur.com/vCaYkOU.png) --- ### 1.4.10 Find word under cursor, * and # ![](https://i.imgur.com/0h4uiVo.png) --- ### 1.4.11 Goto line, g and G ![](https://i.imgur.com/8MZ9yeD.png) --- ### 1.4.12 Search, /text with n and N ![](https://i.imgur.com/se0yfuf.png) --- ### 1.4.13 Insert new line, o and O ![](https://i.imgur.com/9uiJyOk.png) --- ### 1.4.14 Removing a character, x and X ![](https://i.imgur.com/xqrGmAc.png) --- ### 1.4.15 Replacing letter uder cursor, r ![](https://i.imgur.com/HUnQg84.png) --- ### 1.4.16 Deleting, d ![](https://i.imgur.com/VVT4j7G.png) --- ### 1.4.17 Repeting, d ![](https://i.imgur.com/uy3pzxs.png) --- ### 1.4.18 Visual mode, v ![](https://i.imgur.com/MrrOWWX.png) --- ### 1.4.19 Real Vim awaits ![](https://i.imgur.com/FPzcHeD.png) --- ### 1.4.20 The end ![](https://i.imgur.com/sBhRmpZ.png) ---