Если вам когда-либо приходилось администрировать что-то вроде Linux, BSD, Solaris или чего-то подобного, вы знаете, насколько мощной может быть командная строка. Практически любую операционную систему POSIX можно полностью администрировать из командной строки. Даже Microsoft начала догонять администрацию с достижениями в Powershell. Командная строка значительно упрощает автоматизацию и администрирование системы за счет более сложного обучения.

Сама по себе командная строка - это не инструмент, а набор инструментов. Инструменты могут быть разными, их можно добавлять или удалять в зависимости от системы, но полезность данного инструмента зависит от его назначения. Молоток мало что делает, когда все, что у вас в руках, - это винты. Лучшая отвертка не поможет, когда у вас узкий зазор. Используйте правильный инструмент для правильной работы, но убедитесь, что у вас есть правильный набор инструментов.

Командная строка для администрирования

Для администрирования в основном требуется командная строка для продвижения. Специалисты по Windows часто упираются в стену, потому что пренебрегают знаниями о командной строке и Powershell. Причина, по которой командная строка становится настолько важной, заключается в том, что она удаляет уровень абстракции, который может маскировать незнание. Вы вынуждены столкнуться с тем, что действительно знаете о работе системы.

Практически каждый сервер Linux или BSD будет использовать SSH для административных целей. SSH позволяет подключаться, как если бы вы сидели перед терминалом машины. Если вы не знаете командную строку и полагаетесь на графический интерфейс в Linux или BSD, вам нужно либо зайти на сайт, либо как-то настроить перенаправление X (если вы не знаете командную строку, это будет сложно) или у вас есть другое решение для подключения. Добавление графического интерфейса вызывает ряд проблем с безопасностью также и для рабочего сервера. У большинства служб также нет графического интерфейса для управления своими настройками, даже если вы решите нажать X. Вам нужна командная строка для управления сервером Linux или BSD.

MacOS находится в своем собственном странном месте с новыми изменениями безопасности Apple, но если у вас правильно настроен MDM, MacOS во многом аналогична BSD. Есть много предостережений в отношении этой настройки, и они выходят за рамки этой статьи.

Администрирование Windows

Windows 10 или Server 2016 и более поздние версии находятся на той стадии, когда вы можете использовать командную строку исключительно для администрирования практически любых настроек или операций ОС, а также большинства корпоративных продуктов Microsoft. Некоторые функции Exchange доступны только через Powershell для многих менее распространенных операций. Я ожидаю, что Microsoft продолжит продвигать эту тенденцию, особенно с их предыдущим представлением Server Core, у которого вообще нет графического интерфейса (и, что удивительно, не нужно перезагружать каждый месяц).

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

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

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

Как только вы сможете выполнить определенный процесс, вы можете повторить его снова. Некоторые однострочные сообщения могут не стоить написания сценариев, но они есть, если вам приходится делать их много. Сила автоматизации заключается в экономии времени или упрощении. Мой наиболее часто используемый сценарий - это тот, который просто запускает sfc and DISM. Автоматизация не должна быть сложной, чтобы упростить администрирование.

Первым условием автоматизации является изучение языка сценариев. Если вы администрируете те же системы, которые хотите автоматизировать, вы хотите выучить язык, соответствующий вашей среде. Каждая система Server 2003 и более поздних версий имеет примерно одинаковую командную строку. В Windows 10 и производных версиях есть Powershell в удобной для использования версии. На каждой машине MacOS есть Perl и Bash. Linux немного более гибок, но есть большая вероятность, что там есть Bash, а также другой язык сценариев, такой как Perl или Python.

Изучая командную строку в Windows, вы изучаете основные компоненты создания пакетного сценария и / или основы Powershell. Если вы сделаете то же самое в Linux, вы научитесь создавать сценарий Bash. Вам просто нужно уметь складывать части вместе и любые части, относящиеся к конкретному языку, и вы можете начать экономить время, автоматизируя умопомрачительные задачи. Если вам нужно переименовать папку среди файлов, чтобы добавить суффикс к каждому из них, вы хотите сделать это вручную или с помощью команды? Если этот процесс является обычным, нужно ли вам каждый раз переделывать его или сценарий для повторного использования по желанию?

Использование командной строки - это основная валюта функционального сценария для большей части системной автоматизации. Вы просто склеиваете остальную часть процесса с необходимой логикой и переменными. Bash, Powershell и подобные им можно использовать для написания сценариев, которые выходят за рамки сценариев и системного администрирования, но они не лучшие в этом. При этом все они сами по себе являются языками программирования.

Командная строка для общего использования

Правильное приложение командной строки может значительно облегчить вашу жизнь, даже если вы не занимаетесь ИТ. Знание того, как исправить основные проблемы, означает, что вы можете вернуться к тому, что вы хотите или должны делать, не тратя время или деньги на то, чтобы кто-то исправил это за вас. Я лучше буду использовать Powershell для удаления приложений Windows 10, чем бороться с магазином. Некоторые базовые задачи становятся намного проще и позволяют вам превратиться из пользователя в опытного пользователя.

Если вам нужно переименовать сотню файлов по формуле, вы хотите сделать это вручную или использовать базовый сценарий? Если вам нужно отладить сбой и вы знаете, что искать, вы хотите попробовать открыть журнал и выполнить поиск или использовать что-то вроде grep или find, чтобы вернуть только соответствующие штуки? Метод графического интерфейса может работать, но когда вы поймете процесс, вы сможете сэкономить время и нервы, выполняя его из командной строки. Такого рода уловки делают пользователя опытным.

Мне не нужно открывать текстовый редактор и выделять строки, чтобы удалить ровно 54 строки из блока в тексте, я открываю vim, перемещаюсь туда, где мне нужно, и нажимаю d54 , введите, ZZ, войдите из режима выхода. Конечно, это бесполезное упражнение, если вы не сталкиваетесь с подобными проблемами. Командная строка может значительно повысить эффективность общего использования ОС, но иногда проще использовать графический интерфейс для менее распространенных задач.

Когда не работает командная строка?

Некоторые среды могут работать полностью из командной строки без какого-либо влияния на функциональность и эффективность рабочего процесса, например серверные среды. Некоторые из более идеалистических разработчиков Linux, с которыми я встречался, полностью перевели свои рабочие станции в среду без графического интерфейса пользователя (SVGAlib или DirectFB), чтобы даже избежать соблазна использовать графический интерфейс. Хотя я уважаю огромный объем работы, проделанной для того, чтобы сделать это усилие даже близким к функциональному, это также немного читается как выброс ребенка с водой в ванне.

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

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

Правильные инструменты для правильных задач

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

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

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

Первоначально опубликовано на https://somedudesays.com 17 мая 2020 г.