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

Один совет или трюк за каждый ответ.

Мой любимый

open .

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

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

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

Только для Mac OS X .

405 голосов | спросил 7 revs, 5 users 59%
Josh K
1 Jam1000000amThu, 01 Jan 1970 03:00:00 +030070 1970, 03:00:00

30 ответов


180

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

ответил mirth23 15 Maypm17 2017, 18:01:53
179

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
ответил mirth23 15 Maypm17 2017, 18:01:53
170

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

sudo opensnoop

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

sudo opensnoop -p PID 

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

sudo opensnoop -f /etc/passwd
ответил mirth23 15 Maypm17 2017, 18:01:53
152

Он не встроен, но это самый эффективный способ заставить мою жену перестать использовать мой ноутбук, чтобы читать новости о знаменитостях через несколько часов после того, как 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.'

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

ответил mirth23 15 Maypm17 2017, 18:01:53
130

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

python -m SimpleHTTPServer 8000
ответил mirth23 15 Maypm17 2017, 18:01:53
129

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

ответил mirth23 15 Maypm17 2017, 18:01:53
103

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

say "Hello there."
ответил mirth23 15 Maypm17 2017, 18:01:53
101
!!

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

ответил mirth23 15 Maypm17 2017, 18:01:53
97

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

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

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

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

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

esc + B : откройте одно слово

esc + F : переместить одно слово

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

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

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

ответил mirth23 15 Maypm17 2017, 18:01:53
91

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

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

ответил mirth23 15 Maypm17 2017, 18:01:53
88

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

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

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

tman () {
  MANWIDTH=160 MANPAGER='col -bx' man [email protected] | 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
}
ответил mirth23 15 Maypm17 2017, 18:01:53
88
cd -

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

ответил mirth23 15 Maypm17 2017, 18:01:53
61

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

cd <drag folder to terminal> 

В принципе это противоположно open в терминале

ответил mirth23 15 Maypm17 2017, 18:01:53
52

Вот что-то приятное и бессмысленное:

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

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

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

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

killall ScreenSaverEngine
ответил mirth23 15 Maypm17 2017, 18:01:53
48

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

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

ответил mirth23 15 Maypm17 2017, 18:01:53
41

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

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

$ 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 : Убейте его и верните в приглашение.

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
37
$ 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.
>
ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
36

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

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

afconvert track.aiff -o track.m4a -q 127 -b 160000 -f 'm4af' -d 'aac '
ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
34

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

top -o vsize

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

top -o cpu

Q , чтобы выйти

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
32

Чтобы снова использовать 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~) и Страница вниз (\033[6~), чтобы отправить эти ключи в оболочку вместо прокрутки буфера.

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
30

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

sips -Z 100x100 image.jpg

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

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
27

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

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
25

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

hdiutil mount ~/Desktop/lastest_webkit.dmg

Демонтаж (хакерский путь):

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

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

hdiutil detach /Volumes/<mountpoint>

или используйте более простой подход (предлагаемый ниже churnd ):

hdiutil detach /Volumes/latest_webkit
ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
25

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

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 "[email protected]$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, поэтому я могу использовать их в каждом окне терминала.

P.S.

alias chpwn="chown"

Подробнее см. мой репозиторий dotfiles на GitHub и /или просмотреть файл .osx для OS-специфических настроек и настроек .

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
22

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

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

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
22

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

SetFile file -a V

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

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

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

sudo chflags hidden|nohidden <file/folder>

chflags - это BSD-команда, и у нее также есть Man-страница, просто введите это в Terminal

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
ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
19
 dot_clean .

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

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

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
17

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

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
17

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

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08
16

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

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

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

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

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

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

ответил Doug Harris 8 +04002009-10-08T02:15:08+04:00312009bEurope/MoscowThu, 08 Oct 2009 02:15:08 +0400 2009, 02:15:08

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132