본문 바로가기

macos

터미널 : 유용한 터미널 명령어 모음 (Part 1)

터미널은 OS X를 떠 받치는(?) 강력한 도구로 GUI 환경에서는 접근할 수 없는 시스템 또는 응용 프로그램의 주요 설정까지도 임의로 변경할 수 있도록 도와줍니다. 강력한 권한이 따르는 만큼 그 책임도 크기 때문에 터미널을 사용하기전에 반드시 (Time Machine을 통해) 시스템을 백업해 둘 것을 권장합니다.


터미널 응용 프로그램 열기

응용 프로그램 → 유틸리티 폴더에서 '터미널' 응용 프로그램을 실행합니다. 다음 그림과 같이 터미널 윈도우가 나타나며 (적색 밑줄로 마킹한) command line에는 '컴퓨터 이름:', '사용자 ID'과 $' 기호와 함께 사용자의 명령을 기다리는 '프롬프트'가 나타납니다.

터미널 윈도우의 외형, 서체, 텍스트, 커서 스타일 및 윈도우 크기를 변경하려면 터미널 메뉴  환경설정...을 실행하고 '설정' 패널의 '텍스트' 또는 '윈도우' 탭 섹션에서 세부적으로 조절합니다.



알림 : 지금부터 각 섹션마다 나오는 터미널 명령어 맨 앞의 '$' 기호는 command line 임을 알려주는 표시입니다. 해당 터미널 명령어를 입력할 때는 '$' 기호는 무시하시기 바랍니다.



pwd, ls, cd : 경로 확인/파일 보기/폴더 이동

원하는 폴더로 이동하기전에 내가 현재 위치하고 있는 경로가 어디인지 확인하려면 command line에 다음 명령어를 입력하고 return 키를 누릅니다. 다음 줄에 경로가 표시됩니다.

$ pwd

그리고 현재 위치한 경로에 어떤 항목이 있는지 확인하려면 command line에 다음 명령어를 입력하고 return 키를 누릅니다. 하이픈 (-) 다음의 'a'는 숨겨진 파일까지, 'l'은 리스트 유형으로 표시해 주는 옵션입니다. 숨겨진 파일은 이름 앞에 period 기호인 '.'가 포함되어 있습니다.

$ ls -al

임의의 폴더로 이동하려면 command line에 다음 명령어를 입력하고 return 키를 누릅니다. 만약 다음의 경우와 같이 폴더 이름 중간에 공백(space)를 포함되어 있다면, 그 공백 부분은 '\ ' (역슬러시 + 공백)으로 대치해서 입력 줍니다. 터미널은 space도 명령어의 일부로 인식하므로 '\'을 추가해 공백을 무시하도록 알려주어야 하기 때문입니다.  

$ cd OmniFocus\ Backups

'\ ' 대신에 폴더 이름 전체를 큰 따옴표(")로 감싸주어도 동일한 효과를 볼 수 있습니다. 상황에 따라 적절히 사용하면 됩니다.

$ cd "OmniFocus Backups"

어느 경로에 있든 '홈 폴더'로 한 번에 이동하려면 command line에 다음 명령어를 입력하고 return 키를 누릅니다.

$ cd

유틸리티 폴더로 이동하려면, command line에 다음 명령어를 입력하고 return 키를 누릅니다. 이 때 주-명령어 cd 다음에 나오는 '/' (슬러스)는 최상위 경로인 루트(root)를 나타냅니다.

$ cd /Applications/Utilities


tab 키 : 자동 완성 기능

'tab' 키를 사용하면 긴 폴더 (또는 파일) 이름을 보다 빠르고 정확하게 입력할 수 있습니다. 위 예시에서 폴더 이동 명령어인 'cd' 다음에 이동 경로인 '/Applications/Utilities' 를 문자 하나 하나씩 입력하는 것은 대단히 번거로운 일이며 오타의 가능성이 높습니다. 이런 경우 '/A' 까지만 입력하고 'tab' 키를 누르면 나머지 'pplications/' 이 자동 완성됩니다. 이어서 'U'를 입력하고 다시 'tab' 키를 누르면 나머지 'tilities/ 도 자동으로 완성시켜 줍니다. 이 때 폴더 이름의 맨 앞 문자 (예: A, U)는 '대문자'로 입력하는 점에 주의합니다.


Drag and Drop : Target 폴더 또는 파일을 지정

키보드 입력을 통해 직접 경로를 입력하는 대신에 다음 그림과 같이 Finder 윈도우에서 이동할 경로의 폴더를 터미널 윈도우 위로 드래그해도 됩니다. 폴더 이동 명령어인 'cd' 다음에 (space 키를 눌러 한 칸 띄우고) 적색 화살표로 마킹된 '유틸리티' 폴더를 터미널 윈도우 위로 드래그하면 command line에 '/Applications/Utilities/' 가 자동으로 입력됩니다. return 키를 누르면 해당 경로로 이동합니다.


!! : 직전 또는 이전에 사용한 명령어 다시 실행하기

터미널에서 바로 직전에 사용한 명령어를 다시 입력하지 않고 바로 호출하려면, 다음 명령어를 입력하고 return 키를 누릅니다. 

$ !!

위 명령어는 바로 직전에 사용한 명령어만 치환합니다. 만약, 이전에 사용한 다른 명령어를 찾아 실행하려면 '위' 또는 '아래' 방향키를 눌러 찾습니다. 원하는 명령어가 나타나면 return 키를 누릅니다.


history : 이전에 사용한 모든 명령어 리스트 보기

사용자가 이전에 사용했던 모든 명령어를 리스트 유형으로 보려면 다음 명령어를 입력하고 return 키를 누릅니다. 넘버링과 함께 지금까지 사용한 모든 명령어가 리스트 유형으로 표시됩니다. 복사&붙이기 신공으로 원하는 명령어를 다시 수행할 수 도 있습니다. 히스토리 기록을 모두 초기화하려면 해당 명령어 다음에 '-c'를 추가로 입력한 다음 return 키를 누릅니다.

$ history


clear : 화면 지우기

터미널 윈도우에 복잡하게 스크롤된 내용을 모두 지우려면 command line에 다음 명령어를 입력하고 return 키를 누릅니다.

$ clear


whoami : 현재 사용자 ID 확인하기

현재 사용자의 ID를 확인하려면  command line에 다음 명령어를 입력하고 return 키를 누릅니다. 다음 줄에 사용자 ID가 (영문으로) 출력됩니다.

$ whoami


sudo fs_usage : 파일 시스템 처리 과정 모니터링하기

맥에서 디스크에 접근하여 어떤 파일을 읽고(Read) 쓰는지(Write) 모니터링하려면 다음 명령어를 입력하고 return 키를 누릅니다. 이어서 사용자 계정 '암호'를 입력한 다음 다시 한 번 return 키를 누릅니다. 다음 그림과 같이 파일 접근에 대한 모든 이벤트가 터미널 화면에 실시간으로 출력됩니다. (sudo는 super user 권한이 필요할 때 사용하며 관리자 암호를 요구합니다. 일단 한 번 입력하면 해당 터미널을 로그아웃할 때까지 권한을 유지합니다.)

$ sudo fs_usage

특히 이 명령어는 Time Machine 백업 (backupd process) 또는 Spotlight (mds process) 처리 과정을 모니터링할 때 유용합니다. 터미널 화면에 출력 내용이 연속적으로 스크롤되지 않으면 단축키 fn + 오른쪽 방향키를 누릅니다. 중지하려면 단축키 control + C를 누릅니다.


Ditto : 대용량 폴더 복사하기

폴더를 복사하려면 command line에 다음 명령어를 입력하고 return 키를 누릅니다. 현재 경로에 있는 'Money' 폴더를 (통으로) 데스크탑으로 복사하는 예시입니다. 명령어 중 '..'는 한 단계 상위 경로를 표시하는 기호이며 하이픈(-) 다음에 나오는 'V'는 복사되는 항목들을 실시간으로 화면에 출력해 주는 Verbose (수다쟁이) 옵션입니다.

$ ditto -V Money ../Desktop/Money

Ditto 명령이 수행되는... 즉 복사하는 도중에 해당 작업을 취소하려면 단축키 control + C를 누릅니다. 이 단축키는 터미널에서 대부분의 명령을 중지할 때 사용합니다.


uptime : 맥 가동 시간 보기

맥의 켜고 사용한 시간을 확인합니다. command line에 다음 명령어를 입력하고 return 키를 누릅니다. 다음 줄에 '현재 시각'과 '가동 시간'이 표시됩니다. 다음 그림에서 보면 현재 시각은 '18시 50분'이고 (맥을 시동한 시점부터) '3시 30분' 동안하고 사용하고 있는 상황입니다. 

$ uptime


yes : CPU에 과도한 작업 가하기 

애플 테크니션들이 특정 이슈를 재현할 목적으로 맥의 충돌 (Crashing) 가능성을 고의로 유발하기 위하여 자주 사용하는 명령어 중에 하나입니다. command line에 다음 명령어를 입력하고 return 키를 누릅니다. '터미널' 프로세스의 CPU 사용량이 100% 수준으로 폭주하며 팬이 고속으로 회전하게 됩니다. 육안으로 확인하려면 '활성 상태 보기' 응용 프로그램을 실행하고 'CPU' 탭에서 '터미널' 프로세스의 점유률을 확인합니다. 

$ yes

터미널 프로세스의 CPU 사용 폭주를 중지하려면, (터미널 화면에서) 단축키 control + C 를 누릅니다. 잠시 후 정상 상태로 돌아갑니다. 


mkfile : 원하는 크기의 바이너리 파일 생성하기

테스트를 목적으로 특정 크기의 바이너리 파일을 생성하려면, command line에 다음 명령어를 입력하고 return 키를 누릅니다. 명령어 다음에 '1g'는 1GB의 파일 크기를 표시하며 'test.tmp'은 파일 이름입니다. 크기 단위인 'g' 대신에 'm', 'k', 'b'를 사용해도 됩니다.

$ mkfile 1g test.tmp

명령어 mkfile로 생성된 파일은 mp3 파일과 같이 (cat 명령어로 열어 보면) 알아 볼 수 없는 유형의 바이너리 파일입니다. mkfile 대신에 touch 명령어를 사용하면 텍스트 파일(0KB)이 생성됩니다.


sudo softwareupdate : 소프트웨어 업데이트

터미널에서 소프트웨어 업데이트 항목을 보려면 command line에 다음 명령어를 입력하고 return 키를 누릅니다. 이어서 암호를 입력하고 다시 한 번 return 키를 누릅니다. 잠시 후 업데이트 항목이 발견되면 화면에 표시해 줍니다.

$ sudo softwareupdate -l

모든 업데이트 항목을 설치하려면 command line에 다음 명령어를 입력하고 return 키를 누릅니다. 잠시 후 업데이트가 시작됩니다.

$ sudo softwareupdate -ia


say : 말하기 (입력한 문장 또는 텍스트 파일 읽기)

OS X 플랫폼은 말하기 기능을 내장하고 있습니다. 터미널에서 말하기 기능을 사용하려면 command line에 다음 명령어와 "문장"를 입력하고 return 키를 누릅니다.

$ say "This Mac is yours"

입력하는 문장이 아닌 텍스트 파일을 소리내어 읽도록 하려면, command line에 다음 명령어를 입력하고 return 키를 누릅니다. 읽을 텍스트 파일이 다른 경로에 있다면 먼저 'say -f'를 입력한 다음 (spce 키를 눌러 한 칸 띄우고) Finder에서 해당 파일을 터미널 윈도우 위로 드래그한 다음 return키를 누르면 휠씬 편리합니다.  

$ say -f steve_speech.txt


defaults : AirDrop 강제로 활성화시키기

AirDrop이 지원되지 않는 이전 모델 또는 유선 네트워크 (이더넷)를 통해 AirDrop을 사용할 수 있도록 강제로 활성화하려면, command line에 다음 명령어를 입력하고 return 키를 누릅니다.

$ defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool TRUE

변경 사항을 적용하려면 Finder를 재시작해야 합니다. command line에 다음 명령어를 입력하고 return 키를 누릅니다. 다음 그림과 같이 Finder 윈도우에서 AirDrop이 활성화된 것을 확인할 수 있습니다.

$ killall Finder

초기 설정 상태로 되돌리려면 command line에 다음 두 명령어를 각각 입력하고 return 키를 누릅니다. 

$ defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool FALSE

$ killall Finder

AirDrop은 Bonjour 서비스에 기반하며 Wi-Fi 네트워크만을 사용하도록 초기 설정되어 있습니다. AirDrop을 지원하지 않는 모델 또는 (지원되는 모델이더라도) 이더넷도 함께 동작하도록 설정할 때 유용합니다.


caffeinate : 잠자기 모드로 진입하는 것을 막기

command line에 다음 명령어를 입력하고 return 키를 누릅니다. 터미널 화면에서 단축키 control + C 를 눌러 중지할 때까지 깨어있는 상태를 계속해서 유지합니다.

$ caffeinate

만약, 10분 (600초) 후에 caffeinate 프로세스를 시작하도록 하려면 command line에 다음 명령어를 입력하고 return 키를 누릅니다.

$ caffeinate -u -t 600


logout : 터미널 쉘 로그아웃하기

터미널 쉘 사용을 종료하려면, command line에 다음 명령어를 입력하고 return 키를 누릅니다. 터미널 윈도우가 닫힙니다.

$ logout