Git-Github

CLI 기본 명령어

GoJay 2024. 11. 6. 14:37

Git은 주로 터미널에 CLI 명령어를 작성해서 사용하는 게 일반적이다. 그래서, Git 공부 전에 간단하게 CLI 명령어 몇 가지를 살펴봤다.

탐색 및 이동

CLI를 사용하면 자신의 로컬 디렉토리(폴더) 내에서의 다양한 작업을 수행할 수 있다. 그중, 탐색 및 이동과 관련된 명령어를 알아보겠다.

pwd

pwd는 'print working directory'의 줄임말이다. 현재 위치한 폴더의 경로를 확인하는 명령어다.

> pwd

CLI를 이용해 폴더 및 파일에 접근할 때에는 주로 '경로(Path)'의 개념을 사용하며, 절대 경로만 사용하는 게 아니라 자신이 현재 있는 위치를 기준으로 하는 '상대 경로'도 사용하기 때문에, 현재의 디렉토리 위치가 어디인지를 파악하는 건 중요하다.

참고로, 절대 경로란 경로(디렉토리 위치)를 테스크톱의 최상단 디렉토리에서부터 표현하는 방식이다. 만약에 바탕화면에 있는 example 폴더에 있는 example.js 파일은 절대 경로로 /Users/{사용자 이름}/Desktop/example/example.js의 경로를 갖는다.

반면, 상대 경로는 자신이 현재 위치한 디렉토리를 기준으로 한 경로를 의미한다. 위의 예시에서 현재 디렉토리 위치가 Desktop이라면 example 폴더는 자신의 하위 폴더가 된다. 그럴 경우 경로는 ./example이 된다. 상대 경로에서 .는 현재의 디렉토리 위치를 의미하며, /를 사용하면 그 하위에 있는 폴더의 경로를 지정할 수 있다. 만약에 ..를 사용하면 현재 디렉토리 위치의 상위 디렉토리를 가리키게 된다(example 디렉토리에서의 ..Desktop이다).

ls

ls는 'list'의 줄임말이다. 디렉토리 하위에 포함된 디렉토리와 파일들의 목록을 보여준다.

> ls

만약에 숨김 처리를 한 디렉토리 또는 파일까지 확인하고 싶다면 ls 뒤에 -a를 붙여주면 된다(-a-all의 줄임말이다).

> ls -a

ls 뒤에는 특정 경로가 올 수 있으며, 경로가 올 경우 해당 경로에 있는 디렉토리에 있는 폴더와 파일들을 확인할 수 있다. 경로 없이 ls만 사용하면 자동으로 현재 디렉토리에 있는 폴더와 파일 목록을 보여준다.

cd

cd는 'change directory'의 줄임말이다. 디렉토리를 이동할 때 사용한다.

> cd ./example

cd 뒤에는 이동할 경로를 입력해주면 되고, 절대 경로와 상대 경로를 모두 사용할 수 있다. 절대 경로를 사용하면 로컬 환경의 최상단 디렉토리로부터의 경로를 기반하여 필요한 디렉토리로 이동하게 되고, 상대 경로를 사용하면 현재 위치한 디렉토리 기준으로 이동하게 된다. 만약에 cd ..라고 명령하면 상위 폴더로 이동하게 되고, cd ../..라고 명령하면 두 단계 상위의 폴더로 이동한다.

open

원하는 경로의 디렉토리를 로컬에서 열어준다.

> open .

.는 현재의 디렉토리를 의미하기 때문에, open .이라고 명령하면 현재의 디렉토리 창이 로컬 PC에서 열리게 된다. 만약에 open ..라고 하면 상위 디렉토리가 열리게 된다.

ls, cd와 마찬가지로 경로를 설정할 수 있으며, 절대 경로와 상대 경로 모두 사용이 가능하다. 경로를 설정하면 해당 경로에 있는 디렉토리 창을 열어준다.

생성 및 삭제

touch

touch를 사용하면 현재 디렉토리에 파일을 생성할 수 있다. touch 뒤에 생성할 파일 이름과 확장자를 작성해주면 파일이 생성된다.

> touch example.js

파일 이름을 띄어쓰기로 구분해서 여러 개 나열하면 여러 파일을 한 번에 생성하는 것도 가능하다.

> touch example1.js example2.js example3.js

뒤에 경로를 지정하면 원하는 경로에 파일을 만들수도 있다. 경로는 절대 경로와 상대 경로 모두 사용 가능하다.

> touch ./example/example.js

참고로, touch는 원래 생성된 파일의 타임 스탬프(마지막 수정 시간)를 변경하는 역할을 하는 명령어다. 다만, 해당 명령어를 존재하지 않는 파일에 사용하면 파일을 새로 생성하는 특성이 있기 때문에, 파일 생성 목적으로 주로 사용한다.

mkdir

디렉토리를 생성하는 명령어다.

> mkdir example2

디렉토리 생성도 파일 생성과 마찬가지로 여러 디렉토리를 띄어쓰기로 구분해서 만들 수 있고, 경로를 지정해서 원하는 위치에 생성할 수도 있다.

rm

rm은 파일을 지우는 명령어이다. Remove의 줄임말이다.

> rm example.js

경로를 지정하지 않으면 현재 디렉토리에 있는 파일을 지우지만, 별도 경로를 지정하면 원하는 디렉토리에 있는 파일을 제거하는 것도 가능하다.

참고로, rm으로 지워진 파일은 로컬 환경에 있는 휴지통에 들어가는 것이 아니라 영구 삭제된다. 임시로 삭제 파일을 저장해두는 곳이 없기 때문에 삭제 시 주의가 필요하다(Git을 사용하면 기존 커밋을 통해 rm으로 삭제된 파일을 복원할 수 있다).

rm -rf

rm -rf는 디렉토리를 삭제할 때 사용한다. -rf는 Recursive Force를 의미한다. 폴더 내부에는 다른 폴더와 파일드이 존재할 수 있기 때문에, 폴더를 삭제하기 위해선 그 내부에 있는 모든 폴더와 파일을 같이 삭제해야 한다. 해당 과정을 '재귀적'이라고 지칭하기 때문에 rf라는 명령어가 나온 것 같다.

> rm -rf example

rmrm -rf는 지우는 대상이 파일인지, 폴더인지에서만 차이가 있고, 나머지 사용은 동일하다.

터미널 관리

clear

터미널 창에 작성됐던 명령들을 지워준다. 너무 많은 명령이 쓰이면 보기 불편하기 때문에, clear를 사용해서 주기적으로 화면을 클리어해주자.

> clear

결론

터미널 사용이 익숙해지면 마우스를 써서 파일-폴더를 관리하는 것보다 터미널로 관리하는 게 훨씬 편해진다고 한다. 생산성도 많이 올라가고. 잘 활용할 수 있게 반복해서 많이 연습해봐야겠다.