macOS изнутри — Unix-система (ядро Darwin), тот же корень, что и у Linux, а значит и её командная строка — прямой наследник той же традиции, что породила язык C в главе 08.
Приложение "Терминал" в macOS — это окно, в котором работает оболочка (shell) — программа, принимающая текстовые команды и передающая их операционной системе на исполнение. Долгое время оболочкой по умолчанию в macOS была Bash, с 2019 года (macOS Catalina) — Zsh. Для базовых команд, которые встретятся в этой главе, разница между ними почти незаметна — синтаксис совпадает, различия проявляются в более продвинутом скриптинге и настройке.
Путь, начинающийся с / — абсолютный, отсчитывается от корня файловой системы
и работает одинаково независимо от того, где ты сейчас находишься. Путь без начального
/ — относительный, отсчитывается от текущей папки — тот же относительный
путь в разных местах ведёт в разные места.
| Папка | Назначение |
|---|---|
| /Users | Домашние папки пользователей |
| /Applications | Установленные приложения |
| /System | Системные файлы самой macOS — трогать без крайней необходимости не стоит |
| /Library | Общесистемные настройки и данные приложений |
В отличие от удаления файла через Finder, команда rm удаляет файл
безвозвратно, минуя корзину — восстановить его штатными средствами после этого нельзя.
Особую осторожность стоит проявлять с флагом -r (рекурсивное удаление папок)
и особенно с шаблонами вроде rm -rf * — ошибка в пути, набранная в спешке,
может удалить не то, что планировалось, и без возможности отмены.
Вывод ls -l показывает права доступа строкой вида -rwxr-xr-x —
это символьная запись тех же самых прав, что в главе 02 разбирались в восьмеричной форме
(например, "755"). Первый символ — тип объекта (- для файла, d для папки), дальше три
группы по три символа: права владельца, группы, остальных — r (чтение), w (запись),
x (выполнение), в том же порядке значений 4-2-1, что и в восьмеричном представлении. Символ
"-" на месте буквы означает отсутствие этого конкретного права.
Символ | (конвейер, pipe) — одна из самых мощных идей командной строки:
вывод одной команды становится входом для следующей, позволяя строить цепочки обработки
данных из простых команд, каждая из которых делает одну вещь хорошо — вместо одной большой
сложной программы. Эта же философия много раз прозвучит в блоке 3 применительно к
построению Python-скриптов из небольших переиспользуемых функций (глава 16).
Команда sudo перед любой другой командой выполняет её с правами
администратора — необходимо для некоторых системных операций, но требует осторожности:
команда, выполненная с sudo, может изменить или удалить то, что обычный пользователь без
таких прав изменить бы не смог, включая системные файлы. Не используй sudo "на всякий
случай", если команда без него уже работает.
Следующая глава — та же в целом задача (работа с файлами и системой из командной строки), но на Windows: CMD, с непохожим синтаксисом, но узнаваемо той же внутренней логикой.
Книга бесплатна для чтения. Автор — Тариел Бежанидзе, компьютерный мастер в Батуми · tariel.ge · все бесплатные книги. Копировать текст целиком на другие сайты — только со ссылкой на источник.