Практическая работа №3
Основные теоретические положения
Section titled “Основные теоретические положения”1. Командная строка и структура команды
CMD (cmd.exe) — командный интерпретатор Windows, позволяющий выполнять операции без графического интерфейса.
Команда может содержать имя, ключи и аргументы:
DIR /B "%USERPROFILE%"Здесь DIR — команда просмотра содержимого каталога, /B — ключ краткого вывода, а %USERPROFILE% — переменная среды, содержащая путь к профилю текущего пользователя.
Для справки можно использовать help и ключ /?:
helphelp dircopy /?2. Сведения об операционной системе и процессах
| Команда | Назначение |
|---|---|
ver | Вывод версии Windows |
hostname | Имя компьютера |
whoami | Имя текущей учётной записи |
echo %USERNAME% | Имя пользователя из переменной среды |
echo %CD% | Полный путь к текущему каталогу |
tasklist | Список запущенных процессов |
systeminfo | Дополнительные сведения об ОС и компьютере (выполнение может занимать время) |
Пример:
hostnamewhoamitasklistОбратите внимание: CMD, PowerShell и Проводник Windows — разные способы работы с системой. В данной работе команды выполняются именно в CMD.
3. Навигация и операции с файлами
| Команда | Назначение | Пример |
|---|---|---|
cd | Показать текущий каталог или перейти в другой | cd /d "%USERPROFILE%" |
cd .. | Перейти в родительский каталог | cd .. |
dir | Просмотреть содержимое каталога | dir /b |
md | Создать каталог | md reports |
tree | Показать дерево каталогов | tree /f /a |
echo | Вывести строку, в том числе в файл | echo Hello > note.txt |
type | Вывести содержимое текстового файла | type note.txt |
copy | Скопировать файл | copy note.txt backup\note.txt |
move | Переместить файл | move note.txt work\ |
ren | Переименовать файл | ren note.txt result.txt |
del | Удалить файл | del test.txt |
Абсолютный путь указывает расположение объекта от корня диска, например C:\Users\Student\Documents. Относительный путь отсчитывается от текущего каталога, например input\readme.txt.
Если в пути есть пробелы, используйте кавычки:
cd /d "%USERPROFILE%"4. Стандартные потоки, перенаправление и конвейеры
При выполнении команды обычно используются стандартный ввод (stdin), стандартный вывод (stdout) и поток ошибок (stderr).
echo First > note.txtecho Second >> note.txttype note.txt>— записать вывод в файл, заменив прежнее содержимое;>>— добавить вывод в конец файла;2>— перенаправить сообщения об ошибках в файл;|— передать вывод одной команды на вход следующей.
Например:
tasklist > processes.txttype processes.txt | findstr /i "cmd.exe"Здесь findstr /i ищет строки без учёта регистра.
5. Поиск информации и сравнение файлов
findstr /i "ERROR" app.logfindstr /i "ERROR" app.log > errors.txtfc original.txt modified.txtfindstr ищет строки по указанному образцу, а fc сравнивает содержимое двух файлов. Для вывода только имён файлов пригодится dir /b, а для просмотра вложенных файлов — dir /b /s /a-d.
Задания для выполнения
Section titled “Задания для выполнения”Часть 1. Исследование командной среды и файловой системы
Section titled “Часть 1. Исследование командной среды и файловой системы”Задание 1.1. Получение сведений об операционной системе
Откройте CMD с помощью Win + R → cmd → Enter.
- Выполните команды
ver,hostnameиwhoami. - Выведите значение переменных
%USERNAME%и%USERPROFILE%. - Выполните
tasklistи найдите в списке процессcmd.exe(если его имя отображается в списке). - Самостоятельно выясните, для чего используется ключ
/FIкомандыtasklist, используя встроенную справку.
Запишите в тетрадь или черновой текстовый файл ответы: чем различаются имя компьютера и имя пользователя; что показывает tasklist; для чего служит %USERPROFILE%.
Задание 1.2. Создание рабочей структуры каталогов
Перейдите в свой профиль пользователя:
cd /d "%USERPROFILE%"Создайте учебную папку CMD_Practice_Фамилия (фамилию укажите латиницей, например CMD_Practice_Petrov). Перейдите в неё и подготовьте структуру:
CMD_Practice_Petrov\├── input\├── work\├── backup\└── reports\Выполните команды, показывающие текущий каталог и дерево созданных каталогов. При необходимости используйте cd, md, dir и tree.
Во всех последующих заданиях текущим каталогом должна быть корневая папка вашей практической работы.
Задание 1.3. Создание и просмотр текстовых файлов
В каталоге input создайте три файла только через CMD. Используйте echo, > и >>.
Содержимое input\readme.txt:
Project: StudyPortalOwner: studentStatus: draftСодержимое input\settings.ini:
PORT=8080MODE=developmentСодержимое input\app.log:
INFO startERROR config missingWARNING retryERROR access deniedINFO stopОбразец создания первой строки:
echo Project: StudyPortal > input\readme.txtОстальные строки запишите самостоятельно. Выведите содержимое каждого файла командой type и убедитесь, что строки идут в правильном порядке.
Задание 1.4. Поиск данных и сохранение результатов
- Выведите содержимое
input\app.logна экран. - Найдите в нём все строки, содержащие
ERROR, с помощьюfindstr. - Сохраните найденные строки в файл
reports\errors.txt. - Повторите поиск, используя конвейер: команда чтения файла
|команда поиска. - Сохраните список имён файлов каталога
inputвreports\input_files.txt. - Сохраните сведения о версии ОС, имени компьютера и текущем пользователе в один файл
reports\system.txt, используя>для первой команды и>>для последующих.
Образец перенаправления:
findstr /i "ERROR" input\app.log > reports\errors.txtПроверка: файл errors.txt должен содержать ровно две строки, а файл system.txt — сведения, полученные из командной строки, а не набранные вручную.
Часть 2. Индивидуальное задание
Section titled “Часть 2. Индивидуальное задание”Вариант 1. Подготовка файлов проекта к передаче
Вы получили материалы проекта StudyPortal и должны собрать комплект для другого разработчика.
- Создайте в
workкаталогrelease. - Скопируйте
readme.txtиsettings.iniизinputвwork\release. - Переименуйте копию
readme.txtвproject_readme.txt. - Добавьте только в копию строку
Status: ready. - Создайте в
backupкопию исходногоreadme.txtпод именемreadme_original.txt. - Сохраните структуру
workс файлами вreports\release_tree.txt. - Сравните исходный
readme.txtи подготовленныйproject_readme.txtс помощьюfc. Устно объясните отличие.
Результат: готовая папка work\release, неизменённые исходники, резервная копия и отчёт о структуре.
Вариант 2. Анализ журнала приложения
Вы помогаете разработчику выяснить, почему приложение работало с ошибками.
- Скопируйте
input\app.logвwork\app_review.log. - Добавьте в копию одну строку
ERROR timeout. - Сохраните все строки с
ERRORиз копии вreports\review_errors.txt. - Сохраните все строки с
INFOвreports\review_info.txt. - Выведите на экран количество строк с
ERROR, используя конвейер сfind /c(при необходимости откройте справкуfind /?). - Сохраните результат сравнения исходного журнала и копии в
reports\log_diff.txt.
Результат: в review_errors.txt три строки, в review_info.txt две строки, а log_diff.txt отражает добавленную запись.
Вариант 3. Инвентаризация рабочего места
Перед передачей компьютера другому сотруднику необходимо составить краткий технический отчёт.
- Создайте
reports\inventory.txt. - Запишите в него с помощью вывода команд версию Windows, имя компьютера, текущего пользователя и полный путь к учебной папке.
- Сохраните полный список запущенных процессов в
reports\processes.txt. - С помощью
findstrнайдите в этом списке процессcmd.exe. Результат поиска выведите на экран. - Сохраните дерево учебной папки с файлами в
reports\structure.txt. - Сравните команды
hostnameиwhoami. Объясните, для чего в отчёте нужны обе.
Результат: три отчёта: inventory.txt, processes.txt и structure.txt. Данные должны быть собраны командами CMD, а не перепечатаны вручную.
Вариант 4. Проверка изменений конфигурации
Перед запуском приложения нужно сохранить исходные настройки и подготовить рабочую копию.
- Скопируйте
input\settings.iniвbackup\settings_original.ini. - Скопируйте исходный файл в
work\settings.ini. - Добавьте в рабочую копию строку
LOG_LEVEL=debug. - Сравните резервную и рабочую версии с помощью
fc. - Сохраните результат сравнения в
reports\settings_diff.txt. - Найдите в рабочей копии строки, содержащие
PORTиLOG_LEVEL, и сохраните результат вreports\settings_check.txt(для двух поисков допускается использовать>и>>). - Убедитесь, что исходный
input\settings.iniне изменился.
Результат: исходная, резервная и рабочая версии конфигурации и два отчёта.
Вариант 5. Сортировка полученных материалов
В папке проекта смешались документы, настройки и журналы. Нужно разложить их по назначению.
- Создайте в
workкаталогиdocs,configиlogs. - Скопируйте
input\readme.txtво временный кореньwork. - Скопируйте
input\settings.iniиinput\app.logтуда же. - Переместите полученные копии в соответствующие каталоги: текстовый документ — в
docs, настройки — вconfig, журнал — вlogs. - Переименуйте документ в
project_info.txt. - Сохраните дерево
workвreports\sorted_tree.txt, а список полных путей к файлам вreports\sorted_files.txt. - Проверьте, что файлы из
inputостались без изменений и в корнеworkне осталось скопированных файлов.
Результат: три тематических каталога и два отчёта.
Вариант 6. Резервное копирование и восстановление
Перед изменением проекта необходимо проверить, можно ли восстановить его файлы.
- Скопируйте все три исходных файла из
inputвbackup. - Скопируйте
readme.txtиз резервной копии вwork. - Добавьте в
work\readme.txtстрокуStatus: changed. - Сравните рабочую копию с резервной посредством
fc; сохраните результат вreports\before_restore.txt. - Восстановите
work\readme.txtиз резервной копии, заменив изменённый файл. - Повторите сравнение и сохраните его вывод в
reports\after_restore.txt. - Объясните, почему результаты двух сравнений должны отличаться.
Результат: три файла в backup, восстановленный readme.txt в work и два отчёта о проверке.
Проверка и сдача работы
Section titled “Проверка и сдача работы”- Выполните в корне учебной папки команду
tree /f /a. - Убедитесь, что
reports\errors.txtиreports\system.txtсозданы, а файлы вашего индивидуального варианта содержат ожидаемые данные. - Покажите преподавателю папку с результатами и продемонстрируйте выполнение одной команды, использованной в индивидуальном задании.
Дополнительное задание для успевших: выясните с помощью справки CMD, как просмотреть только .txt-файлы внутри всех вложенных папок work, и сохраните список в reports\all_txt.txt.
Контрольные вопросы
Section titled “Контрольные вопросы”- Чем CMD отличается от графического интерфейса Windows и PowerShell?
- Для чего используется переменная среды
%USERPROFILE%? - В чём различие между абсолютным и относительным путём?
- Чем
cd /dотличается от обычногоcd? - Какую информацию показывает команда
tasklist? - В чём различие между
copy,moveиren? - Чем отличаются операторы
>и>>? - Что означает
2>и какой тип вывода он перенаправляет? - Как работает оператор
|? Приведите пример конвейера. - Для чего используются команды
findstrиfc?
Рекомендуемая литература
Section titled “Рекомендуемая литература”- Microsoft Learn — справочник по командам Windows.
- Microsoft Learn — команда
cmd. - Microsoft Learn — команда
dir. - Microsoft Learn — команда
findstr. - Встроенная справка CMD:
help,<команда> /?.