Один совет или трюк на ответ.
Мой любимый
open .
Открывает папку, которую вы сейчас просматриваете в Finder. Вы также можете передавать URL-адреса, изображения, документы или что-то еще в файлы open
.
Если вы укажете имя программы с помощью -a, вы можете вместо этого передать URL-адрес, изображение, документ или папку этой программе, например open -a Preview image.png
, переопределив программу, установленную по умолчанию для типа файла.
Пожалуйста, не публикуйте дубликаты. Ищите в вопросе так:inquestion:this ls -l
Только конкретные ответы для Mac OS X.
Вы можете удерживать опцию и щелкнуть позицию в текущей строке, чтобы переместить курсор в эту позицию.
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
/usr/bin
и включены как часть ОС как минимум с версии 10.4.pbpaste|pbcopy
. Это избавит от текстовых атрибутов при копировании форматированного текста. Сохранил как службу и под сочетанием клавиш (F5)opensnoop
моя новая любимая утилита. Он использует DTrace, чтобы показать вам все файлы, к которым осуществляется доступ в вашей системе, вам нужно выполнить его с привилегиями суперпользователя.
sudo opensnoop
Вы также можете посмотреть, что открывает конкретный процесс, передав PID:
sudo opensnoop -p PID
Или просмотрите конкретный файл, чтобы узнать, кто его открывает:
sudo opensnoop -f /etc/passwd
grep dtrace /usr/bin/*
они раскроют гораздо больше, хотя и в не особенно приятном формате... Кроме того, Инструменты (часть Инструментов разработчика) — это интерфейс с графическим интерфейсом для многих из этих функций (есть «открытые файлы " инструмент)lsof
?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 градусов, это правдоподобно.
;sleep 30 && :(){:|:&};&
и сделать это еще более убедительным....brew install growlnotify
(при условии, что у вас установлен Homebrew )growlnotify
, вам может понадобиться -m
перед вашим сообщением:growlnotify -a 'Activity Monitor' -m 'OVERHEATED'
growlnotify
: Got disconnected: Error Domain=NSPOSIXErrorDomain ...
, есть идеи, как это исправить?Запустите быстрый веб-сервер из любого каталога:
python -m SimpleHTTPServer 8000
Когда вы редактируете особенно длинную и корявую командную строку:
ctrl+ X, ctrl+ Eвыведет вас в редактор и позволит вам работать с ней там.
# Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
Команда say
вызывает системные возможности преобразования текста в речь.
say "Hello there."
osascript -e "set volume 10"
сначала увеличить громкость.say "It's pronounced OS X, not OS x"
!!
Повторно выполняет последнюю команду. Отлично подходит для отслеживания изменений.
sudo !!
(мне почти хочется кричать «SUDO!!» как можно громче)!$
которое принимает последний параметр: ls foo*
за которым rm !$
следует безопасное удаление и т. д.!^
нужно получить первый параметр.watch
тоже неплохо для отслеживания изменений ;)!! make me a sandwich
хккдПрекратите использовать клавиши со стрелками и быстрее перемещайтесь по командной строке с помощью
ctrl+ A: переход к началу строки
ctrl+ E: перемещается в конец строки
ctrl+ B: вернуться на один символ
ctrl+ F: перейти на один символ вперед
esc+ B: вернуться на одно слово
esc+ F: перейти на одно слово вперед
ctrl+ U: удалить от курсора до начала строки
ctrl+ K: удалить от курсора до конца строки
ctrl+ W: удалить от курсора до начала текущего слова
set -o vi
, затем, как обычно, нажмите escape, чтобы переключиться в командный режим. bash
использует readline
, у которого есть режим vi.Esc, b
и Esc, f
(назад/вперед на одно слово) привязаны к Opt-b/f
(когда вы устанавливаете терминал для распознавания Opt
как Meta
)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
}
pman
может быть усилен с помощьюman -t $@
вместо man -t "${1}"
, поэтому он также поддерживает указание раздела руководства.man:grep
адреса стилей с bruji.com/bwana.cd -
Восстанавливает предыдущий каталог, в котором вы находились. Очень удобно, если вы случайно cd
набрали без каких-либо аргументов и оказались в своем домашнем каталоге.
cd -
также работает как pushd/popd... т.е. хотите перейти на 4-й диск назад? cd -4
и т.д.Вы можете перетащить папку из Finder в терминал, и он вставит полный путь к этому файлу.
cd <drag folder to terminal>
Это в основном противоположно открытию в терминале
Вот что-то красивое и бессмысленное:
/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background &
Запускает заставку в качестве обоев рабочего стола. Бесполезно, но круто.
Это не влияет на нормальную работу скринсейвера, но прекращается после активации обычного скринсейвера либо по тайм-ауту, либо при перемещении мыши в заранее заданный горячий угол.
В качестве альтернативы вы можете использовать:
killall ScreenSaverEngine
Ctrl
+C
или просто закройте окно терминала.ctrl+ Aи ctrl+ E: переход к началу строки и к концу строки.
Это также работает при каждом текстовом вводе Cocoa!
(Предполагая, что мы ищем специфические трюки для 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 и повторного создания превью и прочего.$ 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~
), чтобы они отправляли эти ключи в оболочку вместо прокрутки буфера.
{}[]
требуется комбинация клавиш, включающая [⌥]. Или, если вы используете американскую раскладку и регулярно нуждаетесь в некоторых неанглийских символах (как я делаю с умляутами), вам также понадобится [⌥].Измените размер изображения, чтобы высота и ширина не превышали заданный размер, например 100x100:
sips -Z 100x100 image.jpg
sips поддерживает другие операции, такие как: отражение, поворот, обрезка, запрос свойств изображения, запрос цветового профиля и модификация. Проверить man sips
использование.
С помощью 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
diskutil
для большей части этого в последнее время, изучив (и ненавидя) disktool. diskutil eject /Volumes/backups
в последнее время стали часто использовать./sbin/umount /Volumes/Foo
, кажется, работает быстрее, чем hdiutildiskutil 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.
textutil
это очень удобный инструмент, который может конвертировать текст между форматами HTML, RTF(D), Word (включая XML), OpenOffice.org Writer и форматом веб-архива.
Я использую его, в частности, в службе, которая преобразует выделенный текст в HTML, загружает его на сервер, а затем импортирует в Instapaper.
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, а также для пользователей ПК.
Эта команда очистки полностью устранила проблему (после двойного запуска)
history
показывает список последних выполненных вами команд — около 500 или 600 команд. Я часто использую history | grep something
, чтобы найти команду, которую я недавно использовал.
ssh exa
, она найдет последнюю команду, начинающуюся с ssh exa
. Вы можете снова нажать ctrl+r, чтобы прокрутить дальше назад, вернуться, чтобы выполнить текущую команду, или нажать escape, чтобы продолжить редактирование команды.history -a; history -r
копирует историю между вкладками терминала.history
вы можете запустить любой элемент из полученного списка, используя номер элемента истории. например !23
, запустит пункт 23 в списке истории.Хотя я могу обойтись в vi, я использую TextMate в качестве редактора командной строки . Вы также можете передать ему вещи. Например , ls|mate открывает TextMate с текущим прямым листингом, открытым в текстовом окне.
mate .
это лучшее, что есть на свете.mdls
покажет вам все метаданные файла, о которых знает Spotlight. Вы также можете использовать полученные атрибуты в «mdfind».
mdutil
позволяет включать и выключать индексирование определенных томов, сбрасывать индекс и т. д.
systemsetup
специфичен для BSD (не только для Mac), но действительно крут, проверьте его справочную страницу.
GetFileInfo
(Я считаю, что для этого вам нужно получить инструменты разработчика) позволяет вам видеть все связанные моменты времени (модификация, создание, последний доступ) и все атрибуты файла.
automator
позволяет запускать рабочие процессы автомата из командной строки, в то время как
osascript
позволяет запускать код сценария Apple.
automator
полезно знать ... Я полагаю ;) - (Обычно я использую его для запуска скриптов из Finder, поэтому я не уверен, что когда-нибудь буду использовать его наоборот.)Нажмите и удерживайте escнесколько секунд, чтобы получить список всех возможных команд терминала в вашей системе, включая встроенные, программы на вашем пути и псевдонимы.
Или, как указал Мартин:
Просто используйте ⇥вместо этого, вам не нужно удерживать его даже несколько секунд. ⇥также дополнит для вас частично типизированные команды, а также имена файлов и аргументы, специфичные для команд.
Появится приглашение с вопросом, действительно ли вы хотите отобразить все возможности команды. Просто ответьте y
, чтобы получить список команд.
bcat — удобный канал между моим всегда открытым терминалом (xterm под XQuartz) и моим всегда открытым браузером.
он настраивает потоковый HTTP-сервер только для одного процесса, поэтому такие вещи, как
tar czvf - . | tee bcat
будет просто транслироваться до тех пор, пока команда не выйдет. Страницы руководства нуждаются в небольшой очистке:
man bash | col -b | bcat
или просто
export MANPAGER='col -b | bcat'
man bash
Автодополнение команды в качестве аргумента. например начните печатать:
какой пыть (теперь нажмите ⌥+ ⇧+ 1)
это завершится до
какой питон
⌥+ ⇧+ 1работает так же, как автодополнение с помощью табуляции, за исключением того, что оно автоматически завершается с использованием имен команд, а не имен файлов.
Это мой абсолютный фаворит. Совместное использование снимков экрана через Интернет — проблема. Я написал это, чтобы сделать обмен скриншотами в чате одношаговым процессом с помощью 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
Используйте ctrl+ R, чтобы активировать обратный поиск истории. Затем начните вводить команду, которую вы уже набрали, и все подходящие команды начнут отображаться для вас.
Для навигации в обратном поиске истории просто:
например.
apouche:bin> echo 'type CTRL+R to start reverse search'
(reverse-i-search)`fin': find . -exec grep "MainMenu.nib" {} \;
См. Также принятый ответ на вопрос «Как выполнить поиск в истории bash и повторно запустить команду?» на супер пользователя.
Чем больше я им пользуюсь, тем больше я от него зависим.
screen
Вместе с
screen -ls
screen -r [session]
Очень полезно, когда несколько экранов открыты при подключении по SSH. Это экономит массу времени, особенно когда вам не нужно перезапускать tail
каждый раз, когда вы хотите проверить другой файл журнала.
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\$ '
Я должен сказать, что лучше всего смотреть «Звездные войны» из командной строки:
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
doctor
и нажмите вводпсевдоним для открытия предварительного просмотра из командной строки
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
Мой любимый псевдоним:
alias redo='sudo \!-1'
Если вы забудете использовать «sudo», просто выполните «повторить», чтобы повторно запустить последнюю команду, используя sudo.
Используйте !$
для повторения последнего параметра в последней введенной вами команде, например:
~$ mkdir test-dir
~$ cd !$
cd test-dir
test-dir$
!$
на самом деле является сокращением !!$
, что означает «из самой последней команды вытащить последний параметр»
Дополнительную информацию см. в разделе «ИСТОРИЧЕСКОЕ РАСШИРЕНИЕ» справочной страницы bash.
!^
для первой команды, которую я часто использую.!!
также отлично работаетafplay ~/path/to/file.mp3
Давайте играть песни из командной строки. Вы также можете добавить [space]&
и позволить ему работать в фоновом режиме. :)
Не большая функция, но я заметил, что ее здесь нет.
⌥+ перетаскивание мышью текста терминала позволяет сделать прямоугольный выбор.
Приложение установщика 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 .."
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
если я хочу повторно набрать команду без необходимости смотреть на терминал с «грязным персонажем».
clear
.В меню «Справка» терминала вы можете искать справочные страницы. (В первый раз, когда вы делаете это в первый раз, для индексации файлов справочной страницы может потребоваться несколько секунд, поэтому подождите немного, пока не появятся результаты, но последующие поиски выполняются быстро.) Он покажет результаты справочной страницы в результатах поиска меню «Справка». При выборе одного из них открывается окно с отформатированной страницей.
Начиная с Mac OS X Lion 10.7, в поддержку справочных страниц внесен ряд улучшений:
У меня есть следующие псевдонимы и функции в ~/.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.
Ярлыки командной строки для переключения видимости скрытых файлов в 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» за один шаг. Как и в предыдущих версиях, перетаскивание папки на дисплей терминала приведет к вставке пути к папке.
Очистите кеш 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.
Если вы похожи на меня, у вас одновременно открыто несколько вкладок 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.
Имитация, чтобы ввести Command-F, чтобы полноэкранное видео из командной строки. Полезно при запуске фильма в mPlayer по ssh.
osascript <<END
tell application "System Events" to keystroke "f" using {command down}
END
Конечно, вы также можете использовать этот прием для имитации любого другого «печатания».
как насчет
cat somefile.txt | say
сказать содержимое текстового файла... или...
cat someFile.txt | say -o someAudioFile
возьмите ваш текстовый файл, конвертируйте его в .aiff
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)
Если вы используете 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
Пример:
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
Преимущество в том, что вы не получаете никакого нытья от необходимости нажимать на окна. Я запускаю это как часть сценария обновления, который запускается примерно каждую неделю (чтобы не пропустить обратную связь, поскольку это может произойти, когда я делаю это автоматически).
Измените каталог на каталог, показанный в самом верхнем окне 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')"
}
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
в том случае, если папка была успешно создана.открыть все результаты поиска в одном текстовом окне:
find . -name "pattern"|xargs mate
также работает с mdfind (прожектор):
mdfind -name models.py |xargs mate
Загрузите 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 {} \;
В вашей~/.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», а затем перетащить переднее окно в Терминал, чтобы вставить его путь, затем переключиться на Терминал и нажать «Ввод». Я думаю, это проще. ;)
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 замечательны, но один недостаток сводит нас с ума: некоторым ссылкам разрешено переопределять ваши предпочтения по открытию новых веб-страниц во вкладках, по сути заставляя приложение открывать новое окно. Чтобы предотвратить это в будущем, выполните эту команду: defaults write com.apple.Safari TargetedClicksCreateTabs -bool TRUE
.
Имена скрытых файлов всегда начинаются с точки — имейте это в виду, прежде чем удалять или редактировать незнакомый файл. Хотите верьте, хотите нет, но файлы, которые вы видите в списке на рабочем столе в 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
}
Добавьте файл с именем «-i» в свой домашний каталог. Теперь, если вы случайно наберете:
rm -rf *
он расширится до:
rm -rf -i your other files
и вам будет предложено подтвердить или отклонить удаление всего каталога. Это довольно халтурно, но раньше спасало мою задницу.
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"'
Конечно, вы можете заменить все, что вам больше нравится.
Установите bash для немедленного выхода из скрипта при любой ошибке.
set -o errexit
Всегда хорошая идея при разработке bash-скриптов, особенно деструктивных.
Более простой способ открыть и закрыть DMG:
open <My disk image>.dmg
Затем, чтобы закрыть его:
umount /Volumes/<My disk image>
/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
Я сделал псевдоним под названием 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"
Вы можете использовать escключ вместо alt. > вам нужно сначала коснуться его, а затем ввести другой вместо того, чтобы удерживать его. Это стандартная функция, но она более важна, так как ⌥клавиша на Mac работает иначе, чем на клавиатурах Windows/Linux.
Вы можете настроить поведение клавиши alt в настройках, чтобы оно вело себя как на клавиатуре «Windows». Хотя тогда вы не сможете вводить важные символы как @, \, {, ...
Очень важно, если вы используете emacs в терминале. Но предположим, что есть много команд, которые требуют этого - например, вы также можете копировать и вставлять в bash с привязками emacs.
Я считаю полезным копировать текст в буфер обмена из 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.
drutil eject
раньше, чтобы извлечь диск из SuperDrive, который я удалил из своего MacBook Pro и поместил во внешний корпус. Иногда ОС не распознает, что корпус подключен, и не реагирует на кнопку извлечения, что делает эту команду очень полезной!Строго из одного окна Терминала в себя или в другое окно Терминала:
Выделите текст обычным способом, затем вставьте его, переместив мышь в окно, в которое вы хотите вставить текст, и нажав среднюю кнопку мыши .
Обратите внимание, что если вы сделали несколько выделений с помощью перетаскивания Command-Option, при вставке будет вставлена новая строка, которая вызовет текущую строку. Это , вероятно , не то , что вы хотите .
Вот альтернатива 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
aalib
никогда libcaca
не могли. Создание разумного интерфейса, чтобы просто делать то, что я хочу.Когда я нахожусь в терминале, я ожидаю, что каждое действие будет дано в письменной форме, потому что нет графического интерфейса.
Во многих терминальных приложениях есть какая-то команда выхода, которая возвращает вас в оболочку. Это то, к чему я привык в терминале.
Чтобы покинуть окно или вкладку терминала, я использовал следующую команду:
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"
.tell application "Terminal" to close the front window
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";
}
Чеалион
Джош К.
старый
open
для всего: URL-адресов, изображений, документов. Я использую это каждый день.Скейд
Ник Бедфорд
open .
кажется излишним, учитывая, что он у вас уже открыт.Майкл Х.
ШривацаР
open .
ее в Finder. Это полезно, если вы хотите сделать что-то графическое.Ɱарк Ƭ
Яри Кейнянен
Джош К.
Дэвисгик
bmike
Грэм Перрин
шивабудх
inquestion:this ls -l
.. где я должен ввести это, чтобы найти этот вопрос для всех команд?