Jiniya

WEB

리눅스(Linux) 터미널 명령어(Terminal Command)

INTRO


'터미널'은 사전적 의미로 종단, 끝을 의미한다. 

이 의미를 컴퓨터로 빗대어 보면 데이터를 송수신 하는 목적지나 출발점의 의미가 될 수 있다.

따라서 리눅스에서 사용하는 '터미널'은 명령을 내려 컴퓨터를 제어하는 곳이라고 생각하면 된다.




passwd [옵션] [계정]


- 사용자 계정의 패스워드를 등록하거나 변경하는 경우 이용하는 명령어이다.

- 슈퍼 유저는 다른 유저의 패스워드도 변경 가능하다.


옵션

  • -S : 계정의 상태를 표시한다.(PS : 정상, NP : 패스워드가 없음, LK : Lock상태 혹은 NP 상태)
  • -d : 계정의 패스워드를 삭제한다. 패스워드 없이 로그인이 가능해진다.
  • -l : 계정을 Lock 상태로 변경한다.
  • -u : 계정의 Lock 상태를 해제한다.




ls [옵션] [파일명]


- 현재 디렉토리 내의 파일과 디렉토리 정보를 출력한다.

- 윈도우 cmd 창의 'dir'과 같은 명령이다.

- [옵션]에는 -를 붙여 아래와 같은 옵션을 부여 할 수 있으며 두 개 이상의 옵션도 가능하다.

- [파일명]에는 파일명이나 디렉토리명을 적을 수 있다


옵션

  • -a : 디렉토리에 있는 모든 파일들(.으로 시작하는 파일 포함)을 출력한다.
  • -i : 파일의 아이노드(inode, 색인번호) 번호를 출력한다. 
  • -h : 파일 크기를 사람이 보기 쉬운 단위로 출력한다.(k : 킬로바이트, m : 메가바이트)
  • -l : 파일의 다양한 정보(상세정보)를 함께 출력한다.(소유자, 권한, 크기, 날짜)
  • -m : 파일을 쉼표로 구분하여 가로로 출력한다.
  • -s : kb 단위의 파일 크기를 출력한다.
  • -t : 최근 생성된 시간 순으로 파일을 출력한다.
  • -F : 파일 종류 별로 파일 끝에 특수 문자 표시.(일반파일 : 표시없음, 실행파일 : *, 디렉토리 : /, 심볼링크 : @, FIFO파일 : |, 소켓파일 : =)
  • -R : 지정한 디렉토리 아래에 있는 하위 디렉토리와 파일들을 포함하여 출력한다.
  • -S : 파일 크키가 큰 순서대로 출력한다.
  • --help : 도움말을 출력한다.

* 아이노드(inode) : 특별한 파일의 저장정보를 가지고 있는 저장장소(metadata)이다.




cd [디렉토리명]


- Change Directory.

- 디렉토리를 이동할 때 사용한다.


옵션

  • cd [엔터], cd ~, cd ~/, cd $HOME : 사용자의 홈 디렉토리로 이동한다.
  • cd . : 현재 디렉토리로 이동한다.
  • cd / : 최상위 디렉토리로 이동한다.
  • cd $변수명 : 변수에 지정된 경로로 이동한다.
  • cd ~계정명 : 입력한 사용자의 홈디렉토리로 이동한다.
  • cd - : 이전 경로로 이동한다.




cp [옵션] [원본파일명] [대상파일명/디렉토리명]


- 윈도우 cmd의 'copy' 명령과 같다.

- 하나 이상의 [원본파일]을 [대상파일]이나 [디렉토리]로 복사한다.

- [원본파일명]에는 하나 이상의 파일을 지정할 수 있다.


옵션

  • -i : 파일 복사 시, 동일한 파일명이 있을 경우 사용자에게 덮어 쓸 것인지 물어본다.
  • -f : 동일한 파일명이 있을 경우에도 강제로 지우고 복사한다.
  • -p : 원본 파일 소유주, 그룹, 권한, 시간 정보들이 그대로 보존되어 복사한다.
  • -r : [원본파일명]이 경로일 경우, 그 경로에 있는 모든 하위 디렉토리들을 포함하여 모두 복사한다. 일반 파일일 경우는 그냥 복사한다.
  • -u : 복사 대상이 이미 존재하며 파일의 날짜가 같거나 더 최신이면 복사하지 않는다.




mkdir [옵션] [파일명]


- 새로운 디렉토리를 생성한다.

- 읽기 권한(Write Permission)이 허용되어야만 디렉토리를 생성할 수 있다.


옵션

  • -m : 디렉토리의 권한을 지정한다.(기본값 : 755) ex) mkdir -m 700 dir -> dir 디렉토리의 권한을 700으로 설정하여 생성한다.
  • -p : 생성하려는 디렉토리의 상위 디렉토리가 없는 경우 상위 디렉토리까지 같이 만든다.




rmdir [옵션] [파일명]


- 빈 디렉토리를 제거한다.

- 읽기 권한(Write Permission)이 허용되어야만 디렉토리를 삭제할 수 있다.


옵션

  • -p : 상위 경로도 삭제한다.




rm [옵션] [파일이름]


- Remove.

- 파일이나 디렉토리를 삭제할 때 사용한다.


옵션

  • -i : 파일이나 디렉토리가 삭제될 때마다 확인한다.(y : 삭제, n : 취소)
  • -f : 사용자에게 확인하지 않고 삭제한다.
  • -v : 각각의 파일 지우는 정보를 자세하게 모두 보여준다.
  • -r : 해당 디렉토리의 하위 디렉토리까지 모두 삭제

* -r 을 제외하고는 디렉토리를 제외한 파일만 삭제가 가능하다.




mv [옵션] [원본파일] [대상파일]


- 파일의 이름이나 위치를 변경할 때 사용한다.


옵션

  • -f : 이동할 위치에 파일 이름이 겹치면 강제로 이동한다.
  • -i : 이동할 위치에 파일 이름이 겹치면 사용자에게 물어본다.




find [디렉토리] [옵션]


- 파일을 이름, 수정 날짜, 소유주, 허가 등을 기준으로 검색하게 해준다.


옵션

  • -empty : 비어있는 파일을 찾는다.
  • -user [사용자명] : 지정한 사용자가 소유하고 있는 파일을 찾는다.
  • -group [그룹명] : 지정한 그룹이 소유하고 있는 파일을 찾는다.
  • -nouser : 소유주가 없는 파일을 찾는다(사용자 계정을 삭제했을 경우 사용자가 생성한 파일들을 남기는 경우가 있다).
  • -nogroup : 소유그룹이 없는 파일을 검색한다.
  • -name [파일명] : 지정한 패턴을 갖는 파일을 찾는다(파일명 또는 확장명을 기준으로 검색한다).
  • -newer [파일명] : [파일명]보다 최근에 생성된 파일을 찾는다.
  • -anewer [파일명] : [파일명]보다 최근에 읽기(접근)가 수행된 파일을 찾는다.
  • -cnewer [파일명] : [파일명]보다 최근에 상태가 변경(수정)된 파일을 찾는다.
  • -perm [권한] : 권한과 일치하는 파일을 찾는다.
  • -type [파일타입] : [파일타입]에 맞는 파일을 찾는다. [파일타입]은 아래와 같다.
    • d : 디렉토리(Directory)
    • c : 캐릭터 특수 파일(Character Device)
    • f : 일반파일(File)
    • b : 블록 특수 파일(Block Device)
    • l : 심볼릭 링크(Link)
    • p : 파이프(Pipe)
    • s : 소켓(Socket)
  • -atime [+n/-n/n] : 최근 n일 이전에 access된 파일을 찾는다(Access Time).
    • +n : n일 전부터 접근하지 않은 파일
    • -n : n일 동안 접근한 파일
    • n : n일 전에 접근한 파일
  • -ctime [+n/-n/n] : 파일의 퍼미션(권한)을 마지막으로 변경한 파일을 찾는다(Changed Time).
    • +n : n일 전부터 퍼미션을 변경하지 않은 파일
    • -n : n일 동안 퍼미션을 변경한 파일
    • n : n일 전에 퍼미션을 변경한 파일
  • -mtime [+n/-n/n] : data를 마지막으로 수정한 파일을 찾는다.(Modified Time).
    • +n : n일 전부터 수정하지 않은 파일
    • -n : n일 동안 수정한 파일
    • n : n일 전에 수정한 파일
  • -size : 저장한 파일 크기로 파일을 찾는다.
  • -depth : 별도로 지정할 필요가 없으며 서브 디렉토리까지 찾는 옵션이다.
  • -mount : 다른 파일 시스템의 디렉토리는 검색하지 않는다.
  • -prune : 서브 디렉토리로 내려가지 않고 현재 디렉토리에서만 검색한다.
  • -samefile [파일명] : 링크된 파일을 찾는다(하드 링크).
  • -lname "*이름" : 링크된 파일을 찾는다(심볼릭 링크).
  • -inum [inode번호] : inode 번호로 파일을 찾는다.



head [-count] [파일이름], tail [-count] [파일이름]

- head [-count] [파일이름] : 첫 번째 라인부터 number 라인까지 출력한다. 설정하지 않을 경우 10번째 라인까지 출력한다.

- tail [-count] [파일이름] : 마지막 라인부터 number 라인까지 출력한다. 설정하지 않을 경우 10번째 라인까지 출력한다.
- tail -f [파일이름] : 실시간으로 파일에 추가되는 내용을 확인한다. 보통 log파일을 관찰할 때 자주 사용한다.



cat [옵션] [파일이름]

- 파일의 내용을 볼 수 있는 명령어이다.

- cat > [파일이름] 형태로 명령어를 작성했을 경우, 파일 생성 및 데이터 입력도 가능하다.

* 파일 저장 : Ctrl + d, 파일 종료 : Ctrl + z

- cat [파일명] | more : 엔터키를 입력할 때마다 한 줄씩 내려가면서 확인이 가능하다.

- cat [파일명] | less : 화살표 위, 아래키로 페이지 올림, 내림이 가능하다.

* more과 less 상태에서 q를 누르면 종료가 된다.


옵션

  • -n : 파일을 출력할 때, 라인에 번호를 붙여 출력한다.
  • -b : 공백 외의 글자가 있는 라인에 번호를 붙여 출력한다.




gzip [옵션] [파일명]


- 리눅스에 설치되어 있는 기본 압축 프로그램이다.

* gzip 명령어를 찾을 수 없다고 나온다면, 'apt-get install gzip' 으로 설치하면 된다.

- 리눅스에서 사용하는 압축 프로그램이다.

- 속도나 압축률 면에서 상당히 좋은 프로그램이다.

- 파일을 압축할 경우 사용하는 명령어이다.

- 압축된 파일은 .gz라는 확장자를 갖는다.

- 성공적으로 압축이 수행되었을 경우, 압축을 수행한 원본 파일은 삭제된다.



옵션

  • -d : 압축을 해제한다(Decompress).
  • -f : 압축을 하거나 해제할 때, 같은 이름의 파일이 존재할 경우 덮어쓰기 한다.
  • -l : 압축 파일의 정보를 보여준다.
  • -r : 압축 파일의 디렉토리까지 압축을 수행한다.




tar [옵션] [파일명]


- 여러 파일을 하나로 묶을 경우 사용되는 명령어이다.

- 확장자는 .tar 이다.


옵션

  • -c : 파일을 tar로 묶어 생성한다.
  • -x : 기존의 tar파일의 압축을 해제할 경우 사용한다.
  • -v : 압축할 때나 압축을 해제할 때, 과정을 화면으로 출력한다.
  • -f : 파일 이름을 지정한다.
  • -C : 파일 경로를 지정한다.
  • -z : gzip으로 압축하거나 해제한다.




kill [시그널 번호/시그널 이름] [프로세스]


- 특정 프로세스에 특정한 Signal을 보내는 명령어이다.

- 보통 실행중인 프로세스를 종료시키고자 할 때 사용한다.

- 가끔 중지시킬 수 없는 프로세스가 발생하는 경우가 있는데, 이때 강제 종료 시키기 위해 kill 명령어를 사용한다.


옵션

  • -i : 프로세스 종료 전 사용자에게 물어본다.
  • -v : 진행 현황을 확인 할 수 있다.
  • -w : 지정한 프로세스들이 모두 종료 될 때까지 종료 시도를 한다.




su [-] [사용자ID]


- 다른 사용자 계정으로 서브 쉘을 생성하는 명령어이다.

- 현재 계정을 로그아웃 하지 않고 다른 계정으로 전환 할 때 사용한다.

- su는 'Super User'가 아니며 'Substitute User'를 의미한다.

- su만 입력했을 경우, su root와 같다.


옵션

  • -c : 쉘을 실행하지 않고 주어진 명령만 수행한다.
  • -, -l, -login : 지정한 사용자의 환경변수를 적용해 로그인한다.
  • -s : 지정된 쉘로 로그인한다.




shutdown [옵션] 시간 [메시지]


- halt, init과 함께 시스템을 종료하는 명령어 중 하나이다.

- [메시지]를 통해 현재 접속 중인 모든 사용자에게 시스템이 종료된다는 메시지를 보낼 수 있다.


옵션

  • -r : 시스템 종료 후 재 부팅한다.
  • -h : shutdown이 완료된 후 시스템을 종료한다.
  • -c : 진행 중인 shutdown 명령어를 취소한다.
  • -k : 경고 메시지만 출력하고 실제로는 shutdown 하지 않는다('Just Kidding'의 의미).