0

Команды терминала mac OS

Terminal представляет собой исключительно мощный инструмент, предоставляющий интерфейс командной строки для поддержки ОС OS X. Это тема, которую мы подробно рассмотрели ранее в нашей популярной серии Taming the Terminal.

Terminal может многое, от перемещения большого количества файлов до изменения предпочтений, о которых мы не могли и подумать. Для демонстрации возможностей Terminal я собрал 40 действительно превосходных подсказок и трюков, которые могут пригодиться.

Содержание

Перед началом

Все команды Terminal, которые я покажу, абсолютно безопасны, а когда дело доходит до изменения preferences, полностью обратимы. Надо сказать, что Terminal не оставляет права на ошибку, поэтому убедитесь, что вы вводите команды точно, как они описаны.

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

Совет. Если вы не знакомы с Terminal, я настоятельно рекомендую вам прочитать нашу вводную серию на тему Taming the Terminal. Terminal не для слабонервных и лучше, чтобы вы были готовы им пользоваться.

Кроме того, почему бы не попробовать некоторые Mac apps, доступные на рынке Envato, например Sentenza Desktop для Mac, которое помогает в создании приложений для Mac OS X.

Вход в Terminal

Окно Terminal

Терминал находится в папке Applications> Utilities. После открытия вы можете начать вводить команды.

В Terminal вы увидите что-то вроде этого:

MacBook:~ jordan$

Это приглашение для ввода команды. Чтобы правильно определить, как вводить команду, я буду использовать знак доллара ($) для обозначения запроса, поэтому просто введите команду, следующую за знаком доллара.

Давайте разберемся с некоторыми основными командами!

Очистить окно

$ clear

Проще говоря, это очищает текущее окно. (В Terminal в OS X вы все равно можете прокручивать вверх, чтобы увидеть, что там было. Эта команда просто очищает текущий вид).

Переход к папкам

Вы можете перейти в папку Utilities, набрав следующую команду:

$ cd /Applications/Utilities

Если вы хотите быстро вернуться в свою домашнюю папку, можете просто ввести:

$ cd

С папками, которые содержат пробелы, есть два способа сделать это:

$ cd /Volumes/Macintosh\ HD/ $ cd «/Volumes/Macintosh HD/»

В первом методе используется обратная косая черта \ для «экранирования» пространства. Поскольку командная строка рассматривает пробелы как часть команд, символ \ сообщает Terminal игнорировать пространство, которое затем следует. В качестве альтернативы вы можете просто поместить путь к папке в кавычки, и любые пробелы, которые она содержит, будут игнорироваться.

Чтобы продолжить, вернитесь к своей домашней папке.

Список содержимого каталога

Вы можете просмотреть содержимое папки, введя:

$ ls
Ввод по умолчанию — ‘ls’

Чтобы просмотреть его в формате списка, введите:

$ ls -l
Вывод ‘ls’ с флажком ‘-l’

Если вы хотите просмотреть все файлы, включая скрытые:

$ ls -a

Вышеуказанная команда отобразит все файлы, включая скрытые, которые начинаются с точки. Что, если мы хотим просмотреть папку как список, но также увидеть все скрытые файлы?

$ ls -la

Да, их простым объединением! Я думаю, ты уже разогрелся, так что давай взойдём на новый уровень!

Прежде чем продолжить, вернитесь к своей домашней папке.

Ditto

Подводный камень в OS X — ditto команда от Apple. Я нашёл это невероятно полезным при копировании больших объёмов данных, так как он может работать в окне Terminal, которое содержит более полезную информацию, чем традиционное окно копирования Finder.

$ ditto -V /old/work/ /new/work/

Эта команда скопирует нашу рабочую папку в новое место. Происходит то, что команда копирует содержимое нашей «рабочей» папки в новую «рабочую» папку.

Добавление -V, то есть verbose, печатает строку в окне Terminal для каждого файла, который копируется. Это очень удобно, видеть процесс копирования.

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

Отключить Drop Shadows в скриншотах

Если мы делаем скриншот окна в OS X, по умолчанию всегда будет отбрасывать тень, забирая пиксели. Если вы хотите избавиться от тени, можете использовать следующую команду:

$ defaults write com.apple.screencapture disable-shadow -bool TRUE

Вы можете перезапустить Mac, чтобы просмотреть изменения, либо, используя другую команду, сразу увидеть их:

$ killall SystemUIServer

Эта команда останавливает графический интерфейс OS X на долю секунды. Не беспокойтесь, он должен работать и будет перезагружен мгновенно — но уже с нашей новой опцией. Сделайте скриншот и заметите, что тень больше не включается.

Чтобы отменить изменения, вы можете ввести следующую команду:

$ defaults write com.apple.screencapture disable-shadow -bool FALSE $ killall SystemUIServer

Чтобы просмотреть изменения немедленно.

Изменить формат файла скриншота

PNG, вероятно, лучший формат для скриншотов и он может занимать немного места. Если вы предпочитаете использовать формат PDF, можете поступить так:

$ defaults write com.apple.screencapture type PDF $ killall SystemUIServer

Чтобы отменить изменения, введите:

$ defaults write com.apple.screencapture type png $ killall SystemUIServer

Изменить расположение снимков экрана

Несмотря на своё великолепие, скриншоты загромождают рабочий стол. Чтобы это изменить, можем использовать:

$ defaults write com.apple.screencapture location /drag/location/here $ killall SystemUIServer

Вместо того, чтобы связываться с длинными именами надоедливых путей, можете просто ввести первую часть команды, а после слова «location” перетащить папку, в которую вы хотите сохранить ваши скриншоты. Чтобы отменить изменения, можете использовать:

$ defaults write com.apple.screencapture location ~/Desktop $ killall SystemUIServer

Совет: отрезок , ~, фактически представляет вашу домашнюю папку. В приведённом выше примере это означает /Users/jordan/Desktop. Полезное сокращение!

Включить AirDrop для старых компьютеров Mac

AirDrop — отличная функция, позволяющая быстро и легко отправлять файлы между компьютерами Mac без необходимости работать с приложениями. Проблема в том, что это только на WiFi и на более современных Mac.

Если ваш Mac не поддерживает AirDrop, введите следующую команду, чтобы работать в сети Ethernet:

$ defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool TRUE

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

$ killall Finder

Чтобы отменить изменения, введите:

$ defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool FALSE

Если нужна дополнительная информация о включении AirDrop, более подробно в нашем предыдущем руководстве «How to Enable AirDrop on Ethernet Connected and Unsupported Macs».

Показать скрытые файлы и папки

Чтобы просмотреть скрытые файлы и папки в OS X:

$ defaults write com.apple.finder AppleShowAllFiles -bool TRUE $ killall Finder

После перезагрузки Finder вы увидите много незнакомых файлов, обычно начиная с периода (который обозначает скрытый файл в OS X).

Чтобы отменить изменения:

$ defaults write com.apple.finder AppleShowAllFiles -bool FALSE $ killall Finder

Мы рассматривали видимость скрытых файлов в нашем предыдущем уроке «Revealing Hidden Files in OS X».

Стресс-тест вашего Mac

Если хотите запустить стресс-тесты на вашем Mac, можете ввести простую команду, которая мгновенно использует 100% процессора:

$ yes

Специалисты Apple часто ей пользуются при работе с проблемными компьютерами Mac, которые могут упасть под нагрузкой, это очень быстрый способ нагрузить Mac. Чтобы отменить команду, нажмите Ctrl-C.

Просмотр использования файловой системы

Иногда мы хотим увидеть, что делает наш Mac при чтении и записи диска, особенно если мы пытаемся определить причину, что не позволяет вытолкнуть диск. Для этого мы используем:

$ sudo fs_usage

Вводя sudo, мы просим запустить его как суперпользователя, что требует ввода пароля для входа в систему Mac. После того, как процессы обращаются к вашему диску, вам предоставляется постоянный поток информации.

Некоторые процессы, которые вы, вероятно, увидите, это Time Machine (backupd) и Spotlight (mds).

Для отмены нажмите Ctrl-C.

Просмотр содержимого любого файла

Иногда попадаются файлы в неизвестном формате. Предполагая текстовый формат, мы пытаемся открыть его в TextEdit, но это не всегда работает. Мы можем исследовать любой файл из Terminal , используя:

$ cat /path/to/file

Независимо от формата, файл откроется. В файлах, как MP3 или видео будет тарабарщина. Но если вы пытаетесь восстановить повреждённый документ, это может помочь.

Восстановить Spotlight

Spotlight может работать не так хорошо, как хотелось бы. Иногда нам просто нужно задать Spotlight новый индекс, чтобы он мог находить файлы как можно быстрее и эффективнее. Сделаем это:

$ sudo mdutil -E /Volumes/DriveName

Указанная команда удалит индекс Spotlight, вынудив его запустить новый. Более простой способ выполнить команду — ввести ее первую часть, а для местоположения просто перетащить жёсткий диск со своего рабочего стола в окно Terminal.

Удалить повторяющиеся записи «Open With…”

Общей ошибкой в OS X является наличие дублирующихся приложений в меню «Open With…”, которое может переполниться! Исправим это:

$ /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Указанная команда будет работать в OS X Leopard и выше. Рекомендую перезагрузить Mac.

Включить выбор текста в Quick Look

Quick Look великолепен, но не стал бы ещё лучше, имей мы возможность выбирать текст без необходимости открывать документ? С этой командой сможете:

$ defaults write com.apple.finder QLEnableTextSelection -bool TRUE $ killall Finder

Чтобы вернуть изменения:

$ defaults write com.apple.finder QLEnableTextSelection -bool FALSE $ killall Finder

Открытие файлов в любом приложении

Вы легко можете открывать документы из Terminal, но как насчет их открытия в другом приложении, которое не подходит по умолчанию для файлов его типа?

$ open -a /Applications/AppName.app /path/to/file.txt

Это действие откроет наш текстовый файл в приложении AppName. Просто измените приложение и файл на всё, что вам нужно.

Проверьте безотказность Mac

Пройдут дни, недели или даже месяцы, прежде чем мы перезагрузим наш Mac, иногда даже не можем вспомнить, когда делали это в последний раз. Чтобы узнать, сколько времени наш Mac был без перезагрузки, можем использовать:

$ uptime

Это отобразит текущее время и время работы нашего Mac.

Установка обновлений OS X

Несмотря на то, что Software Updates переходят в App Store в Mountain Lion, мы можем использовать командную строку для установки обновлений без необходимости её запуска. Чтобы просмотреть доступные обновления программного обеспечения для вашего Mac:

$ sudo softwareupdate -l

Через несколько минут вы получите полный список.

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

$ sudo softwareupdate -ia

Отображение пользовательского сообщения в Login Window

При массовом пользовании Mac бывает полезным выводить на дисплей насущную информацию, например «Эй, липкие руки! Другим тоже надо пользоваться клавиатурой, знаешь ли. »

$ sudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText «Hey, Sticky Hands!»

В следующий раз, когда вы выйдете из системы или перезагрузите Mac, появится ваше сообщение. Чтобы полностью удалить сообщение:

$ sudo defaults delete /Library/Preferences/com.apple.loginwindow LoginwindowText

Начать простой HTTP Server в любой папке

Если вам нужно быстро протестировать HTML, над которым вы работаете, запустите простой веб-сервер в любой папке на вашем Mac. Перейдите в папку для использования и введите:

$ python -m SimpleHTTPServer 8000

Номер в конце — это порт для использования, откройте браузер и посетите http://localhost:8000, можете использовать порт 80 по умолчанию или полностью удалить номер порта.

Когда закончите, нажмите Ctrl-C.

Повторное выполнение команды

Некоторые из команд требуют сначала войти в sudo, чтобы запустить их как суперпользователя root. Иногда, введя длинную команду, узнаём лишь, что мы забыли сначала поместить sudo. К счастью, нам не нужно повторно записывать всю команду (или копировать и вставлять). Вместо этого мы можем использовать очень простой shortcut, который стоит вместо ранее написанной команды:

$ !!

Если нам понадобится ввести ту же команду ещё раз, но с sudo впереди, мы можем просто набрать:

$ sudo !!

Загрузка файла без браузера

Если хотите загрузить файл без использования браузера, мы можем дать следующую команду:

$ curl -O http://appldnld.apple.com/iTunes11/091-6058.20130605.Cw321/iTunes11.0.4.dmg

Это загрузит любой URL, который вы вводите в папку. Некоторые браузеры пытаются автоматически открывать файлы при их загрузке или добавлять утомительные расширения файлов, когда вы не хотите их (особенно при работе с текстовыми файлами, кроме расширения .txt).

Завершение работы Mac, с задержкой или без

Для немедленного завершения работы Mac:

$ sudo shutdown -h now

Чтобы немедленно перезагрузить Mac:

$ sudo shutdown -r now

Мы можем добавить временную задержку (в минутах), если мы хотим:

$ sudo shutdown -r +60

Хотя это не очень подходит собственному Mac, но, если вы подключились к Macs через командную строку, может оказаться полезными при перезапуске удалённых серверов.

Отключить Mail’s анимацию в Mountain Lion

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

$ defaults delete com.apple.mail DisableReplyAnimations -bool TRUE

Закройте и перезапустите Mail, чтобы изменения вступили в силу. Чтобы отменить изменения:

$ defaults delete com.apple.mail DisableReplyAnimations -bool FALSE

Предотвратите переход Mac в режим сна

Мы оставили Mac делать то, что требуется, на некоторое время, а вернувшись, обнаружили его спящим. Это можно предотвратить, используя простую и с юмором команду:

$ caffeinate

Mac будет бодрствовать до тех пор, пока вы не отмените команду, нажав Ctrl-C. Вы можете добавить параметр времени с помощью:

$ caffeinate -u -t 600

Число означает секунды, поэтому наша команда остановит переход Mac в режим сна в течение следующих десяти минут.

Создайте файл любого размера

Бывают случаи, когда нам нужен файл определённого размера для тестирования. Я часто копирую файл 1GB по сети, чтобы получить представление о скорости. Найти файл нужного размера сложно, но с помощью командной строки мы можем создать пустой файл любого размера.

$ mkfile 1g test.abc

Вы можете указать размер файла в байтах (b), килобайтах (k), мегабайтах (m) или гигабайтах (g). В приведённом выше примере создается тестовый файл 1GB, называемый test.abc, но вы можете называть его как хотите, без расширения файла.

Постоянный контроль вывода файла

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

$ tail -f /var/log/system.log

Ваше окно Terminal будет постоянно следить за указанным файлом (в данном случае, system.log и каждый раз, когда добавляется ещё одна строка, она будет выводиться на экран.

Для завершения нажмите Ctrl-C.

Получите свой сетевой IP-адрес

Несомненно, мы могли бы открыть System Preferences, выбрать Network, а затем просмотреть нашу информацию об IP-адресе, но делать это через командную строку гораздо круче!

$ ipconfig getifaddr en0

Термин en0 представляет используемый сетевой интерфейс. Подобно некоторым языкам программирования, первый сетевой интерфейс начинается с нуля, а затем подсчитывается, поэтому, если у вас есть два интерфейса (например, ethernet и WiFi), то они будут соответственно en0 и en1.

По умолчанию ваш Mac всегда будет обозначать проводное сетевое подключение как en0, если только ваш Mac не имеет встроенного ethernet. Вы можете заменить en0 на en1, если вы не используете проводное соединение.

Получите ваш внешний IP-адрес

Самый простой способ узнать свой IP-адрес (тот, который нам предоставляет наш интернет-провайдер), посетить такой сайт, как What Is My IP или даже набрав «what is my IP address” в Google.

Но мы можем использовать Terminal, чтобы обнаружить наш публичный IP-адрес, через службу IP Echo.

$ curl ipecho.net/plain; echo

После запуска команды вам будет предоставлен внешний IP-адрес. Может, набрать будет на так быстро, как зайти на один из указанных сайтов, но мы можем больше сделать вводом с Terminal, особенно включив его в какой-то скрипт.

Тестирование сетевых подключений

Вероятно, вы слышали термин «ping”. Ping отправляет очень маленькие биты информации по сети на удалённый компьютер, учитывая время получения ответа. Полезно видеть, работает ли IP-адрес, или веб-сайт может быть недоступен.

$ ping -c 10 www.apple.com

Выполнение указанной команды отправит 10 пакетов информации и предоставит подробный отчёт о времени отклика. Вы можете заменить www.apple.com любым другим доменным именем или IP-адресом.

Отключить двухпальцевую навигацию Google Chrome

Для компьютеров Mac со встроенным трекпадом с мультитач или с трекпадом Magic Trackpad, Google Chrome предлагает собственную версию считывания двумя пальцами. Хотя это легко изменить в Safari, для Google Chrome необходимо немного обмануть терминал:

$ defaults write com.google.Chrome.plist AppleEnableSwipeNavigateWithScrolls -bool FALSE

Закройте и перезапустите Google Chrome и заметите, что больше не можете сделать swipe. Чтобы отменить изменения:

$ defaults write com.google.Chrome.plist AppleEnableSwipeNavigateWithScrolls -bool TRUE

Запретить использование приложений с сохранением в iCloud по умолчанию

ICloud — отличный сервис, но если вы предпочитаете Dropbox или сохранять файлы на свой Mac, то вы, без сомнения, разочарованы тем, что многие iCloud-совместимые приложения предлагают iCloud в качестве сохранения по умолчанию …. К счастью, мы можем изменить это:

$ defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool FALSE

Закройте и перезапустите любое приложение, использующее iCloud, и теперь любые новые документы будут по умолчанию отображаться на вашем Mac в диалоговом окне сохранения, а не iCloud.

Чтобы отменить изменения:

$ defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool TRUE

Сделайте иконку любого скрытого приложения в Dock Translucent

Скрытие приложений, когда вы их не используете, — отличный способ освободить место на экране, но нет никакого способа отличить, какое приложение скрыто, а какое нет. Мы можем изменить Dock, чтобы все скрытые приложения имели полупрозрачный значок:

$ defaults write com.apple.Dock showhidden -bool TRUE $ killall Dock

Чтобы отменить изменения:

$ defaults write com.apple.Dock showhidden -bool FALSE $ killall Dock

Пути автозаполнения

При указании длинного пути, например:

/Volumes/Macintosh\ HD/Users/admin/Library/Application\ Support/

Это может быть очень утомительно. Вместо этого мы можем использовать клавишу Tab для автозаполнения. Просто начните вводить любую команду, где вам нужно указать путь и на первой или второй букве нажмите Tab. Если есть только одна папка для заполнения по первым символам, она это сделает. Если нет, нажмите клавишу Tab дважды и она будет прыгать так далеко, насколько это возможно и покажет все потенциальные файлы и папки, которые вам могут понадобиться.

Чтобы попробовать, введите следующее, но вместо нажатия Enter нажмите Tab:

$ cd /Us

Вы найдете его для автозаполнения:

$ cd /User

Вероятно, вы услышите звуковой сигнал. Это потому, что есть две папки, к которым вы можете получить доступ: /Users и /User Information. Затем вы можете добавить последний символ в путь и нажать Enter.

Он очень похож на автозаполнение слов в iOS.

Сделать Mac говорящим

У Mac OS X есть отличная встроенная функция речи и мы можем сказать ей все, что хотим:

$ say «This Mac runs OS X, not OS ex»

Мы можем сделать, чтобы он читал любой текстовый файл, который нам нравится:

$say -f /path/to/file.txt

Затем наш Mac скажет, что было в текстовом файле.

Восстановление образа диска на внешний диск

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

$ sudo asr -restore -noverify -source /path/to/diskimage/dmg -target /Volumes/VolumeToRestoreTo

Он пропустит проверку (вы можете удалить эту часть, если проверка нужна, но это может занять некоторое время), и вы можете восстановить изображение, например копию OS X, прямо на диск или раздел.

Отключить панель инструментов

Dashboard когда-то казалась будущим быстрых приложений, таких как калькулятор и заметки. Несмотря на свою популярность, она быстро исчезла. Но всё ещё рядом и обычно открывается случайно.

Я пользуюсь Mission Control и располагаю его слева, но, честно говоря, предпочитаю, чтобы он полностью исчез. К счастью, Dashboard может быть отключен:

$ defaults write com.apple.dashboard mcx-disabled -boolean TRUE $ killall Dock

Вы обнаружите, что Dashboard больше не работает, вместе с виджетами внутри. Не беспокойтесь, его можно вернуть в случае необходимости:

$ defaults write com.apple.dashboard mcx-disabled -boolean FALSE $ killall Dock

Посмотреть все активные процессы

Приложение Activity Monitor предоставит подробный обзор того, чем занят наш Mac. Мы можем перенести большую часть его функциональности в Terminal:

$ top

После запуска мы легко увидим все текущие процессы, перечисленные в зависимости от частоты использования процессора, с наиболее активными процессами CPU в начале списка.

Кроме того, в верхней части окна есть много другой информации, от того, сколько процессов запущено, сколько памяти используется в настоящее время до объёма генерируемого нами сетевого трафика.

Смотрите список всех команд, которые вы ввели

Напоследок можно ввести команду просмотра всех команд, которые мы вводим:

$ history

Все предыдущие команды, запущенные в Terminal, перечислены здесь, что даёт вам возможность вернуться назад и посмотреть, что сделано.

Terminal может помочь настроить ваш Mac точно, как вы хотите и предоставить доступ к функциям, которые просто не отражаются. Существует множество безопасных вариантов, но, чтобы не ошеломить пользователя, они скрыты и их могут найти только опытные users, которые хотят внести изменения.

Командная строка — очень мощный инструмент, и, как сказал дядя Бен Питеру Паркеру, «с большой силой приходит большая ответственность». Используйте её мудро!

Я давно пользуюсь операционными системами Ubuntu и Mac OS X. Когда-то я любил Windows (XP и 7), но после выхода Windows 8 я полностью разочаровался и начал искать альтернативы. И вот уже много лет подряд я влюблен в Ubuntu, поэтому мне пришлось освоить команды терминала. Все эти команды работают одинаково в Linux, Ubuntu и Mac OS X. Есть, конечно, особенности, но практически все команды из этой статьи будут работать везде. Эту статью я написал как шпаргалку-напоминалку, потому что если ты не системный администратор и пользуешься этими командами редко, то они постепенно выветриваются из памяти.

Что такое терминал, или консоль?

Терминал, или консоль, – это специальное окно, в которое вы вводите специальные команды для общения с операционной системой вашего компьютера напрямую без мышки и окон. Терминал, или консоль, еще называют командной строкой. У Windows нет консоли, эта операционная система работает по-другому. А у Linux, Ubuntu, Mac OS X – есть. Кстати, Ubuntu и Mac OS X сделаны на базе операционной системы Unix, поэтому они очень похожи. Вот, как выглядит терминал на моем компьютере с Ubuntu:

Сюда и надо вводить команды. Да, выглядит не очень, намного приятнее работать с красивым графическим интерфейсом, но со временем привыкаешь и начинает нравиться. А системные администраторы – так вообще кайфуют от консоли. Я даже встречал таких, которые всегда пользуются только консолью.

Что можно делать при помощи консоли?

При помощи консоли можно делать все что угодно: копировать файлы и фрагменты текста, редактировать текстовые документы, открывать и удалять файлы и многое другое. Консоль позволяет делать многое из того, что нельзя сделать мышкой в графическом интерфейсе.

Терминал работает одинаково как в Ubuntu и Linux, так и в Mac OS X. Но вот запускается он по-разному.

Работа с консолью

Как запустить консоль в Mac OS X

Нажмите сочетание горячих клавиш Command (⌘) + T.

Или запустите Spotlight, для этого нажмите на значок лупы в верхнем горизонтальном меню справа или с помощью сочетания клавиш <Ctrl> + <Пробел>.

В строке поиска Spotlight введите слово «Терминал” и нажмите «Enter”.
В результате откроется окно Терминала.

Как запустить консоль в Linux или Ubuntu

Чтобы запустить терминал, нажмите одновременно Ctrl + Alt + T.

Работа с окном консоли

Как прописывать путь к каталогам или файлам

Директория, папка и каталог – обозначают одно и то же.

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

. – текущий каталог;
.. – родительский каталог (один уровень вверх);
~ – домашний каталог;
/ – корневая директория.

Например, путь /каталог/файл.txt – задает путь к файлу с названием файл.txt, который лежит в каталоге с названием каталог, который, в свою очередь, лежит в корневой (самой верхней) директории.

Команды для работы с каталогами

При помощи консоли можно делать все что угодно с файлами и каталогами. Это, конечно, менее удобно, чем, например, в Проводнике Windows или в Finder Mac OS X, но когда привыкаешь, то это начинает даже нравиться.

Команда Что делает
pwd показывает путь к текущему каталогу (Print Working Directory)
ncdu / утилита выведет иерархический список директорий, начиная с самого большого размера, утилита интерактивна, мы можем перемещаться по дереву, входить в папки, изменять представление информации, удалять ненужные файлы и директории
ls вывод содержимого текущего каталога
ls вывод содержимого указанного каталога
ls -l просмотр прав доступа
ls -lah выводит все файлы, включая скрытые и размеры файлов в Мб
ls -a выводит все файлы и каталоги, включая скрытые (и с точками перед названием(.))
ls -G выводит файлы и каталоги в цвете
ls -R выводит в том числе и подкаталоги
tree выводит все каталоги и подкаталоги
cd изменение каталога
cd / переход в корневую директорию
mkdir создание каталога
rmdir удаление пустого каталога
rm -r рекурсивное удаление каталога (сначала будут удалены все подкаталоги и все файлы в этих подкаталогах, а потом и сам каталог)
du -sh вывести размер текущего каталога
du -sh * вывести размер всех каталогов в текущем каталоге
du -sh вывести размер указанного каталога
cp -r /* копирует все файлы из в
mc запуск файлового менеджера Midnight Commander
find поиск
find / -name file.txt найти файлы с именем file.txt, поиск начать с корневого каталога
find / -name ‘*.txt’ найти файлы по маске
zip -r archive.zip folder/ заархивировать все файлы и подкаталоги из каталога folder в архив с названием archive.zip
unzip archive.zip разархивировать в текущий каталог
unzip -l archive.zip (или less archive.zip) просмотреть содержимое архива archive.zip
tar -xvf разархивировать в текущий каталог

Команды для операций с файлами

Команда Что делает
nano редактирование файла в редакторе nano
cp копирует файл1 в файл2
scp :/path/to/
:/path/to/other/
копировать файл с одного сервера на другой
scp :file.txt /local/folder скачать файл file.txt с сервера на текущий компьютер в папку foder
scp file.txt :~/ загрузить файл с текущего компьютера на сервер
rm удаляет файл (-v будет писать о том, что делает)
mv перемещает файл1 в файл2. Эта же команда используется и для переименования файла.
touch создание пустого файла
chmod задание прав доступа
chown пользователь файл смена владельца файла
grep вырезает нужные вам строки из текстовых файлов, которые содержат указанный пользователем текст. Например, grep «Include» /etc/apache2/apache2.conf — покажет все строки из файла apache2.conf, содержащие слово Include.
grep -i -R «слово» найти «слово» во всех файлах и каталогах, включая вложенные. -i — капитализация букв не важна, -R — означает «рекурсивно».
tail вывод последних строк файлов
cat вывести все текстовое содержимое файла на экран или объединить содержимое нескольких файлов и вывести его на экран (выводит все подряд, а не страницу за страницей)
less просмотреть файл страница за страницей (пробел — следующая страница, b — предыдущая страница, v — редактировать, j или ↵ — ввести следующую линию)

Завершение работы компьютера

Команда Что делает
reboot перезагрузка компьютера
halt завершить работу системы, но не выключать ПК
poweroff завершить работу системы и выключить ПК
shutdown -h 19.30 завершить работу системы в 19.30 и вывести сообщение
shutdown -h +5 «Пожалуйста, сохраните свою работу» показать сообщение всем залогиненным пользователям и через 5 минут выключить компьютер
shutdown -r now перезагрузить систему

Аварийное завершение программ (процессов)

Команда Что делает
xkill выберите окно с программой, которую надо завершить
kill PID принудительное завершение зависшей программы. PID — process ID. Пример — kill 2484.
ps определение идентификатора процесса. ps -a и ps -U root — эти команды позволяют добраться до нужных процессов, если они запущены в других терминалах. Первая команда выводит список процессов, запущенных вами, а вторая — от вашего имени (если вы работает под root).
ps -ax | grep вычисление PID процесса с известным именем. Пример # ps -ax | grep firefox
killall самый удобный способ завершить процесс, не зная его ID. Убивает все работающие процессы во всех консолях с заданным именем
Ctrl+C or Ctrl+| остановить работу скрипта в командной строке

Системная информация

Команда Что делает
top это команда выводит полную информацию о системе в режиме реального времени (список процессов, загруженность процессора, памяти и т.д.)
h — справка
q — выход из программы.
u — показывает только пользовательские процессы (top -u username)
F — изменяет столбец, по которому сортируются задачи
f — выбор столбцов для вывода
M — выводит данные в мегабайтах (top — M)
man имя_программы справка по программе, листать пробелом
k остановить процесс
htop то же самое, что и top, но с графическим интерфейсом
free выводит информацию об использовании оперативной и виртуальной памяти
df -h выводит информацию об использовании дискового пространства
cat /etc/*release* (или cat /etc/issue) узнаем версию дистрибутива Linux
atop лучше, чем top и sar вместе взятые, хранит исторические данные (atop)
sudo dpkg —get-selections смотрим список установленных пакетов ( | more — постраничный вывод) (Debian / Ubuntu Linux)
baobab информация об используемом дисковом пространстве
hardinfo программа, позволяющая смотреть информацию о системе
hostname показывает hostname системы
clamAV бесплатный антивирус, стандарт для Linux-систем

Работа без root

Команда Что делает
sudo позволяет запустить любую команду с привилегиями root, при запуске каждой команды надо вводить пароль
sudo -i запускает оболочку root, любые команды будут выполнены с правами администратора, не надо каждый раз вводить пароль
sudo gedit /etc/apt/file.txt изменить файл при помощи gedit с правами root
su user переключение пользователя (без имени пользователя переключает на root)
sudo !! перезапускает последнюю команду с правами администратора
passwd имя_пользователя изменение пароля пользователя

Команды для операций с базой данных MySQL

Команда Что делает
mysql -u root -p подключение к MySQL как root
mysql -u user -p database подключение к БД «database» от имени пользователя «user»
create database db_name создаем базу данных «db_name»
show databases вывести список всех имеющихся баз данных
mysql > create user db_user
mysql > grant all on db_name.* to ‘db_user’@’localhost’ identified by ‘db_password’
создаем нового пользователя «db_user» и даем ему полные права на управление БД «db_name» с паролем «db_password»
SELECT User,Host FROM mysql.user просмотр списка пользователей MySQL
DROP USER ‘user_name’@’localhost’ удалить пользователя MySQL
mysqldump -u -p > .sql экспорт базы данных MySQL
mysql -u -p database_name импорт базы данных MySQL
drop database database_name удалить базу данных MySQL

Это самые популярные команды терминала (консоли), которые используются чаще всего. Если вы новичок, то пусть они вас не пугают, на самом деле все просто, надо только немного привыкнуть. Я уже привык и мне нравится. А вам?

Джейлбрейк 20.10.2015 | 0

Одной из главных проблем джейлбрейка для операционной системы iOS 9 является несовместимость большинства твиков от iOS 8 с новой прошивкой. По этой причине разработчикам расширений придется потратить огромную кучу времени на оптимизацию своих твиком с новой ОС, причем этот процесс может затянуться на долгие месяцы.

Как известно, большинство людей, устанавливающих джейлбрейк, хотят получить полный контроль над системой. Так как iOS основана на Linux, то этого можно добиться с помощью SSH доступа к системе. Проще говоря, через специальный терминал, который умеет работать со специальными командами.

На операционную системы iOS 8 с джейлбрейком существовало сразу три хороших терминала: Terminal, MobileTerminal, и WhiteTerminal. Из-за особенностей iOS 9, ни один из них не работает на iPhone и iPad с этой прошивкой. Получается, что получить доступ над своим устройством не получится, но решение все же есть.

Чтобы пользоваться терминалом на iOS 9 нам потребуется компьютер на Windows, Linux, или OS X. Для начала необходимо запустить на «яблочком» устройстве магазин Cydia, и произвести установку джейлбрейк-твика OpenSSH. Это расширение позволяет удаленно подключаться к «яблочному» смартфону или планшету, чтобы затем иметь возможность легко управлять им с помощью команд.

Установив этот твик на свой iPhone или iPad, важно обязательно перезагрузить устройство. Теперь подключаем компьютер и испытуемое устройство к одной Wi-Fi сети. На смартфоне или планшете с iOS открываем «Настройки» — Wi-Fi. Справа от подключенной Wi-Fi сети будет значок буковки i. Нажимаем на него, и запоминаем информацию из графы «Адрес IP». В нашем случае это 192.168.1.103.

Теперь запускаем на компьютере под управлением Linux или OS X приложение «Терминал». При использовании операционной системы Windows рекомендуем использовать программу PuTTY. Вводим в терминале команду для подключения к iPhone, iPad или iPod Touch. Она выглядит следующим образом:

ssh root@192.168.1.103

Адрес после знака @ необходимо заменить на свой из графы «Адрес IP», который мы узнавали ранее. После ввода этой фразы потребуется ввести пароль от своего гаджета. По умолчанию он: alpine (без точки на конце).

Если все прошло удачно, то после ввода пароля появится примерно такая строчка: iPhone-Sergej:~ root#. Также подключиться к своему смартфону или планшету можно непосредственно с другого устройства. Для этого можно воспользоваться любым SSH клиентов доступа. Для iOS самым лучшим считается хорошо известный за рубежом Prompt 2.

Присоединяйтесь к нам в Google News, Twitter, Facebook, ВКонтакте, YouTube и RSS чтобы быть в курсе последних новостей из мира технологий будущего.

Terminal.app для начинающихУчимся работать с командной строкой А. Гаспарян <<1 >>

С каждым годом количество свитчеров растет. Причем на Mac переходят не только с Windows, очень часты случаи перехода с Unix. И если большинству пользователей Unix, привыкших к консольным командам, работа с терминалом в Mac OS X не доставляет никакого дискомфорта, то для мигрантов с Windows ситуация выглядит несколько иначе. Большая часть таких пользователей редко использует возможности ядра Unix, не видя в этом никакой необходимости. Естественно, такой пользователь вполне может обойтись и без терминала, но знание хотя бы основных команд в некоторых ситуациях может значительно облегчить жизнь любого обладателя компьютера под управлением Mac OS X, a кому-то просто поможет расширить свой кругозор и лучше понять выбранную им операционную систему. Учитывая, что этот небольшой обзор ориентирован на людей, никогда не имевших ранее даже минимального опыта работы с Unix-подобными системами, мы начнем с самых азов, постепенно переходя от простого к сложному.

Для начала стоит упомянуть главную команду для любого человека, чувствующего себя не очень уверенно при виде командной строки: man. Это — справка. Добавив к man имя нужной вам команды, вы получите достаточно полную информацию о ней. Для примера введите man man, и вы увидите в терминале более полную документацию по этой команде.

Для выхода используйте клавишу Q.

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

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

cd ~ команда, при помощи которой вы переходите в свою директорию. Для примера, если вы решаете перейти в каталог, где расположены ваши документы, то следующая команда будет выглядеть так: cd ~/Documents.

cd — позволяет вернуться в предыдущую директорию.

cd .. позволяет вам подняться в вышестоящую директорию.

ls выдает список имен файлов в указанной директории

ls -f показывает файлы с их расширением.

ls -a перечисляет все файлы, включая скрытые.

ls -lo кроме перечисления существующих файлов показывает также их права доступа и дату их создания. Если вы хотите, чтобы были перечислены только файлы, начинающиеся с определенной буквы, например, с Z, наберите ls Z*. Учтите, команда чувствительна к регистру, и если какие-то файлы имеют в начале заглавную Z, а вы набрали обычную z, вы их просто не увидите.

mkdir создает новую директорию. Для примера: набрав команду : mkdir new, вы создадите новую директорию с названием new.

rm удалить файл.

rmdir удалить директорию.

Примеры :

rm new.txt : команда удалит файл new.txt

rmdir new — удаляет директорию с именем new.

Если вы хотите удалить директорию, которая не является пустой, вы либо должны в начале удалить все ее содержимое, либо использовать команду rm -R

rm -R new : удаляет директорию new со всем ее содержимым.

clear — очищает экран терминала. В принципе, иногда достаточно просто сделать «правый клик» на окне терминала и выбрать в контекстном меню — Clear Scrollback.

script — позволяет сохранить в текстовый файл все введенные вами с клавиатуры символы. На практике — чрезвычайно удобная опция, позволяющая вам получить полнейший протокол всей вашей сессии. В файле также будет указаны ее точные дата и время.

Script done on Sat Feb 10 18:21:32 2007

файл будет сохранен с именем typescript в вашей домашней директории.

bc — команда, которая выведет на экран терминала простейший консольный калькулятор.

df — простая команда, которая покажет вам объемы вашего дискового пространства, включая сетевые диски.

du — список всех папок, имеющихся на вашем системном разделе.

Копирование

Копирование файлов и папок, осуществляется при помощи команды cp. Допустим, вы хотите скопировать файл note.txt с рабочего стола в каталог Documents. В этом случае потребуется набрать в терминале cp note.txt ~/Documents

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

Если при этом вы желаете не просто скопировать файл, а скопировать и сохранить его уже с новым названием (для примера возьмем в качестве нового названия new.txt), то требуемая команда будет выглядеть следующим образом — cp note.txt ~/Documents/new.txt. И в вашей папке появится файл new.txt, являющийся копией файла note.txt с рабочего стола.

Для того, чтобы скопировать нужный файл в исходный каталог, но уже с новым именем, достаточно будет набрать cp note.txt new.txt

cp -R Documents «Documents backup» — команда, посредством которой вы сохраняете резервную копию всей вашей директории Documents. Кавычки необходимы, так как в названии директории присутствует пробел.

sudo cp -Rp /Users «/Users backup» — команда позволяет скопировать всю директорию /Пользователи (включая все домашние папки, находящиеся внутри), сохраняя при этом как можно больше файловой информации (принадлежность, права и т.д., но не ветвь ресурса) с названием Users backup. Вы должны выполнять эту команду из под учетной записи администратора, так, в данном примере используется sudo, позволяющая получить временный доступ с правами root. Если вы выполняете команду из-под учетной записи пользователя, вас попросят ввести пароль администратора.

ditto позволяет скопировать директорию, но с сохранением атрибутов скрытых файлов.

ditto Documents «Documents backup» копирует всю директорию под именем «Documents» и называет копию директории «Documents backup».

mv — переименование файлов. Для примера, набрав в терминале mv new old, вы переименуете файл или директорию с названием new в old. А следующей командой: mv old ~/Documents — вы переместите его из текущей директории в вашу директорию Documents.

Поиск

find — поиск файлов, соответствующих заданным вами критериям.

Примеры:

find / -name (имя файла без скобок) : команда осуществит поиск нужного вам файла по всей файловой структуре, включая все смонтированные диски (в том числе и сетевые) и отобразит полный путь к нему.

find -x/ -name (имя файла без скобок) : то же самое, но поиск будет осуществляться исключительно на загрузочном диске вашей системы.

find . -mtime -(здесь нужная вам цифра, вводить без скобок) : эта команда, как и предыдущая, осуществляет поиск в текущем каталоге и всех его подкаталогах, но ее отличие в том, что указав, к примеру, цифру 3 (find . -mtime -3) команда выдаст вам все файлы, которые были изменены в течение последних трех дней. Указав 0, команда найдет только те файлы, дата которых была изменена.

Процессы

ps -x команда, выдающая в терминале список процессов текущего пользователя.

ps -ax показывает список всех процессов

ps — aux показывает список всех процессов, запущенных в системе на данный момент, а также дополнительную информацию о них, включая загрузку процессора, время и пр.

top выдает список основных задействованных процессов и постоянно обновляемую информацию о них. Нагрузка на процессор, размер задействованной памяти, время и пр.

top -us5 то же самое, но с сортировкой процессов, по объему их нагрузки на процессор.

kill — команда, «убивающая» зависший процесс или посылающая ему сигнал.

sync — команда, принудительно записывающая содержимого дискового кэша на жесткий диск.

Пример: набираем в терминале команду top, в появившемся списке процессов выбираем нужный, скажем, процесс 2200, (в моем случае им оказался совершенно ненужный мне AppleSpell) нажимаем Q для выхода из меню — и после kill 2200. Еще раз набираем top — и убеждаемся, что больше упомянутый 2200-го процесс больше не фигурирует в списке запущенных процессов.

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

sudo lsof — список открытых файлов, включая всю систему. Требуется пароль администратора.

И наконец, команда sudo lsof -i — команда, позволяющая вам увидеть все открытые сетевые соединения в вашей системе.

Работа с текстом

pico и nano — простейшие текстовые редакторы для терминала. Довольно ограничены по функционалу. Для выхода из pico или nano нажмите сочетание CTRL+X

more или less — отображает содержимое текстового файла по одной странице. Для перехода на следующую нажмите пробел. Не работает с документами Word, PDF, RTF и любыми файлами отличным от txt формата.

emacs — GNU Emacs — довольно продвинутый редактор, разработанный под X Window и теряющий часть своего функционала при запуске в терминале. Но несмотря на это, позволяет видеть одновременно несколько файлов, перемещать текст между файлами и редактировать во время работы команд оболочки. Программа, вполне заслуживающая отдельного обзора, поэтому здесь мы не будем подробно останавливаться на нюансах его настройки и использования.

Жесткий диск

diskutil выдает список всех возможных команд для операций с вашим жестким диском. От просто просмотра командой diskutil list до таких операций, как монтирование разделов, починка всем знакомых «пермишонов» или формата. Говоря проще, перед вами все опции (на самом деле их даже больше) уже знакомой вам Disk Utility с той разницей, что все действия вы выполняете через интерфейс командной строки. Вот пример лишь нескольких команд, предлагаемых вам diskutil

diskutil resizeVolume позволяет изменять размер выбранного раздела

diskutil partitionDisk позволяет совершать операции над диском и его отдельными разделами. Форматирование, выбор файловой системы и пр.

diskutil eraseDisk стирает информацию с вашего жесткого диска.

diskutil info / выводит информацию о загрузочном разделе вашего диска. Его имя, тип файловой системы, общий размер, количество общего и свободного пространства и пр.

diskutil info /Volumes/здесь имя раздела то же самое, но для любого другого, смонтированного, но незагрузочного раздела вашего жесткого диска.

sudo diskutil repairPermissions / еще одна команда для «починки пермишнов» на загрузочном диске с вашей MacOS X. При ее выполнении от вас потребуют ввести пароль администратора.

sudo passwd root — команда, которая может вам понадобиться только в одном случае — если вы забыли root пароль, пароль администратора.

Сеть

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

ftp — утилита и одновременно протокол (File Transfer Protocol) для передачи файлов. После установления связи с другой машиной (ftp-сервером) вам, скорее всего, будет предложено ввести свое имя (login) и пароль (password) на этой машине. После подключения, Вы сможете с помощью команды «cd <имя директории>» перемещаться по директориям машины-сервера, с помощью «ls» просматривать содержимое выбранных каталогов, с помощью команды «get <имя файла>» перекачивать файлы с сервера на клиентскую машину (в данном случае клиентом будет узловая машина), а с помощью команды «put <имя файла>», наоборот, переслать файл с клиентской машины на сервер. Для окончания сеанса связи служит команда «quit». Если вы хотите, чтобы передача данных происходила в фоновом режиме, можно воспользоваться командой dlftp <имя ссылки>

host — выполняет поиск с помощью службы DNS по заданному имени или IP адресу и выдает информацию о конкретном узле Интернета.

nslookup — Выполняет «поиск имени узла» по заданному IP адресу.

dig — несет те же функции.

telnet — команда, запускающая утилиту и протокол для подключения к удаленной системе.

rlogin — команда расшифровывается как Remote login и инициирует сессию с удаленной системой. По сравнению с ssh — небезопасна в использовании.

rsh (Remote shell) — исполняет команду на удаленной системе.

rcp (Remote copy) — копирование файлов между двумя машинами через сеть. Как и предыдущие r* команды, небезопасна в использовании и по возможности от нее стоит лучше воздержаться в пользу ssh.

ssh (Secure shell) — устанавливает сеанс связи и выполняет команды на удаленной системе. Выступает в качестве защищенной замены для таких команд как telnet, rlogin, rcp и rsh

write — команда запускает утилиту, которая позволяет передать текст сообщения на другой терминал. Работает в интерактивном режиме, поэтому, как правило, не употребляется в сценариях.

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

whois — команда, отвечающая за поиск в Domain Name System — DNS. При использовании ключа -h вы указываете, на какой именно из существующих whois серверов будет отправлен ваш запрос.

команда ping, в отличие от множества уже приведенных здесь команд, знакома и большинству Windows — пользователей. Чаще всего она применяется как инструмент для диагностики соединений, ее задача — передача пакета ICMP echo_request.

reboot — перезагрузка компьютера

shutdown -h now — команда, выключающая ваш компьютер без временной задержки и ненужных вопросов.

(Две последние команды выполняются исключительно из-под аккаунта администратора.)

Конечно, немногие пользователи используют возможности терминала в повседневной жизни. Кому-то это кажется древним и отжившим анахронизмом, кого-то отталкивает необходимость запоминать довольно большой список необходимых команд, в то время, когда большинство требуемых задач можно выполнить при помощи обычной мыши. Но, раз начав работать с терминалом, вы сами довольно быстро оцените возможности, которые он вам предоставляет.

Источники: МакЦентр

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

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

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

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

Для начала избавимся от стандартного терминала. Ну, точнее, поставим другой — получше. Я лично предпочитаю iTerm2, который подходит для работы куда лучше системного. Хотя, и у него бывают интересные моменты (см. картинку вверху).
Далее нам могут понадобиться дополнительные инструменты, поэтому устанавливаем MacPorts (хотя, конечно, можно и другой менеджер пакетов). Теперь мы можем ставить нужные консольные утилиты с помощью простых команд. Например, ставим Midnight Commander (он в любом случае может пригодиться), набираем в iTerm2:
sudo port install mc
После ввода пароля и установки зависимостей и самого mc, можем его запустить, как вы уже догадались, командой mc.
О ужас! Нам понадобятся функциональные клавиши, а они нажимаются только через Fn+F15, что же делать? Ну как что — лезть в системные настройки и выключать это. Иначе сложно будет с mc работать.
Ещё одно важное замечание: кури мануалыесли что-то не понятно, набираем в консоли man команда — и получаем подробное описание команды. (Кстати, для выхода из просмотра мануала надо просто нажать Q).

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

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

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

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

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

Скрипт?

Расскажу вкратце что из себя представляет shell-скрипт. По сути — это обычный текстовый файл, содержащий серию команд для выполнения. Самый простой скрипт просто запускает последовательно все команды. Скрипты посложнее могут иметь условия, циклы и функции, то есть, скрипт может быть весьма большой и сложной программой. Основной плюс таких скриптов — на их службе вся мощь консольных утилит из мира unix, что с лихвой компенсирует бедность языковых конструкций. Приведу простой пример скрипта, который преобразует все файлы .png в текущей директории, уменьшив их размер до 200 пикселей в ширину или высоту.
#!/bin/bash for img in *.png; do fname=${img%.*} fext=${img##*.} sips -Z 200 ${img} —out ${fname}_200.${fext} done
Пример простейший, но он демонстрирует главное: в скриптах сокрыта великая сила.

Скрипты AppleScript

В Mac OS X имеется несколько встроенных механизмов по автоматизации действий. Один из очень распространённых — AppleScript, для которого есть и графический редактор-запускатор. Но использовать такие скрипты можно и из консоли, для этого есть особая утилита — osascript. Использовать её можно так:
osascript myscript
либо
osascript -e «команда скрипта»
Не буду углубляться в AppleScript, он заслуживает отдельной статьи, и даже не одной. Так что рекомендую почитать справку или гугл по нему.
Главное: Вы можете комбинировать shell-скрипты со скриптами AppleScript, чтобы добиться максимальной гибкости в работе! К примеру, я использую такие вот смешанные скрипты для автоматической стилизации образа диска: сам диск создаётся с помощью shell (см. ниже), а фон и расположение элементов в образе задаётся с помощью AppleScript.
Есть ещё Automator, но он совсем уж GUI-шный, так что в данной статье его рассматривать бессмысленно. Он, конечно, полезный, но до мощи консоли не дотягивает.

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

Полный (ну, почти) список уникальных для макоси команд можно найти в одной хорошей статье (хотя сведения там немного устарели), я же вкратце расскажу о наиболее интересных.
Для работы с образами дисков имеется консольная утилита hdiutil. Пара примеров работы с ней:
# создание образа диска из содержимого папки mydata (для чтения и записи) hdiutil create -ov -srcfolder mydata -format UDRW -volname «My Data Image» myimage.dmg # конвертирование образа в сжатый ридонли hdiutil convert myimage.dmg -format UDZO -imagekey zlib-level=9 -o myimage_ro.dmg
Более подробно про возможности можно узнать из man hdiutil.
Если Вы — разработчик программ для макоси, то наверняка знаете о такой замечательной вещи, как Info.plist, да и вообще о plist’ах. Так вот, есть очень удобная утилита, позволяющая конвертировать .plist в .bplist, то есть, в более быстрый и лёгкий бинарный формат плиста.
# в бинарный plutil -convert -format bin1 -o Info.bplist Info.plist # в XML plutil -convert -format xml1 -o Info.plist Info.bplist
Если хотите позаниматься ерундой, то можно из консоли проговорить любой текст. Для этого есть утилита say.
# произнести фразу say Hello Habr! # прочитать вслух книгу на ночь say -f coolstory.txt
Так же можно задавать голос, которым мак будет с нами говорить:
say -v Bad habr habr habr habr habrahabr habr habrahabr
Одна беда — по-умолчанию говорит эта штука только по-английски.
Теперь снимем скриншот командой из консоли.
# скриншот окна без тени, результат — в буфер обмена screencapture -Wco # автоматический скриншот всего экрана — в файл с текущим временем screencapture shot_`date «+%Y-%m-%d_%H:%M:%S»`.png
Так же из консоли можно конвертировать текст между различными форматами. Например, можно переконвертировать .doc файл в HTML:
# конвертировать в html и открыть результат в дефолтном браузере textutil -convert html myfile.doc && open myfile.html
Так же textutil умеет преобразовывать кодировки.
Для изменения системных (и не только) настроек, можно использовать команду defaults. Используем её во благо! Включим наконец отображение скрытых файлов и папок в Finder!
defaults write com.apple.Finder AppleShowAllFiles 1 && killall Finder
Файндер автоматически перезапустится и теперь будет отображать скрытые файлы и папки! Но опять таки, это не всем нравится, так давайте это выключим, пока родителикто-нибудь не испугался или не удалил нужных файликов. Для сокрытия в уже указанной команде поставьте 0 вместо 1. Ну и для примера, , где описано много твиков с помощью этой команды.

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

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

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *