호댕의 iOS 개발

[Terminal 명령어] 자주 사용하는 Terminal 명령어에 대해 알아보자 본문

Software Engineering

[Terminal 명령어] 자주 사용하는 Terminal 명령어에 대해 알아보자

호르댕댕댕 2022. 8. 28. 15:02

cp holdy-iOS new-holdy-iOS

iterm2나 터미널을 사용해 Git이나 파일들을 관리하다 보면 다양한 명령어를 사용하게 된다. 

Mac OS나 리눅스 모두 UNIX 기반이기 때문에 리눅스 명령어를 MacOS에서도 사용이 가능하다. 

 

그럼 어떤 명령어들이 있는지 알아보자. 

일단 모든 명령어 뒤에 --help를 붙이게 되면 해당 명령어에 대한 자세한 사용방법을 알 수 있다. 

 

많이 사용하던 명령어부터 정리해보자. 


cd (Change Directory)

경로 이동을 하는 명령어이다. cd {디렉토리 주소}를 입력해주면 해당 디렉토리로 이동하게 된다. 

 

pwd (Print Working Directory)

현재 작업 중인 디렉토리를 출력해준다. 

ls (List) 

현재 디렉토리에서 확인할 수 있는 목록을 표시해준다.

참고로 원하는 파일을 더블클릭하게 되면 자동으로 복사가 된다.

 

ls -a

숨겨져 있는 목록까지 전부 보여준다. 

 

ls -l

ls -l 명령어를 사용하게 되면 8개의 영역으로 목록에 대한 상세 정보를 보여주게 된다.

왼쪽부터 1에서 8영역까지 존재하게 된다. 

 

1영역 해당 목록의 종류에 대해 알려준다. 

  • - : 일반 파일
  • d : 디렉토리
  • b : 블록 디바이스
  • c : 문자 디바이스 
  • l : 링크

2영역의 경우 접근 모드에 대하여 알려준다. 

(-) 전에 앞에 있는 것은 소유주의 권한, 중간은 그룹의 권한, 마지막은 그 외 사용자의 권한을 의미한다. 

여기서 r / w / x는 각각 다음과 같은 의미이다. 

  • r : 읽기 
  • w : 쓰기
  • x : 실행

3영역의 경우 해당 목록에 연결된 하드 링크의 수를 의미한다. (윈도우에서 바로가기와 유사하다고 한다)

4영역의 경우 소유자를 보여준다. 

5영역의 경우 그룹을 의미한다. 

6영역의 경우 해당 목록의 파일 크기를 말한다. 단위는 byte이다.

7영역의 경우 최종 수정 시간을 보여준다. 가장 상단에 있는 파일의 경우 8월 19일 22시 18분에 최종 수정했다는 의미이다.

8영역의 경우 해당 목록의 이름을 보여준다.]

 

위 명령어 두 개를 합쳐서 ls -al로 사용할 수도 있다.

 

cp (Copy)

복사를 할 때 사용하는 명령어이다. 

cp {옵션} {복사를 할 디렉토리 / 파일} {새롭게 복사가 될 디렉토리 / 파일}

만약 위 이미지에서 holdy-iOS 디렉토리를 new-holdy-iOS로 복사하려 한다면 다음과 같이 작성해주면 된다. 

 

만약 다른 디렉토리에 있는 파일을 복사하려할 때에는 복사할 파일 앞에 디렉토리까지 붙여주면 된다. 

만약 파일이 아닌 디렉토리를 복사하고 싶을 때는 cp -r 을 사용하면 하위 디렉토리까지 전부 복사가 된다. 

 

mv (Move)

cp와 사용방법은 거의 동일하지만 따로 옵션은 존재하지 않는다. 

mv {이동할 파일 / 디렉토리} {디렉토리 명}

 

mkdir (Make Directory)

디렉토리를 생성해주는 명령어이다. 

mkdir -p {하위 디렉토리 주소}

위 명령어를 통해 생성하게 되면 하위 디렉토리까지 한 번에 생성된다.

 

rm (Remove)

삭제를 할 때 사용하는 명령어이다. 

디렉토리를 삭제할 때에는 rm -r을 사용해야 한다. 이렇게 디렉토리를 지우는 경우 하위 디렉토리까지 한 번에 삭제된다. 

 

touch

빈 파일을 생성하거나 이미 존재하는 파일이라면 수정 시간 및 접근 시간을 수정한다. 

 

cat (concatenate)

단순히 파일의 내용을 출력하거나 여러 개의 파일을 합쳐서 하나의 파일로 만들 수도 있다. 또한 기존 파일의 내용을 다른 파일에 덧붙일 수도 있다. 

이렇게 단순히 내용을 보여주기도 한다. 

 

만약 여러 파일을 하나의 파일로 합친다면 이렇게 작성해주면 된다. 이 때 합쳐진 파일이 새롭게 생성되게 된다. (기존 파일은 유지)

cat {합칠 파일 1} {합칠 파일 2} > {합쳐진 파일의 이름}

 

find

특정 파일이나 디렉토리를 검색할 때 사용한다. 

find {검색 경로} -name {파일 이름}

만약 특정 확장자를 가진 파일을 찾는다면 파일 이름에 다음과 같이 작성해주면 된다. 

(PDF 파일을 찾는다고 가정해보자)

find {디렉토리 주소} -name "*.pdf"

그럼 이름 뒤에 .pdf가 붙는 파일을 검색해준다.

 

vi

Vim 편집기를 열게 된다. 

Vim은 우리가 git commit을 통해 커밋 메세지를 작성할 때에도 자주 접하게 된다.

 

처음 들어오게 되면 명령모드로 되어 있다. 만약 수정을 원한다면 i를 눌러 수정 모드로 바뀌게 된다

수정이 끝났다면 esc를 눌러 명령모드로 온 뒤 명령 모드에서 종료 옵션을 작성해주면 된다. 

  • :q - 그냥 종료
  • :q! - 강제 종료
  • :w - 저장
  • :w! - 강제 저장 
  • :wq - 저장 후 종료 
  • :wq! - 강제 저장 후 종료

명령모드에선 h(왼쪽) / j(아래) / k(위) / l(오른쪽)을 통해 이동이 가능하다. 

 

명령모드에서도 커서 아래의 클씨를 삭제할 때에는 x를 사용하면 된다. (수정 모드로 따로 들어가지 않아도 된다)

  • x : 현재 커서의 단어 삭제 
  • dd : 문장 전체 삭제 
  • yy : 문장 복사 
  • p : 붙여넣기 
  • p* : 외부에서 복사 후 클립보드에서 붙여넣기 -> 추가 설정 필요
  • u : 실행 취소
  • ctrl R : 다시 실행

 

생각보다 vim 편집기로 무궁무진하게 사용이 가능한 것 같다. 

 

참고 자료

 

[Linux] ls -l 명령어 정보 완전 분석

ls 명령어의 -l 옵션은 디렉토리 내용을 자세하게 보여주는 역할을 한다. 이번 포스팅에서는 각 정보가 무엇을 의미하는지 자세하게 분석해보고자 한다. ls -l 명령어에 대한 정보는 다음과 같이 8

kimcoder.tistory.com

 

[linux] 리눅스 기본 명령어/자주 쓰는 명령어

리눅스 기본 명령어

itholic.github.io

 

 

Comments