Какие полезные команды командной строки в Mac OS X?
Что касается потоков Windows и Linux, какие команды вы считаете наиболее полезными в Mac OS X Server (или клиенте)?
55 ответов
say "some text"
Используется для того, чтобы люди возвращались в свои квартиры, say
принимает ваши аргументы и читает их вслух через устройство вывода звука.
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 (что вы делаете), вы должны проверить эти ссылки:
fs_usage
Позволяет контролировать активность файловой системы. Удобно, если вы хотите увидеть, какие файлы создает какое-то приложение. Смотрите http://rentzsch.com/macosx/fs_usageIntro для более подробного объяснения.
Из командной строки мне нравится иметь возможность:
Создайте и запишите "универсальный" 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
Утилита CLI для аэропорта - моя любимая. См. http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/. Он покажет вам детали, такие как уровень сигнала, уровень шума и BSSID точки доступа, с которой вы связаны.
ipconfig getpacket en0
Отображает конфигурацию сети для основного интерфейса Ethernet (en0).
Если вы привыкли к Windows и думаете, что "ipconfig" не работает - это не так;-) Вам просто нужно добавить пару аргументов
Нельзя сказать достаточно, "открытый" - это здорово. Вы можете открывать документы в их программе с графическим интерфейсом, а также выбирать программу с помощью -a. Например,
open -a vlc movie.avi
откроет VLC и скажет ему загрузить movie.avi в текущем каталоге.
open movie.avi
откроет его с любой программой по умолчанию. Если вы просто хотите открыть программу, вы можете сделать это тоже:
open -a system\ preferences
запустит Системные настройки. Вы также можете открыть URL-адреса:
open vnc://myserver:5900
откроет общий доступ к экрану и подключится к myserver.
Проверять, выписываться
man open
чтобы увидеть все флаги, которые вы можете использовать.
drutil tray open
Ценно (через ssh), когда клавиатура не подключена, поскольку кнопка извлечения на оптических дисках Apple недоступна снаружи корпуса.
networksetup
Сконфигурируйте все, что вы найдете в Панели сетевых настроек в Системных настройках в командной строке. Облегчает написание сценариев или удаленную работу.
sudo changeip -checkhostname
Проверяет, что прямое и обратное разрешение DNS исправно, и часто показывает команду, которую можно использовать для устранения проблемы. Если написано "имена совпадают, ничего не изменится", вы в хорошей форме. Жизненно важно, если вы когда-нибудь измените конфигурацию сети вашего сервера. Также важно использовать это, прежде чем продвигать свой сервер на Open Directory Master.
dscacheutil -flushcache
Я использую эту кучу для очистки кеша DNS на 10.5+.
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
Руководство по администрированию командной строки, выпущенное Apple, неоценимо.
Поиск в Google для "командной строки mac mac" дает хорошие результаты.
Администрирование из командной строки для Mac OS X 10.5, 10.4 и 10.3.
Другие полезные руководства находятся по адресу http://www.apple.com/server/macosx/resources/.
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
В этом случае я имел cd
перешел на диск, и bash получал доступ к тому.
Обратите внимание, что если вы видите записи "mds", это означает, что прожектор индексирует диск.
osascript -e 'tell application "AppName" to quit'
Позволяет вам выйти из приложения из оболочки.
osascript -e 'tell application "Finder" to sleep'
Полезная последняя строка длинного сценария оболочки, переводит Mac в спящий режим после завершения сценария. У меня есть псевдоним для iSleep.
pbpaste | script.sh |pbcopy
берет содержимое pasteboard (edit->copy) и передает его в script.sh. Результаты помещаются на монтажный стол для редактирования -> вставки в документ.
Хотя это и не ресурс Mac, он использует значок терминала, и большая часть списка действительно полезных команд будет работать.
mcxquery
это позволит вам увидеть, какие настройки MCX (управляемого клиента) применяются к клиентскому компьютеру.
[Эквивалент GUI - перейти в System Profiler и в разделе "Программное обеспечение" нажать "Управляемый клиент".]
Полезно определить, управляется ли машина, и посмотреть, получает ли она ожидаемые настройки.
sw_vers
Отображает текущую установленную версию и сборку Mac OS X.
ifconfig en0 ether 00:00:00:00:00:00
Изменяет (подделывает) MAC-адрес до следующей перезагрузки
dns-sd -B _ssh
dns-sd -B _rfb
dns-sd -B _services._dns-sd._udp
Список серверов рекламы в Bonjour. Последнее предложение перечисляет типы услуг, которые вы можете перечислить. Распечатка активна, нажмите Ctrl-C, когда увидите достаточно.
Эта же команда используется в последних версиях Linux и Bonjour SDK для Windows.
opendiff file1 file2
Запускает FileMerge (графический diff
который поставляется с Apple Developer Tools) на file1
а также file2
,
df -h
Чтобы проверить, сколько дискового пространства у меня сейчас на всем диске.
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.
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
даст вам серийный номер машины.
scutil --dns
Будет отображаться порядок разрешения DNS. Полезно для создания или отладки сетевых настроек.