Linux 8

다원·2023년 1월 10일
0

필요 부분 추출

cut: 출력의 일부부만 보이게 함
-d: 줄을 열(column)의 형태로 보이게 하는데 열에 분리자(delimiter나 separator로 Tab, Space) "" 안에 지정할 수 있음
-f: 어느 열을 보일지 지정

파일 비교

cmp: 두 파일을 비교해서 차이를 알려줌

comm: cmp와 유사하게 두 파일에서 유일한 부분과 공통적인 부분을 열로 구분해서 보임

1열: 첫번째 파일에서 유일, 2열: 두번째 파일에서 유일 3열: 공통적인 부분

정규표현식 패턴으로 검색

grep 패턴을 이용해서 파일을 서치하는데 사용
|(파이프)와 함께 사용되면, 좌측의 출력에서 원하는 결과만 걸러내는 필터링 역할

  • 주석을 제외하고 출력

    fgrep 여러 파일에서 문자열을 빠르게 검색할 때 사용 (grep -f)
  • -i: 대소문자 구별 없이 "RoOt"를 찾아 출력

    pgerp PID 보는 명령어

    egrep 패턴으로 검색, grep -E 동일
    -E: Extended의 의미를 가지고 있음
    ^[]: 부정의 의미를 가지고 있음

파일 문자열 변형 tr

tr -옵션 set1 set2 대상파일 : 대상파일에서 set1을 set2러 변경(|tr ~패턴)
class [:~:]
클래스에는 alnum(문자+숫자) alpha(문자), blank(빈칸), digit(숫자), lower(소문자),upper(대문자), print(보이기),space(빈칸),special(특수문자) 등
여러 클래스를 사용하고자 할 때에는 [클래스]와[클래스] 사이에 한 칸씩 띄우고 나열

-d:delete

\t\n

패턴 검색과 처리

awk: awk{action$컬럼} 파일명, Bash Shell 스크립트에서 불러서 사용
action 주로 화면에 띄우는 print사용, 컬럼 $0 $1 형식으로 지정

sed (stream editor)

파일을 편집하여 출력하는데 한 줄씩 읽어서 작업을 수행하기 때문에 버퍼 메모리를 적게 사용, 큰 파일을 다룰 때 유용
set [option] 명령어 파일명

  • 문자/특수기호(^,;,#,@ 등)를 표시하기 위해 문자 전후에 /
  • ^:처음 $:끝,*:어느 임의의 갯수의 문자/숫자와 일치
  • \:정규표현식, [abc] a,b,c 중 일치하는 문자 확인
  • ![abc]: 불일치할 경우, !: 선택된 줄 제왼, /a./:a로 시작되는 두 문자, /^#/: 주석으로 시작되는 줄, /^단어/:단어로 시작되는 줄 등
  • [패턴]/p 해당 패턴출력, [패턴]/d는 해당 패턴 삭제, s/문자1/문자2: 패턴에서 처음 보이는 문자 1를 문자2로 대체/
  • s/문자1/문자2/g: 문자 1을 문자로 2로 모두 대체 (/g:모든 줄)
  • i: 대소문자 무시, n: 출력만 해줌
  • f: 파일 지정, e: 변경해서 출력만함, i는 새로운 패턴으로 변경해서 파일로 저장의 옵션

split

파일을 분활
22바이트 단위로 etc/passwd 파일을 분할하고 PASSS로 저장

22바이트를 확인 할 수 있음
10줄 씩 분할하여 PASSSS에 저장

sort

파일의 내용 즉 텍스트를 정렬해서 보임
옵션:b(첫줄 빈칸 무시하고 정렬), f(소문자를 대문자로 정렬), n/r:n은 디폴트인 오름차순으로 정렬
r:내림차순으로 정렬

소유권과 허가권

Default로 해당 파일과 디렉터리를 생성한 사용자의 소유로, 계정이름 or UID로 표시

  • 파일과 디렉터리 속성 확인: ls -l
    파일:

    디렉터리:

소유권 변경

chown 명령어로 소유자를 변경 할 수 있음
-R : 옵션을 사용하여 하위 디렉터리까지 소유권을 변경 할 수 있음
작업하기 위해서 A 사용자가 만든 파일과 디렉터리를 다른 사용자로 소유권을 변경하여 다른 사용자들이 작업하거나, 그룹을 변경하여 해당 그룹에 있는 여러 사용자들이 작업을 하게 하는 경우가 있음

  • 소유권 변경은 root사용자가 해주어야함

허가권 변경

파일의 소유자(owner), 사용자들이 들어있는 그룹(group), 누구라도(other) 액세스 하도록 설정
chmod 명령어에 +를 부여할 수 있고, -로 권한을 뺏을 수 있음
문자식 변경의 경우: r(읽기) w(쓰기) x(실행)
수치식 변경의 경우: 4 2 1 => 합산하여 모든 권한을 갖을 경우 7,
읽고 쓰기만 할 경우 5, 실행권한만 가질 경우 1

  • 새롭게 파일/디렉터리를 생성할 경우 기본적인 권한
    : 파일의 경우 666, 디렉터리의 경우 777에서 umask 지정값 뺀 값이 권한
    => 파일의 경우 umask(022) 를 뺀 644의 권한, 디렉터리의 경우 755의 권한)
  • umask: /etc/.bashrc or /etc/profile에 지정된 값
    Default로 022의 권한을 가지고 있음 (해당 파일을 변경할 경우 디렉터리 기본 권한의 속성이 바뀔 수 있음)

    -R: 하위 디렉터리까지 모두 변경

    특수권한

    실제 설정에서 777 대신 0777, 666대신 0666을 사용자는데
    앞에 0은 특수 권한을 이야기함
  • setUID(4000): setuid 비트를 실행파일에 적용하면 실 사용자에서 프로그램 소유자의 ID로 유효사용자 (EUID)가 변경
    슈퍼유저만 접근할 수 있는 파일이나, 명령에 대해 일반 사용자로 접근하는 것이 기능상 필요한 경우
  • setGID(2000): setgid 비트가 설정되어 있으며 그룹 소유자 접근 권하의 실행 권한 자리에 실행 권한
  • Stickybit(1000): 특정 디렉토리를 누구나 자유롭세 사용 할 수 있게 하기 위함(공용 디렉토리에 사용)

    특수 파일

    모든 하드웨어 장치도 하나의 파일로 인식하므로 다양한 파일 형식이 있음
    특수 파일은 Block device, link, character, anmed pip socket 파일이 존재
    mknod 명령어에 옵션(b,c,p,s)을 붙여서 실행
  • 동기식(syschronous) 송신자가 동의한 시간 동안만 데이터를 전송하는 방식
    양측이 클럭으로 동기 신호를 맞추어야함, 문자나 비트 단위로 전송, 정확한 고속 데이터 전송이 가능, 사용 장비가 고가
  • 비동기식(Asysnchronous): 필요할 때마다 데이터를 전송하는 방식
    데이터 송수신을 동의할 필요가 없음
    전송 데이터 안에 전송 시작과 전송 종료 비트를 넣어서 송신을 알림
    문자단위 사용으로 저속 전송, 임의의 데이터를 송수신할 때 편리해서 특정 송수신을 제외하고 대부분 통신에서는 비동기식 송수신 방법 사용

(Named) pipe

Bash Shell은 동일한 쉘 내에서 작동되는 프로세스들을 처리
명명된 파이프: 메모리에 들어있는 정보를 다른 콘솔에서 보게 하는 방식
cat /etc/passwd |tail -3
: 같은 명령어를 pipe로 수행하면 cat 명령어와 tail 명령어가 동일한 쉘 안에 있음
나중 프로세스인 두 번재 명령어의 실행 결과만 출력됨
첫번째 명령어의 경우 메모리에 저장됨

Named pipe: 서로 다른 쉘끼리 프로세스가 연결되게 함
두 프로세스 사이의 통신은 오직 named_pipe를 통해서 이뤄지고 이 name_pipe 정보가 외부로 노출되지 않기 때문에 상대의 정보를 직접적으로 알 수 없음

socket file

소켓장치 파일은 A응용프로그램의 정보를 B응용프로그램에게 전해줄 때 사용
프린팅 데몬인 CUPS가 실행중일 때 워드 프로그램에서 인쇄를 한다면, 워드 프로그램이 CUPS 데몬이 실행되고 있는 소켓 장치(파일) 에게 인쇄 작업을 요청하고, CUPS프린터 데몬이 이 요청을 받아서 처리하게 됨

temporary file

임시 파일은 어느 응용프로그램이 실행되는 기간 동안만 필요에 의해서 존재하는 파일로써 해당 응용 프로그램의 실행 결과를 임시로 저장했다가 해당 프로그램 실행이 끝나면 버려짐
보통 임시 파일 or 임시 디렉터리는 /tmp 디렉터리에저장
root가 작업하고 끝내면 해당 작업의 임시 파일은 root 권한을 가지고 있기에 주의해야 됨
임시파일을 임의로 생성: mktemp test.XXXXXX 식으로 생성
test -> 임시 파일 명, XXXXXX-> 문자의 길이

profile
공부일지,

0개의 댓글