pacman -u
— обновить список пакетовpacman -S <packname>
— установить пакетpacman -R <packname>
— удаление конкретного пакета
Категория "Администрирование":
Утилиты linux
rsync
- -v — выводит подробную информацию о процессе копирования;
- [-a] — сохраняет все атрибуты оригинальных файлов;
- -u — не перезаписывать более новые файлы;
- -l — копирует символьные ссылки;
- -L — копирует содержимое ссылок;
- -p — сохраняет права для файлов;
- -t — сохраняет время модификации;
- -e — использовать другой транспорт, например, ssh;
- [-z] — cжимает файлы перед передачей;
- —recursive — перебирать директории рекурсивно;
- —exclude — Исключить файлы по шаблону;
Примеры:
rsync -avz skillproject/data/ .
— из подкаталога в текущий каталогrsync -avz skillproject/data/ aaa/
— из подпапки в подпапкуaaa/
rsync -avz skillproject/data/ digita6d@digita6d.beget.tech:/home/d/digita6d/code-skills.ru/public_html/sources/skillproject/data/
— передача на удаленный серверrsync -avze ssh skillproject/data/ digita6d@digita6d.beget.tech:/home/d/digita6d/code-skills.ru/public_html/sources/skillproject/data/
— то же самое м явным указанием ssh
ss
- -l или —listening — посмотреть только прослушиваемые порты;
- -p или —program — показать имя программы и ее PID;
- -t или —tcp — показать tcp порты;
- -u или —udp показать udp порты;
- -n или —numeric показывать ip адреса в числовом виде.
Примеры:
ss -tlpn
— проверить все прослушивающие tcp-портыss -tulpn | grep :80
— показать все процессы, работающие на 80-м порту
ps
ps -e
— показать все процессыps -ef
— показать подробную информацию о каждом процессеps -ef | grep phantom
— найти все процессы с именем `phantom`
mpstat
Показывает статистику загрузки процессора. Команды:
mpstat
— показывает общую информацию- `mpstat -P ALL` — по каждому ядру
free
Показывает потребление ОЗУ на текущий момент:
free -h
— показывает информацию в гигабайтах (более человеко читаемо, чем в байтах)
top
Что-то наподобие диспетчера задач, только для линукс, показывает попроцессное потребление озу
dpkg
Пакетный менеджер для debian систем (не путать с системой управления пакетами — apt
/apt-get
)
dpkg -s <packname>
— проверить, установлен ли пакетdpkg -l
— список всех пакетовdpkg -l | grep apache2
— проверить, установлен ли конкретный пакетdpkg -i <package.deb>
— установить пакет
netstat
netstat -pnltu
— посмотреть список используемых портов
См так же краткий ликбез.
Работа с Docker из под Windows
Для выполнения инструкций из данной статьи на Windows необходимо скачать и установить docker toolbox for Windows. Docker toolbox автоматически установит вам VirtualBox (можно убрать галочку) для запуска виртуальной машины Linux для Docker.
После установки следующим этапом будет создание docker-machine. Это лучше сразу делать с отключенной проверкой виртуализации:
docker-machine create default --virtualbox-no-vtx-check
Это действие необходимо выполнить один раз. Далее запускаем docker-machine через команду
docker-machine start
После этого можно просмотреть окружение машины через
docker-machine env
Однако для корректной работы с docker необходимо добавить переменные окружения docker-machine:
@FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i
Либо если вы используете powershell, то
docker-machine env --shell=powershell | Invoke-Expression
Теперь команда docker version
для докер-сервера должна работать корректно:
Для теста можете запустить hello-world:
docker run hello-world
На экране должно вывести на экран примерно следующее:
Чтобы посмотреть все существующие образы на docker-machine воспользуйтесь командной
docker images
Результат на моем ПК выглядит так:
Если в дальнейшем какой-то из образов будет заниматься слишком много места и потребует переноса на другой диск, то вы можете перенести docker-machine, используя virtualBox
Кстати все эти команды можно отправлять и непосредственно из терминала linux докер-машины, подключившись к нему через ssh командой docker-machine ssh
(рекомендуется использовать conemu либо любой другой терминал вместо стандартного). Но это по желанию.
А теперь давайте запустим какой-нибудь контейнер и поработаем с ним. Выше мы уже запускали контейнер с hello-world образом для проверки. После выполнения контейнер завершил работу и вышел. Разумеется, это не то, что нужно для работы. Поэтому мы возьмем другой образ. Однако далее я настоятельно рекомендую использовать conemu либо любой другой терминал windows вместо стандартного, поскольку мы будем работать через него уже непосредственно с линукс-консолью.
Итак, запускаем новый терминал, и вводим команду
@FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd default') DO @%i
для корректной его работы с docker-machine. И вводим команду:
docker run -it ubuntu
Обратите внимание на сочетание флагов -it
. Они необходимы, чтобы контейнер не завершил работу сразу после запуска и перенаправил нам ввод вывод со стокового терминала ubuntu. Это команда скачает образ ubuntu с docker-hub и запустит его с указанным флагом. Размер скачиваемого образа ~80mb.
Вы так же можете можете запустить docker с флагом -d
. Так запуск приведет к запуску контейнера в фоновом режиме:
docker run -id ubuntu
Просмотреть все запущенные контейнеры вы можете через команду
docker ps
В случае последнего варианта вы можете выполнять команды в докере через любой терминал Windows через команду
docker exec
Например:
Вместо можно использовать имя контейнера (автоматически сгенерированное при запуске либо заданное с использованием ключа
--name
). Кстати управлять запущенными контейнерами очень удобно и через Kitematic — специальную программу, которая по умолчанию устанавливается вместе с docker toolbox (можно снять галочку).
Мы так же можем подключиться к любому запущенному контейнеру через команду
docker attach
и тогда получим тот же результат что при выполнении docker run -it ubuntu
.
Для выхода из linux-терминала вы можете использовать (в зависимости от windows-терминала) одну из следующих команд: ctrl+c, ctrl+d, ctrl+break.
Однако возникает закономерный вопрос: а что нам с этим делать? Ну запустили мы этот контейнер, что с того? Как нам с ним работать? Через bash команды писать и через git синхронизировать? Да на что он такой нужен?
И вот тут начинается самое интересное.
Начнем с ключа -p
. Этот ключ позволяет достукиваться до контейнера по определенным портам (своего рода проброс портов). Например:
docker run --name server -id -p 0.0.0.0:80:8000 ubuntu
Позволяет с порта 80 хост-машины достучаться до 8000 порта контейнера ubuntu.
Но это, разумеется, не все.
Когда контейнер останавливается, все данные на нем удаляются. Для того, чтобы этого избежать, используют монтирование томов с помощью опции -d
. Например:
docker run --name server -it -v content:/usr/share/dev ubuntu
Давайте выполним эту команду и перейдете по пути /usr/share/
:
cd /usr/share/ ls
Как мы видим внутри появилась новая директория dev
. Перейдем в нее:
cd dev ls -l
Она пуста. Теперь в другом окне терминала параллельно зайдем в docker-machine и проверим список директорий:
docker-machine ssh cd / ls -l
Мы увидим, что появилась директория content
. Давайте изменим ее разрешения:
sudo chmod 777 content
либо
sudo chmod ugo+rwx content
Хорошо. Перейдем в нее и создадим папку a
:
cd content mkdir a
И вернувшись обратно к терминалу с docker-container проверим содержимое директории dev:
ls
В результате там должна появиться директория a
:
Синхронизирует папке content
хост-сервера с папкой /usr/share
в докер-контейнере. Хорошо, скажете вы, но это же папке внутри docker-machine, а не Windows. Тем более, что при таких опциях docker-machine start при перезагрузке docker-machine файлы внутри content будут утеряны. И вопрос вполне логичный. Поэтому необходимо сделать синхронизацию с Windows. Это можно сделать несколькими путями:
Путь первый — открываем Virtual Box, находим там нашу машину (по умолчанию имеет имя default), открываем ее настройки, идем на вкладку Общие папки и в пункте «путь к папке» выбираем путь к той папке на Windows, с которой необходимо настроить синхронизацию:
Пускай у меня это будет F:\Docker\mysql\app
в пункте ниже пишем имя папки на нашей хост-машине. Это content
. Ставим галочку на «создать постоянную папку» и «авто-подключение». Жмем ок и перезапускаем машину.
Второй путь — такого эффекта можно было б добиться командой
docker-machine mount app:/content
Однако есть и третий, но он почему-то у меня работал не всегда. Хотя, пожалуй, он самый лаконичный:
docker run -it -v //c/Users/myuser:/myuser ubuntu
Можете поэкспериментировать с ним, опираясь на эту ветку обсуждений.
Все. На этом настройка docker закончена.
Но это только начало. Наберитесь терпения, ибо впереди у нас создание докер образа с нуля. Поехали
Полезные ссылки раз, синхронизация с windows, настройка общих папок в virtual box и изменение групп пользователя (на случай, если вместо docker-machine используете полноценную linux-систему, поднятую на virtualbox)
Восстановление Windows
Краткая шпаргалка эникейщика по восстановлению os Windows:
Первые два способа, как правило, помогают, когда система не даже на начала загрузку. Если же начала, то можно их пропустить. Но впрочем даже если и начала, то не помешает на всякий случай, чтобы не совмневаться, так же их использовать
- Попробовать «bootrec /FixMbr». Как правило срабатывает, если система даже не начала загружаться
1.1 — для win xp — команда немного отличается fixmbr - Если не помогло, пробуем записать новую загрузочную область:
bootrec.exe /FixBoot
. Для XP: 2.1 —fixboot
; 2.2 —bootcfg /rebuild
; 2.3 —bcdboot c:\windows /s c:
— подробнее здесь. - Попробовать команду «chkdsk c:», где с — это раздел буква раздела жесткого диска, куда установлена система. Она используется для исправления ошибок фаловой системы, если такие обнаружены. Если ошибок не обнаружено, то идем дальше. Если же они есть, то выполняем chkdsk с парамтрами:
chkdsk c: /f /r
/F
— выполнение проверки тома /раздела/ жд на наличие ошибок и их автоматическое исправление;
/R
— выполнить поиск поврежденных секторов и восстановить их содержимое. Требует использование ключа /F
;
(сути то же самое выполняет и автоматическое восстановление системы, начиная с W7 и старше)
4. Не помогло? Открываем «Параметры восстановления системы» и выбираем «Восстановление системы». Либо вводим rstrui в той же командной строке, где мы выполняли предыдущие команды. Следуем инструкцию, выбирая попеременно точки восстановления до полного восстановления системы. Если точек много, можно выбрать выборочно две-три точки: первую, последнюю и промежуточную. Очень желательно, чтобы эти точки были записано до того, как проявилась текущая проблема
5. Если точек нет, то выполняем Sfc /scannow — это команда командной строки, которая позволяет сканировать вашу систему Windows на наличие ошибок и исправлять их
6. Есть еще совет bootrec.exe /rebuildbcd — но не знаю, насколько это эффективно
Если на xp появляется стрелка, проверить shell в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
(должэен быть «explorer.exe»):
И еще на эту тему тут
Настройка Linux Mint
Если вы перешли с Windows на Linux и выбрали Mint-дистрибутив, то, вероятно, вы столкнетесь с некоторыми неудобствами вроде того, что, например, не работает переключение между языками на Ctrl+Shift и на Ctrl+Alt, а так же горячая клавиша Win+D и прочие. И всегда сразу в незнакомом дистрибутиве возможно найти, где именно можно настроить вышеназванные опции. В этой заметке я кратко опишу шаги по их настройке (все скрины делались Linux Mint 18.3 Sylvia Mate): Продолжить чтение
Краткий ликбез по работе с Ubuntu на bash
Информация о системе
lsb_release -a
— узнать версию ядра Linux (если не работает, значит утилита на установлена)cat /etc/*-release
— получить информацию о сборке (ubuntu/manjaro/fedora)cat /etc/issue.net
— узнать версию ubuntuecho $0
— узнать оболочку терминала (bash/zsh/tcsh)echo $XDG_CURRENT_DESKTOP
— узнать версию графической оболочкиuname -m
— узнать разрядность операционной системыcompgen -u
— получить список пользователейid
— получить список всех групп пользователей с их uidid -G
— получить все группы текущего пользователяgroups
— просто перечислить все группы текущего пользователя./<filename>
— запуск бинарной программы в linuxsudo -i
— выполнять все команды суперпользователя без подтверждения
Шпаргалка по netstat
- Показать все активные подключения:
netstat
- Показать все активные подключения и ожидающие порты:
netstat -a
- Показать приложения (процессы), использующие активные подключения и прослушивающие порты:
netstat -a -b
(использование ключа-b
требует запуска от имени администратора): - То же самое — только вместо имени процесса — его PID —
netstat -o
либоnetstat -a -o
- Проверить, занят ли порт: `netstat -aon | findstr :9090`
- Отобразить все подключения со статусом listening: `netstat -a | find /I «listening»`
- Запись результата команды в файл: netstat -a > C:\netstatall.txt
- Показать все соединения и прослушиваемые порты по протоколу tcp: `netstat -a -p tcp`
- То же самое для udp — `netstat -a -p udp`, для icmp — `netstat -a -p icmp`
- Отображение полного имени домена
netstat -f
- netstat 3 — циклический запуск команды каждый 3 сек
Работа с удаленными репозиториями github через git bash
Итак, первое, что необходимо сделать, чтобы работать с гит через консоль из под Windows, это скачать и установить git bash. Все настройки советую оставлять по умолчанию.
Итак, вы установили git bash и у имеете [удаленный репозиторий на github и] учетную запись, созданную через веб-интерфейс сайта github.com. Запускаем git bush и переходим в папку, в которой будет храниться/уже хранится наш локальный репозиторий. В дальнейшем, чтобы минимизировать выполняемые действия, советую создать небольшой скрипт вида:
cd путь_к_проекту; "%programfiles%\Git\git-bash.exe"
В моем случае это
D: & cd D:\_github\django_test & "C:\Program Files\Git\git-bash.exe"
Который автоматически будет запускать git-bash в корне проекта.
Теперь нужно сказать, что github предоставляет два варианта взаимодействия с сервером: https и ssh. Ниже мы рассмотрим их более детально в трех вариантах развития событий. И первый вариант развития:
1. Новый репозиторий
Вы только что создали репозиторий на гитхаб и собираетесь выложить туда готовый проект
Для начала необходимо подготовить локальный репозиторий. Для этого вводим команды:
git init git config --global user.name 'Sanshain' git config --global user.email 'my-email@ya.ru' git add . git commit -m "first commit"
Первой командой (git init
) мы инициализировали новый репозиторий. Команда git add .
проиндексировала все файлы внутри текущей директории, а командой git commit -m "first commit"
мы сделали первый commit (фиксацию изменений). Все, ура. Но пока промежуточное. Теперь нужно правильно выложить это все на гитхаб:
Для этого необходимо выполнить команду
git remote add origin <адрес нашего репозитория на гитхаб>
- https (например,
https://github.com/Sanshain/django_test.git
либоhttps://Sanshain@bitbucket.org/Sanshain/obfuscatenet.git
для bitbucket) - ssh (например,
git@github.com:Sanshain/django_test.git
)
git push -u origin master
Нужно всего лишь ввести свои учетные записи (логин/пароль) в падающем окошке от гитхаб. И все файлы будут экспортированы в удаленный репозиторий.
Для второго же случая вам необходимо будет сгенерировать открытый и закрытый ключи у себя на пк. Для это выполните следующие команды:
ssh-keygen -t rsa -b 4096 -C "<имя учетной записи>" eval $(ssh-agent -s) ssh-add "<желаемый путь, куда будет сгенерирован ключ>"
ssh-add -l
. Теперь необходимо скопировать содержимое публичного ключа и создать новый ключ с этим содержимым в настройках личного кабинета гитхаб. После всего вышепроделанного можно выгружать локальный репозиторий git push -u origin master
. Сложно? На вкус и цвет…
2. Удаленный репозиторий
У вас уже есть репозиторий с вашим проектом на гитхаб, и нужно его синхронизировать с новым локальным репозиторием на пк. Переходим в папку, где будет храниться наш /репозиторий/проект (у меня это D: & cd D:\_github\
)
Для примера возьму свой репозиторий https://github.com/Sanshain/django_test.
Для клонирования существующего репозитория по https пишем:
git clone https://github.com/Sanshain/django_test.git
Результат команды должен выглядеть примерно следующим образом:
Cloning into 'django_test'... remote: Enumerating objects: 200, done. remote: Counting objects: 100% (200/200), done. remote: Compressing objects: 100% (170/170), done. remote: Total 200 (delta 19), reused 200 (delta 19), pack-reused 0 Receiving objects: 100% (200/200), 8.09 MiB | 582.00 KiB/s, done. Resolving deltas: 100% (19/19), done.
Теперь внутри нашей папки мы увидим новую папку, содержащую все файлы и папки нашего (или не нашего открытого) удаленного репозитория. Для дальнейшей работы с этой папкой через git bash
переходим в нее командой cd django_test
Теперь нужно учесть, что месторасположение файла в системе может отличаться от исходного, поэтому при запуске, вероятно, вы можете увидеть ошибки. А потому и конфигурацию нужно настраивать самостоятельно. Для того, чтобы это не делать каждый раз, в удаленном репозитории необходимо правильно настроить .gitignore
, специальный файл исключений, который поможет отключить из скв файл конфигурации. В моем случае это файл — manage.py
.
Создается .gitignore
с помощью команды touch .gitignore
либо сразу с содержимым — echo 'manage.py' > .gitignore
.
Если у вас python, советую добавить туда pyc-файлы строкой `*.pyc`.
Однако это не все… Если ‘manage.py’ уже проиндексирован, то необходимо его удалить [из индекса], сделать коммит и затем снова добавить (не забудьте скопировать перед выполнением):
git rm путь/к/файлу [-f] git commit -m ".gitignore added"
И добавляем обратно. Пишем еще какие-то изменения.
Если в процессе изменений были добавлены новые файлы, делаем git add .
.
Теперь можно коммитить на удаленный репозиторий наши изменения. Сперва проверяем удаленные репозитории:
git remote -v
Если пусто, то задаем. Есть два варианта подключения к удаленным репозиториям:
git remote add origin https://github.com/Sanshain/django_test.git
— первый запросит у нас логин/пароль от аккаунта
git remote add origin git@github.com:Sanshain/django_test.git
— второй потребует создание публичного ключа шифрования для гитхаб
Если удаленные репозитории уже заданы, делаем git push origin master
(если репозиторий уже отpushен с другого локального репозитория, то сперва необходимо выполнить git pull origin master
)
3. Общий репозиторий
И теперь рассмотрим самый коронный случай: у нас есть общий удаленный репозиторий и два локальных репозитория на разных компах, при чем оба репозитория могут коммитить файлы независимо друг от друга. Пример:
Вася сделал коммит со своего компа на удаленный репозиторий и ушел домой, но Петя остался на работе и продолжил править файлы, и сделал коммит на удаленный позже Васи. Вася на следующий день придет и уже не сможет продолжить работу со своим локальным репозиторием без угрозы потери изменений, которые делал Петя в его отсутствие в глобальный репозиторий, поскольку если он продолжит работу со своим локальным репозиторием и ‘отpush
ит’ его в глобальный, то попросту рискует их затереть. Поэтому ему необходимо сделать так называемый pull.
Команда pull объединяет в себе две команды — fetch (скачивает изменения) и merge (делает слияние). Выглядит она вот так:
git pull <название удаленного репозитория>
В моем случае это выглядит вот так:
git pull https://github.com/Sanshain/django_test.git
Если же Вася перед push уже успел внести какие-либо правки до выполнения команды pull
, то при ее выполнении он может столкнуться с конфликтами. Конфликты бывают разной степени «тяжести».
Я сейчас рассмотрю самый простой вид разрешения — это выбор заменяющего файла целиком, а не его фрагмента (поскольку последнее, на мой взгляд заслуживает отдельной статьи). Для того, чтобы оставить в локальной ветке локальную версию файла, необходимо выполнить команду
git checkout --ours <название файла>
Например:
git checkout --ours db.sqlite3
Если же нужно, чтобы файл целиком подменился его глобальной версией, вместо outer
необходимо использовать параметр theirs
.
Далее выполнить `git add -u` и git commit -m 'merge'
.
На этом пожалуй, все. Продолжение следует…
Обновление карт Navitel
Что нам понадобится:
- Компьютер под управлением Windows xp/7/10 с одним свободным USB-портом
- Интернет со скоростью ADSL+ и выше для скачивания карт и прошивки либо уже скаченные
- Навигатор с предустановленным Navitel
Краткая инструкция
- Подключаете навигатор к ПК либо ноутбуку с предустановленной ос Windows через miniUSB-кабель. Навигатор автоматически должен перейти в режим накопителя.
- Если аппарат не переходит автоматически, а кабель надежно подключен к ПК, то его надо настроить вручную. На разных аппаратах принцип настройки может быть разный. В Prestigio Geovision 4250, например, идем в Настройки->Инфо->Настройка USB и выбираем внешнюю USB-память.
- Обязательно сохраняем резервную копию всего содержимого навигатора на свой ПК.
- Если вы заливаете официальную прошивку, то дальше строго следуете пунктам официальной инструкции: переходим в личный кабинет, добавляем устройство (вводим название устройства и прикрепляем файл активации NaviTelAuto_Activation_Key.txt из папки
\NavitelContent\License
) и скачиваем последние версии доступных карт и программы (если требуется). - Далее — если требуется обновление программы — стираем все с навигатора. Копируем в корень папку Navitel, содержащую обновленную версию программы. Отключаем навигатор от ПК, включаем, указываем язык, принимаем соглашение, настраиваем COM-порты (автоматически) пока не появится предложение загрузить карты. Выходим из программы и подключаемся к ПК.
- Копируем нужные карты (файл с расширением nm*, где вместо звездочек будет цифра) в корень NavitelContent->Maps.
- Далее необходимо убедиться, что у вас установлен верный ключ: валидный ключ (NaviTelAuto_Activation_Key) необходимо вставить — если есть старый, его удалить — в
\NavitelContent\License
и корень навигатора. Отключаем от компьютера, загружаемся. На все вопросы по синхронизации отвечаемнет
.
Работа с командной строкой Windows
Мы уже рассматривали работу с командной строкой в предыдущей статье. Там были собраны команды cmd для быстрого вызова служб и утилит для быстрой настройки системы. В этой заметке мы рассмотрим команды, которые предназначены для работы непосредственно в командной строке:
-
-
winver - узнать точную версию операционной системы Windows
-
ping - проверяет наличие доступа к определенному ip-адресу по протоколу ICMP
-
telnet - позволяет удаленно подключиться к устройству через ip-адрес устройства и его порт (по умолчанию 23)
-
netstat - отображает активные подключения TCP и UDP, адреса отправителя и получателя, их порты и состояние соединения - ESTABLISHED (соединение установлено), LISTENING (прослушка порта), TIMED_WAIT (клиент отправил сообщение серверу и ожидает ответ), CLOSE_WAIT (клиент ждет закрытия соединения). Ключ -b позволяет увидеть названия программ, которые инициировали соединение , -o - pid процесса
-
tracert - определения маршрутов следования данных в сетях TCP/IP
-
wmic - позволяет в реальном времени увидеть параметры. с которыми работает железо. Например:
memorychip get speed, devicelocator
покажет с какой частотой работают планки оперативной памяти -
bcdedit - позволяет просматривать и менять параметры загрузки Windows. Работает и на Win10
-
shutdown - используется для завершения сеанса пользователя, перезагрузки компьютера, перевода его в спящий режим или выключения питания. При наличии соответствующих разрешений, команда может выполняться для удаленной системы. Например,
shutdown /s /t 0
- немедленное выключение компьютера, аshutdown /r /o /t 0
вызывает меню выключения компьютера (на поздних версиях Windows) -
diskpart - запуск системной утилиты для работы с жестким диском. Заслуживает отдельной статьи. Не такая уж бесполезная утилита при отсутствии Acronis, Aomei и прочих программ для работы с разделами. Она обладает большими возможностями, нежели "Управление компьютером" в интерфейса панели администрирования Windows. Например, панель не позволяет форматировать новый раздел в fat32. Вы это можете сделать через diskpart. Подробнее тут
netsh- "network shell" - позволяет осуществлять локальное или удаленное конфигурирование сетевых параметров. Например, одна из самых популярных команд - смена ttl: `netsh int ipv4 set glob defaultcurhoplimit=65`. Очень полезная фича для удаления следов вирусной активности - Деинсталляция TCP/IP протокола — `netsh int ipv4 uninstall` и его инсталляция `netsh int ipv4 install`. Так же можно делать вполне рутинные вещи, например, подключаться к WiFi `netsh wlan connect ssid=‘mySSID’ name=‘WLAN-Profil1’`.
-
Продвинутый уровень
- Форматирование вывода
/format
с допустимыми вариантами.