개발입문/개발환경 세팅

맥 터미널 명령어 입문1: 파일, 디렉토리 명령어

haloaround 2016. 12. 11. 16:08

어렸을 때 도스에서 cd 명령어로 열심히 게임 페르시아의 왕자 를 찾았던 게 기억난다. 검은 화면에 흰 글자 하나하나 쳐가며 비트로 된 흥미진진한 게임을 찾아내면 얼마나 뿌듯했던지. 역시 필요가 공부의 어머니다. CUI Command Line Interface 라는 개념을 몰라도 게임을 잘만 찾아냈었다. 




CUI 는 바로 검은 화면에 흰글자를 쳐서 프로그램을 실행시키는 인터페이스 방식이다: CUI Command Line Interface

프롬프트 창 prompt 는 명령어에 대한 결과를 신속하고 정확하게 내어준다


Web Prmopt   Terminal Prompt

     


이 글에서는 terminal Prompt 에게 전달하는 명령어 중 가장 기본적인 것들에 대해서 정리해보았다.

명령어는 다음과 같이 옵션명, 경로명을 통해 더 구체적으로 명령할 수 있다. 


$ 명령어 + [옵션명] + [경로명]


- 명령어: 프롬프트에 전달하는 명령어, 명령어에 따라 옵션명의 작동방식이 달라진다.

- 옵션명: 명령어를 실행할 때 추가적으로 요구하는 옵션이다.

- 경로명: 절대경로, 상대경로로 표시할 수 있다. 없을 경우는 default 현재 경로이다.



그렇다면 이제 파일, 디렉토리 관련 명령어를 살펴보자. 현재 경로를 확인하고 경로를 이동하거나 파일/디렉토리를 조회, 생성, 삭제하는 명령어가 있다.


$pwd

Print Working Directory

현재 자신이 어느 디렉토리에 위치하는 지 출력한다.


// 현재 디렉토리 표시

$pwd


$cd + [경로명]

Change Directory

디렉토리(경로)를 변경한다. 경로를 표현하는 방식은 절대경로와 상대경로가 있다.

많이 이동하는 디렉토리에 대해서 정리한다.


/최상위 (루트) 디렉토리로 이동

$cd /


/사용자의 홈 디렉토리로 이동

$cd ~


/사용자의 Desktop(바탕화면) 디렉토리로 이동

$cd ~/Desktop



$ls + [옵션명] + [경로명]

List Segement

경로의 구성요소(파일, 디렉토리)를 나열한다.

파일, 디렉토리에 대한 자세한 정보 (사용권한, 소유자, 그룹, 크기, 날짜 등) 을 읽는 방법은 다음 포스트에서 확인할 수 있다.


/현재 경로 하위 파일/디렉토리 나열

$ls


/현재 경로 하위 파일/디렉토리 자세한 정보(사용권한, 소유자, 그룹, 크기, 날짜 등) 와 함께 나열 

$ls -l 


/명시한 경로의 하위 파일/디렉토리 나열

$ls -l /test/exampleDir



$cp [원본파일] [대상파일] / $mv [원본파일] [대상파일]

CoPy / Move

원본파일을 대상파일로 복사한다 / 이동한다

파일을 가리킬 때에는 파일경로+이름으로 명시한다. (바이너리는 알 수 없으므로)

cp, mv는 기본적으로 파일을 다루는 명령어이며, 디렉토리를 처리할 때는 -r 옵션을 붙여준다. 


// /test 디렉토리의 ExampleFile 파일을 /newTest 디렉토리로 복사/이동

$cp /test/exampleFile /newTest/exampleFile

$mv /test/exmpleFile /newTest/exmapleFile


// /test 디렉토리의 ExampleDir 디렉토리 및 하위파일을 /newTest 디렉토리의 ExampleDir로 복사/이동

$cp -r /test/exampleFile /newTest/exampleDir

$mv -r ./test/exampleDir ./newTest/exampleDir


$touch / $mkdir

Touch / MaKe DIRectory

파일을 / 디렉토리를 생성한다.


// /test 디렉토리에 exmpleFile 이름의 빈 파일 생성

$touch /test/exampleFile


// /test 디렉토리에 exampleDir 이름의 빈 디렉토리 생성

$mkdir /test/exampleDir


$rm / rmdir

ReMove / ReMoveDIRectory

파일을 / 디렉토리를 삭제한다.


// /test 디렉토리의 exampleFile을 삭제

$rm /test/exampleFile


// /test 디렉토리의 exampleDir 디렉토리를 삭제

$rm -rf /test/exampleDir

$rmdir /test/exampleDir



기타 TIP 

<Tab> 키를 클릭하면 현재 경로에 포함된 파일, 디렉토리의 이름을 자동완성시킬 수 있다.

특수기호를 통해 여러 규칙등을 제시할 수 있다. * (asterisk), ?(question mark), \(back slash) 


// 현재 경로의 test로 시작하는 파일명을 가진 모든파일을 ./subdir 디렉토리로 복사

$cp test* ./subdir


// 현재 경로의 test + 한글자 파일명을 가지는 모든파일을 ./subdir 디렉토리로 복사 

$cp test? ./subdir


// 현재 경로의 test 2016 (공백 있음) 파일명을 가지는 파일을 ./subdir 디렉토리로 복사

$cp test\ 2016 ./subdir



위 명령어에 대한 더 많은 옵션을 확인하려면:  CHATTERBOX [Tip] 리눅스 터미널 명령어 모음

터미널 명령어에 대해 영어여도 좋으니 체계적인 설명이 필요하다면: A CommandLine Premier for Beginner