[Mac] 맥 터미널 기본 사용법을 배워보자

2022. 1. 7. 17:00Developer Basis

맥북을 사용하는 개발자 중에서 터미널을 사용해보지 않은 개발자가 과연 있을까?

터미널(Terminal)은 맥(macOS)에서 지원하는 커맨드 라인 툴(command line tool)이다.
개발을 할 때, 기본적인 파일 접근부터 깃(Git) 관리까지 보통 이 터미널에서 명령을 입력하며 진행하는 경우가 많기 때문에 기본적인 터미널 명령어는 어떤 것들이 있는지 알아두어야 할 필요가 있다.

그래서 오늘 글에서는 아직 터미널 사용법이 익숙하지 않을 분들을 위해, 내가 자주 사용하는 기준으로 하나씩 명령어를 정리해 보도록 하겠다. 

(참고로 캡처 화면이 기본 터미널 화면과 다른 이유는, 내 맥북은 다음에 다룰 iTerms2라는 별도의 프로그램을 사용했기 때문이다 ^_^)

왼쪽이 터미널, 오른쪽은 내가 터미널처럼 사용하는 iTerm2 이다. (iTerm2 사용하는 글은 다음에 다뤄보도록 하겠다 ^_^)

이 글에서 다루고 있는 명령어 목록이다.
계속 새로운 내용을 공부하거나 사용할 때마다 주기적으로 들어와 업데이트시키는 중이다. (24.08.23 최신 버전)

cd (change directory) 디렉토리 간 (상위/하위로) 이동
ls (list) 현재 위치에 있는 디렉토리 목록 나열
pwd (print working directory) 현재 위치한 경로를 출력
clear 현재 터미널창에 있는 모든 내용 정리
touch 현재 터미널 상에 해당하는 위치에 파일 생성
rm (remove) 현재 터미널 상에 해당 위치에 있는 파일 삭제
mkdir (make directory) 현재 터미널 상에 해당하는 위치에 폴더(디렉토리) 생성
rmdir (remove directory) 현재 터미널 상에 해당 위치에 있는 폴더(디렉토리) 삭제
cp (copy) 디렉토리 또는 파일 복사
cat 파일 내용 출력
chmod 파일 또는 디렉토리(폴더)에 대한 권한 설정
sudo apt 시스템에 소프트웨어 패키지를 관리(설치, 업데이트, 제거 등)할 때 사용
vim 터미널에서 사용할 수 있는 텍스트 편집기 (= 에디터)

cd (change directory)

cd는 폴더를 이동하게 해주는 명령어다.

  • cd 폴더 이름을 붙이면, 하위 폴더로 이동한다. 예를 들어, desktop으로 이동하고 싶을 경우 cd desktop을 쓰면 된다.
  • cd.. 을 붙이면, 상위 폴더로 이동한다. 상위 폴더 = 한 칸 뒤 폴더와 같은 말로 생각하면 된다.
  • cd ~을 붙이면, 가장 최초의 위치로 이동한다. 

min(내 맥북) -> desktop -> Project -> NADA 프로젝트 폴더 순으로 이동하는 예시

 

ls (list)

ls는 현재 위치에 있는 파일 목록을 보여주는 명령어다.

보통 위에서 배운 cd(폴더 이동) 명령어와 함께 사용하는 경우가 많다. (ls로 무슨 폴더가 있는지 확인하고, cd로 이동하는 순서)

Project 폴더에는 어떤 파일들이 있는지 ls로 확인할 수 있다

 

pwd (print working directory)

pwd는 현재 경로를 보여주는 명령어다.

나는 iTerms2에서 별도의 설정을 해주어서 저렇게 경로가 표출되지만, 보통은 경로를 확인할 수 없기 때문에 이 명령어를 사용해서 현재 어떤 위치에 있는지 확인해줘야 한다.

 

clear

clear은 현재 터미널 창에 있는 내용을 정리해주는 명령어다.
터미널을 끄면, 지금까지 했던 폴더 이동과 작업이 모두 초기화되지만, clear 명령어는 현재 상태는 유지한 채로 터미널 창만 모두 지워주는 개념이다.

왼쪽 -> clear를 사용하기 전, 오른쪽 -> clear를 사용한 후

 

touch, rm (remove)

touch는 현재 터미널 상에 해당하는 위치에 파일을 만들어주는 명령어다.

실제 사용은 touch 명령어와 생성하고자 하는 파일명을 함께 붙여주면 된다.
예를 들어, minjae라는 이름의 txt 파일을 만들고 싶다면, touch minjae.txt라고 명령어를 작성하면 된다.

추가로, rm 명령어는 파일을 삭제시켜주는 명령어다.
touch와 유사하게 rm minjae.txt라는 명령어를 입력한다고 했을 때 minjae라는 이름의 txt 파일을 삭제시킬 수 있게 된다.

 

mkdir (make directory), rmdir (remove directory)

mkdir 현재 터미널 상에 해당하는 위치에 폴더(디렉토리)를 만들어주는 명령어다.

역시 실제 사용할 때는, mkdir 뒤에 생성하고자 하는 폴더의 이름을 작성해 주는 방식으로 작성하면 된다.

rmdir는 폴더를 삭제시키는 명령어다.

 

cp (copy)

cp는 폴더와 파일을 복사하는 명령어다.

실제로 사용을 할 때는, cp 복사할 파일/폴더 + 원하는 경로 + 저장할 이름 순으로 코드를 작성하면 된다.

 

cat

cat은 현재 파일의 내용을 터미널 창에 출력시켜 보여줄 수 있도록 만드는 명령어다.

cat <확인하고 싶은 파일 이름>과 같은 형태로 명령이를 입력해서 사용할 수 있으며,
-n 키워드를 함께 사용하는 경우에 파일 내용을 출력할 때 줄번호도 함께 추가해서 보여지게 만들 수도 있다.


chmod

chmod는 UNIX 계열 운영체제(= macOS가 여기에 해당!)에서 파일이나 디렉토리의 권한(permission)을 변경하는 데 사용되는 명령어다.

보통 이 명령어는 "chmod 400 <파일/디렉토리 이름>"과 같이 뒤에 세 자리 숫자와 함께 사용되는 것이 특징인데,
이 세 자리 숫자의 각 자릿수는 앞에서부터 순서대로 "소유자(Owner)-그룹(Group)-기타 사용자(Others)"에 대한 권한을 나타내고 있다.
-> 즉, 400이라고 하면 소유자에 대해서는 4의 권한을 / 그룹과 기타 사용자에 대해서는 0의 권한을 부여한다는 의미!

그럼 각 숫자가 의미하는 것도 알아봐야겠지?
권한을 다시 읽기(r), 쓰기(w), 실행(x)으로 나눠볼 수 있는데 - 숫자는 각 권한의 수식 합이라고 생각하면 된다.

  • 읽기 (r) = 4
  • 쓰기 (w) = 2
  • 실행 (x) = 1

즉, 각 숫자는 0부터 7 사이의 값을 세 요소의 조합으로 만들 수 있게 되는 것이다.
4였다면, 소유자에 대해 읽기의 권한만 부여한다는 의미이고 / 7이면 읽기, 쓰기, 실행의 모든 권한을 허용한다는 것 / 0이면 권한을 주지 않겠다는 의미라고 보면 되겠다.

 

sudo (super user do) / apt (advanced package tool)

sudo는 보안상의 이유로 일반 사용자가 접근할 수 없었던 파일을 수정하거나, 시스템 설정을 변경할 수 있도록 만드는 명령어다.
apt는 소프트웨어 패키지를 관리(설치, 업데이트, 제거)할 때 사용하는 명령어다.

즉, 이 두 명령어를 함께 사용(sudo apt)하는 경우 - 시스템에 새로운 소프트웨어 패키지를 설치하거나, 업데이트하거나, 제거할 수 있게 된다는 의미!

  • sudo apt update : 사용가능한 소프트웨어 패키지의 목록을 최신 상태로 업데이트 (소프트웨어의 버전을 업데이트 한다는 의미 x)
  • sudo apt upgrade : 시스템에 설치된 모든 패키지를 최신 버전으로 업그레이드
  • sudo apt install java openjdk-17-jdk : OpenJDK 17 버전의 JDK(Java Development Kit)을 설치한다는 의미
  • sudo apt remove java openjdk-17-jdk : OpenJDK 17 버전의 JDK(Java Development Kit)을 제거한다는 의미 (패키지가 기타 설정 파일을 남길 수 있는데, 이때는 remove 대신 purge 명령어를 사용하면 완벽하게 제거시킬 수 있다.)

vim

vim은 UNIX 계열 운영체제(= macOS가 여기에 해당!) 터미널에서 자주 사용되는 텍스트 편집기(= 에디터)를 의미한다.

vim <파일 이름.확장자>를 터미널에 입력하게 되면, 해당 파일에 대해 터미널로 텍스트를 편집할 수 있게 된다.
*vim README.md를 치면 README 마크다운 파일에 대한 텍스트 편집을 터미널에서 수행할 수 있게 되는 것!

왼쪽의 vim 명령어를 입력해서 - 오른쪽의 텍스트 편집 화면으로 이동한 모습을 확인할 수 있다.

vim 편집기에는 세 가지의 주요 모드가 있다.
각 모드 간을 상호 전환하는 것도 역시 i, Esc, : 명령어들을 통해 가능하다. 아래를 살펴보자.

  • 일반 모드 (Normal Mode) : Vim을 시작하면 기본적으로 일반 모드에 있게 된다. 텍스트 입력 없이 단순한 커서 이동, 텍스트 복사, 붙여넣기, 삭제 등의 작업만 수행할 수 있습니다. -> 삽입 모드에서 Esc를 누르면 일반 모드로 전환된다.
  • 삽입 모드 (Insert Mode) : 텍스트를 입력(편집) 하기 위한 모드이다. -> 일반 모드에서 i를 누르면 삽입 모드로 전환된다.
  • 명령 모드 (Command Mode) : 파일 저장, 종료, 검색 및 치환과 같은 명령을 실행할 수 있는 모드이다. 일반모드에서 :를 입력하면 명령모드로 진입한다.

파일을 편집하거나 명령을 내릴 때도 많은 명령어들이 있지만, 자주 사용하는 몇 가지만 여기에서 정리해 보도록 하겠다.

:w 명령모드 진입 이후, 현재 파일을 저장하겠다는 의미
:q 명령모드 진입 이후, vim 편집 화면에서 나가겠다는 의미 (다시 기존 터미널로 돌아간다)
:wq 명령모드 진입 이후, 현재 파일을 저장하고 vim 편집 화면에서 나가겠다는 의미 (w와 q 명령어를 동시 실행)
:q! 변경사항을 저장하지 않은 상태로 강제로 vim에서 나가겠다는 의미
dd 현재 줄을 삭제하겠다는 의미
yy 현재 줄을 복사하겠다는 의미
p 복사한 내용을 붙여넣겠다는 의미
/검색어 <검색어>에 해당하는 텍스트를 현재 편집 화면에서 검색하겠다는 의미