Открыть файл через командную строку mac os

Консоль для маководов: Beyond the GUI

Доброго дня, уважаемые хабравчане-маководы!

Сегодня я расскажу как увеличить эффективность работы в Mac OS X за счёт использования консоли.

Лирическое отступление

Думаю, ни для кого не секрет, что Mac OS является Unix-based системой, но переработанной почти до неузнаваемости. Даже консоль засунули куда подальше — не сразу и найдёшь. И вся система нацелена на использование GUI, при дефолтных настройках даже переключение между кнопками по Tab не работает — без мыши никуда. И тем не менее, Мак — это не только окошки, не только док и лаунчер. Мак это ещё и вся мощь shell скриптов и консоли!

Если Вы пришли из мира M$, то для начала неплохо бы поучить общие команды shell’а, например, по вот этому учебному пособию. Как минимум, нужно усвоить команды перехода по каталогам и способы запуска программ и скриптов.

Если Вы пришли в мир Mac OS из мира Linux’а и FreeBSD, то, скорее всего, знаете как минимум основы shell-скриптинга. Но и для вас в статье может оказаться кое-что интересное, ведь в маке есть уникальные консольные команды, которые так же полезно знать.

Вот о некоторых особенностях маковской консоли далее и пойдёт речь.

Начнём работу


Для начала избавимся от стандартного терминала. Ну, точнее, поставим другой — получше. Я лично предпочитаю iTerm2, который подходит для работы куда лучше системного. Хотя, и у него бывают интересные моменты (см. картинку вверху).

Далее нам могут понадобиться дополнительные инструменты, поэтому устанавливаем MacPorts (хотя, конечно, можно и другой менеджер пакетов). Теперь мы можем ставить нужные консольные утилиты с помощью простых команд. Например, ставим Midnight Commander (он в любом случае может пригодиться), набираем в iTerm2:

После ввода пароля и установки зависимостей и самого mc, можем его запустить, как вы уже догадались, командой mc .

О ужас! Нам понадобятся функциональные клавиши, а они нажимаются только через Fn+F15 , что же делать? Ну как что — лезть в системные настройки и выключать это. Иначе сложно будет с mc работать.

Ещё одно важное замечание: кури мануалы если что-то не понятно, набираем в консоли man команда — и получаем подробное описание команды. (Кстати, для выхода из просмотра мануала надо просто нажать Q).

Продолжаем знакомство с консолью. Команда open

Легко можно заметить, что mc показывает куда больше файлов и папок, чем Finder. Конечно, можно поставить хак для него, чтобы он отображал такие файлы, но не все это любят. Так что остаётся лишь пользоваться Cmd+Shift+G и вводить вручную имя папки. Но данный способ не особо удобен: нет автокомплита, нет возможности видеть скрытые файлы. Теперь вернёмся к терминалу. В Mac OS X есть замечательнейшая команда open , которая действует так, как будто пользователь сделал даблклик на файле или папке в Finder — открывает файл, бандл или ссылку в связанной программе, открывает папку в Finder’е. Вот простой пример работы с этой командой: заходим с помощью mc в скрытую папку (например, /etc/) и набираем:

Wuala! Файндер отобразил нам нашу системную папку! Но это ещё не всё, ведь скрытые файлы всё ещё не видны. Для примера, откроем наш .profile :

И — опа! — скрытый файл открылся в TextEdit! Всё предельно просто.

Пара слов о бандлах

Это всем известно, но на всякий случай повторю: обычные программы в Mac OS X на самом деле являются папками с расширением .app и особым образом устроенным содержимым. Убедиться в этом легко: открываем в Finder папку /Applications/ и делаем Ctrl+Click (либо Right-Click , если хотите) на любой программе и выбираем «Показать содержимое пакета».

Из консоли это так же очень хорошо видно: mc отображает эти программы именно как папки. И как же запустить из консоли GUI-программу, спросите вы? Очень просто, есть даже два способа.

Читайте также:  Clone remover pro для windows 10

Способ первый, простейший:

Программа будет запущена и консоль будет свободна для дальнейших действий.

Способ второй, интересный:

Программа будет запущена, но консоль не освобидится — она будет ждать завершения программы и выводить всё, что программа захочет вывести в неё. То есть, таким образом можно посмотреть рабочий лог некоторых программ.

Ещё одно очень важное различие между этими двумя методами: второй позволяет запустить два экземпляра программы, в то время как первый активирует уже запущенную, буде такая имеется. Так что через консоль можно решить и эту проблему (хотя, скорее фичу) макоси: через Finder, док и лаунчер запустить два экземпляра программы нельзя, а вот из консоли — пожалуйста, хоть двадцать два.

Скрипт?

Расскажу вкратце что из себя представляет shell-скрипт. По сути — это обычный текстовый файл, содержащий серию команд для выполнения. Самый простой скрипт просто запускает последовательно все команды. Скрипты посложнее могут иметь условия, циклы и функции, то есть, скрипт может быть весьма большой и сложной программой. Основной плюс таких скриптов — на их службе вся мощь консольных утилит из мира unix, что с лихвой компенсирует бедность языковых конструкций. Приведу простой пример скрипта, который преобразует все файлы .png в текущей директории, уменьшив их размер до 200 пикселей в ширину или высоту.

Пример простейший, но он демонстрирует главное: в скриптах сокрыта великая сила.

Скрипты AppleScript

В Mac OS X имеется несколько встроенных механизмов по автоматизации действий. Один из очень распространённых — AppleScript, для которого есть и графический редактор-запускатор. Но использовать такие скрипты можно и из консоли, для этого есть особая утилита — osascript . Использовать её можно так:

Не буду углубляться в AppleScript, он заслуживает отдельной статьи, и даже не одной. Так что рекомендую почитать справку или гугл по нему.

Главное: Вы можете комбинировать shell-скрипты со скриптами AppleScript, чтобы добиться максимальной гибкости в работе! К примеру, я использую такие вот смешанные скрипты для автоматической стилизации образа диска: сам диск создаётся с помощью shell (см. ниже), а фон и расположение элементов в образе задаётся с помощью AppleScript.

Есть ещё Automator, но он совсем уж GUI-шный, так что в данной статье его рассматривать бессмысленно. Он, конечно, полезный, но до мощи консоли не дотягивает.

Кратко о других полезных командах Mac OS X

Полный (ну, почти) список уникальных для макоси команд можно найти в одной хорошей статье (хотя сведения там немного устарели), я же вкратце расскажу о наиболее интересных.

Для работы с образами дисков имеется консольная утилита hdiutil . Пара примеров работы с ней:

Более подробно про возможности можно узнать из man hdiutil .

Если Вы — разработчик программ для макоси, то наверняка знаете о такой замечательной вещи, как Info.plist, да и вообще о plist’ах. Так вот, есть очень удобная утилита, позволяющая конвертировать .plist в .bplist, то есть, в более быстрый и лёгкий бинарный формат плиста.

Если хотите позаниматься ерундой, то можно из консоли проговорить любой текст. Для этого есть утилита say .

Так же можно задавать голос, которым мак будет с нами говорить:

Одна беда — по-умолчанию говорит эта штука только по-английски.

Теперь снимем скриншот командой из консоли.

Так же из консоли можно конвертировать текст между различными форматами. Например, можно переконвертировать .doc файл в HTML:

Так же textutil умеет преобразовывать кодировки.

Для изменения системных (и не только) настроек, можно использовать команду defaults . Используем её во благо! Включим наконец отображение скрытых файлов и папок в Finder!

Файндер автоматически перезапустится и теперь будет отображать скрытые файлы и папки! Но опять таки, это не всем нравится, так давайте это выключим, пока родителикто-нибудь не испугался или не удалил нужных файликов. Для сокрытия в уже указанной команде поставьте 0 вместо 1. Ну и для примера, ссылка на статью, где описано много твиков с помощью этой команды.

Что-то типа заключения

Ну что ж, мы разобрали некоторые интересные возможности консоли в Mac OS X. Статья, разумеется, не претендует на полноту и является, скорее, «заманухой» для вовлечения маководов в shell-скриптинг да и вообще в консоль.

Читайте также:  Аналог acronis true image для linux

Источник

Основы работы с командной строкой (Терминалом) на Mac OS X

  • написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
  • это одна из статей из нашего «Самоучителя по Java»

Привет! Это статья для тех, кто только начинает знакомство с командной строкой.

Сегодня мы рассмотрим основные команды в среде MacOS.

Где найти командную строку

Есть несколько способов:

  • Вызовите окно поиска (Cmd + Пробел, на Вашем устройстве может быть установлена другая комбинация), и напишите «Терминал» или «Terminal»:

  • Другой вариант — найти Терминал в Launchpad:

Там, в папке «Другие», можно найти значок Терминала:

Теперь, если мы нажмем на значок, откроется такое окно:

Обратите внимание: это стандартная программа для работы в командной строке. При желании, Вы можете установить и какую-нибудь другую программу — например, iTerm, Terminator и т.д.

Основные команды:

Давайте рассмотрим каждую из них по отдельности.

Команда ls

ls — расшифровывает как «List files in the directory», что переводится как «перечислить все файлы в папке» или «вывести на экран список файлов в папке». Синтаксис команды такой:

ls

Итак, если Вы только открыли терминал, Вы автоматически попадете в так называемый «home directory» — «исходный каталог», или «хомяк» — сленг от слова»home» 🙂 Обычно это папка, которая называется так же как и имя пользователя. Давайте откроем терминал и напишем команду ls:

Если нажать Enter, то мы увидим:

У Вас исходный каталог может выглядеть по-другому — например, у Вас не будет папок 42FileChecker, если у Вас не будет установлен Adobe Creative Cloud, — не будет папки Creative Cloud Files, и т.д.

Команда cd

cd — расшифровывается как «Change directory», что переводится как «сменить папку» или «перейти в другую папку». Синтаксис такой:

cd

Например, как Вы помните, мы только открыли терминал и сейчас находимся в home directory:

Мы можем зайти в одну из этих папок. Давайте, например зайдем в папку Desktop (Рабочий стол). Для этого, напишем:

cd Desktop

Если мы нажмем Enter, мы перейдем на Рабочий стол. Сейчас, у нас на Рабочем столе находится только папка «Files»:

И если мы теперь вызовем команду ls, увидим только папку Files — то же самое, что видим на своем Рабочем столе:

Чтобы выйти обратно, напишем:

cd ..

То-есть мы пишем «cd«, а потом две точки:

Нажмем Enter. Теперь, давайте еще раз вызовем ls:

Как видите, мы опять находимся в home directory.

Команда pwd

  • pwd — «present working directory»

pwd — расшифровывает как «Present working directory», что переводится как «текущая рабочая директория». То есть команда pwd показывает, в какой сейчас папке мы находимся. Синтаксис такой:

pwd

Например, у нас имя пользователя «Maria». Поэтому, наша домашняя папка так и называется:

Опять же, если мы зайдем в папку Desktop:

Если мы сейчас напишем pwd, то увидим, что мы находимся папке «Desktop«:

Команда mkdir

mkdir — расшифровывается как «Make directory», что переводится как «создать папку». Синтаксис такой:

mkdir

Например, сейчас мы находимся на Рабочем столе. Как Вы помните, в этой папке у нас только одна папка — Files:

Теперь, давайте создадим новую папку — например, с названием «NewDirectory»:

Теперь, если мы вызовем команду «ls», то увидим, что у нас уже две папки:

Для большей наглядности, мы можем открыть папку в Finder:

Команда open

«Open» переводится как «открыть». С помощью этой команды мы можем открыть что угодно — папку или файл. Синтаксис такой:

open

Например, сейчас мы находимся в папке Desktop. Давайте откроем папку NewDirectory. Для этого мы пишем:

open NewDirectory

Нажмем Enter. Тогда мы увидим, что откроется папка «NewDirectory» в Finder:

Чтобы открыть текущую папку, мы пишем:

open .

Здесь точка означает папку, в которой мы находимся. Например, давайте вернемся в папку home directory:

Теперь, мы находимся в папку, которая называется именем пользователя:

Напишем «open .«:

Отлично! Точно так же мы можем открывать и файлы. Например, создадим новый текстовый файл на Рабочем столе:

Читайте также:  Открыт службы windows 10

Теперь, зайдем на Рабочий стол:

open text.txt

Тогда, файл будет открыть в программе по умолчанию:

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

Теперь, мы будем находиться в папке с именем пользователя:

Давайте откроем файл text.txt отсюда. Напишем путь к файлу:

open Desktop/text.txt

Получим такой же результат, как и в первый раз:

Точно так же, мы можем открыть файл и если он находится в папке «выше». Например, зайдем в папку NewDirectory:

Мы можем открыть файл, если напишем следующее:

open ../text.txt

Увидим, что файл, как и раньше, открылся в программе TextEdit:

Но мы и сами можем выбрать приложение, в котором следует открыть файл. Синтаксис такой:

open -a

Например, давайте откроем файл с помощью приложения Safari. Пишем:

open -a Safari ../text.txt

Если нажать Enter , увидим что файл открылся в браузере:

Команда touch

С английского «touch» переводится как «прикоснуться», «потрогать» 🙂 Эта команда позволяемое нам создать пустой файл. Синтаксис такой:

touch

Например, сейчас мы находимся в NewDirectory на Рабочем столе. Мы можем проверить это с помощью команды pwd, которую мы выучили раньше:

Теперь, давайте создадим файл. Мы можем сделать что угодно — изображение (img.jpg), текстовый файл (file.txt) или звуковой файл (sound.waw). Естественно, все эти файлы будут пустыми.

touch image.jpg

Теперь, в папке NewDirectory появится файл image.jpg. Давайте откроем папку с помощью команды open и посмотрим:

Отлично! Еще, мы можем создать несколько файлов одной командой. Их имена можно указать через пробел:

touch file1 file2 file3 .

Например, давайте сделаем несколько файлов с расширением .txt. Напишем в командной строке:

touch 1.txt 2.txt 3.txt

Теперь, если мы откроем папку NewDirectory, мы увидим наши новые файлы:

Команда mv

mv — расфшифровывается как»Move», что переводится как «переместить», «передвинуть». С помощью этой команды мы можем:

  • переместить файл из одной папки в другую
  • переименовать файл

Итак, чтобы переместить файлы из одной папки в другую, мы пишем следующее:

mv

Например, давайте переместим файл image.jpg из папки NewDirectory на Рабочий стол (т.е. на уровень выше). Для этого, пишем:

mv image.jpg /Users/Maria/Desktop

Как видите, мы указали абсолютный путь. То-есть это путь не относительно нашей текущей папки («относительный» путь), а путь по которому папка находится в системе. Это можно сравнить с адресом. Можно сказать, что дом находится «на соседней улице» (это будет относительный путь), а можно что он находится по адресу. например, Ул. Уличная 123 (это будет абсолютный путь).

Таким образом, наш файл переместиться на Рабочий стол:

Как видите, теперь в папке нет изображения. Вместо этого, оно находится на Рабочем столе:

Давайте теперь вернем файл обратно. Напишем:

mv ../image.jpg .

Как видите, мы берем файл image.jpg, который находится на уровень выше (../image.jpg), и переедаем его в папку, в которой мы находимся сейчас (.).

Теперь, файл image.jpg опять в папке NewDirectory:

Кроме того, мы можем перемещать несколько файлов одновременно. Синтаксис такой:

mv file1 file2 file3.

Итак, давайте переместим все файлы из папки NewDirectory на Рабочий стол. И в этот раз, мы используем не абсолютный путь, а относительный. Пишем следующее:

mv image.jpg 1.txt 2.txt 3.txt ./..

Точно так же, мы могли бы написать:

mv * ./..

где * означает все файлы в папке.

Вот теперь мы можем увидеть, что все указанные нами файлы переместились на Рабочий стол:

Теперь, давайте посмотрим как можно переименовать файл. Синтаксис такой:

mv

Например, давайте поменяем название файла с image.jpg на picture.jpg. Для этого нам нужно перейти в папку Рабочий стол с помощью команды cd, а потом написать:

mv image.jpg picture.jpg

Если мы теперь откроем папку Рабочий стол, то увидим следующее:

Отлично! Теперь файл называется по-другому — picture.jpg.

Вот и все — теперь Вы знаете основные команды для работы с командной строкой на Mac OS.

Спасибо, что были с нами! 🙂

Надеемся, что наша статья была Вам полезна. Можно записаться к нам на курсы по Java на сайте.

Источник

Оцените статью