Глиф Учебники

Урок 8. Терминал и Homebrew

Курс «macOS» · урок 8 из 8 · 4 минуты чтения

Терминал — программа, в которой компьютером управляют текстовыми командами. На Mac она нужна не каждому, но без неё не обойтись программисту, а многие инструкции в интернете дают именно команды. Внутри macOS — Unix, поэтому команды Терминала почти такие же, как в Linux.

Как открыть Терминал

Окно Терминала показывает приглашение — строку, после которой набирают команду:

Текст
anna@MacBook-Air ~ %

Здесь anna — имя пользователя, MacBook-Air — имя компьютера, ~ — текущая папка (ваша папка пользователя, /Users/anna), % — знак, что оболочка ждёт команду. В примерах ниже строки с командами начинаются с $, как принято в инструкциях; набирать сам знак не нужно.

anna @ MacBook-Air ~ % anna имя пользователя MacBook-Air имя компьютера ~ текущая папка ~ = /Users/anna % zsh ждёт команду в примерах — $
Приглашение anna@MacBook-Air ~ % состоит из имени пользователя, имени компьютера, текущей папки ~ (это /Users/anna) и знака %, после которого оболочка zsh ждёт команду.

Команды читает оболочка — с macOS 10.15 Catalina это zsh. В старых версиях по умолчанию была bash. Для простых команд разницы почти нет; подробно об оболочке и командах — в теме Командная строка Linux.

Первые команды

Терминал
$ pwd
/Users/anna
$ ls
Desktop    Documents    Downloads    Library    Movies    Music    Pictures    Public
$ cd Documents
$ pwd
/Users/anna/Documents

Обратите внимание: в Терминале папки называются по-английски — Documents, Downloads, Desktop, хотя в Finder вы видите «Документы», «Загрузки», «Рабочий стол».

Ещё несколько команд для файлов:

Bash
mkdir projects
touch projects/notes.txt
cp projects/notes.txt projects/notes-copy.txt
mv projects/notes-copy.txt ~/Desktop/
open projects

mkdir создаёт папку, touch — пустой файл, cp копирует, mv перемещает или переименовывает. Команда open — особенность Mac: она открывает папку в Finder, а файл — в программе по умолчанию. open . открывает в Finder текущую папку.

Пути с пробелами

Пробел в Терминале разделяет слова команды, поэтому путь с пробелом берут в кавычки:

Bash
cd ~/Desktop
mkdir "Учебные проекты"
cd "Учебные проекты"
Без кавычек пробел делит имя mkdir Учебные проекты команда 1-е имя 2-е имя Учебные проекты две папки В кавычках — одно имя mkdir "Учебные проекты" команда одно имя папки Учебные проекты одна папка
Без кавычек пробел делит имя: mkdir Учебные проекты создаст две папки, а mkdir "Учебные проекты" в кавычках — одну папку с пробелом в имени.

Не хотите набирать длинный путь — перетяните файл или папку из Finder в окно Терминала: путь вставится сам.

Удобные клавиши

КлавишаЧто делает
TabДописывает имя файла или команды
Стрелка вверхПредыдущая команда
Control+CПрервать работающую команду
Command+KОчистить окно
Command+TНовая вкладка

В Терминале Control+C прерывает команду, а Command+C копирует выделенный текст. Перепутать их легко.

Справка по любой команде — man: например, man ls. Листается стрелками и пробелом, выход — клавиша q.

sudo и пароль

Некоторые команды меняют систему, и их запускают через sudo — от имени администратора. Например, установить все доступные обновления macOS из Терминала:

Bash
softwareupdate --list
sudo softwareupdate --install --all

Первая команда только показывает обновления, и sudo ей не нужен. Вторая их устанавливает — это изменение системы.

sudo спросит пароль вашего пользователя (он должен быть администратором). При наборе символы не отображаются — так задумано; наберите пароль и нажмите Return.

sudo снимает с команды все ограничения. Не вставляйте в Терминал команды с sudo из случайных сайтов и видео, если не понимаете, что они делают: одна строка может удалить файлы или открыть Mac злоумышленнику. То же с rm -rf — эта команда удаляет без Корзины и без вопросов.

Полезные команды Mac

КомандаЧто делает
sw_versВерсия macOS
open файлОткрыть файл в программе по умолчанию
open -a TextEdit файл.txtОткрыть файл в указанной программе
softwareupdate --listСписок доступных обновлений macOS
caffeinateНе давать Mac уснуть, пока команда работает (прервать — Control+C)
ls -la | pbcopyСкопировать вывод команды в буфер обмена
pbpasteВывести содержимое буфера обмена

Например, версия системы одной строкой:

Терминал
$ sw_vers -productVersion
15.1

Homebrew — программы одной командой

В macOS нет встроенного менеджера пакетов, как apt в Ubuntu. Эту роль обычно играет Homebrew — бесплатный открытый проект. С ним программы для разработки (git, python, node, wget) и даже обычные программы ставятся и обновляются одной командой.

Homebrew ставится командой с официального сайта brew.sh — по шагам это в справке Как установить Homebrew. Коротко: установщик спросит пароль, при необходимости поставит инструменты командной строки Xcode, а в конце попросит выполнить ещё две-три команды — их нужно выполнить, иначе команда brew не найдётся.

Главные команды:

Bash
brew search wget
brew install wget
brew list
brew update
brew upgrade
brew uninstall wget

Программы с окнами (браузеры, редакторы) Homebrew ставит с ключом --cask — они попадают в «Программы», как скачанные вручную:

Bash
brew install --cask firefox
Homebrew каталог пакетов для разработки: wget git python node программы с окнами: firefox Терминал $ wget … новая команда «Программы» как скачанные вручную brew install wget brew install --cask firefox brew update обновляет списки пакетов brew upgrade обновляет сами программы
brew install ставит команды для Терминала вроде wget, brew install --cask — программы с окнами в «Программы»; brew update обновляет списки пакетов, а brew upgrade — сами программы.

Если что-то работает не так, brew doctor проверит установку и подскажет, что исправить.

Коротко

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

1. Какая оболочка используется в Терминале по умолчанию начиная с macOS 10.15 Catalina?
2. Что делает команда open .?
3. Как прервать команду, которая выполняется в Терминале?
4. Как установить программу с окнами, например браузер, через Homebrew?