Урок 9. Командная строка и PowerShell
Мышью удобно делать то, что делается редко. Команды выигрывают там, где нужно повторить одно и то же много раз, найти сведения, которых нет в окнах, или помочь кому-то по телефону: «наберите ipconfig и прочитайте строку». В Windows две командные оболочки:
- Командная строка (
cmd) — старая, с короткими командамиdir,copy,ping. Работает везде и почти в каждой инструкции. - PowerShell — новая и гораздо более мощная: её команды возвращают не текст, а объекты со свойствами, которые можно сортировать и отбирать. В Windows 10 и 11 встроен Windows PowerShell 5.1.
Обе открываются в приложении Терминал (Windows Terminal) — оно умеет держать несколько вкладок с разными оболочками.
Как открыть
- Правый щелчок по кнопке «Пуск» (или
Win+X) → пункт терминала; в Windows 10 — Windows PowerShell. Win+R→cmdилиpowershell→ Enter.- Через поиск в меню «Пуск»: наберите «cmd» или «PowerShell».
Многим командам нужны права администратора. Для этого в меню Win+X выберите пункт с пометкой «администратор» или в результатах поиска — «Запуск от имени администратора». Заголовок такого окна начинается со слова «Администратор».
Слева от курсора — приглашение: папка, в которой вы сейчас находитесь. В cmd оно выглядит как C:\Users\ivan>, в PowerShell — PS C:\Users\ivan>.
Основные команды
| Что сделать | cmd | PowerShell |
|---|---|---|
| Показать содержимое папки | dir | Get-ChildItem (или dir, ls) |
| Перейти в папку | cd Documents | Set-Location Documents (или cd) |
| На уровень выше | cd .. | cd .. |
| Создать папку | mkdir Проекты | New-Item -ItemType Directory Проекты (или mkdir) |
| Копировать файл | copy a.txt b.txt | Copy-Item a.txt b.txt |
| Переместить | move a.txt D:\ | Move-Item a.txt D:\ |
| Переименовать | ren a.txt c.txt | Rename-Item a.txt c.txt |
| Удалить файл | del a.txt | Remove-Item a.txt |
| Показать текстовый файл | type a.txt | Get-Content a.txt |
| Очистить экран | cls | cls |
| Справка по команде | copy /? | Get-Help Copy-Item |
Привычные команды dir, cd, cls работают и в PowerShell — это псевдонимы его команд. Но ключи у них другие: dir /s из cmd в PowerShell записывается как dir -Recurse.
Три приёма, которые экономят время:
Tabдописывает имя файла или папки;- стрелка вверх возвращает прошлые команды;
Ctrl+Cпрерывает команду, которая работает слишком долго.
Путь с пробелами берите в кавычки: cd "C:\Program Files".
Команды удаляют файлы мимо корзины. del /s, rmdir /s, Remove-Item -Recurse удаляют сразу всё в папке и её подпапках, без возможности вернуть. Перед такой командой проверьте папку через dir и путь в приглашении.
Полезные команды
| Команда | Что делает |
|---|---|
ipconfig | Сетевые адреса компьютера |
ping адрес | Проверка связи с узлом |
systeminfo | Сведения о системе: версия, память, дата установки |
tasklist | Список запущенных процессов |
taskkill /IM notepad.exe | Закрыть программу по имени файла |
shutdown /r /t 0 | Перезагрузить сейчас |
shutdown /s /t 0 | Выключить сейчас |
whoami | Имя текущего пользователя |
winver | Окно с версией Windows |
PowerShell: команды и конвейер
Команды PowerShell называются по схеме Глагол-Существительное: Get-Process — получить процессы, Stop-Process — остановить процесс, Get-Service — получить службы. Найти команду по слову помогает Get-Command:
Get-Command *service*Самое сильное в PowerShell — конвейер: знак | передаёт результат одной команды в следующую. Пять процессов, которые заняли больше всего процессорного времени:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPUSort-Object сортирует по свойству CPU, Select-Object оставляет первые пять строк и нужные столбцы. Отбор по условию делает Where-Object — например, только запущенные службы:
Get-Service | Where-Object Status -eq RunningСвой скрипт
Скрипт — файл с командами, который выполняется целиком. Скрипт PowerShell — файл с расширением .ps1. Создайте папку C:\Scripts, а в ней в «Блокноте» файл largest.ps1 (при сохранении выберите тип «Все файлы», чтобы не получилось largest.ps1.txt). Скрипт покажет пять самых больших файлов в папке «Загрузки»:
$folder = Join-Path $env:USERPROFILE "Downloads"
Get-ChildItem -Path $folder -File -Recurse |
Sort-Object Length -Descending |
Select-Object -First 5 Name, @{Name = "MB"; Expression = { [math]::Round($_.Length / 1MB, 1) }}Запуск — из папки со скриптом, с .\ перед именем:
cd C:\Scripts
.\largest.ps1На домашних Windows запуск скриптов по умолчанию запрещён, и PowerShell ответит, что выполнение сценариев отключено. Разрешите запуск своих скриптов и скриптов из интернета с цифровой подписью — только для своей учётной записи:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserНе ставьте политику Unrestricted и не запускайте скрипты из непроверенных источников: скрипт PowerShell может сделать с файлами всё, что может пользователь, а запущенный от имени администратора — всё с системой.
Если в скрипте есть русские буквы, сохраняйте его в кодировке «UTF-8 с BOM». Windows PowerShell 5.1 читает файлы без BOM в старой кодировке, и русский текст превращается в набор непонятных знаков. В примере выше русских букв нет специально.
У cmd тоже есть скрипты — пакетные файлы .bat (в обиходе «батники»). Для новых задач удобнее PowerShell.
PowerShell 7
Кроме встроенного Windows PowerShell 5.1 есть новый PowerShell 7 — бесплатный, с открытым кодом, работает и в Linux, и в macOS. Ставится он отдельно, например через winget, и запускается командой pwsh:
winget install --id Microsoft.PowerShell -eДля команд из этого курса подходит любой из них.
Коротко
- Две оболочки:
cmd— простые старые команды, PowerShell — команды-объекты и конвейер. - Открыть —
Win+X→ терминал; права администратора — пункт с пометкой «администратор». dir,cd,copy,move,delв cmd —Get-ChildItem,Set-Location,Copy-Item,Move-Item,Remove-Itemв PowerShell.- Конвейер
|:Get-Process | Sort-Object CPU -Descending | Select-Object -First 5. - Скрипт
.ps1запускается как.\имя.ps1; для своих скриптов —Set-ExecutionPolicy RemoteSigned -Scope CurrentUser. - Команды удаления работают мимо корзины.