2015-10-20

리눅스 파일 구조와 파일 권한 읽기, 명령어 소개

파일 구조

ls -l 명령어로 파일 목록 출력했을 때 보이는 화면
형식: {파일유형} : {파일권한} : {링크수} : {소유 계정} : {그룹명} : {파일크기} : {마지막 변경 일자} : {파일명}
ex> d : rwxr-xr-x. : 2 : root : root : 4096 : Feb 3 13:48 : Desktop

ls -l 명령어로 보는 파일 구조

파일 유형

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

허가권

  • r: 읽기 허가- 파일 내용을 읽을 수 있는지 결정
  • w: 쓰기 허가- 파일을 작성하거나 지울 수 있는지 결정
  • x: 실행 허가- 파일을 실행할 수 있는지 결정
 r  w  x   r   w   x   r   w   x 
 user  user    user    group  group    group    other  other   other 
user는 사용자 계정 본인
group은 사용자 계정이 속한 그룹에 있는 계정
other는 본인도 아니고 그룹에 속한 계정도 아닌 계정들이다. 

ex> d rwxr-xr-x. 2 root root 4096 Feb 3 13:48 Desktop
    - rwxr-xr-x: 유저는 읽고 쓰고 실행(rwx)할 수 있는 권한을 가지고 있으며 그룹은 읽고 실행(r-x)할 수 있는 권한을 가지고 있고 그룹을 제외한 타인들은 읽고 실행(r-x)할 수 있는 권한을 가지고 있다는 의미이다.

chown : 소유권 변경  

자신이 다른 계정의 파일을 복사해 왔을 때 파일의 소유권이 여전히 다른 사람 그대로이다.
ex> chown {아이디}(:{그룹})


chmod : 허가권 변경

상징모드와 절대모드 2가지 방법으로 허가권을 변경
ex> chmod {숫자/기호} {아이디}

 기호 의미  기호  의미 
 + 허가 권한 부여  사용자(소유자) 권한 
 - 허가 권한 제거  그룹 권한 
 = 허가 권한 유지  타인 권한 
 $ 소유자 또는 그룹만 실행  소유자, 그룹 타인 모두 권한 

1. 상대모드

ex> chmod ugo+rwx {파일/디렉토리이름}
    - 소유자u, 소유그룹g, 타인o 모든 계정이 읽고r 쓰고w 실행x을 가능+하게 함.
ex> chmod go-rwx {파일/디렉토리이름}
    - 소유그룹g, 타인o 계정이 읽고r 쓰고w 실행x을 불가능-하게 함.

2. 절대모드 (자주 사용하며 쉬움)

- 사용자+그룹+타인, 읽기4, 쓰기2, 실행1
ex> 444: 사용자, 그룹, 타인 모두 읽기 가능
ex> 666: 사용자, 그룹, 타인 모두 읽기 쓰기 가능 (4+2)
continue reading 리눅스 파일 구조와 파일 권한 읽기, 명령어 소개
Share This:    Facebook Twitter

2015-10-17

대표적인 리눅스 파일 디렉터리 설명

리눅스는 기본적으로 FHS(Filesystem Hieranchy Standard) 시스템이기 때문에 모든 것을 파일로 처리하고 있다. 그래서 폴더별로 기능이 분명하다.
/는 기본적으로 최상위 폴더를 의미하며 최상위에 속해 있는 1단계 디렉터리만 정리하는 것으로 하였다. 예외적으로 /usr 디렉터리에 대해서만 2단계 디렉터리 내용을 정리하였다.

/dev

  • 마우스, 모니터, 비디오 카드, 하드디스크 같은 주변 장치가 파일로 등록되어 있는 디렉터리

/etc

  • 시스템 설정 파일이 들어있는 디렉터리
  • 시스템 환경을 결정하는 파일들 (사용자 정보, 그룹, 파일 시스템 테이블, 네트워크 등)이 등록 되어 있음 

/bin

  • 기본적인 처리 명령들이 실행 파일 형태로 저장
  • 어느 곳에서나 실행 가능 (경로를 /bin으로 바꾸지 않아도 실행 가능)

/lib

  • 공유 라이브러리 파일이 저장
  • 부팅과 응용프로그램 실행에 필요한 코드 저장(중요)

/home

  • 새로운 계정을 만들면 계정 폴더가 이 디렉터리에 생성
  • 각각의 홈 디렉터리는 새로 등록된 사용자들의 소유권, 허가 권이 설정됨
  • 사용자는 자신의 개인 파일들을 이 디렉터리 밑에 저장

/root

  • 루트 계정을 위해 제공되는 홈 디렉터리
  • 일반 홈 디렉터리와 같은 개념이지만 루트를 위한 디렉터리이기 때문에 일반 사용자는 접근 불가

/proc

  • 고유의 시스템 정보를 실시간으로 확인할 수 있는 특별한 내용 포함
  • ex> 시스템 상태 모니터링

/sbin

  • 전반적인 시스템 관리 명령이 들어있는 디렉터리
  • root 계정만 사용 가능

/tmp

  • 어떠한 작업을 위해 임시로 파일을 만들거나 지우는 공간
  • 임시 공간

/var

  • 시스템을 운영하면서 생기는 각종 임시 파일을 저장하는 디렉터리
  • 임시 공간

/usr

  • 시스템 응용 프로그램에서 필요한 파일이 저장되어 있는 디렉터리
  • 선택 설치

/usr/bin

  • 추가 사용자 프로그램이 저장되는 곳
  • 필수 명령 외에 대부분 명령 파일

/usr/games

  • 게임 프로그램이 설치되는 디렉터리

/usr/include

  • 프로그래밍과 관련된 헤더 파일

/usr/lib

  • 각종 라이브러리

/usr/local

  • 사용자가 직접 설치하는 프로그램이 저장되는 디렉터리

/usr/sbin

  • 관리자 용 추가 프로그램이 있는 곳
  • 주로 네트워크 데몬이 있음

/usr/src

  • 프로그램의 소스가 있는 곳
continue reading 대표적인 리눅스 파일 디렉터리 설명
Share This:    Facebook Twitter

2015-10-06

리눅스 명령어 정리 - 기본

리눅스에 대한 관심이 생겨나던 때, 리눅스의 첫 걸음은 당연히 명령어를 살펴보는 것이었다. 당시에 정리해 둔 요약이 있어서 하나씩 업로드 해볼 생각이다. 옛 생각이 새록새록 나기도 하고 정리해두면 언젠간 다시 와서 볼 것 같다.

PWD

현재 경로보기
현재 경로는 /root라고 표시되어 있다.

CD

해당 디렉토리 이동하기
사용법: cd {인자값}
  • cd.: 현재 디렉토리로 이동
  • cd..: 상위 디렉토리로 이동
  • cd~: 홈 디렉토리로 이동
  • cd-: 이전 작업 디렉토리로 이동
/usr 폴더로 이동하였다.

LS

파일 내역 출력
사용법: ls {옵션} {디렉토리/파일}
  • -a: 모든 파일과 디렉토리 표시 
  • -l: 자세히 출력 
  • -d: 디렉토리 정보 출력 
  • -n: UID, GID 출력 
  • -R: 하위 경로와 모든 파일 나열 
/usr 폴더의 모든 파일과 디렉토리를 자세히 출력

CP

파일, 디렉토리 복사
사용법: cp {옵션} {복사소스} {복사위치}
  • -f: 강제로 복사 
  • -r: 하위 경로 포함하여 복사 
  • -v: 복사 진행 상황 출력 
  • -s: 링크 정보 유지하여 복사 

/tmp/amy2/test2.txt 파일을 /tmp 폴더에 하위 경로를 포함하여 복사
팁: 생성후 바로 cp명령어를 사용하면 사용 중이기 때문에 'omitting directory'에러가 날 것이다. 그땐 -r 옵션으로 강제로 복사하자

MV

파일, 디렉토리 이동
사용법: mv {옵션} {이동소스} {이동타겟}
  • -i: 이동에 대한 실행 여부 물음 
  • -f: 강제로 이동 
  • -u: 이동 대상 위치보다 최근 파일 시 이동 
  • -v: 이동 진행 상태 출력 
  • -b: 대상 파일이 이미 있어 백업 파일 생성 

amy1 디렉토리에서 test1.txt 파일 생성 후에 amy2로 이동하여 확인

MKDIR

디렉토리 생성
사용법: mkdir {옵션} {이름}
  • -m: 디렉토리 생성 시 기본 권한 설정 
  • -p: 상위 디렉토리 생성
  • --help: 도움말 
  • --version: 버전 표시 

777 권한의 amy1 디렉토리를 생성 한 후 그 폴더가 잘 생성되었는지 검색

RM

파일 디렉토리 삭제
사용법: rm {옵션} {디렉토리/파일}
  • -f: 강제삭제 
  • -r: 디렉토리 삭제 시 하위 경로와 파일 삭제 
  • -v: 파일 삭제 정보를 자세히 보여줌 

/tmp/amy1 폴더를 삭제하는데 폴더 하위에 포함된 파일 까지 모두 삭제

CAT

텍스트 파일 내용 출력
사용법: cat ({옵션}) {파일 이름}
  • >: 내용 덮어 씌우기 
  • >>: 기존 파일 내용 추가 
test1.txt파일에 내용 추가후 조회하며, >>명령어를 통해 내용을 추가하였다. 내용 저장은 Ctrl+d

TOUCH

파일 생성 및 시간 정보 변경
사용법: touch {옵션} {파일이름}
  • -r: 시간 동기화 
  • -t: 지정 시간으로 변경 

HEAD

파일 내용 중 처음부터 10줄 출력
사용법: head {파일이름}

TAIL

파일 내용중 마지막부터 10줄 출력
사용법: tail {파일이름}

MORE

파일 내용 화면 단위로 출력
사용법: more {파일이름}
more 명령어를 통해 파일을 열었고 화면 크기인 4줄이 출력되며 60%내용이 남아있음

FILE

파일 종류 확인
사용법: file {파일이름}

FIND (중요)

파일 찾기
꼭 알아두기!
  • *: 모든것을 의미
  • $와 같이 쉘에서 의미를 갖는 문자를 검색할경우 \와 함께 작성
  • 단어 검색 시 single quotaion(')을 앞뒤에 붙인다. 
  • 각 옵션은 혼합하여 사용가능
  • 숫자 옵션 +n : n이상인 파일 검색,
    -n: n이하인 파일 검색,
    n: n과 일치하는 파일 검색

파일명 검색 -name

파일 명에 'php'가 들어간 파일 검색 : # find .-name '*php'

용량 검색 -size

용량이 100KB 이상인 파일 검색 : # find .-size +100k

파일 형식 -type


  • f: 일반파일
  • d: 디렉터리
  • l: 심볼릭 링크 파일
  • s: 소켓파일
디렉터리이면서 이름중에 melong이 들어간 것을 검색 : # find .-type d -name '*melong*'

파일의 소유자 -user

소유자가 nobody인 파일 검색 : # find .-user nobody

파일의 수정일자 -mtime

  • mtime +n : 오늘을 기준으로 n일 이전에 변경된 파일 검색
  • mtime -n : 오늘을 기준으로 n일 이내에 변경된 파일 검색
3일 이내에 변경된 파일 검색 : #find .-mtime -3

    파일의 액세스 일자 -atime

    • atime +n : 오늘을 기준으로 n일 이전에 엑세스한 적이 있는 파일 검색
    • atime -n : 오늘을 기준으로 n일 이내에 엑세스한 적이 있는 파일 검색
    10일 이전에 엑세스한 적이 있는 파일 검색 : # find .-atime +10

      검색할 디렉터리 깊이 지정 -maxdepth

      지정한 디렉터리에서 n개 깊이의 디렉터리까지 검색한다. 
      2개의 깊이에 있는 디렉터리까지 검색하여 파일명에 'php'가 있는 파일 검색 : # find .-name '*php*' -maxdepth 2

      검색한 파일에 대한 특정 명령을 실행 -exec 명령어 {} \;

      -exec 명령어 {} \;: {}안에는 찾은 파일명이 들어가게 된다.
      파일명이 bak로 끝나는 파일을 찾아서 삭제 : # find .-name '*bak' -exec rm {} \;

      ifconfig

      네트워크 정보 출력
      윈도우 명령어 ipconfig와 상응하는 리눅스 명령어이다.
      ifconfig 명령어를 통해 네트워크 정보 출력

      Route

      게이트웨이 설정 & 확인
      route 명령어로 게이트웨어 설정을 확인

      Shutdown

      시스템 종료
      사용법: shutdown {옵션} {시간} "메세지"
      • -k: 모든 사용자에게 메세지 전송 
      • -h: 시스템 종료 
      • -r: 시스템 재부팅 
      • +m: 종료 시점 시간 지정 
      • now: 명령어를 수행하는 순간 종료

      파이프(|)와 필터

      파이프(|)

      앞 프로그램 결과를 뒤 프로그램 입력 값으로 전달
      사용법: ls -al /usr/bin | more

      필터(grep)

      표준 입력으로부터 자료를 읽어 간단한 처리 후 표준 출력으로 보내는 프로그램
      사용법: ps aux | grep xfs

      리다이렉션(Redirection) 

      • 표준 출력 리다이렉션 : 출력을 파일로 전환
        사용법: ls /usr/bin > list_file
      • 표준 오류 리다이렉션 : 실행에서 오류가 있을 시 오류만 파일로 전환
        사용법: ls /usr/bin 2>/dev/null
      참고: /dev/null은 리눅스에서 휴지통을 의미한다.
      continue reading 리눅스 명령어 정리 - 기본
      Share This:    Facebook Twitter