По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Python часто называют «языком программирования с батарейками в комплекте», или, иначе говоря, полностью укомплектованным. Это лишь означает, что в него встроен ряд готовых библиотек, которые разработчики могут использовать, чтобы облегчить свою работу. Как вы, наверное, уже догадались, существует огромное количество библиотек для этого интерпретируемого высокоуровневого языка программирования общего назначения. Нет никаких сомнений в том, что одна из причин такой популярности Python – это наличие более ста тысяч библиотек на любой вкус. Чем больше библиотек и пакетов в своем распоряжении имеет язык программирования, тем больше существует различных вариантов его использования. Трудно сказать, какие из тысяч доступных библиотек Python на самом деле хороши, а какие не стоят не вашего внимания. Для того, чтобы помочь вам, мы перечислили в этой статье некоторые лучшие библиотеки Python. Ваш фаворит есть в этом списке? Читайте дальше, чтобы это узнать! Что такое библиотека Python? Прежде чем мы сможем ответить на этот вопрос, нам нужно понять, что такое библиотека – по крайней мере, с точки зрения программирования. Библиотеки состоят из классов, служебных методов и модулей. Когда вы пишете код для своего приложения, эти вещи могут вам пригодиться. Вместо того, чтобы писать код с нуля, вы можете воспользоваться готовыми компонентами библиотеки, чтобы выполнить какие-то определенные задачи в вашем коде. Благодаря этому вы сэкономите много времени и сил. Более того, библиотеки позволяют использовать код повторно и в то же время устанавливают некоторые стандарты для разработчиков. Так что же такое библиотеки Python? Так как Python стал наиболее широко используемым языком программирования за последние годы, то его используют для самых различных целей и приложений. Одна из главных причин, по которой Python так популярен, заключается в том, что он имеет огромное количество различных библиотек с открытым исходным кодом в своем арсенале, которые являются не только бесплатными, но и достаточно простыми в использовании. Библиотеки Python – это наборы полезных модулей, функций, классов и многого другого. Эти библиотеки помогают разработчикам ускорить процесс написания кода, предоставляя возможность работать с уже существующим кодом без лишних телодвижений. Стоит ли говорить, что библиотеки позволяют разработчикам сконцентрироваться на важных частях своих приложений, так как им больше не нужно писать код с нуля. Стоит отметить, что, так как Python используется в самых разных отраслях, то существуют топ библиотек Python практически для любых целей, которые вы только можете себе представить. Что следует учитывать при выборе библиотеки Python Теперь, когда вы знаете, чем вам может помочь библиотека в Python, у вас может возникнуть следующий вопрос: «Как мне выбрать правильную библиотеку?» Это вполне нормальный вопрос – в конце концов, на сегодняшний день доступно более 137 000 библиотек Python. И как тут решить, какая из них лучше всего подходит для ваших целей? Может оказаться трудным принять решение, когда вы сталкиваетесь с таким огромным выбором. Некоторые даже могут почувствовать себя беспомощными, не зная, что выбрать. А для некоторых выходом может стать даже то, что они решат просто написать все то, что им нужно, с нуля. Делать это, конечно же, не нужно. Вот некоторые вещи, которые следует учитывать при выборе лучших библиотек Python: Какова ваша предполагаемая цель? Понимание основной цели вашего проекта необходимо для того, чтобы помочь сузить круг подходящих библиотек Python. Для того, чтобы еще сократить список потенциальных кандидатов, рассмотрите любые второстепенный области, цели и особенности, которые так или иначе могут быть связаны с основной целью. Например, если ваш проект ориентирован на науку о данных, то вам может понадобиться библиотека, которая сможет поддерживать управление данными и их визуализацию. Какую версию Python вы используете? Есть множество различных версий Python, которые вы можете использовать для своих проектов. Когда вы выбрали определенную версию для своего приложения, вы должны убедиться, что все библиотеки, которые вы используете, совместимы с этой версией. Будет ли эта библиотека работать совместно с другими библиотеками, которые вы используете? Если вы используете несколько библиотек, то рекомендуется убедиться, что они могут работать вместе. Если вдруг вы используете несовместимые или пересекающиеся библиотеки, то они могут доставить вам больше вреда, чем пользы. Соответствует ли библиотека вашему бюджету? Есть огромное количество библиотек Python с открытым исходным кодом, которые вы можете использовать совершенно бесплатно. Если вы найдете среди них те, которые идеально подходят для вашего проекта, то вам, возможно, и не придется покупать какие-либо еще библиотеки. Однако все же есть библиотеки, за доступ к которым вам нужно будет заплатить. Топ библиотек Python 1. Requests Основное назначение: упрощение HTTP-запросов Одна из самых популярных общедоступных библиотек Python – это Requests. Ее цель – сделать HTTP-запросы более простыми и удобными для восприятия. Библиотека Requests имеет лицензию Apache2 и написана на Python. Она является фактическим стандартом, который используют разработчики для выполнения HTTP-запросов в Python. Помимо того, что библиотека Requests может использоваться для отправки HTTP-запросов на сервер, она также позволяет добавлять в них данные формы, содержимое, заголовок, файлы, состоящие из нескольких частей, и т.д. С этой библиотекой разработчикам не нужно добавлять запрос к URL-адресу или кодировать данные POST вручную. Библиотека Requests абстрагируется от многочисленных сложностей создания HTTP-запросов в простом API, поэтому разработчики могут больше сосредоточится на взаимодействии со службами. Библиотека поддерживает Python 2.7, 3.4 и выше, а также отлично работает с PyPy. Основные моменты: Разрешает загрузку нескольких файлов и потоковую загрузку Автоматическая расшифровка содержимого и автоматическое развертывание Проверка SSL в браузере Функции могут быть настроены и оптимизированы в соответствии с требованиями Постоянное соединение и объединенное подключение Поддерживает международные домены и URL-адреса 2. Pillow Основное назначение: обработка изображений Дополнительные назначения: архивирование изображений, отображение изображений Python Imaging Library, или PIL – это бесплатная библиотека Python, которая позволяет интерпретатору Python обрабатывать изображения. Иными словами, PIL дает возможность обрабатывать, открывать и сохранять различные форматы изображений в Python. Pillow была создана Алексом Кларком и его соавторами, и она является ответвлением библиотеки PIL. Помимо мощных возможностей обработки изображений, Pillow предлагает эффективное внутреннее представление информации и всестороннюю поддержку форматов файлов. Стандартная библиотека Python обеспечивает быстрый доступ к данным, которые хранятся в нескольких основных форматах пикселей. Основные моменты: Поддержка отладки с помощью метода show() Идеально подходит для приложений пакетной обработки данных Распознает и читает большое количество различных форматов файлов изображений Предлагает интерфейсы BitmapImage, PhotoImage и Window DIB Поддерживает произвольные аффинные преобразования, преобразования пространства цветов, фильтрацию с помощью набора встроенных ядер свертки, изменение размера и поворот изображения, а также поточечные операции Гистограммы позволяют извлечь некоторую статистику из изображения, а также могут использоваться для автоматического повышения контрастности и глобального статистического анализа 3. Scrapy Основное назначение: веб-скрейпинг Дополнительные назначения: автоматизированное тестирование, интеллектуальных анализ данных, сканирование веб-страниц (веб-краулинг) Scrapy – это бесплатный фреймворк Python с открытым исходным кодом, который широко используется для веб-скрейпинга и ряда других задач, в том числе автоматического тестирования и интеллектуального анализа данных. Изначально Scrapy был разработан именно для веб-скрейпинга, а позже был доработан для выполнения других задач. Библиотека предлагает быстрый и высокоуровневый метод сбора данных с веб-сайтов и извлечения структурированных данных с веб-страниц. Scrapy написан на Python и построен на основе «пауков», или автономных поисковых роботов, которым предоставляется набор инструкций. Scrapy соблюдает принцип DRY (don’t repeat yourself – не повторяйся) и тем самым упрощает создание и масштабирование готовых проектов веб-сканирования. Основные моменты: «Паука» для обхода веб-сайта и извлечения данных легко написать Следует принципу DRY Предлагает оболочку для сбора данных, которая позволяет разработчикам тестировать поведение веб-сайта Поддерживает экспорт собранных данных с помощью командной строки 4. Asyncio Основное назначение: работа с асинхронным кодом Разработчики Python по всему миру используют библиотеку asyncio для написания параллельного кода с помощью синтаксиса async/await. Библиотека asyncio больше всего подходит для кода, который связан с вводом-выводом, а также для высокоуровневого структурированного сетевого кода. Asyncio используется для создания различных асинхронных фреймворков Python, которые предлагают библиотеки подключения к базам данных, распределенные очереди задач, высокопроизводительные сетевые и веб-серверы и многое другое. В библиотеку встроен ряд высокоуровневых и низкоуровневых API. Основные моменты: Позволяет контролировать подпроцессы, распределять задачи по очередям, выполнять сетевой ввод-вывод и межпроцессное взаимодействие, а также синхронизировать параллельный код. Объединение библиотек и кода на основе обратных вызовов с помощью синтаксиса async/await и низкоуровневых API. Включает в себя набор высокоуровневых API для одновременного запуска сопрограмм Python и полного контроля над их выполнением. Упрощает работу с асинхронным кодом. Поддерживает создание циклов событий и управление ими, реализуя эффективные протоколы передачи данных. 5. Tkinter Основное назначение: разработка графического интерфейса Tkinter позволяет просто и быстро создавать приложения с графическим интерфейсом. Tkinter – это стандартная библиотека графического интерфейса для языка программирования Python. Она предлагает мощный объектно-ориентированный интерфейс для инструментария графического интерфейса "Tk". Процесс создания приложения с графическим интерфейсом с помощью Tkinter очень прост. Все, что от вас требуется, это выполнить следующие простые шаги: Импортировать Tkinter Создать главное окно для разрабатываемого приложения с графическим интерфейсом Добавить один или несколько графических элементов Tkinter Войти в основной цикл обработки событий, чтобы выполнить действий по каждому событию, инициированному пользователем В Tkinter есть более 15 типов графических элементов, в том числе кнопки, метки и текстовые поля. Каждый из них имеет доступ к определенных методам управления геометрией, которые необходимы для их организации в основной области графических элементов. Основные моменты: Включает в себя набор графических элементов, которые поддерживают методы управления геометрией Упрощает разработку приложений с графическим интерфейсом Поддерживает эффективный объектно-ориентированный интерфейс 6. Six Основное назначение: библиотека совместимости (сглаживание различий между Python 2 и Python 3) Несмотря на незамысловатость названия, Six – это мощная библиотека Python, которая предназначена для сглаживания различий между двумя версиями Python: 2 и 3. Библиотека Six поддерживает кодовые базы, которые могут работать как на Python 2, так и на Python 3 без внесения каких-либо изменений. Библиотека Six очень проста в использовании, поскольку представляет собой всего один файл Python. Поэтому скопировать библиотеку в проект Python до смешного просто. Название Six отражает следующее: (Python) 2 умножить на (Python) 3. Основные моменты: Простые служебные функции для обеспечения совместимости кода Python с Python 2 и Python 3. Поддерживает все версии, начиная с Python 2.6. Очень проста в использовании, так как содержится в одном файле Python. 7. aiohttp Основное назначение: служит асинхронным HTTP-клиентом/сервером Библиотека aiohttp – это еще одна простая, но при этом широко используемая библиотека Python. По сути, это асинхронный HTTP-клиент или сервер в Python. Эта библиотека выполняет только эту функцию и поддерживает клиентские и серверные веб-сокеты. Основные моменты: Предлагает веб-сервер с промежуточным ПО, подключаемой маршрутизацией и сигналами. Обеспечивает поддержку клиентских и серверных веб-сокетов Поддерживает HTTP-клиента и сервер 8. Pygame Основное назначение: разработка 2D-игр Дополнительное назначение: разработка мультимедийных приложений Pygame – это бесплатная библиотека Python с открытым исходным кодом. Она предназначена для разработки мультимедийных приложений на Python, в частности, двумерных игр. И как результат, она популярна среди как обычных, так и профессиональных разработчиков игр на Python. За кадром Pygame использует библиотеку SDL (Simple DirectMedia Layer). Как и SDL, библиотека Pygame отличается высокой переносимостью, а значит, обеспечивает поддержку большого количества платформ и операционных систем. Приложения, которые были разработаны с помощью Pygame можно портировать на Android-устройства, такие как смартфоны и планшеты. Для этого необходимо использовать pgs4a (версия Pygame для Android). Основные моменты: Не требует OpenGL Упрощает использование многоядерных процессоров Для использования всех доступных функций графический интерфейс не нужен Обеспечивает поддержку большого количества платформ и операционных систем Простая и удобная в использовании Использует код ассемблера и оптимизированный код С для реализации основных функций 9. Kivy Основное назначение: разработка приложений (с инновационными пользовательскими интерфейсами) При создании мобильных приложений и программного обеспечения мультитач-приложений с NUI (Natural User Interface – естественный пользовательский интерфейс) разработчики Python опираются на библиотеку Kivy. Kivy – это бесплатная библиотека Python с открытым исходным кодом. Она распространяется по лицензии MIT (лицензии свободного ПО, разработанной Массачусетским технологическим институтом) и работает на Android, iOS, Linux, macOS и Windows. На самом деле Kivy – это эволюционировавший проект PyMT. Эта библиотека содержит все элементы, которые необходимы для создания интуитивно понятного мультитач-приложения, а именно графическую библиотеку, большой набор графических элементов с поддержкой мультитач, промежуточный язык (Kv) и всестороннюю поддержку ввода. Kv, или язык Kivy, - это промежуточный язык, который предназначен для описания действий со стороны пользователя и интерфейса. Это позволяет легко создавать пользовательские интерфейсы и добавлять к ним способы взаимодействия. Kivy также обеспечивает поддержку Raspberry Pi. Основные моменты: Возможность по умолчанию использовать большинство устройств, входов и протоколов Кроссплатформенность Предлагает более 20 графических элементов с возможностью изменения их размеров Поддержка графического механизма, созданного на базе OpenGL ES 2. 10. Bokeh Основное назначение: разработка приложений, основанных на визуализации Дополнительное назначение: визуализация данных, наука о данных Bokeh – это интерактивная библиотека визуализации для языка программирования Python. Она позволяет красиво и понятно визуализировать данные в современных веб-браузерах. Библиотека визуализации данных упрощает создание информационных панелей, приложений данных и интерактивных графиков. Помимо лаконичного и изящного построения разнообразной графики, библиотека Bokeh также имеет дополнительные возможности благодаря высокопроизводительной интерактивности при потоковой передаче данных или при очень больших наборах данных. Основные моменты: Позволяет строить сложные статистические графики с помощью простых команд Визуализация, полученная с помощью Bokeh, может быть легко встроена в две самые популярные платформы Python – Django и Flask Возможность создавать изящные и интерактивные визуализации данных Несколько привязок к языку (Julia, Lua, Python и R) Различные форматы вывода 11. NumPy Основное назначение: научные и численные вычисления Дополнительные назначения: анализ данных, формирование основ других библиотек Python, таких как SciPy NumPy – это один из лучших модулей Python с открытым исходным кодом для научных и числовых вычислений и анализа данных. Более того, эта библиотека является основой для нескольких других библиотек Python, таких как SciPy и Sci-Kit Learn. NumPy чаще всего используется для математических операций с матрицами и массивами. Эту библиотеку очень часто используют ученые, которые выполняют анализ данных, из-за ее эффективных и быстрых вычислений. Также NumPy может обрабатывать многомерные массивы, поэтому большое количество разработчиков и специалистов по обработке данных используют ее для проектов в областях искусственного интеллекта и машинного обучения. Основные моменты: Повышение эффективность за счет вычислений с массивами Использует векторизацию для компактных и более быстрых вычислений Поддерживает объектно-ориентированный подход Предоставляет числовые подпрограммы в виде быстрых и предварительно скомпилированных функций 12. SciPy Основное назначение: визуализация данных и их обработка Дополнительные назначения: линейная алгебра, алгоритмы оптимизации, операции с изображениями (многомерными) Аналогично NumPy, SciPy является бесплатным модулем с открытым исходным кодом, что делает его общедоступным. SciPy основан на NumPy и также может использоваться для технических и научных вычислений с большими наборами данных. Эта библиотека играет важную роль в техническом и научном анализе данных. Именно поэтому она считается довольно важной библиотекой в Python. Некоторые даже называют ее основополагающей библиотекой для языка программирования Python. SciPy хорошо подходит для обработки изображений. Она имеет высокоуровневые команды, которые можно использовать для обработки данных и их визуализации. Основные моменты: Наборы функций и алгоритмов построены на основе NumPy Имеет встроенные функции, которые предназначены для решения дифференциальных уравнений Есть подмодуль SciPy ndimage, предназначенный для обработки изображений (многомерных) 13. Sci-Kit Learn Основное назначение: приложения машинного обучения Дополнительное назначение: статистическое моделирование Sci-Kit Learn основан на Numpy и SciPy и прежде был известен как Sklearn. Это бесплатная библиотека Python, и она очень часто воспринимается как расширение библиотеки SciPy. Sci-Kit Learn была создана специально с целью разработки алгоритмов машинного обучения и моделирования данных. Для многих Sci-Kit Learn – это одна из лучших библиотек Python, а все из-за ее последовательного, простого и интуитивно понятного интерфейса. Поскольку она очень удобна в использовании, многие считают, что она идеально подходит для новичков. Основные моменты: Библиотека машинного обучения Предлагает практически все алгоритмы, которые необходимы для машинного обучения Создана на основе SciPy, NumPy и Matplotlib 14. Theano Основное назначение: машинное и глубокое обучение Дополнительные назначения: оценка, анализ и обработка математических выражений Библиотека численных вычислений, которая известна как Theano, была создана специально для машинного обучения. Многие разработчики используют эту библиотеку для моделей глубокого обучения из-за ее функций. Подавляющее большинство пользователей Theano – это разработчики глубокого и машинного обучения. Theano предлагает возможность интеграции с NumPy при необходимости. Когда Theano используется совместно с графическим процессором (таким как видеокарта) вместо центрального процессора (такого как Intel Core i5 или i7 или AMD Ryzen), то она может выполнять вычисления в 140 раз быстрее. Основные моменты: Интегрируется с NumPy Работает с центральными процессорами, но намного эффективнее работает с графическими процессорами; может выполнять вычисления намного быстрее, работая с графическим процессором Оптимизирована для сохранения стабильности и скорости Использует многомерные массивы для создания моделей глубокого обучения 15. TensorFlow Основное назначение: глубокое обучение и машинное обучение; большие численные вычисления Дополнительные назначения: текстовые приложения, обнаружение видео, распознавание речи/изображений, анализ временных рядов TensorFlow – это библиотека с открытым исходным кодом, которая первоначально была разработана исследователями из Google. Ее специализация - дифференцируемое программирование, но основная цель ее создания – это машинное и глубокое обучение, а также другие рабочие нагрузки в прогнозной и статистической аналитике. Возможности и набор встроенных инструментов TensorFlow упрощают процесс создания моделей машинного и глубокого обучения. TensorFlow также упрощает процесс создания нейронных сетей, независимо от того, занимаются ли эти профессионалы или новички. Платформа и архитектура TensorFlow очень гибкие. Это позволяет использовать библиотеку как с центральными процессорами, так и с графическими. Но если вы хотите раскрыть всю мощь TensorFlow, то вам лучше работать с TPU (Tensor processing unit – тензорный процессор). Эта библиотека не ограничивается настольными устройствами, вы также можете использовать ее на смартфонах и серверах. Основные моменты: Частые обновления и новые выпуски – залог того, что у вас будут новые функции и чистый код Поддерживается Google Улучшенная визуализация вычислительных графиков 16. PyTorch Основное назначение: наука о данных Дополнительные назначения: исследования в области глубокого обучения PyTorch – еще одна библиотека с открытым исходным кодом, которую часто используют для обработки данных. Эта библиотека основана на Torch (фреймворк для языка программирования C), и она может интегрироваться с другими библиотеками Python, такими как NumPy. PyTorch способна незаметно для пользователя создавать графы вычислений, которые можно менять, пока программа запущена. PyTorch чаще всего используется в приложениях машинного и глубокого обучения, в том числе обработки естественного языка и компьютерного зрения. Эта библиотека хорошо известна тем, что способна быстро выполнять команды даже при больших нагрузках. Библиотека PyTorch достаточно гибкая, что позволяет ей работать на центральных, графических и упрощенных процессорах. Пользователи могут расширять PyTorch с помощью своих наборов API. Основные моменты: Тензорные вычисления с помощью графического процессора для более быстрой и эффективной обработки Простой и удобный API Использует динамические графы вычислений Имеет большое сообщество 17. Keras Основное назначение: машинное и глубокое обучение Дополнительное назначение: визуализация данных Keras – это библиотека Python с открытым исходным кодом, которая была создана преимущественно для разработки и оценки нейронных сетей в моделях машинного и глубокого обучения. Эта библиотека может работать наряду с TensorFlow и Theano, а это значит, что разработчики могут начать обучение своих нейронных сетей с небольшого количества кода. Keras – гибкая, расширяемая и модульная, поэтому она отлично подходит для новичков. Эта библиотека также является переносимой, что означает, что вы можете использовать ее в различных средах как на графических, так и на центральных процессорах. Часто разработчики используют эту библиотеку для визуализации данных или моделирования. Основные моменты: Поддерживает серверные части Theano и TensorFlow Предусматривает предварительно размеченные наборы данных, которые разработчики могут использовать непосредственно для загрузки/импорта Предлагает простые и согласующиеся API Проста в освоении и использовании, небольшая кривая обучения 18. Pandas Основное назначение: наука о данных Дополнительные назначения: анализ данных и машинное обучение Pandas – это одна из самых популярных библиотек Python на сегодняшний день, как минимум, в области науки о данных. Pandas – это еще одна библиотека, созданная на основе NumPy. Эта библиотека позволяет пользователям создавать комплексные, но интуитивно понятные высокоуровневые структуры данных. Pandas используется в различных отраслях – от статистики до инженерии (и даже в финансовой сфере). Есть одна вещь, которая делает библиотеку Pandas просто замечательной, - это ее гибкость и возможность использования с другими научными библиотеками и библиотеками численного анализа Python. Основные моменты: Используется во многих коммерческих областях, включая финансовую сферу, нейронауки и статистику. Используется в научных областях Создана на основе NumPy Помогает в решении большого количества громоздких и трудоемких задач, связанных с данными 19. Matplotlib Основное назначение: визуализация данных Дополнительное назначение: машинное обучение Matplotlib – это библиотека Python с открытым исходным кодом, которую часто приводят в пример, как альтернативу платному MATLAB. Matplotlib – это расширение SciPy, и оно было создано для визуализации данных в силу того, того, что она используется для создания диаграмм и графиков. Matplotlib может работать со сложными моделями данных, которые выводит Pandas, и со структурами данных, которые создает NumPy. У Matplotlib есть ограничение – она может создавать только 2D-графики. Но несмотря на это, эта библиотека может создавать готовые к публикации визуализации данных в виде графиков, диаграмм, гистограмм, точечных диаграмм, диаграмм ошибок, и конечно, линейчатых диаграмм. Эта библиотека очень проста в использовании и интуитивно понятна, поэтому многие новички предпочитают работать именно с ней, когда только пробуют себя в визуализации данных. Matplotlib также выбирает немалое количество разработчиков, которые уже имеют опыт работы с другими инструментами визуализации данных. Основные моменты: Открытый исходный код, хорошая замена MATLAB (платное приложение) Малое потребление памяти Поддержка большого сообщества Предлагает различные типы визуализации данных (коробчатые диаграммы, точечные диаграммы, гистограммы, диаграммы ошибок и т.д.) 20. Seaborn Основное назначение: визуализация данных Дополнительное назначение: машинное обучение Аналогично Matplotlib, Seaborn – это библиотека Python, которая была создана для построения графиков и визуализации данных. По сути, эта библиотека была основана на самой Matplotlib, хотя она также включает в себя некоторые структуры данных Pandas. Seaborn имеет высокоуровневый интерфейс с огромным количеством функций, которые позволяют пользователям создавать не просто точные, но и информативные статистические графики. Большое количество разработчиков и пользователей Seaborn согласятся с тем фактом, что эта библиотека создает одни из самых красивых визуализаций данных. Именно поэтому она идеально подходит для использования в маркетинговых и издательских приложениях. Пользователи также любят Seaborn за ее способность создавать графики и диаграммы с помощью простых команд и минимального количества программного кода, что экономит им время. Основные моменты: Создана на основе Matplotlib Позволяет разработчикам создавать красивые информативные графики с помощью высокоуровневого интерфейса Позволяет создавать такие графики, как попарные графики, гистограммы, линейчатые диаграммы, точечные диаграммы и т.д. 21. BeautifulSoup Основное назначение: наука о данных Дополнительное(-ые) назначение(-я): веб-скрейпинг Beautiful Soup получила свое название благодаря своей способности анализировать документы HTML и XML (даже с некорректной разметкой, которую называют «tag soup» - «суп из тегов»). Этот пакет Python обходит веб-сайты, собирает данные и подготавливает их для дальнейшей работы. Beautiful Soup – это универсальный пакет, и поэтому его выбирают многие аналитики данных и ученые. Разработчики, занимающиеся вопросами машинного и глубокого обучения, также используют Beautiful Soup для получения данных для обучения своих моделей машинного/глубокого обучения. Основные моменты: Позволяет извлекать данные из HTML и XML, даже из документов с некорректной или неполной разметкой (например, с незакрытыми тегами) Задумывалась как средство синтаксического анализа HTML, которое могло бы сделать «суп из тегов» работоспособным и даже «красивым» 22. PyCaret Основное назначение: машинное обучение PyCaret получила свое название от библиотеки Python, основанной на Caret, - библиотеке машинного обучения на языке программирования R. Это библиотека с открытым исходным кодом, и она была создана для машинного обучения. Она предлагает функции, которые помогают упростить и автоматизировать программы машинного обучения. Несмотря на наличие небольшой кривой обучения, PyCaret относительно прост в использовании. Основные моменты: Высокоуровневая и малокодовая библиотека Автоматизирует рабочие процессы в машинном обучении Помогает ускорить циклы экспериментов, повышая тем самым производительность Позволяет разработчикам развертывать модели машинного обучения с малым количеством кода 23. OpenCV Основное назначение: компьютерное зрение и обработка изображений Дополнительное назначение: машинное обучение Как и любая библиотека Python, OpenCV имеет большой количество различных функций. Это делает ее отличным инструментом для программ компьютерного зрения в режиме реального времени. Эта высокоэффективная библиотека способна обрабатывать различные входные данные с визуальной информацией, взятой не только из изображений, но и из видеоданных. OpenCV может распознавать лица, почерк и объекты. Основные моменты: Выполняет такие задачи, как отслеживание угроз, обнаружение лиц, обнаружение ориентиров и многое другое Предоставляет разработчикам доступ к более чем 2500 классическим современным алгоритмам Широко используется даже такими технологическими гигантами, как Google, IBM, Toyota и другими Используется для анализа изображений/видео 24. LightGBM Основное назначение: машинное обучение LightGBM расшифровывается как Light Gradient Boosting Machine. Это бесплатный фреймворк градиентного бустинга, разработанный Microsoft для машинного обучения. Он удобен и интуитивно понятен. Изучить его намного проще, чем некоторые другие библиотеки для глубокого обучения. Основные моменты: Обеспечивает эффективное использование памяти и высокую вычислительную мощность Первоначально разработан Microsoft Возможность работы с большими объемами данных Обеспечивает высокую точность результатов Вот и все! Приведенный выше список содержит одни из самых лучших библиотек из сотен тысяч других. Приятно осознавать, что все эти библиотеки часто обновляются и улучшаются, чтобы не отставать от Python и его растущей популярности. Если вы изучите хотя бы одну из этих библиотек, это сможет помочь вам в изучении языка, а также стать хорошим разработчиком Python во всех отношениях. Часто задаваемые вопросы 1. Что такое библиотеки Python? Библиотеки Python – это наборы функций, модулей и других компонентов, которые позволяют разработчикам использовать уже существующий код для определенных задач. Библиотеки могут быть как общими, так и более специализированными. Они могут помочь разработчикам сэкономить время и силы, избавив от необходимости писать огромную часть приложения с нуля. 2. Какие есть примеры библиотек Python? Есть большое количество очень популярных пакетов и библиотек Python. Если вам нужны примеры таких библиотек, то вот вам несколько громких наименований: Requests Numpy, SciPy, SciKit-Learn PyTorch Pandas Seaborn Theano TensorFlow 3. Где можно найти список всех библиотек Python? Если вы имеете в виду список всех модулей, пакетов и библиотек, установленных сейчас в вашей версии Python, то это можно сделать с помощью команды help(“modules”), pip list или pip freeze 4. Для чего нужны библиотеки Python? Библиотеки Python необходимы для того, чтобы упростить и оптимизировать работу разработчика. Вместо того, чтобы писать какие-то части проекта с нуля, разработчики могут воспользоваться модулями и связками кода из библиотек. Также библиотеки могут устанавливать стандарты написания программного кода, что упрощает сопровождение кода. 5. Все ли библиотеки Python являются бесплатными? Большая часть крупных библиотек допускают бесплатное коммерческое использование. Однако не все библиотеки так просты в использовании и освоении. Поэтому, даже если библиотека бесплатная, возможно, вам придется заплатить за какие-либо лицензионные или платные модули, или программное обеспечение, чтобы упростить отладку и сопровождение в долгосрочной перспективе. Кроме того, даже если библиотека является бесплатной для коммерческого использования, вам, вероятно, придется доплатить, если вы хотите включить какие-то модули в свои приложения, которые в дальнейшем будете распространять среди будущих клиентов. 6. Как работают библиотеки в Python? Библиотеки Python позволяют разработчикам использовать модули и связки кода в своих проектах многократно. Библиотеки позволяют вам использовать уже готовый код и добавить его к своему вместо того, чтобы каждый раз писать кода с нуля.
img
Работая в экосистеме DevOps, скоро понимаешь, насколько важно иметь инструменты DevOps для уменьшения ручной работы. Для каждого этапа DevOps есть несколько наборов инструментов с различными функциональными возможностями. Kubernetes является одним из обязательных, если вы работаете в домене DevOps и запускаете свои приложения внутри контейнеров. Для большей функциональности Kubernetes можно использовать сотни различных инструментов. Говоря об инструментах имеется ввиду утилиты для упрощения управления, улучшения безопасности, различные панели и средства мониторинга Kubernetes кластеров. 1. Helm Helm - это менеджер пакетов для Kubernetes, который позволяет легко управлять приложениями и службами, которые используются во многих различных сценариях, облегчая их развертывание в типичном кластере Kubernetes. Используя Helm, вы можете найти, поделиться и использовать программное обеспечение, которое построено для Kubernetes. Он использует диаграммы, называемые Helm Charts, для определения, установки и обновления сложных приложений Kubernetes. Функции Helm: Отображает состояние всех Kubernetes приложений с помощью диаграмм Использует настраиваемые крючки, чтобы легко проводить обновления. Диаграммы можно использовать на общедоступных или частных серверах. Простой откат к предыдущему состоянию с помощью одной команды Повышение производительности разработчиков и эксплуатационной готовности 2. Flagger Flagger - это оператор прогрессивной доставки для Kubernetes. Он автоматизирует продвижение канареечного развертывания с помощью Istio, App Mesh, Nginx, Linkerd, Contour, Gloo, Skipper для маршрутизации трафика и Prometheus для анализа канарей. При канареечном развертывании выпуски развертываются для небольшой группы пользователей, тестируются, если работает нормально, то выпуски развертываются для всех. Он использует сетку служб, которая выполняется в кластере, для управления трафиком между развертыванием. Для переноса трафика в канарейку он измеряет такие показатели производительности, как средняя продолжительность запросов, частота успешных запросов HTTP, работоспособность модуля и т.д. Flagger может выполнять автоматизированный анализ приложений, продвижение и откат для нескольких стратегий развертывания, таких как Canary, A/B-тестирование, Blue/Green-развертывание. 3. Kubewatch Kubewatch это наблюдатель с открытым исходным кодом для Kubernetes, который отправляет уведомление через Slack. Он написан на языке Go и разработан Bitnami Labs. Он используется для мониторинга ресурсов Kubernetes и уведомляет, есть ли какие-либо изменения. Установить Kubewatch можно через kubectl или с помощью диаграмм helm. В нем легко разобраться и имеет очень простой в использовании интерфейс. Кроме Slack, он также поддерживает HipChat, Mattermost, Flock, webhook и SMTP. В зависимости от того, какой Kubernetes кластер вы хотите отслеживать, вы можете установить значение true или false для этих ресурсов в файле ConfigMap. После установки конфигурации kubewatch и запуска модуля вы начнете получать уведомления о событии Kubernetes, как показано ниже. 4. Gitkube Gitkube - это инструмент, который использует git push для создания и развертывания докер образов на Kubernetes. Имеет три компонента - Remote, gitkube-контроллер, gitkubed. Remote состоит из пользовательских ресурсов, управляемых gitkube-контроллером. gitkube-controller отправляет изменения в gitkubed, который затем строит образ докера и развертывает его. Особенности Gitkube: Простота установки, подключения и развертывания Обеспечивает управление доступом на основе ролей для обеспечения безопасности Проверки подлинности с помощью открытого ключа Поддерживается пространство имен для множественной аренды Никаких дополнительных зависимостей, кроме kubectl и git 5. kube-state-metrics kube-state-metrics - сервис, который генерирует метрики объекта состояния, прослушивая сервер API Kubernetes. Он используется для проверки работоспособности различных объектов, таких как узлы, модули, пространства имен и развертывания. Он предоставляет необработанные, немодифицированные данные из API Kubernetes. Ниже приведена информация, предоставленная kube-state-metrics: Задания Cron и статус задания Состояние модулей (готовность, выполнение и т.д.) Запросы на ресурсы и их диапазон Пропускная способность узла и его состояние Спецификация наборов реплик 6. Kamus Kamus - это инструмент GitOps с открытым исходным кодом, который используется для шифрования и дешифрования секретных ключей для приложений Kubernetes. Зашифрованные ключи, которые делает Kamus, могут быть расшифрованы только приложениями, работающими в кластере Kubernetes. Для шифрования ключей используется AES, Google Cloud KMS, Azure KeyVault. Начать работу с Kamus можно с помощью helm. Kamus поставляется с двумя утилитами - Kamus CLI и Kamus init container. Kamus CLI используется для интеграции с шифрованным API, а контейнер Kamus init - для интеграции с расшифровкой API. По умолчанию, пароли в Kubernetes закодированы в base64 и не зашифрованы. Поэтому, из соображений безопасности, нельзя держать такие ключи на. Любой, кто имеет доступ к репозиторию, сможет использовать эти секреты. Следовательно, необходимо правильное решение для шифрования/дешифрования, как, например, Kamus. Он также предоставляет модель угроз, которая учитывает угрозы и делает секреты безопасными. 7. Untrak Untrak - инструмент с открытым исходным кодом, используемый в Kubernetes для поиска неотслеживаемых ресурсов и сбора мусора. Он помогает находить и удалять файлы из кластера, которые не отслеживаются. После ввода манифестов в конвейер CI/CD с использованием шаблона kubectl apply или helm Kubernetes не знает, когда объект будет удален из репозитория. После удаления объектов они не отслеживаются в процессе доставки и по-прежнему находятся в кластере Kubernetes. Он выполняет команду внутренне, используя простой конфигурационный файл untrak.yaml, чтобы найти ресурсы, которые больше не являются частью управления исходным кодом. 8. Weave Scope Weave Scope предназначена для визуализации, мониторинга и устранения неполадок Docker и Kubernetes. Он отображает всю структуру контейнерного приложения сверху вниз, и полную инфраструктуру, с помощью которой вы можете легко выявить любые проблемы и диагностировать их. Выполнение приложений микросервисной архитектуры в контейнерах докеров не так просто. Компоненты здесь очень динамичны и трудно поддаются мониторингу. С помощью Weave Scope можно легко устранять утечки памяти и контролировать потребление ЦП, визуализировать узкие места сети. Функции Weave Scope: Помогает отслеживать контейнеры докеров в режиме реального времени Простая навигация между процессами, выполняемыми в контейнерах Показывает хост или службу использования ЦП и памяти Перезапуск, остановка или приостановка контейнеров с помощью интерфейса командной строки, не выходя из окна браузера Weave Scope. Поддержка пользовательских подключаемых модулей для получения более подробной информации о контейнерах, процессах и хостах 9. Kubernetes Dashboard Kubernetes Dashboard - веб-интерфейс, предоставляемый компанией Kubernetes. Он используется для развертывания, устранения неполадок и управления контейнерным приложением в кластере Kubernetes. Он предоставляет всю информацию о кластере, такую как сведения о узлах, пространствах имен, ролях, рабочих нагрузках и т.д. Можно использовать helm для развертывания панели управления Kubernetes или воспользоваться простой командой kubectl: kubectl apply - https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.4/aio/deploy/recommended.yaml 10. Kops Kops, который расшифровывается как Kubernetes Operations - это проект с открытым исходным кодом, используемый для создания готовых к запуску в производственной среде кластеров Kubernetes. Kops, в первую очередь, можно использовать для развертывания кластеров Kubernetes на AWS и GCE. Небольшой кластер Kubernetes легко создать и обслуживать, но при масштабировании кластера добавляется множество конфигураций, и становится трудно управлять им. Kops - это инструмент, который помогает решать подобные задачи. Он использует подход, основанный на настройке, при котором кластер всегда находится в актуальном состоянии и в безопасености. Kops также имеет множество сетевых бэкэндов, и выбор одного из них, в зависимости от варианта использования, упрощает настройку различных типов кластеров. 11. cAdvisor cAdvisor - это инструмент с открытым исходным кодом для мониторинга контейнера. Он используется для чтения характеристик производительности и использования ресурсов контейнеров, работающих в кластере. Он работает на уровне узла и может автоматически обнаруживать все контейнеры, работающие на определенном узле, и собирать статистику использования памяти, файловой системы, ЦП и сети. Он предоставляет веб-интерфейс, который отображает динамические данные всех контейнеров в кластере. Для начала работы с cAdvisor необходимо запустить его docker образ google/cadvisor, а затем получить к нему доступ по адресу http://localhost:8080 в веб-браузере. 12. Kubespray Kubespray - это бесплатный инструмент, который был создан путём объединения playbooks Ansible и Kubernetes. Используется для управления жизненным циклом кластера Kubernetes. С помощью Kubespray можно быстро развернуть кластер и настроить все параметры реализации кластера, такие как режимы развертывания, сетевые плагины, конфигурация DNS, версии компонентов, методы создания сертификатов и т.д. Для начала работы кластера достаточно запустить один единственный ansible-playbook. Вы можете легко масштабировать или обновлять кластер Kubernetes. 13. K9s K9s - это терминальный инструмент с открытым исходным кодом, и его утилита панели мониторинга может делать все, что делает веб-интерфейс Kubernetes. Он используется для навигации, наблюдения и управления приложением, развернутым в кластере Kubernetes. K9s функции: Отслеживание кластера в реальном времени Настройка отображения для каждого ресурса Глубокий анализ проблем с ресурсами кластера Поддерживает управление доступом на основе ролей Встроенные эталонные тесты для проверки производительности ресурсов 14. Kubetail Kubetail - это простой сценарий bash, который используется для агрегирования журналов из нескольких модулей в одном потоке. Последняя версия Kubetail также имеет функции выделения и фильтрации. Эта функция позволяет выделять нужные части логов отдельным цветом. Используя homebrew, можно установить Kubetail с помощью одной команды. Чтобы упростить работу Kubetail можно добавить значения, как KUBETAIL_NAMESPACE, KUBETAIL_TAIL, KUBETAIL_SKIP_COLORS и т.д. в переменные среды. 15. PowerfulSeal PowerfulSeal - мощный инструмент хаос-инжиниринга с открытым исходным кодом, написанный на языке python для кластеров Kubernetes. Хаос-инжиниринг используется для того, чтобы проверить отказоустойчивость системы, ее способность справляться с проблемными ситуациями в производственной среде. Он вводит в кластер Kubernetes ошибки, чтобы выявить проблемы в нем как можно раньше. Создателей PowerfulSeal вдохновил Netflix Chaos Monkey и она используется для повышения устойчивости Kubernete. Используя Seal, инженеры сознательно пытаются нарушить работу кластера, чтобы проверить, как система реагирует. Seal работает в трех режимах - автономный, интерактивный, и режим меток. В автономном режиме он выполняет сценарии, считывая предоставленный файл политики. В интерактивном режиме он рассказывает о компонентах кластера, которые вручную пытаются разорвать. В режиме меток целевые объекты в кластере, такие как модули, уничтожаются с помощью меток. 16. Popeye Popeye - это утилита для очистки кластеров Kubernetes. Он сканирует весь кластер и сообщает о проблемах, связанных с конфигурациями и ресурсами. Это помогает применять лучшие практики в кластере Kubernetes, чтобы избежать распространенных проблем. Эта утилита доступна для Windows, Linux и macOS. В настоящее время он работает только с узлами, модулями, пространствами имен, службами. С помощью Popeye можно легко идентифицировать мертвые и неиспользуемые ресурсы, несоответствия портов, правила RBAC, использование метрик и многое другое.
img
Если вы новичок в Linux или даже "опытный" боец - без разницы. Ниже приведены все самые важные команды, которые должен знать, каждый кто работает в этой системе. Эти команды также работают в командной строке MacOS. Основные команды терминала Linux Linux включает в себя большое количество команд, но мы выбрали 37 наиболее важных для представления здесь. Изучите эти команды, и вы почувствуете себя намного комфортнее при работе в командной строке Linux. Приведенный ниже список представлен в алфавитном порядке. Позиция команды в списке не отражает ее полезности или простоты. Подробную информацию об использовании команды можно посмотреть см. в встроенном справочнике. Команда man, - сокращение от manual, - которая запустит справочник, тоже рассматривает в нашем руководстве. 1. alias Команда alias позволяет задать собственное название команде или нескольким командам. Затем при запуске указанного имени выполняется команда или несколько команд, указанных в alias. alias cls=clear Данная команда создает псевдоним, называемый cls, который ссылается на команду clear. При вводе cls экран будет очищен так же, как если бы вы ввели clear. Указанный псевдоним экономит очень мало нажатий, но, если вы часто переходите между командной строкой Windows и Linux, вы можете ввести команду Windows cls на компьютере Linux, который не понимает данную команду. Ну что же, теперь поймет. Псевдонимы могут быть гораздо более сложными, чем этот пример. Вот псевдоним pf (для процесса поиска), который немного сложнее. Обратите внимание на использование кавычек вокруг последовательности команд. Это необходимо, если в последовательности команд есть пробелы. Этот псевдоним использует команду ps для перечисления выполняемых процессов, а затем передает их команде grep. Команда grep выполняет поиск записей среди выходных данных ps, которые соответствуют параметру командной строки $1. alias pf="ps -e | grep $1" Итак, если нужно найти PID процесса shutter или вообще проверить, запущен ли данный процесс, то можно использовать данный псевдоним как указано ниже: pf shutter Следует отметить, что псевдонимы удаляются при закрытии окна терминала, в котором они были созданы. Чтобы сохранить псевдонимы нужно добавить их в файл .bash_aliases в домашней директории. 2. cat Команда cat (сокращение от concatenate) выводит содержимое файла в окно терминала. Это намного быстрее чем открывать файл в редакторе, а также исключает случайное изменение файла. Чтобы просмотреть содержимое файла .bash_log_out, нужно запустить следующую команду находясь в домашней папке. cat .bash_logout Если длина файла превышает количество строк в окне терминала, текст будет проноситься слишком быстро для чтения. Чтобы управлять количеством выводимых строк, вывод команды cat можно передать команде less. С помощью этой команды можно прокрутить файл вперед и назад с помощью клавиш вверх и вниз, клавиш PgUp и PgDn, а также клавиш Home и End. Введите q, чтобы выйти из less. cat .bashrc | less 3. cd Команда cd меняет текущую директорию на указанную в качестве параметра. Другими словами, данная команда помогает перемещаться по файловой системе. Чтобы перейти в каталог, который находится в текущей директории, достаточно ввести команду cd и название папки, куда нужно переместиться. cd work Чтобы перейти в любой другой каталог файловой системы следует указать полный путь к нужной директории, который должен начинаться на /. cd /usr/local/bin Чтобы быстро переместиться к домашней директории используйте символ тильда "~" в качестве названия каталога. cd ~ Еще один трюк: чтобы перейти в родительскую директорию или же на каталог выше, в качестве названия каталога достаточно набрать две точки "..". cd .. Представьте, что вы находитесь в каком-то каталоге. В родительском каталоге же есть несколько других папок. Чтобы сэкономить время можно сразу набрать .. и название каталога, в который нужно перейти: cd ../games 4. chmod Команда chmod позволяет управлять правами на файлы или папки. Эти права включают в себя право на чтение, запись и запуск. Если вывести список папок и файлов командой ls с ключом -l, то можно увидеть что-то подобное: -rwxrwxrwx Первый символ это "-", и означает файл, если бы было "d" - означало бы директорию. Дальше идет строка из трех групп, каждая из которых состоит из трех букв. Слева направо: первые три означают права владельца на файл, следующие три - права группы, а последняя группа - права других. А буквы же означают: r - read (чтение), w - write (запись), x - execute (выполнение). Если вместо буквы дефис "-", то у соответствующего объектов нет права, которое заменено на "-". Другой способ задать права - это заменить буквы тремя цифрами. Левая цифра означает права владельца, средняя - группы, правая - других. А значения цифр перечислены ниже: 0: No permission - Нет прав; 1: Execute permission - право на выполнение; 2: Write permission - право на запись; 3: Write and execute permissions - право на запись и выполнение; 4: Read permission - право на чтение; 5: Read and execute permissions - право на чтение и выполнение; 6: Read and write permissions - право на чтение и запись; 7: Read, write and execute permissions - право на чтение, запись и выполнение. Рассмотрим файл example.txt. Как видим во всех трех группах указаны буквы. Это означает, что все имеют все права на этот файл. Чтобы задать пользователю все права (цифра 7), группе право на чтение и запись (цифра 6), а остальным - чтение и выполнение (цифра 5), нужно ввести следующую команду: chmod 765 example.txt 5. chown Данная команда позволяет менять владельца файла и группу, владеющую файлом. Просматривая наш файл example.txt, в описании файла можем увидеть dave dave. Первый из них указывает на имя владельца файла, который в данном случае является пользователем dave. Вторая запись показывает, что название группы владельца также дэйв. Каждый пользователь имеет группу по умолчанию, которая создается при создании пользователя. Этот пользователь является единственным членом этой группы. Это показывает, что файл не является общим для других групп пользователей. Для изменения владельца или группы файла, или обоих сразу можно использовать функцию chown. Необходимо указать имя владельца и группу, разделенные символом ":". Команду нужно запускать в привилегированном режиме, используя sudo. Чтобы сохранить в качестве владельца файла dave, а mary установить в качестве владельца группы, используйте следующую команду: sudo chown dave:mary example.txt Чтобы изменить и владельца, и группу файла, нужно выполнить следующую команду: sudo chown mary:mary example.txt 6. curl Команда curl позволяет получать информацию или файла с указанного url или адреса в интернете. Данная команда может не быть предустановлена. Чтобы установить данный пакет в системе Ubuntu и других системах семейства Debian введите команду apt-get. Для других дистрибутивов нужно использовать соответствующий менеджер пакетов. sudo apt-get install curl Предположим, что требуется скачать один файл из репозитория GitHub. Официально поддерживаемого пути для этого нет. Вы вынуждены клонировать весь репозиторий. Однако с помощью curl мы можем получить нужный файл. Эта команда извлекает файл для нас. Обратите внимание, что для сохранения файла необходимо указать его имя с помощью ключа -o (output). Если этого не сделать, содержимое файла просто отобразиться в окне терминала, но не сохранится на компьютере. curl https://raw.githubusercontent.com/torvalds/linux/master/kernel/events/core.c -o core.c Если не хотите, чтобы выводилась информация о загрузке, команду нужно запустить с ключом -s (silent). curl -s https://raw.githubusercontent.com/torvalds/linux/master/kernel/events/core.c -o core.c 7. df Команда df показывает размер, используемое и доступное место на подключенных файловых системах компьютера. Двумя наиболее полезными опциями являются опции -h (human readable) и -x (исключить). Первый параметр позволяет отображать размеры в Мб или Гб, а не в байтах. Опция исключения позволяет указать df не выводить указанные файловые системы. Например, squashfs, вымышленная файловая система, которая создается при установке приложения с помощью команды snap. df -h -x squashfs 8. diff Команда diff сравнивает содержимое двух файлов и выводит отличия между ними. Данная команда имеет много опция, позволяющих регулировать отображением согласно вашим нуждам. Ключ -y (side by side) позволяет выводить отличающиеся строки напротив друг друга. Параметр -w указывает максимальную длину строк, чтобы избежать переводы строк. Команда -suppress-common-lines предотвращает отображение совпадающих строк, позволяя сфокусировать внимание только на отличиях. diff -y -W 70 alpha1.txt alpha2.txt --suppress-common-lines 9. echo Команда echo выводит строку в окно терминала. echo A string of text С помощью этой команды можно выводить значения переменных сред, таких как $USER, $HOME, $PATH. В данных переменных храниться имя пользователя, название домашнего каталога и путь, по которому система ищет вводимые пользователем команды. echo $USER echo $HOME echo $PATH В скриптах данная команда используется для отображения хода выполнения или результата выполнения скрипта. 10. exit Команда exit инициирует выход из окна терминала, выход из скрипта или отключение SSH соединения. exit 11. find С помощью команды find можно вести поиск файлов по системе. Для этого команде нужно передать место, откуда начинать поиск и название искомого файла. В данном примере "." означает текущий каталог, а параметр -name указывает команде искать файлы, название которых соответствует шаблону. Можно также использовать маски, где * означает любой символ любое количество раз, а ? означает один любой символ. В данном примере мы будем искать файл, в название которого включено слово "*ones*". Это могут быть bones, stones, lonesome. find . -name *ones* Как мы видим, команда вывела список совпадений, среди которых также папка Ramones. Мы можем ограничить поиск только среди файлов. Для этого команде find нужно передать ключ -type со значением f, что означает файл. find . -type f -name *ones* Если нужно чтобы поиск велся независимо от регистра, то нужно передать ключ -iname. find . -iname *wild* 12. finger Команда finger предоставляет короткий дамп информации о пользователе, включая время последнего входа пользователя в систему, домашний каталог пользователя и полное имя учетной записи пользователя. 13. free Команда free предоставляет сводку использования памяти на компьютере. Это выполняется как для основной оперативной памяти (RAM), так и для swap памяти. Для обеспечения вывода данных в удобном для понимания виде используется параметр -h (человек). Без этой опции цифры представлены в байтах. free -h 14. grep Утилита grep выполняет поиск строк, соответствующих переданному шаблону. Когда мы рассматривали команду alias, мы использовали grep для поиска среди вывода другой программы - ps. Команда grep также может искать среди содержимого файлов. Здесь мы ищем слово "train" во всех текстовых файлах текущего каталога. grep train *.txt На выводе мы получим название всех файлов, содержащих слово train, а также строку, где искомое слово подсвечено. Более подробно обо всех возможностях данной утилиты можно узнать в руководстве man, а также в нашем материале про команду grep. 15. Groups Данная команда позволяет узнать членом каких групп является указанный пользователь groups dave groups mary 16. gzip Данная команда сжимает файлы. По умолчания, она удаляет исходный файл, оставляя только сжатую версию. Чтобы сохранить оба файла используйте ключ -k. gzip -k core.c 17. head Команда head выводит первые 10 строк файла. Если требуется просмотреть меньшее или большее количество строк, используйте параметр -n (number). В этом примере head запускается со значением по умолчанию. Затем мы повторяем команду, запрашивая только пять строк. head -core.c head -n 5 core.c 18. history Команда history содержит список ранее введенных в командной строке команд. Можно повторить любую команду из истории, введя восклицательный знак "!" и номер команды из списка. !188 Два восклицательных знака повторно выполнят предыдущую команду. 19. kill Команда kill позволяет завершить процесс из командной строки. Для этого необходимо указать идентификатор процесса (PID), который нужно завершить. Не рекомендуется принудительно завершать процессы. Для этого нужно иметь вескую причину. В этом примере мы сделаем вид, что программа shutter заблокирована. Чтобы узнать PID процесса shutter выполним команду: ps -e | grep shutter Получив таким образом идентификатор процесса можно перейти к завершение данного процесса. kill 1692 20. less Команда less позволяет просматривать файлы без открытия в редактора. Его быстрее запускать, а также нет возможности случайно изменить файл. С less можно прокрутить файл вперед и назад с помощью клавиш вверх и вниз, клавиш PgUp и PgDn и клавиш Home и End. Нажмите клавишу "Q", чтобы выйти из режима "less". Чтобы просмотреть файл командой less, введите следующую команду less core.c Команде less также можно передать вывод других команд. Чтобы просмотреть весь список файлов жесткого диска командой less нужно выполнить следующую команду: ls -R / | less "/" позволяет вести поиск вниз по файлу, а "?" - вверх. 21. ls Команда ls, пожалуй, самая первая команда, с которой имеют дело, начиная пользоваться системой Linux. Она показывает список файлов и папок в указанной директории. По умолчанию, данная команда выводит содержимое текущей директории. Она имеет очень много полезных опций, с которыми настоятельно рекомендует познакомиться в его руководстве. Ниже рассмотрены некоторые из них. Вывод содержимого текущей директории ls Вывод списка файлов и каталогов в текущей директории с подробной информацией. ls -l Для вывода списка в удобочитаемом варианте используется ключ -h. ls -lh Для вывода всех файлов и папок, включая скрытые используется следующая команда: ls -lha 22. man Команда man запускает руководство по конкретной команде. Так как данная команда использует команду less для вывода, то можно воспользоваться возможностями данной команды для поиска. Например, просмотрим руководство по команде chown man chown Для прокрутки используйте клавиши вверх и вниз, PgUp и PgDn. Для выходя из руководства нажмите q. 23. mkdir Данная команде позволяет создавать новый файл в системе. Команде mkdir нужно передать название нового файла. Если же файл нужно создать за пределами текущей папки, то нужно указать и путь к месту, где нужно создать её. Чтобы создать две новые папки с названиями invoices и quotes введите: mkdir invoices mkdir quotes Чтобы создать папку 2020 внутри папки invoices введите: mkdir invoices/2109 Если нужно создать папку, но нет родительской папки для неё, то можно использовать параметр -p (parents) для автоматического создания всех родительских папок. На примере ниже мы создаем папку 2020 в папке yearly, которая находится внутри папки quotes. Но директория yearly еще не создана, но мы указываем команде mkdir попутно создать все нужные папки. mkdir -p quotes/yearly/2019 24. mv Эта команда позволяет перемещать файлы и папки из каталога в каталог, также используется для переименования файлов. Для перемещения файла необходимо указать mv, текущий путь к файлу и путь к пункту назначения. В этом примере мы перемещаем файл apache.pdf из каталога "~/Document/Ukulele" и помещаем его в текущий каталог, обозначенный символом точка ".". mv ~/Documents/Ukulele/Apache.pdf Чтобы переименовать файл, "переместите" его в файл с новым именем. mv Apache.pdf The_Shadows_Apache.pdf Для перемещения файла с новым названием используйте следующую команду: mv ~/Documents/Ukulele/Apache.pdf ./The_Shadows_Apache.pdf 25. passwd Данная команда позволяет устанавливать или менять пароль пользователя. Чтобы поменять свой пароль просто введите passwd. Также можно менять пароль другого пользователя, но для этого команда должна быть запущена с повышенными правами. При этом система попросит два раза ввести новый пароль. sudo passwd mary 26. ping Эта команда, наверное, известна всем, кто пользуется компьютером. Ну почти всем. Она позволяет проверить доступность удаленного хоста, чаще всего используется для выявления неполадок в сети. Для использования этой команды достаточно передать IP адрес или название хоста. ping 192.168.4.18 В системе Linux данная команда выполняется бесконечно. Завершить выполнение команды можно комбинацией клавиш Ctrl+C. Теперь поясним вывод команды: Устройство с IP адресом 192.168.4.18 отвечает на наши запросы и посылает пакеты размером 64 байт Номера пакетов ICMP позволяет определить не потерялся ли пакет в пути TTL означает время жизни пакета. При каждом проходе через очередной маршрутизатор TTL уменьшается на одну единицу. Если TTL достигнет нуля пакет сбрасывается. Данный механизм предотвращает петли в сети. Значение time показывает время за которое запрос прошел путь от хоста инициатора до адресата и обратно. Чем меньшее значение, тем лучше. Чтобы послать конкретное число запросов используется ключ -c ping -c 5 192.168.4.18 А параметр -a позволяет услышать ответы на запросы ping. ping -a 192.168.4.18 27. ps Данная команда выводит список процессов, запущенных в системе. Если запустить её без параметров, то она отобразить процессы запущенные в данной сессии. ps Чтобы отобразить процессы, запущенные конкретным пользователем, используется ключ -u с именем пользователя в качестве значения. Список может быть длинным, поэтому целесообразно передать вывод команде less. ps -u dave | less Чтобы увидеть все процессы запустите команду с ключом -e. ps -e | less 28. pwd Данная команда выводит полный путь к текущей папке. Другими словами показывает директорию в которой находится пользователь в данное время. pwd 29. shutdown Эта команда позволяет перезагрузить машину или вовсе завершить работу системы. Если запустить команду без параметров, то она через минуту она завершить работу системы. Чтобы завершить работы системы немедленно используется параметр now shutdown now Также можно запланировать завершение работы системы и послать уведомление всем пользователям. Для планирования нужно передать команде время завершения работы. Можно указать как в минутах с текущего момента, например, +90, так и точное время. Далее идет текст уведомления для пользователей. shutdown 23:00 Shutdown tonight at 23:00, save your work and log out before then! Чтобы отменить завершение работы нужно ввести команду: shutdown -c 30. ssh Команда ssh используется для подключения к удаленной Linux машине и входа в свой аккаунт. Для подключения нужно ввести имя пользователя и IP или имя хоста. В данном примере пользователь mary выполняет вход в машину с адресом 192.168.4.23. После установки соединения система просит пользователя ввести пароль. ssh mary@192.168.4.23 Затем она выполняет команду w чтобы узнать вывести список пользователей, которые тоже работает в данной системе. Перед ее именем можно увидеть pts/1 - это означает виртуальный терминал, то есть терминал не подключенный к машине напрямую. Чтобы завершить сессию она вводит команду exit. w exit 31. sudo Команда sudo требуется при выполнении действий, требующих прав пользователя root или суперпользователя, таких как изменение пароля другого пользователя. sudo passwd mary 32. tail Команда tail выводит последние 10 строк файла. Если требуется просмотреть меньшее или большее количество строк, используется параметр -n (number). В этом примере tail запущен со значением по умолчанию. Затем мы повторяем команду, запрашивая только пять строк. tail core.c tail -n 5 core.c 33. tar С помощью команды tar можно создать архивный файл (также называемый tarball), который может содержать множество других файлов. Это значительно упрощает распространение файлов. Её также можно использовать для извлечения файлов из архива. Обычно команде tar указывается, что надо сжать файлы при архивации. Но если не требуется сжатие, архивный файл создается без сжатия. Для создания архивного файла необходимо указать утилите tar, какие файлы следует включить в архивный файл, а также название архивного файла. На примере ниже мы заархивируем все файлы, которые находятся в папке Ukulele. Для этого нужно передать команде tar опцию -c (create) и -v (verbose). Ключ verbose визуализирует процесс архивации, показывая какой файл в текущий момент архивируется. Затем передается ключ -f за которым следует название архива. В нашем случае он называется songs.tar. tar -cvf songs.tar Ukulele/ По мере их добавления файлов в архив они отображаются в окне терминала. Существует два способа сообщить tar о необходимости сжатия архивного файла. Первый - с опцией -z (gzip). Это позволяет tar использовать утилиту gzip для сжатия архива после его создания. Обычно в этом случае к названию архива добавляется еще ".gz". Это позволяет знать, какие команды нужно передать tar для правильного извлечения файлов. tar -cvzf songs.tar.gz Ukulele/ В данном случае процесс архивации занимает больше времени, так как приходится еще и сжимать файлы. Чтобы создать архив при этом сжать файлы так, чтобы итоговый объем архива был меньше используется ключ -j (bzip). tar -cvjf songs.tar.bz2 Ukulele/ Как и в случае с gzip, процесс архивации займет заметно больше времени. Если нужно заархивировать большое число файлов, целесообразно использовать либо ключ -z, либо ключ -j. Следует отметить, чтоб при первом варианте получите приемлемое сжатие с разумно скоростью, а второй вариант займет больше времени, но размер окажется намного меньше, как и видно на скриншоте ниже. Для извлечения файлов из архива команде нужно передать те же ключи, с тем лишь отличием, что вместо -c используется -x (extract). tar -xvf songs.tar Для извлечения файлов из gzip или bzip архива к параметрам добавляется ключ -z или -j соответственно. tar -xvzf songs.tar.gz tar -xvjf songs.tar.bz2 34. top Команда top в реальном времени отображение данные о состоянии системы. В верхней части экрана отображается сводка. В первой строке отображается время и продолжительность работы компьютера, количество пользователей, вошедших в систему, а также среднее значение нагрузки за последние одну, пять и пятнадцать минут. Во второй строке показано количество задач и их состояния: запущенные, остановленные, в режиме ожидания и зависшие (зомби). Зомби процессы в Linux это дочерний процесс многопоточного приложения, которое было уничтожено или неожиданно завершено, оставив после себя повисший процесс. В третьей строке отображается информация о ЦП: us - это время ЦП, затрачиваемое на выполнение процессов для пользователей в "пользовательском пространстве"; sy - это время ЦП, затрачиваемое на выполнение системных процессов "пространства ядра";; ni - это время ЦП, затраченное на выполнение процессов с заданным вручную значением; id - время простоя ЦП; wa - это время, затрачиваемое процессором на ожидание завершения операций ввода-вывода.; hi - время ЦП, потраченное на обслуживание аппаратных прерываний; si - время ЦП, потраченное на обслуживание прерываний программного обеспечения; st - потерянное из-за работы виртуальных машин ("украденное время"). В четвертой строке отображается общий объем физической памяти, а также количество свободной, используемой и буферизованной или кэшированной памяти. В пятой строке отображается общий объем файла подкачки, а также количество свободной, используемой и доступной памяти (с учетом памяти, которая, как ожидается, может быть восстановлена из кэш-памяти). Чтобы отображать информацию в более понятном для человека виде нужно нажать клавишу E. Названия же столбцов означают следующее: PID - идентификатор процесса; USER - имя пользователя запустившего процесс; PR - приоритет процесса; NI - приоритет присвоенный командой nice; VIRT - виртуальная память, которую использует процесс; RES - физическая память, занятая процессом; SHR - общий объем распределенной памяти; S - текущий статус процесса. Об этом чуть ниже; %CPU - процент используемого времени ЦП; %MEM - процент ОЗУ используемого процессом; TIME+ - продолжительность работы процесса; COMMAND - название команды запустившего процесс. Статус процесса может быть одним из следующих: D - непрерываемый сон; R - запущен; S - в режиме ожидания; T - остановлен; Z - зависшие процессы. 35. uname Данная команда предоставляет различную информацию о системе, на которой работаете. Для этого используются соответствующие ключи. -a - отображает всю информацию; -s - отображает тип ядра; -r - отображает версию ядра; -v - отображает версию системы. 36. w Данная команда показывает список пользователей, залогинившихся в в систему. 37. whoami Эта команда показывает под каким именем сейчас пользователь работает в системе. whoami Итоги Вот и весь набор базовых инструментов. Обучение Linux - это все равно, что учиться чему-либо еще. Вам понадобится какая-то практика, прежде чем привыкнуть к этим командам. Но когда уже станете на "ты" с этими утилитами, начнется путь к мастерству.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59