20 марта 2023

⌨️ Терминал для начинающих: полезные команды для работы в командной строке Windows, Linux и MacOS

iOS-developer, ИТ-переводчица, пишу статьи и гайды.
В этой статье вы познакомитесь с основными командами для работы в терминале и узнаете, как перемещаться по файловой системе, управлять пакетами Python с помощью pip, делать коммиты в Git и многое другое.
⌨️ Терминал для начинающих: полезные команды для работы в командной строке Windows, Linux и MacOS
Данная статья является переводом. Автор: Philipp Acsany. Ссылка на оригинал.

Работа с терминалом может пугать тех, кто привык работать с графическими пользовательскими интерфейсами (GUI). Тем не менее, это важный инструмент, к работе с которым разработчику Python нужно привыкнуть. И как только вы улучшите свои навыки по работе с терминалом, он станет чрезвычайно мощным инструментом в вашем арсенале. С помощью всего нескольких команд в терминале вы можете выполнять задачи, которые невозможно или, по крайней мере, очень утомительно выполнять в графическом интерфейсе.

В этом уроке вы узнаете, как:

  • Найти терминал в операционной системе
  • Открыть терминал
  • Осуществить навигацию по файловой системе с помощью основных команд
  • Создать файлы и папки с помощью терминала
  • Управлять пакетами с помощью pip-команд
  • Отслеживать файлы с помощью Git в терминале

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

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

Установите и откройте терминал

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

Примечание
Есть еще два других термина, которые время от времени используются в сочетании с терминалом:
  1. Оболочка — это программа, с которой вы взаимодействуете при выполнении команд в терминале.
  2. Интерфейс командной строки (CLI) — это программа, предназначенная для запуска в оболочке внутри терминала.

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

Если вы используете компьютер с Linux или macOS, то терминал уже встроен. Вы можете начать использовать его прямо сейчас.

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

Далее вы узнаете, как установить и открыть терминал в Windows и как найти терминал в Linux и macOS.

Windows

Терминал Windows — это современное и многофункциональное приложение, которое дает вам доступ к командной строке, нескольким оболочкам и расширенным параметрам настройки. Если у вас Windows 11 или выше, есть вероятность, что терминал Windows уже присутствует на вашем компьютере. В противном случае вы можете скачать приложение из Microsoft Store или из официального репозитория GitHub.

Прежде чем продолжить работу с этим учебным пособием, вам необходимо настроить терминал на вашем компьютере с Windows. Вы можете ознакомиться с документом «Your Python Coding Environment on Windows: Setup Guide», чтобы узнать, как установить терминал Windows.

После установки терминала Windows вы найдете его в меню «Пуск» в разделе Terminal. При запуске приложения вы должны увидеть окно, которое выглядит следующим образом:

⌨️ Терминал для начинающих: полезные команды для работы в командной строке Windows, Linux и MacOS

Данное изображение и все последующие взяты отсюда.

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

Linux

Вы можете найти терминальное приложение в меню приложений вашего дистрибутива Linux. Кроме того, вы можете нажать Ctrl+ Alt + T на клавиатуре или использовать панель запуска приложений и выполнить поиск по слову Terminal.

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

⌨️ Терминал для начинающих: полезные команды для работы в командной строке Windows, Linux и MacOS

То, как вы открываете терминал, также может зависеть от того, какой дистрибутив Linux вы используете.

macOS

Обычный способ открыть приложение терминала в macOS — открыть Spotlight Search и выполнить поиск Terminal. Вы также можете найти приложение терминала в папке приложения внутри Finder.

Когда вы открываете терминал, вы видите окно, похожее на изображение ниже:

⌨️ Терминал для начинающих: полезные команды для работы в командной строке Windows, Linux и MacOS

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

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

Изучите основные команды терминала

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

В зависимости от вашей операционной системы вы будете запускать команды терминала в определенной оболочке. Для Linux это, скорее всего, Bash, для более новых версий macOS — Zsh , а для Windows — PowerShell. Эти оболочки различаются по своим функциям, но у них общие основные команды.

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

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

Вот команды Windows, которые вы рассмотрите:

⌨️ Терминал для начинающих: полезные команды для работы в командной строке Windows, Linux и MacOS

Linux + macOS:

⌨️ Терминал для начинающих: полезные команды для работы в командной строке Windows, Linux и MacOS

Слова, написанные прописными буквами, являются ссылками на аргументы, допускаемые командами.

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

Навигация по вашей файловой системе

Файловая система — это иерархическая структура каталогов и файлов на компьютере. Обычно это то, что вы видите, когда открываете приложение файловой системы с графическим интерфейсом, такое как проводник Windows или Finder в macOS. Это также отличное место для начала вашего путешествия по терминалу, но опять же, вы просто знакомитесь со всеми возможностями терминала.

Папка, которую вы сейчас открыли в файловой системе, является текущим рабочим каталогом (current working directory, cwd). Как вы заметите, вы используете рабочий каталог в качестве точки отсчета для многих операций с файловой системой. Понимание устройства файловой системы и текущего рабочего каталога важно для эффективной навигации и управления файлами и каталогами в терминале.

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

Чтобы начать работу, узнайте свой текущий рабочий каталог:

        $ pwd
/Users/realpython
    

Команда pwd (расшифровывается как print working directory) используется для определения вашего текущего местоположения в файловой системе. Здесь pwd показывает, что текущим рабочим каталогом является /Users/realpython.

Рабочий каталог — это текущий каталог, в котором вы работаете. Здесь по умолчанию будут выполняться команды.

Подробнее о текущем рабочем каталоге

Есть два термина, которые стоит изучить в контексте текущего рабочего каталога:

  1. Переменные среды
  2. PATH (путь)

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

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

Windows

        PS> (cat ENV:Path) -Split ";"

    

Linux + macOS

        $ echo "${PATH//:/\n}"

    

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

Чтобы увидеть, какие файлы и папки содержатся в директории /Users/realpython, вы можете использовать ls (сокращение от list):

        $ ls
Applications          Movies
Desktop               Music
Documents             Pictures
Downloads             Public
Library
    

Если вы введете ls и нажмете на Enter, вы увидите список всех элементов в текущем рабочем каталоге. В этом случае в примере показаны папки, которые вы, скорее всего, найдете в пользовательском каталоге на компьютере с macOS.

Вы также можете использовать флаг -a с командой ls, которая являет сокращением от all. Флаг -a покажет вам все элементы в текущем рабочем каталоге, включая скрытые элементы.

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

Вы также можете комбинировать эти флаги, чтобы показать подробную информацию обо всех элементах, включая скрытые, с помощью ls -al:

        $ ls -al
total 80
drwxr-xr-x+  25 realpython  staff    800 Nov 26 11:51 .
drwxr-xr-x    6 root        admin    192 Nov  7 13:22 ..
-rw-r--r--@   1 realpython  staff  14340 Nov  7 16:04 .DS_Store
drwx------  134 realpython  staff   4288 Nov  8 18:37 .Trash
drwx------@   3 realpython  staff     96 Dec  3  2021 Applications
drwx------@  22 realpython  staff    704 Nov  7 16:00 Desktop
drwx------+   4 realpython  staff    128 Nov 17  2021 Documents
drwx------+   3 realpython  staff     96 Nov  1  2021 Downloads
drwx------@  86 realpython  staff   2752 Nov  7 21:08 Library
drwx------    6 realpython  staff    192 Jul 12 14:53 Movies
drwx------+   4 realpython  staff    128 Nov 26  2021 Music
drwx------+   4 realpython  staff    128 Nov  1  2021 Pictures
drwxr-xr-x+   4 realpython  staff    128 Nov  1  2021 Public
    

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

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

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

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

        drwx------@  22 realpython  staff    704 Nov  7 16:00 Desktop

    

Эта строка дает вам ценную информацию об элементе. Там есть каталог с именем Desktop. Дата последнего изменения — 7 ноября в 16:00, размер — 704 байта.

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

Каждая папка в выводе ls представляет собой подпапку внутри вашего текущего рабочего каталога. Чтобы изменить текущий рабочий каталог на Desktop/подпапку, используйте команду cd от change directory (смена директории):

        $ pwd
/Users/realpython
$ cd Desktop
$ pwd
/Users/realpython/Desktop
    

Когда вы сначала вводите cd, а затем имя каталога, текущий рабочий каталог будет изменен на указанный. После запуска команды cd Desktop текущий рабочий каталог изменится на /Users/realpython/Desktop.

Обратите внимание, что вы не указываете слеш / или индикатор диска, как C:\, в начале Desktop. Вызов такого пути указывает на то, что вы хотите перейти по пути, относящемуся к каталогу, в котором вы сейчас находитесь.

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

        PS> cd C:\Users\realpython\Desktop
PS> pwd
C:\Users\realpython\Desktop
    

В этом случае cd команда изменяет текущий рабочий каталог на каталог C:\Users\realpython\Desktop, независимо от его предыдущего местоположения.

  • Linux + macOS
        $ cd /Users/realpython/Desktop
$ pwd
/Users/realpython/Desktop
    

В этом случае cd команда изменяет текущий рабочий каталог на каталог /Users/realpython/Desktop, независимо от его предыдущего местоположения.

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

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

        $ cd ..
$ pwd
/Users/realpython
    

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

В приложении файловой системы с графическим интерфейсом, таком как Windows Explorer или macOS Finder, вы должны щелкать маленькие значки папок курсором мыши. В терминальном приложении вы используете команды для выполнения задач — например, cd для перемещения между папками и ls для получения обзора элементов в каталоге.

Создание файлов и папок

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

Благодаря знаниям из этого раздела, вы сможете создавать и организовывать свои проекты в терминале.

Сначала убедитесь, что вашим текущим рабочим каталогом является Desktop. Затем используйте mkdir для создания новой папки с именем rp_terminal:

Windows

        PS> cd C:\Users\realpython\Desktop
PS> pwd
C:\Users\realpython\Desktop
PS> mkdir rp_terminal
    

Linux + macOS

        $ cd /Users/realpython/Desktop
$ pwd
/Users/realpython/Desktop
$ mkdir rp_terminal
    

Вы используете команду mkdir для создания нового каталога. Команда расшифровывается как make directory. Здесь вы создаете новый каталог rp_terminal.

Затем перейдите в rp_terminal/ и создайте новый файл с именем hello_terminal.py. Выберите свою операционную систему ниже и используйте соответствующую команду для конкретной платформы:

Windows

        PS> cd rp_terminal
PS> ni hello_terminal.py
    

Linux + macOS

        $ cd rp_terminal
$ touch hello_terminal.py
    

Когда вы запускаете команду touch, вы создаете пустой файл с заданным именем. В данном случае файл представляет собой скрипт Python с именем hello_terminal.py.

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

Используйте ls, чтобы убедиться, что вы успешно создали файл:

        $ ls -l
total 0
-rw-r--r--@ 1 realpython  staff  0 Nov 27 12:09 hello_terminal.py
    

Между 0 и временной меткой написано, что hello_terminal.py в настоящее время пуст. Прежде чем вы начнете использовать команду echo для добавления содержания в hello_terminal.py, посмотрите, что происходит, когда вы вводите echo с некоторым текстом:

        $ echo 'print("Hello, terminal!")'
print("Hello, terminal!")
    

Как разработчик Python, вы знаете, что текст, который вы только что передали в echo, является вызовом функции print(). Точнее, команда echo отправляет строку в стандартный поток вывода (stdout).

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

        $ echo 'print("Hello, terminal!")' > hello_terminal.py
    

Опять же, вы используете echo для вывода заданной строки. Но на этот раз вы используете символ вставки > для отправки вывода в hello_terminal.py.

Примечание
Будьте осторожны при перенаправлении stdout на существующие файлы. Любое содержимое файла будет перезаписано без предупреждения.

Когда вы перенаправляете вывод команды echo в несуществующий файл, вы создаете файл на том же шаге.

Один из способов проверить, сработала ли команда, — снова просмотреть содержимое вашей папки:

        $ ls -l
total 8
-rw-r--r--@ 1 realpython  staff  26 Nov 27 12:12 hello_terminal.py
    

Отлично, сейчас размер hello_terminal.py 26 байт. Чтобы убедиться, что он содержит вызов функции print(), вы можете использовать команду cat:

        $ cat hello_terminal.py
print("Hello, terminal!")
    

К сожалению, команде cat не связана с кошками. Это сокращение от concatenate.

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

Теперь, когда вы знаете, что hello_terminal.py содержит допустимый код Python, вы можете запустить скрипт Python:

        $ python hello_terminal.py
Hello, terminal!

    

Когда вы используете команду python, терминал ищет исполняемый файл Python в вашем PATH.

Если вы запустите команду python без каких-либо аргументов, вы запустите интерактивный интерпретатор Python, также известный как REPL. Когда вы запускаете команду с файлом скрипта в качестве аргумента, Python запускает предоставленный скрипт.

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

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

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

Благодаря знаниям, полученным в этом разделе, вы теперь можете создавать, редактировать и проверять файлы Python в терминале. Теперь вы хорошо подготовлены для перехода к работе с инструментом командной строки, который необходим на вашем пути в качестве разработчика Python. Он называется pip, и он позволяет вам добавлять внешние пакеты в ваши проекты Python.

Управление пакетами с помощью pip

Менеджер пакетов pip — важный инструмент для управления пакетами Python. Чтобы избежать установки пакетов непосредственно в вашу системную установку Python, вы можете использовать виртуальную среду.

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

Создайте виртуальную среду

Python имеет встроенный venv модуль для создания виртуальных сред. Этот модуль помогает создавать виртуальные среды с помощью изолированной установки Python. После того как вы активировали виртуальную среду, вы можете устанавливать в нее пакеты. Пакеты, которые вы устанавливаете в одну виртуальную среду, изолированы от всех других сред в вашей системе.

Вы можете выполнить следующие шаги, чтобы создать и активировать виртуальную среду с именем venv:

Windows

        PS> python -m venv venv
PS> venv\Scripts\activate
(venv) PS>
    

Linux + macOS

        Linux + macOS
    

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

Примечание
Когда вы закончите работу с этой виртуальной средой, вы можете деактивировать ее, выполнив команду deactivate.

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

Устанавливаем пакет

В этом разделе вы установите Rich library Уилла Макгугана, которая позволит вам создавать красочные текстовые приложения пользовательского интерфейса (TUI) для терминала.

Перед установкой rich проверьте, какие пакеты Python в настоящее время установлены в вашей виртуальной среде:

        (venv) $ python -m pip list
Package    Version
---------- -------
pip        22.3
setuptools 65.5.0
    

Выполнение команды python -m pip list выводит список всех пакетов, установленных в текущей среде. И pip, и setuptools – это пакеты по умолчанию, которые вы найдете при запуске новой виртуальной среды.

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

        (venv) $ python -m pip install rich
Collecting rich
  ...
Installing collected packages: commonmark, pygments, rich
Successfully installed commonmark-0.9.1 pygments-2.14.0 rich-13.0.1
    

Кроме rich, вы также установили некоторые другие зависимости, которые вам понадобятся, когда вы захотите их использовать с rich. Чтобы проверить все установленные на данный момент пакеты, вы можете запустить python -m pip list еще раз:

        (venv) $ python -m pip list
Package    Version
---------- -------
commonmark 0.9.1
pip        22.3
Pygments   2.14.0
rich       13.0.1
setuptools 65.5.0
    

Чтобы увидеть предлагаемые возможности rich, запустите rich без каких-либо аргументов:

        (venv) $ python -m rich
    

В зависимости от возможностей вашего терминала вы должны увидеть такие примеры:

⌨️ Терминал для начинающих: полезные команды для работы в командной строке Windows, Linux и MacOS

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

Теперь, когда ваш экран заполнен сверху вниз, вы можете снова очистить окно терминала. Для этого можно использовать clear команду:

        (venv) $ clear
    

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

В некоторых терминалах вы можете использовать Ctrl + L или Cmd + L в качестве сочетаний клавиш для очистки экрана.

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

Если вы хотите узнать больше о виртуальных средах и pip, вы можете ознакомиться с учебником Real Python по виртуальным средам Python и учебным пособием о том, как использовать Python pip для управления зависимостями ваших проектов. Оба являются важными инструментами, которые облегчат вашу жизнь как разработчика Python.

Еще один полезный инструмент для управления вашими проектами — Git. Читайте дальше, чтобы узнать, как улучшить свои навыки работы с терминалом и погрузиться в мир контроля версий с помощью Git.

Взаимодействие с Git

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

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

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

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

Создание репозитория Git

Первым шагом в использовании Git является инициализация репозитория. Репозиторий — это контейнер, в котором хранятся все файлы вашего проекта, папки и метаданные.

Создайте новый репозиторий Git с помощью следующей команды:

        $ git init
Initialized empty Git repository in
⮑ /Users/realpython/Desktop/rp_terminal/.git/
    

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

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

После инициализации репозитория вы можете проверить статус вашего репозитория:

        $ git status
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    hello_terminal.py
    venv/

nothing added to commit but untracked files present (use "git add" to track)
    

Команда git status показывает текущий статус вашего репозитория: на какой ветке вы находитесь и есть ли какие-либо коммиты.

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

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

Кроме того, git status показывает, какие файлы Git не отслеживает. Вы можете игнорировать определенные файлы и папки, например, папку venv/, чтобы Git не отслеживал их.

Какие файлы игнорировать

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

  • Файлы, содержащие конфиденциальную информацию, например, пароли или закрытые ключи.
  • Двоичные файлы, создаваемые процессом сборки, например, скомпилированные исполняемые файлы или файлы объектов.
  • Файлы, специфичные для вашей локальной среды разработки, такие как файлы виртуальной среды или файлы конфигурации редактора, специфичные для пользователя
  • Временные файлы или файлы, созданные вашей операционной системой, такие как .DS_Store в macOS или Thumbs.db в Windows
  • Логи или другие файлы, которые генерируются вашим приложением во время выполнения.

Просмотрите GitHub’s collection of .gitignore templates, чтобы получить представление о наиболее часто встречающихся файлах .gitignore. Там же вы найдете Python specific .gitignore example.

Вы можете игнорировать файлы в Git, создав файл .gitignore и указав в нем файлы и папки, которые вы хотите игнорировать:

        $ echo "venv" > .gitignore
    

Как вы узнали ранее, эта команда создает новый файл с именем .gitignore и записывает venv в него. Проверьте текущие элементы в вашем репозитории Git, используя другую команду, которую вы уже знаете:

        $ ls -a
.          .git          hello_terminal.py
..         .gitignore    venv
    

Теперь у вас есть .gitignore файл рядом с вашим hello_terminal.py файлом, вашей venv/папкой и .git/папкой. Чтобы проверить, игнорирует ли Git venv/папку, запустите git status еще раз:

        $ git status
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .gitignore
    hello_terminal.py

nothing added to commit but untracked files present (use "git add" to track)
    

Отлично, Git теперь показывает только файлы .gitignore и hello_terminal.py как неотслеживаемые файлы. Git знает, что файлы есть, но вы еще не добавили их в репозиторий.

Отслеживание файлов с помощью Git

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

Вы используете git add команду, чтобы сообщить Git, какие файлы вы хотите отслеживать:

        $ git add .
    

Помните точку . в списке каталогов раньше? Точка указывает на текущий каталог. Использование . в конце команды git add указывает Git отслеживать все файлы в текущем каталоге. После того, как вы добавили файлы в репозиторий, вы можете проверить статус ваших файлов с помощью git status команды:

        $ git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
    new file:   .gitignore
    new file:   hello_terminal.py
    

В выводе видно, что файлы hello_terminal.py и .gitignore добавлены и готовы к фиксации:

        $ git commit -m "Initiate git repository"
[main (root-commit) 7b20833] Initiate git repository
 2 files changed, 2 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 hello_terminal.py
    

С помощью команды git commit вы делаете снимок текущего состояния ваших файлов и сохраняете его в истории репозитория. Флаг -m добавляет сообщение с описанием ваших изменений. Вывод показывает ветку, в которой вы находитесь, и количество измененных файлов.

После того, как вы зафиксируете какие-либо изменения, рекомендуется снова проверить состояние вашего репозитория Git:

        $ git status
On branch main
nothing to commit, working tree clean
    

Видно, что коммитить нечего, а это означает, что все изменения были успешно зафиксированы.

Рабочий процесс, который вы использовали в этом разделе, является типичным при использовании Git в терминале. Вы используете команду git add, чтобы сообщить Git, какие файлы отслеживать. Затем вы используете git commit для создания снимка текущего состояния ваших файлов и сохраняете его в истории репозитория.

Кроме того, рекомендуется часто использовать git status для проверки текущего состояния вашего репозитория.

Хотя вы получили некое представление об использовании Git в терминале, Git может предложить вам как разработчику Python гораздо больше. Если вы хотите узнать больше о Git, вы можете ознакомиться с введением в Git и GitHub для разработчиков Python и изучить дополнительные советы по работе с Git для разработчиков Python.

Следующие шаги

Чем больше вы пользуетесь терминалом, тем привычнее вам будет. Интересный способ внедрить терминал в свои рабочие процессы в качестве разработчика Python — создать скрипты Python с интерфейсами командной строки. Например, вы можете создать:

Помимо использования pip и Git для управления вашими проектами Python, есть еще больше примеров с использованием терминала:

  • Интерфейсы командной строки. Многие популярные библиотеки и фреймворки Python, такие как Django , Flask и Poetry, включают в себя интерфейсы командной строки, которые позволяют выполнять такие задачи, как создание новых проектов, запуск серверов разработки и управление базами данных.
  • Автоматизация и сценарии. Терминал позволяет автоматизировать повторяющиеся задачи и создавать сценарии для управления рабочим процессом разработки, например, для запуска тестов или развертывания приложения.
  • Отладка. Терминал может быть полезен для отладки вашего кода. Например, вы можете использовать print()или logging in Python, чтобы вывести что-либо в терминале и понять, что происходит в вашем коде. Вы также можете использовать pdb для отладки кода Python.
  • Производительность. Многие инструменты командной строки работают быстрее, чем их аналоги с графическим интерфейсом, и идеально подходят для работы с большими наборами данных или выполнения сложных задач, таких как обработка и анализ данных.

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

Заключение

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

В этом уроке вы узнали, как:

  • Найти терминал в операционной системе
  • Открыть терминал
  • Осуществить навигацию по файловой системе с помощью основных команд
  • Создать файлы и папки с помощью терминала
  • Управлять пакетами с помощью pip команд
  • Отслеживать файлы с помощью Git в терминале

Вы улучшили свои навыки программирования, научившись выполнять три действительно важные задачи в терминале: перемещаться по файловой системе, управлять пакетами Python с помощью pip и делать коммиты в Git. Изучение команд терминала — отличная инвестиция для вас как для Python-разработчика. Просто не торопитесь и постепенно знакомьтесь с этим мощным инструментом. Достаточно скоро он станет важным инструментом, без которого вы не сможете жить.

***
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»
***

Материалы по теме

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ