간단한 터미널 명령어로 macOS 시스템을 제어할 수 있는 커맨드라인 도구 'm-cli'

2016.12.13 19:11    작성자: ONE™

흔히 macOS를 두고 양의 탈을 쓴 운영체제 같다는 말을 하고는 합니다.

누구나 쉽게 익힐 수 있을 정도로 사용자 인터페이스(UI)가 깔끔하고 직관적이지만, macOS가 제공하는 모든 기능과 서비스를 끌어내려면 '커맨드 라인(command line)' 또는 터미널 명령어라고도 불리는 텍스트 기반 인터페이스에 관한 이해와 지식을 어느 정도 갖고 있어야 하기 때문입니다. 하지만 워낙 명령어가 다양하고 복잡하다 보니 맥에 꽤 숙련된 사람도 힘들어하는 작업 중 하나입니다.

예를 들어, Dock에 공백을 넣으려면 터미널에 다음과 같은 복잡한 명령어를 입력해야 합니다.

defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}' && killall Dock

인터넷 접속이 원활하지 않아 로컬 DNS 데이터를 초기화할 때는 아래 명령어가 사용됩니다.

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

분명 이러한 명령어를 암기하는 사람도 있겠지만, 대부분 노트 앱에 명령어를 스크랩해 두거나 필요할 때마다 인터넷 검색을 통해 정보를 찾곤 하실 겁니다.

m-cli를 이용해 시스템 제어하기

'm-cli'는 맥을 쓸 때 자주 사용하는 명령어들을 축약하여 기억하고 다루기 쉽게 해주는 커맨드 라인 프로그램입니다.

예를 들어, Dock에 공백을 넣고 싶을 때는 간단히 'm dock addblankspace'를 적어주면 됩니다. 로컬 DNS 데이터를 초기화할 때는 'm dns flush'만 입력하면 나머지 작업은 프로그램이 알아서 처리해줍니다. 비슷한 방법으로 블루투/와이파이를 껐다 켤 수도 있으며, 스피커 음량이나 바탕화면 설정 등을 제어할 수 있습니다. 시스템 잠자기 방지 기능이나 맥 앱스토어 업데이트 확인도 비교적 간단히 수행할 수 있습니다.

맥을 간단한 명령어로 제어할 수 있어서 자칭 '맥 운영체제를 위한 스위스 아미 나이프(Swiss Army Knife)'라고 그러는데요. 아직 개발 중이어서 그 정도 수준은 아니지만 맥을 쓰는 데 여러가지 유용한 기능이 준비돼 있습니다. 무엇보다 명령어 체계가 'm'과 간단한 키워드 조합으로 되어 있어서 기억하기 무척 수월합니다. 나중에는 메뉴나 도움말을 볼 필요조차 없어집니다.

0. 'm-cli'를 이용하려면 먼저 패키지 관리자인 '홈브류(Homebrew)'를 먼저 설치해야 합니다. ▼

맥에 홈브류를 설치하는 방법은 별도의 포스트에 자세히 정리한 적이 있으니 참고 바랍니다. OS X 10.11 엘 캐피탄 기준이지만 macOS 10.12 시에라에서도 동일한 방법으로 설치 가능합니다. 기본적으로 응용 프로그램 > 유틸리티 폴더에 있는 '터미널'을 실행한 뒤 다음 명령어를 입력하면 홈브류가 설치됩니다.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1. 이제 홈브류를 이용해 'm-cli'를 설치할 차례입니다. 터미널에 다음 명령어를 입력하고 엔터키를 누르면 설치를 간단히 할 수 있습니다. ▼

brew install m-cli

2. 포스트를 작성하는 시점을 기준으로 총 34종류의 명령어가 준비되어 있습니다. 터미널에 'm'을 입력하고 엔터를 누르면 자세한 내역을 볼 수 있습니다. ▼

m

3. 서두에 언급한 것처럼 모든 명령어는 m + 명령어 형식으로 되어 있습니다. 명령어에 따라 추가로 옵션을 적어야 할 때가 있는데요. 명령어 뒤에 'help'를 붙이면 도움말을 통해 어떤 옵션을 사용할 수 있는지 살펴볼 수 있습니다. ▼

m 명령어 help

4. 몸풀기 차원에서 와이파이를 껐다가 다시 켜보겠습니다.

m wifi off/on

5. 블루투스 상태를 확인하고 끄는 명령어도 비슷합니다.

m bluetooth status/disable/enable

5. 정말 간단하죠? 이제 Dock 막대의 앱 영역에 공백을 넣고, 폴더 영역에는 최근에 사용한 앱을 보여주는 폴더를 추가해 보겠습니다. ▼

m dock addblankspace/addrecentitems

6. 카페인처럼 일정 기간 맥이 잠자기 상태로 전환하는 것을 방지하는 명령어도 준비되어 있습니다. 아래 형식으로 적어주면 맥을 10분 동안 사용하지 않아도 잠들지 않습니다. ▼

m nosleep until 시간(초단위)

m-cli 명령어 일람

· help : 도움말
· battery : 배터리 상태 확인
· bluetooth : 블루투스 상태 확인 및 켬/끔
· dir : 디렉토리를 tree 구조로 표시, 텅 빈 폴더 또는 .DS_Store 파일 삭제, 폴더 크기 계산
· disk : 디스크 마운트, 추출, 포맷, 검사, 복구
· dns : DNS 캐시 재설정
· dock : Dock 위치 변경, 자동 가리기 및 확대 켬/끔, 공백 또는 최근 항목 추가
· finder : Finder에서 숨김 파일 또는 확장자 보기/가리기, 데스크탑 폴더 켬/끔
· firewall : 파이어월 상태 확인 및 켬/끔
· gatekeeper : 게이트키퍼 상태 확인 및 켬/끔, 규칙 목록보기
· hostname : 현재 호스트 이름 정보보기
· info : macOS 버전 확인
· lock : 컴퓨터 화면 잠그기
· ntp : NTP(네트워크 시간 서비스) 상태 확인 및 켬/끔, 서버 설정
· network : 네트워크 인터페이스 정보 보기, 네트워크 위치 설정
· nosleep : 일정 시간/스크립트가 실행되는 동안 잠자기 방지
· restart : 시스템 재시작
· safeboot : 안전 모드로 시동하기 켬/끔
· screensaver : 화면 보호기 실행
· service : (백그라운드에서 실행 중인) macOS 서비스 내역 확인, 서비스 중지/재시작, 로드/언로드
· shutdown : 시스템 종료
· sleep : 잠자기 상태로 전환
· timezone : 표준시간대 확인 및 변경
· trash : 휴지통 상태 확인, 휴지통 비우기
· user : macOS 사용자 계정 정보 확인, 신규 계정 생성
· volume : 시스템 음량 설정, 음소거
· vpn : VPN 설정 확인과 서버 연결
· wallpaper : 데스크탑 그림 설정
· wifi : 와이파이 상태, 주변 와이파이 스캔 및 연결, 현재 연결한 와이파이 암호 확인, 무선 네트워크 켬/끔

코멘트

이미 이러한 기능을 수행하는 명령어들이 존재하지만 'm-cli'는 명령어 구조가 간결하고 군더더기가 없으며 전체적인 통일성에 있어서 편리성과 접근성이 뛰어납니다. 물론 일반 사용자에게는 그래픽 인터페이스를 이용하는 게 더 직관적이겠지만, 터미널 콘솔을 항상 옆에 끼고 사는 개발자와 시스템 관리자라면 얼마나 유용한 기능인지 잘 알 수 있으리라 생각합니다. 또 명령어 실행 순간에만 시스템 자원을 잠깐 사용하기 때문에 맥에 한 번 깔아두면 두고두고 부담 없이 활용할 수 있을 겁니다. 

여기서 좀 더 나아가면 LAMP를 비롯해 SSH, Git, Magento 등 개발과 관련한 명령어가 풍부한 'mac-cli'도 있으니, 개발자라면 이번 기회에 살펴보는 것도 좋을 듯합니다. (mac-CLI에서 패키지 종속 기능을 제거하고 시스템 설정만 남겨놓은 것이 m-cli입니다.)



참조
GitHub - m-cli: Swiss Army Knife for macOS!

관련 글
OS X에 '홈브류(Homebrew)'를 설치하는 방법
macOS 터미널에서 날씨 관련 정보와 달력등을 확인할 수 있는 명령어
맥 앱스토어 응용 프로그램을 터미널에서 설치할 수 있는 커맨드라인 인터페이스 'mas-cli'
Xcode 없이 맥에 '명령어 라인 도구(Command Line Tools)'를 설치하는 방법

저작자 표시 비영리 변경 금지
신고
    
  1. Blog Icon
    아진겁졸

    mac-cli 까지 설치해 보았어요. Yes 로만 계속 설치 - 시간이 꽤 걸리네요. 크게 쓸모 있을지는 모르겠지만... 감사합니다.
    mac ip:public 은 쓸만 합니다.

  2. Blog Icon
    stripe

    알프레드와도 연계돼서 워크플로우로 나오면 엄청 편리하겠네요.
    지금도 터미널 ">"로 실행은 할 수 있겠지만..