리눅스 명령어 정리(cd, ls, cat, touch, cp, rm 등)

Xonic·2022년 1월 3일
0
post-thumbnail

이 글은 Red Hat CentOS를 기준으로 작성되었습니다.

패키지 관리자 제외 다른 계열의 Linux와 모든 명령어는 비슷합니다!

1. command 문법

command [option] [argument]

띄어쓰기로 구분한다.

ex) ls      -l   /root
(command)[option][argument]

[ ]는 올 수도 있고, 안올 수도 있음.
옵션을 적지 않을 경우에는 기본(default) 값이 부여되는 경우가 많음.
option : command를 원하는 형태로 수정하는 것

2. 기본 명령어

2-1. cd + 특수문자(메타문자) : change directory

  • 현재 사용자의 작업 디렉토리를 변경한다.
  • ~ : 틸드 (접속한 계정의 홈 디렉토리)
  • - : 대쉬 (cd 하기 직전 디렉토리)
  • 상대 경로와 절대 경로를 잘 이해 해야하는데, 쉘 스크립트에서는 상대경로든 절대경로든 생략하지 않아야 함.

2-2. ls [option] [argument] : list

  • ls만 입력한다면, 사용자의 현재 작업 디렉토리 내부의 파일 정보를 보여준다.

    ls -l에서 맨 앞에 표현되는 -, d, l, c, b, p 같은 경우는 다음과 같은 의미가 있다.
    - : 일반파일
    d : 디렉토리
    l : 심볼릭 링크
    c : 캐릭터 파일
    b : 블록파일
    p : 파이프 파일

option : ex) ls -l, ls -d, ls -ld

  • -i : i-node 값
  • -n : 소유자 ⇒ uid 소유 그룹 ⇒ gid
  • -d : 디렉토리 자체를 가르킬 때 사용하는 옵션
    • 예를 들어 ls -l ~/directory 면, directory 내부의 파일들이 보임.
    • directory 그 자체의 정보를 보고 싶으면 상위 디렉토리에서 ls -l 해줘야함.
    • 하지만 ls -ld ~/directory면, 그 자체를 가리킴
  • -F : 파일에 대한 종류를 출력
    • 일반 파일은 아무 것도 표시 안됨. (postfix로 붙는것)
    • / : 디렉토리
    • 심볼릭 링크 : @
    • 실행파일 : *
  • -R : 재귀적으로 탐색 (Recursive)
    • 하위 디렉토리가 없을 때까지(리프 노드) 파고 들어감.

3. 파일 조회 명령어

3-1. cat

  • 파일의 내용을 한꺼번에 모두 출력한다.
  • -n : 라인에 넘버링을 해준다.

3-2. more / less

  • 화면에 출력할 때 한 화면씩 나누어서 출력

3-3. head

  • 파일의 내용을 위에서부터 출력한다
  • -n
  • ex) head -n +3 <file> : 위에서 3줄까지 출력해준다.
  • 참고: -1 하면 당연히 모든 문서가 다 출력됨.

3-4. tail

  • 파일의 내용을 아래서부터 출력한다.
  • -n
  • ex) tail -n -3 <file>: 밑에서 -3까지 출력해준다.
  • 참고: +1 하면 모든 문서가 다 출력됨.

TIP!

  • ESC + .을 하게 되면 마지막 argument를 따온다.

4. 파일을 생성하는 방법

  1. 문서 편집기(vim) 에서 내용을 저장할 때 새로운 이름으로 저장하게 되면 파일이 생성.
  2. touch 명령어를 이용해서 용량이 0인 파일을 생성
  3. 리다이렉션(방향 재지정, >, >>)을 이용해서 파일 생성

4-1. touch

  • 용량이 0인 파일 생성
  • 조건 분기용.
  • 모든 파일에 대한 시간을 현 시간으로 바꿀 수 있음
  • 만들 수 있는 것은 일반 파일만 생성할 수 있지만 시간을 바꾸는 것은 모든 파일(일반, 디렉토리, 링크 등)

5. 디렉토리를 생성하는 방법

5-1. mkdir

  • 명령어를 통해서 생성 (make directory)
  • mkdir [option] [path]
  • path를 여러개 적어줄 시 다중으로 만들 수도 있음

option

  • -p : 부모 디렉토리까지 생성해준다.

6. 리소스 복사

6-1. cp

  • 파일 하나를 복사
  • 덮어쓰기 여부는 오직 파일에 대해서만.
  • cp 원본(source) 복사파일 (파일명) / 복사위치(원본의 파일명 그대로 해당 위치로 복사)
  • 2개 이상의 파일을 복사.
  • cp 원본1 원본2 원본3 원본4 존재하는 디렉토리

option

  • -r : 디렉토리 복사
  • ex) cp -r <원본 디렉토리> <존재하지 않는 디렉토리명> or <존재하는 디렉토리명>(존재할 때는 그 안으로 들어간다)
  • cp -r <원본디렉토리1> <원본디렉토리2> <원본디렉토리3> <존재하는 디렉토리>

7. 리소스 이동

7-1. mv

  • 파일 한개 이동
  • mv <원본파일> <파일이름>(이동하고 이름변경) / 이동 위치(원본 파일명 그대로 이동만 됨)
  • 디렉토리 이동
  • mv <원본 디렉토리> <존재하지 않는 디렉토리>
  • 원본 파일이 그대로 남아있냐, 변경되냐 그 차이로 overwrite 하겠냐고 물어보게 됨 (-i옵션)
  • 비어있다는 기준하에 overwrite가 수행되고, 비어있지 않으면 overwrite가 수행되지 않음.

8. 리소스 삭제

8-1. rm

  • 삭제
  • 파일 삭제
  • rm 삭제하고자 하는 파일들
  • rm file01 file02 file03 file04
  • root 삭제할 때에는 -i이 alias를 통해서 적용이 돼있기 때문에 모두 다 대화형 처리
  • -r : 디렉토리 삭제

8-2. rmdir

  • 비어있는 디렉토리 삭제
  • -p : 젤 하위 디렉토리부터 비어있으면 삭제.

cp, mv, rm 명령어에는 공통적인 옵션이 존재

  • -i : 덮어쓰기(cp, mv) 또는 삭제여부(rm)에 대해서 대화형으로 처리
    • 대개 alias로 -i를 붙여서 걸어놓음.
    • 쉘에 alias를 쳐보면 alias 걸어 놓은게 보임
  • -f : -i 옵션을 무시하는 옵션

링크 파일

  • 특정 파일에 대한 접근성을 높이기 위해서 만든 파일

링크 파일의 종류

이름하드링크심볼릭 링크
명령어lnln -s
데이터 접근 방식원본과 같은 i-node 테이블 접근다른 테이블을 통한 간접적 접근
디스크 공간필요 없음약간의 공간 필요
디렉토리불가능가능
파일시스템동일한 파일시스템만 가능다른 파일시스템 가능
원본 파일 제거시이상 없음 (원본 파일이 돼버림)접근 불가능

심볼릭 링크

  • 절대 경로 ⇒ 절대 경로로 생성하면 심볼릭 링크가 어디로 이동하던 상관 없이 원래 링크 돼있던 링크를 가리킨다.
  • 상대 경로 ⇒ 심볼릭 링크 파일이 존재하는 디렉토리를 기준으로 상대경로가 적용되기 때문에 유의하여야 한다.

=> 웬만하면 절대경로로 생성!!

profile
공부 한 것을 공유하는 블로그입니다.

0개의 댓글