Команды Bash mac os
Обновлено: 21.11.2024
В этом руководстве для начинающих мы познакомим вас со строительными блоками сценариев для Mac, а затем увидим, как использование сценариев с вашим решением для управления мобильными устройствами (MDM) может помочь ИТ-специалистам более эффективно управлять компанией. собственные устройства.
Вот краткий обзор некоторых тем, которые мы рассмотрим:
- Что такое сценарии?
- Использование сценариев с решением MDM
- Команды терминала и сценарии оболочки
- Что такое оболочки: Bash или Zsh?
- Основы написания сценариев с помощью Bash
Что такое сценарии?
Сценарии – это небольшие компьютерные программы, которые собирают последовательность команд в один файл. В то время как ввод команд в терминал Apple обычно выполняется одна за другой, с помощью сценария вы можете выполнить длинный список команд всего за одно действие.
Хотя сценарии Mac обычно не используются для создания больших программ, вы можете использовать их для автоматизации рутинного поведения компьютера. Например, если у вас есть трудоемкая процедура, требующая большого количества кликов, вы можете написать сценарий и сделать это всего одним кликом.
Apple хорошо описывает это в своем учебнике по сценариям оболочки:
Написание сценария оболочки похоже на езду на велосипеде. Сначала вы падаете и сильно царапаете колени. С немного большим опытом вы научитесь ездить на них по городу, но также быстро поймете, почему большинство людей ездят на машинах для дальних поездок.
Сценарии оболочки обычно считаются связующим языком, идеально подходящим для создания небольших деталей. кода, который соединяет другие инструменты вместе. Хотя сценарии оболочки можно использовать для более сложных задач, обычно это не лучший выбор.
Изучение скриптов похоже на изучение языка программирования. Вы начинаете с основ и постепенно расширяете свои знания.
Итак, в этом руководстве мы сосредоточимся на строительных блоках сценариев. Информация, которую мы рассмотрим здесь, будет полезна во многих случаях, но в конечном итоге мы сосредоточимся на том, как сценарии могут помочь вам выполнять действия на нескольких устройствах с помощью решения MDM.
Что могут делать скрипты?
По сути, скрипты позволяют делать сложные вещи быстро, точно и легко.
- Быстро, потому что использование сценариев Mac в MDM позволяет автоматизировать утомительные задачи, такие как доступ к компьютерной программе на 100 корпоративных устройствах, без 100 кликов.
- Точно, потому что хороший сценарий каждый раз будет выполнять заданное действие одинаково, а доверить человеку выполнение задачи вручную может привести к ошибкам, несоответствиям и путанице.
- Легко, потому что вы можете выполнить действительно сложную и тонкую задачу с помощью ряда простых сценариев, которые разбивают ее на более мелкие части.
Использование сценариев с решением MDM
Использование сценариев само по себе может помочь вам сэкономить время, но их использование с решением MDM, таким как наш продукт Kandji, открывает гораздо больше возможностей и свободы. После того, как вы напишете понравившийся сценарий, вы можете запустить его в своем решении MDM, чтобы применить его ко всем устройствам вашей компании.
Использование сценариев в решениях MDM зависит от продукта, но с Kandji вы можете использовать их, например, для настройки пользовательской установки приложений в соответствии с конкретными потребностями вашей компании. (Вы можете прочитать наше руководство по развертыванию приложений, если вам нужен учебник по этому вопросу.)
В этом случае, если ваша компания хочет установить пользовательское приложение на все устройства компании, вы можете указать определенные действия до или после установки, добавив сценарии в соответствующие поля ввода (см. изображение ниже):
Предустановленные скрипты
Вы можете создать сценарий предварительной установки, если хотите выполнить какое-либо действие перед установкой. Сценарии предустановки обычно используются для:
- Выполняйте задачи по очистке, которые обычно выполняются вручную перед переустановкой программного обеспечения, такие как удаление лицензий, кешей, файлов баз данных и т. д.
- Запустите файлы конфигурации. Многие приложения используют параметры массового развертывания, которые работают путем поиска файлов конфигурации, размещенных до запуска программы установки. Например, вы можете использовать сценарий предварительной установки для создания определенной папки и записать в нее файл, содержащий какой-либо идентификатор. Когда происходит установка, программа установки находит эту информацию и использует ее для автоматической настройки приложения.
Сценарии после установки
Вы также можете создать сценарий после установки, который обычно используется для настройки параметров приложения перед его запуском.Чтобы поделиться распространенным примером, вы можете использовать скрипт posinstall для настройки пользовательских настроек для Google Chrome и убедиться, что настроены автоматические обновления.
Как вы понимаете, создание сценариев для этих действий дает вам намного больше контроля над процессом установки и может сэкономить вашей ИТ-команде много времени, если в противном случае им пришлось бы делать это вручную.
Пользовательские скрипты
Канджи также имеет функцию пользовательского сценария, которая позволяет добавлять любой сценарий, поддерживаемый macOS. Эти сценарии Mac могут запускаться один раз для каждого устройства или непрерывно. Существует также вариант сценария исправления, который вы можете включить при необходимости. Вы можете увидеть больше доступных опций на странице Custom Script Канджи ниже:
Основные блоки сценариев
Теперь, когда у нас есть рабочее определение того, что такое скрипты, и мы знаем, что они могут сделать, давайте узнаем, как все это работает. В этом разделе мы разберем некоторые из основных строительных блоков сценариев Mac, включая команды терминала, сценарии оболочки и две распространенные оболочки.
Что такое команды терминала?
Терминал — это интерфейс командной строки (CLI) macOS. Он позволяет пользователям вносить расширенные изменения в свой Mac с помощью команд, которые являются просто инструкциями для вашего Mac относительно того, что вы хотите, чтобы он делал.
Однако предупреждаю: Терминал — невероятно мощный инструмент. Тщательно исследуйте и тестируйте команды перед их запуском и, по возможности, тестируйте на виртуальной машине, а не на производственной машине.
Когда вы вводите команды в терминал, он позволяет вам общаться с интерпретатором или оболочкой. Интерпретатор берет код и переводит его на машинный язык, понятный операционной системе.
Чтобы открыть Терминал, просто нажмите «Приложения», откройте папку «Утилиты», а затем дважды щелкните приложение «Терминал». Вы можете использовать команды терминала для всего, что вы можете сделать в графическом интерфейсе, и многое другое.
Вот несколько основных примеров команд:
- Добавить текст в документ (если документ не существует, будет создан новый)
- Создать папку в определенном месте
- Переместить документ в определенное место
- Открыть документ из определенного места
Это отличный способ увидеть, как вы можете использовать команды, чтобы ваш Mac выполнял определенные действия, но это не очень практично, если вы хотите выполнять ряд задач. В следующем разделе мы увидим, как это возможно с помощью скриптов.
Что такое сценарии Mac Shell?
Конечно, подключение команд терминала по одной станет довольно утомительным, если вы пытаетесь внедрить изменения для сотен корпоративных устройств Mac. Таким образом, вместо того, чтобы выполнять отдельные команды, как в нашем примере в предыдущем разделе, вы можете превратить все свои команды в один сценарий — сценарий оболочки, — который может выполняться без прямого взаимодействия. Это упрощает выполнение повторяющихся или многоэтапных процессов и сводит к минимуму количество ошибок.
Сценарий оболочки — это просто текстовый файл, содержащий команды UNIX (команды, взаимодействующие с вашей операционной системой — macOS — это операционная система на основе UNIX). Все, что вы можете делать с помощью команд терминала, вы можете делать с помощью сценариев оболочки Mac, только намного проще. Вы даже можете автоматизировать сценарии оболочки с помощью таких инструментов, как launchd.
Запуск сценария оболочки: терминал Mac
На самом деле запустить сценарий оболочки довольно просто. Если бы нам нужно было создать сценарий Mac из представленных выше команд терминала, нам нужно было бы сделать следующее:
Все — программа выполнит список команд по порядку. Скорее всего, это произойдет быстрее, чем вы уследите, но это еще одно преимущество сценариев для Mac — они очень быстрые.
Прежде чем говорить о том, что можно делать с помощью скриптов, давайте рассмотрим, что такое оболочки (например, bash, которую мы использовали в этом примере).
Что такое оболочки?
Когда вы открываете Терминал, система запускает программу-оболочку. Оболочки — это интерпретаторы командной строки, что означает, что они принимают ваши команды и передают их операционной системе для выполнения.
По умолчанию Mac использует либо zsh (оболочка Z), либо bash (оболочка Bourne-again) в качестве оболочки или интерпретатора командной строки. Оболочка вашего Mac по умолчанию будет зависеть от используемой версии macOS.
- zsh (Mac Catalina): если вы создали новую учетную запись пользователя в бета-версии macOS Catalina или более поздней версии, вашей оболочкой по умолчанию будет zsh. Итерации macOS до этого использовали bash.
- bash (более ранние версии macOS). Если вы используете macOS Mojave и более ранние версии, то bash является вашей оболочкой по умолчанию.
Независимо от того, использует ли ваша учетная запись оболочку bash или zsh по умолчанию для Mac, вы можете изменить ее всего за несколько шагов. Вот что вам нужно сделать:
- Нажмите на меню Apple.
- Выберите «Системные настройки» > «Пользователи и группы».
- Нажмите на замок и введите имя и пароль своей учетной записи.
- Удерживая нажатой клавишу Control, щелкните свое имя пользователя в списке пользователей > Выберите дополнительные параметры.
- Посмотрите на меню «Оболочка входа» и выберите оболочку.
- Когда найдете нужную оболочку, нажмите "ОК".
Bash против Zsh: сценарии для Mac
Bash и zsh на самом деле имеют много общего, и вы можете переключаться с одного на другой, не слишком долго обучаясь. Итак, прежде чем мы перейдем к тому, что отличает их, давайте рассмотрим несколько мест, где они пересекаются.
- Команда Z. Команда Z позволяет разработчикам легко перемещаться по своим каталогам, предоставляя им возможность посетить недавно или часто посещаемый каталог, набрав «z» и имя каталога. Это быстрее, чем вводить полное местоположение, как нам приходилось делать, когда мы открывали документ в разделе команд терминала.
- Автозаполнение. Обе оболочки также включают функцию автозаполнения командной строки. Чтобы использовать эту функцию, вам просто нужно ввести команду, нажать клавишу «-», а затем нажать клавишу Tab. Вы увидите список доступных параметров команды, который вы можете просматривать, пока не найдете нужный.
- Автокоррекция. Обе оболочки используют автокоррекцию, но сначала необходимо включить функцию bash, а в zsh есть встроенная функция автокоррекции, которая автоматически обнаруживает небольшие опечатки.
- Настройка цвета: и zsh, и bash предлагают множество инструментов настройки цвета, которые с первого взгляда облегчают понимание сценария.
Что касается различий, то bash был оболочкой по умолчанию для пользователей macOS вплоть до Catalina и по-прежнему остается наиболее широко используемой оболочкой среди ИТ-администраторов. Поскольку у bash огромное количество поклонников, существует множество ресурсов, которые отлично подходят для начинающих.
Bash является частью семейства оболочек Bourne, в эту категорию также входят sh, ash, zsh и ksh. Он загружен большим количеством функций, чем мы можем здесь перечислить, но некоторые из его уникальных функций включают циклы, условные конструкции, раскрытие тильды и фигурных скобок, а также псевдонимы.
Zsh, оболочка Mac Catalina по умолчанию, с другой стороны, не так популярна, как bash, но по-прежнему имеет огромное количество поклонников, включая фреймворки с открытым исходным кодом, такие как Oh My Zsh, и широко известна своей функциональностью. Zsh предлагает некоторые уникальные функции, такие как подстановка файлов, загружаемые модули, расширение пути, сценарии запуска / завершения работы и многое другое. В этом руководстве мы в первую очередь сосредоточимся на bash.
Основы Bash
Теперь, когда мы понимаем, как работают скрипты и оболочки, пришло время дать несколько советов по написанию скриптов с помощью bash. После этого мы углубимся в основы, такие как назначение переменных и написание условий.
Разделение слов
Одним из первых основных строительных блоков, который нужно понять, является то, как bash использует разделители слов. При просмотре примеров скриптов вы увидите такие метасимволы, как ; а также &. Это только два из семи символов, которые bash использует для разделения слов при написании скрипта.
Мы приведем список всех семи ниже. Когда вы увидите их, не волнуйтесь. Они просто держат все в порядке. Как вы увидите позже в разделе условий, тип используемого синтаксиса зависит от того, чего вы пытаетесь достичь.
Полезные организационные команды
- mkdir (создать каталог) используется для создания нового каталога или папки.
- mv (перемещение) используется для перемещения одного или нескольких файлов или каталогов в другое место.
- rm (удалить) используется для удаления файлов.
- rmdir (удалить каталог) используется для удаления каталога.
Просмотр команд
Если вы хотите сделать больше, чем просто перемещать файлы, вы можете использовать некоторые из этих команд просмотра, чтобы просмотреть информацию, содержащуюся в файлах. Вот два из них:
- cat (конкатенация) считывает содержимое одного или нескольких файлов и отображает его. Это идеально подходит для более коротких файлов.
- less — еще одна команда просмотра, которая отлично подходит для просмотра более длинных файлов, поскольку она отображает только один экран информации за раз и включает полезные функции навигации для поиска определенных слов или перехода к следующей или предыдущей странице.
Что такое переменные?
Переменные — это именованные заполнители, которые ссылаются на определенное значение. Когда вы вводите имя переменной, система обрабатывает его так, как если бы вы ввели значение, на которое оно ссылается. Вы можете называть переменные, используя цифры, буквы, имена файлов или другие типы данных.
Переменные упрощают написание сценариев, использующих определенные фрагменты данных, даже если эти данные постоянно меняются, например, имена пользователей. Вместо того, чтобы писать отдельные команды для нескольких вариантов имен пользователей, вы можете просто определить переменную имени пользователя и использовать ее в качестве заполнителя для всех вариантов, которые могут использовать пользователи.
Назначать переменные довольно просто. Вам просто нужно указать имя переменной и значение, например:
Заглавные буквы здесь не имеют значения. Имя и значение переменной могут быть любыми, например:
Тем не менее, существуют некоторые ограничения на то, какие слова или символы можно использовать для переменных (о них мы поговорим далее). Но сначала важно отметить, что bash не использует пробелы до или после знака равенства при назначении переменных.
Это означает, что вы не можете назначать переменную с пробелами, как здесь:
Неверно:
Вы должны назначить его без пробелов, например:
Правильно:
Однако вы можете использовать пробелы в именах переменных, используя кавычки, например:
Правильно:
Следует также упомянуть, что вы можете использовать сценарий Mac, чтобы заставить Терминал вернуть вам значение переменной. Вы можете сделать это двумя способами. В обоих примерах «x» — это значение переменной, которое вы ищете:
Вы также можете сделать так, чтобы переменная ссылалась на результат команды, например:
Ограничения переменных
Итак, что это за ограничения переменных, о которых мы только что упомянули? В Bash есть двадцать «зарезервированных слов», которые нельзя использовать для переменных, поскольку они уже назначены другим важным функциям в оболочке. Всякий раз, когда вы назначаете переменные, вам просто нужно избегать этих слов, и у вас не возникнет проблем с вашим сценарием.
Одинарные и двойные кавычки
Текст, заключенный в одинарные кавычки, означает, что он содержит только тот текст, который был прочитан – он не будет придавать значения каким-либо специальным символам, таким как переменные или ограничения переменных.
Двойные кавычки сохраняют буквальное значение некоторых символов, но могут содержать некоторые переменные или символы со специальным значением, в том числе:
Смысл символа ! в двойных кавычках сохраняется только тогда, когда включено расширение истории, а за \ должен следовать другой специальный символ (или новая строка).
Что такое условные выражения?
Следующий важный шаг в изучении скриптов для Mac — научиться использовать условные операторы. По сути, условные операторы — это операторы if/then, которые устанавливают условия, а затем проверяют, выполняются ли они (например, ЕСЛИ сейчас 6 утра, ТО скажите «Доброе утро»).
В bash синтаксис операторов if/then выглядит следующим образом:
Давайте разберемся.
- Начните с «если» и сразу же после него укажите условия.
- Используйте точку с запятой, чтобы отделить условие "ЕСЛИ" и начать команду "ТО". Эта команда выполняется только в том случае, если выполняется условие «ЕСЛИ».
- Наконец, закройте оператор if/then с помощью «fi» — это просто «if», написанное наоборот.
Вот пример:
Здесь мы проверяем, является ли число 5 больше или равно (это "-ge") другому числу, 4. Если это так, будет выполнена команда "тогда" с запросом нам с сообщением: «Это число больше или равно 4». Представьте, как изменение числа 5 и использование вместо него переменной может улучшить функциональность этого скрипта.
После того, как вы освоите эти операторы, вы сможете научиться использовать else, чтобы дать своим командам альтернативное действие в случае, если условия if не выполняются. Для более сложных команд вы даже можете использовать «elif» (else if), чтобы добавить условия к «else» без утомительного переписывания дополнительных «else» условий.
Сценарии с помощью решений MDM
Точно так же, как использование сценариев Mac может сделать отдельные команды терминала более мощными, использование сценариев с вашим решением MDM может максимально раскрыть ваш потенциал управления.
Независимо от того, используете ли вы функцию настраиваемого сценария или задаете поведение до и после установки для настраиваемых приложений, создание сценариев с помощью MDM позволяет выполнять множество дополнительных действий по управлению устройствами.
Надеюсь, вы узнали, что с помощью сценариев можно выполнять многоэтапные задачи быстрее и точнее, а также создавать сценарии расширенных политик и отправлять их на все устройства вашей компании с помощью решения MDM, такого как Kandji. р>
Помимо запуска ваших скриптов, Kandji имеет множество других замечательных функций, таких как соответствие основным тестам безопасности одним щелчком мыши и автоматическое развертывание. Это все, что нужно вашему бизнесу для управления парком автомобилей от развертывания до вывода из эксплуатации.
Наша гигантская шпаргалка по командам терминала Mac представляет собой отличный справочник по всем важным командам, которые вам следует знать.
macOS — интуитивно понятная операционная система, поэтому вам не нужно тратить много времени на изучение основ; Зная это, почему вы должны изучать и использовать командную строку Unix, доступную на вашем Mac?У нас есть четыре веские причины:
- Существуют десятки бесплатных приложений для Unix с открытым исходным кодом. Вам не нужно тратить на это деньги.
- Если у вас возникли трудности с поиском файлов в Spotlight, вы можете воспользоваться инструментами поиска Unix. Они намного мощнее, чем Spotlight.
- Вы можете управлять файлами, папками и файловыми архивами автоматически. Настройка задания cron сделает это автоматически.
- Это дает вам больше возможностей и контроля над вашей системой.
С таким количеством команд Mac часто трудно запомнить и использовать их все. Мы здесь, чтобы помочь вам с подробной памяткой по командам терминала Mac, которые вы можете использовать для повышения производительности своей системы.
Запустите приложение «Терминал» в разделе «Приложения» > «Утилиты» или найдите его с помощью Spotlight. Затем вы можете начать работу с некоторыми из приведенных ниже мощных команд.
БЕСПЛАТНАЯ ЗАГРУЗКА. Эту памятку можно загрузить в формате PDF у нашего партнера по распространению, TradePub. Вам нужно будет заполнить короткую форму, чтобы получить к ней доступ только в первый раз. Загрузите памятку по командам терминала Mac.
Памятка по командам терминала Mac
КОМАНДА | ДЕЙСТВИЕ |
---|---|
Сочетания клавиш | |
Вкладка | Автозаполнение имен файлов и папок |
Ctrl + A | Перейти к началу строка, которую вы сейчас печатаете |
Ctrl + E | Перейти к концу строки, которую вы сейчас печатаете | < /tr>
Ctrl + U | Очистить строку перед курсором |
Ctrl + K | Очистить строка после курсора |
Ctrl + W | Удалить слово перед курсором |
Ctrl + T | Поменять местами последние два символа перед курсором |
Esc + T | Поменять местами последние два слова перед курсором< /td> |
Ctrl + L | Очистить экран |
Ctrl + C | Уничтожить все, что вы запускаете |
Ctrl + D | Выйти из текущей оболочки |
Option + → | Переместить курсор на одно слово вперед |
Option + ← | < td>Переместить курсор на одно слово назад|
Ctrl + F | Переместить курсор на один символ вперед |
Ctrl + B | Переместить курсор на один символ назад |
Ctrl + Y | Вставить то, что было вырезано последней командой |
Ctrl + Z | Помещает все, что вы запускаете, в приостановленный фоновый процесс |
Ctrl + _< /td> | Отменить последнюю команду |
Option + Shift + Cmd + C | Копировать обычный текст | Shift + Cmd + V | Вставить выделение |
выйти | Завершить сеанс оболочки |
Основные сведения | |
/ (косая черта) | Каталог верхнего уровня | < /tr>
. (Одна точка) | Текущий каталог |
.. (Двойная точка) | Родительский каталог |
~ (тильда) | Домашняя директория |
sudo [команда] | Выполнить команду с правами безопасности суперпользователя |
nano [файл] | Открывает редактор терминала |
открыть [файл ] | Открывает файл |
[команда] -h | Получить справку о команде |
man [команда] | Показать справку по команде |
Изменить каталог | < /tr>|
cd | Домашняя директория |
cd [папка] | Изменить директорию, например Документы cd |
cd ~ | Домашняя директория |
cd/ | Корень диска |
cd — | Предыдущий каталог или папка, которую вы просматривали в последний раз |
pwd< /td> | Показать рабочий каталог |
cd.. | Перейти к родительскому каталогу |
cd../.. | Перейти на два уровня вверх |
Список содержимого каталога | |
ls | Отображать имена файлов и подкаталогов в каталоге |
ls -C | Force вывод списка в несколько столбцов |
ls -a | Список всех записей, включая те, у которых есть .(точка) и ..(двойная точка) td> |
ls -1 | Вывести список файлов в формате одной записи на строку |
ls -F | Отображать / (косая черта) сразу после каждого пути, который является каталогом, * (звездочка) после исполняемых программ или скриптов и @ после символической ссылки |
Сортировать файлы или записи по размеру | |
ls -l | Список в длинном формате.Включает режим файла, имя владельца и группы, дату и время изменения файла, путь и т. д. |
ls -l / | Список файловой системы из корня с символическими ссылками |
ls -lt | Список файлов, отсортированных по времени изменения (сначала самые последние) | ls -lh | Длинный список с удобочитаемыми размерами файлов в КБ, МБ или ГБ |
ls -lo | Список имен файлов с размером, владельцем и флагами |
ls -la | Список подробного содержимого каталога, включая скрытые файлы |
Размер файла и место на диске | |
du | Список использования для каждого подкаталога и его содержимого |
du -sh [папка] | Удобочитаемый вывод всех файлов в каталоге |
du -s | Показать запись для каждого указанного файла |
du -sk* | sort -nr | Список файлов и папок, общий размер, включая подпапки. Замените sk* на sm*, чтобы получить список каталогов в мегабайтах |
df -h | Рассчитайте свободное место на диске вашей системы | df -H | Вычислить свободное место на диске в степени 1000 (вместо 1024) |
Файл и Управление каталогом | |
mkdir | Создать новую папку с именем |
mkdir -p / | Создавать вложенные папки |
mkdir | Создавать сразу несколько папок |
mkdir " " | Создать папку с пробелом в имени файла |
rmdir | Удалить папку (работает только с пустыми папками) td> |
rm -R | Удалить папку и ее содержимое |
нажмите | Создать новый файл без расширения |
cp | Скопировать файл в папку |
cp | Скопировать файл в текущую папку |
cp ~/ / | Скопировать файл в папку и переименовать скопированный файл |
cp -R | Скопировать папку в новую папку с пробелами в имени файла |
cp -i | Запрашивает перед копирование файла с предупреждением о перезаписи |
cp /Users/ | Копировать несколько файлов в папку |
ditto -V [путь к папке][новая папка] | Скопировать содержимое папки в новую папку. Здесь "-V" выводит строку состояния для каждого скопированного файла |
rm | Удалить файл (это удаляет файл навсегда; используйте с осторожностью .) |
rm -i | Удалить файл только после подтверждения |
rm - f | Принудительное удаление без подтверждения |
rm | Удалить несколько файлов без подтверждения |
mv | Переместить/переименовать |
mv | Переместить файл в папку, возможно, перезаписав существующий файл |
mv -i | Необязательный флаг -i для предупреждения перед перезаписью файла |
mv *.jpg ~/ | Переместить все файлы PNG из текущей папки в другую папку |
История команд | tr>|
Ctrl + R | Поиск по ранее использовавшимся командам |
история n | Показывает предыдущие команды вы набрали. Добавить число для ограничения последних n элементов |
![value] | Выполнить последнюю введенную команду, начинающуюся со значения | < /tr>
!! | Выполнить последнюю введенную команду |
Разрешения | |
ls -ld | Показать разрешение по умолчанию для домашнего каталога |
ls -ld/ | Отображение разрешения на чтение, запись и доступ к определенной папке |
chmod 755 | Изменить разрешение файла на 755 | tr>
chmod -R 600 | Изменить разрешение папки (и ее содержимого) на 600 |
chown : td> | Изменить владельца файла на пользователя и группу. Добавьте -R для включения содержимого папки |
Процессы | |
ps -ax | Вывод запущенных процессов. Здесь a показывает процессы всех пользователей, а x показывает процессы, не связанные с Терминалом |
ps -aux | Показывает все процессы с %cpu , %mem, page in, PID и команда |
top | Отображение оперативной информации о запущенных в данный момент процессах |
top -ocpu -s 5 | Отображать процессы, отсортированные по загрузке ЦП, обновление каждые 5 секунд |
top -o rsize | Сортировать сверху по использованию памяти |
убить PID | Завершить процесс с идентификатором |
Далее настройте терминал Mac
В этой шпаргалке много команд. Но вам не обязательно учить их все сразу! Выберите несколько, которые хорошо интегрируются в ваш рабочий процесс и сэкономят вам больше всего времени. После того, как вы освоите эти команды, вам нужно будет узнать больше о Терминале, чтобы улучшить работу с ним.
Вы можете пойти дальше и настроить Mac Terminal, чтобы сделать его еще более полезным.
Как вы уже знаете из моей вводной статьи, macOS — это разновидность UNIX, похожая на Linux. Но в отличие от Linux, macOS по умолчанию не поддерживает виртуальные терминалы.
Эта статья является второй частью серии статей об использовании навыков работы с Linux при работе в операционной системе Mac. Ознакомьтесь с другими статьями этой серии:
Как вы уже знаете из моей вводной статьи, macOS — это разновидность UNIX, похожая на Linux. Но в отличие от Linux, macOS по умолчанию не поддерживает виртуальные терминалы. Вместо этого вы можете использовать приложение «Терминал» (/Applications/Utilities/Terminal), чтобы получить терминал командной строки и оболочку BASH.
Кроме того, вы можете ввести >console в качестве имени пользователя в запросе на вход в macOS (пароль не требуется), чтобы получить приглашение на вход, которое позволит вам войти непосредственно в терминал командной строки и получить оболочку BASH.
После того, как вы получите оболочку BASH, вы сможете выполнять многие из тех команд, к которым вы привыкли в Linux. Также важно отметить, что те же правила синтаксиса, которые вы использовали в Linux, применяются к BASH в macOS:
- Все команды чувствительны к регистру.
- Обычные параметры (-h) и параметры POSIX (--help) перечислены для большинства команд.
- Справочные страницы (man who) и информационные страницы (info who) содержат большую часть документации по командам. Команда help отображает справку по функции BASH (эхо-помощь).
- Команды могут быть объединены в цепочку с использованием точки с запятой (дата; кто).
- Стандартный вывод одной команды может быть отправлен на стандартный ввод другой команды с помощью вертикальной черты ( | ) (ps aux | less).
- Стандартный вывод и стандартная ошибка команды могут быть перенаправлены в файл (ls –l /Users > usersfile 2> errorfile).
- Одинарные кавычки защищают все специальные символы оболочки, двойные кавычки защищают большинство символов оболочки (переменные являются одним исключением), обратные кавычки выполняют подстановку команд (echo The date is `date`), а обратная косая черта защищает следующий символ (echo You owe \$4.50) .
- Метасимвол ~ представляет домашние каталоги пользователя.
- Tab завершает команды и пути к файлам.
- Ctrl+C отменяет команду, отправляя активному процессу сигнал SIGINT kill.
- В командах можно использовать метасимволы-шаблоны, а в текстовых утилитах можно использовать регулярные выражения.
- Управляющие структуры и функции BASH могут использоваться для создания сценариев оболочки BASH.
ПРИМЕЧАНИЕ. Если вы хотите выполнять системное администрирование в качестве пользователя root, вы должны сначала включить пользователя root с помощью приложения Directory Utility (в /System/Library/CoreServices/Applications). Открыв это приложение, просто выберите «Изменить корневой пароль» в меню «Правка».
Распространенные команды macOS
Ниже приведены некоторые распространенные команды macOS, упорядоченные по основным функциям. Добавьте эту страницу в закладки, чтобы вы могли часто возвращаться к ней. Хотя большинство параметров этих команд одинаковы для Linux и macOS, обязательно просмотрите страницу руководства для команд, которые вы будете использовать в будущем.
Системные команды документации в macOS
- man Отображает/ищет в базе данных справочных страниц
- кстати, ищет в базе данных справочных страниц по ключевому слову
- info Отображает/ищет в базе данных информационных страниц
- help Отображает справку по функциям BASH
Команды управления файлами в macOS
- pwd Отображает текущий каталог
- cd Изменяет текущий каталог
- ls Список файлов
- файл Отображает тип файла
- locate Находит файлы, используя предопределенную базу данных
- который ищет файлы в переменной PATH
- find Находит файлы в файловой системе по определенным критериям.
- cp Копирует файлы и каталоги
- mv Перемещает/переименовывает файлы и каталоги
- rm Удаляет файлы и каталоги
- rmdir Удаляет пустые каталоги
- mkdir Создает пустые каталоги
- ln Создает жесткие ссылки; опция –s используется для создания символических ссылок
- chown Изменяет владельца файлов и каталогов
- chgrp Изменяет владельца группы для файлов и каталогов
- chmod Изменяет разрешения (режим) для файлов и каталогов.
- umask Изменяет переменную UMASK, используемую для определения разрешений по умолчанию.
Текстовые инструменты в macOS
- cat Просматривает (объединяет) содержимое текстовых файлов на экране терминала
- еще Просмотр содержимого текстовых файлов страница за страницей
- less Постраничный просмотр содержимого текстовых файлов с расширенными функциями работы с текстом.
- head Отображает начало текстового файла
- tail Отображает конец текстового файла
- sort Сортирует строки в текстовых файлах
- wc Подсчитывает количество строк, слов и символов в текстовом файле.
- grep Ищет в текстовых файлах регулярные выражения
- egrep Ищет в текстовых файлах регулярные выражения (включая расширенные)
- sed Редактирует текстовые файлы с помощью функций поиска и замены
- awk Редактирует и форматирует текст с помощью предопределенных функций
- · vi (vim) Текстовый редактор vi (общий для всех систем UNIX)
- emacs Текстовый редактор GNU Emacs
- · nano Небольшой простой в использовании текстовый редактор на основе pico-редактора UNIX.
Администрирование файловой системы в macOS
- mount Монтирует файловую систему в каталог точки монтирования — в качестве альтернативы вы можете использовать команды mount_filesystem (где filesystem — это имя соответствующей файловой системы) — см. man монтировать для получения подробной информации.
- umount Размонтирует файловую систему из каталога точки монтирования.
- pdisk Может использоваться для создания разделов диска Apple
- newfs_type Создает новую файловую систему на устройстве (type = apfs, hfs, udf, exfat, msdos)
- fuser Определяет пользователей, имеющих доступ к определенному файлу, каталогу или терминалу.
- df Отображает свободное место на диске по файловой системе
- du Отображает свободное место на диске по каталогам
- quota Отображает квоты для определенного пользователя
- edquota Редактирует пользовательские квоты
- repquota Отображает отчет о квотах по пользователям.
- quotacheck Обновляет лимиты квоты в файловой системе
Завершение работы и состояние системы в macOS
- shutdown Завершает работу или перезагружает систему в указанное время.
- halt Немедленно выключает систему
- reboot Немедленная перезагрузка системы.
Сжатие, резервное копирование и программное обеспечение в macOS
- compress Сжимает файлы с помощью алгоритма Лемпеля-Зива.
- gzip Сжимает файлы с использованием стандартного алгоритма Лемпеля-Зива.
- bzip2 Сжимает файлы с помощью алгоритма блочной сортировки.
- tar Используется для создания небольших tar-архивов и тарболлов.
- cpio Используется для создания полных резервных копий файловой системы с использованием различных параметров.
- make Управляет компиляцией программного обеспечения с использованием настроек gcc и Makefile.
- gcc Компилятор GNU C, используемый для компиляции программного обеспечения.
Управление BASH в macOS
Как и в Linux, macOS хранит свои переменные в файлах среды. Файлы /etc/profile и /etc/bashrc используются в системе по умолчанию. Каждый пользователь также может создавать свои собственные файлы ~/.bash_profile и ~/.bashrc. Кроме того, ~/.bash_logout можно использовать для выполнения задач при выходе из оболочки. Вот еще команды управления BASH для macOS.
- set Отображает все переменные в вашей оболочке
- env Отображает экспортированные переменные в вашей оболочке.
- alias Создает специальные переменные-псевдонимы
- unalias Удаляет специальные переменные-псевдонимы.
- export Создает и экспортирует переменные
- ulimit Устанавливает ограничения BASH для пользователей (например, максимальное количество пользовательских процессов)
Управление процессами в macOS
- ps Отображает системные и пользовательские процессы (поддерживает только параметры в стиле BSD)
- top Отображает основные процессы и системную статистику
- kill Отправляет сигналы об уничтожении процессам по идентификационному номеру процесса (PID).
- killall Отправляет сигналы завершения процессам по имени
- jobs Отображает фоновые процессы
- fg Перемещает фоновый процесс на передний план
- bg Перемещает активный процесс на задний план
- красиво Изменяет приоритет процесса при его запуске
- renice Изменяет приоритет запущенного процесса
- at Расписание команд для запуска в более позднее время
- Просмотры atq на вакансиях
- atrm Удаляет задание at
- crontab Редактирует пользовательские таблицы cron (используемые для повторного планирования команд)
Администрирование пользователей и групп в macOS
Администрирование пользователей и групп немного отличается в macOS от Linux. Нет команд useradd или userdel. Вместо этого вы должны использовать утилиту «Системные настройки» для правильного создания учетных записей пользователей. Информация о пользователе хранится в базе данных каталога в каталоге /var/db. Файл /etc/shadow не существует, а файлы /etc/passwd и /etc/group существуют только для предоставления информации приложениям.
- whoami Отображает текущее имя пользователя
- Кто я Отображает ваше имя пользователя и информацию о компьютере
- groups Отображает членство в группах текущего пользователя.
- id Выводит идентификатор пользователя (UID) и идентификатор группы (GID) для текущего пользователя.
- chfn Изменяет описание пользователя, используемое командой finger.
- finger Отображает описание пользователя
- chsh Изменяет оболочку для учетной записи пользователя.
- passwd Изменяет пароль текущего пользователя (пользователь root может изменить пароли других пользователей, указав имя пользователя в качестве аргумента)
- who Отображает, кто находится в системе
- w Отображает, кто находится в системе и что они делают
Общая система печати Unix (CUPS) Печать в macOS
- lp Печать файла (lpr поддерживается для совместимости с BSD)
- lpstat Просмотр заданий печати и состояния принтера (lpq и lpc поддерживаются для BSD
- совместимость)
- cancel Удаляет задание печати из очереди печати (lprm поддерживается для BSD
- совместимость)
- cupsaccept Позволяет заданиям помещаться в очередь печати.
- cupsreject Предотвращает попадание заданий в очередь печати.
- cupsenable Позволяет отправлять задания на принтер из очереди печати.
- cupsdisable Запрещает выход заданий из очереди печати.
Команды, связанные с сетью и безопасностью, в macOS
Сетевые устройства имеют разные имена в macOS. Первый адаптер Ethernet называется en0 (обычно проводной Ethernet), а второй называется en1 (обычно беспроводной Ethernet). Убедитесь, что вы используете Системные настройки для изменения любых сетевых параметров, поскольку они не хранятся в текстовых файлах, как в системах Linux. Например, файл /etc/resolv.conf по-прежнему существует в macOS и содержит список DNS-серверов, настроенных в Системных настройках, но он не используется системой — он существует только на случай, если приложение запросит его. Единственный файл, связанный с сетью, который активно используется и может редактироваться, — это /etc/hosts (для разрешения имен локальных хостов). Вот еще команды, связанные с сетью и безопасностью в macOS.
- ifconfig Отображает и настраивает сетевые интерфейсы TCP/IP
- ping Проверяет связь между хостами
- whois запрашивает информацию о регистрации доменного имени
- arp Просматривает кэш протокола разрешения адресов (ARP) и управляет им
- netstat Просматривает сетевую статистику TCP/IP и таблицу маршрутизации
- route Управляет таблицей маршрутизации TCP/IP.
- traceroute Отслеживает IP-пакеты между маршрутизаторами
- имя хоста Задает имя хоста системы
- host Преобразует имена хостов в IP-адреса и наоборот
- nslookup Преобразует имена хостов в IP-адреса и наоборот
- dig Преобразует имена хостов в IP-адреса и наоборот
- su Переключает вашу учетную запись пользователя на другую учетную запись
- sudo Выполняет задачи от имени другого пользователя с помощью записей в файле /etc/sudoers
- последняя Отображает подробный список предыдущих входов пользователя в систему.
- tcpdump Перехватывает пакеты на сетевом интерфейсе
Системные и прочие команды в macOS
- date Отображает текущую дату и время.
- exit Выход из оболочки (выход)
- echo argument Отображает аргумент на экране терминала
- очистить Очищает экран
- uname option Отображает системную информацию, заданную option; –a указывает всю информацию
- uptime Отображает системную статистику и время безотказной работы.
- cal Выводит календарь на текущий месяц.
- banner Печать баннера ASCII
- iostat Отображает статистику ввода-вывода (I/O) для системы.
Теперь вы знакомы с основами macOS и знаете общие команды. В следующем выпуске я буду обсуждать приложения. Оставайтесь с нами!
Расширьте свои ИТ-навыки с помощью CompTIA Linux+.
Это основные команды терминала macOS, которые необходимо знать для обновления Mac, принудительного выключения не отвечающего Mac, простого поиска различий между файлами и многого другого.
Под капотом macOS X находится оболочка Unix, позволяющая запускать мощные утилиты командной строки. Это упрощает для ИТ-специалистов управление устройствами под управлением macOS, поскольку персонал может входить в систему через SSH и удаленно выполнять команды для выполнения таких действий, как установка программного обеспечения или обновление компьютеров Mac.
Изучите основные советы по работе с командной строкой, которые должен знать каждый пользователь Mac и крупные компании, полагающиеся на компьютеры Mac и управляющие ими. Чтобы использовать эти советы по работе с командной строкой, я использую приложение «Терминал», которое поставляется с каждой копией macOS — ничего лишнего не нужно устанавливать или загружать. Найдите это приложение, открыв Finder и выбрав Приложения | Утилиты. Вы вводите команды в терминал, а затем нажимаете клавишу возврата, чтобы выполнить их.
Как обновить свой Mac с помощью команды терминала softwareupdate
Если вы хотите обновить свой Mac удаленно через SSH или не хотите выполнять шаги по открытию Системных настроек и выполнению обновлений, ваш Mac также можно обновить напрямую через Терминал.
Для этого я использую команду softwareupdate. Эта команда, при передаче двух параметров, загружает и устанавливает обновления.Откройте Терминал и введите следующую команду, чтобы проверить, загрузить и установить все доступные обновления для вашей системы:
При запуске этой команды утилита откроется, проверит наличие обновлений так же, как и в Системных настройках, а затем загрузит и установит их, если какие-либо обновления будут найдены (рис. A). Если после установки потребуется перезагрузка, вы получите предупреждение о том, что перезагрузка необходима для завершения установки.
Рисунок А
Как скопировать вывод команды с помощью команды терминала pbcopy
Как разработчик, я часто открываю файл только для того, чтобы скопировать его содержимое, а затем закрыть файл. С помощью Терминала вы можете легко скопировать содержимое файла (или вывод любой команды), передав вывод команды в pbcopy.
В приведенном ниже примере я передам вывод файла в буфер обмена с помощью команды cat для файла на рабочем столе:
Когда вы запустите эту команду, она выделит (повторит вывод) файл с именем «myfile.txt» на рабочем столе. Этот вывод будет передан в утилиту pbcopy, которая заменит содержимое буфера обмена содержимым этого файла — и все это без необходимости открывать файл, выделять все и копировать.
Обратите внимание: поскольку вы передаете вывод непосредственно в буфер обмена, вы не увидите текст, отраженный в окне терминала — вместо этого он будет записан в буфер обмена, и вы сможете вставить его в любое приложение macOS. р>
Как просмотреть загрузку системы с помощью верхней команды терминала
Для Mac есть удобная утилита под названием Activity Monitor, которая позволяет проверять все виды системных функций и использование ЦП, памяти, диска и т. д. Однако, если вы хотите мгновенно просмотреть основные запущенные элементы на вашем Mac и некоторую более простую статистику об использовании вашей системы, вы можете запустить команду top, введя ее в терминал:
В окне Терминала вы увидите обновленную статистику вашей системы, включая использование памяти, ЦП и диска. Вы также увидите текущий список приложений, наиболее активно использующих ЦП, а также их состояние, используемые порты, память для каждого приложения и многое другое (рис. Б).
Рисунок Б
Команда top показывает в Терминале живое представление со списком приложений с наибольшей загрузкой ЦП. Команда top также отображает статистику памяти, процессора и диска.
Чтобы закрыть это представление, либо закройте окно терминала, либо вернитесь к приглашению командной строки, нажав Ctrl + C, чтобы выйти из верхней команды.
Как накачать Mac кофеином, чтобы он не выключался
Если на вашем Mac выполняется длительный процесс (например, экспорт, автоматизация или другая служба), который не может быть прерван переходом компьютера в спящий режим, вы можете воспользоваться малоизвестной командой Терминала под названием caffeinate: р>
При запуске этой команды вы можете указать период времени в секундах, в течение которого вы не хотите, чтобы ваш компьютер переходил в спящий режим. Затем команда начнет обратный отсчет времени и предотвратит переход вашего Mac в спящий режим в это время.
Вы также можете просто запустить caffeinate, и ваш Mac не будет спать, пока выполняется команда.
Вы можете выйти из любой команды caffeinate досрочно, нажав Control + C (или закрыв окно терминала) и разрешив вашему Mac снова перейти в спящий режим в соответствии с системными настройками.
Как очистить кеш DNS
Вы когда-нибудь сталкивались с ситуацией, когда веб-сайт обновлялся или менялись серверы, но ваш Mac по-прежнему перенаправлял вас на старый сайт? Это часто связано с тем, что кеш DNS на вашем компьютере устарел и не обновляется с новым разрешением домена. К счастью, вы можете легко решить эту проблему, очистив кеш DNS на вашем Mac и разрешив вместо этого искать домены в удаленной службе DNS.
Для этого найдите свою версию macOS ниже и выполните команду для своей версии.
macOS 10.12 (Sierra) и более поздние версии
mac OS X 10.11 (Эль-Капитан)
В этих командах используется ключевое слово sudo. Это означает, что перед выполнением команды вам потребуется ввести пароль своей учетной записи пользователя macOS. Введите свой пароль, когда будет предложено, а затем нажмите клавишу возврата. При запуске эти команды очищают кеш DNS на вашем Mac и начинают повторно заполнять его при всех последующих поисках домена.
Как использовать команду терминала opendiff для поиска различий между файлами
Вы когда-нибудь хотели найти различия между двумя файлами, но прибегали к загрузке приложения или, может быть, просто открывали два файла рядом и наблюдали за изменениями? Есть лучший способ сравнить два файла одного типа, и он встроен в каждый Mac — это команда opendiff.Просто введите следующие команды, поместив расположение двух файлов друг после друга, разделенных пробелом:
В приведенном выше примере мы сравниваем два текстовых файла, расположенных на рабочем столе, один с именем «text1.txt», а другой с именем «text2.txt». Когда вы запустите эту команду, ваш Mac запустит приложение FileMerge (рис. C) с двумя файлами, открытыми рядом, и различия между двумя файлами будут выделены. Это удобно для просмотра таких документов, как контракты и другие текстовые документы.
Рисунок C
Утилита командной строки opendiff запускает приложение File Merge с двумя указанными файлами и позволяет легко сравнить различия.
Как узнать, как долго ваш Mac был включен
Время от времени рекомендуется перезагружать Mac. Поскольку система настолько стабильна, мы часто забываем, как долго загружался компьютер. Вы можете узнать, как долго ваш Mac работает без остановок, с помощью команды uptime в Терминале, введя следующую команду:
Эта простая команда позволит вам узнать количество дней, часов и секунд с момента последней перезагрузки вашего Mac. Это отлично подходит для определения необходимости перезагрузки Mac.
Как принудительно завершить работу macOS
Иногда вы можете столкнуться с проблемой, когда не можете выключить свой Mac; например, возможно, приложение или фоновый процесс зависли и больше не будут успешно завершаться, что приводит к остановке завершения работы с помощью обычных средств выключения вашего Mac.
Есть еще один вариант, и он связан с терминалом. Просто откройте Терминал и введите:
Когда вы введете эту команду в терминал и нажмете клавишу возврата, ваш компьютер немедленно выключится. Если вы по-прежнему не можете перезагрузить его после ввода этой команды, добавьте «sudo» впереди, что потребует вашего пароля администратора, но гарантирует, что ваш Mac будет выключаться каждый раз.
Как использовать команду терминала qlmanage для предварительного просмотра QuickLook
Функция MacOS QuickLook позволяет легко просматривать изображения, PDF-файлы и другие документы в Finder без необходимости открывать приложение документа, нажимая пробел, когда файл выбран в Finder.
Этот же предварительный просмотр QuickLook также доступен через Терминал для любого поддерживаемого файла, введя эту команду:
Приведенный выше пример команды открывает окно QuickLook с файлом, переданным в команду. Это удобно, когда вы используете командную строку для управления файлами.
Еженедельный информационный бюллетень Apple
Если вам нужны советы по iPhone и Mac или последние корпоративные новости Apple, мы предоставим вам все необходимое.
Барт Гисинк (CC BY-SA 2.0)
Графические интерфейсы — это прекрасно, мы не хотели бы жить без них. Но если вы являетесь пользователем Mac или Linux и хотите получить максимальную отдачу от своей операционной системы (и своих нажатий клавиш), вы обязаны ознакомиться с командной строкой Unix. Укажи и щелкни замечательно, когда вам нужно сделать что-то один или два раза. Но если вам нужно повторять эту задачу много раз, вам поможет командная строка.
Командная строка — это окно, позволяющее увидеть всю мощь вашего компьютера. Если вы хотите освободиться от ограничений графического интерфейса или думаете, что программирование или администрирование удаленных компьютеров — это ваше будущее, то изучение командной строки Unix определенно для вас.
[ Управляйте своим Mac с помощью 30 основных советов по командной строке MacOS. | Перейдите к ключевым новостям в области технологических тенденций и прорывов в области ИТ в информационном бюллетене InfoWorld Daily, который представляет собой сводку основных событий в области технологий. ]
Не волнуйтесь, если команды Unix покажутся вам магическими заклинаниями или таинственные внутренности системы кажутся вам недоступными. Их не так сложно выучить, и эта статья даст вам 10 основных команд, необходимых для начала работы. Вскоре эти загадочные строки станут второй натурой.
Основы оболочки
Оболочка командной строки Unix примерно эквивалентна командному окну в Microsoft Windows (cmd или PowerShell). Команды, которые мы рассмотрим ниже, будут работать в любой Unix-подобной системе, включая Linux, Darwin (основу MacOS), FreeBSD и даже Windows с чем-то вроде Git Bash или новой оболочкой Bash в Windows 10. Параметры и вывод различаются. слегка, но у вас не должно возникнуть проблем с их пониманием.
Во-первых, вы должны открыть оболочку, иногда называемую окном терминала. Часто дистрибутивы Unix помещают это в меню «Администрирование» или «Система». В MacOS вы найдете терминал в Приложениях > Утилиты > Терминал. Когда вы запустите его, вы увидите что-то вроде этого:
IDG
Этот экран из MacOS 10.11 типичен для большинства оболочек с графическим интерфейсом. В верхней части окна мы видим тип оболочки, в данном случае Bash (Bourne Again Shell, которая является оболочкой по умолчанию в MacOS и большинстве дистрибутивов Linux), и размер окна. Внутри окна находится приглашение, в данном случае сконфигурированное для отображения имени машины ( Mercury ), имени текущего рабочего каталога (здесь тильда ~ , что является сокращением для домашнего каталога пользователя), имени пользователя и, наконец, символ подсказки ($). Обратите внимание, что ваше приглашение будет меняться, когда вы перемещаетесь по файловой системе или если вы становитесь другим пользователем на своем компьютере (например, root или superuser для запуска административных команд). В подсказке отображается эта информация, так что вы можете легко сказать, где и кто вы находитесь на любом компьютере.
Стоит знать, что существует две основные разновидности оболочки Unix: оболочка Bourne и оболочка C. Bourne и компания произошли от оригинальной Unix AT&T, а оболочка C родом из Калифорнийского университета в Беркли и BSD Unix. Обычно производные оболочки Bourne и C хороши для интерактивной работы на терминале. Стандартная оболочка POSIX, оболочка Korn, — это та оболочка, которую вы хотели бы использовать для написания собственных программ в оболочке, называемых сценариями. Мы используем оболочку Bash для примеров в этом руководстве.
Оболочка
Одним из первых фактов, которые необходимо понять при работе с командной строкой Unix, является то, что оболочка работает в своей собственной среде. Понимание того, как управлять средой оболочки, является важной частью эффективного использования командной строки. Давайте посмотрим на среду с помощью команды env:
Не беспокойтесь о понимании всех переменных среды сейчас, но знайте, что они есть. Вы уже должны распознать несколько переменных. Например, SHELL=/bin/bash говорит нам, что мы используем оболочку Bash. HOME=/Users/nunez указывает расположение домашнего каталога пользователя. Вы можете изменять или создавать переменные среды, и вы будете часто это делать. Вот пример установки переменной окружения с именем FOO и отображения ее значения:
IDG
Как видите, по соглашению мы записываем переменные в верхнем регистре. Обратите особое внимание на то, как мы ссылаемся на переменные среды, когда используем их в командах, с предшествующим $ . $ указывает интерпретатору команд использовать значение переменной. Без $ приведенная выше команда echo просто напечатала бы имя переменной FOO .
Команды Unix
Независимо от того, какую оболочку вы используете, всякий раз, когда вы вводите команду в оболочке, вы запускаете программу Unix. Философия дизайна Unix заключается в создании программ, которые хорошо выполняют одну задачу, и в цепочке (или «конвейере») их вместе для выполнения полезной работы. Давайте рассмотрим простой пример подсчета количества файлов в каталоге /etc (позже мы увидим, как перейти в каталог /etc):
IDG
Эта последовательность команд иллюстрирует две важные концепции: конвейер и параметры. Команда ls (эквивалент команды dir в Windows) отображает содержимое каталога, а wc (счетчик слов) — количество слов. Обратите внимание на вертикальную черту между ними? Это характер трубы. Канал принимает выходные данные первой команды и направляет их в качестве входных данных для второй команды. Вы можете объединить любое количество команд в Unix, соединив одну с другой с помощью конвейеров.
Второе, на что следует обратить внимание, — это параметры, заданные для каждой команды. В Unix параметры традиционно начинаются с одного символа дефиса - . Эти параметры командной строки изменяют поведение команды. В этом примере опция -l команды ls означает вывод содержимого каталога в «длинном» формате, а опция –l команды wc означает подсчет «строк» вместо слов. На английском языке эта команда может быть прочитана так:
Укажите количество строк в текущем каталоге, а затем отправьте их в программу подсчета слов для подсчета количества строк.
Часто эти параметры командной строки переопределяют значения по умолчанию, установленные в среде. Если вы хотите изменить поведение команды на постоянной основе, вы можете установить переменную среды автоматически при входе в систему. Многие команды позволяют комбинировать параметры в одной строке, например, ls -la, но другие этого не делают. . Вы можете узнать обо всех параметрах команды, просмотрев ее руководство или «справочные страницы» (которые мы обсудим ниже).
Изучение и использование параметров командной строки — важная составляющая эффективной работы с командной строкой Unix. Некоторые команды имеют так много параметров, что документация занимает десятки страниц. Не позволяйте этому беспокоить вас сейчас. Часто для выполнения той или иной задачи требуется всего несколько параметров, а многие параметры используются только при написании программ на языке оболочки.
Руководство
После того как вы поймете основы командной строки и среды, мы сможем глубже погрузиться в систему. В первую очередь нужно начать с руководства.
Одним из приятных аспектов Unix является высокое качество документации. Имеется документация для пользователей, системных администраторов и разработчиков программного обеспечения. Вы получаете доступ к документации с помощью команды man. Начнем с чтения руководства к руководству (введите man man в командной строке):
IDG
Руководства разделены на восемь разделов, которые немного различаются в зависимости от того, используете ли вы Unix типа BSD/Linux/Mac или System V. Полезно начать с чтения введения к каждому разделу, и вы можете сделать это с помощью заклинания, такого как man -s 1 intro , что означает заглянуть в раздел 1, чтобы найти страницу руководства под названием «введение»:
IDG
Если вы не уверены, какую команду ищете, вы можете попробовать параметры -f и -k. man –f command сообщит вам функцию команды, если вы знаете ее имя, а man –k hint выведет список имен соответствующих команд на основе одного или нескольких ключевых слов. Оба варианта будут искать во встроенной базе данных (если она настроена; обычно так и есть) и возвращать все совпадения. Например, man –k bzer отобразит страницы руководства, начинающиеся со строки bz :
IDG
Файловая система
С файловой системой Unix связано множество команд, поскольку она является ядром операционной системы. Мы видели один из них ранее: ls , который перечисляет файлы в каталоге:
Команда ls может быть наиболее часто используемой командой из всех, и у нее есть много параметров для настройки вывода. Одна из опций, о которой вы сразу же захотите узнать, это ls -a (перечислить все). Это покажет «точечные» файлы (файлы или каталоги, имена которых начинаются с точки или точки), которые по умолчанию скрыты. Эти файлы или каталоги обычно содержат информацию о конфигурации или файлы журналов для системы Unix. Например, файл .bash_history регистрирует все команды, которые вы вводите в командной строке.
IDG
Другая команда, которая вам понадобится прямо сейчас, — это команда cd, которую вы используете для изменения каталогов. Это похоже на ту же команду в Windows, но с важным отличием. В Unix все диски (устройства) отображаются как один диск. В то время как в Windows у вас могут быть изображения на внешнем жестком диске, который отображается как E:, в Unix этот диск может быть /home/user/pictures. Доступ ко всем файлам в системе Unix осуществляется через путь, начинающийся с / (корневой каталог), и вы можете монтировать разные жесткие диски в разных точках файловой системы в соответствии с вашими потребностями.
Прежде чем вы начнете бродить по файловой системе, позвольте представить еще одну команду, которая вам понадобится: pwd (распечатать рабочий каталог). Поскольку в растущей файловой системе есть много мест, где можно заблудиться, эти команды позволяют быстро определить, где вы находитесь. Давайте переключим каталоги на место, где хранятся файлы конфигурации системы, и проверим наше местоположение:
IDG
Обратите внимание, что вы можете использовать команду cd без аргументов, чтобы быстро вернуться в свой домашний каталог. Еще один совет: ~ можно использовать как ярлык для ссылки на ваш домашний каталог как в оболочке Bash, так и в оболочке C.
Теперь вы знаете, как перемещаться по файловой системе и составлять список содержимого каталогов. Теперь нам нужен способ чтения хранящихся в них файлов. В наши дни большинство систем поставляются с меньшей командой для этого. less отобразит файл страница за страницей и позволит вам перемещаться с помощью команд Vi (нажмите j, чтобы перейти вниз, k, чтобы перейти вверх, h, чтобы получить справку, и q, чтобы выйти из файла).
Давайте посмотрим, что находится в нашем файле /etc/passwd, введя less /etc/passwd :
IDG
В файле passwd перечислены учетные записи пользователей в системе Unix, а также их идентификационные номера пользователей и групп, их домашний каталог и путь к соответствующей команде или оболочке. Однако в MacOS вы найдете только учетные записи системных служб в файле passwd. Это связано с тем, что пользователи-люди настраиваются в разделе «Пользователи и группы» в системных настройках MacOS.
Дисковое пространство
Нехватка места на диске — это постепенный процесс, который может занять годы, но все же может застать вас врасплох. Есть две команды, которые вы можете использовать для проверки свободного места и определения того, какие файлы занимают ваш диск: du (использование диска) и df (диск свободен). Они оба используют опцию -h (удобочитаемую). Чтобы понять, насколько заполнен ваш диск, используйте команду df:
IDG
Сейчас сосредоточьтесь на %used и монтированных столбцах. Это показывает, что мой домашний каталог заполнен на 92 процента, поэтому мне, вероятно, следует очистить его. Но как узнать, где используется все пространство? Вот для чего нужен du:
IDG
Для этого примера я использовал заклинание, которое ограничивает вывод первыми 10 строками. В противном случае du выведет список всех каталогов на машине, что может оказаться слишком сложным для понимания. Из этого списка вы можете увидеть, сколько места занимает каждый каталог. Вы также можете увидеть, как, объединив несколько команд вместе, мы могли бы легко составить сценарий, который будет перечислять 10 лучших каталогов по использованию пространства. Команда, которая нам нужна для сортировки вывода, конечно же, является командой sort.
Поскольку версия sort для MacOS не может обрабатывать удобочитаемый вывод du, я использовал параметр -m для du, чтобы отобразить использование диска в мегабайтах (используйте параметр -g или -k для отображения в гигабайтах или килобайтах). Параметры -n и -r для сортировки сортируют выходные данные в числовом порядке и в обратном порядке, поэтому самые большие каталоги отображаются вверху списка.
Суперпользователи, su и sudo
Связанная команда sudo позволяет вам стать суперпользователем для одной команды. Зачем использовать sudo вместо su? Потому что передовая практика требует, чтобы вы не носились как пользователь root, имея возможность случайно нанести непоправимый вред. Вы всегда будете хотеть делать все, что можете, как обычный пользователь, и становиться суперпользователем только тогда, когда вам это нужно. То, как именно вы получите привилегии суперпользователя, будет зависеть от вашего дистрибутива Unix. Давайте посмотрим, как su работает в MacOS:
IDG
А? Я уверен, что ввел пароль правильно. Здесь произошло то, что мой текущий пользователь, nunez, не имеет разрешения на su. В некоторых системах Unix это означает, что пользователь должен быть в группе wheel, а в других системах (включая MacOS) пользователь должен быть в файле sudoers.
Давайте закончим, добавив nunez в sudoers , что даст вам представление о редактировании файлов в командной строке. Опытные пользователи восхваляют редакторы Emacs и Vi, и я призываю вас попробовать их, но здесь мы будем использовать Nano. Nano прост в освоении и использовании, а в MacOS и многих дистрибутивах Linux он уже установлен.
Читайте также: