defaults
명령줄을 사용하여 OSX에서 일부 응용 프로그램의 기능을 변경할 수 있는 방법을 가끔 봅니다 . 나는 사람들이 애플리케이션을 스캔하여 이러한 구성 지시문을 찾는다는 것을 알고 있습니다. 어떻게 이루어지나요?
수정: 맹세할 수도 있었습니다 option
. 내 잘못이야.
답변1
를 사용 defaults
하면 이러한 값을 변경할 수 있을 뿐만 아니라 나열할 수도 있습니다.
defaults read -g
"전역" 옵션을 표시하고 defaults read com.company.ProgramName
,기본값(즉, 구성 옵션) 특정 프로그램에 대한 것입니다. 이러한 com.company.ProgramName
맥락 에서,번들 식별자프로그램의 예: com.apple.TextEdit
또는 com.culturedcode.Things
.이에 대한 추가 정보.
예를 들어, 실행하면 defaults read com.apple.Finder
다음과 같은 줄을 찾을 수 있습니다 AppleShowAllFiles = FALSE
. 이제 모험심을 갖고 defaults write com.apple.Finder AppleShowAllFiles -boolean TRUE
Finder를 실행하고 다시 시작하여 무슨 일이 일어나는지 확인하십시오.
사용 방법에 대한 자세한 내용을 보려면 defaults
를 입력하여 man defaults
설명서를 확인하세요. 상당히 복잡해질 수 있으며 목록 및 사전과 관련된 일부 작업은 수행하기가 거의 불가능합니다. 여기까지 이동했다면 검색해 보세요 /usr/libexec/PlistBuddy
. 이 사이트에 사용 방법에 대한 몇 가지 예가 있으므로 검색 기능을 사용하세요.
귀하의 애플리케이션이 어떤 용도로 사용되는지 확인하려면com.vendor.yourapp, 애플리케이션 번들을 마우스 오른쪽 버튼으로 클릭하고패키지 내용 표시, 로 이동내용물, 열려 있는Info.plist텍스트 편집기를 사용하거나 다음과 같은 속성 목록 편집기를 사용하는 것이 더 좋습니다.속성 목록 편집기또는엑스코드 4(두 가지 모두 Apple 개발자 도구의 일부임) 다음을 찾아보세요.CFBundleIdentifier또는 그런 것.
사용할 수 있는 또 다른 도구는 입니다 strings
. 바이너리 파일의 모든 문자열(즉, 유용한 문자 시퀀스)을 표시합니다. 이 결과는 다음과 같습니다.톤UI에 표시되는 일반 출력뿐만 아니라 Objective-C 함수 호출도 표시되므로 오탐지율이 높습니다.
비밀또한 응용프로그램별로 정렬된 OS X용 숨겨진 설정 데이터베이스도 제공합니다. 이는 를 사용하여 변경할 수 있습니다 defaults
. 귀하의 편의를 위해 웹사이트에서 기본 설정 창을 다운로드하여 시스템 기본 설정에서 이를 변경할 수도 있습니다.
답변2
#!/bin/sh
# find key names in ~/Library/Preferences/`osascript -e 'id of app "iTunes"'`.plist
defaults read com.apple.iTunes | ruby -e 'puts STDIN.read.scan(/^ \"?([a-zA-Z_.\-]+?)\"? /)' > keys.txt
# extract identifiers from a binary
# (the output is tens of thousands of lines even after grepping)
strings - /Applications/iTunes.app/Contents/MacOS/iTunes | egrep "^[a-zA-Z][a-zA-Z_.\-]{7,}$" | ruby -e 'puts STDIN.read.split("\n").uniq' > strings.txt
# the identifiers for preferences often appear near each other
for x in `cat /0/keys.txt`; do
grep -C 10 "$x" strings.txt
done | ruby -e 'puts STDIN.read.split("\n").uniq' > strings2.txt
GNU 디버거를 사용하는 또 다른 방법:arcticmac.home.comcast.net/~arcticmac/tutorials/gdbFindingPrefs.html