Лабораторная работа 1. Изучение базовых команд Linux.¶
Основные теоретические сведения¶
Цель: Первичное знакомство с командным интерпретатором. Изучение базовых команд операционной системы Linux.
Теоретическая часть:
Среди всех элементов операционной системы Linux самым важным, является командная строка (Терминал). Оболочка во многом определяет богатые возможности и гибкость операционной системы Linux. С помощью командной строки можно выполнять действия, которые были бы немыслимы при работе с графическим пользовательским интерфейсом. Независимо от того, KDE или GNOME, оказывается, что многие действия гораздо быстрее и эффективнее выполнить, пользуясь только командной строкой. Освоение Linux стоит начинать с изучения средств командной оболочки.
Файлы и ничего кроме файлов
Все, с чем Вы встретитесь в операционной системе Linux, — это файлы. Абсолютно все! Очевидно, что текстовый документ — это файл. Изображения, аудиоданные в формате МР3 и видеофрагменты — это несомненно файлы. Каталоги — это тоже файлы, содержащие информацию о других файлах. Дисковые устройства — это большие файлы. Сетевые соединения тоже файлы. Даже исполняемый процесс — это файл. С точки зрения операционной системы Linux файл представляет собой поток битов или байтов. Система не интересуется тем, что означает каждый байт. Это забота конкретных программ, выполняющихся в операционной системе Linux. Для операционной системы Linux и документ, и сетевое соединение всего лишь файлы. Как обрабатывать текстовый документ, знает редактор, а сетевое приложение умеет работать с сетевым соединением.
В отличие от Windows и МасOS в операционной системе Linux имена файлов чувствительны к регистру символов. В частности, Вы можете встретить в одном каталоге все три файла которые приведены ниже в качестве примера:
С точки зрения файловой операционной системы Linux — это различные имена файлов. Если вы попытаетесь создать файлы с этими же именами в Windows или МасOS, то вероятнее всего попытка увенчается провалом, и система предложит Вам выбрать другое имя для файла.
Чувствительность к регистру символов также означает, что при вводе команд они должны в точности совпадать с именами файлов, поддерживающих их. Так, например, удаляя файл с помощью команды rm, нельзя вводить RM, Rm или rM. Надо также следить за написанием имен, задаваемых в качестве параметров. Если вы захотите удалить файл «SIT.txt», а укажете имя Sit.txt, вы лишитесь совсем не того файла, с которым предполагали расстаться.
Список специальных символов которые не рекомендуется использовать в названиях файлов.
Групповые операции:
Предположим, что в одном из каталогов на вашем компьютере содержатся сто файлов с изображениями и два текстовых файла. Ваша задача удалить все файлы с изображениями за исключением двух текстовых файлов. Удалять файлы по одному — это утомительное занятие. В операционных системах Linux для автоматизации данного процесса можно применять символы групповых операций. Групповые операции задаются посредством звездочки (*), знака вопроса (?) и квадратных скобок ( [ ] ).
Пример использования групповых операций:
Групповая операция с применение » * » — отмечает любое (в том числе нулевое) количество любых символов.
Групповая операция с применение » ? «. Символ » ? » — соответствует одному произвольному символу.
Групповая операция с применение » [] «. Квадратные скобки позволяют задавать один символ из набора или символ, принадлежащий определенному диапазону.
Консольные команды:
- $ pwd — определить текущий каталог.
- $ cd [имя каталога] — осуществить переход в заданный каталог.
- $ ls [имя каталога] — просмотреть список файлов и подкаталогов.
- $ mkdir [имя каталога] — создать каталог с заданным именем.
- $ cp — скопировать файл «имя файла 1» в файл «имя файла 2», например: cp first.txt copy1.txt.
- $ mv — переименовать файл «имя файла 1» в файл «имя файла 2», например: mv first.txt orig.txt.
- $ ln «имя файла» «имя ссылки» — создать жёсткую ссылку «имя ссылки» на файл «имя файла». Пример: ln orig.txt copy2.txt.
- $ ln -s «имя файла» «имя ссылки» — создать символическую ссылку «имя ссылки» на файл «имя файла». Пример: ln -s orig.txt copy2.txt.
- $ rm — удалить файл.
- $ touch — создание файла.
- $ man — получение справочной документации о выбранной команде.
Задания к лабораторной работе¶
- Откройте терминал.
- Ознакомьтесь с возможностями команды pwd c помощью команды man:
- Определите текущий каталог, в котором вы находитесь командой pwd:
- Ознакомьтесь с возможностями команды cd c помощью команды man:
- Перейдите в корневой каталог командой cd
- Ознакомьтесь с возможностями команды ls c помощью команды man:
- Просмотрите содержимое корневого каталога командой ls:
- Сделайте копию экрана для использования в отчете по лабораторной работе .
- Вернитесь в домашний каталог, используя команду cd без параметров:
- Ознакомьтесь с возможностями команды mkdir c помощью команды man:
- Создайте каталог «test», используя команду mkdir:
- Перейдите в каталог «test», используя команду cd:
- Просмотрите содержимое каталога, используя команду ls:
- Создайте каталог «test2», используя команду mkdir:
- Ознакомьтесь с возможностями команды touch c помощью команды man:
- Создайте файл «text» в каталоге «test2» используя команду touch:
- Ознакомьтесь с возможностями команды mv c помощью команды man:
- Переименуйте файл «text» в «textSIT» используя команду mv
- Ознакомьтесь с возможностями команды cp c помощью команды man:
- Скопируйте файл «textSIT» в каталог «test2» под именем «copy.txt», используя команду cp:
- Ознакомьтесь с возможностями команды ln c помощью команды man:
- Создайте жесткую ссылку «link» на файл «copy.txt» используя команду ln:
- Создайте символическую ссылку «simlink» на файл «copy.txt» используя команду ln:
- Просмотрите результаты в текущем каталоге при помощи команды ls с аргументами la:
- Сделайте копию экрана для использования в отчете по лабораторной работе .
- Удалите созданные вами файлы и ссылки в лабораторной работе используя команду rm
- Сделайте копию экрана для использования в отчете по лабораторной работе .
Вопросы к лабораторной работе¶
- Чем отличается вывод команд ls -F и ls -la?
- С помощью какой команды и как можно переместить файл в другой каталог?
- Какие действия вы совершаете, нажимая на кнопки «стрелка вверх» и «стрелка вниз»?
- Куда вы переходите, выполнив команду cd без параметров?
- Как посмотреть, какие еще параметры можно задать команде ls?
- Что такое «жесткая ссылка»?
- Что такое «символическая ссылка»?
- Как осуществить просмотр подкаталогов и их содержимого ?
- Как осуществить вывод содержимого каталога с запятыми в качестве разделителя?
- Как осуществить просмотр скрытых файлов в домашнем каталоге?
- Как осуществить создание нового каталога и необходимых подкаталогов рекурсивно?
- Как осуществить рекурсивное копирование всех файлов из одного каталога в другой?
- Как осуществить рекурсивное копирование всех файлов и подкаталогов из одного каталога в другой?
- Как рекурсивно удалить все файлы и подкаталоги в определенном каталоге?
Составьте отчет о выполнении лабораторной работы.
Включите в него копии экрана и ответы на вопросы лабораторной работы.
© Copyright 2016, Пантюхин Игорь Сергеевич, Университет ИТМО.
Источник
Дневник Сьюзен / Комплекс Лабораторных работ по администрированию Linux
Доброго времени суток.
Сегодня будем разбирать цепочки заданий по администрированию Linux товарища @bykvaadm (habr, git). Администрирование Unix систем, дело весьма полезное, особенно для будущего специалиста, я молчу про тех, кто разворачивает java игровые сервера, пишет плагины и занимается администрированием серверов общей доступности.
Вернемся к нашим православным, этот пост посвящен «игре» SuzenEscape.
Весьма интересная штука, которую лично мне было интересно «поковырять» на уровне кода. Каждое ваше подключение, это Docker-контейнер. У автора на хабре есть статья о Docker’е, и описание о том, какой он классный.
Суть «игры» проста, существуют цепочки заданий, в каждом из которых существуют возможности (команды) администрирования системы с помощью терминала (иных вариантов у тебя нет, ты подключаешься по SSH).
connection
Как я говорил раньше, подключаться надо по SSH. Я, лично, для этого решил юзать PyTTY. Просто потому что я работаю из под продукции мелкомягких, а эта софтина у меня стоит на всех устройствах со времен революции на/в Украине.
- Скачиваем PyTTY(официальный сайт)
- Устанавливаем это чудовище
- Открываем и видим окно
- Выдыхаем. Не пугаемся великого множества различных настроек, нам нужны только окно ввода «Host Name», выбор типа подключения SSH, и кнопка «Open».
- Успокоились? Теперь определяемся с хостом. На гите лабы указан домен suzen.myctf.ru, но обычно он лежит на боку, не будем пинать труп и возьмем пока еще не лежащий хост, который был выдан украдкой для выполнения лабы: suzen.shejt.net.
- Пишем в прогу наш хост и подключаемся по кнопке Open.
При появлении такого окошкаПросто нажимайте «Да», я понимаю, что выглядит это как вызов дьявола или инструкция древнегреческого обряда по вызову богини Афины в стан славного города Волгодонск, но это не так. Прога просто напоминает, что хост не гарантирует безопасность.
- Дальше логинимся в цепочку(chain). Помним, что для первого задания в цепочке действует правило логин=пароль. То есть, для suzen1 пароль будет suzen1. А вот для следующего уровня, паролем будет уже полученный ответ из предыдущего уровня.
chain 1-4
Самая простая цепочка на обзор. Так как я не администрирую Linux каждый день, и не мастурбирую на него, радуясь каждому исполнению команды. У меня такого щенячего восторга от использования Терминала нет. Это не говорит о том, что я против этих «противных черных консольных окошечек», нет. Отнюдь, я просто к ним не отношусь, как и к депутатам РФ. Но это уже лирика. Я просто начинал с полиграфического дизайна, перешел на дизайн интерфейсов, а после на интерфейс мобильных приложений, поэтому я сторонник удобного, но «мощного» GUI.
Короче, дело к ночи, а мы тут в админ линуксоида полезли. Лезем дальше.
suzen1
После логина мы увидим такое сообщение Все это говорит нам об удачном подключении к контейнеру.
В приветственном сообщении, выведенном при успешном подключении к контейнеру, мы видим разрешенные утилиты (команды) для использования и поиска информации, необходимой для «прохождения» уровня.
В первом уровне мы видим неплохой список утилит, которых более чем достаточно для операций с файлами и прочтения текстовых файлов.
Разберем доступные утилиты, для чего они нужны:
- ls — основа основ. С помощью этой команды мы смотрим на содержимое открытого каталога. Еще можем посмотреть разрешения, но это уже может быть сложно для начального уровня.
- cd — еще одна основа основ. Расшифровкой этой команды является два слова: change directory. Думаю, на пару азами английского языка, можно понять для чего она нужна.
- cat — просто команда для просмотра файлов в текстовом режиме. Это все, что вам, покамест, надо знать.
Так, так, окей. Минимальные знания для прохождения парочки уровней мы получили, пойдем их применим.
Смотри че покажу:
Итак, разбираемся что тут у нас произошло. Важно понимать, что я тут выделил цветом:
- желтый — команды, которые я использовал
- зеленый — тот самый ответ на задачу, который мы должны искать, чтобы пройти уровень
Первой командой ls мы проверили какие файлы есть в домашней директории контейнера. По условию задачи, нашей домашней директорией является /home/suzen
Выводом сего действия является скучное одно diary.txt.
Второй командой мы открываем сей единственный текстовый файл с помощью команды cat. И получаем абсолютно бесполезную историю с вполне себе полезным флагом, который и является необходимым для прохождения результатом.
Шаги для нахождения ответа
Этот флаг будет паролем на suzen2.
suzen2
Тут нам дали просто нереально щедрое количество различных утилит. Все это нам, по сути, не надо. Давайте просто чекнем что у нас валяется в домашнем каталоге с помощью команды ls:
А тут у нас помоечка. Еще и дневничок с интересным названием.
Что вам нужно знать: $diary.txt очень неприятное название для файла. Просто знайте, что вы не сможете открыть его просто так, напрямую. Во-всяком случае в PyTTY точно нет.
Чтобы его открыть, воспользуемся экранированием. Добро пожаловать в Google.com.
На самом деле, это просто backslash перед символом, который вызывает сомнения. Это простое объяснение, не надо так отвечать преподавателю. Я предупредил.
Введем команду cat \$diary.txt
Получим такой вот треш. Практически все это мусор, кроме розового текста. По идее это должно быть подсказкой. Что может еще отличаться от всей массы мусора если размер точно одинаков? — Дата. Я решил посмотреть даты создания этих безформатных файлов.
Для этого заюзаем команду ls с флагом -l.
Как мы видим, вся плеяда мусора в каталоге создана в 14:35. И лишь один файл создан в 14:43. Проверим его командой cat :
И надо же, о чудо, наконец-то так, как я люблю: Строго по-делу.
Источник