$ sudo teach IT
Модуль 1 · Знакомство · Урок 1.3

Терминал для Git

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

Теория + практика~20 минутНовичокpwd, ls, cdmkdir

Что такое терминал

Терминал (другие названия — командная строка, консоль) — это окно, в котором вы управляете компьютером текстовыми командами вместо кликов мышью. Git работает именно оттуда, поэтому из урока вы освоите шесть команд — pwd, ls, cd, mkdir, touch и cat — и создадите папку проекта ~/projects/portfolio.

Git уже стоит, но он принимает команды только в терминале. Если вы никогда им не пользовались — это нормально, начнём с нуля.

Представьте Проводник или Finder, только вместо кликов вы пишете словами: «покажи, что в этой папке», «перейди в папку проектов». Терминал — это окно (на Windows вы открываете Git Bash, на macOS — Терминал, на Linux — терминал). Внутри окна работает оболочка (англ. shell) — программа, которая понимает ваши команды. В Git Bash и на Linux это bash, на macOS обычно zsh; для команд курса разницы нет.

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

Терминал
$ ls -a projects

Разбор по строкам

  • $ — приглашение: его печатает терминал, а не вы. В уроках оно показывает, где начинается команда. Вводить его не нужно
  • ls — команда: что сделать
  • -a — флаг (опция): меняет поведение команды, пишется с дефисом
  • projects — аргумент: над чем выполнить команду

Команду запускает клавиша Enter. Запомните одно правило: если команда сработала без проблем, терминал чаще всего молчит. Тишина — это успех, а не поломка.

Где я: pwd и ls

Терминал всегда находится в какой-то папке. Узнать, в какой именно, помогает pwd (от print working directory, «показать рабочую папку»), а посмотреть содержимое папки — ls (от list, «список»).

Терминал
$ pwd
/Users/alex
$ ls
Desktop    Documents    Downloads

Сначала вы всегда попадаете в домашнюю папку — личную папку вашего пользователя. Её сокращённо пишут знаком ~ (тильда). На macOS это /Users/alex, на Linux /home/alex, в Git Bash на Windows /c/Users/alex. У вас имя будет своё, и список файлов тоже.

Некоторые файлы скрыты: их имена начинаются с точки. Увидеть их можно флагом -a (от all, «все»):

Терминал
$ ls -a
.  ..  .zshrc  Desktop  Documents  Downloads

. означает «эта папка», а .. — «папка выше». Скрытые файлы нам пригодятся: Git хранит историю проекта в скрытой папке .git.

Переходы: cd

Команда cd (от change directory, «сменить папку») перемещает вас в другую папку. Это как двойной щелчок по папке в Проводнике.

Терминал
$ cd Documents
$ pwd
/Users/alex/Documents
$ cd ..
$ pwd
/Users/alex
КомандаЧто делает
cd projectsЗаходит в папку projects внутри текущей
cd ..Поднимается на уровень выше
cd ~ или просто cdВозвращает в домашнюю папку
cd /Users/alex/DocumentsПереходит по полному пути; путь, начинающийся с /, считается от корня диска

Пути, которые начинаются со слэша, называют абсолютными, остальные — относительными (считаются от текущей папки).

Tab и стрелка вверх

Два приёма экономят кучу времени. Начните вводить имя и нажмите Tab: терминал допишет его сам (cd Doc и Tab дают cd Documents/). Стрелка вверх возвращает прошлые команды, чтобы не набирать их заново. Если команда «зависла», остановить её можно сочетанием Ctrl+C, а очистить экран — командой clear.

Пробелы и обратные слэши в путях

Если в имени папки есть пробел, возьмите путь в кавычки: cd "my site", иначе терминал решит, что это два аргумента. В Git Bash на Windows пишите пути с прямыми слэшами (/c/Users/alex), а не C:\Users\alex: обратный слэш в bash — служебный символ.

Создать папку и файл

Папку создаёт команда mkdir (от make directory), пустой файл — touch, а содержимое файла показывает cat (от concatenate, на практике — «вывести файл на экран»).

Терминал
$ mkdir -p ~/projects/portfolio
$ cd ~/projects/portfolio
$ pwd
/Users/alex/projects/portfolio

Разбор по строкам

  • mkdir -p ~/projects/portfolio — создаёт папку portfolio внутри projects в домашней папке. Флаг -p создаёт и недостающие папки по пути (если projects ещё нет) и не ругается, если папка уже существует
  • cd ~/projects/portfolio — заходит в созданную папку
  • pwd — показывает путь: вы действительно внутри portfolio

Теперь маленький файл. Команда echo печатает текст, а знак > отправляет этот текст в файл вместо экрана:

Терминал
$ touch hello.txt
$ ls
hello.txt
$ echo "Hello, Git" > hello.txt
$ cat hello.txt
Hello, Git

Будьте осторожны: > стирает прежнее содержимое файла и записывает новое. Ещё одна полезная команда — code .: она открывает текущую папку в VS Code (точка снова означает «эту папку»).

Практика у себя

Повторите всё у себя. В конце у вас должна быть пустая папка ~/projects/portfolio: именно в ней мы создадим репозиторий.

Шаг 1. Откройте терминал и узнайте, где вы находитесь. Результат должен быть вашей домашней папкой:

Терминал
$ pwd
/Users/alex

Шаг 2. Создайте папку проекта (команда ничего не напечатает) и проверьте, что она появилась:

Терминал
$ mkdir -p ~/projects/portfolio
$ cd ~/projects
$ ls
portfolio

Шаг 3. Потренируйтесь отдельно от проекта: создайте учебную папку, файл и посмотрите его.

Терминал
$ mkdir practice
$ cd practice
$ echo "Hello, Git" > hello.txt
$ cat hello.txt
Hello, Git

Шаг 4. Вернитесь в папку проекта и убедитесь, что она пока пуста (только . и ..):

Терминал
$ cd ~/projects/portfolio
$ ls -a
.  ..

Шаг 5. Откройте папку в VS Code и вызовите там терминал (Ctrl+`). Введите pwd: путь должен заканчиваться на /projects/portfolio.

Терминал
$ code .

Папку practice можно удалить обычным способом в Проводнике или Finder — для курса она не нужна.

Проверьте себя

  • pwd в папке проекта заканчивается на /projects/portfolio.
  • ls -a в portfolio показывает только . и ...
  • Вы умеете подняться на уровень выше (cd ..) и вернуться домой (cd ~).
  • Вы пользуетесь Tab, чтобы не набирать пути целиком.

Частые ошибки

Что видноПочемуЧто делать
bash: cd: projects: No such file or directory (в zsh: cd: no such file or directory: projects)Такой папки здесь нет: вы не там, где думаете, или опечаткаВыполните pwd и ls, посмотрите, где вы; пользуйтесь Tab
bash: $: command not foundВы скопировали команду вместе со знаком $ в началеВводите только то, что стоит после $
cd my site не работает: too many argumentsПробел в имени папкиВозьмите путь в кавычки: cd "my site"
В Git Bash на Windows cd C:\Users\alex говорит No such file or directoryОбратные слэши bash съедаетПишите cd /c/Users/alex
Терминал «завис», нет приглашения $Команда ещё выполняется или ждёт вводаНажмите Ctrl+C

Что важно запомнить

  • Тишина терминала после команды обычно значит успех.
  • pwd — где я, ls (с -a — со скрытыми файлами) — что здесь, cd — перейти, mkdir — создать папку, touch — создать файл, cat — показать файл.
  • ~ — домашняя папка, . — текущая, .. — папка выше.
  • Tab дописывает имена, стрелка вверх возвращает прошлые команды, Ctrl+C останавливает команду.

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

На следующий урок