Использование текстовых редакторов командной строки в Терминале на Mac
Для редактирования файла с обычным текстом в Терминале можно использовать текстовый редактор командной строки.
Для выполнения стандартных действий удобнее всего использовать один из текстовых редакторов, входящих в состав macOS. Если Вы хотите использовать графический текстовый редактор, используйте TextEdit (в Launchpad). В противном случае используйте один из редакторов командной строки, входящих в состав macOS.
Nano. Редактор nano — это простой редактор командной строки. Он хорошо подойдет для знакомства с редакторами командной строки, так как содержит удобную и понятную экранную справку. См. man-страницу редактора nano.
Vim. Редактор vim — это текстовый редактор, совместимый с vi . Он содержит множество мощных функций для перемещения по документу, а также поиска и редактирования документов. Можно легко освоить базовое редактирование, а при желании углубиться в изучение дополнительных функций. Для доступа к большинству функций используются сочетания клавиш, которые вызывают определенные действия. Редактор vim или послуживший образцом для его создания редактор vi можно встретить в большинстве операционных систем на основе UNIX. См. man-страницу редактора vim.
Если Вы только знакомитесь с командной строкой и не планируете часто использовать ее для редактирования, скорее всего, Вам лучше выбрать nano . Если предполагается использовать командную строку часто, возможно, стоит изучить редактор vim . В их основе заложены разные философии проектирования, так что рекомендуется некоторое время поработать с каждым из этих редакторов, чтобы определить, какой из них лучше подходит лично Вам.
Чтобы в приложении «Терминал» на Mac вызвать редактор командной строки, необходимо ввести имя редактора, пробел, а затем имя файла, который Вы хотите открыть. Чтобы создать новый файл, необходимо ввести имя редактора, пробел, а затем имя пути файла.
Источник
Как запустить программу C в Mac OS X с помощью терминала?
Я новичок в C. Вот мое «Привет, мир!» программа.
После того, как я пытаюсь запустить его с помощью терминала, он говорит:
9 ответов
Сначала сохраните вашу программу как program.c .
Теперь вам нужен компилятор, поэтому вам нужно перейти в App Store и установить Xcode , который является компилятором и инструментами разработки Apple. Как найти App Store ? Выполните «Поиск в центре внимания» , набрав ⌘ Пробел , начните вводить App Store и нажмите Enter , когда угадывает правильно.
Магазин приложений выглядит так:
Xcode в App Store выглядит так:
Затем вам нужно установить инструменты командной строки в Терминал . Как запустить Терминал ? Вам нужно выполнить еще один «Поиск в центре внимания» , что означает, что вы набираете ⌘ Пробел , начинаете вводить Terminal и нажимаете Введите , когда он угадает Terminal .
Теперь установите инструменты командной строки следующим образом:
Затем вы можете скомпилировать свой код, просто запустив gcc , как показано в следующей строке, без необходимости запускать большой уродливый графический интерфейс разработки программного обеспечения под названием Xcode :
Примечание . В более новых версиях OS X вы должны использовать clang вместо gcc , например:
Затем вы можете запустить его с помощью:
Если ваша программа написана на C ++, вы, вероятно, захотите использовать одну из этих команд:
1) Сначала вам нужно установить компилятор GCC для Mac (погуглите и установите из сети)
2) Запомните путь, по которому вы храните файл C
3) Зайдите в Терминал и установите путь
Например, если вы сохранили в новой папке ProgramC в папке Document
4) Теперь вы можете видеть, что находитесь в папке, в которой вы сохранили свою программу C (позвольте вам сохранить свою программу как Hello.c)
5) Теперь скомпилируйте вашу программу
Ответ — chmod 755 привет — он делает файл исполняемым . Забавно, так что на него никто не ответил. У меня была такая же проблема на MacOS, которая теперь решена.
Nano hello.c make hello chmod 755 hello Затем вы запускаете его ./hello
Clang —version Apple LLVM версии 8.0.0 (clang-800.0.42.1) Цель: x86_64-apple-darwin15.6.0
Ничего не установилось, nano make (clang) chmod — все уже внутри MacOS
Для компиляции программы c в вашей последней версии macOS просто введите в терминал следующее после сохранения файла с расширением .c и по достижении пути, по которому файл сохранен:
После того, как вы проверили все ошибки после компиляции (если таковые имеются), введите следующее для выполнения кода:
Эти команды протестированы на macOS Mojave и работают отлично, ура!
Чтобы скомпилировать c-программу в macos, просто выполните следующие шаги
Используя команду cd в терминале, перейдите в папку с программой c
тогда введите команду ниже
сделать имя файла
затем введите
./filename
введите в терминале: nano ; который является текстовым редактором, доступным для терминала. когда вы это сделаете. что-то вроде этого могло бы появиться.
здесь вы можете ввести свою программу C
введите control(^) + x ->, что означает выход.
сохраните файл, набрав y , чтобы сохранить файл
напишите имя файла; например helloStack.c (не забудьте добавить .c )
когда он появится, введите gcc helloStack.c
«C-программу» запускать не следует. Он предназначен для компиляции в «исполняемую» программу, которую затем можно запустить с вашего терминала. Для этого вам понадобится компилятор.
О, и ответ на ваш последний вопрос («Почему?») Заключается в том, что файл, который вы пытаетесь выполнить, не имеет установленных прав на исполняемый файл (что компилятор обычно делает автоматически с двоичным файлом, что позволяет сделать вывод, что вы пытались для запуска исходного кода как скрипта, отсюда и подсказка при компиляции.)
Работа в 2019 году По умолчанию вы можете скомпилировать свой name.c с помощью терминала
И если вам нужно запустить просто напишите
Сначала убедитесь, что вы исправили свою программу:
Сохраните файл как HelloWorld.c и введите в терминале:
После этого просто запустите исполняемый файл следующим образом:
Источник
Platypus и Packages. Создаём и устанавливаем программы на macOS
Очень часто бывает необходимо собрать код, написанный на Python, в приложение для Windows, Linux или OS X. Да, для этого действительно существует множество пакетов, таких как кросс-платформенные cx_Freeze и PyInstaller, а также обособленных py2exe и py2app. Но для macOS существует возможность избежать возни с созданием установочного файла.
Нужно сказать, что в отличии от Windows, программа на MacOS это просто папка, с расширением .app а вот исталлятор имеет расширение .pkg.
Создаём программу
Для создания программы из скрипта, используем программу Platypus. Это бесплатная, open-source программа, распространяемая под BSD лицензией. Вот так выглядит единственное главное окно этой программы:
- В поле App Name указываем имя приложения, это то как программа будет отображаться в списке программ и Launchpad-е.
- В выпадающем списке Script Type указывается язык скрипта, в нашем случае это Python, можно указать путь к компилятору, если, например, на компьютере их несколько.
- В поле Script Path можно создать свой новый скрипт (кнопка «+ New»), а можно выбрать уже готовый скрипт (кнопка «Select Script»).
- В выпадающем списке Interface можно выбрать тип приложения, в случае если у вас консольное приложение, не требующее ввода текста пользователем, рекомендую выбрать Text Window.
- Слева от вышеперечисленных полей, есть поле выбора иконки приложения, в составе программы идёт несколько стандартных иконок, но можно выбрать свою.
- Следующий блок полей отвечает за информацию о программе, которая предоставляется в стандартном меню «О программе». Это уникальный идентификатор, автор программы и её версия. Кроме этого можно указать свойства для запуска, например запуск с правами администратора или работа в бэкграунде.
- И второй по важности блок, это дополнительные файлы. Так как в MacOS приложение — это не только исполняемый файл, но и все необходимые для работы приложения файлы и папки. Нажатием на кнопку «+» можно выбрать как и отдельные файлы, так и целые папки.
- После заполнения всех полей, кнопка «Create App» становится активной, нажимаем её и получаем на выходе симпатичный файлик с расширением .app.
Мы собрали приложение, которое запуститься на любом компьютере под управлением macOS, но этого не достаточно для удобного распространения и установки конечным пользователем. Поэтому создадим для нашего приложения установочный пакет.
Создаём инсталлятор
Для создания установочных пакетов существует несколько программ, мы будем использовать Packages.
При открытии программы Packages нам предлагается выбрать тип установочного пакета, выбираем Distibution, так как Raw Package необходим тогда, когда нужно установить файлы в нестандартное расположение.
В следующем окне выбираем имя и расположение проекта. Имеет смысл в качестве расположения указывать рабочую папку проекта. После создания проекта открывается следующее окно, с большим количеством вкладок.
Пробежимся по ним:
- Settings — первая вкладка, здесь можно задать имя приложения, рабочую директорию, а так же необходимые условия для установки.
- Presentations — на этой вкладке устанавливается внешний вид самого пакета установки, добавляются переводы на различные языки, путь установки и прочие нюансы.
- Requirements & Resources — необходимые условия для установки и зависимости. Например если для работы программы необходимо Xcode Command Line Tools, то здесь это можно указать, и если проверка не будет пройдена, то установка отмениться.
- Comments — вкладка исключительно для заметок разработчика, представляет собой огромное поле для ввода текста.
Если в боковом меню выделить необходимый нам пакет(на картинке это My), то мы увидим следующую картину:
Во вкладке Settings, выбирается идентификатор, версия и можно указать, что попросить сделать пользователя после установки (выключить компьютер, перегрузиться и завершить сеанс пользователя). Кроме этого можно выбрать Location и дополнительные опции, например ввод админского пароля, изменение прав доступа к папке и прочее.
Во вкладке Payload происходит основной процесс, добавление файла приложения в проект. Необходимо выделить нужную папку для установки приложения, например Applications, нажать на кнопку «+» и выбрать уже готовый файл с расширением .app.
Во вкладке Scripts можно выбрать скрипты которые запустятся до или после установки.
После того как все пункты выполнены, нужно собрать проект. Это можно сделать либо из меню Build —> Build либо с помощью специальной короткой команды ⌘B.
После этого вы получите установочный файл, которым можете поделиться с вашими друзьями и партнёрами.
Ссылки на необходимые файлы и обучающее видео
Platypus — программа для сборки .app;
Packages — программа для сбоки pkg;
Вот это — отличная видеоинструкция по работе с программой Packages.
Небольшое дополнение
По умолчанию, Platypus просто запускает скрипт, но почти всегда нам надо запускать программу на компьютере, где не установлен python. Для такого случая есть специальный лайфхак:
В Platypus в качестве типа скрипта выбираете shell script, нажимаете на + и пишете следующий код:
Где
- MyApp.app — это имя вашего приложения
- /compiler/bin/python — путь до компилятора
- main.py — необходимый скрипт
Теперь, если вы соберёте программу и переместите её в папку Applications, то она запустится со своим компилятором.
Источник
Создание программ для Mac OS X. Часть 3: Apple Script
В этой части я расскажу про еще одно интересное средство разработки приложений для Mac OS X — скриптового языка Apple Script.
Apple Script разрабатывался чтобы применяться конечными пользователями, а не программистами, и позволить им контролировать приложения и документы, с которыми они работают. Например, с помощью Apple Script можно открыть фотографию в редакторе изображений, обрезать до нужного размера, записать ссылку на фото в текстовый файл и т.п.
В отличии от того, как пользователь через GUI взаимодействует с приложением, например впечатывает информацию в текстовые поля приложения для работы с базами данных, AppleScript работает совсем иначе, скрипт использует внутреннюю объектную модель приложения, тем самым внося значения в саму базу данных. Это означает, что во время работы скрипта приложение даже не обязательно показывать. Естественно такая модель работы требует того, чтобы ваше приложение было написано с поддержкой Apple Script.
Каждое приложение, которое понимает Apple Script, публикует поддерживаемые комманды в Apple Event словаре, который используется, чтобы определить допустимые комманды.
Язык, очень похожий на натуральный
в подкасте Радио-Т ведущий bobuk говорил что скрипт, написанный на языке Apple Script читается как обычный английский текст. В принцие он прав, т.к. это и есть одна из основополагающих особеннойстей Apple Script.
Движок Apple Script комбинирует глаголы и существительные, чтобы выполнить действия. Например, чтобы напечатать документ, страницу из документа или опеределенный фрагмент, вместо вызова функций printPage, printDocument, printRange, мы берем глагол print и добавляем нужное существительное:
print page 1
print document 2
print pages 1 thru 5 of document 2
tell application «iTunes»
playpause
end tell
tell application «Microsoft Word» to quit
tell application «QuarkXPress»
tell document 1
tell page 2
tell text box 1
set word 5 to «Apple»
end tell
end tell
end tell
end tell
Использовать иерархичность можно следующим образом:
pixel 7 of row 3 of TIFF image «my bitmap»
set pix to 72
set answer to text returned of (display dialog «Enter in the number of inches» default answer «1»)
display dialog answer & «in = » & (answer * pix) & «px»
при исполнии покажет диалоговое окно с запросом ввода кол-ва дюймов, потом это значение конвертируется в пиксели и результат показывается в следующем окне.
Также скрипт можно сохранить чтобы в дальнейшем использовать как полноценное приложение. Обработчик события запуска должен находиться внутри следующей конструкции:
В принципе, его можно и не писать, тогда при запуске обработка скрипта начнется с первой строки в файле.
Если бросить на файл со скриптом пару других файлов, то при запуске будет использован следующий обработчик:
on open theItems
— что-нибудь делаем с этими самыми theItems
end open
Средстав для написания скриптов лежат в /Applications/AppleScript
В качестве редактора/интерпритатора исаользуется ScriptEditor.app
Чтобы открыть Apple Event словарь надо в меню Script Editor нажать File=> Open Dictionary, откроется окно со списком приложений
выбираем нужное(например iTunes) и клацаем OK. Открылось окно с описанием комманд для нужного нам приложения
А теперь напишем простенькое Cocoa приложение, с помощью которого можно контроллировать iTunes
Открываем XCode, File=>New Project, Cocoa Application => в Project Name пишем iTunes_Controller. Добавляем новый Objective-C class «controller». В файле controller.h пишем
interface controller: NSObject <
>
— (IBAction) nextClick:(id)sender;
— (IBAction) prevClick:(id)sender;
— (IBAction) pauseClick:(id)sender;
— (IBAction) playClick:(id)sender;
— (void) executeAppleScript:(NSString*)sctript;
end
В принципе, в этом коде ничего секретно-военного нету. Просто пишем класс, с помощью которого и будем контролировать iTunes. Функции *Click — это обработчики нажатия по соответствующим кнопочкам на форме. А executeAppleScript:(NSString*)sctript — функция, которая будет исполнять скрипт в параметре script.
А теперь клацаем по MainMenu.nib и попадаем в InterfaceBuilder. Добавляем в окно MainMenu.nib новый NSObject и назначем ему класс controller:
Затем разместим на форме четыре кнопки с надписями «next»,«play»,«pause»,«previous» и соеденим их с соотв. обработчиками из класса controller:
Сохраняем все и возвращаемся в XCode. В файле controller.m пишем следующее:
— (void) executeAppleScript:(NSString*)script <
try <
NSAppleScript *ascript = [[NSAppleScript alloc] initWithSource:script];
[ascript executeAndReturnError:nil];
[ascript release];
>
catch (NSException * e) <
NSLog(@«exception:%@»,e);
>
>
— (void) nextClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n next track \n end tell»];
>
— (void) prevClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n previous track \n end tell»];
>
— (void) playClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n play \n end tell»];
>
— (void) pauseClick:(id)sender <
[self executeAppleScript:@«tell application \»iTunes\» \n pause \n end tell»];
>
В принципе в этом коде ничего сложного тоже нет. Единственная интересная вещь — класс NSAppleScript, с помощью объекта которого и выполняем скрипт. Подробнее про NSAppleScript можно почитать здесь.
В принципе, я думаю, что этого достаточно чтобы получить общее представление о Apple Script и попробавть что-нибудь на нем написать.
Источник