Есть причина, по которой существует стереотип
Есть причина, по которой образ программиста, сидящего перед эмулятором терминала и использующего загадочные команды, является устойчивым стереотипом. Я уже писал ранее, что командная строка неизбежна, если вы разработчик программного обеспечения. Почти в любой роли, которая требует от вас иметь дело с технической частью индустрии программного обеспечения, знание того, как использовать командную строку, очень поможет.
Нет ничего более занудного, чем возможность эффективно использовать инструменты командной строки. Преимущество заключается в том, что инструменты CLI не только легко переносятся между средами, от облачных виртуальных машин до ОС, но и легко автоматизируются. Самый большой барьер на пути эффективного использования этих инструментов обычно возникает из-за того, что люди их пугают или разочаровывают, и обе эти проблемы можно решить, потратив время на их изучение. Я не буду вдаваться в большой список конкретных инструментов, есть много статей, которые уже делают это. Вместо этого я хотел бы сосредоточиться на том, какие типы инструментов вам действительно нужны. Большинство из них, вероятно, самоочевидны, но я стараюсь не делать предположений.
Терминал
Наиболее важной частью использования CLI является эмулятор терминала, обычно называемый просто терминалом. Это ваш шлюз в CLI. Независимо от того, какой терминал вы решите использовать, вы, вероятно, будете использовать его очень долго, поэтому постарайтесь обдуманно подойти к своему выбору. Терминалы могут быть как простыми, так и сложными, как вам нравится. Они могут предлагать такие вещи, как вкладки для отслеживания нескольких сеансов, прозрачность для красивого вида и встроенные функции, такие как поиск. Я лично предпочитаю терминал, который выглядит чистым. Мне не нужны вкладки или большинство других причудливых вещей. Все эти вещи могут быть достигнуты внутри самого CLI.
Оболочка
Оболочка — следующий базовый элемент, на котором строится все остальное. Опять же, какую оболочку вы используете, это нормально, если вы знаете, почему вы ее используете. Будьте осмотрительны. Оболочка будет средством, с помощью которого вы взаимодействуете со своими инструментами, файловой системой и всем остальным. Если у вас нет времени или желания копаться во всех различных оболочках с их конкретными плюсами и минусами, мой совет — придерживаться bash. Bash вездесущ, являясь оболочкой по умолчанию для большинства дистрибутивов Linux, и он доступен практически для каждой ОС.
Менеджер пакетов
Менеджер пакетов — часто упускаемая из виду часть экосистемы CLI. У вас будет меньше гибкости в выборе менеджера пакетов, потому что ваш основной менеджер пакетов в большинстве случаев будет продиктован ОС. Хотя вы не можете выбрать основной менеджер пакетов, используемый ОС, вы получаете больше гибкости в выборе того, который вы будете использовать для установки собственных инструментов и программного обеспечения. Это хорошая идея, потому что она отделяет управление пакетами вашей ОС от управления пакетами ваших личных инструментов. Если вы чем-то похожи на большинство разработчиков, вы будете регулярно, если не постоянно, устанавливать, обновлять, удалять, понижать версию и вообще создавать большой беспорядок в файловой системе. Таким образом, вы случайно не напортачите с библиотеками, от которых зависит ваша ОС. Может быть, это я, но меня слишком часто кусали, добавляя или удаляя что-то, от чего, как оказалось, зависит ОС, и это начинает раздражать. Я сделаю этот случай исключением из моего правила не рекомендовать какой-либо конкретный инструмент, потому что помимо доморощенного не так много независимых от ОС портативных опций. Хорошей новостью является то, что он доступен для Mac, Linux или Windows (с использованием подсистемы Windows для Linux).
Редактор
Теперь, когда у вас есть терминал, оболочка и вы можете установить инструменты, вам нужно начать редактировать некоторые вещи, например, файлы конфигурации. Я настоятельно рекомендую найти редактор на основе терминала, потому что, как только вы начнете серьезно использовать CLI, он вам понадобится. Можно ли редактировать локально с помощью графического редактора, загрузить его на виртуальную машину EC2 и использовать? Конечно! Это абсолютно работает. С другой стороны, я бы предпочел просто открыть файл на месте, внести изменения и двигаться дальше, даже не выходя из виртуальной машины. Я оставлю пламенные войны кому-то другому, мне все равно, какой редактор вы используете, но я рекомендую, чтобы это было то, что обычно встречается в большинстве систем, достаточно мощное, чтобы удовлетворить ваши потребности, и не выводит вас из терминал. Я также рекомендую вам хорошо изучить его, так как в долгосрочной перспективе это значительно облегчит вашу жизнь.
Все остальное
Я потратил некоторое время, пытаясь придумать более фундаментальные инструменты, и, наконец, пришел к нескольким выводам.
- Все после редактора зависит от вашего личного рабочего процесса
- Ваш личный рабочий процесс не будет развиваться без целенаправленного внимания с вашей стороны.
Все после редактора зависит от вашего личного рабочего процесса
Любые другие инструменты, которые я считаю фундаментальными, применимы только ко мне. Инструменты, которые вы используете, и то, как вы их используете, меняются в зависимости от вашего опыта, уровня комфорта и личных предпочтений. Они будут меняться в течение вашей карьеры, над чем вы работаете и в соответствии с вашими меняющимися стандартами. В какой-то момент своей карьеры я бы объявил терминальный мультиплексор незаменимым фундаментальным инструментом. Затем изменилась моя конкретная работа, изменились мои привычки, и, хотя я все еще пользуюсь одним из них, это уже не обязательный инструмент, каким он был раньше. Это можно сказать о многих инструментах CLI, которые я использовал в своей карьере. Инструменты форматирования, файловые менеджеры, сетевые инструменты, то, что вы используете и как вы это используете, — все это развивается и изменяется с течением времени под влиянием вас и вашего собственного роста. Единственное, что я могу сказать с уверенностью, это то, что независимо от того, что я выбрал для изучения, я никогда не жалел, что потратил на это время, и это всегда приносило хорошие дивиденды на протяжении всей моей карьеры.
Ваш личный рабочий процесс не будет развиваться без целенаправленного внимания с вашей стороны
Это вводящее в заблуждение утверждение. Он будет расти и развиваться без преднамеренного внимания с вашей стороны. Разница в том, как он будет развиваться. Без преднамеренного внимания с вашей стороны произойдет то, что вы оставите свой профессиональный рост на волю судьбы. Если вам повезет, вы споткнетесь и ступите в горшок с золотом. Если нет, вы научитесь привычкам, которые будут мешать вам годами. Наиболее вероятный сценарий — вы будете посредственным разработчиком. И да, это верно без фокуса CLI. По моему опыту, CLI — это усилитель для преднамеренного обучения. Шесть месяцев целенаправленного обучения при использовании CLI по сравнению с шестью месяцами возни с CLI — это разница между тридцатью секундами, чтобы найти файл, и тремя секундами, чтобы найти файл.
Заключительные мысли
Возможно, это было немного бессвязно, но если вы зашли так далеко, я ценю вашу настойчивость. Во время написания этой статьи я понял, что самым большим отличием лично для меня была преднамеренная сосредоточенность и намерение. Помимо использования CLI или профессионального роста, ключевым моментом является намеренное стремление к тому, за чем вы гонитесь. В моей жизни были времена, когда я терял это преднамеренное намерение в своей работе и своих личных целях и мучился из-за того, что на самом деле не достиг многого, но и не потерял позиции. Просто.. застой. Когда я просыпался и замечал, я понимал, что потратил много времени впустую. После того, как я восстановил свою концентрацию, я мог сделать больше за месяц, чем за последние шесть. Не будь мной. Сосредоточьтесь, будьте преднамеренными, и что бы вы ни делали, делайте это с намерением.
Если вы зашли так далеко, дайте мне хлопок или подпишитесь, чтобы я знал, нашли ли вы это интересным или полезным.