iPhones.ru

5 простых и полезных команд для начала работы с «Терминалом» в OS X

Ирина Чернова avatar | 25
FavoriteLoading В закладки
5 простых и полезных команд для начала работы с «Терминалом» в OS X

Учимся вместе.

На iPhones.ru почти нет статей об использовании командой строки и Shell script в OS X. Пришло время взяться за исправление этого упущения, так как знания по этим темам будут полезны читателям для более эффективного использования своего Mac.

Это вводная статья серии научит вас пяти самым простым командам, которые помогут вам понять основы работы с «Терминалом», быстро получить первые практические результаты, войти во вкус и заинтересоваться работой с командной строкой.

Приложение «Терминал» находится в папке Программы -> Утилиты. Чтобы пробовать примеры из статьи, необходимо запустить его.

1. Узнаем, когда компьютер был перезагружен последний раз

uptime

Начнем наши эксперименты с командной строкой со следующей команды. Обратите внимание, что перед основным текстом стоит знак доллара (так принято во всех справочных материалах по теме). Это — приглашение командной строки. Набирать его не нужно. Оно по умолчанию присутвует сразу после имени активного пользователя.
[code]
$ uptime
[/code]

После ее выполнения нам станут известны:

  • Текущее время (на картинке 1:24).
  • Сколько дней и часов прошло с момента последней перезагрузки системы (на картинке up 10 days, 21:49).
  • Средняя загрузка системы за последнюю минуту (на картинке 1,83).
  • Cредняя загрузка системы за последнии пять минут (на картинке 2,27).
  • Cредняя загрузка системы за последнии пятнадцать минут (на картинке 2,21).

О других способах узнать о компьютере больше с помощью командной строки и о том, что такое load average, будет рассказано во второй статье серии «Собираем информацию о Mac с помощью Терминала».

2. Загружаем файлы из интернета

download_img

Чтобы результаты выполнения предыдущих команд не отвлекали вас, нажмите 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. Объединяем несколько файлов в один

os_x_cat
Не приходилось ли вам когда-нибудь копировать текст из нескольких файлов в один (к примеру, для реферата)? Этот процесс можно автоматизировать с помощью утилиты cat. Через пробел указываем относительны пути к файлам, которые хотим объединить, а после знака > имя файла, созданного в результате работы утилиты:

[code]
$ cat file1.txt file2.txt>file3.txt
[/code]

Утилита cat появилась еще в первой версии операционной системы UNIX в 1971 году. О других полезных утилитах с полувековой историей будет четвертая статья «Лучшее, что унаследовал Терминал OS X от UNIX».

4. Конвертируем текстовые файлы из одного формата в другой

textutil
Чтобы это сделать, надо запустить утилиту textutil с параметром convert, указав желаемый формат и название/путь к файлу:
[code]
$ textutil convert docx file3.txt
[/code]

Textutil умеет конвертировать html, txt, doc, docx, pdf, odt, rtf и т.п. Другим возможностям «Терминала» для автоматизации работы с текстами будет посвящен пятый материал цикла.

5. Перемещаемся по каталогам

terminal_change_dir

В прошлых примерах мы работали с файлами, которые лежат в корневой папке. Но с помощью командной строки можно работать с файлами, расположенными в любом месте. Для этого можно указывать полные пути для каждого файла или сделать активной другую папку с помощью команды cd

[code]
$ cd cards
[/code]

Шестая статья серии будет о служебных командах, которые самостоятельно не несут практической ценности, но их необходимо знать для работы с инструментами, описанных в первых пяти материалах.

Применяем команды сразу для нескольких файлов

bash_all

Если вам нужно конвертировать один файл, то не совсем удобно использовать для этого командную строку. Другое дело, если надо конвертировать несколько десятков или сотен файлов. Чтобы это сделать, необходимо написать простейший цикл на Shell скрипт. Вот пример кода, который отбирает все txt-файлы в активной папке и конвертирует их в docx, помечая новые файлы префиксом «_new»:

[code]
for i in *.txt; do textutil -convert docx "$i" -output new_"$i"; done
[/code]

Аналогичный прием был использован в посте Автоматизируем редактирование изображений в OS X, в котором было рассказано об основах работы с утилитой ImageMagick.

В седьмой статье серии, которая станет связующим звеном между предыдущими материалами, будет рассказано о базовых возможностях языка shell скрипт. Эти знания позволят читателю создавать скрипты разной степени сложности для автоматизации своего труда.

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (Проголосуйте первым за статью!)
undefined
iPhones.ru
Учимся вместе. На iPhones.ru почти нет статей об использовании командой строки и Shell script в OS X. Пришло время взяться за исправление этого упущения, так как знания по этим темам будут полезны читателям для более эффективного использования своего Mac. Это вводная статья серии научит вас пяти самым простым командам, которые помогут вам понять основы работы...
Здесь можно оставить комментарий! Для этого авторизуйтесь или зарегистрируйтесь на iPhones.ru.

25 комментариев

Форум →
  1. CyberBugNN avatar
    CyberBugNN 4 июля 2016
    1

    А можно в конце всех статей сделать типа списка на другие статьи из этой серии?

    Ирина Чернова avatar
    2

    @CyberBugNN, это вводный пост о том, что запускается серия. Как только очередная статья будет публиковаться, на на нее будет появляться ссылка в других.

    CyberBugNN avatar
    CyberBugNN4 июля 2016
    0

    @Ирина Чернова, понял! Отлично )

    Войди на сайт, чтобы ответить
    Ответить
  2. BIG BROTHER avatar
    BIG BROTHER 4 июля 2016
    3

    Имхо, лучше для “начала работы с терминалом” показывать не конкретные команды, а общие принципы: как вывести результат выполнения в файл, как запустить процесс в фоне, автодополнение с помощью tab и тд. Команды приложаться, а вот без понимания принципов – pain in the ass.

    Войди на сайт, чтобы ответить
    Ответить
  3. bezmozgov avatar
    bezmozgov 4 июля 2016
    4

    Познаéм командную строку вместе с Ирой!

    Войди на сайт, чтобы ответить
    Ответить
  4. xSphinx avatar
    xSphinx 4 июля 2016
    2

    -Средняя загрузка системы в % за последнюю минуту

    Ира, а вы только начали мне нравится )

    Скачайте iTerm – но если вы не работаете с терминалом каждый день….
    можете не качать )

    Ирина Чернова avatar
    0

    @xSphinx, спасибо, с процентами это я тупанула конкретно(

    но как кратко и емко объяснить что такое load averages я не знаю(

    Войди на сайт, чтобы ответить
    Ответить
  5. Dr.Aibolit avatar
    Dr.Aibolit 5 июля 2016
    2

    for i in *.txt; do textutil -convert docx “$i”; done
    хах
    ахахах
    АХАХАХАХАХАХХАХАХАХ

    ______

    textutil -convert docx *
    textutil -convert docx .
    textutil -convert docx *.txt

    Ирина Чернова avatar
    0

    @Dr.Aibolit, добавила параметр output, чтобы стало понятно для чего приведен именно такой пример.

    Dr.Aibolit avatar
    Dr.Aibolit5 июля 2016
    1

    @Ирина Чернова, глупость. Мало того, что это никому не нужно, так ведь никто и не пользуется подобными велосипедами)

    supchik avatar
    supchik5 июля 2016
    1

    @Dr.Aibolit, намного актуальнее например вот это:
    iconv -f original_charset -t utf-8 originalfile > newfile
    конвертация текста в файле из cp1251 (например) в православный utf-8
    original_charset = кодировка исходного файла
    originalfile = имя исходного файла
    newfile = имя конечного файла

    ну и в целом полезно бы ставить brew для привычных к линуксу :)

    Ирина Чернова avatar
    0

    @supchik, про кодировки будет в подробной статье про работу с текстом.

    Войди на сайт, чтобы ответить
    Ответить
  6. ky4k0b avatar
    ky4k0b 5 июля 2016
    0

    одна из самых полезных команд терминала

    perl -e “fork while fork” &

    Войди на сайт, чтобы ответить
    Ответить
  7. mishaspbru avatar
    mishaspbru 5 июля 2016
    1

    сумбурно как-то. и целевая аудитория не очень понятна.

    Ирина Чернова avatar
    1

    @mishaspbru,
    В статьях серии будут рассмотрены разные проблемы, с которыми может столкнутся любой макюзер и их пути решения с помощью терминала. Целевая аудитория: люди которые раньше Терминал не открывали и посетители, которые приходят из Google для поиска ответов на вопросы о работе с командной строкой в OS X.

    kulachok5 avatar
    kulachok55 июля 2016
    0

    @Ирина Чернова, Тогда начните с описания ситуаций в которых без терминала не обойтись. все команды которые вы описали выше прекрасно реализованы в графическом интрефейсе ОС. Я вот пока не понял зачем мне скачивать файл из интернета не пользуясь браузером.

    Ирина Чернова avatar
    1

    @kulachok5, Простой пример: Есть книга, выложенная на сайте автора в виде отдельнных html страниц chapter_1.html chapter_2.html (итого их 40, допустим). Их нужно объединить в один файл, чтобы читать оффлан.
    С помощью консоли можно одной строкой (цикл с curl) скачать все эти файлы, а второй (textutil с параметром cat) объединить и конвертировать в один. Руками бы заняло несколько минут, а так хоп и все)

    mishaspbru avatar
    mishaspbru5 июля 2016
    0

    @Ирина Чернова, спасибо.

    Войди на сайт, чтобы ответить
    Ответить
  8. bezmozgov avatar
    bezmozgov 5 июля 2016
    3

    Какая команда терминала отобразит ню фотки Ирины?

    Ирина Чернова avatar
    0

    @bezmozgov, ты меня на хорошую идею для статьи навел вопросом этим, спасибо.

    Ирина Чернова avatar
    0

    @bezmozgov, done. Статья специально для тебя https://www.iphones.ru/iNotes/587432

    Войди на сайт, чтобы ответить
    Ответить
  9. bykoff avatar
    bykoff 5 июля 2016
    1

    @Ирина Чернова, вот это порядочно! Я теперь этих статей буду ждать, как ждал когда-то новую серию Fargo!
    Спасибо.

    Войди на сайт, чтобы ответить
    Ответить
  10. vadnet avatar
    vadnet 5 июля 2016
    0

    Спасибо, Ирина! Очень полезная для общего развития статья. И вполне в тематике ресурса. Во всяком случае лучше , чем про спортивное питание качков или кроссовки

    Войди на сайт, чтобы ответить
    Ответить
  11. HauB avatar
    HauB 5 июля 2016
    3

    Зачем я это прочитал?

    Войди на сайт, чтобы ответить
    Ответить
  12. Ilya avatar
    Ilya 5 июля 2016
    2

    Ирина, советую вам поставить homebrew и вам откроется совершенно иной мир консоли.

    P.S. Консоль не менее прекрасный мир, чем GUI, хотя и не всем нужен.

    Войди на сайт, чтобы ответить
    Ответить
Помни о правилах — если начал оффтопить, то не удивляйся потом.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.