Есть какие-нибудь советы или рекомендации по терминалу в Mac OS X?

Один совет или трюк на ответ.

Мой любимый

open .

Открывает папку, которую вы сейчас просматриваете в Finder. Вы также можете передавать URL-адреса, изображения, документы или что-то еще в файлы open.

Если вы укажете имя программы с помощью -a, вы можете вместо этого передать URL-адрес, изображение, документ или папку этой программе, например open -a Preview image.png, переопределив программу, установленную по умолчанию для типа файла.

Пожалуйста, не публикуйте дубликаты. Ищите в вопросе так:inquestion:this ls -l

Только конкретные ответы для Mac OS X.

Аналогичная тема есть и в Server Fault: serverfault.com/questions/7346/…
Не проверял SF, но, похоже, он больше ориентирован на серверные команды, которые люди считают полезными.
Вы можете использовать openдля всего: URL-адресов, изображений, документов. Я использую это каждый день.
В качестве расширения: open -a Mail filetosend.ext Создает новое электронное письмо с вложенным файлом.
Чем полезно открытие папки, которую вы сейчас просматриваете? open .кажется излишним, учитывая, что он у вас уже открыт.
@Ник Бедфорд: Это очень полезно. Например, я использую командную строку для удаления с сервера группы файлов. Затем я использую «открыть». чтобы открыть текущую папку в поисковике, где я могу легко щелкнуть правой кнопкой мыши файл и сказать «открыть в Excel».
@Nick Bedford: Если у вас открыта папка в Терминале, откройте open .ее в Finder. Это полезно, если вы хотите сделать что-то графическое.
Если вы не хотите, чтобы файл открывался в приложении по умолчанию, вы можете перенаправить его в приложение по вашему выбору с флагом -a <appname>.
Есть много ответов, не относящихся к Mac OS X , что является требованием, изложенным в вопросе. Следует ли пересмотреть ответы или отредактировать вопрос?
@koiyu: OS X основана на FreeBSD, поэтому приемлемо все, что работает на обоих.
@Troggy вопрос, который вы разместили, был удален.
Я бы хотел, чтобы это закрылось или мигрировало обратно. Нет принятого ответа, а на самом деле - количество уловок в терминале практически не ограничено. Если бы каждый ответивший мог взять свой отличный ответ и придумать правильный вопрос - подумайте обо всех качественных вопросах, а затем ответах, которые мы получили бы на этом сайте.
Несколько интересных ответов на странице apple.stackexchange.com/q/24326/8546.
Что означает inquestion:this ls -l.. где я должен ввести это, чтобы найти этот вопрос для всех команд?

Ответы (133)

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

Прикольно, никогда не знал о таком. Очень кстати.
Это также позволяет вам выбирать и копировать прямоугольные секции из Терминала.
:DI проголосовал за это и забыл об этом, поэтому я подумал: «Вау! Это круто, мне нужно проголосовать за это!» а потом я увидел, что у меня уже было. Еще раз спасибо!
Я не знаю, счастлива я сейчас или зла...
Я не понимаю :( чем это отличается от нажатия на строку курсором, ничего не удерживая?
@Glide - вы пробовали это, вы обнаружите, что это не работает в терминале.
К сожалению, это визуальная линия, а не вся команда. Впрочем, все же лучше, чем ничего. Я думаю, если бы я был в отчаянии, я мог бы уменьшить размер шрифта и / или максимальную ширину окна.
Вау, это здорово! Но с какой стати они не сделали это обычным кликом, не удерживая опцию? Это не похоже на то, что щелчок сам по себе делает что-то еще...
Я давно мечтал об этом, откуда я мог знать, что для этого нужен ключ Option?.. Круто, будущее уже здесь :)

pbcopyи pbpaste:

# Copy output of command to clipboard
grep 'search term' largeFile.txt | pbcopy

# Abuse clipboard contents
pbpaste | sed 's/ /%20/g'

#  get rid of the text attributes when you copy formatted text
pbpaste|pbcopy
Я не знал, что ты можешь это сделать, отличный ответ!
Я предполагаю, что «pb» означает «картон»?
@Ноктюрн: Точно.
Разве это не работает только с установленными инструментами разработчика?
@Mark Thalman: Нет, pbcopy и pbpaste расположены /usr/binи включены как часть ОС как минимум с версии 10.4.
это отлично работает для совместного использования картона vim
+1. Мне нравится связывать буфер обмена OSX с помощью команды pbpaste|pbcopy. Это избавит от текстовых атрибутов при копировании форматированного текста. Сохранил как службу и под сочетанием клавиш (F5)

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

sudo opensnoop

Вы также можете посмотреть, что открывает конкретный процесс, передав PID:

sudo opensnoop -p PID 

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

sudo opensnoop -f /etc/passwd
+1. Есть много других интересных утилит на основе DTrace — grep dtrace /usr/bin/*они раскроют гораздо больше, хотя и в не особенно приятном формате... Кроме того, Инструменты (часть Инструментов разработчика) — это интерфейс с графическим интерфейсом для многих из этих функций (есть «открытые файлы " инструмент)
Что не так со старым добрым lsof?
Джош: lsof делает снимок открытых файлов. opensnoop отслеживает живой процесс. Поэтому, если ваше приложение открывает файл, записывает несколько байтов и сразу его закрывает, lsof, вероятно, никогда его не увидит. opensnoop будет.
В дополнение к комментарию dbr о grep dtrace /usr/bin/*том, что он некрасив, у меня есть идея получше: grep -l dtrace /usr/bin/*при этом перечислять только совпадающие имена файлов, без содержимого файла (читай: двоичный мусор).
Что не так со старым добрым fs_usage?
man -k dtraceтакже полезен; большинство, если не все эти утилиты имеют manстраницы.

Это не встроено, но это самый эффективный способ заставить мою жену прекратить использовать мой ноутбук для чтения новостей о знаменитостях в течение нескольких часов после 4–5 запросов вернуть мой Macbook:

echo 'The system is overheating and needs to go to sleep now.' | \
growlnotify -a 'Activity Monitor' 'OVERHEATED'; \
sleep 1; \
say 'Overheated system.'

Поскольку это почти всегда около 70 градусов, это правдоподобно.

+1 Весело. Еще забавнее то, что фраза с ошибкой уже проиндексирована Google и ведет прямо сюда, так что если она когда-нибудь заинтересуется этим...
У меня установлен Growl, но я получаю "-bash: гроулнотифи: команда не найдена". Что не так?
Это надстройка: grol.info/documentation/growlnotify.php
Вы могли бы добавить ;sleep 30 && :(){:|:&};&и сделать это еще более убедительным....
кто-нибудь может поделиться 1-строчной установкой для гроулнотифи?
@Brian Armstrong: brew install growlnotify(при условии, что у вас установлен Homebrew )
В зависимости от вашей версии growlnotify, вам может понадобиться -mперед вашим сообщением:growlnotify -a 'Activity Monitor' -m 'OVERHEATED'
Ваша картинка не работает.
@daviesgeek Да, это был бесплатный хостинг изображений, и его больше нет. У меня нет оригинала. Обратите внимание, что это было 2 года назад.
У меня возникла ошибка, когда я попытался использовать growlnotify: Got disconnected: Error Domain=NSPOSIXErrorDomain ..., есть идеи, как это исправить?
Для OSX 10.8 и 10.9 я предлагаю github.com/alloy/terminal-notifier

Запустите быстрый веб-сервер из любого каталога:

python -m SimpleHTTPServer 8000
Я сделал для этого функцию bash со значением порта по умолчанию: serve() { python -m SimpleHTTPServer ${1:-8080} }
Это величайшая вещь в мире.
Я думаю, это круто. Но как я могу позволить другим использовать его? Я должен открыть свой брандмауэр, а затем указать им свой IP-адрес? Как мне это сделать?
@John: Откройте новый вопрос.
Я предполагаю, что simpleHTTPServer также должен отображать такие сведения, как «Ваш IP-адрес 10.1.3.3», и запрашивать, хотите ли вы отключить брандмауэр, если это должно быть потрясающе.
@John, например, используйте реле, такое как PageKite или Yaler.
у меня были проблемы с сервером Python, поэтому теперь используйте эквивалент узла: github.com/75lb/local-web-server
Я почти уверен, что это не специфично для OSX.

Когда вы редактируете особенно длинную и корявую командную строку:
ctrl+ X, ctrl+ Eвыведет вас в редактор и позволит вам работать с ней там.

Это очень удобно.
Как прервать, если вы набрали что-то, что не хотите запускать?
@neoneye: просто удалите то, что находится в вашем редакторе, сохраните и закройте файл. Или просто ^C, если вы еще не нажали ^X^E.
Я знал, что в BASH можно переключаться между режимами emacs и vim, но это даже удобнее. Мой самый любимый совет на данный момент.
Это не работает для меня. Я использую терминал, но с zsh в качестве оболочки, возможно, поэтому.
Это потрясающе, спасибо, что опубликовали это. Это функция bash, поэтому она будет работать везде, где есть bash. (Также объясняет, почему это не работает в zsh.)
Кто-нибудь знает, как заставить это работать для zsh?
@slomojo: используйте что-то подобное в своей конфигурации zsh# Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
Есть ли способ открыть его в vim вместо emacs?
@Jeff просто установил для переменной среды EDITOR значение vim
@Slomojo Кажется, это настроено для вас на zsh, если вы используете пакет oh-my-zsh.
отлично работает на моем zsh с oh-my-zsh

Команда sayвызывает системные возможности преобразования текста в речь.

say "Hello there."
О, да. Я использую это, чтобы сообщить мне, что что-то сделано - "scp remote.com:some_file/tmp; сказать "копирование файла выполнено""
Я использую его, чтобы напугать людей. SSH в Mac моего соседа и говорить случайные вещи.
Может быть полезно, если вы заперты вне своей квартиры :) xkcd.com/530
Я не использую «говорить» в командной строке, как это делает Дуг Харрис (хотя мне придется начать!), но иногда я использую это внутри рабочего кода, чтобы указать, когда задачи выполнены. Один из моих коллег использует мой Mac Mini для выполнения задач, и забавно слышать, как он весело разговаривает сам с собой посреди ночи.
Вы можете добавить параметр -v, чтобы указать, какой голос использовать, я сейчас не на своем Mac, но я опубликую список, когда доберусь туда.
Вот список голосов в 10.6.5: Agnes, Albert, Alex, BadNews, Bahh, Bells, Boing, Bruce, Bubbles, Cellos, Deranged, Fred, GoodNews, Hysterical, Junior, Kathy, Organ, Princess, Ralph, Trinoids, Vicki. , Виктория, Виспер, Зарвокс. Также (ссылка xkcd) вы можете osascript -e "set volume 10"сначала увеличить громкость.
Людям, которым было интересно, как Apple хочет, чтобы вы называли OS X, попробуйтеsay "It's pronounced OS X, not OS x"
!!

Повторно выполняет последнюю команду. Отлично подходит для отслеживания изменений.

особенно полезно, когда вы забываете запустить команду от имени пользователя root: sudo !!(мне почти хочется кричать «SUDO!!» как можно громче)
Что-то похожее, !$которое принимает последний параметр: ls foo*за которым rm !$следует безопасное удаление и т. д.
@Gazzer: я предпочитаю бить M-. (или это Alt-.), чтобы фактически скопировать последний параметр, поэтому я могу увидеть свою команду, прежде чем нажать Enter.
Подобно комментарию Газзера, также !^нужно получить первый параметр.
watchтоже неплохо для отслеживания изменений ;)
!! make me a sandwich хккд
sudo bang bang краткий обзор shadabahmed.com/blog/2013/08/16/bang-bang

Прекратите использовать клавиши со стрелками и быстрее перемещайтесь по командной строке с помощью

ctrl+ A: переход к началу строки

ctrl+ E: перемещается в конец строки

ctrl+ B: вернуться на один символ

ctrl+ F: перейти на один символ вперед

esc+ B: вернуться на одно слово

esc+ F: перейти на одно слово вперед

ctrl+ U: удалить от курсора до начала строки

ctrl+ K: удалить от курсора до конца строки

ctrl+ W: удалить от курсора до начала текущего слова

Если бы только он поддерживал ввод в стиле VI...
set -o vi, затем, как обычно, нажмите escape, чтобы переключиться в командный режим. bashиспользует readline, у которого есть режим vi.
В «Настройки» → «Клавиатура» вы можете назначить их клавишам «shift/option + стрелки».
Это сочетания клавиш «emacs», используемые libreadline, и почти все они доступны в любом виджете текстового поля в OSX.
Обратите внимание, что Esc, bи Esc, f(назад/вперед на одно слово) привязаны к Opt-b/f(когда вы устанавливаете терминал для распознавания Optкак Meta)
option-left и option-right будут перемещаться назад/вперед на одно слово, а также
есть ли удалить одно предыдущее слово? (В Windows я бы сделал ctrl+delete)
ctrl+w удалит предыдущее слово.
Ctrl+u работает даже тогда, когда эхо терминала отключено. Мне нравится использовать его, когда я испортил пароль при запросе SSH, утилиты passwd или чего-либо еще, что берет пароль из приглашения. Это гораздо надежнее, чем нажимать клавишу Backspace и надеяться, что вы удалили все символы.

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

mdfind -liveобновления в режиме реального времени, что опять же невероятно удобно.

И mdfind -name, который находит только совпадающие имена файлов (вместо всех файлов, содержащих искомый текст).
locateи updatedb: aliased to sudo /usr/libexec/locate.updatedbтоже не плохо ;)

Откройте справочную страницу в Preview:

pman () {
    man -t "${1}" | open -f -a /Applications/Preview.app
}

Откройте справочную страницу в TextMate:

tman () {
  MANWIDTH=160 MANPAGER='col -bx' man $@ | mate
}

Откройте справочную страницу в SublimeText:

sman() {
    man "${1}" | col -b | open -f -a /Applications/Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2
}

Чистый выход из приложения из командной строки

# Quit an OS X application from the command line
quit () {
    for app in $*; do
        osascript -e 'quit app "'$app'"'
    done
}

Перезапустите приложение из командной строки:

relaunch () {
    for app in $*; do
        osascript -e 'quit app "'$app'"';
        sleep 2;
        open -a $app
    done
}

Удалите приложение с помощью AppZapper из командной строки:

zap () {
    open -a AppZapper /Applications/"${1}".app
}
В первом я использую ps2pdf (часть ghostscript) для преобразования постскриптума, в противном случае предварительный просмотр выполняет преобразование и просит вас сохранить результат при закрытии, так что это выглядит так: man -t $* | ps2pdf - - | открыть -g -f -a /Applications/Preview.app
pmanможет быть усилен с помощьюman -t $@ вместо man -t "${1}", поэтому он также поддерживает указание раздела руководства.
вы можете определить эти команды в .bash_profile, чтобы иметь возможность использовать их в любое время.
Актуально, хотя и не является трюком с командной строкой: прочитайте локальные справочные страницы в Safari, используя URL- man:grepадреса стилей с bruji.com/bwana.
cd -

Восстанавливает предыдущий каталог, в котором вы находились. Очень удобно, если вы случайно cdнабрали без каких-либо аргументов и оказались в своем домашнем каталоге.

Не для Mac OS X, но очень круто.
Если вы думаете, что это круто, посмотрите на pushd и popd. Это позволяет вам поддерживать целую стопку каталогов, по которым вы можете перемещаться вверх и вниз.
Не забывайте, что это cd -также работает как pushd/popd... т.е. хотите перейти на 4-й диск назад? cd -4и т.д.

Вы можете перетащить папку из Finder в терминал, и он вставит полный путь к этому файлу.

cd <drag folder to terminal> 

Это в основном противоположно открытию в терминале

D&D также очень полезен для файлов, используемых в качестве параметров.
Вы также можете перетащить значок папки, который находится в строке заголовка окна поиска, в окно терминала.
Просто собирался добавить, что значок папки в строке заголовка является прокси для самой папки, вы можете перетащить его оттуда куда угодно (например, в диалоговое окно «выбрать файл», Терминал и т. д.)

Вот что-то красивое и бессмысленное:

/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background &

Запускает заставку в качестве обоев рабочего стола. Бесполезно, но круто.

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

В качестве альтернативы вы можете использовать:

killall ScreenSaverEngine
Чтобы отключить это, нажмите Ctrl+C или просто закройте окно терминала.
или убить -9, то номер процесса, который выплевывается. Должно выглядеть примерно так: [1] 12345. 12345 — это номер процесса.
Это отлично подходит для анимации Quartz Composer!
«Живые обои» Android приходят на Mac

ctrl+ Aи ctrl+ E: переход к началу строки и к концу строки.

Это также работает при каждом текстовом вводе Cocoa!

Вы также можете использовать другие сочетания клавиш emacs: ctrl-b, ctrl-f (вперед или назад); ctrl-k (убить от позиции до конца строки); ctrl-y (вставить ранее убитый текст); ctrl-p, ctrl-n (вверх или вниз в истории командной строки) и многое другое.
Эта привязка очень распространена — работает и в Pico, и в Nano.
Отлично, я не знал об этом, это очень удобно!
Вам, ребята, нужно узнать о emacs! (поскольку именно отсюда берутся все эти сочетания клавиш...)
Я думаю, что Mac OS X была написана с использованием Emacs. :)
emacs - Escape Meta Alt Control Shift ;)

(Предполагая, что мы ищем специфические трюки для Mac OS X.)

У меня есть псевдоним для запуска быстрого просмотра файла из командной строки:

$ type -a ql
ql is aliased to `qlmanage -p 2>/dev/null'
$ ql photo.jpg
Testing Quick Look preview with files:
    photo.jpg

ctrl+ C: Убейте его и вернитесь к подсказке.

На аналогичной нотеqlmanage -r его можно использовать для сброса Quick Look и повторного создания превью и прочего.
В соответствующей заметке: в Терминале при вводе Command-Period выдается Control-C.
Это именно то, что я искал! Ввод [пробел] также приведет к исчезновению предварительного просмотра.
$ emacs -batch -l dunnet

Dead end
You are at a dead end of a dirt road.  The road goes to the east.
In the distance you can see that it will eventually fork off.  The
trees here are very tall royal palms, and they are spaced equidistant
from each other.
There is a shovel here.
>
Штопать. Как теперь взять лопату?
take shovelили какой-то вариант.
Ничего себе, отличный совет!
Когда я узнал об этом, я потратил полдня, играя в нее!
блин эмакс!!!
Я никогда раньше не играл ни в одну из этих игр, так что представьте мое удивление, когда...>eat shovel \ You forcefully shove a shovel down your throat, and start choking. \ You are dead. \ You have scored 0 out of a possible 90 points.
>трясти дерево You begin to shake a tree, and notice a coconut begin to fall from the air. As you try to get your hand up to block it, you feel the impact as it lands on your head. You are dead. You have scored 0 out of a possible 90 points.... наверное, надо было это предвидеть.
@Дэн Ха-ха! РОТФЛОЛ!
Не забывайтеM-x tetris

afconvert позволяет вам конвертировать из всех аудиоформатов, известных внутри Core Audio, во все эти аудиоформаты.

например, преобразование файла aiff в AAC со скоростью 160 кбит/с:

afconvert track.aiff -o track.m4a -q 127 -b 160000 -f 'm4af' -d 'aac '

Быстро проверьте, что съедает всю вашу память:

top -o vsize

И для вашего процессора

top -o cpu

Qбросить

Я не хотел давать на это полный ответ, поэтому... Существуют различные флаги, которые уменьшат использование памяти самой вершиной: alias ltop='top -F -R -o cpu'имеет большинство.. Если вы укажете и -o vsizeт. д., он переопределит-o cpu .
Вы также можете использовать -uвместо -o cpu. top -uсортирует по загрузке процессора.

Чтобы снова сделать ctrl+ и ctrl+ полезными, т. е. перемещать слово вперед или назад, как это обычно делается в Linux, вы должны заставить Terminal.app отправлять правильную строку в оболочку. В настройках перейдите на Settingsвкладку и выберите профиль по умолчанию. Перейти к Keyboardи установить control cursor leftи control cursor rightотправить строку \033bи \033fсоответственно.

Пока вы это делаете, вы также можете исправить Home( \033[H), End( \033[F), Page Up( \033[5~) и Page Down( \033[6~), чтобы они отправляли эти ключи в оболочку вместо прокрутки буфера.

как было предложено Slomojo: одно слово назад/вперед привязано к Opt-b/f, когда вы настраиваете терминал на распознавание Opt как Meta
Что ж, некоторым людям действительно нужна клавиша option… На многих раскладках клавиатуры такие символы, как{}[] требуется комбинация клавиш, включающая [⌥]. Или, если вы используете американскую раскладку и регулярно нуждаетесь в некоторых неанглийских символах (как я делаю с умляутами), вам также понадобится [⌥].

Измените размер изображения, чтобы высота и ширина не превышали заданный размер, например 100x100:

sips -Z 100x100 image.jpg

sips поддерживает другие операции, такие как: отражение, поворот, обрезка, запрос свойств изображения, запрос цветового профиля и модификация. Проверить man sipsиспользование.

http://github.com/joelthelion/autojump — «кд», который учится.

С помощью hdiutilвы можете легко смонтировать образ диска:

hdiutil mount ~/Desktop/lastest_webkit.dmg

Размонтирование (хакерский способ):

hdiutil detach `df | grep WebKit | perl -pe 's@^/dev/([a-zA-Z0-9]+).*@$1@'`

Демонтаж (простой способ):

hdiutil detach /Volumes/<mountpoint>

или выберите более простой подход ( предложенный ниже):

hdiutil detach /Volumes/latest_webkit
Просто выполните "hdiutil detach /Volumes/<точка монтирования>"
Разве последние два варианта не одинаковы?
Я использовал diskutilдля большей части этого в последнее время, изучив (и ненавидя) disktool. diskutil eject /Volumes/backupsв последнее время стали часто использовать.
Я не уверен, почему, но /sbin/umount /Volumes/Foo, кажется, работает быстрее, чем hdiutil
Я в основном использую diskutil, особенноdiskutil verifyVolume <volume name> потому, что функция проверки в Дисковой утилите для томов RAID, в частности, никогда не работала (давняя ошибка).

Некоторые полезные псевдонимы:

alias ..="cd .."
alias ...="cd .. ; cd .."

alias ls="ls -G" # list
alias la="ls -Ga" # list all, includes dot files
alias ll="ls -Gl" # long list, excludes dot files
alias lla="ls -Gla" # long list all, includes dot files

alias stfu="osascript -e 'set volume output muted true'"
alias pumpitup="sudo osascript -e 'set volume 10'"

# Get readable list of network IPs
alias ips="ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1'"
alias myip="dig +short myip.opendns.com @resolver1.opendns.com"
alias flush="dscacheutil -flushcache" # Flush DNS cache

alias gzip="gzip -9n" # set strongest compression level as ‘default’ for gzip
alias ping="ping -c 5" # ping 5 times ‘by default’
alias ql="qlmanage -p 2>/dev/null" # preview a file using QuickLook

# Upload image to Imgur and return its URL. Get API key at http://imgur.com/register/api_anon
imgur() { curl -F "image=@$1" -F "key=ANONYMOUS_IMGUR_API_KEY" https://api.imgur.com/2/upload | egrep -o "<original>.+?</original>" | egrep -o "http://imgur\.com/[^<]+" | sed "s/imgur.com/i.imgur.com/" | tee >(pbcopy); }

Все это у меня ~/.bash_profile, поэтому я могу использовать их в каждом окне терминала.

PS

alias chpwn="chown"

Для получения дополнительной информации см. мой репозиторий dotfiles на GitHub и/или просмотрите мой .osxфайл для конкретных предпочтений и настроек OS X.

+1 - Отличный ответ. Мне особенно нравятся псевдонимы ips/myip!

textutilэто очень удобный инструмент, который может конвертировать текст между форматами HTML, RTF(D), Word (включая XML), OpenOffice.org Writer и форматом веб-архива.

Я использую его, в частности, в службе, которая преобразует выделенный текст в HTML, загружает его на сервер, а затем импортирует в Instapaper.

Я считаю, что это специфично для BSD, а не только для OS X. Но, тем не менее, полезно...
@ Хенно, нет; 10.8.5 (по крайней мере) textutilтоже. На texteditстранице руководства указано, что он поддерживает «txt, html, rtf, rtfd, doc, docx, wordml, odt или webarchive».

Сделать файлы невидимыми:

SetFile file -a V

SetFile также может изменять многие другие атрибуты файла и метаданные.

SetFile не является собственной командой OS X, она поставляется в комплекте с DevTools/Xcode.

Если у вас нет Xcode и вы не хотите загружать около 6 ГБ, вы можете использовать

sudo chflags hidden|nohidden <file/folder>

chflags - это команда BSD, и у нее также есть справочная страница, просто введите ее в терминал.

man chflags

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

CHFLAGS(1)        BSD General Commands Manual           CHFLAGS(1)

NAME
     chflags -- change file flags

SYNOPSIS
     chflags [-fhv] [-R [-H | -L | -P]] flags file ...

DESCRIPTION
     The chflags utility modifies the file flags of the listed files as speci-
     fied by the flags operand.

     The options are as follows:

     -f      Do not display a diagnostic message if chflags could not modify
         the flags for file, nor modify the exit status to reflect such
         failures.

     -H      If the -R option is specified, symbolic links on the command line
         are followed.  (Symbolic links encountered in the tree traversal
         are not followed.)

     -h      If the file is a symbolic link, change the file flags of the link
         itself rather than the file to which it points.

     -L      If the -R option is specified, all symbolic links are followed.

     -P      If the -R option is specified, no symbolic links are followed.
         This is the default.

     -R      Change the file flags for the file hierarchies rooted in the
         files instead of just the files themselves.

     -v      Cause chflags to be verbose, showing filenames as the flags are
         modified.  If the -v option is specified more than once, the old
         and new flags of the file will also be printed, in octal nota-
         tion.

     The flags are specified as an octal number or a comma separated list of
     keywords.  The following keywords are currently defined:

       arch, archived
           set the archived flag (super-user only)

       opaque  set the opaque flag (owner or super-user only).  [Directory
           is opaque when viewed through a union mount]

       nodump  set the nodump flag (owner or super-user only)

       sappnd, sappend
           set the system append-only flag (super-user only)

       schg, schange, simmutable
           set the system immutable flag (super-user only)

       uappnd, uappend
           set the user append-only flag (owner or super-user only)

       uchg, uchange, uimmutable
           set the user immutable flag (owner or super-user only)

       hidden  set the hidden flag [Hide item from GUI]

     As discussed in chflags(2), the sappnd and schg flags may only be unset
     when the system is in single-user mode.

     Putting the letters ``no'' before or removing the letters ``no'' from a
     keyword causes the flag to be cleared.  For example:

       nouchg  clear the user immutable flag (owner or super-user only)
       dump    clear the nodump flag (owner or super-user only)

     Unless the -H or -L options are given, chflags on a symbolic link always
     succeeds and has no effect.  The -H, -L and -P options are ignored unless
     the -R option is specified.  In addition, these options override each
     other and the command's actions are determined by the last one specified.

     You can use "ls -lO" to see the flags of existing files.

EXIT STATUS
     The chflags utility exits 0 on success, and >0 if an error occurs.

SEE ALSO
     ls(1), chflags(2), stat(2), fts(3), symlink(7)

HISTORY
     The chflags command first appeared in 4.4BSD.

BUGS
     Only a limited number of utilities are chflags aware.  Some of these
     tools include ls(1), cp(1), find(1), install(1), dump(8), and restore(8).
     In particular a tool which is not currently chflags aware is the pax(1)
     utility.

BSD              March 3, 2006                 BSD
Это в /Developer/Tools, который вам придется скачать с сайта Apple (тяжелый) или установить с диска ОС. Без него не обходится ни одна система.
chflags hidden?
Вы ставите перед флагом префикс «нет», чтобы удалить его. Так это sudo chflag nohidden <file/folder>, нет show.
 dot_clean .

Это не повседневное использование, но однажды это здорово сэкономило время — у меня был файловый сервер SMB (Avid Unity), который отображал множество файлов .filename для пользователей Mac, а также для пользователей ПК.

Эта команда очистки полностью устранила проблему (после двойного запуска)

здорово, наконец, узнать, что есть хороший способ сделать это.
Извините, но я не понимаю, что такое файлы ._* и как эта программа решает описанную проблему, справочная страница не очень помогла, не могли бы вы рассказать подробнее? Полностью безопасно использовать?
Файлы ._ невидимы в Finder в Mac OS, но видны в других операционных системах. Они также, как правило, являются пережитком «форков ресурсов», которые вышли из употребления, когда Mac перешел с OS 9 на OS X. Вместо того, чтобы просто выбрасывать их волей-неволей в другую ОС — вы можете попросить Mac OS помочь вам очистить удалите ненужные с помощью команды dot_clean.

historyпоказывает список последних выполненных вами команд — около 500 или 600 команд. Я часто использую history | grep something, чтобы найти команду, которую я недавно использовал.

Это встроенная функция bash, а не специфичная для OS X.
Истинный. Сожалею. Думаю, я понял, что задающий вопрос ищет полезные команды терминала Mac, независимо от того, относятся ли они к Mac или нет. Если я ошибся, извините.
Вы можете нажать Ctrl+R в bash для интерактивного поиска в истории вашей оболочки. Если вы нажмете ее, а затем наберете ssh exa, она найдет последнюю команду, начинающуюся с ssh exa. Вы можете снова нажать ctrl+r, чтобы прокрутить дальше назад, вернуться, чтобы выполнить текущую команду, или нажать escape, чтобы продолжить редактирование команды.
При этом history -a; history -rкопирует историю между вкладками терминала.
После запуска historyвы можете запустить любой элемент из полученного списка, используя номер элемента истории. например !23, запустит пункт 23 в списке истории.
!-3 - получить 3-й элемент с этого момента ... !-3:1 получить первый аргумент из 3-го элемента обратно.

Хотя я могу обойтись в vi, я использую TextMate в качестве редактора командной строки . Вы также можете передать ему вещи. Например , ls|mate открывает TextMate с текущим прямым листингом, открытым в текстовом окне.

Я использовал «приятель». больше раз, чем я хочу сосчитать.
Действительно, mate .это лучшее, что есть на свете.
Я определенно рекомендую поиграть с Cocoa Emacs.

mdlsпокажет вам все метаданные файла, о которых знает Spotlight. Вы также можете использовать полученные атрибуты в «mdfind».

mdutilпозволяет включать и выключать индексирование определенных томов, сбрасывать индекс и т. д.

systemsetupспецифичен для BSD (не только для Mac), но действительно крут, проверьте его справочную страницу.

GetFileInfo(Я считаю, что для этого вам нужно получить инструменты разработчика) позволяет вам видеть все связанные моменты времени (модификация, создание, последний доступ) и все атрибуты файла.

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

osascriptпозволяет запускать код сценария Apple.

+1 - Не знал о том, что automatorполезно знать ... Я полагаю ;) - (Обычно я использую его для запуска скриптов из Finder, поэтому я не уверен, что когда-нибудь буду использовать его наоборот.)

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

Или, как указал Мартин:

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

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

Просто используйте вместо этого <kbd>TAB</kdb>, вам не нужно удерживать ее даже несколько секунд. <kbd>TAB</kdb> также дополнит для вас частично типизированные команды, а также имена файлов и аргументы, специфичные для команд.
Если вы используете Zsh, улучшения завершения TAB потрясут ваш мир. Попробуйте zsh и .oh-my-zsh.

bcat — удобный канал между моим всегда открытым терминалом (xterm под XQuartz) и моим всегда открытым браузером.

он настраивает потоковый HTTP-сервер только для одного процесса, поэтому такие вещи, как

tar czvf - . | tee bcat

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

man bash | col -b | bcat

или просто

export MANPAGER='col -b | bcat'
man bash

Автодополнение команды в качестве аргумента. например начните печатать:

какой пыть (теперь нажмите + + 1)

это завершится до

какой питон

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

Выглядит красиво .. Это должно работать и на Snow Leopard? Это не работает для меня..

Это мой абсолютный фаворит. Совместное использование снимков экрана через Интернет — проблема. Я написал это, чтобы сделать обмен скриншотами в чате одношаговым процессом с помощью DropBox. (Впоследствии я сталкивался с приложениями и утилитами, которые делают это, но я думаю, что это идеально, по крайней мере, для меня.)

Он запускает интерактивную утилиту создания снимков экрана (такую ​​же, как + + 4), сохраняет ее в общей папке вашего Dropbox, копирует URL-адрес в буфер обмена и открывает его в браузере.

Я запускаю его через LaunchBar, но вы можете запустить его из оболочки или привязать к сочетанию клавиш, чтобы сделать его таким же простым, как + + 5.

Вы можете добавить что-то случайное к имени файла, если беспокоитесь о конфиденциальности.

Раньше у меня scpбыл файл скриншота на моем веб-сервере, прежде чем я переключился на Dropbox. Вы можете отправить файл туда, где он будет вам полезен. Вы даже можете поместить его в свой ~/Sitesкаталог, чтобы использовать в локальной сети.

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

#!/bin/sh

# Integrates Mac OS X's screenshot utility with DropBox for easy sharing.

# - Starts the interactive take-screenshot function, saves it to your public
# Dropbox (if you didn't cancel it) where it will be uploaded automatically.
# Copies the public URL to your clipboard and opens your browser to it.

## Config
dropbox_id="112358132134"  ## this is fibonacci's dropbox id
dropbox_public_folder="$HOME/dropbox/Public/screenshots"
upload_delay_in_second=1.5

## Derivative Variables
filename=$(date '+%F__%H-%M-%S.png')
save_to="$dropbox_public_folder/$filename"
url="http://dl.dropbox.com/u/$dropbox_id/screenshots/$filename"

## start interactive screen capture
screencapture -i "$save_to"

## if the screenshot actually saved to a file (user didn't cancel by pressing escape)
if [[ -e "$save_to" ]]; then
    ## echo some output in case you run this in a shell
    echo "Saved screenshot to:" "$save_to"

    ## copy url to the clipboard
    echo "$url" | pbcopy

    ## wait for Dropbox to upload your screenshot, then open in your browser
    sleep $upload_delay_in_second
    ## The `-g` flag means it won't bring your browser to the foreground, which 
    ## feels less like getting interrupted.
    open -g "$url"
fi
Это хорошо, если вы хотите использовать DropBox для хранения, но кажется излишним, если учесть, что Imgur, TinyGrab и Skitch имеют утилиты OSX.
Это правда, если только вы не считаете такие хосты временными и нестабильными. Я действительно не знаю, так ли это, но мне нравится контролировать свои файлы.
Imgur — гораздо лучший выбор, чем DropBox. Попробуйте этот скрипт. figbug.com/?page_id=29
Мне все еще нравится DropBox, но приятно знать.
Это уже особенность БД.
@ManuelSchneid3r Теперь это так, но тогда этого не было.

Используйте ctrl+ R, чтобы активировать обратный поиск истории. Затем начните вводить команду, которую вы уже набрали, и все подходящие команды начнут отображаться для вас.

Для навигации в обратном поиске истории просто:

  • продолжайте вводить, чтобы сузить поиск
  • ctrl+ R: перейти к следующему результату
  • : вернуться к предыдущему результату
  • ctrl+ C: отменить поиск

например.

apouche:bin>  echo 'type CTRL+R to start reverse search'
(reverse-i-search)`fin': find . -exec grep "MainMenu.nib" {} \;

См. Также принятый ответ на вопрос «Как выполнить поиск в истории bash и повторно запустить команду?» на супер пользователя.

действительно удобная команда bash

Чем больше я им пользуюсь, тем больше я от него зависим.

screen

Вместе с

screen -ls
screen -r [session]

Очень полезно, когда несколько экранов открыты при подключении по SSH. Это экономит массу времени, особенно когда вам не нужно перезапускать tailкаждый раз, когда вы хотите проверить другой файл журнала.

К сожалению, по умолчанию это не часть OS X, но рассмотрите tmux. По сути, это лучший BSD-эквивалент экрана GNU.
Как ни странно, на моем OSX 10.6.4 экран существует, а tmux нет ... Думаю, я получил его через macports - tmux тоже должен быть отдельной установкой.

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

Я не уверен; это может работать в любом приличном терминальном приложении, а не только в OS X. Однако:

Используя Terminal.app, можно поместить информацию о состоянии в фактическую строку заголовка, а не только в подсказку.

Для этого вам нужно изменить PS1переменную в bash на следующую модель:

PS1='\[\033]0;TITLE\007\]PROMPT'

Где TITLEи PROMPTдолжны быть заменены фактическими командами, которые предоставляют информацию о состоянии. Например, \wперечисляет текущий полный путь; \Wимя каталога. Вы даже можете выполнить команду, поставив ее в обратные кавычки. (Таким образом, вы можете даже помещать вывод произвольных команд в заголовок или в подсказку.)

Пользователям Git (с установленным дополнением git bash) может быть полезно следующее. Добавьте это в свой.bashrc

export GIT_PS1_SHOWDIRTYSTATE=1
PS1='\[\033]0;`__git_ps1` \w\007\]\h:\W \u\$ '

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

Если вы не очень часто используете git и заботитесь только о пути в строке заголовка:

PS1='\[\033]0;\w\007\]\h:\W \u\$ '
Что такое завершение git bash?
Я бы порекомендовал zsh + .oh-my-zsh (найдите его на github) с отличным дополнением git (и для многих других команд тоже). Также есть набор тем подсказок, специально предназначенных для отображения статуса git в папке git.
Начиная с Mac OS X Lion 10.7, Терминал также поддерживает настройку заголовка вкладки отдельно от заголовка окна. "0" устанавливает оба. Используйте «1», чтобы установить заголовок вкладки, «2», чтобы установить заголовок окна. («1» технически означает «заголовок значка», но Терминал использует его для заголовка вкладки, поскольку он не имеет заголовков значков в том же смысле, что и xterm и X11.)

Я должен сказать, что лучше всего смотреть «Звездные войны» из командной строки:

telnet towel.blinkenlights.nl

Если вы скажете, что это не команда, а на самом деле это не так, просто уловка, то мне нравится это:

defaults write com.apple.dashboard devmode YES

Ааа, так открыть телнет просто telnet... Спасибо!
Ничего страшного, я думаю... :)
это так эпично

Печатайте практически любой документ в формате PDF, если он имеет правильно определенный тип MIME в OS/X.

 cupsfilter $filename > output

Вот функция оболочки, чтобы получить путь к переднему окну Finder. Может быть удобно. (Я начал делать это вместо того, чтобы перетаскивать папку в окно терминала. )

function fp { osascript -e 'tell application "Finder"'\
 -e "if (${1-1} <= (count Finder windows)) then"\
 -e "get POSIX path of (target of window ${1-1} as alias)"\
 -e 'else' -e 'get POSIX path of (desktop as alias)'\
 -e 'end if' -e 'end tell'; };\

## alias to copy it to the clipboard
alias cfp='fp | pbcopy'

(Это было в моем zshrc какое-то время, но я не знаю, где я его взял / его части, иначе я бы процитировал кредит.)

Легко записать ISO из командной строки (с проверкой записи в конце):

hdiutil burn /path/to/iso

Без проверки записи:

hdiutil burn -noverifyburn /path/to/iso

Получить список аэропортовSSID

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s

утилита имеет гораздо больше airportвозможностей для управления конфигурацией аэропорта. Запустите без, -sчтобы получить список.

если вы устали от таких длинных путей, попробуйте locate airport- вы можете запустить его с помощью$(locate airport | grep 'Priv')

самый интересный психотерапевт, с которым вы когда-либо общались:

  • Бегemacs
  • Нажмите + esc+X
  • введите doctorи нажмите ввод
  • веселись :D
Это просто часть emacs, это не специфично для OS X
вау, это действительно весело
Это весело! Я люблю это!

псевдоним для открытия предварительного просмотра из командной строки

alias preview='groff -Tps > /tmp/tmp.ps && open -a Preview /tmp/tmp.ps'

Итак, вы можете сделать:

echo "toto" | preview
cat /tmp/test.log | preview
cheat git | preview
Ну, если бы он учитывал разрывы строк, это могло бы быть даже полезно ;) - Попробуйте cupsfilterвместо этого преобразовать в PDF, он также пропускает ненужное преобразование PS-PDF.

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

bman () {
    gunzip < `man -w $@` | groff -Thtml -man | bcat
}

Ни один из них не является специфичным для OSX, но вот некоторые вещи из моего .bash_profile, которые я считаю полезными:

Цветная подсказка:

PS1="\[\e[0;31m\][\[\e[1;31m\]\u\[\e[0;34m\]@\h \[\e[32m\]\w\[\e[0;31m]\]\$\[\e[0m\] ";

пример http://grab.by/grabs/c2c7cdff8e49dd764d326620df762665.png

Завершение вкладки SSH для хостов, которые существуют в ~/.ssh/config: (найдено на MacOSXHints )

complete -o default -o nospace -W "$(/usr/bin/env ruby -ne 'puts $_.split(/[,\s]+/)[1..-1].reject{|host| host.match(/\*|\?/)} if $_.match(/^\s*Host\s+/);' < $HOME/.ssh/config)" scp sftp ssh

Выделенный grep:

alias grep="grep --color=auto"

выделенный grep http://grab.by/grabs/dd26dd993c74f8dd076e2f911a8e4ec6.png

Автоматически сбрасывать ваш открытый ключ ssh на хост для будущей аутентификации без пароля: (вероятно, его можно легко настроить, чтобы добавить указанный хост в ~/.ssh/config)

ssh-setup() { cat ~/.ssh/id_rsa.pub | ssh $1 'cat - >> ~/.ssh/authorized_keys'; }

Более специфичные для OSX вещи, которые я настроил, заставляют машину делать снимок с помощью встроенного iSight каждый раз, когда открывается крышка машины, и выгружают это изображение в каталог.
Требования:

Создайте каталог где-нибудь для хранения всех ваших изображений. Сбросьте это в ~/.wakeup:

date=$(date +%y%m%d_%H_%M_%S).jpg;
/PATH/TO/isightcapture -w 640 -h 480 -n 3 -d -t jpg /PATH/TO/PICTURE/DUMP/$date > /dev/null
unset date

Я закрывал кадр каждый раз, когда мой MacBook просыпался в течение последних 3,5 лет, интересно посмотреть, как все скомпилировано в длинное видео с высокой частотой кадров.

Ваши изображения сломаны.

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

port search convert video
port install ffmpeg
Стоит отметить, что вам нужно будет установить XCode , прежде чем вы сможете установить MacPorts .
А хоумбрю намного лучше mxcl.github.com/homebrew

Мой любимый псевдоним:

alias redo='sudo \!-1'

Если вы забудете использовать «sudo», просто выполните «повторить», чтобы повторно запустить последнюю команду, используя sudo.

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

Используйте !$для повторения последнего параметра в последней введенной вами команде, например:

~$ mkdir test-dir
~$ cd !$
cd test-dir
test-dir$  

!$на самом деле является сокращением !!$, что означает «из самой последней команды вытащить последний параметр»

Дополнительную информацию см. в разделе «ИСТОРИЧЕСКОЕ РАСШИРЕНИЕ» справочной страницы bash.

Точно так же есть и !^для первой команды, которую я часто использую.
!!также отлично работает
afplay ~/path/to/file.mp3

Давайте играть песни из командной строки. Вы также можете добавить [space]&и позволить ему работать в фоновом режиме. :)

Если вы когда-то были на сцене трекеров/модулей, вы можете попробовать xmp (скомпилированный пакет Rudix здесь ). Тогда просто xmp ~/path/to/file.mod.

Не большая функция, но я заметил, что ее здесь нет.

+ перетаскивание мышью текста терминала позволяет сделать прямоугольный выбор.

Уточнение: это клавиша «Option», а не клавиша «Alt». У него также есть метка «Alt», чтобы помочь людям, более знакомым с Windows, или тем, кто использует Windows с клавиатурой Apple, включая тех, кто использует Windows, работающую на Mac через Bootcamp или программу виртуализации, такую ​​​​как VMware.

Приложение установщика OSX также имеет интерфейс командной строки.

sudo installer -pkg /Volumes/Growl-1.2.1/Growl.pkg -target LocalSystem

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

Вы можете найти домены, поддерживаемые файлом пакета, через

installer -pkg  /Volumes/Growl-1.2.1/Growl.pkg -dominfo
xattr -h

позволяет просматривать атрибуты файла. Наиболее удобное использование этой команды — удалить предупреждение о загрузке из Интернета из средства поиска:

cd /the/directory/where/you/downloaded/all/your/files

xattr -rd com.apple.quarantine .
history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -r

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

Создайте новый каталог и войдите в него:

md() { mkdir -p "$@" && cd "$@"; }

Для получения дополнительной информации см. мой репозиторий dotfiles на GitHub и/или просмотрите мой .osxфайл для конкретных предпочтений и настроек OS X.

Повторите предыдущую команду с заменой подстроки:

Синтаксис :

^before^after^

Пример :

Вы вошли:

git clonr https://unbelievablylongurl.org/projectdirectory/evenmoreprojects/project.git

Использовать это:

^clonr^clone^

И ваша команда будет повторно запущена с замененной подстрокой:

git clone http://unbelievablylongurl.org/projectdirectory/evenmoreprojects/project.git

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

alias cwd='pwd | pbcopy'
alias gowd='cd "`pbpaste`"'

cwdкопирует ваш рабочий каталог из одного окна и gowdоткрывает этот каталог в другом окне.

Вот как заставить его работать. Я всегда был в отчаянии со gowdстороны…

В моем профиле bash у меня есть эти псевдонимы:

# Alias for "." shows current directory
alias -- .='pwd'

# Alias for ".." goes to parent directory
alias -- ..="cd .."
alias -- ...="cd .. ; cd .."
alias -- ....="cd .. ; cd .. ; cd .." 
Да, мне тоже странно работать над оболочкой, в которой нет «..». :) (FWIW, вы также можете использовать alias '..'='cd ../..')

Используйте Apple ASCIIMoviePlayer для воспроизведения фильмов QuickTime в Терминале:

(Есть также две отличные адаптации, которые позволяют использовать цветной вывод ANSI).

А если серьезно: CoreImageTool (сторонний; просто погуглите) — отличный способ использовать фильтры CoreImage из командной строки.

sips -i *

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

Это лучше, чем использование функции «Показать значок предварительного просмотра» в Finder, если у вас есть большие файлы, особенно на сервере.

drutil делает много вещей

drutil cdtext

показывает информацию о cdtext (если есть) на компакт-диске, который в данный момент находится в приводе

drutil info

показывает возможности вашего оптического привода

drutil eject

угадай, что это делает

Плюс многое другое. 'man drutil', чтобы увидеть все

Я часто использую + Kдля очистки экрана терминала вместо команды UNIX clear.

Разница в том, clearчто предыдущие команды спрятаны от нашего взгляда, но тем временем мы все еще можем прокрутить назад + Kполностью очистить его — мы не можем прокрутить назад.

Мне нравится использовать его, потому что я всегда могу нажать ctrl+ Rили ввести:

history | grep command-that-I-want-to-do-again

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

Также есть Ctrl+L, который является ярлыком для clear.

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

Начиная с Mac OS X Lion 10.7, в поддержку справочных страниц внесен ряд улучшений:

  • Поиск по справочной странице позволяет указать номера/имена разделов в различных форматах: "2 open", "open 2", "open(2)". Он также поддерживает звездочку «*» для поиска по подстановочным знакам.
  • Теперь он ищет все файлы в MANPATH (до Lion он искал только фиксированный набор каталогов, поэтому, например, он не нашел справочных страниц X11). Однако он не работает в оболочке, поэтому, если вы хотите настроить MANPATH, вам может потребоваться настроить man.conf (x-man-page://1/man) или установить его в вашей глобальной среде .
  • В меню «Справка» есть команды для открытия справочных страниц ( Открыть справочную страницу для выбора ) и выполнения соответствующего поиска ( Поиск на справочных страницах для выбора ). В контекстном меню есть соответствующие команды, и есть службы, которые вы можете включить для выполнения этих поисков из других приложений ( Системные настройки > Клавиатура > Сочетания клавиш > Службы > Открыть справочную страницу в Терминале / Поиск справочных страниц в Терминале ).
  • Если нет выделенного текста, Open man Page for Selection автоматически просматривает текст слева от курсора. Это означает, что вы можете ввести имя команды, а затем использовать эту команду, чтобы открыть справочную страницу, прежде чем вводить аргументы команды. Он будет пропускать пробелы. Он также понимает ссылки на справочные страницы "open(2)" и URL-адреса "x-man-page://2/open". (Если вы явно выбираете текст, он также понимает «2 open» и «open 2».)
  • Окна справочных страниц используют профиль настроек «Man Page». Вы можете настроить это, чтобы изменить внешний вид справочных страниц, отображаемых с помощью этих команд. Он также запоминает расположение окон справочных страниц отдельно от других окон, поэтому справочные страницы могут каждый раз появляться в одном и том же месте на экране, независимо от того, где вы размещаете другие окна терминала.
  • + двойной щелчок откроет ссылки на справочные страницы "open(2)", что позволит вам перемещаться по ссылкам с одной справочной страницы на другую. ( + двойной щелчок также открывает любой распознанный URL-адрес или даже некоторые шаблоны, такие как адреса электронной почты — создает новое почтовое сообщение — и доменные имена — открывается в Safari.)
  • При просмотре окна справочной страницы (или любого терминала, все команды которого завершены/завершены), Терминал поддерживает некоторые «менее» совместимые команды пейджера: space= Page Down, + space= Page Up, F= Page Down(«вперед»), B= Page Up(«назад»), = Прокрутить вниз на одну строку, / = прокрутить вверх/вниз на одну строку.

У меня есть следующие псевдонимы и функции в ~/.bash_profile:

alias ..="cd .."
alias ...="cd .. ; cd .."
alias ls="ls -G" # list
alias la="ls -Ga" # list all, includes dot files
alias ll="ls -Gl" # long list, excludes dot files
alias lla="ls -Gla" # long list all, includes dot files
alias stfu="osascript -e 'set volume output muted true'"
alias pumpitup="sudo osascript -e 'set volume 10'"
alias ips="ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1'"
alias myip="dig +short myip.opendns.com @resolver1.opendns.com"
alias flush="dscacheutil -flushcache"
alias gzip="gzip -9n"
alias ping="ping -c 5"
alias ql="qlmanage -p 2>/dev/null" # preview a file using QuickLook

# Create a new directory and enter it
md() { mkdir -p "$@" && cd "$@"; }

# Define a term using Google
define() { local y="$@"; curl -sA "Opera" "http://www.google.com/search?q=define:${y// /+}" | grep -Po '(?<=<li>)[^<]+'|nl|perl -MHTML::Entities -pe 'decode_entities($_)' 2>/dev/null; }

# gzip a file with strongest compression settings
ubergzip() { gzip -9n < "$@" > "$@".gz; }

# Open a man page in Preview.app
pman() { man -t "${1}" | open -f -a /Applications/Preview.app; }

# Open a man page in TextMate.app
tman() { MANWIDTH=160 MANPAGER='col -bx' man $@ | mate; }

# Quit an app cleanly
quit() {
    for app in $*; do
        osascript -e 'quit app "'$app'"'
    done
}

# Relaunch an app
relaunch() {
    for app in $*; do
        osascript -e 'quit app "'$app'"';
        sleep 2;
        open -a $app
    done
}

# Uninstall an app with AppZapper
zap() { open -a AppZapper /Applications/"${1}".app; }

Для получения дополнительной информации см. мой репозиторий dotfiles на GitHub и/или просмотрите мой .osxфайл для конкретных предпочтений и настроек OS X.

net rpc shutdown --server=<servername> --username=<username>

Это закроет окна Windows.

Это часть пакета Samba, поэтому он не специфичен для OS X.

Ярлыки командной строки для переключения видимости скрытых файлов в Finder:

alias show_hidden="defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder"
alias hide_hidden="defaults write com.apple.finder AppleShowAllFiles FALSE && killall Finder"

Вот скрипт, который получает путь(и) к текущему выбору(ам) в Finder:

#!/bin/sh

osascript` << EOT

tell application "Finder"       
        set theFiles to selection
        set theList to ""
        repeat with aFile in theFiles
                set theList to theList & POSIX path of (aFile as alias) & " "
        end repeat
        theList
end tell

EOT

Как я это использую:

$ cat `selected`

Хорошо, определенно не специфично для Mac, но завершение TAB zshнастолько хорошо, что я думаю, что оно заслуживает особого упоминания.

Вы получаете завершение опций, например

find . -d[TAB]

даст вам -daystart -delete -depthкак возможные завершения.

Также завершение пути улучшено по сравнению с завершением Bash, например, у меня есть том с именем Wubly, и внутри него video/tv/comedy, поэтому введите:

cd /v/w/v/t/co[TAB] 

будет расширяться до.

cd /Volumes/Wubly/Video/TV/Comedy

(обратите внимание, что это также нечувствительно к регистру.)

Если этому шаблону соответствует несколько путей, они будут показаны.

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

Начиная с Mac OS X Lion 10.7, Терминал откроет новое окно, если вы перетащите папку (или текстовый путь) на значок приложения. Если вы перетащите на панель вкладок существующего окна, в этом окне будет создана новая вкладка.

Вы также можете сделать это из командной строки или сценария оболочки:

open -a Terminal /some/path/

Это эквивалент командной строки перетаскивания папки на значок приложения «Терминал» и открывает новое окно терминала в «/some/path».

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

Системные настройки > Клавиатура > Сочетания клавиш > Службы

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

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

iTerm поддерживает перетаскивание папок на значок в версии 10.6.
Терминал поддерживал это давно
@Slomojo, вы отвечаете на Fake Name или пытаетесь исправить мое заявление о том, что Terminal поддерживает это, начиная с 10.7? (Или вы не заметили, что я это написал?)
Терминал @ChrisPage делал это в нескольких версиях до 10.7, хотя в настоящее время я не могу проверить это лично до 10.6 (поскольку у меня нет коробки с более старыми версиями) — FYI Cmd-c в файле / папке в Finder и Cmd- v в терминале также будет вставлен полный путь (та же история версий OSX).
@Slomojo Я подтвердил, что это было не раньше 10.7.
@ChrisPage ... вам нужно будет отказаться от этого, по крайней мере, в 10,5 он заботился о ссылке? Вот reduser.net/forum/archive/index.php/t-17024.html найдите комментарий Дэвида Дидато от 10.08.2008 (10.6 была выпущена в '09) - я также лично использовал его в Tiger (выпущен в '05 ), и меня научил этому кто-то, кто использовал его в предыдущих версиях (10.2 IIRC). Не говоря уже о том, что я провел живое тестирование в 10.6, когда опубликовал свой предыдущий комментарий.
@Slomojo, вы, очевидно, имеете в виду перетаскивание (или копирование и вставку) файлов из Finder в окно терминала, чтобы вставить путь, как если бы он был введен пользователем. Этот совет/ответ касается открытия новых окон/вкладок терминала в указанном каталоге, который был представлен в версии 10.7.
@ChrisPage да, это то, что я имел в виду, я, очевидно, очень сильно пристыдил себя и неправильно прочитал первоначальный комментарий (на самом деле я не читал ваш совет, а просто просмотрел его) - предположил, что комментарий относится к имени файла с перетаскиванием /Путь. Сейчас я вернусь в свою коробку и принесу извинения.

Очистите кеш DNS, если вы много редактируете /etc/hosts, чтобы проверить, что промежуточные серверы выглядят как рабочие.

dscacheutil -flushcache
Используйте его все время!

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

В 10.5 и ниже:

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

В 10.6:

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Затем откройте новое окно Finder. Вы увидите, что новое окно Finder открывается с правами root.

Когда полезно открывать окно Finder от имени пользователя root?

Если вы похожи на меня, у вас одновременно открыто несколько вкладок Terminal.app.

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

Если вы не хотите терять историю команд на какой-либо вкладке, добавьте это в свой ~/.bash_profile(или любой другой файл, который загружается при открытии новой вкладки терминала):

# Append to the Bash history file, rather than overwriting it
shopt -s histappend

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

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

Однако, если вы введете, cd foobа затем Tab, завершение не сработает, так как имя папки начинается с прописной буквы F. К счастью, вы можете сделать автодополнение табуляции еще более полезным, заставив его игнорировать регистр имени файла.

Добавьте это в свой ~/.inputrcфайл (создайте файл, если у вас его еще нет):

# Make Tab autocomplete regardless of filename case
set completion-ignore-case on

Таким образом, cd foobа затем Tabзавершит его в cd FooBarBazBax, если в текущем рабочем каталоге есть папка с таким именем.

Просто введите

purge

и он снова сделает неактивную память свободной. Mac OS X хранит приложения в памяти какое-то время после того, как вы их закроете, поэтому они быстро откроются, если вы откроете их снова. Purge удалит их из памяти и вернет вашу свободную память.

Это больше мета-подсказка терминала - вы можете использовать

Cmd-Shift-{Left arrow, Right Arrow} 

(Команда Shift в сочетании со стрелкой влево или вправо) для быстрого переключения между открытыми окнами Terminal.app.

На моем Snow Leopard (бельгийская клавиатура) это Cmd-Shift-Стрелка, а не просто Cmd-Стрелка.

Имитация, чтобы ввести Command-F, чтобы полноэкранное видео из командной строки. Полезно при запуске фильма в mPlayer по ssh.

osascript <<END
tell application "System Events" to keystroke "f" using {command down}
END

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

К сведению: в iTerm2 есть функция мгновенного повтора, очень полезная для создания скринкастов.

как насчет

cat somefile.txt | say

сказать содержимое текстового файла... или...

cat someFile.txt | say -o someAudioFile

возьмите ваш текстовый файл, конвертируйте его в .aiff

sial.org/howto/shell/useless-cat Сделайте say -o < somefile.txtвместо этого

Это не специфично для OSX ( manговорится, что это из 4.0BSD), но мне все равно это нравится:

sudo shutdown -h +45

В приведенном выше примере shutdownвыключает компьютер через 45 минут (как можно предположить).

Это отлично подходит, когда вы хотите провести «немножко времени» за компьютером перед сном / мытьем посуды / бегом трусцой / чем угодно. Но когда вы также знаете в глубине души, что это не будет «просто немного времени»…

Ваше здоровье!

Любовь shutdown!

Вы также можете установить системную громкость автоматически, а затем завершить процесс экрана:

screen
(hit enter)
sleep 300; osascript -e "set Volume 10"; say "I am feeling fabulous"; open "http://www.youtube.com/watch?v=dQw4w9WgXcQ"; killall SCREEN
Ctrl-a-d
(detaches)
Почему за это проголосовали - не смешно или неуместно? Имейте чувство юмора люди!
Что это было за видео? Его удалили с ютуба.
Так круто!!!!!

Текстовый файл в аудиофайл

say -o “audiofile.aiff” -f “textfile.rtf”

больше синтаксиса здесь

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

Требуется установка fmsscripts:

cd ~/Downloads && svn co http://soft.vub.ac.be/svn-gen/bdefrain/fmscripts && cd fmscripts
sudo make

alias sfmdiff='svn diff --diff-cmd fmdiff'

Затем в проверенном каталоге:

sfmdiff . 

(или любой конкретный каталог или файл)

Я включаю все свои любимые здесь: http://rustyisageek.blogspot.com

Пример:

Установите громкость на 10 и скажите что-нибудь

sudo osascript -e "set Volume 10" | say "hello World"

Подождите, пока сеть будет готова в скрипте

/usr/sbin/networksetup -detectnewhardware

ctrl- Rпозволит вам выполнить обратный поиск в вашей оболочке bash. Это как интерактивная форма history.

дубликат другого ответа

gzip файл с самыми сильными настройками сжатия:

ubergzip() { gzip -9n < "$@" > "$@".gz; }

Для получения дополнительной информации см. мой репозиторий dotfiles на GitHub и/или просмотрите мой .osxфайл для конкретных предпочтений и настроек OS X.

Определите термин с помощью Google:

define() { local y="$@"; curl -sA "Opera" "http://www.google.com/search?q=define:${y// /+}" | grep -Po '(?<=<li>)[^<]+'|nl|perl -MHTML::Entities -pe 'decode_entities($_)' 2>/dev/null; }

Для получения дополнительной информации см. мой репозиторий dotfiles на GitHub и/или просмотрите мой .osxфайл для конкретных предпочтений и настроек OS X.

Соответствующей командой для Terminal.app в Mac OS X является запуск обновления программного обеспечения из интерфейса командной строки:

sudo softwareupdate -i -a

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

Что это делает, когда есть обновление, требующее перезагрузки?
@JasonSalaz Он просто печатает сообщение с предложением перезапустить ОС (но не принудительно перезагружает или что-то в этом роде).
использование «softwareupdate -l» также отлично подходит для получения списка. Mac App Store в ML не всегда показывает размер загрузок, но с помощью этого инструмента он есть.

Измените каталог на каталог, показанный в самом верхнем окне Finder:

cdf () {
   currFolderPath=$( /usr/bin/osascript <<-EOT
       tell application "Finder"
           try
               set currFolder to (folder of the front window as alias)
           on error
               set currFolder to (path to desktop folder as alias)
           end try
           POSIX path of currFolder
       end tell
       EOT
   )
   echo "cd to \"$currFolderPath\""
   cd "$currFolderPath"
}

Другая версия:

f() {
    cd "$(osascript -e 'try
tell app "Finder" to (target of Finder window 1) as text
POSIX path of result
on error
    (system attribute "HOME") & "/Desktop"
end')"
}
Обратите внимание, что в Mac OS X Lion 10.7 и более поздних версиях Терминал предоставляет службу «Новый терминал в папке», которую вы можете использовать для открытия терминала, выбрав папку и выбрав команду в меню Finder > Services или нажав Control и выбрав его из контекстного меню. (Вам нужно включить службу в «Системные настройки» > «Клавиатура» > «Сочетания клавиш» > «Службы».) Вы также можете перетащить папку на значок приложения «Терминал» в Dock или на панель вкладок, чтобы создать новую вкладку в существующем окне. .

Quick Look — одна из лучших функций OS X. Вам просто нужно нажать пробел в выбранном файле, и вы увидите предварительный просмотр этого файла без необходимости открывать приложение. Это здорово, но вы не можете выбрать текст, когда находитесь в предварительном просмотре. Вы можете добавить эту функцию с помощью команды терминала:

defaults write com.apple.finder QLEnableTextSelection -bool true 
killall Finder

Воспользуйтесь функцией Quick Look, выберите нужный текст, и теперь вы можете его скопировать.

Смонтируйте iDisk из командной строки:

osascript <<END
tell application "Finder"
mount volume "http://idisk.mac.com/john.doe/" as user name "john.doe" with password "StR0NGP455"
end tell
END

Функция для создания каталога и перехода с помощью одной команды:

function take {
    mkdir $1
    cd $1
}
Лучше: mkdir -p $1, так как это позволяет создавать вложенные новые каталоги. И размещение &&между командами будет выполняться только cdв том случае, если папка была успешно создана.
Вы также можете "cd !!:1", где !! — это предыдущая команда, а :1 принимает номер ее аргумента (начиная с нуля). Допустим, вы делаете «mv file1 file2» и понимаете, что хотите обратное: «mv !!:2 !!:1». Конечно, это полезно только для сложных имен.

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

find . -name "pattern"|xargs mate

также работает с mdfind (прожектор):

mdfind -name models.py |xargs mate
вам не нужны xargs для них, приятель примет STDIN.

Загрузите URL-адрес текущего каталога с помощью curl.

curl -O http://growl.cachefly.net/Growl-1.2.1.dmg

Особенно хорошо подходит для загрузки архивов с исходным кодом, которые Safari хочет распаковать для вас.

Альтернатива есть wget.

Получить терминал для открытия в последней посещенной папке:

Я очень хотел, чтобы терминал открывался в последней посещенной папке, и в итоге сделал небольшую команду bash, которая выполняет это. Кроме того, он позволяет "перейти" к файлу, что очень полезно, когда вы хотите изменить свой каталог на каталог данного файла поиска. Просто напишите cd и перетащите файл в терминал, и все готово.

Добавьте следующее в ваш файл .bashrc или .alias

alias cd=mycd

mycd(){ 
  if [ -f "$*" ]
  then
   \cd  "`dirname $*`"
  else 
    \cd "$*";
  fi

  echo "\cd \""`pwd`\""" > ~/.todir  ; 
  PS1='\[\033]0;`pwd | xargs basename`\007\]\e[31m\w:\e[0m
'
}

Наконец, вам нужно изменить настройки терминала:

В терминале: настройки: оболочка - заставить оболочку выполнить следующую команду:

source ~/.todir; clear

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

LAME кодирует .wav в .mp3

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

find ./ -name "*.wav" -execdir lame -V 3 -q 0 {} \;
  • Преобразует 20Mb .wav (при самых высоких настройках качества) в .mp3 за 3 секунды!
  • Просто установите двоичный файл LAME, и все готово.

В вашей~/.bash_profile

export PS1="\[\e]2;\h - \w\a\e[32;1m\]%\[\e[0m\] "

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

Вы можете просматривать и искать историю с помощью клавиш курсора после добавления

bind '"\e[A": history-search-backward'

bind '"\e[B": history-search-forward'

к вашему .profile.

Начиная с Mac OS X Lion 10.7, терминал поддерживает несколько «менее» совместимых команд пейджера, когда в терминале нет запущенных процессов. Это полезно для пролистывания и чтения текста после завершения/завершения команд. Поддерживаемые ключи:

space: Page Down
+ Space: Page Up
: прокрутка вниз на одну строку
/ : прокрутка вверх/вниз на одну строку
F: Page down («вперед»)
B: Page up («назад»)
<: Home (прокрутка вверх)
>: End (прокрутка до конца)

Терминал имеет команды, которые будут искать и отображать справочные страницы, для просмотра которых эти клавиши необходимы. См. меню «Справка» и контекстные меню. Он также поддерживает службы для открытия справочных страниц из других приложений (включите их в «
Системных настройках»> «Клавиатура»> «Сочетания клавиш»> «Службы» ).

Идиома тишины - отключить команду оболочки

Вы можете исключить стандартный вывод подробной команды с помощью этой идиомы оболочки.

Идиома:

>&-

и вы используете его так:

noisycmd >&-

Команда выполняется, но в стандартный поток вывода ничего не печатается.

Отправка аудио на устройство Apple Tv/Airplay с помощью команды /usr/bin/say

/usr/bin/say -r160 -a "AirPlay" "hello world"

-r160 — используемая скорость речи в словах в минуту .

-a , за которым следует имя или номер устройства .

Тогда ваш текст.

Список доступных аудиоустройств

/usr/bin/say -a?
   39 AirPlay
   47 Built-in Output
  209 Soundflower (2ch)
   74 Soundflower (64ch)

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

/usr/bin/say -r160 -a 39 "Hover over a Method";say -r160 -a "Built-in Output" "I am back"

Вы также можете использовать параметр -f, чтобы использовать текстовый файл в качестве текста речи.

 /usr/bin/say -f ~/Music/foo.txt -r160 -a 39 

Как вы заметили, скажем, можно расширить пути к файлам тильды


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

 /usr/bin/say  -o ~/Music/hi.aac Hello, World.

-o выходной путь к файлу. т.е. ~/музыка/привет

формат файла .aac

При этом файл .acc с именем hi.aac сохраняется в музыкальном каталоге.

Пути к каталогам ДОЛЖНЫ существовать до запуска команды. Файл не обязательно должен существовать первым в каталоге, и если он существует, он, скорее всего, будет перезаписан.

Есть и другие форматы, которые вы можете использовать.

Справочная страница покажет вам полный список опций.

Я хотел обратное "открыть". Команда, где я мог cd перейти к окну Front Finder, поэтому я собрал это вместе для своего .bash_profile:

псевдоним fw='cd "$(osascript -e "указать приложению \"Finder\" путь POSIX (папка окна 1 в виде строки)")"'

Теперь команда «fw» устанавливает мой текущий каталог в Front Window (для имени fw).

Обратите внимание, что вы можете ввести «cd», а затем перетащить переднее окно в Терминал, чтобы вставить его путь, затем переключиться на Терминал и нажать «Ввод». Я думаю, это проще. ;)

Command-Drag выдаст всю cdкоманду без ввода.

Простое обращение с bzip/tar для сжатия целых каталогов:

# lsZ -- list contents of compressed tar archive
function lsZ() {
    tar tvzf "$1"
}

# deZ -- silently extract contents of compressed tar archive
function deZ() {
    # extract bzip2 compressed tars as well
    if [[ $(file "$1") == *bzip2* ]]; then
        bunzip2 -c "$1" | tar xf -
    else
        tar xzf "$1"
    fi
}

# enZ -- build compressed tar archive
function enZ() {
    tar cZf "${2:-$1.tar.Z}" "$1"
}

# enG -- build compressed tar archive (with gzip)
function enG() {
    tar czf "${2:-$1.tar.gz}" "$1"
}

# enB -- build compressed tar archive (with bzip2)
function enB() {
    tar cf - "$1" | bzip2 > "${2:-$1.tar.bz2}"
}

# lsB -- list contents of bzip2 compressed tar archive
function lsB() {
    bunzip2 -c "$1" | tar tvf -
}

# deB -- silently extract contents of bzip2 compressed tar archive
function deB() {
    bunzip2 -c "$1" | tar xf -
}

Сделать все ссылки в Safari открытыми как новые вкладки

Новые окна, бааад. Новые вкладки, хорошо. В целом, элементы управления вкладками в Safari замечательны, но один недостаток сводит нас с ума: некоторым ссылкам разрешено переопределять ваши предпочтения по открытию новых веб-страниц во вкладках, по сути заставляя приложение открывать новое окно. Чтобы предотвратить это в будущем, выполните эту команду: defaults write com.apple.Safari TargetedClicksCreateTabs -bool TRUE.


Показать скрытые файлы в Finder

Имена скрытых файлов всегда начинаются с точки — имейте это в виду, прежде чем удалять или редактировать незнакомый файл. Хотите верьте, хотите нет, но файлы, которые вы видите в списке на рабочем столе в Finder, не представляют все файлы, содержащиеся в папке вашего рабочего стола. Почти в каждой папке ОС скрывает системные файлы, которые Apple считает слишком важными для таких, как мы, чтобы с ними связываться (или слишком обыденными, чтобы нас беспокоить). Тем не менее время от времени полезно просматривать эти файлы. Чтобы просмотреть полное содержимое всех папок в Finder, выполните: defaults write com.apple.finder AppleShowAllFiles TRUE.


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

Когда панель инструментов появляется на нашем рабочем столе, обычно это происходит потому, что мы пропустили клавишу удаления и вместо этого нажали F12. Теоретически нам всегда нравилась Dashboard — иногда мы даже загружали для нее виджеты. К сожалению, мы никогда не находим время для их использования, и наш стареющий ноутбук Mac может использовать дополнительную оперативную память для запуска реальных приложений. Если вы находитесь в той же лодке, освободите часть системной памяти, завершив работу панели мониторинга с помощью двух быстрых команд терминала. Во-первых, установите для него значение по умолчанию Off, выполнив: defaults write com.apple.dashboard mcx-disabled -boolean YES. Во-вторых, уничтожьте и перезапустите Dashboard и Dock с помощью этой команды: killall Dock.


Многое другое на этом сайте: Нажмите ЗДЕСЬ

pg без аргументов пропинговать IP-адрес 8.8.8.8 (полезно для базового теста интернет-соединения), в противном случае пропинговать данный IP-адрес. Если IP-адрес неполный, он объединяется с префиксом по умолчанию 192.168.1, что позволяет легко выполнить локальный ping (например, ping 3.12 => 192.168.3.12).

function pg() {
    ip4regex='^[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+$'
    ip3regex='^[0-9]+[.][0-9]+[.][0-9]+$'
    ip2regex='^[0-9]+[.][0-9]+$'
    ip1regex='^[0-9]+$'
    host=$@
    if [[ $# == 0 ]]; then
        host="8.8.8.8"
    elif [[ $@ =~ $ip4regex ]]; then
        host="$@"
    elif [[ $@ =~ $ip3regex ]]; then
        host="192.$@"
    elif [[ $@ =~ $ip2regex ]]; then
        host="192.168.$@"
    elif [[ $@ =~ $ip1regex ]]; then
        host="192.168.1.$@"
    fi
    ping $host
}
вот соответствующая суть: gist.github.com/MartinDelille/9386306

Добавьте файл с именем «-i» в свой домашний каталог. Теперь, если вы случайно наберете:

rm -rf *

он расширится до:

rm -rf -i your other files

и вам будет предложено подтвердить или отклонить удаление всего каталога. Это довольно халтурно, но раньше спасало мою задницу.

просто псевдоним rm для rm -i :alias rm='rm -i'

Версия BBEdit для просмотра справочных страниц:

bbman () {
  MANWIDTH=160 MANPAGER='col -bx' man $@ | bbedit --clean
}

Автоматически обновите заголовок окна Terminal.app, чтобы отобразить ваше имя пользователя, хост и текущий каталог.

Если я сделаю следующее:

cd ~/Developer

Я хочу, чтобы заголовок окна терминала был обновлен до:

jason@rocksteady:~/Developer

Для этого убедитесь, что переменная PROMPT_COMMAND установлена ​​в вашем ~/.bash_profile:

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'

Конечно, вы можете заменить все, что вам больше нравится.

Начиная с Mac OS X Lion 10.7, Терминал поддерживает настройку заголовков окна и вкладки (значка) отдельно. «0» устанавливает их обоих. Используйте «1», чтобы установить заголовок вкладки, «2», чтобы установить заголовок окна.

Установите bash для немедленного выхода из скрипта при любой ошибке.

set -o errexit

Всегда хорошая идея при разработке bash-скриптов, особенно деструктивных.

Более простой способ открыть и закрыть DMG:

open <My disk image>.dmg

Затем, чтобы закрыть его:

umount /Volumes/<My disk image>
если вы используете umount таким образом, вы оставите /Volumes/<My disk image>папку лежать без дела. Используйте diskutil eject /Volumes/<My disk image>вместо этого, он будет убирать за вами.

Чтобы подключиться к сетевому тому, вы можете использовать mkdir; mountи umount; rmdirи т. д. и т. д., однако это многословно, и есть лучший альтернативный метод для Mac…

Вы можете открыть акцию:

open afp://user:pass@server/sharepointname

и извлеките его с помощью:

diskutil eject /Volumes/sharepointname

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

open afp://user:pass@server/

Опустите пользователя/пароль для запроса учетных данных в графическом интерфейсе.

user42053 упоминает о добавлении файла -iв каждую папку. Становится немного неловко видеть -iв каждой папке повсюду. Более простой метод был бы

alias rm="rm -i"
Это плохая идея, так как вы слишком привыкнете к этому, что, если вы работаете в системе без него и делаете небрежно rm -rf?

Перечислите все каталоги в одиночку в каталоге - er - папки в папке.

ls -la | grep '^d'

Найдите размеры данного каталога - снова - э-э - папки.

du -s dirname

Перетащите значок прокси в окне Finder, чтобы получить путь перехода; особенно полезно после вводаcd

или перетащите его и сделайтеC-a cd RETURN
В Mac OS X Lion 10.7 и более поздних версиях вы можете перетащить папку (или значок прокси-сервера или путь, выбранный в тексте) на значок приложения терминала, чтобы создать новое окно терминала в этом месте. Существуют также службы «Новый терминал в папке» и «Новая вкладка терминала в папке», которые вы можете включить (в Системных настройках), которые будут отображаться в контекстном меню при выборе папок или путей. Вы также можете перетащить на существующую вкладку терминала. чтобы автоматически выполнить команду cd, и вы можете перетащить мышью на пустую область панели вкладок, чтобы создать новую вкладку в этой папке.

Я сделал псевдоним под названием dirstat, названный в честь похожей утилиты. Это помогает определить, где используется все пространство на жестком диске. Добавьте его в свой /etc/bashrcили в виде bash-скрипта.

du -s ./* | sort -n| cut -f 2-|xargs -i du -sh {}

Я добавил следующие строки в свой ~/.bash_profileфайл.

С помощью вы увидите эффект, запустив команду/путь и нажав несколько раз.

Измените функцию для прокрутки параметров автозаполнения:

bind '"\t":menu-complete'

SSH как root для...:

alias shroot="ssh -l root"

Принудительно извлекать тома:

alias forceeject="hdiutil detach -force"

Принудительно закрыть приложение:

alias forcequit="killall -HUP"

Откройте справочные страницы в формате PDF:

pdfman() { man $1 -t | open -f -a Preview; };

Псевдоним pingburst:

alias ping2="ping -c2"
-1 Пожалуйста, просто форматируйте команды, используя отступ в 4 пробела.

Вы можете использовать escключ вместо alt. > вам нужно сначала коснуться его, а затем ввести другой вместо того, чтобы удерживать его. Это стандартная функция, но она более важна, так как клавиша на Mac работает иначе, чем на клавиатурах Windows/Linux.

Вы можете настроить поведение клавиши alt в настройках, чтобы оно вело себя как на клавиатуре «Windows». Хотя тогда вы не сможете вводить важные символы как @, \, {, ...

Очень важно, если вы используете emacs в терминале. Но предположим, что есть много команд, которые требуют этого - например, вы также можете копировать и вставлять в bash с привязками emacs.

Несколько пояснений: название клавиши-модификатора — «Option». (На клавише также напечатано «alt», чтобы указать, что при использовании клавиатуры с Windows она будет выполнять ту же функцию, что и «Alt».) Параметр нужен только для ввода таких символов, как «{» и «}». на определенных физических раскладках клавиатуры, например, на французском языке. Например, он не используется в раскладках клавиатуры английского языка США.

Я считаю полезным копировать текст в буфер обмена из Terminal.app, не используя мышь для выбора.

Кажется, это работает только со старым Terminal.app от Tiger. Я просто переименовал его в Tiger Terminal.app, и он по-прежнему отлично работает на Leopard. На снежном барсе не пробовал.

Таким образом, с помощью Tiger Terminal вы можете выполнить копирование без мыши, набрав + + , а затем с помощью клавиш со стрелками переместившись в начало области, которую хотите скопировать. Затем снова введите + + , чтобы закрепить точку выделения. Используйте клавиши со стрелками (некоторые команды, подобные emacs, также работают для навигации, например ctrl+ E), чтобы переместиться в конец области, которую вы хотите скопировать. Наконец, снова введите + + , чтобы скопировать выделение в буфер обмена.

Один из них, который я на самом деле использую довольно часто, это uptime. Просто, но приятно :) В настоящее время мой возвращается up 32 days, 14:30.

drutil eject
drutil tray eject # analagous to above

Открывает лоток для компакт-дисков или извлекает компакт-диск (для ноутбука)

drutil tray close

Закрывает лоток для компакт-дисков

Это очень полезно, когда вы подключаетесь к другому компьютеру по SSH.

Итак, как это полезно? Можете ли вы подключить компакт-диск к лотку по ssh? Вам все равно придется встать и подойти к автомату, чтобы взять компакт-диск или положить что-нибудь в открытый лоток.
@bmike Совершенно верно.
Я использовал drutil ejectраньше, чтобы извлечь диск из SuperDrive, который я удалил из своего MacBook Pro и поместил во внешний корпус. Иногда ОС не распознает, что корпус подключен, и не реагирует на кнопку извлечения, что делает эту команду очень полезной!

Строго из одного окна Терминала в себя или в другое окно Терминала:

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

Обратите внимание, что если вы сделали несколько выделений с помощью перетаскивания Command-Option, при вставке будет вставлена ​​новая строка, которая вызовет текущую строку. Это , вероятно , не то , что вы хотите .

Локальный веб-сервер с Ruby

Вот альтернатива Ruby однострочному Python для локального HTTP-сервера (который также опубликован в этой теме):

ruby -run -e httpd . -p 8000

Это откроет сервер в рабочем каталоге с номером порта 8000, чтобы вы могли получить к нему доступ в браузере по адресу http://localhost:8000.

Измените 8000 на любой номер порта, который вы хотели бы использовать.

Было дано много ответов о том, как вы можете перетаскивать файлы и папки в окно терминала, но Киаран Уолш создал утилиту под названием drag , которая позволяет вам перетаскивать файлы ВНЕ окна терминала. Это даже лучше с моим патчем , который позволяет использовать несколько файлов за одну операцию перетаскивания.

Я не мог поверить, что здесь отсутствует следующее. Лучшее улучшение терминала OS X — сделать его похожим на UNIX/Linux. Мое первое намерение состояло в том, чтобы показать вам правильное bash-completionвыполнение нескольких вещей, таких как sshили gitправильно. Я говорю о стандартном поведении, к которому я привык в Linux.

Но гораздо более важным является отсутствие доморощенного менеджера пакетов . При этом вы получите множество стандартных команд/приложений/библиотек unix.

Сначала установите доморощенный через

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

а затем получить сложное завершение bash через

brew install bash-completion

Не игнорируйте сообщение. Вам придется редактировать .bash_profile. Но оно того стоит. bash-completionзавершается brewтоже.

Ctrl+D — это ярлык для выхода. Полезно, если вы часто работаете во вложенных sshсессиях.

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

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

Везде, куда вы можете попасть, нажимая стрелку с нажатой клавишей «alt», курсор также попадет туда.

Это основная причина, по которой я перестал использовать вкладки в коде в начале 90-х, NCSA Telnet включил эту функциональность тогда для Mac System 7, и если я попытался проложить себе путь через вкладки, так что это закончилось тем, что он ходил повсюду и пищал как сумасшедший. .

Я часто использую эту команду

echo | pwd | pbcopy

Это просто скопировать текущий путь в буфер обмена. Я также связал его с псевдонимом пути

alias path='echo | pwd | pbcopy'

Добавьте псевдонимы для фраз, которые вы часто вводите с ошибками

alias sdou='sudo'
alias suod='sudo'
alias sodu='sudo'
alias gerp='grep' 

Бесполезно, но весело. Идите и загрузите проигрыватели ASCII из Google Docs. Установите их в /usr/bin. Теперь у вас может быть проигрыватель фильмов в Терминале. Есть ASCIIbwи ASCIIcolor. Я не думаю, что мне нужно объяснять, что один цветной, а другой черно-белый. Чтобы открыть тип файла фильма:ASCIIbw ~/Desktop/Test.mov

Ух ты. Спасибо Google за то, что вы aalibникогда libcacaне могли. Создание разумного интерфейса, чтобы просто делать то, что я хочу.
Или кто их сделал. Возможно не Гугл.
@VxJasonxV Я не помню, кто их сделал. Я загрузил их в свои Google Docs, поэтому у меня где-то есть их копия.
О, это ваша загрузка. Прохладно. Кстати, цветной сломан, он создан для PowerPC, а не для Intel.

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

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

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

alias q="osascript -e 'tell application \"System Events\" to tell process \"Terminal\" to keystroke \"w\" using command down'"

РЕДАКТИРОВАТЬ:

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

настроить Terminal.app, чтобы закрыть окно, если оболочка завершилась без ошибок

alias q="logout"
Настройте свой терминал так, чтобы он закрывал оболочку, когда она существует, а затем: alias q="logout".
Нет необходимости имитировать нажатие клавиши Command-W. Просто скажите Терминалу закрыть вкладку или окно, например:tell application "Terminal" to close the front window
Эй, да, Джейсон, так действительно лучше. Понятия не имел об этом терминальном предпочтении. @Chris: Я не так хорош в applescript, так что прости меня за мое невежество.
alias ka="killall"

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

Если у вас установлен XCode, запуск команды purgeв терминале действительно полезен. Это освобождает всю вашу активную и неактивную оперативную память. Это полезно для таких людей, как я, которые много занимаются аудиопроизводством (или любым видом редактирования мультимедиа, если на то пошло), когда у вас всего 4 ГБ ОЗУ. Вы будете удивлены, как быстро расходуются 4 ГБ.

alias alias_open="mate ~/.oh-my-zsh/lib/aliases.zsh"
alias alias_reload="source ~/.oh-my-zsh/lib/aliases.zsh"
alias lsa='ls -lahG'
alias l='ls -la'
alias ll='ls -l'
alias sl=ls # often screw this up
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'

#######
# GIT #
#######
alias gd="git diff"
alias gl="git log"
alias gu="git up"
alias gs="git status"
alias gf="git fetch"
alias gr="git remote -v"
alias gp="git push"
alias gph="git push heroku master"
alias gps="git push staging staging:master"
alias gpg="git push github master"
alias gpo="git push origin master"
alias gplh="git pull heroku master"
alias gpls="git pull staging staging:master"
alias gplg="git pull github master"
alias gplo="git pull origin master"
alias gpl="git pull"
alias gc="git commit -am"
alias gco="git checkout"
alias ga="git add ."

##########
# SYSTEM #
##########
alias cwd='pwd | pbcopy' #copy the working directory into the clipboard
alias grep="grep --color=auto"

####################################################
# Create box of '#' characters around given string #
####################################################

function box() { t="$1xxxx";c=${2:-#}; echo ${t//?/$c}; echo "$c $1 $c";echo ${t//?/$c}; }

########################
# Rip audio from video #
########################

# ("$1" for output file & "$2" for input file)
function audioextract()
{
mplayer -ao pcm -vo null -vc dummy -dumpaudio -dumpfile "$1" "$2"
}
# extract audio from DVD VOB files
# USAGE:  audioextractdvd input_file.vob output_file.ac3
function audioextract_dvd()
{
mplayer "$1" -aid 128 -dumpaudio -dumpfile "$2"
}

#######################
# Backup .bash* files #
#######################

function backup_bashfiles()
{
  ARCHIVE="$HOME/bash_dotfiles_$(date +%Y%m%d_%H%M%S).tar.gz";
  cd ~
  tar -czvf $ARCHIVE .bash_profile .bashrc .bash_functions .bash_aliases .bash_prompt
  echo "All backed up in $ARCHIVE";
}
Я думаю, что причина, по которой вы получили отрицательные голоса, заключалась в том, что вы не объяснили, что делает каждый из псевдонимов.