it-swarm-ru.tech

Какие полезные команды командной строки в Mac OS X?

Для потоков Windows и Linux , какие команды вы находите наиболее полезными в Mac OS X Server (или клиент)?

58
username
say "some text"

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

28
Tim

pbpaste и ​​pbcopy для взаимодействия с монтажным столом (он же буфер обмена).

Примеры:

# copies the directory listing
ls -l | pbcopy

# get pasteboard lines containing foo and save them in a_file
pbpaste | grep foo > a_file

Я думаю, что по умолчанию они используют кодировку macroman, поэтому, если вы хотите UTF-8 (что вы делаете), вы должны проверить эти ссылки:

23
kch
fs_usage

Позволяет отслеживать активность файловой системы. Удобно, если вы хотите увидеть, какие файлы создает какое-то приложение. Смотрите http://rentzsch.com/macosx/fs_usageIntro для более подробного объяснения.

19
username
open .

Открывает окно Finder в текущем рабочем каталоге.

17
richardhoskins

Из командной строки мне нравится иметь возможность:

Создайте и запишите "универсальный" CD/DVD:

 $ mkisofs -allow-multidot -allow-lead-dots -d -hide-rr-move\
 - l -joliet-long -R -T -v\
 - V VOLUME_NAME -o output.iso root-cd-dir /
$ hdiutil burn -noverifyburn output.iso 

Создайте ISO-образ с CD/DVD:

 $ diskutil unmountDisk /dev/disk2s0
$ dd if =/dev/disk2s0 of = cdname.iso bs = 32m 

Возможность забыть команду otool, когда я ищу ldd:

 $ alias ldd = 'printf "Отправка команды в \'\'' otool -L\'\' '-\n" && otool -L' 

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

 $ hdid diskimage.dmg (или .iso) 

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

 $ man -t rsync | open -f -a /Applications/Preview.app
13
Gary Chambers

Утилита CLI для аэропорта - моя любимая. Смотрите http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/ . Он покажет вам детали, такие как уровень сигнала, уровень шума и BSSID точки доступа, с которой вы связаны.

12
Jason Luther
drutil tray open

Не имеет значения (через ssh), когда клавиатура не подключена, поскольку кнопка извлечения на Apple недоступны снаружи корпуса).

11
James
ipconfig getpacket en0

Отображает конфигурацию сети для основного интерфейса Ethernet (en0).

Если вы привыкли к Windows и думаете, что "ipconfig" не работает - это не так ;-) Вам просто нужно добавить пару аргументов

11
username

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

open -a vlc movie.avi

откроет VLC и скажет ему загрузить файл movie.avi в текущем каталоге.

open movie.avi

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

open -a system\ preferences

запустит Системные настройки. Вы также можете открыть URL-адреса:

open vnc://myserver:5900

откроет общий доступ к экрану и подключится к myserver.

Проверять, выписываться

man open

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

11
w00t
softwareupdate

Обновите свой Mac из CLI.

10
dvoita
networksetup

Сконфигурируйте все, что вы найдете в Панели сетевых настроек в Системных настройках в командной строке. Облегчает написание сценариев или удаленное выполнение намного.

9
Chealion
Sudo changeip -checkhostname

Проверяет, что прямое и обратное разрешение DNS исправно, и часто показывает команду, которую можно использовать для устранения проблемы. Если написано "имена совпадают, ничего не изменится", вы в хорошей форме. Жизненно важно, если вы когда-нибудь измените конфигурацию сети вашего сервера. Также важно использовать это, прежде чем продвигать свой сервер на Open Directory Master.

8
username
dscacheutil -flushcache

Я использую эту кучу для очистки кеша DNS на 10.5+.

8
Bruce McLeod
ping 224.0.0.1

Ping все устройства в вашей подсети

7
username
srm

Версия командной строки для безопасного удаления.

7
Jauder Ho
last

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

Вот пример вывода:

clinton   ttys000                   Thu May 28 22:33   still logged in
clinton   console                   Thu May 28 08:05   still logged in
reboot    ~                         Thu May 28 08:05 
shutdown  ~                         Wed May 27 20:15 
clinton   console                   Wed May 27 17:33 - 20:15  (02:42)
...

wtmp begins Thu May 14 09:26 
7
Clinton Blackmore
 lsof

список открытых файлов

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

$ Sudo lsof /Volumes/CLINTON
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    55966 clinton  cwd    DIR  14,12    16384    2 /Volumes/CLINTON
lsof    56042    root  cwd    DIR  14,12    16384    2 /Volumes/CLINTON
lsof    56043    root  cwd    DIR  14,12    16384    2 /Volumes/CLINTON

В этом случае у меня было cded на диске, и поэтому bash обращался к тому.

Обратите внимание, что если вы видите записи "mds", это означает, что прожектор индексирует диск.

7
Clinton Blackmore

Руководство по администрированию командной строки , выпущенное Apple, неоценимо.

Поиск в Google для "mac mac для командной строки" дает хорошие результаты.

Администрирование из командной строки для Mac OS X 10.5 , 10.4 и 10. .

Другие полезные руководства находятся по адресу http://www.Apple.com/server/macosx/resources/ .

7
Clinton Blackmore
osascript -e 'tell application "AppName" to quit'

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

osascript -e 'tell application "Finder" to sleep'

Полезная последняя строка длинного скрипта Shell, переводит Mac в спящий режим после завершения скрипта. У меня есть псевдоним для iSleep.

pbpaste | script.sh |pbcopy

берет содержимое pasteboard (edit-> copy) и передает его в script.sh. Результаты помещаются на монтажный стол для редактирования -> вставки в документ.

6
sal

http://www.commandlinefu.com

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

6
Clinton Blackmore
mcxquery

это позволит вам увидеть, какие настройки MCX (управляемого клиента) применяются к клиентскому компьютеру.

[Эквивалент GUI - перейти в System Profiler и в разделе "Программное обеспечение" нажать "Управляемый клиент".]

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

5
Clinton Blackmore
sw_vers

Отображает текущую установленную версию и сборку Mac OS X.

5
username
df -h

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

4
hendrasaputra
opendiff file1 file2

Запускает FileMerge (графический diff, поставляемый с Apple Инструменты разработчика) на file1 а также file2.

4
las3rjock
dns-sd -B _ssh
dns-sd -B _rfb
dns-sd -B _services._dns-sd._udp

Список серверов рекламы в Bonjour. Последнее предложение перечисляет типы услуг, которые вы можете перечислить. Распечатка активна, нажмите Ctrl-C, когда увидите достаточно.

Эта же команда используется в последних версиях Linux и Bonjour SDK для Windows.

4
James
system_profiler

Вы получите те же результаты, что и при выборе "Об этом Mac" -> "Дополнительная информация", только в командной строке.

Бег

system_profiler -usage

или просмотр справочной страницы даст вам советы по ее использованию.

Пара примеров:

system_profiler -xml > MySystem.spx
# and later,
open MySystem.spx  # or just double click on it in the Finder

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

system_profiler SPUSBDataType

Рассказывает обо всех ваших USB-устройствах (включая их поставщиков и идентификаторы продуктов, которые могут помочь в отслеживании драйверов).

system_profiler SPUSBDataType | grep "Product ID" -c

скажет вам, сколько USB-устройств подключено (включая внутренние USB-устройства), что полезно, чтобы увидеть, видит ли компьютер какое-либо устройство (или, если, скажем, Parallel схватил его или оно мертвое). [Обратите внимание, что в Приложение System Profiler GUI, вы можете выбрать View -> Refresh из меню, чтобы обновить список; это может быть просто проще.]

system_profiler SPHardwareDataType

получит базовую информацию об оборудовании (полезно для отслеживания активов) и

system_profiler SPHardwareDataType | grep Serial

даст вам серийный номер машины.

4
Clinton Blackmore
Sudo opensnoop

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

Вот еще несколько деталей:

opensnoop - это скрипт dtrace ; в/usr/bin есть много других, которые смотрят на такие вещи, как то, какие системные вызовы вызывает процесс, какие процессы он создает и какие операции ввода/вывода он выполняет. Запустить apropos DTrace для списка, и посмотрите на страницы руководства для деталей.


Я узнал о opensnoop, когда пытался определить причину сбоя Comic Life Magiq 1.1 в ОС 10.5.8 для пользователей с сетевыми учетными записями.

Я запускал (несколько раз, на разных аккаунтах, через ssh):

Sudo opensnoop -e -n Comic > output.txt

Последний файл, открытый пользователями сети, был примерно таким (с полным путем):

/Network/Servers/.../username/Library/Icons/WebpageIcons.db

это напомнило мне, что Safari 5.0 был сбой для пользователей сети, и мы работали над этим, управляя предпочтением не кэшировать значки или перенаправляя файл. Apple, по-видимому, исправил проблему в Safari 5.0.1, а когда я вчера обновился до Safari 5.0.2, он исправил падение для пользователей Comic Life Magiq.

4
Clinton Blackmore
ifconfig en0 ether 00:00:00:00:00:00

Изменяет (подделывает) MAC-адрес до следующей перезагрузки

4
username

Только для Mac: я видел "открыто". выше, но открыть откроет любой документ или приложение, которое вы передаете ему.

Обычный Unix, который я использую чаще всего: Sudo довольно удобен для изменения системных конфигурационных файлов и т.д., Которые я на самом деле редактирую в vi.

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

ssh/scp - мне нравится, что в OSX я могу просто открыть терминал и подключиться к любому из наших серверов. Уже одно это сделало меня счастливым уронить Windows.

ifconfig/ping/whois/nmap и т. д.

3
Alex

scutil --dns

Будет отображаться порядок разрешения DNS. Полезно для создания или отладки сетевых настроек.

3
romant
lsof -i 

перечисляет открытые интернет-порты. Пример вывода:

COMMAND     PID    USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
SystemUIS   223 clinton   11u  IPv4 0x3e21b08      0t0  UDP *:*
ARDAgent    262 clinton   16u  IPv4 0x3e21be0      0t0  UDP *:net-assistant
ARDAgent    262 clinton   18u  IPv4 0x5f01a68      0t0  TCP *:net-assistant (LISTEN)
AppleVNCS   263 clinton    4u  IPv6 0x3e274bc      0t0  TCP *:vnc-server (LISTEN)
Opera     48365 clinton   20u  IPv4 0x5f01e64      0t0  TCP WTD-Staff-BlackmoreC:57094->stackoverflow.com:http (ESTABLISHED)
Opera     48365 clinton   23u  IPv4 0x5b12a68      0t0  TCP WTD-Staff-BlackmoreC:57095->stackoverflow.com:http (ESTABLISHED)

Используйте Sudo, если вы хотите, чтобы порты открывались всеми пользователями, а флаги -n а также -P отключит разрешение имен и имена портов и вместо этого даст вам номера.

3
Clinton Blackmore
Sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent

Запускает службу удаленного рабочего стола (полезно, если у вас есть только SSH-доступ, но вы хотите что-то сделать с помощью графического интерфейса на клиентском Mac). Дополнительные параметры см .: http://support.Apple.com/kb/HT237

3
username
drutil eject

извлечет компакт-диск.

3
Clinton Blackmore

Если вы хотите узнать, какой тип концов файла имеет файл, просто запустите

file /path/to/your-file

например:

$ file imports/sample-students.txt 
imports/sample-students.txt: ASCII text, with CR line terminators
3
Clinton Blackmore

Немного пешеходов для этой аудитории, без сомнения, но я использую:

снимок экрана -i -c

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

2
Dave

Получить корневая оболочка без включения пользователя root (как Apple иногда требуется в своих документах, чтобы сделать что-то "отвратительное", то есть установить общесистемную настройку) язык)

Sudo bash

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

Это может быть опасно, но мы сисадмины, мы знаем, что делаем, не так ли? :)

2
drAlberT

Помимо обычных подозреваемых в Unix, я считаю полезным следующее:

  • dsconfigad - редактирует настройки Active Directory и привязывает компьютер

  • значения по умолчанию - Изменить настройки

  • plutil - конвертирует plist в текст и обратно

  • softwareupdate - запустить обновление программного обеспечения из командной строки

  • installer - устанавливает пакеты из командной строки

  • networksetup - установить и получить различные вещи, такие как имя компьютера

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

2
Honestpuck

Как включить Time Machine для резервного копирования на NAS.

defaults write com.Apple.systempreferences TMShowUnsupportedNetworkVolumes 1

Найти MAC-адрес

ifconfig en0 | grep ether | sed s/://g | sed s/ether//

Команда для создания sparsebundle для копирования в NAS

Sudo hdiutil create -nospotlight -library SPUD -size 160g -fs "Case-sensitive Journaled HFS+" -type SPARSEBUNDLE -volname "<VOLNAME>" ./<HOSTNAME>_<MAC_ADDRESS>.sparsebundle

Работает как брелок для моего ReadyNAS.

2
Jauder Ho

Это бесплатный сторонний инструмент, но

edit

действительно удобно. Это инструмент командной строки, который вы можете установить при первом запуске TextWrangler . [Другие текстовые редакторы (BBEdit, TextMate), вероятно, предоставляют что-то аналогичное.]

edit path/to/somefile

Открывает файл в TextWrangler и позволит вам аутентифицироваться, если у вас обычно нет разрешения на его редактирование. (Вы даже можете сделать это из сеанса SSH, и он откроет его для зарегистрированного графического пользователя).

Еще лучше то, что вы можете подключить к нему вещи.

lsof -i | edit

например, покажет вам ваши открытые сетевые подключения и откроет их в TextWrangler, где вы можете легко искать (и прокручивать) их.

2
Clinton Blackmore

Этот вопрос частично совпадает с этот вопрос об инструментах, без которых администратор UNIX не может жить . Многие из инструментов командной строки для Mac OS X имеют корни UNIX, такие как df, du и ​​which; однако есть заметные исключения, которые не имеют очевидных эквивалентов UNIX, такие как osascript, open, pbcopy, pbpaste и ​​say.

2
las3rjock

killall -9 appname принудительно закрывает приложение. Очень полезно, если вы не можете войти в Activity Monitor.

2
al.

ipconfig иногда полезен:

Получение текущего IP-адреса на интерфейсе:

$ ipconfig getifaddr en1
10.110.2.25

Получение информации о DHCP, которая была получена последней:

$ ipconfig getpacket en1
op = BOOTREPLY
htype = 1
flags = 0
hlen = 6
Hops = 0
xid = 143857879
secs = 0
ciaddr = 0.0.0.0
yiaddr = 10.110.2.25
siaddr = 0.0.0.0
giaddr = 0.0.0.0
chaddr = 00:aa:bb:cc:dd:ee
sname = 
file = 
options:
Options count is 7
dhcp_message_type (uint8): ACK 0x5
server_identifier (ip): 1.1.1.1
lease_time (uint32): 0xe10
router (ip_mult): {10.110.0.1}
domain_name_server (ip_mult): {1.1.1.1, 1.1.1.2}
subnet_mask (ip): 255.255.252.0
end (none): 
2
dexedrine
ifconfig | grep cast

отлично подходит для получения вашего IP-адреса, и

ifconfig en1 | grep eth

хорошо работает для получения MAC-адреса. Использование en1 (почти всегда) позволит получить MAC-адрес аэропорта, что удобно, если в вашей беспроводной сети разрешены только известные устройства. И наоборот, если вы используете en0 - встроенный порт Ethernet - вы можете затем искать машину в вашем Open Directory следующим образом:

ldapsearch -x -h odm -b "cn=computers,dc=odm,dc=pretendoco,dc=com" "macAddress=00:0d:93:b5:82:88"

(Предполагая, что ваш сервер был 'odm', а область - ODM.PRETENDCO.COM).

2
Clinton Blackmore

Я только что обнаружил, что есть отличная конструкция bash, которую вы можете использовать вместо команды seq, отсутствующей в Mac OS:

echo { 18..21 }
2
geewiz
sqlite3 foo.db

Запускает интерактивный сеанс SQLite . Если foo.db не существует, он будет создан.

1
richardhoskins

du-d 1-h

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

человек [команда]

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

1
Peter Hoven

OS X конкретные вещи, которые я не видел, упоминаются:

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

networksetup - покажет вам весь сумасшедший синтаксис, который он поддерживает; это эквивалент командной строки панели настроек сети.

Sudo launchctl list - показывает запущенные задания launchctl. Помните launchctl stop X.XX.X просто "остановит" (убьет) текущий запущенный экземпляр постоянного процесса; чтобы действительно остановить его использование launchctl unload /System/Library/LaunchDaemons/X.XX.X.plist.

1
eric sorenson
Sudo slapconfig -destroyldapserver

Принудительное понижение реплики LDAP в автономный режим. Если ваш Open Directory Master неверно настроен, иногда попытка демонтировать Open Directory Replica с помощью Server Admin не удастся (например: вы можете обнаружить, что ваш сервер Replica отказывается от демонирования). Вы можете использовать slapconfig, чтобы заставить его понижать в таких случаях.

1
username
 which program

искал путь к программе и сообщает вам, какой исполняемый файл вызывается, если вы запускаете программу без указания полного пути.

Это обычно наиболее полезно в качестве сокращения для ввода пути.

$ which python
/usr/bin/python
$ ls -l `which python`
lrwxr-xr-x  1 root  wheel  72 30 Jan 22:56 /usr/bin/python -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python
1
Clinton Blackmore

Вы когда-нибудь хотели узнать, какой IP-адрес другого Mac, который вы видите в Finder, находится в вашей локальной сети благодаря Bonjour?

dscacheutil -q Host -a name OtherMac.local

dscacheutil удивительно полезен и универсален. Вы можете сделать с ней гораздо больше, чем просто очистить кэш DNS (как уже упоминалось здесь), то есть поиск пользователей, статистику и дампы кэша.

1
Joe Carroll

Какие DHCP-лицензии имеет клиент?

Sudo ls -lt /private/var/db/dhcpclient/leases

Список брандмауэров разрешить/запретить:

Sudo ipfw list

Сгенерируйте пароль с высокой энтропией (дважды щелкните на многообещающей 16-символьной строке для копирования/вставки):

head -c90 /dev/random | uuencode -m pwd | hexdump -C
1
Charles Stewart

Это основные, но удобные, если у вас амнезия:

Кто я?

id

Где я стою

pwd

Какое здание я?

hostname

Какой у него адрес?

ifconfig |grep inet
1
username

Возможно, не самая "полезная" команда, но say довольно забавно.

Например say I love serverfault чтобы он прочитал то, что вы печатаете после слова "сказать".

0
HostBits
locate "foo"

Отображает любой файл в вашей системе с "foo" в имени файла. Я должен использовать это почти так же часто, как я использую Spotlight.

0
username
 Sudo reboot

перезагружает компьютер.

0
Clinton Blackmore