5 простых и полезных команд для начала работы с «Терминалом» в OS X
Учимся вместе.
На iPhones.ru почти нет статей об использовании командой строки и Shell script в OS X. Пришло время взяться за исправление этого опущения, так как знания по этим темам будут полезны читателям для более эффективного использования своего Mac.
Это вводная статья серии научит вас пяти самым простым командам, которые помогут вам понять основы работы с «Терминалом», быстро получить первые практические результаты, войти во вкус и заинтересоваться работой с командной строкой.
Приложение «Терминал» находится в папке Программы → Утилиты. Чтобы пробовать примеры из статьи, необходимо запустить его.
1. Узнаем, когда компьютер был перезагружен последний раз
Начнем наши эксперименты с командной строкой со следующей команды:
$ uptime
После ее выполнения нам станут известны:
- Текущее время (на картинке 1:24).
- Сколько дней и часов прошло с момента последней перезагрузки системы (на картинке up 10 days, 21:49).
- Средняя загрузка системы в % за последнюю минуту (на картинке 1,83).
- Cредняя загрузка системы в % за последнии пять минут (на картинке 2,27).
- Cредняя загрузка системы в % за последнии пятнадцать минут (на картинке 2,21).
Обратите внимание, что перед текстом команды стоит знак доллара (так принято во всех справочных материалах по теме). Это — приглашение командной строки. Набирать его не нужно. Оно по умолчанию присутвует сразу после имени активного пользователя.
Есть множество других способов узнать о компьютере больше с помощью командной строки. На эту тему будет вторая статья серии «Собираем информацию о Mac с помощью Терминала».
2. Загружаем файлы из интернета
Чтобы результаты выполнения предыдущих команд не отвлекали вас, нажмите Command + N (появится пустое окно «Терминала»). Попробуем загрузить файл из интернета без использования браузера. Набираем:
$ curl -O https://www.iphones.ru/wp-content/uploads/2016/07/IMG_3688-593x760.jpg
После выполнения открываем корневую папку текущего пользователя и находим там загруженную картинку. Аналогично можно загружать любые файлы, которые открываются через обычный браузер по протоколу http: html-страницы, PDF, mp3 и т.
У утилиты curl есть несколько десятков параметров. C ее помощью можно делать многое. К примеру, загружать файлы на сервер по FTP. О других возможностях утилиты curl и других инструментах для работы с сетью в командной строке читайте в третьем материале серии «Автоматизируем работу в интернете с помощью Терминала».
3. Объединяем несколько файлов в один
Не приходилось ли вам когда-нибудь копировать текст из нескольких файлов в один (к примеру, для реферата)? Этот процесс можно автоматизировать с помощью утилиты cat. Через пробел указываем относительны пути к файлам, которые хотим объединить, а после знака > имя файла, созданного в результате работы утилиты:
$ cat file1.txt file2.txt>file3.txt
Утилита cat появилась еще в первой версии операционной системы UNIX в 1971 году. О других полезных утилитах с полувековой историей будет четвертая статья «Лучшее, что унаследовал Терминал OS X от UNIX».
4. Конвертируем текстовые файлы из одного формата в другой
Чтобы это сделать, надо запустить утилиту textutil с параметром convert, указав желаемый формат и название/путь к файлу:
$ textutil convert docx file3.txt
Textutil умеет конвертировать html, txt, doc, docx, pdf, odt, rtf и т.п. Другим возможностям «Терминала» для автоматизации работы с текстами будет посвящен пятый материал цикла.
5. Перемещаемся по каталогам
В прошлых примерах мы работали с файлами, которые лежат в корневой папке. Но с помощью командной строки можно работать с файлами, расположенными в любом месте. Для этого можно указывать полные пути для каждого файла или сделать активной другую папку с помощью команды cd
$ cd cards
Шестая статья серии будет о служебных командах, которые самостоятельно не несут практической ценности, но их необходимо знать для работы с инструментами, описанных в первых пяти материалах.
Применяем команды сразу для нескольких файлов
Если вам нужно конвертировать один файл, то не совсем удобно использовать для этого командную строку. Другое дело, если надо конвертировать несколько десятков или сотен файлов. Чтобы это сделать, необходимо написать простейший цикл на Shell скрипт. Вот пример кода, который отбирает все txt-файлы в активной папке и конвертирует их в docx:
for i in *.txt; do textutil -convert docx "$i"; done
Аналогичный прием был использован в посте Автоматизируем редактирование изображений в OS X, в котором было рассказано об основах работы с утилитой ImageMagick.
В седьмой статье серии, которая станет связующим звеном между предыдущими материалами, будет рассказано о базовых возможностях языка shell скрипт. Эти знания позволят читателю создавать скрипты разной степени сложности для автоматизации своего труда.