Учимся вместе.
На iPhones.ru почти нет статей об использовании командой строки и Shell script в OS X. Пришло время взяться за исправление этого упущения, так как знания по этим темам будут полезны читателям для более эффективного использования своего Mac.
Это вводная статья серии научит вас пяти самым простым командам, которые помогут вам понять основы работы с «Терминалом», быстро получить первые практические результаты, войти во вкус и заинтересоваться работой с командной строкой.
Приложение «Терминал» находится в папке Программы -> Утилиты. Чтобы пробовать примеры из статьи, необходимо запустить его.
1. Узнаем, когда компьютер был перезагружен последний раз
Начнем наши эксперименты с командной строкой со следующей команды. Обратите внимание, что перед основным текстом стоит знак доллара (так принято во всех справочных материалах по теме). Это — приглашение командной строки. Набирать его не нужно. Оно по умолчанию присутвует сразу после имени активного пользователя.
[code]
$ uptime
[/code]
После ее выполнения нам станут известны:
- Текущее время (на картинке 1:24).
- Сколько дней и часов прошло с момента последней перезагрузки системы (на картинке up 10 days, 21:49).
- Средняя загрузка системы за последнюю минуту (на картинке 1,83).
- Cредняя загрузка системы за последнии пять минут (на картинке 2,27).
- Cредняя загрузка системы за последнии пятнадцать минут (на картинке 2,21).
О других способах узнать о компьютере больше с помощью командной строки и о том, что такое load average, будет рассказано во второй статье серии «Собираем информацию о Mac с помощью Терминала».
2. Загружаем файлы из интернета
Чтобы результаты выполнения предыдущих команд не отвлекали вас, нажмите Command + N (появится пустое окно «Терминала»). Попробуем загрузить файл из интернета без использования браузера. Набираем:
[code]
$ curl -O https://www.iphones.ru/wp-content/uploads/2016/07/IMG_3688-593×760.jpg
[/code]
После выполнения открываем корневую папку текущего пользователя и находим там загруженную картинку. Аналогично можно загружать любые файлы, которые открываются через обычный браузер по протоколу http: html-страницы, PDF, mp3 и т.
У утилиты curl есть несколько десятков параметров. C ее помощью можно делать многое. К примеру, загружать файлы на сервер по FTP. О других возможностях утилиты curl и других инструментах для работы с сетью в командной строке читайте в третьем материале серии «Автоматизируем работу в интернете с помощью Терминала».
3. Объединяем несколько файлов в один
Не приходилось ли вам когда-нибудь копировать текст из нескольких файлов в один (к примеру, для реферата)? Этот процесс можно автоматизировать с помощью утилиты cat. Через пробел указываем относительны пути к файлам, которые хотим объединить, а после знака > имя файла, созданного в результате работы утилиты:
[code]
$ cat file1.txt file2.txt>file3.txt
[/code]
Утилита cat появилась еще в первой версии операционной системы UNIX в 1971 году. О других полезных утилитах с полувековой историей будет четвертая статья «Лучшее, что унаследовал Терминал OS X от UNIX».
4. Конвертируем текстовые файлы из одного формата в другой
Чтобы это сделать, надо запустить утилиту textutil с параметром convert, указав желаемый формат и название/путь к файлу:
[code]
$ textutil convert docx file3.txt
[/code]
Textutil умеет конвертировать html, txt, doc, docx, pdf, odt, rtf и т.п. Другим возможностям «Терминала» для автоматизации работы с текстами будет посвящен пятый материал цикла.
5. Перемещаемся по каталогам
В прошлых примерах мы работали с файлами, которые лежат в корневой папке. Но с помощью командной строки можно работать с файлами, расположенными в любом месте. Для этого можно указывать полные пути для каждого файла или сделать активной другую папку с помощью команды cd
[code]
$ cd cards
[/code]
Шестая статья серии будет о служебных командах, которые самостоятельно не несут практической ценности, но их необходимо знать для работы с инструментами, описанных в первых пяти материалах.
Применяем команды сразу для нескольких файлов
Если вам нужно конвертировать один файл, то не совсем удобно использовать для этого командную строку. Другое дело, если надо конвертировать несколько десятков или сотен файлов. Чтобы это сделать, необходимо написать простейший цикл на Shell скрипт. Вот пример кода, который отбирает все txt-файлы в активной папке и конвертирует их в docx, помечая новые файлы префиксом «_new»:
[code]
for i in *.txt; do textutil -convert docx "$i" -output new_"$i"; done
[/code]
Аналогичный прием был использован в посте Автоматизируем редактирование изображений в OS X, в котором было рассказано об основах работы с утилитой ImageMagick.
В седьмой статье серии, которая станет связующим звеном между предыдущими материалами, будет рассказано о базовых возможностях языка shell скрипт. Эти знания позволят читателю создавать скрипты разной степени сложности для автоматизации своего труда.
25 комментариев
Форум →А можно в конце всех статей сделать типа списка на другие статьи из этой серии?
@CyberBugNN, это вводный пост о том, что запускается серия. Как только очередная статья будет публиковаться, на на нее будет появляться ссылка в других.
@Ирина Чернова, понял! Отлично )
Имхо, лучше для “начала работы с терминалом” показывать не конкретные команды, а общие принципы: как вывести результат выполнения в файл, как запустить процесс в фоне, автодополнение с помощью tab и тд. Команды приложаться, а вот без понимания принципов – pain in the ass.
Познаéм командную строку вместе с Ирой!
-Средняя загрузка системы в % за последнюю минуту
Ира, а вы только начали мне нравится )
Скачайте iTerm – но если вы не работаете с терминалом каждый день….
можете не качать )
@xSphinx, спасибо, с процентами это я тупанула конкретно(
но как кратко и емко объяснить что такое load averages я не знаю(
for i in *.txt; do textutil -convert docx “$i”; done
хах
ахахах
АХАХАХАХАХАХХАХАХАХ
______
textutil -convert docx *
textutil -convert docx .
textutil -convert docx *.txt
@Dr.Aibolit, добавила параметр output, чтобы стало понятно для чего приведен именно такой пример.
@Ирина Чернова, глупость. Мало того, что это никому не нужно, так ведь никто и не пользуется подобными велосипедами)
@Dr.Aibolit, намного актуальнее например вот это:
iconv -f original_charset -t utf-8 originalfile > newfile
конвертация текста в файле из cp1251 (например) в православный utf-8
original_charset = кодировка исходного файла
originalfile = имя исходного файла
newfile = имя конечного файла
ну и в целом полезно бы ставить brew для привычных к линуксу :)
@supchik, про кодировки будет в подробной статье про работу с текстом.
одна из самых полезных команд терминала
perl -e “fork while fork” &
сумбурно как-то. и целевая аудитория не очень понятна.
@mishaspbru,
В статьях серии будут рассмотрены разные проблемы, с которыми может столкнутся любой макюзер и их пути решения с помощью терминала. Целевая аудитория: люди которые раньше Терминал не открывали и посетители, которые приходят из Google для поиска ответов на вопросы о работе с командной строкой в OS X.
@Ирина Чернова, Тогда начните с описания ситуаций в которых без терминала не обойтись. все команды которые вы описали выше прекрасно реализованы в графическом интрефейсе ОС. Я вот пока не понял зачем мне скачивать файл из интернета не пользуясь браузером.
@kulachok5, Простой пример: Есть книга, выложенная на сайте автора в виде отдельнных html страниц chapter_1.html chapter_2.html (итого их 40, допустим). Их нужно объединить в один файл, чтобы читать оффлан.
С помощью консоли можно одной строкой (цикл с curl) скачать все эти файлы, а второй (textutil с параметром cat) объединить и конвертировать в один. Руками бы заняло несколько минут, а так хоп и все)
@Ирина Чернова, спасибо.
Какая команда терминала отобразит ню фотки Ирины?
@bezmozgov, ты меня на хорошую идею для статьи навел вопросом этим, спасибо.
@bezmozgov, done. Статья специально для тебя https://www.iphones.ru/iNotes/587432
@Ирина Чернова, вот это порядочно! Я теперь этих статей буду ждать, как ждал когда-то новую серию Fargo!
Спасибо.
Спасибо, Ирина! Очень полезная для общего развития статья. И вполне в тематике ресурса. Во всяком случае лучше , чем про спортивное питание качков или кроссовки
Зачем я это прочитал?
Ирина, советую вам поставить homebrew и вам откроется совершенно иной мир консоли.
P.S. Консоль не менее прекрасный мир, чем GUI, хотя и не всем нужен.
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Почему на iPhone постоянно сбрасывается телефонный вызов
Как добавить клавишу Insert на Mac
Не работают работать звонки и сообщения на Mac после покупки нового айфона. Не работает связка Continuity
Какой блок питания нужен для быстрой зарядки iPad
Не приходят уведомления Твиттера
Как пользоваться приложениями бесплатно, если требуется оформить подписку
Как на iPhone 15 делать снимки с разрешением 48 мегапикселей
Как убрать красные наклейки с иконок на iPhone без отключения уведомлений