Гайд по командной строке windows

Командная строка Windows — это один из самых мощных инструментов на ПК. С ее помощью можно напрямую взаимодействовать с операционной системой и выполнять различные действия, которые недоступны в графическом интерфейсе (GUI).

В этой статье мы покажем вам 40 операций, которые можно использовать в командной строке Windows. Они помогут вам стать более уверенным пользователем.

Операции в командной строке Windows

powershell start cmd -v runAs – запускает командную строку от имени администратора. Ввод этой команды откроет новое окно командной строки с правами администратора.

driverquery – отображает все установленные драйвера. Важно иметь доступ ко всем драйверам, так как они часто вызывают проблемы. Эта команда показывает даже те драйверы, которые не отображаются в диспетчере устройств.

chdir или cd – меняет текущий рабочий каталог на указанный каталог.

systeminfo – показывает информацию о вашем ПК. Эта команда предоставляет подробную информацию о системе, которую нельзя увидеть в графическом интерфейсе.

set – показывает переменные среды вашего компьютера.

prompt – меняет текст, отображаемый перед вводом команд. По умолчанию командная строка показывает путь к диску C. Вы можете изменить этот текст с помощью команды prompt с синтаксисом: prompt имя_подсказки $G.
Примечание: если не добавить $G к команде, символ «>» не появится перед текстом.

clip – копирует элементы в буфер обмена. Например, dir | clip копирует содержимое текущего каталога в буфер обмена. Можно ввести clip /? и нажать ENTER для получения инструкций.

assoc – отображает программы и связанные с ними расширения файлов.

title – меняет заголовок окна командной строки с помощью команды: title имя_заголовка

fc – сравнивает два файла. Эта команда полезна для быстрого выявления различий между двумя файлами. Пример: fc «путь_к_файлу1» «путь_к_файлу2».

cipher – очищает диск и шифрует данные. Удаленные файлы остаются доступными. 

netstat -an – показывает открытые порты, их IP-адреса и состояния.

ping – вычисляет IP-адреса сайта и время передачи данных.

color – меняет цвет текста командной строки.

Ввод команды color 2 покажет доступные цвета.

for /f «skip=9 tokens=1,2 delims=:» %i in (‘netsh wlan show profiles’) do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear – показывает все пароли Wi-Fi.

ipconfig – выдает информацию об IP-адресах и сетевых подключениях. Команда имеет расширения, например: ipconfig /release, ipconfig /renew, ipconfig /flushdns для устранения проблем с интернет-соединением.

sfc – проверяет системные файлы. Команда сканирует и исправляет поврежденные файлы. Используйте расширение /scannow для запуска проверки.

powercfg – меняет настройки питания. Команда имеет несколько расширений. Вы можете ввести powercfg help, чтобы показать эти расширения.

Например, powercfg /energy создает отчет о состоянии батареи в виде HTML-файла, который можно найти по пути: C:\Windows\system32\energy-report.html.

dir – показывает содержимого каталога.

del – удаляет файлы.

attrib +h +s +r имя_папки – скрывает папки. Для отображения папки используйте команду: attrib -h -s -r имя_папки.

start адрес_сайта – открывает сайт из командной строки,

tree – показывает структуру текущего каталога или указанного диска.

ver – отображает версиию ОС.

tasklist – показывает открытые программы.

taskkill – завершает выполнение задачи. Для завершения задачи выполните команду: taskkill /IM «task.exe» /F. Пример: taskkill /IM «chrome.exe» /F.

date – показывает и меняет дату.

time – показывает и меняет время.

vol – выдает серийный номер и информацию о метке текущего накопителя.

dism – запускает средство управления службой образов развертывания.

CTRL + C – прерывает выполнение команды.

-help – выдает справку по командам.

echo – показывает пользовательские сообщения или сообщения из сценария, файла. 

Пример создания файла: echo содержимое_файла > имя_файла.расширение.

mkdir – создает папку.

rmdir – удаляет папку. Помните, папка должна быть пустой для успешного удаления.

more – показывает дополнительную информацию или содержимое файла.

move – перемещает файл или папку в указанный каталог.

ren – переименовывает файл. Пример: ren имя_файла.расширение новое_имя.расширение.

cls – очищает командную строку.

exit – закрывает командную строку.

shutdown – завершение работы, перезагрузка, перевод в спящий режим.
Для просмотра доступных опций введите shutdown в командной строке. Например, shutdown /r перезагрузит компьютер.

В итоге

Эта статья познакомила вас с несколькими командами, которые позволяют получить доступ к скрытым функциям вашего ПК. Будьте осторожны при работе с ними, так как они могут оказать длительное воздействие на вашу операционную систему.

Command Line Commands – CLI Tutorial

The Windows command line is one of the most powerful utilities on a Windows PC. With it, you can interact with the OS directly and do a lot of things not available in the graphical user interface (GUI).

In this article, I’ll show you 40 commands you can use on the Windows command line that can boost your confidence as a Windows user.

N.B.: You have to be careful while using the commands I’ll show you. This is because some commands can have a lasting negative or positive effect on your Windows PC until you reset it.

In addition, some of these commands require you to open the command prompt as an admin.

ss5-1

powershell start cmd -v runAs – Run the Command Prompt as an Administrator

Entering this command opens another command prompt window as an administrator:

ss1-1

driverquery – Lists All Installed Drivers

It is important to have access to all drivers because they often cause problems.

That’s what this command does – it shows you even the drivers you won’t find in the device manager.

ss2-1

chdir or cd – Changes the Current Working Directory to the Specified Directory

ss3-1

systeminfo – Shows Your PC’s Details

If you want to see more detailed information about your system you won’t see in the GUI, this is the command for you.

ss4-1

set – Shows your PC’s Environment Variables

ss5-2

prompt – Changes the Default Text Shown before Entering Commands

By default, the command prompt shows the C drive path to your user account.

You can use the prompt command to change that default text with the syntax prompt prompt_name $G:

ss6-1

N.B: If you don’t append $G to the command, you won’t get the greater than symbol in front of the text.

clip – Copies an Item to the Clipboard

For example, dir | clip copies all the content of the present working directory to the clipboard.

ss7

You can type clip /? and hit ENTER to see how to use it.

assoc – Lists Programs and the Extensions They are Associated With

ss8

title – Changes the Command Prompt Window Title Using the Format title window-title-name

ss9

fc – Compares Two Similar Files

If you are a programmer or writer and you want to quickly see what differs between two files, you can enter this command and then the full path to the two files. For example fc “file-1-path” “file-2-path”.

ss10

cipher – Wipes Free Space and Encrypts Data

On a PC, deleted files remain accessible to you and other users. So, technically, they are not deleted under the hood.

You can use the cipher command to wipe the drive clean and encrypt such files.

ss11

netstat -an – Shows Open Ports, their IP Addresses and States

ss12

ping – Shows a Website IP Address, Lets you Know How Long it Takes to Transmit Data and a Get Response

ss13

color – Changes the Text Color of the Command Prompt

Enter color attr to see the colors you can change to:

ss14

Entering color 2 changes the color of the terminal to green:

ss15

for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear – Shows All Wi-Fi Passwords

ss16

ipconfig – Shows Information about PC IP Addresses and Connections

ss17

This command also has extensions such as ipconfig /release, ipconfig /renew, and ipconfig /flushdns which you can use to troubleshoot issues with internet connections.

sfc – System File Checker

This command scans your computer for corrupt files and repairs them. The extension of the command you can use to run a scan is /scannow.

ss18

powercfg – Controls Configurable Power Settings

You can use this command with its several extensions to show information about the power state of your PC.

You can enter powercfg help to show those extensions.

ss19

For example, you can use powercfg /energy to generate a battery health report.

ss20

The powercfg /energy command will generate an HTML file containing the report. You can find the HTML file in C:\Windows\system32\energy-report.html.

dir – Lists Items in a Directory

ss21

del – Deletes a File

ss22

attrib +h +s +r folder_name – Hides a Folder

You can hide a folder right from the command line by typing in attrib +h +s +r folder_name and then pressing ENTER.

To show the folder again, execute the command – attrib -h -s -r folder_name.

ss23

start website-address – Logs on to a Website from the Command Line

ss24

ss25

tree – Shows the Tree of the Current Directory or Specified Drive

ss26

ver – Shows the Version of the OS

ss27

tasklist – Shows Open Programs

You can do the same thing you do with the task manager with this command:

ss28

The next command shows you how to close an open task.

taskkill – Terminates a Running Task

To kill a task, run taskkill /IM "task.exe" /F. For example, taskkill /IM "chrome.exe" /F:

ss29

date – Shows and Changes the Current Date

ss30

time – Shows and Changes the Current Time

ss31

vol – Shows the Serial Number and Label Info of the Current Drive

ss32

dism – Runs the Deployment Image Service Management Tool

ss33

CTRL + C – Stops the Execution of a Command

-help – Provides a Guide to other Commands

For example, powercfg -help shows how to use the powercfg command

ss34

echo – Shows Custom Messages or Messages from a Script or File

ss35

You can also use the echo command to create a file with this syntax echo file-content > filename.extension.

ss36

mkdir – Creates a Folder

ss37

rmdir – Deletes a Folder

ss38

N.B.: The folder must be empty for this command to work.

more – Shows More Information or the Content of a File

ss39

move – Moves a File or Folder to a Specified Folder

ss40

ren – Renames a File with the Syntax ren filename.extension new-name.extension

ss41-1

cls – Clears the Command Line

In case you enter several commands and the command line gets clogged up, you can use cls to clear all entries and their outputs.

cls

exit – Closes the Command Line

shutdown – Shuts down, Restarts, Hibernates, Sleeps the Computer

You can shut down, restart, hibernate, and sleep your PC from the command line.

Enter shutdown in the command line so you can see the extensions you can use to perform the actions. For example, shutdown /r will restart your computer.

ss42

Conclusion

This article showed you several “unknown-to-many” commands you can use to get access to hidden functionalities on your Windows PC.

Again, you should be careful while working with these commands because they can have a lasting effect on your OS.

If you find the commands helpful, share the article with your friends and family.

In case you know another useful command I did not list, tell me about it on Twitter. I will add it and mention you as the source.



Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started

Этот урок переехал в мой гитхаб: https://github.com/codedokode/pasta/blob/master/soft/cli.md

Ниже — старая, неактуальная версия.


Как начать пользоваться командной строкой

Я не знаю, ты пользуешься Линуксом или Уиндоузом (обычно туториалы рассчитаны на линуксоидов и макосников, уиндоуз не модный среди молодежи). В макоси все практически так же как и в линуксе, в windows пошли своим путем и сделали все как в DOS.

Думаю, что в данном случае тебе поможет не рыба, а удочка, так что держи пасту. Если после прочтения у тебя будут какие-то вопросы, или по-прежнему непонятно, почему команды не работают, пиши в наш уютный тред, разберемся.

Краткий мануал чайника по командной строке:

Как попасть в командную строку?

  • Windows XP: Пуск — Выполнить — набрать cmd — нажать [enter]
  • Windows7: Пуск — набрать cmd — наждать [enter]
  • MacOS: Запустить приложение Терминал (его можно найти поиском в той фигне которая справа вверху экрана)
  • Ubuntu: Запустить приложение Терминал или нажать Alt + Ctrl + F1 (ааа как вернуться назад? Ctrl + F7)
  • Linux: если ты линуксоид, ты и так знаешь

Во всех операционных системах

↑,↓ — стрелки вверх и вниз в командной строке позволяют смотреть предыдущие введенные команды, чтобы 2 раза не набирать. В Windows при закрытии окошка консоли вся история теряется, в других ОС — сохраняется.

[tab] — автодополняет имена файлов и команды. Если в текущем каталоге есть файл file.txt, ты наберешь fi и нажмешь [tab] то он автодополнит имя файла (или предложит варианты, если таких файлов несколько).

[ctrl+c] — прерывает выполнение команды, например, если она долго тупит

Важно: клавиша Esc не работает в командной строке. Клавиши Ctrl + C, V, X не работают как «копировать/вырезать/вставить» (иногда для вставки можно использовать Shift + Ins). Клавиша Ctrl + Q не работает как «выход».

Линукс и мак

В линуксе и маке, [ctrl+l] очищает экран, [ctrl+k] и [ctrl+u] удаляют все перед или после курсора, [ctrl+w] удаляет слово перед курсором, [ctrl+r] делает поиск по истории команд (для отмены поиска нажми [ctrl+c], escape в командной строке не работает, для завершения поиска нажми стрелку вправо/влево), [ctrl+d] завершает работу и закрывает консоль.

Еще в линуксе и маке иногда не работают Home и End, используй [ctrl+a] чтобы перейти в начала строки и [ctrl+e], чтобы в конец. [alt + b] (back) и [alt + f] (forward) двигают курсор на 1 слово назад/вперед.

Буфер обмена

В командной строке не работает ctrl+v,c,x для вставки, копирования и вырезания текста. Иногда (зависит от настроек системы) вставить текст можно через [shift+ins], иногда правой кнопкой мыши. Скопировать текст можно, выделив мышью (в Windows надо разрешить выделение текста сначала в настройках окна и нажать Enter после выделения).

Текущий каталог

В командной строке результат выполнения команд зависит от того, в каком каталоге и на каком диске ты находишься. Какой каталог текущий, в Windows написано в подсказке, а в linux можно узнать командой pwd (print working directory)

Чтобы перейти в другой каталог, в линуксе используют команду cd:

cd /  — перейти в корневой каталог (в линукс нет букв дисков, и корневой каталог один на всю систему)
cd /etc/apache — перейти в каталог /etc/apache
cd files — переходит в каталог files внутри текущего
cd .. — переходит в родительский кталог
cd ../.. — переходит на 2 уровня выше
cd ~ — перейти в свой домашний каталог (/home/anon например)
cd ~/test — перейти в /home/anon/test

В Windows, сначала надо перейти на нужный диск командой c:, d:, e: и так далее. Потом использовать cd или chdir:

d:   - перейти на диск d:
cd \ — перейти в корневой каталог
cd \windows\system32
cd ..
cd ..\..

Обрати внимание, windows и linux используют разные виды слешей. Обрати внимание, .. обозначает «родительский каталог». Обрати внимание, только в линукс и мак ~ обозначает «домашний каталог» (это /home/username или /Users/username). . (одна точка) обозначает текущий каталог и cd . никуда не перейдет. / (линукс) или \ (Windows) обозначает корневой каталог.

Очистка экрана

В linux — команда clear или клавиша [ctrl+L], в windows — команда cls (clear screen).

Список файлов

Посмотреть, какие файлы есть в текущем каталоге, можно командой dir в Windows и командой ls в линуксе (ls -a — показывает все файлы, включая скрытые, ls -l — показывает не только имена, но и размер, дату создания файла, права на него).

Посмотреть права на файл в Линукс можно либо командой ls -l, либо stat file.txt

Команды и оболочка

Оболочка — это cmd.exe в Windows и bash в линукс, это та программа, которая собственно мигает курсором и выполняет твои команды. Ты набираешь команды, а она их выполняет. Команда обычно состоит из имени команды, и, иногда, дополнительных параметров, отделенных пробелом, вроде:

ls — показать список файлов в линукс
ls -l — показать файлы с подробностями
dir — показать список файлов в windows с подробностями
dir /b — показать только имена файлов, без подробностей

Подсказка

Почти у любой команды есть подсказки. Чтобы их увидеть, добавь к имени команды параметр (--help или /?):

В линукс: ls --help — выведет справку по команде ls

В линукс: man bash — выведет подробную длинную справку по команде bash (для выхода жми q,
для прокрутки используй стрелки и PgUp/PgDn)

В Windows: dir /? — выведет справку по команде dir

В Windows: help выведет подсказку по основным командам

Виды команд

Команды бывают внутренние (это маленький список команд, встроенных в оболочку). Встроенные команды — это, например, cd в линукс или exit в Windows. Их мало.

Внешние команды — их большинство — это фактически программы, лежащие на диске. Оболочка ищет их не по всему диску, а только в заранее заданных папках. Список папок перечислен в специальной переменной PATH. Просмотреть эту переменную можно так:

В линуксе: echo $PATH

В windows: echo %PATH%

В linux PATH — это папки /bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin, именно в них в Линуксе хранятся почти все программы. В текущем каталоге програмы не ищутся, если это не указать явно.

В Windows PATH — это всякие системные папки вроде c:\windows и так далее + текущий каталог, в котором ты находишься. Заметь, что папки вроде c:\program files\autocad в PATH не добавлены и в Windows таким образом, из командной строки обычные программы и игры, установленные в Program Files, не запустить. Только то, что положено в системные папки.

Таким образом: если ты под линуксом, и ты набираешь команду php, то скорее всего файл php лежит в одной из *bin папок и эта команда запустит php. Если ты под Windows установил php допустим в c:\php, и не прописал этот путь в PATH, то набрав php, оболочка не найдет файл php.exe и ничего не запустит. И ты скажешь «что за кривой мануал, ничего не работает, ну его нафиг».

Печалька.

Что же делать? 1) добавить папку с php в PATH через мой компьютер — свойства и перезалогиниться в систему 2) писать вместо php полный путь c:\php\php.exe

Продолжаем. Допустим, ты хочешь запустить в командной строке файл my.php , который находится в текущем каталоге:

Линукс: php my.php
Windows: c:\php\php.exe my.php

Допустим, ты хочешь запустить php-файл не из текущего каталога. Тогда надо написать путь к нему:

Линукс: php /some/dir/my.php
Windows: c:\php\php.exe d:\files\my.php

В общем, проще запускать файлы из текущег каталога, чем мучаться с путями.

Больше команд — linux

Попрактиковаться в линукс в командной строке можно на таких командах:

Создать текстовый файл: cat > file.txt [enter] ввести текст [enter][ctrl+d] — и файл создан
Просмотреть текстовый файл: cat file.txt
Просмотреть огромный текстовый файл, который не влеазает на экран: cat file.txt | less 
В просмотрщике работают стрелки и q для выхода (escape не работает).
Удалить файл: rm file.txt
Скопировать файл: cp file.txt copy.txt
Переместить/переименовать файл: mv file.txt copy.txt
Скопировать в другую папку: cp file.txt /some/other/directory
Запустить команду и сохранить ее вывод в файл: ls -la > file.txt (эта команда выведет список файлов, но не на экран, а сохранит в файл. Бывает иногда полезно).
Вывести файл, но не весь, а только первые 10 строк: cat file.txt | head -10
Вывести последние 10 строк файла:  cat file.txt | tail -10
Вывести только строки файла, содержащие слово «dog»: cat file.txt | grep dog
Найти файлы, в имени которых есть «dog», в каталоге /tmp: find /tmp -iname '*dog*'
Узнать текущее время: date
Создать папку: mkdir folder
Удалить папку: rm -r folder
Померять, сколько времени выполнялась команда: time [команда]
Узнать свой id пользователя: id
Показать список запущенных процессов: ps -lax
Показать что-то вроде диспетчера задач: top (для выхода q)
Запустить редактор, из которого хрен выйдешь, так как никакие привычные кнопки не работают: vi

Подробнее о работе команд можно узнать с помощью параметра --help, дописанного после команды.

Больше команд — Windows

Попрактиковаться в комнадной строке в Windows можно так:

help — выводит список полезных команд
dir — выводит файлы в каталоге
Создать текстовый файл: copy con file.txt[enter]ввести текст[enter][ctrl+z][enter] — файл создан
Просмотреть текстовый файл: type file.txt
Просмотреть огромный текстовый файл: type file.txt | more (enter — прокрутка, q — выход)
Удалить файл: del file.txt
Скопировать файл: copy /b file.txt copy.txt
Переименовать файл: ren file.txt copy.txt
Запустить команду и сохранить вывод в файл: dir /? > file.txt
Создать текстовый  файл с одной строкой текста: echo lalala lololo > file.txt
Дописать строчку в конец файла: echo boom >> file.txt
Создать папку: mkdir folder
Удалить папку: rmdir folder
Узнать текущее время: time и date (ctrl+с для выхода)

Подробнее о работе команд можно узнать с помощью параметра /?, дописанного после команды.

Команды для работы с сетью Интернет

В линукс показать информацию о настройке сети: ifconfig (или /sbin/ifconfig если у
тебя в PATH нет /sbin)

В Windows показать информацию о сети: ipconfig

Пропинговать (проверить связь) с сервером: ping google.com

Узнать IP по имени домена: nslookup yandex.ru

Показать список открытых с компьютера соединений: netstat (в подсказке по команде указаны также параметры, с помощью которых, например, можно вывести какая программа установила это соединение)
Проверить путь до какого-то сервера или узла сети:

  • в Windows: tracert google.com
  • в linux: traceroute google.com (не работает? пиши /usr/sbin/traceroute или пропиши уже себе sbin в PATH)

Больше информации

Используй ключи --help и /?

Гугли мануал по командной строке windows/linux в интернете.

http://archive-ipq-co.narod.ru

Командная строка Windows (CMD) — мощный инструмент, который предоставляет доступ к широкому набору команд для выполнения различных задач, от работы с файлами до настройки сети и автоматизации процессов.  В статье рассмотрим 100 популярных команд CMD, которые пригодятся как новичкам, так и опытным пользователям. Для удобства они разделены по категориям. 

Шпаргалка по CMD командам в Windows | 100 популярных команд

Разделы

  • Общие команды CMD
  • Сетевые команды CMD
  • Команды для управления процессами
  • Команды для управления файловой системой
  • Команды для управления пользователями
  • Команды для управления безопасностью
  • Команды для диагностики и устранения неполадок
  • Команды для скриптинга и автоматизации
  • Команды для управления сетевыми подключениями
  • Команды для управления печатью
  • Дополнительные команды в Windows

Общие команды командной строки (CMD) позволяют пользователям управлять ОС Windows через интерфейс командной строки. Они нацелены на различные задачи – от получения справочной информации до управления процессами. 

  • hel выводит список всех доступных команд и их краткое описание, что полезно для получения информации о базовых командах.
  • cls очищает экран командной строки. Если в окне CMD много текста, этой командой можно убрать весь вывод и начать работу «с чистого листа».
  • exit завершает текущую сессию командной строки и закрывает окно CMD.
  • echo выводит сообщения в консоль или включает/выключает отображение команд в пакетных файлах – echo Hello, World! выведет Hello, World! на экран.
  • ver отображает версию операционной системы Windows.
  • title изменяет заголовок окна командной строки. Например, title Моя Командная Строка изменит заголовок на «Моя Командная Строка».
  • pause временно приостанавливает выполнение скрипта, но при нажатии любой клавиши можно продолжить работу.
  • date позволяет узнать или изменить текущую дату в системе.
  • time отображает или изменяет текущее время в системе.
  • tasklist выводит список всех запущенных процессов с их PID (идентификатором процесса).
  • powercfg — управляет настройками энергопотребления и профилями питания. 
  • fc — сравнивает два файла и отображает их различия. 

Сетевые команды CMD

В разделе собраны основные сетевые команды CMD, которые помогут управлять подключениями, диагностировать сетевые проблемы и выполнять разнообразные операции с сетью. Они незаменимы для системных администраторов и пользователей, нуждающихся в решении сетевых задач. 

  • ping проверяет связь с удаленным узлом, отправляя ему пакеты данных. Например, ping google.com проверит доступность сервера Google.
  • ipconfig отображает конфигурацию сетевых интерфейсов системы (IP-адреса, маску подсети и шлюзы).
  • netstat выводит информацию о сетевых соединениях и открытых портах
  • netstat -an показывает все активные соединения.
  • tracert отслеживает маршрут пакета до целевого узла – tracert yandex.ru покажет все узлы, через которые проходит запрос.
  • nslookup используется для проверки информации о DNS-серверах.
  • nslookup example.com отображает IP-адрес сайта example.com.
  • arp выводит или изменяет записи ARP (Address Resolution Protocol) –: arp -a покажет текущие записи ARP.
  • route управляет таблицей маршрутизации сети – route print выведет все существующие маршруты в системе.
  • net use подключает сетевые диски. Например, net use Z: \\server\folder подключит сетевой ресурс как диск Z:.
  • netsh позволяет настраивать различные параметры сети через командную строку.
  • netsh wlan show profiles отображает сохраненные профили Wi-Fi.

Команды для управления процессами

Команды ниже позволяют эффективно управлять процессами и службами на вашем ПК: помогают запускать службы, планировать задачи, управлять активными процессами, а также выключать или перезагружать систему. С их помощью можно автоматизировать выполнение задач, получать информацию о состоянии системы и контролировать её работоспособность. 

  • sc управляет службами Windows. Пример: sc start servicename запустит службу с именем servicename.
  • schtasks управляет планировщиком задач. Так, schtasks /create /tn «Моя Задача» /tr notepad.exe /sc once /st 12:00 создаст задачу для запуска.
  • start запускает программу или команду в новом окне. Например, start notepad откроет блокнот.
  • wmic взаимодействует с системой через Windows Management Instrumentation – wmic process list brief покажет список процессов.
  • shutdown выключает, перезагружает или завершает работу системы. Так, shutdown /s /f /t 0 немедленно выключит компьютер.
  • systeminfo выводит информацию о системе, включая версию Windows, параметры оборудования и установленные обновления.

Команды для управления файловой системой

Команды для управления файловой системой в CMD позволяют работать с файлами и папками: просматривать содержимое директорий, перемещаться между папками, создавать и удалять файлы и каталоги, копировать данные с использованием различных опций. 

  • dir отображает список файлов и каталогов в указанной директории. Пример: dir C:\Windows выведет содержимое папки Windows.
  • cd меняет текущий каталог. Так, cd C:\Users перейдет в папку пользователей.
  • md NewFolder создает новую папку. 
  • rd удаляет пустую папку. Пример: rd NewFolder удалит папку NewFolder.
  • copy копирует файлы из одного места в другое.
  • move перемещает файлы или папки.
  • del удаляет файлы. Например, del file.txt удалит файл file.txt.
  • xcopy копирует файлы и директории, включая их структуру. Так, xcopy C:\Source D:\Destination /s /e скопирует все файлы и папки из Source в Destination.
  • robocopy более продвинутая версия xcopy, используется для надежного копирования данных. Например, robocopy C:\Source D:\Destination /mir синхронизирует две папки.

Команды для управления пользователями

Команды для управления пользователями предоставляют средства для администрирования учетных записей, настройки групповых прав и управления политиками безопасности. А также позволяют администраторам эффективно управлять пользователями в системе, добавлять новых пользователей, изменять их права и настраивать параметры учетных записей.

  • net user управляет учетными записями пользователей.
  • net user UserName /add добавляет нового пользователя с именем UserName.
  • net localgroup управляет локальными группами пользователей.
  • net localgroup Administrators UserName /add добавляет пользователя в группу администраторов.
  • whoami выводит имя текущего пользователя и информацию о его правах.
  • runas позволяет запускать программы от имени другого пользователя. Так, runas /user:administrator cmd запустит CMD с правами администратора.
  • net accounts управляет параметрами учетных записей, например, минимальной длиной пароля и периодом его действия.
  • gpupdate — обновляет групповые политики на локальном компьютере, что полезно для администраторов, управляемых сетей.
  • taskview — открывает таймлайн Windows, показывая историю активности пользователя, полезно для управления и поиска ранее использованных файлов и приложений.
  • msg отправляет сообщение пользователям, подключенным к системе. Пример: msg «Система будет перезагружена через 5 минут» отправит сообщение всем пользователям.

Команды для управления безопасностью

Команды для управления безопасностью предназначены для обеспечения защиты данных и управления доступом к файлам и системным ресурсам, что позволяет шифровать файлы, проверять целостность системных файлов и управлять правами доступа.

  • cipher управляет шифрованием файлов на дисках NTFS.
  • cipher/e зашифровывает файлы в указанной директории.
  • sfc проверяет целостность системных файлов и автоматически восстанавливает их при обнаружении повреждений.
  • sfc /verifyonly — проверяет системные файлы на наличие повреждений, но не исправляет их автоматически.
  • sfc /scannow выполняет полную проверку системы.
  • cacls изменяет права доступа к файлам. Пример: cacls file.txt /g UserName:F даст пользователю полный доступ к файлу.
  • icacls расширяет возможности команды cacls и предоставляет дополнительные параметры для управления правами доступа.
  • takeown позволяет взять владение файлом или директорией. Так, takeown /f file.txt предоставит доступ к файлам.
  • attrib изменяет атрибуты файлов и папок. Например, attrib +r file.txt сделает файл доступным только для чтения.

Команды для диагностики и устранения неполадок

Команды из раздела помогают находить и устранять неполадки в системе, восстанавливать загрузочные параметры и проверять целостность данных на диске, а также они позволяют решать проблемы, связанные с запуском операционной системы или со сбоями на уровне файловой системы. 

  • chkdsk проверяет диск на наличие ошибок и исправляет их. Так, chkdsk C: /f выполнит проверку диска C.
  • bootrec восстанавливает загрузочный сектор. 
  • bcdedit управляет параметрами загрузки системы. 
  • bcdedit /set {current} safeboot minimal включает безопасный режим.

Команды для скриптинга и автоматизации

Команды, приведенные ниже, предназначены для создания сложных сценариев выполнения команд, что позволяет автоматизировать повседневные задачи и более эффективно управлять процессами. 

  • for создает цикл для выполнения команд. Например, for %i in (1 2 3) do echo %i выведет числа 1, 2, 3.
  • if выполняет условное выполнение команд.
  • goto перенаправляет выполнение скрипта к определенной метке.
  • call вызывает другую команду или скрипт.

Команды для управления сетевыми подключениями

Команды для управления сетевыми подключениями предоставляют возможности для настройки, диагностики и оптимизации сетевых параметров и соединений, позволяя управлять IP-адресами, подключаться и отключаться от сетей.

  • ipconfig /release освобождает текущий IP-адрес, назначенный DHCP сервером, что позволяет при необходимости сбросить сетевое подключение.
  • ipconfig /renew обновляет IP-адрес, полученный от DHCP сервера. Часто используется после команды ipconfig /release для восстановления подключения.
  • ipconfig /flushdns очищает кэш DNS, если изменился DNS-сервер или необходимо устранить проблемы с доступом к сайтам.
  • ipconfig /displaydns выводит содержимое кэша DNS, часто используется для диагностики проблем с DNS.
  • netsh interface ip set address используется для назначения статического IP-адреса сетевому интерфейсу. Пример: netsh interface ip set address Ethernet static 192.168.1.100 255.255.255.0 192.168.1.1.
  • netsh wlan show drivers выводит информацию о драйверах беспроводной сети, что полезно при настройке Wi-Fi подключения.
  • netsh wlan show interfaces отображает текущие активные беспроводные подключения и их параметры, например, мощность сигнала.
  • netsh wlan connect подключает к указанной Wi-Fi сети. Для этого нужно ввести: netsh wlan connect name=MyWiFi.
  • netsh wlan disconnect отключает текущее беспроводное подключение.
  • netsh advfirewall set allprofiles state управляет состоянием брандмауэра Windows – netsh advfirewall set allprofiles state off отключает брандмауэр для всех профилей.
  • netsh int ip reset сбрасывает настройки IP стека (TCP/IP) к значениям по умолчанию, помогая при сетевых неполадках.
  • route add добавляет маршрут в таблицу маршрутизации. Например, route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 добавит маршрут для подсети 192.168.2.0 через шлюз 192.168.1.1.
  • route delete удаляет указанный маршрут из таблицы маршрутизации.
  • netsh interface show interface выводит список всех сетевых интерфейсов в системе, включая их состояние и тип.
  • net view отображает список компьютеров в локальной сети – net view \\server покажет общие ресурсы на указанном сервере.
  • net use /delete удаляет существующее подключение к сетевому ресурсу. Так, net use Z: /delete отключает сетевой диск Z:.
  • ftp открывает FTP-клиент для передачи файлов между локальной и удаленной системами. Например, по команде ftp ftp.example.com ПК подключится к FTP-серверу.
  • telnet используется для подключения к удаленным системам через Telnet-протокол. Так, telnet example.com 23 подключит ПК к серверу на порту 23.
  • getmac выводит MAC-адреса всех сетевых интерфейсов компьютера.

Команды для управления печатью

В этом разделе команды для управления печатью позволяют эффективно управлять процессом печати (включая очередью на печать), настройками принтеров и заданиями на печать. 

  • print отправляет файл на печать. Например, print C:\Documents\file.txt отправит текстовый файл на принтер по умолчанию.
  • rundll32 printui.dll,PrintUIEntry открывает диалоговое окно для установки или управления принтерами – rundll32 printui.dll,PrintUIEntry /in /n\\server\printer установит сетевой принтер.
  • net print отображает список заданий на печать – net print \\server\printer покажет очередь печати на указанном принтере.
  • net stop spooler останавливает службу диспетчера очереди печати (spooler), особенно когда требуется устранить зависшие задания печати.
  • net start spooler запускает службу диспетчера очереди печати после её остановки.
  • wmic printer list brief выводит список установленных принтеров с краткой информацией о каждом из них.
  • wmic printer where default=true get name выводит имя принтера, установленного по умолчанию.
  • wmic printer where name=’PrinterName’ delete удаляет указанный принтер из системы.
  • wmic printerconfig отображает информацию о конфигурации принтера, включая его настройки и параметры печати.
  • cscript prnjobs.vbs используется для управления заданиями печати через скрипт prnjobs.vbs, который можно использовать для удаления, приостановки или возобновления заданий.

Дополнительные команды в Windows

В дополнение к основным инструментам для управления системой, командная строка Windows предоставляет ряд дополнительных команд, которые расширяют возможности администрирования и диагностики. 

  • wevtutil управляет журналами событий Windows. Например, wevtutil qe System выведет события из системного журнала.
  • tzutil управляет настройками часовых поясов. tzutil /s Pacific Standard Time установит часовой пояс на Тихоокеанское стандартное время.
  • taskkill — завершает процесс по его PID или имени. Так, taskkill /F /PID 1234 завершит процесс с PID 1234.
  • powercfg /hibernate off — отключает режим гибернации.
  • powercfg /energy — создает отчет об использовании энергии системой.

Интерфейс командной строки для начинающих разработчиков

Уровень сложностиПростой

Время на прочтение13 мин

Количество просмотров6.3K

Если вы когда-либо читали инструкции от разработчиков, то наверняка видели фразы вроде: «Откройте консоль», «Выполните эту команду в терминале» или «Для этого потребуется командная строка». Эти инструменты часто называют невероятно мощными и полезными, но что это означает на практике? Почему терминал считается незаменимым инструментом разработчика и какие возможности он предоставляет, выходя за рамки привычных графических интерфейсов?

Меня зовут Евгений Бартенев, и я автор и техлид курса «Python-разработчик» в Яндекс Практикуме. В этой статье я расскажу, что стоит за терминами «терминал», «оболочка» и «командная строка», а также разберу их некоторые отличия и особенности. Вы узнаете, как они связаны друг с другом и почему работа через консоль зачастую оказывается быстрее и эффективнее. Мы также рассмотрим некоторые практические примеры, которые трудно реализовать, полагаясь только на графический интерфейс.

Эта статья не является справочником команд или пошаговой инструкцией. Она написана для тех, кто хочет понять, что же такое командная строка, и разобраться в её ключевых возможностях. Материал будет не столь полезен опытным разработчикам, которые используют терминал ежедневно. Однако я сделал фокус на терминологии и ключевых концепциях, которые часто остаются за кадром или вызывают путаницу даже у некоторых опытных пользователей. Но обо всём по порядку.

Разбор в ролике для тех, кто предпочитает видеоформат.

Терминология

Почти в каждой современной операционной системе есть графический интерфейс — это знакомые многим окна, иконки, кнопки и другие графические элементы. С их помощью можно выполнить практически любое действие. Однако в операционных системах обычно доступны и другие интерфейсы, например интерфейс командной строки.

Через интерфейс командной строки можно выполнять те же задачи, что и через графический, а иногда и значительно больше. Например, представить себе графический интерфейс для управления сотнями команд с множеством параметров — с ключами, подкомандами и опциями — довольно сложно. Если попытаться отобразить их все через кнопки и меню, экран быстро окажется перегружен элементами. Командная строка решает эту проблему: одна строка ввода может заменить целый набор сложных графических элементов.

Когда программисты говорят «откройте терминал» или «откройте консоль», они, как правило, имеют в виду именно интерфейс командной строки.

Терминал — это интерфейс для ввода-вывода текста, через который можно взаимодействовать с операционной системой.

В каждой операционной системе по умолчанию есть один или несколько терминалов, например:

  • в Windows — Windows Terminal, Windows Console Host;

  • в Linux — GNOME Terminal, Konsole;

  • в macOS — Terminal.app.

Хотя в обиходе слова «терминал» и «консоль» часто используют как синонимы, технически эти понятия различаются:

  • терминал — это интерфейс для работы с текстом;

  • консоль может означать как физическое устройство (например, монитор и клавиатуру в старых компьютерах), так и программу для доступа к терминалу.

При работе с терминалом вы на самом деле взаимодействуете с оболочкой (shell).

Оболочка — это программная среда, которая интерпретирует текстовые команды и выводит результаты. Оболочки можно менять или переключаться между ними, но сам терминал остаётся тем же.

Оболочки по умолчанию:

  • Windows: Command Prompt, PowerShell.

  • Linux: большинство дистрибутивов Linux используют bash (Bourne Again SHell) как оболочку по умолчанию. Некоторые новые дистрибутивы начали переходить на zsh (Z shell, произносится как «зет-шелл»).

  • macOS: до macOS Catalina оболочкой по умолчанию была bash. Начиная с macOS Catalina и позже, Apple перешла на использование zsh в качестве оболочки по умолчанию.

Каждая оболочка может обрабатывать команды, поддерживаемые операционной системой и соответствующим терминалом, но многие оболочки добавляют и свои уникальные возможности.

Обычно оболочки поддерживают сотни, а некоторые даже тысячи команд. Чтобы как-то навести порядок в этом многообразии возможностей, стали появляться различные стандарты. Среди таких стандартов особенно выделяется POSIX (Portable Operating System Interface). Он определяет ключевой набор текстовых команд и их ожидаемые результаты. Если оболочка называется POSIX-совместимой, это означает, что она поддерживает этот установленный набор команд.

Точное количество существующих оболочек определить сложно, поскольку их разработано множество, и новые продолжают появляться. Наиболее известные и популярные POSIX-оболочки — это bash (Bourne-Again SHell), Dash (Debian Almquist shell), ksh (Korn shell), ash (Almquist shell), zsh. А вот оболочки Fish (Friendly interactive shell), PowerShell, Command Prompt, Eshell не поддерживают POSIX, поэтому даже для одноимённых команд в каждой из них можно получить различный результат.

В этой статье я сфокусировался на возможностях именно POSIX-совместимых оболочек на примере zsh в операционной системе macOS.

Переключение между оболочками

Запустить интерфейс командной строки в операционной macOS можно по-разному. Чтобы открыть терминал с помощью Spotlight, достаточно нажать сочетание клавиш Command (⌘) + Пробел и в появившейся строке начать вводить слово Terminal. Как только терминал появится в списке предложений, выберите его нажатием клавиши Enter.

По умолчанию в macOS используется оболочка zsh, но вы можете переключиться на другую, например bash. Для этого выполните в терминале команду bash — заголовок окна изменится, а в самом окне изменится приглашение для ввода команд.

В macOS по умолчанию предустановлена устаревшая версия bash (3.2), что связано с политикой Apple, направленной на использование лицензий, не обременённых условиями GPLv3. Для использования актуальной версии bash необходимо выполнить дополнительные действия, например установить обновление через менеджер пакетов Homebrew.

Чтобы вернуться в оболочку zsh, введите и выполните команду exit.

На macOS предустановлены и другие оболочки. Чтобы увидеть все оболочки, доступные в вашей системе, выполните команду:

cat /etc/shells

На стандартной macOS вы увидите что-то вроде:

Для большинства пользователей zsh будет наиболее удобной и функциональной оболочкой, поэтому продолжим именно с ней. Начнём с самых базовых возможностей.

Базовые возможности оболочки

Одна из самых удобных функций большинства оболочек — это возможность быстро перебирать и повторно выполнять ранее введённые команды. Для этого достаточно использовать клавиши стрелка вверх и стрелка вниз.

Клавиши стрелка вправо и стрелка влево перемещают курсор на один символ вправо и влево, а при одновременном удержании клавиши Option — вправо и влево можно перемещаться уже по словам.

Оболочка zsh поддерживает удобное автодополнение. Просто начните вводить команду или путь к файлу, а затем нажмите Tab. Оболочка предложит варианты завершения. Если доступно несколько вариантов, zsh отобразит их список.

Если вы не уверены в том, как использовать ту или иную команду, можно обратиться за справкой. Для этого введите команду man (англ. manual, «руководство»), которая открывает полное описание команды, например: man ls.

Выйти из режима просмотра можно, нажав на клавишу q.

Если терминал заполнен текстом и вы хотите начать с чистого экрана, достаточно ввести команду clear или использовать сочетание клавиш Command + K.

Очистка экрана в терминале, например с помощью команды clear, не удаляет историю введённых команд — она просто очищает текущее отображение в окне терминала, оставляя всё, что вы вводили ранее, доступным для поиска. Это значит, что вы по-прежнему можете использовать клавиши стрелка вверх и стрелка вниз, чтобы пролистать недавно введённые команды.

Если нужная команда была введена давно, искать её вручную стрелками может быть неудобно. В таком случае поможет команда history. Она выводит список всех команд, которые вы вводили, вместе с их порядковыми номерами. Например, после выполнения команды history вы увидите что-то вроде этого:

Теперь, зная номер нужной команды, вы можете выполнить её снова, используя сокращённый синтаксис !<номер>.

Например, команда !73 повторит команду pwd (англ. print working directory, «напечатай рабочую папку»).

Псевдонимы

Псевдонимы (алиасы) — это удобный способ сократить часто используемые команды или создать короткие версии для длинных и сложных команд в POSIX-совместимых оболочках.

Для создания псевдонима, который будет доступен только в текущей сессии терминала, используется команда alias:

alias имя='команда'

Например:

alias ll='ls -la'

Теперь при вводе и выполнении команды ll будет выполняться команда ls -la.

Чтобы увидеть все активные псевдонимы, выполните команду alias.

Для удаления псевдонима используйте команду unalias:

unalias ll

Чтобы псевдоним сохранялся после перезапуска терминала, его нужно добавить в файл конфигурации оболочки:

echo "alias ll='ls -la'" >> ~/.zshrc

После внесения изменений перезапустите оболочку или выполните source ~/.zshrc

Перенаправление потоков

Потоки в UNIX-подобных операционных системах — это способ работы с данными, которые «текут» между программами, файлами и устройствами. Поток можно представить как канал, через который данные перемещаются, например, из файла в программу, из программы в другой процесс или на устройство, такое как принтер.

Основных потоков три:

  • Стандартный ввод (stdin) — это поток, откуда программа получает данные. Обычно это клавиатура.

  • Стандартный вывод (stdout) — это поток, куда программа отправляет свои результаты. Обычно это вывод в окне терминала.

  • Стандартный поток ошибок (stderr) — это поток для сообщений об ошибках. Он отделён от стандартного вывода, чтобы ошибки не смешивались с обычным результатом программы.

Допустим, вы выполняете команду ls. Выполнение команды ls создаёт список файлов и выводит его в стандартный вывод (stdout), то есть на экран. Однако это можно изменить.

Допустим, вам требуется сохранить весь вывод в файл. И самый простой способ сделать это — перенаправить поток. Для этого используется команда >.

ls > output.txt

Поток будет перенаправлен, и теперь список файлов сохраняется в файл с указанным именем, а не выводится на экран.

Подобным же образом стандартный ввод (stdin) программы можно перенаправить с клавиатуры на файл. Для этого используется символ <.

python3 myscript.py < input.txt

Программа на Python в файле myscript.py написана так, чтобы получать данные с клавиатуры, но теперь она будет построчно читать указанный файл и брать данные из него, а не ждать ввода от пользователя в терминале.

Конвейеры

Когда вы вводите команду в оболочке, она запускается и выполняется. Результат выполнения команды обычно отображается на экране. Однако в POSIX-совместимых оболочках результат выполнения одной команды вместо вывода на экран можно передать другой команде. Это позволяет создавать последовательности команд для обработки данных. Этот механизм носит название конвейеров (иногда их ещё называют пайплайны) и при написании команд обозначается символом |.

С помощью конвейеров можно выполнять довольно сложные задачи, разбивая их на последовательность более простых шагов.

Например:

cat input.txt | wc -l

Отдельное выполнение команды cat input.txt выводит содержимое файла input.txt, а команда wc -l подсчитывает количество строк в выводе.

Запуск конвейера из этих команд даст только финальный результат — количество строк, минуя промежуточные результаты.

Или вот другой пример:

ls -l | sort -k 5 -n

Команда ls -l выводит список файлов с подробной информацией, а запуск команды sort -k 5 -n сортирует вывод по пятому столбцу (размеру файлов). В результате выполнения конвейера мы сразу же получим необходимый результат.

А вот более сложный пример. У нас есть текстовый файл log.txt, содержащий список IP-адресов пользователей, подключавшихся к серверу.

192.168.0.1
192.168.0.2
192.168.0.1
192.168.0.3
192.168.0.2
192.168.0.1

Надо найти IP-адрес хакера, который решил загрузить наш сервер подключениями, вывести этот IP-адрес вместе с количеством подключений, попутно сохранить результат в файл top_user.txt. Из инструментов у нас только оболочка zsh.

В качестве решения задачи можно использовать следующий конвейер:

cat log.txt | sort | uniq -c | sort -nr | awk 'NR==1 {print $2, $1}' | tee top_user.txt

Тут каждая команда выполняет свою задачу, разберём их по порядку.

  1. cat log.txt — читает содержимое файла log.txt и передаёт его в конвейер.

  2. sort — сортирует IP-адреса, чтобы одинаковые IP-адреса оказались рядом.

  3. uniq -с — подсчитывает количество повторений каждой уникальной строки (IP-адреса). Флаг -c добавляет число повторений перед каждым IP.

  4. sort -nr — сортирует строки по числовым значениям в порядке убывания (флаг -nr: -n — числовая сортировка, -r — обратный порядок).

  5. awk 'NR==1 {print $2, $1}' — обрабатывает только первую строку (самый активный IP-адрес) благодаря фильтру NR==1. Команда {print $2, $1} выводит второй столбец (IP-адрес) и первый столбец (количество подключений).

  6. tee top_user.txt — записывает результат в файл top_user.txt и одновременно выводит его на экран.

Задачу, конечно, можно было бы решить и меньшим количеством шагов, но я специально хотел показать пример длинного конвейера с разными командами.

В теории количество действий (команд) в конвейере оболочки (например, в bash или zsh) практически не ограничено. Однако на практике существуют технические и системные ограничения, которые определяют максимальную длину конвейера. Например, максимальный размер аргументов командной строки можно получить при помощи команды getconf ARG_MAX.

Логические операторы

В POSIX-совместимых оболочках логические операторы используются для управления выполнением команд в зависимости от их успешности (возвращаемого кода завершения). Эти операторы позволяют создавать не просто сложные последовательности команд, а последовательности с условиями выполнения.

Например, команда справа от && выполняется, только если команда слева завершилась успешно (код завершения 0).

mkdir new_dir && cd new_dir

Если mkdir new_dir выполнится успешно (директория будет создана), тогда выполнится cd new_dir — переход в созданную директорию. Если первая команда завершится с ошибкой (например, папка уже существует), вторая команда не будет выполнена.

Команда справа от || выполняется, только если команда слева завершилась с ошибкой (код завершения не 0).

mkdir new_dir || echo "Directory already exists"

Если mkdir new_dir завершится с ошибкой, будет выполнена команда echo. Если директория успешно создалась, то вторая команда не выполняется.

Можно комбинировать операторы, чтобы создать более сложные условия.

mkdir new_dir && echo "Directory created" || echo "Failed to create directory"

Если команда mkdir new_dir успешно выполнена — выполняется echo «Directory created». Если же выполнение mkdir new_dir привело к ошибке — выполняется echo "Failed to create directory".

Важный момент заключается в том, что здесь выполняется либо одна из двух веток, либо обе, в зависимости от того, как завершится вторая команда. Чтобы это предотвратить, можно использовать скобки:

(mkdir new_dir && echo "Directory created") || echo "Failed to create directory"

Таким образом логические операторы позволяют строить условия, обрабатывать ошибки и упрощать написание скриптов.

Условия

Современные оболочки терминалов давно вышли за рамки простого ввода и выполнения команд. Они предоставляют инструменты, которые позволяют использовать программные конструкции, знакомые каждому разработчику: переменные, циклы, условия, функции, массивы и многое другое.

Это превращает работу в терминале в процесс, близкий к написанию настоящего кода. Например, вы можете использовать циклы для обработки данных в файлах, условные конструкции для управления потоком выполнения или создавать сложные автоматизации прямо в командной строке.

Давайте рассмотрим, как это выглядит на практике.

Итак, конструкция if проверяет условие и выполняет определённые команды, если это условие истинно (то есть возвращает код завершения 0). Если условие ложно, можно указать команды для выполнения через else или дополнительные проверки через elif.

Например, предположим, что вы работаете с сервером, где нужно ежедневно проверять наличие файла с данными (например, отчёта), и если файла нет, то отправить уведомление администратору, ну или просто вывести сообщение в консоль.

Вот как это можно сделать с помощью конструкции if:

if [ -f input.txt ]; then
    echo "File exists"
elif [ -d input.txt ]; then
    echo "This is a directory"
else
    echo "File does not exist"
fi

Здесь [ -f input.txt ] проверяет, существует ли файл с именем input.txt. Если файла нет, проверяется условие [ -d input.txt ], которое проверяет, является ли объект директорией. Если оба условия ложны, выполняется блок else.

Циклы

В оболочках терминалов, как правило, доступно несколько видов циклов, которые позволяют повторять выполнение команд до достижения определённого условия. Среди них наиболее популярны while, until и, конечно же, for, который особенно часто используется для итерации по элементам, строкам файлов или другим наборам данных. Это делает его универсальным инструментом для автоматизации рутинных задач.

Например, представьте, что вам нужно переименовать все изображения в папке, добавив к их именам текущую дату. Если делать это вручную через графический интерфейс, вам придётся тратить время на каждое изображение. С помощью цикла в терминале это можно автоматизировать буквально одной командой:

for file in *.jpg
do
    mv "$file" "$(date +%Y-%m-%d)_$file"
done

Этот цикл перебирает все файлы с расширением .jpg в текущей папке и переименовывает их, добавляя текущую дату перед оригинальным именем.

Такой подход экономит массу времени, особенно если изображений десятки или сотни. Кроме того, вы можете модифицировать цикл для других задач, в основе которых лежит перебор чего-либо, например файлов:

for file in *.txt
do
    echo "Processing $file"
done

Здесь переменная file принимает поочерёдно имена всех файлов с расширением .txt в текущей директории и для каждого файла выводится сообщение Processing <имя_файла>.

Как и в большинстве языков программирования, в циклах, используемых в оболочках терминалов, доступны конструкции break и continue. С их помощью можно более гибко управлять выполнением цикла: break позволяет досрочно завершить выполнение цикла при выполнении определённого условия, а continue пропускает текущую итерацию и сразу переходит к следующей.

Чем ещё интересны POSIX-совместимые оболочки?

Перечислять возможности POSIX-совместимых оболочек можно практически бесконечно, но формат статьи ограничивает меня в количестве и глубине их рассмотрения. Однако если вас заинтересовала эта тема, то вот ещё несколько направлений, которые вы можете изучить самостоятельно.

  • Использование регулярных выражений позволит эффективно искать и править текст, обрабатывать логи и анализировать данные.

  • Создание собственных функций поможет вам персонализировать оболочку и ускорить выполнение часто используемых задач.

  • Модификация окружения оболочки через написание конфигурационных файлов, таких как ~/.bashrc или ~/.zshrc, позволит настроить автодополнение, цветовые схемы и переменные окружения.

  • Использование сторонних плагинов, таких как Oh My Zsh, позволит улучшить автодополнение, добавит красивые подсказки и расширенную интеграцию с Git.

  • Взаимодействие с сетевыми утилитами или с такими инструментами, как curl, wget, ssh и scp, поможет выполнять сетевые операции прямо из командной строки.

  • Управление процессами даст возможность работать с фоновыми и приостановленными процессами и управлять приоритетами процессов.

  • Отладка скриптов позволит использовать инструменты вроде set -x и trap для пошагового анализа выполнения команд.

Это не обязательный к изучению материал для начинающего специалиста, однако понимание и умение применять знания из перечисленных тем даст гораздо больше возможностей для профессионального роста и поможет вам раскрыть весь потенциал POSIX-совместимых оболочек.

Что в итоге?

Я разобрал лишь некоторые из множества возможностей POSIX-совместимых оболочек, которые, на мой взгляд, важно показать тем, кто только начинает знакомство с разработкой и учится работать в командной строке. Мы коснулись основ: работы с историей команд, вызовом справки, построением конвейеров и другими полезными функциями, которые делают консоль мощным инструментом в руках разработчика.

У меня не было цели создать ещё один справочник по командам — таких ресурсов уже достаточно, и они легко доступны через, например, поиск. Вместо этого я сосредоточился на фундаментальных моментах, которые помогают понять суть и возможности работы через интерфейс командной строки. Освоив эти базовые приёмы, вы сможете с уверенностью двигаться дальше, изучать новые команды, автоматизировать рутину и использовать терминал как полноценный инструмент для решения самых разных задач.

Надеюсь, эта статья вдохновит вас на дальнейшее изучение материала и, начав с малого, вы сможете достичь больших результатов и открыть для себя удобство терминала, которое так ценят опытные разработчики.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows работающая на флешке
  • Dlna windows 10 добавить папку
  • Перезапуск драйвера видеокарты windows 10
  • Не заходит в microsoft store windows 11
  • Переключение дисплеев в windows 10 сочетание клавиш