# 유용한 내장 macOS 명령줄 유틸리티

> Clean Markdown view of GeekNews topic #17624. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17624](https://news.hada.io/topic?id=17624)
- GeekNews Markdown: [https://news.hada.io/topic/17624.md](https://news.hada.io/topic/17624.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-11-07T09:49:14+09:00
- Updated: 2024-11-07T09:49:14+09:00
- Original source: [weiyen.net](https://weiyen.net/articles/useful-macos-cmd-line-utilities)
- Points: 42
- Comments: 14

## Summary

`security` 명령어를 사용하면 키체인에 저장된 비밀번호에 프로그래밍적으로 접근할 수 있으며, `open` 명령어로 터미널에서 파일을 열 수 있습니다. `pbcopy`와 `pbpaste`는 텍스트를 클립보드에 복사하고 붙여넣을 수 있는 유틸리티로, 파일에서 데이터를 가져와 다른 애플리케이션에 넣을 때 유용합니다. 또한, `caffeinate` 명령어를 사용하면 맥이 잠들지 않도록 할 수 있으며, `uuidgen`을 통해 UUID를 생성할 수 있습니다.

## Topic Body

### Keychain에 프로그램적으로 접근하기  
  - `security` 명령어를 사용하여 키체인에 저장된 비밀번호를 프로그래밍적으로 접근할 수 있음  
    `security find-internet-password -s "https://example.com"`  
  - 자동화된 스크립트 작성 시 유용함  
  - 보너스: `1Password CLI`를 사용하면 1Password 항목에도 접근 가능  
  
### 터미널에서 열기  
- `open` 명령어를 사용하면 터미널에서 파일을 열 수 있음  
- `open file.txt`를 실행하면 Finder에서 파일을 더블클릭한 것처럼 해당 파일 유형의 기본 애플리케이션에서 파일이 열림  
  
### 복사/붙여넣기  
- `pbcopy`와 `pbpaste`는 텍스트를 pasteboard(다른 OS에서는 "clipboard"라고 부르는 것)에 복사하고 붙여넣을 수 있는 명령줄 유틸리티임  
- `pbcopy`는 표준 입력으로 주어진 것을 pasteboard에 넣음  
  - `echo "Hello, world!" | pbcopy;`  
- `pbpaste`는 pasteboard에 있는 것을 가져와서 표준 출력으로 출력함  
  ```  
  pbpaste   
  >> Hello, world!  
  ```  
- 파일에서 데이터를 가져와 브라우저나 다른 GUI 애플리케이션에 넣을 때 매우 유용함  
  
### UTC 날짜  
- 서버를 많이 다룰 때는 UTC 기준 현재 시간을 아는 것이 유용할 수 있음(예: 서버 로그 확인 시)  
- 터미널에서 한 줄로 가능함  
  - `date -u`   
- 또는 `TZ=UTC date` 사용 가능  
  
### 맥 잠자기 방지  
- 맥이 잠들지 않게 하려면 터미널에서 `caffeinate`를 실행하면 됨  
  - `caffeinate`  
- `caffeinate`는 사용자가 중지할 때까지(예: Ctrl+C 누를 때까지) 맥을 깨어있게 함  
- `caffeinate`는 예전에는 서드파티 도구였지만 이제는 macOS에 내장되어 있음  
- 주로 서버를 실행할 때 맥이 잠들지 않도록 하는 데 사용함  
  
### UUID 생성  
- UUID가 필요하다면 `uuidgen` 명령어를 사용할 수 있음  
  - `uuidgen`  
- 기본적으로 `uuidgen`은 대문자로 UUID를 출력함  
- `tr`과 `pbcopy`를 결합하여 UUID를 소문자로 클립보드에 복사할 수 있음  
  - `uuidgen | tr '[:upper:]' '[:lower:]' | pbcopy`  
- ID가 필요한 단위 테스트를 작성할 때 많이 사용함  
  
### 언급할 만한 것들  
- `mdfind`: 터미널에서 Spotlight 검색. 일반적으로 Spotlight 자체(또는 훌륭한 [Raycast](https://www.raycast.com/)) 사용  
- `say`: 이 명령은 맥이 주어진 텍스트를 말하게 함   
- `screencapture`: 이 명령을 사용하면 스크린샷을 찍어 파일로 저장할 수 있음. `cmd-shift-5` 사용 선호  
- `networksetup`: 이 명령을 사용하면 네트워크 설정을 프로그래밍 방식으로 구성할 수 있음. API가 매우 위협적이어서 많이 사용하지는 않음

## Comments



### Comment 31191

- Author: progdesigner
- Created: 2024-11-13T08:52:05+09:00
- Points: 1

터미널에서 특정 폴더를 파인더로 열때  
  
open -a "Finder" [경로]  
  
로 열수 있어요.

### Comment 31124

- Author: bobross0
- Created: 2024-11-11T10:56:45+09:00
- Points: 1

caffeinate 명령어는 자주 쓰고 있습니다ㅋㅋ

### Comment 31108

- Author: zzandore
- Created: 2024-11-11T09:30:20+09:00
- Points: 1

집에서 안쓰는 맥북 서버로 쓰면서 안꺼지게하려고 외부 앱 썼었는데 caffeinate 쓰면 되겠네요 ㅎ

### Comment 31043

- Author: abcde987
- Created: 2024-11-08T16:00:04+09:00
- Points: 1

몇 개는 처음 보는데 유용할 것들이네요

### Comment 30991

- Author: unreal
- Created: 2024-11-07T16:48:40+09:00
- Points: 2

커맨드는 아니지만, utc 확인용으로 아예 상단 바에 넣어서 쓰고 있습니다.   
https://sindresorhus.com/utc-time

### Comment 30981

- Author: laeyoung
- Created: 2024-11-07T15:03:23+09:00
- Points: 2

open 은 뒤에 -a 옵션으로 특정 프로그램 지정하는 것까지 같이 쓰면 더 편하더라고요.  
  
예를 들면, open . -a Visual\ Studio\ Code

### Comment 30987

- Author: lazydonkey456
- Created: 2024-11-07T16:23:52+09:00
- Points: 1
- Parent comment: 30981
- Depth: 1

vsc는 code . 하셔도 될텐데?!?

### Comment 30988

- Author: whizkyu
- Created: 2024-11-07T16:30:03+09:00
- Points: 1
- Parent comment: 30987
- Depth: 2

dmg 로 설치한 경우는 code 명령어가 없지 않나요?  
그리고 intellij 등으로 열고 싶을 때도 유용합니다 :)

### Comment 31090

- Author: sjssjs1344
- Created: 2024-11-09T20:22:13+09:00
- Points: 1
- Parent comment: 30988
- Depth: 3

VS code 내에서 설정할 수 있습니다.  
command+shift+p 누르시고 shell command라고 치시면 됩니다.

### Comment 30992

- Author: nicewook
- Created: 2024-11-07T17:08:21+09:00
- Points: 1
- Parent comment: 30988
- Depth: 3

저는 인텔리제이는 i 로 alias 하는 등으로 해두어서 i . 또는 i file.txt 해주면 바로 인텔리제이에서 열리도록 해두었습니다. :-)

### Comment 30973

- Author: lazydonkey456
- Created: 2024-11-07T13:08:44+09:00
- Points: 1

맥 커맨드 유틸 유용한게 되게많죠 저도 pbcopy, pbpaste는 자주 사용하는 것 같습니다

### Comment 30967

- Author: ilikeall
- Created: 2024-11-07T11:29:30+09:00
- Points: 2

pbcopy 유용하게 사용하고 있습니다.

### Comment 30965

- Author: zihado
- Created: 2024-11-07T11:22:03+09:00
- Points: 3

networkQuality 도 있어요

### Comment 30940

- Author: neo
- Created: 2024-11-07T09:49:14+09:00
- Points: 3

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42057431) 
- `afconvert`는 Core Audio 프레임워크의 AAC 코덱을 포함한 오디오 파일 형식 변환기임
  - 예시: `afconvert in.wav -o out.m4a -q 127 -s 2 -b 160000 -f m4af -d 'aac '`

- `diskutil`은 고정 및 이동식 저장소를 위한 다양한 도구를 제공함
  - 예시: `mb=300; diskutil eraseVolume APFS myramdisk \`hdiutil attach -nomount ram://$((mb*2048))\``

- `hear` 앱은 macOS의 음성 인식 및 받아쓰기를 명령줄에서 사용할 수 있게 함
  - 링크: [https://sveinbjorn.org/hear](https://sveinbjorn.org/hear)

- `open -n file.pdf`는 Preview 앱의 새 인스턴스를 열어 동일한 파일을 두 번 열 수 있게 함

- `caffeinate -d`는 디스플레이가 꺼지지 않도록 하여 마우스를 움직이지 않고도 화면을 볼 수 있게 함

- 터미널 버전의 Disk Utility는 GUI보다 더 나은 성능을 제공함 (앱이 멈추거나 오류가 발생하지 않음)
  - 문서 링크: [https://ss64.com/mac/diskutil.html](https://ss64.com/mac/diskutil.html)

- macOS용으로 쉽게 설치할 수 있는 명령줄 유틸리티 목록이 있음
  - 링크: [https://terminaltrove.com/categories/macos/](https://terminaltrove.com/categories/macos/)

- [https://ss64.com/](https://ss64.com/)은 유용한 리소스로, 더 일찍 알았으면 좋았을 것 같음

- `nc`는 임의의 TCP 및 UDP 연결 및 수신을 위한 도구임

- `networkQuality`는 속도 테스트 및 네트워크 스트레스 도구임

- `system_profiler`는 셸 스크립트에서 광범위한 시스템 정보를 가져오는 유용한 방법임

- `wdutil`은 Wireless Diagnostics 애플리케이션의 기능을 명령줄 형태로 제공함

- 가장 쓸모없는 macOS 명령줄 유틸리티는 `pdisk`임
  - Apple 디스크 파티셔닝 스킴을 사용하여 디스크를 파티셔닝하는 메뉴 기반 프로그램임

- Quick Look으로 파일을 미리보기 위한 원라이너가 있음 (`ql`로 별칭 설정)
  - 예시: `qlmanage -p $argv >/dev/null 2>&1`

- 사이트가 다운된 것 같음
  - 아카이브 링크: [https://archive.is/kGmn6](https://archive.is/kGmn6)
