[CLI] 커맨드 환경과 디렉토리 및 파일

ljkgb·2021년 3월 7일
0

CLI

목록 보기
1/2
post-thumbnail

커맨드 환경 기초

iTerm 설치

iTerm 설치 링크

터미널에 없는 편리한 기능을 제공


커맨드

커맨드에 '인자'와 '옵션'을 줘서 원하는 결과를 만들어 내는 것

인자

커맨드가 작동할 대상을 지정하기 위해 사용(하이픈(-) 안붙음)

옵션

커맨드가 구체적으로 어떤 방식으로 동작할지 지시하기 위해 사용(하이픈(-) 붙음)

* 넓은 의미에서 옵션도 인자라고 하는 경우 있음
* 주요 인자와 옵션만 기억해두고 이외에는 검색해서 사용

옵션의 값(옵션의 인자)

cal -B 2
현재 날짜가 있는 달부터 그 이전 달들의 달력도 함께 출력, -B 2 는 현재 달로부터 이전 2개의 달 까지 함께 출력해 줌

여기서 -B는 인자 값을 주어야 함. 인자 값을 주지 않는 경우 커맨드가 실행되지 않음.

cal -B 2 -j
현재 달로부터 2개월 전의 달력까지 함께 출력해 주지만 1월 1일부터 몇 번째 날짜인지 표시해줌

여기서 -j 옵션은 인자 값을 필요로 하지 않음

이렇게 값을 섞어서 쓸 수 있지만 인자 값을 필요로 하는 옵션을 뒤에 적어 인자값을 적어줘야함!

잘 실행되는 섞인 옵션

인자 값을 필요로 하는 -B옵션을 앞으로 쓰니 실행되지 않음
(인자 값을 필요로 하지 않는 -j에게 2라는 인자값이 붙게되고 -B에는 인자값이 없는 것으로 처리되기 때문!)

커맨드 사용법을 알고 싶으면 '공식 메뉴얼'을 이용하도록 한다

공식 메뉴얼 또한 커맨드 창을 통해 알 수 있는데 커맨드 창에 man 궁금한 커맨드(인자)를 입력하면 된다.

man cal (캘린더 메뉴얼)을 커맨드 했을 때 실행되는 메뉴얼

메뉴얼 사용 키

  • 아래 방향키 : 내용 더보기
  • 스페이스 키 : 메뉴얼의 다음 페이지
  • 위 방향키 : 메뉴얼 내용에서 위로 한줄 이동
  • b : 위로 한페이지 이동(backward)
  • q : 공식 매뉴얼 화면에서 나가기(quit)

이전 커맨드 확인하기

  • 위 방향키 : 이전에 사용했던 커맨드
  • 아래 방향키 : 이전에 사용했던 커맨드에서 최근 커맨드로 이동
  • history 커맨드 : 실행한 커맨드 전부 출력, 여기서 커맨드를 다시 실행하고 싶다면 !번호를 쓰면 됨

이름 자동완성

tab 키

원하는 디렉토리나 파일이름의 첫글자를 쓰고 tab키를 누르면 자동완성
만약 같은 알파벳으로 시작하는 파일이 2개 이상이면 tab키를 한번더 누르고 조금더 구체적으로 작성하면 됨

터미널 사용 단축키

  • ctrl + a : 커서가 맨 앞으로 이동

  • ctrl + e : 커서가 맨 뒤로 이동

    * 디렉토리나 파일 이름에 공백이 들어있을 경우에는 작은 따옴포('')를 이용하여 묶어준다


디렉토리와 파일

디렉토리 기본

~ (틸드, Tilde)

현재 사용자의 홈 디렉토리

pwd('p'rint the name of 'w'orking 'd'irectory)

현재 작업중인 디렉토리 출력

즉, 이말은 이 두개가 같다고 표현할 수 있다.

~jaekyung = /Uswers/jaekyung

가장 상위에 있는 디렉토리 = 최상위 디렉토리 = 루트 디렉토리

디렉토리를 포함하고 있는 디렉토리

cd ('c'hange 'd'irectory)

디렉토리를 변경

cd 가고싶은 경로

경로를 나타내는 방법

  • cd / : 루트 디렉토리로 이동
  • cd ~ : 홈 디렉토리로 이동
  • cd - : 이전 경로로 이동

절대경로

루트 디렉토리를 기준으로 어떤 파일이나 디렉토리가 가지고 있는 고유한 경로

/Users/jaekyung/Pictures

/Users/jaekyung/Document

상대경로

나의 현재 위치를 기준으로 나타낸 경로

. : 현재 위치한 디렉토리
.. : 현재 디렉토리를 포함하고 있는 부모 디렉토리

만약, 현재위치가 /Users/jaekyung 일때 /Users/jaekyung/Pictures로 가는 경로를 나타낸다면

절대경로 : /Users/jaekyung/Pictures

상대경로 : ./Pictures

상대경로가 유용하게 쓰이는 경우

1) 루트 디렉토리에서 멀리 있는경우 그 주변의 경로를 나타낼 때
2) 프로그램의 소스코드 내에서 경로를 표시할 때
(프로그램을 다른 컴퓨터에서 실행하는 경우 호환성 문제로 인해 상대경로로 표시하는게 더 좋음)

디렉토리 내부 확인

ls 커맨드(list)

현재 디렉토리 안에 자식 디렉토리나 파일들의 리스트를 보여줌

ls의 옵션

ls -l : 결과를 긴 리스트 형식으로 보여줌(long listing format)

유닉스 에서는 디렉토리나 파일의 이름앞에 .을 붙이게 되면 ls커맨드를 썼을 때 나타나지 않음 = 숨겨져 있음.(보통 수정할 일이 거의 없는 설정 파일등은 이렇게 숨겨놓는 경우가 많음)
이렇게 숨겨져 있는 파일 보는 ls의 옵션은 ls -a

ls -a : 디렉토리 안에 숨겨져 있는 자식 디렉토리나 파일 보기(all)

모든 파일을 리스트 형식으로 보고 싶을 때는

ls -al 또는 ls -la 라고 쓰면 됨

디렉토리 자체의 정보를 확인 할때에는 -d옵션 사용하면 됨

Pictures 디렉토리의 자체 정보 출력 : ls -l -d Pictures

디렉토리와 파일 구분

ls -l 실행시 리스트 중 시작 문자가 d 또는 -로 시작함.
여기서 d는 디렉토리를 나타내며 -는 파일을 나타냄.

유닉스에는 다양한 종류의 파일이 있는데 (사실 디렉토리도 넓은 의미에서는 파일의 종류중 하나임!!) 종류로는 다음과 같다

파일종류문자
일반파일-
디렉토리d
캐릭터 장치 파일c
블록 장치 파일b
소켓s
파이프p
심볼릭 링크

디렉토리와 파일 만들기

mkdir (make directory)

디렉토리 만들기

mkdir 만들고 싶은 디렉토리 이름(만들고 싶은 디렉토리 이름과 그 경로)

touch

파일 만들기

touch 만들고 싶은 파일 이름

디렉토리와 파일 옮기기, 이름 변경하기

mv (move)

디렉토리나 파일을 옮기거나 이름 변경

옮길때

mv '옮기고 싶은 파일 or 디렉토리 이름' '도착지가 될 경로(절대 or 상대 둘다 가능)'

* 주의할 점: 이동하게 되는 디렉토리 안에 같은 이름의 파일이 있으면 그파일을 뒤짚어 씌게 됨
-> 방지를 위해 -i 옵션을 주게 되면 덮어쓰게 될 상황이 생길시 바로 덮어쓰지 않고 사용자의 의견을 물어봄(interactive)

mv -i file ../alreadyExists

이렇게 사용하게되면 터미널에서 overwrites ../alreadyExists?가 출력되며 덮어쓸건지 물어보게 됨 이때 y(yes)를 입력하면 덮어쓰고 n(no)를 입력하면 아무일도 일어나지 않게 됨.

이름변경시

mv '원래 파일 or 디렉토리 이름' '변경할 파일 or 디렉토리 이름'

디렉토리와 파일 복사, 붙여넣기

cp(copy & paste)

복사 붙여넣기

cp '복사할 파일 이름' '붙여넣기할 이름'

* 주의할 점: 붙여 넣으려는 이름의 파일이 이미 존재하면 기존 파일의 내용을 덮어쓰게 됨/
여기서도 방지를 위해 -i 옵션을 주게 되면 덮어쓰게 될 상황이 생길시 바로 덮어쓰지 않고 사용자의 의견을 물어봄(interactive)

디렉토리 복사, 붙여넣기

디렉토리를 복사, 붙여넣기 할 때에는 디렉토리의 자식 디렉토리까지 함께 복사할지 여부등을 결정할 옵션을 설정해줘야 한다.

  • -r : 재귀적 복사 붙여넣기(recursive) = 하위 디렉토리까지 모두 복사

디렉토리와 파일 삭제하기

rm (remove)

디렉토리와 파일 삭제

파일 삭제

rm 삭제할 파일

디렉토리 삭제

디렉토리를 삭제할 때에는 자식 디렉토리도 삭제할지에 대해 옵션을 설정해 줘야함

  • -r : 재귀적 삭제(recursive) = 하위 디렉토리까지 모두 삭제

rm -r 삭제할 디렉토리 이름

여기서도 삭제할 디렉토리 안에 중요한 파일이 있을 수 있음으로 -i 옵션을 사용하여 삭제 여부를 확인 받는게 좋다.

파일 내용 출력하기

cat(concatenate)

파일들의 내용을 이어서 출력

cat '내용을 보고싶은 파일 이름' '이어서 보고싶은 파일 이름'

하지만 이렇게 출력시 내용을 확인하는데 어려울 수 있음 여기서 사용하는 less 커맨드를 사용하면 됨

less 보고싶은 파일 이름

하게되면 보다 편리하게 볼 수 있는 기능을 제공

  • 아래 방향키 : 한줄씩 아래로 이동
  • 위 방향키 : 한줄씩 위로 이동
  • 스페이스 키 : 다음페이지 이동
  • b : 이전 페이지 이동(backward)
  • G : 내용의 가장 마지막으로 이동
  • g : 내용의 가장 처음으로 이동
  • q : 화면에서 나가기(quit)

두개의 파일을 합쳐서 less로 편하게 보고싶을 때

less '보고싶은 파일이름' '보고싶은 파일이름2'

여기서 사용할 수 있는 기능

  • :n : 다음으로 이동
  • :p : 이전으로 이동

파일 내용 일부분 출력

파일의 맨 앞부분 부터 출력

파일의 내용중 맨 처음 10줄 출력

head 원하는 파일 이름

출력되는 내용 조정시 옵션 -n을 사용
맨 처음 20줄의 내용을 확인하고 싶으면 아래와 같이 작성

head -n 20 원하는 파일이름

tail

파일의 맨 뒷부분 부터 출력
파일의 내용중 맨 뒷부분 10줄 출력

tail 원하는 파일 이름

출력되는 내용 조정시 옵션 -n을 사용
맨 뒷부분 30줄의 내용을 확인하고 싶으면 아래와 같이 작성

tail -n 30 원하는 파일이름

profile
🐹

0개의 댓글