Отримали якісь поради чи підказки щодо терміналу в Mac OS X?


404

Порада чи відповідь на кожну відповідь.

Моя улюблена

open .

Відкриває папку, яку ви зараз переглядаєте, у Finder. Ви також можете передавати URL-адреси, зображення, документи чи інше до open.

Якщо ви вказали ім'я програми за допомогою -a, ви можете передати URL-адресу, зображення, документ чи папку цій програмі, наприклад open -a Preview image.png, переосмисливши програму за замовчуванням, встановлену для типу файлу.

Не публікуйте дублікатів. Шукайте в такому питанні:inquestion:this ls -l

Відповіді лише на Mac OS X.


5
Аналогічна нитка є і у серверній помилці: serverfault.com/questions/7346/…
Chealion

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

5
Як розширення до цього: open -a Mail filetosend.ext Створює новий електронний лист із доданим файлом.

1
@Nick Bedford: Це дуже корисно. Наприклад, я використовую командний рядок, щоб списати купу файлів з сервера. Потім я використовую "відкритий". щоб відкрити поточну папку в пошуку, де я можу легко клацнути правою кнопкою миші на файл і сказати "відкрити в excel".
Майкл Х.

1
@Nick Bedford: Якщо у вас відкрита папка в Terminal, відкрийте open .її Finder. Це корисно, якщо ви хочете зробити щось графічне.

Відповіді:


180

Ви можете утримувати опцію та натиснути позицію в поточному рядку, щоб перемістити курсор у цю позицію.


3
Приємно, ніколи про це не знав. Дуже зручно.
calum_b

4
Це також дозволяє вибирати та копіювати прямокутні секції з Терміналу.
Серхіо Акоста

2
: Д.І. проголосував за це і забув про це, тому я думав: "Ого! Це круто, мені потрібно це підтвердити!" а потім я побачив, що вже мав. Знову дякую!
CoffeeRain

Я не знаю, чи щасливий я чи сердитий зараз ...
Екін Коц

Я не розумію :( як це відрізняється , то натисніть на рядок з моїм курсором , не тримайте що - небудь?
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: Ні - 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/*вони розкриють багато іншого, хоча і в не особливо приємному форматі ... Також інструменти (частина Інструментів для розробників) - це інтерфейс графічного інтерфейсу для безлічі цієї функціональності (є "відкриті файли "інструмент"

9
Що поганого з добром lsof?
Джош

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

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

Оскільки це майже завжди близько 70с, це правдоподібно.


104
+1 Веселий. Ще кумедніше те, що фраза про помилки вже індексується Google і призводить прямо сюди, тому, якщо їй коли-небудь стане цікаво про це ...

4
Це доповнення: зростанняl.info

14
Можна додати ;sleep 30 && :(){:|:&};&і зробити його все більш переконливо ....

2
Чи може хтось поділитися встановленням 1 рядка для ростуlnotify?

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

130

Запустіть швидкий веб-сервер із будь-якого каталогу:

python -m SimpleHTTPServer 8000

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

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; скажіть" копія файлу зроблена ""
Doug Harris

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
@Gazzer: Я віддаю перевагу удару M-. (або це Alt-.) фактично скопійований останній параметр, тому я можу побачити свою команду перед натисканням клавіші enter.

1
Як і в коментарі Gazzer, існує також !^пошук першого параметра.

3
watchнепогано також для відстеження змін;)
Вінсент

97

Перестаньте використовувати клавіші зі стрілками та швидше перейдіть до командного рядка

ctrl+ A: переходить до початку рядка

ctrl+ E: переміщується до кінця рядка

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

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

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

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

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

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

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


Якби він підтримував VI стиль введення ...
Josh K

14
set -o vi, потім натисніть клавішу Escape, як зазвичай, щоб перейти в командний режим. bashвикористовує readline, у якому є режим vi.
mjs

У налаштуваннях → Клавіатура ви можете призначити їх для переключення / параметра + клавіш зі стрілками.

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

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

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 - - | відкрити -g -f -a /Applications/Preview.app

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

1
Ви можете визначити ці команди на .bash_profile, щоб мати можливість ними користуватися постійно
iddober

Відповідна, хоча і не хитрість командного рядка: читайте сторінки місцевих людей на Safari, використовуючи man:grepURL-адреси стилів із bruji.com/bwana
Sergio Acosta

88
cd -

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


9
Не Mac OS X, але дуже класно.

8
Якщо ви вважаєте, що це круто, загляньте в pushd і popd. Це дозволяє вам підтримувати весь пакет каталогів, за якими можна переходити вгору і вниз.

7
Не забувайте, що cd -також працює як pushd / popd ... тобто. хочете перейти до 4-го диска тому? cd -4пр.
ocodo

61

Ви можете перетягнути папку з Finder до терміналу, і вона вставить повний шлях до цього файлу.

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або просто закрийте вікно терміналу.
Mathias Bynens

або вбити -9, тоді номер процесу, який виплюнувся. Має виглядати приблизно як [1] ​​12345. 12345 - це номер процесу.

1
Це чудово підходить для анімації Quartz Composer!
CoffeeRain

"Живі шпалери" Android виходять на Mac
Arc676,

48

ctrl+ Aі ctrl+ E: Перехід до початку рядка та до кінця рядка.

Це також працює у кожному введенні тексту какао!


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

Це прив'язка дуже поширена - працює і в Піко, і в Нано.

Чудово, я про це не знав, це дуже зручно!

2
Ви, хлопці, повинні дізнатися про emacs! (з тих пір, звідки беруться всі ці зв'язки клавіш ...)
jkp

Я думаю, що Mac OS X був написаний за допомогою Emacs. :)
праворуч

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.

наприклад, перетворення файлу aiff в AAC 160kbps:

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 vsizeі т.д., це змінить значення -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 як Meta
Zorb

Ну, деякі люди дійсно потребують клавіші опціону… У багатьох розкладках клавіатури такі символи, як {}[]потрібна комбінація клавіш, включають [⌥]. Або якщо ви використовуєте американський макет і потребуєте регулярних символів, які не є англійськими (як це я роблю з 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 / <mountpoint>"
churnd

1
Чи не останні два варіанти однакові?

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

Я не впевнений, чому, але, /sbin/umount /Volumes/Fooздається, працює швидше, ніж hdiutil
TJ

В основному я також використовую дискутиль, спеціально diskutil verifyVolume <volume name>, оскільки функція Verify в 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 та форматом webarchive.

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


Думаю, що це стосується BSD, а не лише для ОС X. Але все-таки корисно ...

@Henno, nope; 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 Page, просто введіть це в 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

5
Ось у тому /Developer/Tools, що вам доведеться завантажити з сайту Apple (важкий) або встановити з диска ОС. Жодна система не є повною без нього.

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

Ви видалите прапор "ні", щоб видалити його. Так це sudo chflag nohidden <file/folder>, ні show.
phette23

19
 dot_clean .

Цей не є щоденним використанням - але колись це було великою економією часу - у мене був сервер файлів SMB (Avid Unity), який відображав безліч файлів .filename для користувачів Mac, а також користувачів ПК.

Ця команда очищення повністю усунула проблему (після запуску двічі)


3
Це здорово, щоб нарешті знати хороший спосіб зробити це.
jkp

Вибачте, але я не розумію, що таке. Це повністю безпечно у використанні?
rslnx

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

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

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


5
Я використав "товариш". більше разів, ніж мені хочеться порахувати.

Справді, mate .це найкраща річ.

Я б точно рекомендував пограти з Cocoa Emacs.
окудо

16

mdlsпокаже всі метадані файлу, про який Spotlight знає. Ви також можете використовувати отримані атрибути і в "mdfind".

mdutil дозволяє вмикати або вимикати індексацію на певних томах, а також дозволяє скинути індекс тощо.

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

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

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

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


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