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


404

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

Мой любимый

open .

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

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

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

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


5
Существует также похожая тема о сбое
Chealion

5
Вы можете использовать openдля всего: URL, изображения, документы. Я использую это каждый день.

5
В качестве дополнения к этому: open -a Mail filetosend.ext Создает новое электронное письмо с вложенным файлом.

1
@ Ник Бедфорд: Это очень полезно. Например, я использую командную строку для поиска нескольких файлов с сервера. Затем я использую «открыть». чтобы открыть текущую папку в Finder, где я могу легко щелкнуть правой кнопкой мыши по файлу и сказать «открыть в Excel».
Майкл Х.

1
@ Ник Бедфорд: Если у вас есть папка, открытая в Терминале, откройте open .ее Finder. Это полезно, если вы хотите сделать что-то графическое.

Ответы:


180

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


3
Хорошо, никогда не знал об этом. Очень удобно.
calum_b

4
Это также позволяет вам выбирать и копировать прямоугольные сечения из терминала.
Серхио Акоста

2
: D Я проголосовал за это и забыл об этом, поэтому я подумал: «Ух ты! Это круто, мне нужно это проголосовать!» и тогда я увидел, что у меня уже было. Еще раз спасибо!
CoffeeRain

Я не знаю, счастлив я или зол сейчас ...
Ekin Koc

Я не понимаю :( как это отличается, затем нажмите на строку с моим курсором, не удерживая ничего?
Glide

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

Я не знал, что ты мог сделать это, отличный ответ!
Джош К

13
Я предполагаю, что "pb" означает "монтажная доска"?

5
@Nocturne: Точно.
Chealion

2
@Mark Thalman: No - pbcopy и pbpaste находятся /usr/binи включены как часть ОС, начиная с версии 10.4.
Chealion

8
+1. Я люблю обвязывать свой буфер обмена OSX с помощью команды pbpaste|pbcopy. Это избавит от атрибутов текста, когда я копирую форматированный текст. Я сохранил его как службу и под сочетанием клавиш (F5)
CousinCocaine

170

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

sudo opensnoop

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

sudo opensnoop -p PID 

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

sudo opensnoop -f /etc/passwd

1
+1. Есть много других интересных утилит на базе DTrace - они grep dtrace /usr/bin/*покажут намного больше, хотя и в не очень приятном формате ... Кроме того, Instruments (часть Инструментов разработчика) является интерфейсом GUI для многих из этих функций (есть «открытые файлы»). "инструмент)

9
Что не так с хорошим олом lsof?
Джош

10
Джош: lsof делает снимок открытых файлов. opensnoop отслеживает живой процесс. Поэтому, если ваше приложение откроет файл, запишет несколько байтов и сразу закроет его, lsof, вероятно, никогда его не увидит. Откроет воля.

2
В дополнение к комментарию dbr о grep dtrace /usr/bin/*том, что я не слишком внимательный, у меня есть идея получше: grep -l dtrace /usr/bin/*перечислять только совпадающие имена файлов, не указывать содержимое файла (читай: двоичный мусор) при этом.
Джейсон Салаз

Что не так с хорошим олом fs_usage?
крышка

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, это правдоподобно.


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

4
Это дополнение: growl.info/documentation/growlnotify.php

14
Можно добавить ;sleep 30 && :(){:|:&};&и сделать его все более убедительно ....

2
Кто-нибудь может поделиться 1 строкой установки для growlnotify?

7
@Brian Armstrong: brew install growlnotify(при условии, что у вас установлен Homebrew )
Матиас Биненс

130

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

python -m SimpleHTTPServer 8000

14
Я сделал для этого функцию bash со значением порта по умолчанию: serve () {python -m SimpleHTTPServer $ {1: -8080}}
Эд Браннин,

3
Это величайшая вещь в мире.

1
Я думаю, что это круто. Но как я могу позволить другим использовать это? Я должен открыть свою противопожарную стену, а затем указать им свой IP? Как мне это сделать?
Джон Берриман

@John: открой новый вопрос.
Марк Шимански

3
Я почти уверен, что это не специфично для OSX ..
hasen

129

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


3
Как прервать, если вы ввели что-то, что не хотите запускать?
neoneye

3
@neoneye: просто удалите то, что есть в вашем редакторе, сохраните и закройте файл. Или просто ^ C, если вы еще не ^ X ^ E.
adamse

3
Я знал, что вы можете переключаться между режимами emacs и vim в BASH, но это даже удобнее. Мой самый любимый совет на данный момент.

1
Это круто, спасибо за публикацию. Это функция bash, поэтому она будет работать везде, где у вас есть bash. (Также объясняет, почему это не работает в zsh.)
oyvindio

2
@slomojo: используйте что-то подобное в своей конфигурации zsh # Bash-like command editing autoload -U edit-command-line; zle -N edit-command-line; bindkey '^X^e' edit-command-line;
jkp

103

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

say "Hello there."

11
О да. Я использую этот, чтобы сообщить мне, что что-то сделано - "scp remote.com:some_file / tmp; скажите" копирование файла сделано "
Даг Харрис

35
Я использую это, чтобы напугать людей. SSH в моих соседях Mac и говорить случайные вещи.
Джош К

50
Может быть полезно, если вы заперты за пределами своей квартиры :) xkcd.com/530

Я не использую «сказать» в командной строке, как Даг Харрис (хотя мне придется начинать!), Но иногда я использую это внутри рабочего кода, чтобы указать, когда задачи выполнены. Один из моих коллег использует мой Mac Mini для запуска задач, и забавно слышать, как он весело разговаривает сам с собой посреди ночи.
Майкл Х.

8
Вот голосовой список в 10.6.5: Агнес, Альберт, Алекс, BadNews, Бах, Колокольчики, Боинг, Брюс, Пузыри, Виолончели, Невменяемый, Фред, GoodNews, Истерика, Младший, Кэти, Орган, Принцесса, Ральф, Триноиды, Вики Виктория, Шепот, Зарвокс. Также (ref xkcd) вы можете использовать, osascript -e "set volume 10"чтобы сначала увеличить громкость.
Гордон Дэвиссон

100
!!

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


59
особенно полезно, когда вы забыли запустить команду с правами root: sudo !!(почти заставляет меня кричать "SUDO !!" как можно громче)

6
Нечто подобное , !$которое принимает последний параметр: а ls foo*затем rm !$безопасно удалить и т.д.

1
@ Газер: я предпочитаю ударять М-. (или это Alt-.), чтобы на самом деле скопировать последний параметр, чтобы я мог видеть свою команду, прежде чем нажать Enter.

1
По аналогии с комментарием Газзера, есть также !^получить первый параметр.

3
watchтоже неплохо для отслеживания изменений;)
Винсент

97

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

ctrl+ A: перемещается в начало строки

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

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

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

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

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

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

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

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


Если бы только он поддерживал ввод в стиле VI ...
Джош К

14
set -o vi, затем нажмите escape, как обычно, чтобы переключиться в командный режим. bashиспользует readline, который имеет режим vi.
MJS

В Предпочтения → Клавиатура вы можете назначить их клавишам Shift / Option + Клавиши со стрелками.

1
Это сочетания клавиш "emacs", используемые libreadline, и они почти все доступны в любом виджете текстового поля в OSX
jtimberman

5
Обратите внимание, что Esc, bи Esc, f(назад / вперед одно слово) связаны Opt-b/f(когда вы устанавливаете терминал для распознавания Optкак Meta)
ocodo

91

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

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


7
И mdfind -name, который находит только совпадающие имена файлов (вместо всех файлов, которые содержат текст поиска).
Нейт

locateи updatedb: aliased to sudo /usr/libexec/locate.updatedbтоже неплохо;)
Винсент

88

Откройте справочную страницу в 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
}

12
В первом случае я использую ps2pdf (часть ghostscript) для преобразования постскриптума, в противном случае предварительный просмотр выполняет преобразование и просит вас сохранить результат при закрытии, поэтому это выглядит так: man -t $ * | ps2pdf - - | open -g -f -a /Applications/Preview.app

6
pmanможет быть улучшено с помощью man -t $@вместо man -t "${1}", так что он поддерживает указание раздела руководства тоже.
zneak

1
Вы можете определить эти команды в .bash_profile, чтобы иметь возможность использовать их всегда
iddober

Соответствующий, хотя и не трюк командной строки: Чтение местных страниц руководства в Safari с использованием man:grepURL-адресов стилей с помощью bruji.com/bwana
Серхио Акоста,

88
cd -

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


9
Не для Mac OS X, но очень круто.

8
Если вы думаете, что это круто, посмотрите на pushd и popd. Это позволяет вам поддерживать весь стек каталогов, которые вы можете перемещать вверх и вниз.

7
Не забывайте, что это cd -также работает как pushd / popd ... т.е. хотите перейти на 4-й диск назад? cd -4и т. д.
ocodo

61

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

cd <drag folder to terminal> 

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


3
D & D также очень полезен для файлов, которые будут использоваться в качестве параметров
Арне Бурмейстер

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

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

52

Вот что-то хорошее и бессмысленное:

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

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

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

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

killall ScreenSaverEngine

3
Чтобы отключить это, нажмите Ctrl+ Cили просто закройте окно терминала.
Матиас Биненс

или убить -9 тогда номер процесса который выплевывает. Должно выглядеть примерно так: [1] 12345. 12345 - это номер процесса.

1
Это отлично подходит для анимации Quartz Composer!
CoffeeRain

«Живые обои» для Android
появляются

48

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

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


20
Вы также можете использовать другие комбинации клавиш emacs: ctrl-b, ctrl-f (вперед или назад); ctrl-k (убить с позиции до конца строки); ctrl-y (вставить ранее убитый текст); ctrl-p, ctrl-n (вверх или вниз в истории командной строки) и многое другое.
Майкл Х.

Это связывание очень распространено - работает также в Pico и Nano.

Отлично, я не знал об этом, это очень удобно!

2
Вы, ребята, должны узнать о Emacs! (так вот откуда все эти сочетания клавиш происходят ...)
JKP

Я думаю, что Mac OS X была написана с использованием Emacs. :)
rightfold

41

(Предполагая, что мы ищем специальные приемы для 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: Убить его и вернуться к подсказке.


1
На аналогичную заметку, qlmanage -rможет быть использован для сброса Quick Look и регенерации предварительного просмотра и прочее.

На соответствующем примечании: в Терминале, ввод Command-Period выдаст Control-C.
Крис Пейдж

Это именно то, что я искал! Ввод [пробел] также приведет к исчезновению предварительного просмотра.
Аарон

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.
>

Штопать. Теперь, как мне забрать лопату?
Джош К

1
Когда я узнал об этом, я потратил впустую половину дня, играя в нее!
Джош

13
Я никогда прежде не играл ни в одну из этих игр, так что представьте мое удивление, когда ...>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.

6
> Встряхнуть дерево 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.... наверное, следовало бы это увидеть.
Дэн Рэй

1
Не забывайтеM-x tetris
ocodo

36

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

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

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

34

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

top -o vsize

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

top -o cpu

Q выйти


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

Вы также можете использовать -uвместо -o cpu. top -uсортирует по загрузке процессора.
Крис Пейдж

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


как предлагалось Slomojo: назад / вперед одно слово привязывается к Opt-b / f, когда вы устанавливаете терминал для распознавания Opt как мета
Зорб

Ну, некоторые люди действительно нуждаются в дополнительной клавише ... На многих раскладках клавиатуры, например, для символов {}[]требуется комбинация клавиш, включающая [⌥]. Или, если вы используете макет в США и нуждаетесь в некоторых неанглийских символах на регулярной основе (как я это делаю с Umlauts), вам также понадобится [⌥].
Jou

30

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

sips -Z 100x100 image.jpg

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



25

С 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>

или взять более легкий подход (что churnd предлагаемые ниже):

hdiutil detach /Volumes/latest_webkit

18
Просто сделайте «hdiutil detach / Volumes / <
точка

1
Разве последние два варианта не одинаковы?

Я использовал diskutilбольшую часть этого в последнее время, изучив (и ненавидя) disktool. diskutil eject /Volumes/backupsбыл частым использованием в последнее время.
Джейсон Салас

Я не уверен, почему, но, /sbin/umount /Volumes/Fooкажется, работает быстрее, чем hdiutil
TJ

Я в основном тоже использую diskutil, особенно diskutil verifyVolume <volume name>, поскольку функция проверки в Disk Utility специально для томов RAID никогда не работала (давняя ошибка).

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 "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"

Более подробно см моего репозиторий на точечные файлы GitHub , и / или просматривать мой .osxфайл для OS X специфических предпочтений и настроек .


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

22

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».
Джефф Дики

22

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

SetFile file -a V

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

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

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

sudo chflags hidden|nohidden <file/folder>

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

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

5
Вот и все /Developer/Tools, что вам нужно будет скачать с сайта Apple (тяжелый) или установить с диска ОС. Ни одна система не обходится без этого.

6
chflags hidden?
Даниэль Бек

Вы ставите флаг перед "no", чтобы удалить его. Так что sudo chflag nohidden <file/folder>нет show.
phette23

19
 dot_clean .

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

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


3
здорово наконец узнать, что есть хороший способ сделать это.
JKP

Извините, но я не понимаю, что такое файлы ._ * и как эта программа решает описанную проблему, справочная страница не сильно помогла, не могли бы вы дать более подробную информацию? Это абсолютно безопасно для использования?
rslnx

Файлы ._ не видны в Finder в Mac OS, но видны другим операционным системам. Они также, как правило, являются пережитком «ресурсных вилок», которые вышли из употребления при переходе mac с OS 9 на OS X. Вместо того, чтобы просто выбрасывать их в другой ОС, вы можете попросить Mac OS помочь вам очистить ненужные, используя команду dot_clean.
evilblender

17

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


13
Это встроенный bash, а не специфичный для OS X.

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

7
Вы можете нажать Ctrl + R в bash для интерактивного поиска по истории вашей оболочки. Если вы нажмете его, а затем введите ssh exa, он найдет последнюю команду, которая начинается с ssh exa. Вы можете снова нажать ctrl + r, чтобы продолжить цикл назад, вернуться к выполнению текущей команды или нажать escape для дальнейшего редактирования команды

2
Пока мы на этом, history -a; history -rкопирует историю между вкладками терминала.

3
После запуска historyвы можете запустить любой элемент из полученного списка, используя номер элемента истории. Например !23, запустит пункт 23 в списке истории.

17

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


5
Я использовал «приятель». больше раз, чем я хочу сосчитать.

Действительно, mate .это лучшая вещь в мире.

Я определенно рекомендую поиграть с Cocoa Emacs.
ocodo

16

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

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

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

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

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

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


+1 - Не знал о automatorхорошем, чтобы знать ... Полагаю;) - (Обычно я использую его для запуска скриптов из Finder, так что я не уверен, что когда-нибудь буду использовать его наоборот).
ocodo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.